空管电报分析处理系统的设计与实现

2010-07-13 01:32:18高建国
海峡科学 2010年10期
关键词:程序模块遗漏电报

高建国



空管电报分析处理系统的设计与实现

高建国

民航福建空管分局

1 研究背景

随着近年来我国民航运输业的快速增长,日益增加的空中交通流量给相应的空中交通管制部门带来了巨大的压力和前所未有的挑战。空管自动化系统是广泛应用于航空部门的空中交通控制和管理系统,它是一个分布式计算机处理系统,接收和处理来自各个雷达头的飞行数据以及来自航空电信网的飞行电报数据,通过人机界面提供给空中交通管制员整个管制区内飞行活动的监视、预测和告警信息,协助管制员对空中交通进行安全有序的管理。

航空飞行电报是空管自动化系统的重要数据源,同时也是空中交通管制指挥的主要信息来源,电报中包含了航空飞行的关键数据信息,如航班号、起飞机场、起飞时间、降落时间、飞机机型和预计空中飞行时间等。这些报文是维护空中交通秩序、保证飞行安全和提高飞行效益必不可少的保障。

随着管制指挥对空管自动化系统的依赖性的增加,需要进一步提高自动化系统数据处理的准确性和有效性,从而减轻空管人员的工作负担,适应空管快速发展的需要。由于航空电信网传输系统、突发干扰或人为等因素造成的报文传输中断或遗漏,在一定程度上阻碍了空中交通管制工作的顺利进行。

目前福建空管分局使用的是洛克希德•马丁空管自动化系统,该系统未对电报的接收情况进行监控,并且其使用的电报终端设备性能不稳定,经常发生故障导致自动化系统无法正常接收电报。因此,设计一个电报分析处理系统弥补空管自动化系统在这方面的不足就显得十分必要。

本文结合工程实际,使用LINUX系统的Shell脚本构建空管电报分析处理系统,该系统不仅能够针对因电报终端设备或传输线路等故障造成的电报传输中断产生告警提示,引导值班人员对线路进行检查和测试,并能及时统计和提示传输过程中遗漏的报文,避免系统因长时间未收到电报或遗漏重要报文而导致管制员无法及时获取航班动态,飞行计划数据无法与雷达航迹自动相关,从而影响正常的飞行管制工作。目前该系统已成功运用于福建空管分局,取得了良好的成效,将设备故障造成的风险降低到了最低限度。

2 系统的结构设计与实现

本系统基于Linux Red Hat操作系统,使用Shell脚本构建,系统的设计与实现包括以下几个步骤:

2.1 电报内容分析和预处理

空管自动化系统中的飞行数据处理服务器通过电报终端接收来自民航电报网(AFTN)的飞行动态电报,经过处理后形成飞行计划数据,对每个生效的飞行计划计算飞行轨迹,并将飞行计划数据与多雷达融合后的雷达航迹进行相关处理,输出到管制员席位上显示。

由于空管自动化系统将接收到的各类外部数据包括电报均直接存储在指定文件内,因此为了甄别自动化系统是否收到电报数据,首先需要对该文件的内容进行预处理,删除不标准报文中的乱码等无用的信息,从中提取出有效的电报数据。

通过对电报的接收过程的研究发现,在接收到的标准电报数据中包含有字段“INPUT”,因此在程序代码中,使用grep命令对文件中包含“INPUT”字段的数据进行过滤,识别出文件中包含的报文。

2.2 报文中断的故障诊断及告警

当终端设备故障或传输故障而无法接收到电报时,服务器内接收电报的文件将不会接收到新的报文,此时通过实时监控该电报文件内容变化的情况,便能判断出系统是否接收到新的报文。如果该文件内的报文数据长时间未出现更新,则极有可能表示传输设备出现故障而导致系统未接收到新报,系统将产生告警,提示值班人员对传输设备进行检查,以及时排除故障,恢复报文的传输。其程序通过函数alarm()实现:

alarm ( ) {

1 while true do

2 a=$(grep INPUT tele | wc -l )

3 sleep 180

4 b=$(grep INPUT tele | wc -l )

5 if [ "$a" = "$b" ]; then

6 play prealarm.wav

7 while true do

8 c=$(grep INPUT tele | wc -l )

9 sleep 60

10 d=$(grep INPUT tele | wc -l )

11 if [ "$c" = "$d" ]; then

12 play alarm.wav

13 else break

14 fi

15 done

16 fi

17 done

}

2.2.1系统对报文数量的实时监测

系统首先对过滤出的报文通过wc –l命令,统计出系统接收到的电报数量(通过语句2实现),其次每间隔3分钟(通过语句3实现),再对过滤出来的电报数据统计数量,当发现接收到电报数量在一定时间内未发生变化时(通过语句5判断),则认定未接收到新的报文,系统将自动产生预警(通过语句6实现)。

2.2.2系统告警级别升级

当系统发出预警后,为利于值班员更加及时发现故障,系统的检测级别升级,将电报的循环检测时间由3分钟缩短至1分钟,由语句7至语句15执行该检测,如在该级别的检测中系统仍未收到电报,则发出正式告警(语句12)。而当系统在该循环检测过程中接收到新报文时,系统执行语句13跳出该检测级别,恢复至每3分钟检测一次报文的接收情况。

