摘 要 AeroTrac自動化系統在國內多個空管單位被作為主用自動化系統使用,其工作狀態直接影響到管制工作,進而影響到空中交通安全。為了保證其工作穩定性,能否對其進行及時、準確、直觀、全面的監控對于維護而言顯得尤為重要。
【關鍵詞】XP 平臺 Aerotrac自動化系統 程序開發
當前現有的AeroTrac自動化系統監控均有不同缺陷,如功能單一、告警延時高、無圖形界面等?;谏鲜鲈?,開發一套界面直觀、功能健全、告警及時準確的監控系統就顯得十分必要。由于Windows XP仍是當前主流操作系統,具有較好的穩定性和兼容性。因此本套自動化監控系統最終確定基于XP平臺,利用Visual Studio2010和SQL2008軟件工具,使用C#語言編寫。
1 Aerotrac自動化系統架構簡述
AeroTrac自動化系統有三個主干網,雷達處理子系統中,三臺服務器RDP分別接入A、B網,B、C網和A、C網,顯示終端DP均接入A、B、C網。飛行數據處理子系統中,服務器FDP和顯示終端FDT接入A、B網。
同一時間RDP和FDP只有一臺處于Online,其它處于熱備份Backup狀態。
RDP和FDP操作系統為Solaris 5.8,FDP和DP操作系統為Solaris 5.10。FDT操作系統為Windows Vista。
2 AeroTrac自動化系統信號流程介紹
AeroTrac自動化系統處理的信號主要為單雷達信號和報文信號兩種。下面簡單介紹了這兩種信號的單向處理流程。
單雷達信號由傳輸設備出來為HDLC格式,使用RS232串口接入雷達信號協議轉換器MPS800,轉換為TCP/IP格式的網絡信號接入RDP,經RDP進行融合、相關、告警處理后,送入DP進行目標航跡顯示。
報文信號從傳輸設備出來一分多后直接接入FDP,FDP將其處理后進行飛行動態列表的更新, FDT從FDP獲取飛行數據并顯示。
3 需求分析
根據AeroTrac自動化系統的實際情況和設備維護人員的需求,自動化監控系統所要實現的功能如下:
(1)監控單雷達數據狀態,在信號中斷或者誤碼過高時產生告警。
(2)監控報文狀態,在報文中斷時產生告警。
(3)監控系統節點進程狀態,在主要進程死時產生告警。
(4)監控系統節點網絡狀態,在節點單網絡中斷時產生告警。
(5)報文查詢和人工要報功能。
(6)常見維護操作,如數據備份、清理過期文件等。
(7)相關資料索引,方便維護人員查找自動化系統相關資料。
(8)所有告警均產生相關日志并存儲,方便查詢和故障排查。
4 監控系統模塊框架
根據上述功能需求,結合C#語言特點,自動化監控系統組成模塊框架圖如圖1。
系統主要后臺功能模塊分為雷達監控模塊、節點和網絡監控模塊、報文監控模塊、維護模塊和資料索引模塊。報文監控模塊作為主要模塊之一,包含三個子模塊。
前臺主界面分為告警界面和維護菜單兩部分。告警界面顯示三個監控模塊產生的告警。維護菜單包含各種維護操作,如查看節點進程、CPU和硬盤占用率、數據備份、資料查詢等。
5 設計方法
5.1 雷達監控模塊
雷達監控分為下面3個步驟:
5.1.1 從自動化系統獲取雷達信息相關文件
在AeroTrac自動化系統主用RDP的/export/home/ATCsite/目錄下,ADAP00*.DAT文件包含了各路雷達的配置信息,包括名稱、經緯度、高度等(*這里為通配符)。UconX_rcvr_stats0和UconX_rcvr_stats1為雷達數據接收文件,每70秒刷新一次,包含當前接收的各路雷達詳細信息,如接收數據量、誤碼率、幀校驗等。
在本系統中,采用命令行腳本(.bat)的方式,使用rcp遠程接收指令來獲取這兩類文件。例如:
rcp rdp01a:/export/home/ATCsite/ADAP00*.DAT ./Adap/
rcp rdp01a:/export/home/ATCsite/UconX_rcvr_stats0 ./Stat/
rcp rdp01a:/export/home/ATCsite/UconX_rcvr_stats1 ./Stat/
5.1.2 將獲取到的本地文件進行處理以便程序調用
由于獲取到的兩個文件包含信息較多,為方便程序快捷調用所需數據,在獲取之后對其進行信息處理。該步驟也在命令行腳本中完成。例如:
more UconX_rcvr_stats0 | find "Rcv Msgs" > ./RcvMsgs.txt
more UconX_rcvr_stats1 | find "Rcv Msgs" >> ./RcvMsgs.txt
這一步是將各路雷達單位時間內接收數據量提取出來放入RcvMsgs.txt文件以便程序調用。
5.1.3 監控程序調用腳本,獲取相關信息并更新狀態
該步驟是在監控程序的timer中進行,定時調用上述的命令行腳本,更新本地文件,并從本地文件中獲取監控所需信息,進行狀態顯示和告警。
5.2 節點和網絡監控模塊
節點和網絡監控實現步驟與雷達監控相同,均是從自動化系統獲取信息保存至本地,程序從本地調用再進行分析處理。但獲取方式有所不同。
RDP和DP的主備狀態和網絡狀態,通過 RDP主目錄下radar_status.txt文件獲取。代碼舉例如下:
rcp rdp01a:/export/home/ATCsite/radar_status.txt ./Stat/
FDP和FDT的狀態,是通過遠程執行FDP上的自編腳本myshowfdp和myshowfdt,然后將執行結果保存至本地文件來獲得。代碼如下:
rsh fdp01a -l root /aerotrac/bin/myshowfdp > ./Stat/fdp.log
rsh fdp01a -l root /aerotrac/bin/myshowfdt > ./Stat/fdt.log
5.3 報文監控模塊
報文監控模塊由三個子模塊組成:報文顯示模塊、報文查詢模塊和人工要報模塊,通過與數據庫交互的方式實現報文的存儲和查詢。各模塊功能實現方式如下:
5.3.1 報文顯示模塊
報文顯示模塊使用VS2010自帶的serialport串口控件,代碼采用委托方式,不間斷地從串口讀取報文數據,進行報文頭部和尾部判斷后,將整份報文顯示在顯示窗口中。同時寫入數據庫。
如果自動要報功能打開,每次讀取一份報文后,會根據與上一份報文的流水號差值,調用要報模塊自動發送要報報文。
報文中斷告警通過timer方式實現,每隔一秒會將當前時間與上次收報時間取差值,大于規定時間則產生告警。
5.3.2 報文查詢模塊
報文查詢模塊通過select數據庫查詢指令,用DataGrid列表形式將按照時間、日期、航班號、報文端口等條件查詢后的結果顯示在窗口中。
5.3.3 要報模塊
人工將所要報文的流水號填入,并選擇端口和報文類型后,按照規定自動生成要報報文從所選端口發出。
5.4 維護模塊和資料索引模塊
維護和資料索引功能均使用程序調用的方式,維護模塊是調用遠程執行的命令行維護腳本,資料索引模塊調用保存在本地路徑下的文件并顯示。
5.5 主界面設計
界面設計采用了扁平化、圖形化的方式,用系統結構圖的形式顯示出了系統狀態,任一節點、網絡、報文端口告警,均會以醒目的紅色顯示在主界面上,并伴隨告警音。
6 總結
自動化監控系統作為設備維護人員的得力助手,必須具有全面性、實時性、準確性以及穩定性。本系統以C#語言編寫程序主體,以命令行腳本和shell腳本作為信息交互手段,以數據庫作為存儲工具。功能齊全,界面簡潔大方,化繁為簡,貫徹了至簡的設計理念。 但由于筆者和開發組的同事開發經驗有限,在程序的整合和優化方面還有很多不足之處。將在以后的系統使用過程中進一步完善。歡迎廣大同行批評指正。
作者簡介
吳宗鍵(1989-),陜西省商洛市人。大學本科學歷?,F為中國民用航空珠海進近管制中心助理工程師。主要研究方向為民航通信導航監視技術。
作者單位
中國民用航空珠海進近管制中心 廣東省珠海市 519000