高建國
?
空管電報分析處理系統(tǒng)的設計與實現
高建國
民航福建空管分局
隨著近年來我國民航運輸業(yè)的快速增長,日益增加的空中交通流量給相應的空中交通管制部門帶來了巨大的壓力和前所未有的挑戰(zhàn)??展茏詣踊到y(tǒng)是廣泛應用于航空部門的空中交通控制和管理系統(tǒng),它是一個分布式計算機處理系統(tǒng),接收和處理來自各個雷達頭的飛行數據以及來自航空電信網的飛行電報數據,通過人機界面提供給空中交通管制員整個管制區(qū)內飛行活動的監(jiān)視、預測和告警信息,協助管制員對空中交通進行安全有序的管理。
航空飛行電報是空管自動化系統(tǒng)的重要數據源,同時也是空中交通管制指揮的主要信息來源,電報中包含了航空飛行的關鍵數據信息,如航班號、起飛機場、起飛時間、降落時間、飛機機型和預計空中飛行時間等。這些報文是維護空中交通秩序、保證飛行安全和提高飛行效益必不可少的保障。
隨著管制指揮對空管自動化系統(tǒng)的依賴性的增加,需要進一步提高自動化系統(tǒng)數據處理的準確性和有效性,從而減輕空管人員的工作負擔,適應空管快速發(fā)展的需要。由于航空電信網傳輸系統(tǒng)、突發(fā)干擾或人為等因素造成的報文傳輸中斷或遺漏,在一定程度上阻礙了空中交通管制工作的順利進行。
目前福建空管分局使用的是洛克希德?馬丁空管自動化系統(tǒng),該系統(tǒng)未對電報的接收情況進行監(jiān)控,并且其使用的電報終端設備性能不穩(wěn)定,經常發(fā)生故障導致自動化系統(tǒng)無法正常接收電報。因此,設計一個電報分析處理系統(tǒng)彌補空管自動化系統(tǒng)在這方面的不足就顯得十分必要。
本文結合工程實際,使用LINUX系統(tǒng)的Shell腳本構建空管電報分析處理系統(tǒng),該系統(tǒng)不僅能夠針對因電報終端設備或傳輸線路等故障造成的電報傳輸中斷產生告警提示,引導值班人員對線路進行檢查和測試,并能及時統(tǒng)計和提示傳輸過程中遺漏的報文,避免系統(tǒng)因長時間未收到電報或遺漏重要報文而導致管制員無法及時獲取航班動態(tài),飛行計劃數據無法與雷達航跡自動相關,從而影響正常的飛行管制工作。目前該系統(tǒng)已成功運用于福建空管分局,取得了良好的成效,將設備故障造成的風險降低到了最低限度。
本系統(tǒng)基于Linux Red Hat操作系統(tǒng),使用Shell腳本構建,系統(tǒng)的設計與實現包括以下幾個步驟:
空管自動化系統(tǒng)中的飛行數據處理服務器通過電報終端接收來自民航電報網(AFTN)的飛行動態(tài)電報,經過處理后形成飛行計劃數據,對每個生效的飛行計劃計算飛行軌跡,并將飛行計劃數據與多雷達融合后的雷達航跡進行相關處理,輸出到管制員席位上顯示。
由于空管自動化系統(tǒng)將接收到的各類外部數據包括電報均直接存儲在指定文件內,因此為了甄別自動化系統(tǒng)是否收到電報數據,首先需要對該文件的內容進行預處理,刪除不標準報文中的亂碼等無用的信息,從中提取出有效的電報數據。
通過對電報的接收過程的研究發(fā)現,在接收到的標準電報數據中包含有字段“INPUT”,因此在程序代碼中,使用grep命令對文件中包含“INPUT”字段的數據進行過濾,識別出文件中包含的報文。
當終端設備故障或傳輸故障而無法接收到電報時,服務器內接收電報的文件將不會接收到新的報文,此時通過實時監(jiān)控該電報文件內容變化的情況,便能判斷出系統(tǒng)是否接收到新的報文。如果該文件內的報文數據長時間未出現更新,則極有可能表示傳輸設備出現故障而導致系統(tǒng)未接收到新報,系統(tǒng)將產生告警,提示值班人員對傳輸設備進行檢查,以及時排除故障,恢復報文的傳輸。其程序通過函數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系統(tǒng)對報文數量的實時監(jiān)測
系統(tǒng)首先對過濾出的報文通過wc –l命令,統(tǒng)計出系統(tǒng)接收到的電報數量(通過語句2實現),其次每間隔3分鐘(通過語句3實現),再對過濾出來的電報數據統(tǒng)計數量,當發(fā)現接收到電報數量在一定時間內未發(fā)生變化時(通過語句5判斷),則認定未接收到新的報文,系統(tǒng)將自動產生預警(通過語句6實現)。
2.2.2系統(tǒng)告警級別升級
當系統(tǒng)發(fā)出預警后,為利于值班員更加及時發(fā)現故障,系統(tǒng)的檢測級別升級,將電報的循環(huán)檢測時間由3分鐘縮短至1分鐘,由語句7至語句15執(zhí)行該檢測,如在該級別的檢測中系統(tǒng)仍未收到電報,則發(fā)出正式告警(語句12)。而當系統(tǒng)在該循環(huán)檢測過程中接收到新報文時,系統(tǒng)執(zhí)行語句13跳出該檢測級別,恢復至每3分鐘檢測一次報文的接收情況。
針對在傳輸過程中較常發(fā)生的報文丟失的情況,系統(tǒng)實時監(jiān)控報文接收情況,通過比對收到的電報中自帶的流水號,統(tǒng)計出丟失的報文的流水號,并及時告警提醒值班人員,補發(fā)遺漏的報文。
實現漏報告警的程序完成以下幾個步驟:
2.3.1實時監(jiān)視存儲報文的文件變化
在程序中使用cksum命令定期判斷存儲報文的文件的校驗和是否變化,即該文件是否有接收到新的報文。
2.3.2提取最新接收到的報文中的流水號
當文件發(fā)生變化時,由于在報文的第一個字符串中包含了報文的流水號,因此,使用awk '{print $1}’命令提取出最新接收的報文的流水號。
2.3.3流水號的比對
對于最新提取出來的流水號,將其與上一條報文的流水號做比對,若流水號不連續(xù),則認定在這兩條報文之間遺漏了電報,同時計算出遺漏報文的流水號,輸出遺漏報文的流水號,并發(fā)出漏報告警提示。
通過對航行情報網(AFTN)電報接收情況的統(tǒng)計表明,報文更新的最大時間間隔在白天約為3分鐘,而晚上最大間隔約為10分鐘。
因此電報處理系統(tǒng)能針對不同的時間段,創(chuàng)建不同的程序模塊,分別根據早晚電報接收時間段的不同,定義不同的檢測時間間隔,以實現最佳的運行效果。例如,對于電報中斷的故障檢測,在凌晨0點至6點,可設定程序模塊每隔5分鐘做一次檢測;而在6點后,程序模塊則每隔3分鐘做一次檢測。
對于這種有規(guī)律的周期性任務,可以使用Linux系統(tǒng)的cron守護進程指定時間在系統(tǒng)后臺自動執(zhí)行作業(yè),而無需人工干預,從而大大減少維護人員日常的工作量。
通過編輯文件/etc/crontab,在該文件中定義要執(zhí)行的腳本以及執(zhí)行的時間,cron守護進程就會按照指定的時間自動執(zhí)行腳本,完成相應的工作。對于該文件的配置分為以下兩個步驟:
2.4.1修改程序運行目錄
在crontab文件的PATH路徑后增加運行程序所在的目錄:/rdp/home/sysadmin,使得cron守護進程能在該目錄下調用腳本自動執(zhí)行作業(yè)。其設置如下:
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/rdp/home/sysadmin
2.4.2定義程序自動運行時間
crontab文件中用于定義自動執(zhí)行作業(yè)的條目共包括6個域,其中包含5個時間域,其格式為:
分時日月星期要運行的命令
在時間域中,如果對某個表示時間的域沒有特別的限定,則在該域內填入*,每個域之間使用空格分隔。在該文件中對于本系統(tǒng)程序模塊的執(zhí)行情況,表示在凌晨6點之前自動執(zhí)行程序模塊TeleSysMor;在6點之后自動執(zhí)行TeleSysDay程序模塊。其添加的自動執(zhí)行的作業(yè)如下:
00 00 * * * TeleSysMor
59 05 * * * pkill TeleSysMor
00 06 * * * TeleSysDay
59 23 * * * pkill TeleSysDay
此外,通過使用crontab守護進程在系統(tǒng)后臺運行相關進程,還能夠減輕維護人員的工作量,而且對于一些密集訪問磁盤等復雜的進程還能設定在系統(tǒng)負荷較低時執(zhí)行,以減輕系統(tǒng)運行的負擔,提高系統(tǒng)運行效率。
根據本文思想構建的電報處理分析系統(tǒng)已在福建空管分局運行約一年時間,系統(tǒng)運行狀態(tài)良好,其最大優(yōu)點就是通過對報文數據的實時監(jiān)控和分析,避免了因為傳輸線路、終端接口設備等故障而導致長時間無法正常接收到電報或遺漏重要報文,影響空中交通管制工作。該項技術革新投入運行后,使得保障人員對電報故障的診斷更加快速準確,使得原本至少需要半小時才能發(fā)現并解決的故障,縮短至5分鐘之內便能解決,大幅度縮短了故障排除和解決的時間,提升了設備的保障力度,進一步完善了空管自動化系統(tǒng)的軟件功能,有效地提高了空中交通服務的質量。
[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].北京:機械工業(yè)出版社,2000.