丽江机场空管自动化系统停机位信息与现场生产运行系统的同步.doc_第1页
丽江机场空管自动化系统停机位信息与现场生产运行系统的同步.doc_第2页
丽江机场空管自动化系统停机位信息与现场生产运行系统的同步.doc_第3页
丽江机场空管自动化系统停机位信息与现场生产运行系统的同步.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

丽江机场空管自动化系统停机位信息与现场生产运行系统的同步parking place of lijiang airport ATC automation system Sync with The airport operation system云南机场集团有限责任公司丽江机场塔台 吕建华/文当前,丽江机场航空器的地面运行由塔台管制员来指挥。离港航空器驾驶员申请推出,开车,滑行以及进港的航空器滑行路线这些地面运行过程都由塔台管制员指挥。塔台管制员通过语音和飞行员通话直接进行控制,解决地面飞机滑行的冲突,确保航空器在机场的有序运行。为此,塔台管制人员指挥过程中需要掌握每个进港、离港飞机的停机位,了解他们滑行过程中存在的交通冲突,提前考虑交通避让措施。丽江机场航空器的停机位由机场现场部门安排,他们所使用的生产运行系统是针对现场部门的工作需要进行设计的,没有考虑机场塔台管制工作需求,所以现场所使用的生产运行系统不能满足塔台管制工作的需求。丽江机场塔台目前使用另外的一套空管自动化系统进行日常工作。两套系统为完全独立的系统,数据无法实现共享,致使塔台管制员不得不同时使用两套系统工作。值班管制员使用现场生产运行系统了解现场部门安排的飞机停机位,塔台日常工作又得切换回空管自动化系统中。这无形中增加了塔台管制人员的工作量,出差几率大大提高,存在较大的安全隐患。为此,笔者决定寻找解决方法,实现一套系统满足塔台管制工作的需求。解决问题的关键就是实现两套系统的数据共享,破除数据孤岛。塔台管制员使用现场生产运行系统仅仅是查看停机位,如果能够从现场运行系统中提取出每个航班的停机位信息加入到空管自动化系统当中,这个问题就能得到解决。我经过和现场生产运行系统管理人员进行沟通,得到了他们的支持和许可,了解到现场生产运行系统的数据库为oracle数据库,现场系统管理人员提供了访问数据库的用户名及密码。下面关键就是连接数据库,了解现场运行系统数据库结构。SQL Developer是一个免费非开源的用以开发数据库应用程序的图形化工具,使用 SQL Developer 可以浏览数据库对象、运行 SQL 语句和脚本、编辑和调试 PL/SQL 语句。另外还可以创建执行和保存报表。该工具可以连接任何 Oracle 或者以上版本的 Oracle 数据库,支持 Windows、Linux 和 Mac OS X 系统。该工具能够满足我的需要,我就使用该工具连接现场的oracle数据库,启动sqldevelop,窗口显示如下图所示:使用系统维护人员提供的信息,尝试数据库的连接。输入连接名,用户名,口令,主机名使用数据库所在服务器的ip地址代替,然后点击连接,数据库连接成功。连接成功后,窗口显示数据库所有的表、视图等信息。打开窗口中各个表,可以查看其该表的数据,我发现每个表中的数据和现场系统中显示的都不一致,数据不够全面,要么只有进港航班的数据,要么只有出港航班的数据。那么现场运行界面显示的数据可能来自视图,我又逐一打开各个视图查看其数据,最终我发现DYNRUN视图数据比较全面,窗口显示的数据是当日正在执行航班的所有数据,包括了进出港对应航班的航班号、停机位、每个航班的状态、停机位状态等信息,停机位状态有已释放,已分配。这些数据和现场运行系统界面数据一致,可以确认我已经找到需要的数据表,只需要调用此视图,查找出现场部门已经安排了停机位的航班的航班号及停机位等信息,然后把停机位信息同步到空管航班信息系统就可以解决问题。如何使用DYNRUN视图,编写合适的SQL语句进行数据库查询呢?因DYNRUN 视图所含有数据较多,如果所有数据查询出来的话,数据量太大,也没有必要,而我需要的数据只是已经安排了停机位的进出港航班的航班号,停机位,所以根据我的需要对SQL进行了精简,查询停机位状态为“已分配”的航班信息就可以。实际使用的SQL语句为SELECT ARRAIRCORP, DEPAIRCORP, ARRFLTNO, DEPFLTNO, INFLTNO, OUTFLTNO, PLANENO, PORTNO, PORTSTATUS, TIMEORDFROM DYNRUN where PORTSTATUS =已分配;通过测试可以实现我的查询需要,查询出我需要的数据,下面是执行此查询语句,查询测试的结果窗口截图。有了数据库查询的SQL语句,接下来就可以正式进入机位同步程序的开发了。空管自动化系统为笔者使用delphi自行开发。开发后台数据库使用的是Firebird数据库,两种数据数据库连接方法截然不同,Firebird数据库开发过程中使用的是fibplus对数据库进行连接。为了连接oracle数据库,我得另外寻找数据库连接方法,目前连接delphi连接数据库的方法比较多。通过对比发现Oracle.Data.Access.Components连接数据库不需要安装oracle数据库客户端,相对比较方便,而且此控件为oracle官方提供的连接oracle的控件,稳定性可以得到保障,所以我决定使用此控件连接oracle数据库。安装Oracle.Data.Access.Components控件后,Delphi控件栏出现了如下工具。使用Delphi新建一个停机位同步程序,在窗口上添加OraSession控件连接现场的oracle数据库实例。连接成功,继续添加OraQuery1控件,此控件的Session属性设置为刚刚添加的OraSession控件,把OraQuery1的SQL设置为SELECT ARRAIRCORP, DEPAIRCORP, ARRFLTNO, DEPFLTNO, INFLTNO, OUTFLTNO, PLANENO, PORTNO, PORTSTATUS, TIMEORDFROM DYNRUN where PORTSTATUS =已分配,使用DBGRID把查询出来的结果显示出来。查询正常,需要的数据查询出来了。窗口截图如下。从查询结果可以看出来,表中INFLTNO为进港航班航班号,OUTFLTNO为出港航班的航班号,PORTNO为此航班的停机位。连接空管自动化系统的数据库,把从现场数据库查询出来的航班所对应的停机位信息加入到空管自动化系统数据库当中。仍然使用fibplus对空管数据库进行连接,连接成功后,根据从现场数据库中查询到的结果,我到空管自动化系统中查找对应的航班及其停机位进行比对,当发现空管自动化系统中停机位信息是空的话,只对空管自动化系统的停机位信息进行添加。如果空管自动化系统中停机位信息已经有相关数据的话,对比数据是否一致,如果一致,空管数据库停机位数据不做操作,如果不一样那就说明现场对停机位信息进行调整,那么需要对空管数据库的停机位信息进行更新,确保空管数据库停机位信息和现场数据库的停机位信息一致,同时对该数据进行后台标注,知道此数据有更改。数据同步需要考虑的问题。为了确保数据的准确及时有效,又不能给系统造成较大的负载。我每隔3分钟对现场系统进行一次查询,查询结果逐一到空管系统中进行停机位数据的比对,一旦发现空管系统停机位数据和现场系统数据不一致,那就参照现场运行系统的停机位数据对空管的停机位数据进行更新。经过机位同步程序不断对现场数据库及空管数据库的停机位信息对比同步,空管自动化系统的数据库中已经有了航班的准确有效的停机位信息了。如何向管制员提供航班停机位信息呢?一方面在打印空管进程单时,增加航班的停机位信息。另一方面在空管自动化系统中增加航班停机位显示的信息。正常情况下,如果停机位已经安排,那停机位数据就会显示对应航班的停机位数据,如果此停机位安排以后,现场又对此数据进行了更改,我对空管自动化系统中停机位数据的背景色进行设置,改为红色,以便提醒塔台管制员此航班的停机位有改变。管制员对停机位信息双击确认后,背景颜色恢复为正常状态。采用这种方式避免航班停机位更改后,管制员没有发现。 航班信息显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论