2.3 报文遗漏的故障诊断及告警

针对在传输过程中较常发生的报文丢失的情况,系统实时监控报文接收情况,通过比对收到的电报中自带的流水号,统计出丢失的报文的流水号,并及时告警提醒值班人员,补发遗漏的报文。

实现漏报告警的程序完成以下几个步骤:

2.3.1实时监视存储报文的文件变化

在程序中使用cksum命令定期判断存储报文的文件的校验和是否变化,即该文件是否有接收到新的报文。

2.3.2提取最新接收到的报文中的流水号

当文件发生变化时,由于在报文的第一个字符串中包含了报文的流水号,因此,使用awk '{print $1}’命令提取出最新接收的报文的流水号。

2.3.3流水号的比对

对于最新提取出来的流水号,将其与上一条报文的流水号做比对,若流水号不连续,则认定在这两条报文之间遗漏了电报,同时计算出遗漏报文的流水号,输出遗漏报文的流水号,并发出漏报告警提示。

2.4 系统分时自动运行

通过对航行情报网(AFTN)电报接收情况的统计表明,报文更新的最大时间间隔在白天约为3分钟,而晚上最大间隔约为10分钟。

因此电报处理系统能针对不同的时间段,创建不同的程序模块,分别根据早晚电报接收时间段的不同,定义不同的检测时间间隔,以实现最佳的运行效果。例如,对于电报中断的故障检测,在凌晨0点至6点,可设定程序模块每隔5分钟做一次检测;而在6点后,程序模块则每隔3分钟做一次检测。

对于这种有规律的周期性任务,可以使用Linux系统的cron守护进程指定时间在系统后台自动执行作业,而无需人工干预,从而大大减少维护人员日常的工作量。

通过编辑文件/etc/crontab,在该文件中定义要执行的脚本以及执行的时间,cron守护进程就会按照指定的时间自动执行脚本,完成相应的工作。对于该文件的配置分为以下两个步骤:

2.4.1修改程序运行目录

在crontab文件的PATH路径后增加运行程序所在的目录:/rdp/home/sysadmin,使得cron守护进程能在该目录下调用脚本自动执行作业。其设置如下:

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/rdp/home/sysadmin

2.4.2定义程序自动运行时间

crontab文件中用于定义自动执行作业的条目共包括6个域,其中包含5个时间域,其格式为:

分时日月星期要运行的命令

在时间域中,如果对某个表示时间的域没有特别的限定,则在该域内填入*,每个域之间使用空格分隔。在该文件中对于本系统程序模块的执行情况,表示在凌晨6点之前自动执行程序模块TeleSysMor;在6点之后自动执行TeleSysDay程序模块。其添加的自动执行的作业如下:

00 00 * * * TeleSysMor

59 05 * * * pkill TeleSysMor

00 06 * * * TeleSysDay

59 23 * * * pkill TeleSysDay

此外,通过使用crontab守护进程在系统后台运行相关进程,还能够减轻维护人员的工作量,而且对于一些密集访问磁盘等复杂的进程还能设定在系统负荷较低时执行,以减轻系统运行的负担,提高系统运行效率。

3 结论

根据本文思想构建的电报处理分析系统已在福建空管分局运行约一年时间,系统运行状态良好,其最大优点就是通过对报文数据的实时监控和分析,避免了因为传输线路、终端接口设备等故障而导致长时间无法正常接收到电报或遗漏重要报文,影响空中交通管制工作。该项技术革新投入运行后,使得保障人员对电报故障的诊断更加快速准确,使得原本至少需要半小时才能发现并解决的故障,缩短至5分钟之内便能解决,大幅度缩短了故障排除和解决的时间,提升了设备的保障力度,进一步完善了空管自动化系统的软件功能,有效地提高了空中交通服务的质量。

[1] Lockheed Martin Corporation. SkyLine Air Traffic Control Automation System Adaptation Manual. Lockheed Martin Corporation,2006,201-220.

[2] Lockheed Martin Corporation. SkyLine Air Traffic Control Automation System System Management and Maintenance Manual. Lockheed Martin Corporation,2006, 312-322.

[3] David Tansley. 张春萌译. LINUX与UNIX_Shell编程指南[M].北京:机械工业出版社,2000.

猜你喜欢
程序模块遗漏电报
来自动物星球的挑战(二)小五狼遗漏的线索
电报方程的正双周期解:存在性、唯一性、多重性和渐近性
毛泽东的绝密电报与湖南和平解放
遗漏的光阴
鸭绿江(2021年17期)2021-11-11 13:03:41
基于信息检索的软件缺陷定位方法综述*
软件学报(2021年2期)2021-03-06 09:28:36
乐高MINDSTORMSEV3软件程序模块开发
基于Web网络的环境信息通信系统设计
传“电报”
ADSP TS201S Link口在多DSP系统中的应用
应用品管圈降低腹腔镜抗反流手术术前准备遗漏率的实践