唐建中,張紅英
(1.民航寧夏空管分局氣象臺寧夏銀川750009;2.寧夏大氣探測保障中心寧夏銀川750002)
民航自動氣象觀測系統(tǒng)是民航氣象探測最重要的手段之一,承擔(dān)著民航氣象大部分的氣象要素的探測,為航空氣象業(yè)務(wù)提供有力的氣象資料支持。但民航自動氣象觀測系統(tǒng)在云、主導(dǎo)能見度和天氣現(xiàn)象觀測方面與人工實際觀測存在一定的差距,其云的探測只有跑道兩端兩個點CL31探測的云底高度,大氣透射儀LT31主要探測跑道南、北和中間三點的光學(xué)視程,依據(jù)3個點探測的光學(xué)視程而計算出來的主導(dǎo)能見度不能完全反映本機場的主導(dǎo)能見度,而FD12P所探測到的天氣現(xiàn)象遠(yuǎn)不如人工觀測準(zhǔn)確[1]。同時民航氣象部門所使用的民航氣象觀測測報系統(tǒng)基本都是非自動觀測系統(tǒng)所帶的英文編發(fā)報系統(tǒng),造成現(xiàn)有的氣象報文不能在民航自動氣象觀測系統(tǒng)終端上顯示。基于以上原因,為民航自動氣象觀測系統(tǒng)增加人工觀測數(shù)據(jù)部分和實況報文顯示,可以達(dá)到完善民航自動氣象觀測系統(tǒng)的目的,更好地服務(wù)民航空中交通管制業(yè)務(wù)和氣象業(yè)務(wù)的實際工作。
作為民航自動氣象觀測系統(tǒng)在人工觀測氣象數(shù)據(jù)的重要補充部分,氣象自動云能天系統(tǒng)核心的設(shè)計目的是將人工觀測的云、主導(dǎo)能見度、天氣現(xiàn)象及最近時段氣象報文數(shù)據(jù)從氣象觀測部門傳遞至民航空中交通管制部門、氣象業(yè)務(wù)部門及其它業(yè)務(wù)部門。利用民航氣象觀測測報系統(tǒng)提供氣象數(shù)據(jù)服務(wù)功能,自動智能采集其系統(tǒng)上有人工觀測的云、主導(dǎo)能見度、天氣現(xiàn)象及最近時段氣象報文數(shù)據(jù),達(dá)到工作全自動化。氣象自動云能天系統(tǒng)由3部分組成,即通信子系統(tǒng)、服務(wù)子系統(tǒng)和客戶端子系統(tǒng)[2],如圖1所示。
圖1 氣象自動云能天系統(tǒng)架構(gòu)圖
通信子系統(tǒng)由7個功能模塊組成,主要功能是通過網(wǎng)絡(luò)連接民航氣象觀測測報系統(tǒng),自動獲取云、主導(dǎo)能見度、天氣象現(xiàn)象和最近時段氣象報文等氣象數(shù)據(jù)。通過串行異步通信口將氣象數(shù)據(jù)發(fā)送至服務(wù)子系統(tǒng),實現(xiàn)氣象數(shù)據(jù)傳遞的同時也保障民航自動氣象觀測系統(tǒng)的網(wǎng)絡(luò)安全與獨立。監(jiān)控與民航氣象觀測測報系統(tǒng)的網(wǎng)絡(luò)連接狀態(tài)。在應(yīng)用界面上顯示相應(yīng)的氣象信息。對接收的氣象數(shù)據(jù)進(jìn)行完整性檢查、拆分和重新打包。進(jìn)行相應(yīng)的運行日志管理。同時增加程序只運行一次、系統(tǒng)托盤和托盤欄菜單等多項輔助功能,提高程序的自我管理功能和容錯能力,保證系統(tǒng)運行的穩(wěn)定性。
服務(wù)子系統(tǒng)由8個功能模塊組成,其主要功能是通過串行異步通信口自動接收通信子系統(tǒng)發(fā)送的氣象數(shù)據(jù)信息。顯示從通信子系統(tǒng)收到的氣象數(shù)據(jù)信息。接受界面上人工輸入的氣象信息。監(jiān)聽客戶端的連接請求。將氣象數(shù)據(jù)信息通過網(wǎng)絡(luò)傳遞給民航空中交通管制部門、預(yù)報部門及其它部門使用。監(jiān)控客戶端的連接情況。對接收的氣象數(shù)據(jù)進(jìn)行完整性檢查、拆分和重新打包。進(jìn)行相應(yīng)的運行日志管理。
客戶端子系統(tǒng)由6個功能模塊組成,其主要功能是主動向服務(wù)子系統(tǒng)發(fā)出連接請求,實時接收服務(wù)子系統(tǒng)發(fā)送的氣象數(shù)據(jù)信息。將相應(yīng)的氣象數(shù)據(jù)信息在終端上進(jìn)行顯示,供民航空中交通管制部門、預(yù)報部門及其它部門使用。監(jiān)控與服務(wù)子系統(tǒng)的連接狀態(tài),確保氣象數(shù)據(jù)信息的實時有效性。對接收的氣象數(shù)據(jù)進(jìn)行完整性檢查、拆分。進(jìn)行相應(yīng)的運行日志管理。
硬件方面可劃為3部分,包含服務(wù)子系統(tǒng)、客戶端子系統(tǒng)和通信子系統(tǒng),3部分相輔相成共同完成氣象自動云能天系統(tǒng)的數(shù)據(jù)采集、顯示和監(jiān)控等各項功能。通信子系統(tǒng)與服務(wù)子系統(tǒng)、客戶端子系統(tǒng)在網(wǎng)絡(luò)上實現(xiàn)物理隔離,保障各自的網(wǎng)絡(luò)獨立性,滿足行業(yè)規(guī)范的要求。如圖2所示。
圖2 氣象自動云能天系統(tǒng)硬件結(jié)構(gòu)圖
本系統(tǒng)采用Windows 7系統(tǒng)作為操作系統(tǒng)平臺,具有用戶熟悉的圖形界面。本系統(tǒng)軟件開發(fā)環(huán)境是以Visual C++6.0作為開發(fā)平臺[3-11]。
2.2.1 通信子系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)
實現(xiàn)本子系統(tǒng)的功能,有兩個關(guān)鍵點,一是通過網(wǎng)絡(luò)連接民航氣象觀測測報系統(tǒng),獲取相應(yīng)的氣象數(shù)據(jù),二是通過串行異步通信技術(shù)將氣象數(shù)據(jù)發(fā)送至服務(wù)子系統(tǒng)。
1)獲取民航氣象觀測測報系統(tǒng)氣象數(shù)據(jù)
獲取氣象數(shù)據(jù)的核心就是連接民航氣象觀測測報系統(tǒng),向其發(fā)送請求氣象數(shù)據(jù)命令,接收相應(yīng)的氣象數(shù)據(jù)。程序中通過CAsyncSocket類對象實現(xiàn)與民航氣象觀測測報系統(tǒng)的網(wǎng)絡(luò)連接[12],連接成功后民航氣象觀測測報系統(tǒng)會給客戶端發(fā)送OK標(biāo)志,收到此標(biāo)志后,通信子系統(tǒng)可發(fā)送請求數(shù)據(jù)命令,氣象觀測測報軟件接到請求命令,立即發(fā)送云、能見度、天氣現(xiàn)象和最近時段實況報文氣象數(shù)據(jù)。
2)氣象數(shù)據(jù)發(fā)送至服務(wù)子系統(tǒng)
通信子系統(tǒng)收到氣象數(shù)據(jù)信息后,在通信子系統(tǒng)與服務(wù)子系統(tǒng)兩個網(wǎng)絡(luò)互不相連的子系統(tǒng)間通過串行異步接口傳遞氣象數(shù)據(jù),在硬件方面只需要一條RS-232通信電纜,滿足了兩個業(yè)務(wù)網(wǎng)絡(luò)互相隔離的要求。程序中通過MSComm控件進(jìn)行串行異步通信[13-14],實現(xiàn)氣象數(shù)據(jù)跨網(wǎng)絡(luò)傳輸。
2.2.2 通信子系統(tǒng)工作流程
通信子系統(tǒng)主要完成以下幾項功能:連接氣象觀測測報系統(tǒng)、請求氣象數(shù)據(jù)、接收氣象數(shù)據(jù)、氣象數(shù)據(jù)管理、氣象數(shù)據(jù)顯示、氣象數(shù)據(jù)發(fā)送、斷開與氣象觀測測報系統(tǒng)連接和其它輔助功能等,如圖3所示。
實現(xiàn)上述業(yè)務(wù)功能,通信子系統(tǒng)工作流程設(shè)計包含以下幾步:
1)初始化;
2)連接民航氣象觀測測報系統(tǒng)。通過TCP/IP協(xié)議[15],連接民航氣象觀測測報系統(tǒng),連接成功狀態(tài)顯示為綠色,失敗為紅色,主動斷開為黃色;
3)請求氣象數(shù)據(jù)。通過向民航氣象觀測測報系統(tǒng)發(fā)送相應(yīng)的命令,請求氣象數(shù)據(jù);
4)接收氣象數(shù)據(jù)。監(jiān)聽并接收民航氣象觀測測報系統(tǒng)發(fā)送的氣象數(shù)據(jù);
5)氣象數(shù)據(jù)管理。對收到的氣象數(shù)據(jù)進(jìn)行完整性檢查,完整性檢查不合格的氣象數(shù)據(jù)請求重發(fā),還包含數(shù)據(jù)分揀和重新打包等工作;
6)顯示氣象數(shù)據(jù)。將分揀的氣象數(shù)據(jù)在通信子系統(tǒng)的應(yīng)用界面中顯示;
7)發(fā)送氣象數(shù)據(jù)。通過串行異步通信口,將氣象數(shù)據(jù)發(fā)送至服務(wù)子系統(tǒng);
8)斷開與民航氣象觀測測報系統(tǒng)的連接。釋放資源,置狀態(tài)標(biāo)記為黃色;
9)日志信息管理。對程序運行過程中產(chǎn)生的異常情況進(jìn)行分類記錄和管理。
圖3 通信子系統(tǒng)工作流程圖
2.3.1 服務(wù)子系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)
實現(xiàn)本子系統(tǒng)的功能,有3個關(guān)鍵點,一是多線程技術(shù),實現(xiàn)一個服務(wù)端同時與多個客戶端的通信。二是監(jiān)聽串行異步通信口的通信事件,接收從通信子系統(tǒng)發(fā)送來的氣象數(shù)據(jù)。三是監(jiān)聽客戶端子系統(tǒng)發(fā)來的連接請求,與之建立網(wǎng)絡(luò)連接,向其發(fā)送氣象數(shù)據(jù)和狀態(tài)信息。
1)多線程技術(shù)
多線程技術(shù)即在同一個程序中可以同時讓操作系統(tǒng)執(zhí)行多個任務(wù),這種策略能夠提高CPU的利用率,提高程序的執(zhí)行效率[16]。服務(wù)子系統(tǒng)需同時與多個客戶端子系統(tǒng)通信,只有采用多線程技術(shù)才能滿足氣象業(yè)務(wù)的需求。程序中通過定義線程函數(shù),利用AfxBeginThread函數(shù)創(chuàng)建線程,實現(xiàn)與客戶端子系統(tǒng)的通信。
2)接收通信子系統(tǒng)發(fā)送的氣象數(shù)據(jù)
服務(wù)子系統(tǒng)對串行異步通信口的通信事件進(jìn)行監(jiān)聽,數(shù)據(jù)到達(dá)后觸發(fā)數(shù)據(jù)接收事件,開啟氣象數(shù)據(jù)接收模式,對接收的氣象數(shù)據(jù)做完整性檢查,完整性檢查合格后重新打包向客戶端子系統(tǒng)發(fā)送,并將氣象數(shù)據(jù)顯示在服務(wù)子系統(tǒng)的界面上。程序中采用MSComm控件進(jìn)行串行異步通信,實現(xiàn)氣象數(shù)據(jù)跨網(wǎng)絡(luò)傳輸。
3)建立與客戶端的連接并向其發(fā)送氣象數(shù)據(jù)
服務(wù)子系統(tǒng)與客戶端之間設(shè)計是基于C/S結(jié)構(gòu)模式[17],采用Socket類實現(xiàn)與客戶端的連接[18-20],使用TCP/IP通信協(xié)議,確保服務(wù)端到客戶端的氣象數(shù)據(jù)傳輸安全可靠,如圖4所示。設(shè)置了手動應(yīng)急按鈕,通信子系統(tǒng)故障時能手動發(fā)送所有氣象數(shù)據(jù)。程序中通過Socket類對象與客戶端連接,連接成功后向客戶端發(fā)送OK狀態(tài)信息。收到客戶端發(fā)出的數(shù)據(jù)請求命令,立即向該客戶端發(fā)送相應(yīng)的氣象數(shù)據(jù)。接收客戶端發(fā)送的狀態(tài)信息,顯示客戶端的在線情況。
圖4 流套接字編程時序圖
2.3.2 服務(wù)子系統(tǒng)工作流程
服務(wù)子系統(tǒng)主要完成以下幾項功能:接收客戶端的連接請求、接收通信子系統(tǒng)的氣象數(shù)據(jù)、氣象數(shù)據(jù)管理、氣象數(shù)據(jù)顯示、氣象數(shù)據(jù)分發(fā)、與客戶端間的狀態(tài)管理和其它輔助功能等,如圖5所示。
實現(xiàn)上述業(yè)務(wù)功能,服務(wù)子系統(tǒng)工作流程設(shè)計包含以下幾步:
1)初始化;
2)接收氣象數(shù)據(jù)。監(jiān)聽串行異步通信口通信事件,并接收通信子系統(tǒng)通過串行異步通信口發(fā)來的氣象數(shù)據(jù);
圖5 服務(wù)子系統(tǒng)工作流程圖
3)氣象數(shù)據(jù)管理。對收到的氣象數(shù)據(jù)進(jìn)行完整性檢查,完整性檢查不合格的氣象數(shù)據(jù)請求重發(fā),還包含數(shù)據(jù)分揀和重新打包等工作;
4)顯示氣象數(shù)據(jù)。將收到的氣象數(shù)據(jù)信息在界面上進(jìn)行顯示;
5)接收客戶端子系統(tǒng)的連接請求。監(jiān)聽客戶端通過TCP/IP協(xié)議發(fā)來的連接請求,建立客戶端的連接,向客戶端發(fā)送狀態(tài)信息,開啟新的連接監(jiān)聽;
6)向客戶端發(fā)送數(shù)據(jù)。氣象數(shù)據(jù)經(jīng)過重新打包,通過網(wǎng)絡(luò)向客戶端發(fā)送氣象數(shù)據(jù)。定時向客戶端發(fā)送狀態(tài)信息;
7)手動發(fā)送氣象數(shù)據(jù)。在通信子系統(tǒng)故障的情況下,通過獲取界面上人工輸入的氣象數(shù)據(jù),手動將氣象數(shù)據(jù)發(fā)送至客戶端;
8)斷開與客戶端子系統(tǒng)的連接。系統(tǒng)正常退出或與客戶端子系統(tǒng)之間連接異常時,主動釋放資源,同時開啟新的連接監(jiān)聽;
9)日志信息管理。對程序運行過程中產(chǎn)生的異常情況進(jìn)行分類記錄和管理。
2.4.1 客戶端子系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)
實現(xiàn)本子系統(tǒng)的功能,有兩個關(guān)鍵點,一是氣象數(shù)據(jù)信息。二是實現(xiàn)與維薩拉自動氣象觀測系統(tǒng)終端界面完全一致,讓用戶在視覺上感覺是同一個界面顯示。
1)連接服務(wù)端并接收氣象數(shù)據(jù)
客戶端采用Socket類對象與服務(wù)端進(jìn)行連接,實時接收服務(wù)端發(fā)送的OK狀態(tài)信息和氣象數(shù)據(jù),定時向服務(wù)端發(fā)送狀態(tài)信息。首次連接服務(wù)子系統(tǒng)會主動向服務(wù)子系統(tǒng)發(fā)送請求數(shù)據(jù)命令。
2)實現(xiàn)與維薩拉自動氣象觀測系統(tǒng)終端界面完全一致
利用SetWindowPos函數(shù)將窗口置為最上層顯示,時刻保證客戶端子系統(tǒng)總在最上一層顯示,調(diào)整客戶端子系統(tǒng)在民航自動氣象觀測系統(tǒng)終端界面上的位置,通過重載OnCtlColor函數(shù)更改背景顏色,達(dá)到兩界面合一的效果。
2.4.2 客戶端子系統(tǒng)工作流程
客戶端子系統(tǒng)主要完成以下幾項功能:接收服務(wù)子系統(tǒng)的氣象數(shù)據(jù)、氣象數(shù)據(jù)管理、氣象數(shù)據(jù)顯示、與服務(wù)端間的狀態(tài)管理和其它輔助功能等,如圖6所示。
圖6 客戶端子系統(tǒng)工作流程圖
要實現(xiàn)以上功能,客戶端子系統(tǒng)工作流程有以下幾步:
1)初始化;
2)連接服務(wù)子系統(tǒng)。通過TCP/IP協(xié)議,連接服務(wù)子系統(tǒng),連接成功顯示連接狀態(tài)為綠色,反之為紅色;
3)請求氣象數(shù)據(jù)。通過向服務(wù)子系統(tǒng)發(fā)送相應(yīng)的命令,請求所需的氣象數(shù)據(jù);
4)接收氣象數(shù)據(jù)。實時接收服務(wù)子系統(tǒng)發(fā)送的氣象數(shù)據(jù);
5)氣象數(shù)據(jù)管理。對收到的氣象數(shù)據(jù)進(jìn)行完整性檢查,完整性檢查不合格的氣象數(shù)據(jù)請求重發(fā);
6)顯示氣象數(shù)據(jù)。將收到的氣象數(shù)據(jù)信息進(jìn)行分揀后在界面上進(jìn)行顯示;
7)斷開與服務(wù)子系統(tǒng)的連接。系統(tǒng)正常退出或與服務(wù)子系統(tǒng)之間連接異常時,主動釋放資源,同時發(fā)啟新的連接請求;
8)日志信息管理。對程序運行過程中產(chǎn)生的異常情況進(jìn)行分類記錄和管理。
該系統(tǒng)的運行環(huán)境為Windows 7,系綠色軟件,不需要安裝。各子系統(tǒng)的實際運行效果圖如圖7、圖8和圖9所示。
圖7 通信子系統(tǒng)
圖8 服務(wù)子系統(tǒng)
圖9 客戶端子系統(tǒng)
通信子系統(tǒng)、服務(wù)子系統(tǒng)和客戶端子系統(tǒng)經(jīng)過近一年的測試和完善后,在接下的兩年里保持連續(xù)不間斷的運行,3個子系統(tǒng)在運行、數(shù)據(jù)傳輸、顯示等方面都穩(wěn)定可靠,未出現(xiàn)過任何故障。
系統(tǒng)通過網(wǎng)絡(luò)從民航氣象觀測測報系統(tǒng)中取得氣象數(shù)據(jù),將取得的氣象數(shù)據(jù)通過串行異步通信口傳輸至自動氣象觀測系統(tǒng)的服務(wù)子系統(tǒng),由服務(wù)子系統(tǒng)向各客戶端分發(fā),最后在客戶端實現(xiàn)氣象數(shù)據(jù)的顯示。系統(tǒng)在兩個網(wǎng)絡(luò)間采用異步串行通信,保證兩個不同業(yè)務(wù)網(wǎng)絡(luò)在硬件上的隔離,滿足自動氣象觀測系統(tǒng)的網(wǎng)絡(luò)獨立安全的要求。
通信子系統(tǒng)與氣象觀測測報系統(tǒng)間的網(wǎng)絡(luò)連接、通信子系統(tǒng)與服務(wù)子系統(tǒng)間的串行異步通信連接服務(wù)子系統(tǒng)與客戶端子系統(tǒng)間的網(wǎng)絡(luò)連接都是通過參數(shù)文件來設(shè)置,增強氣象自動云能天系統(tǒng)的兼容性,利于其在民航系統(tǒng)內(nèi)的應(yīng)用推廣。服務(wù)子系統(tǒng)與客戶端子系統(tǒng)間設(shè)計了100個客戶同時通信,預(yù)留了擴展的空間。
通過與現(xiàn)階段傳遞同樣氣象信息的其它手段對比,氣象自動云能天系統(tǒng)在實際工作中給用戶的體驗是操作簡單,視覺感強,交互性好。對設(shè)備維護(hù)人員來說,通過系統(tǒng)自身的狀態(tài)信息能快速確立故障點,維護(hù)方便簡單。系統(tǒng)還具有用戶數(shù)擴展性好、數(shù)據(jù)準(zhǔn)確性高、響應(yīng)速度快、人工勞動強度低、實時性強等優(yōu)點,如表1所示。
表1 用戶體驗結(jié)果對比表
氣象自動云能天系統(tǒng)解決了民航氣象觀測員與空中交通管制人員及其他氣象人員在信息通報方面的難題,也實現(xiàn)了人工觀測的云、主導(dǎo)能見度、天氣象現(xiàn)象和最近時段氣象報文數(shù)據(jù)的自動獲取,極大地滿足了民航空中交通管制人員和氣象人員的工作需求,降低了他們的工作強度,提高了工作效率,取得了良好的經(jīng)濟效益。目前,該系統(tǒng)在全國多個機場使用,系統(tǒng)運行穩(wěn)定可靠,達(dá)到了設(shè)計的目標(biāo)。