石啟亮,李 強,曾俊康
(中國衛(wèi)星海上測控部,江蘇 江陰 214431)
航天測量船是我國航天測控網(wǎng)的重要組成部分[1],其主要承擔目標飛行器的海上測控任務(wù)。綜合測控基帶設(shè)備[2]是船載統(tǒng)一載波測控系統(tǒng)的一個關(guān)鍵組成設(shè)備,它將衛(wèi)星控制中心與測控系統(tǒng)的上/下行信道連接起來,是集遙測、遙控、測距、測速、數(shù)傳等測控業(yè)務(wù)功能于一體的綜合終端設(shè)備,并具有多體制測控功能,其運行可靠性關(guān)系到測控任務(wù)的成敗。因此綜合測控基帶設(shè)備具有功能多、數(shù)據(jù)交互格式多、傳輸數(shù)據(jù)量大、傳輸頻率高等特點,同時基帶設(shè)備運行時還涉及到成百上千個設(shè)備工作參數(shù)讀取、設(shè)置和上百個工作狀態(tài)的監(jiān)視,但是目前基帶設(shè)備的數(shù)據(jù)和狀態(tài)監(jiān)視功能卻十分匱乏,只采用單一的數(shù)值顯示方式,不具備監(jiān)視設(shè)備數(shù)據(jù)和狀態(tài)的變化趨勢的功能,已不符合數(shù)據(jù)分析和狀態(tài)監(jiān)視的需要。因此采用可視化綜合監(jiān)視方案,設(shè)計一套可視化綜合監(jiān)視系統(tǒng)軟件,豐富基帶數(shù)據(jù)分析和狀態(tài)監(jiān)視方法和手段,輔助崗位人員全方位了解綜合測控基帶設(shè)備的運行狀態(tài)和測控業(yè)務(wù)數(shù)據(jù)傳輸狀態(tài)并作出有效判斷和決策,可以有效減少由于需要顯示的數(shù)據(jù)和狀態(tài)項較多,崗位人員在長時間工作的情況下無法有效監(jiān)視設(shè)備狀態(tài)的變化趨勢且容易漏讀漏判狀態(tài)的情況,為圓滿完成測控任務(wù)提供可靠保障。
在船載統(tǒng)一載波測控系統(tǒng)中,綜合測控基帶設(shè)備連接3個網(wǎng)絡(luò),分別是監(jiān)控網(wǎng)、測控網(wǎng)、數(shù)傳網(wǎng),而遙測、遙控、測距、測速、數(shù)傳等測控業(yè)務(wù)數(shù)據(jù)和基帶設(shè)備監(jiān)控信息數(shù)據(jù)均采用UDP協(xié)議,通過組播方式同時以1~20 Hz的不同頻率傳輸?shù)?個不同的網(wǎng)絡(luò)中,因此不同類型數(shù)據(jù)具有不同的IP地址、端口號、組播地址。設(shè)計的基帶實時可視化綜合監(jiān)視方案中主要由連接監(jiān)控網(wǎng)、測控網(wǎng)、數(shù)傳網(wǎng)3個網(wǎng)絡(luò)的其中一臺備份綜合測控基帶設(shè)備(非工作機)或者另配工控機作為監(jiān)視計算機,用于3個測控網(wǎng)絡(luò)中各類測控業(yè)務(wù)數(shù)據(jù)和設(shè)備監(jiān)控信息的接收、處理及顯示。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 可視化綜合監(jiān)視系統(tǒng)結(jié)構(gòu)框圖
基帶實時可視化綜合監(jiān)視具備以下作用:
1)通過監(jiān)控網(wǎng)獲取基帶設(shè)備上報給系統(tǒng)監(jiān)控臺的監(jiān)控信息數(shù)據(jù),用于基帶設(shè)備接收信號狀態(tài)可視化監(jiān)視和工作參數(shù)狀態(tài)核查。
2)通過測控網(wǎng)獲取基帶設(shè)備發(fā)送至測控中心的遙測、測距、測速、遙控返回數(shù)據(jù)等信息,伺服監(jiān)控輸出的方位、俯仰角誤差等測角數(shù)據(jù),脈雷測量設(shè)備輸出的脈雷測量數(shù)據(jù)以及中心發(fā)送至測控系統(tǒng)的遙控指令、引導信息等數(shù)據(jù),用于各類測控業(yè)務(wù)數(shù)據(jù)的可視化監(jiān)視。
3)通過數(shù)傳網(wǎng)獲取基帶設(shè)備發(fā)往測控中心的數(shù)傳Q路數(shù)據(jù)、鏈監(jiān)信息,用于數(shù)傳Q路數(shù)據(jù)的可視化監(jiān)視和鏈路通斷情況的監(jiān)視。
船載統(tǒng)一載波測控系統(tǒng)基帶實時可視化綜合監(jiān)視系統(tǒng)軟件主要由主窗口和基帶網(wǎng)絡(luò)數(shù)據(jù)監(jiān)視、接收信號特性監(jiān)視、測距測速變化監(jiān)視、遙測數(shù)據(jù)處理監(jiān)視、數(shù)傳Q路數(shù)據(jù)監(jiān)視、遙控狀態(tài)處理監(jiān)視、角誤差特性監(jiān)視、基帶參數(shù)核查監(jiān)視等8個功能模塊組成。設(shè)計的各模塊功能如下所述:
1)網(wǎng)絡(luò)數(shù)據(jù)監(jiān)視功能。對綜合測控基帶設(shè)備發(fā)送和接收到監(jiān)控、測控、數(shù)傳3個網(wǎng)絡(luò)的數(shù)據(jù)進行監(jiān)視、統(tǒng)計,并監(jiān)視相應(yīng)通道的數(shù)據(jù)。
2)接收信號特性監(jiān)視功能。用于實時顯示綜合測控基帶設(shè)備接收信號信噪比S/φ、AGC電壓、多普勒頻率變化曲線,采用二維曲線方式顯示,并記錄接收信號閃斷特征點,對基帶狀態(tài)數(shù)據(jù)源碼、解析換算后的信噪比S/φ、AGC電壓、多普勒頻率值等進行實時存盤。
3)測距測速變化監(jiān)視功能。用于實現(xiàn)顯示基帶、脈雷設(shè)備測量數(shù)據(jù)、引導數(shù)據(jù),采用圖形顯示、數(shù)值顯示方式實時顯示距離值、速度值、差值等,可以進行一階差分計算并生成曲線,并記錄測距、測速數(shù)據(jù)閃斷特征點,其中測距、測速數(shù)據(jù)接收處理頻率可根據(jù)數(shù)據(jù)傳輸頻率進行設(shè)置。對接收到的各類測量數(shù)據(jù)源碼、解析轉(zhuǎn)換后的測量數(shù)據(jù)進行實時存盤。
4)遙測數(shù)據(jù)處理監(jiān)視功能。用于實時監(jiān)視基帶遙測數(shù)據(jù)發(fā)送情況,具備全幀顯示、挑路顯示、曲線顯示、柱狀顯示等方式。具備對基帶輸出的遙測數(shù)據(jù)進行實時、事后丟幀測試的功能??梢杂涗浕鶐Оl(fā)送的遙測數(shù)據(jù)源碼。
5)數(shù)傳Q路數(shù)據(jù)監(jiān)視功能。用于實時監(jiān)視基帶數(shù)傳Q路數(shù)據(jù)及鏈監(jiān)信息發(fā)送情況,具備全幀顯示、挑路顯示、曲線顯示、柱狀顯示等方式。具備對基帶輸出的數(shù)傳Q路數(shù)據(jù)進行實時、事后丟幀測試的功能??梢杂涗浕鶐Оl(fā)送的數(shù)傳Q路數(shù)據(jù)源碼。
6)遙控狀態(tài)處理監(jiān)視功能。用于監(jiān)視、統(tǒng)計綜合測控基帶設(shè)備遙控指令接收處理、執(zhí)行及應(yīng)答信息發(fā)送情況,采用列表方式顯示各類信息。
7)角誤差特性監(jiān)視功能。用于監(jiān)視伺服輸出方位俯仰角度、AGC電壓變化情況,采用二維曲線方式顯示。對接收到的測角數(shù)據(jù)源碼、解析轉(zhuǎn)換后的測角數(shù)據(jù)進行實時存盤。
8)基帶參數(shù)核查監(jiān)視功能。用于監(jiān)視綜合測控基帶設(shè)備上報至系統(tǒng)監(jiān)控臺的工作參數(shù)狀態(tài)情況,核查參數(shù)加載是否正確。
基帶實時可視化綜合監(jiān)視系統(tǒng)需采集的數(shù)據(jù)包括處理綜合測控基帶設(shè)備輸入/輸出的遙測、測距、測速、遙控、數(shù)傳、監(jiān)控等數(shù)據(jù)之外,還包括脈雷測量系統(tǒng)輸出的測量數(shù)據(jù)、伺服監(jiān)控輸出的測角數(shù)據(jù)以及軌道理論引導數(shù)據(jù)等。這些數(shù)據(jù)以1~20 Hz不同頻率分別在3個測控網(wǎng)上以組播形式傳播,因此具有不同的IP地址、端口號和組播地址。軟件接收到這些數(shù)據(jù)后,通過信息格式校驗和解析,最終以曲線、數(shù)值、二進制源碼、列表等形式進行可視化顯示。為提高數(shù)據(jù)接收的可靠性、實時性,基帶實時可視化綜合監(jiān)視軟件設(shè)計為單進程多線程工作機制,采用MFC多線程編程處理這些并行發(fā)送數(shù)據(jù),從而提升軟件的運行效率。為保證數(shù)據(jù)接收的實時性,降低程序邏輯復雜度,總計設(shè)計了9個測量數(shù)據(jù)接收線程,其中將測控網(wǎng)的數(shù)據(jù)接收按數(shù)據(jù)類型分為7個線程,監(jiān)控網(wǎng)、數(shù)傳網(wǎng)各1個線程。軟件多線程工作機制設(shè)計如圖2所示,均采用全局函數(shù)AfxBeginThread()來創(chuàng)建并初始化一個線程的運行。
圖2 多線程工作機制
基帶實時可視化綜合監(jiān)視系統(tǒng)軟件啟動后,進行系統(tǒng)軟件初始化,各功能模塊從主窗口模塊獲取3個網(wǎng)絡(luò)的配置參數(shù),主要包括IP地址、組播地址、端口號等。以測距測速變化監(jiān)視模塊為例,設(shè)計的工作流程如圖3所示,其他模塊參考設(shè)計。測距測速變化監(jiān)視工作流程主要實現(xiàn)過程如下:
1)在啟動網(wǎng)絡(luò)接收前,先進行時間格式、坐標軸參數(shù)、曲線類型等相關(guān)曲線顯示參數(shù)的設(shè)置,然后可以同時啟動界面刷新定時器和測量數(shù)據(jù)網(wǎng)絡(luò)接收線程,即圖2中線程1~4。設(shè)置定時器控制界面刷新周期為500 ms。
圖3 測距測速變化監(jiān)視工作流程
2)完成套接字創(chuàng)建并綁定IP地址、組播地址、端口號。使用socket()函數(shù)建立套接字,若成功創(chuàng)建套接字并綁定IP地址、端口號,將各類測量數(shù)據(jù)的組播地址加入組播后,并啟動接收進入無限循環(huán)程序,使用recvfrom()函數(shù)處于等待狀態(tài),直到接收到指定套接字的組播消息,如果收到的消息長度大于0,按照數(shù)據(jù)源、數(shù)據(jù)標志碼、信息類別等特征字進行分類和數(shù)據(jù)格式判斷,并調(diào)用自定義測量數(shù)據(jù)解包類中的功能函數(shù)以規(guī)定的數(shù)據(jù)幀格式規(guī)范對數(shù)據(jù)進行解析處理,生成對應(yīng)的時間(包括絕對時和相對時兩種格式)、距離值、速度值,和接收幀計數(shù)、二進制源碼等數(shù)據(jù)按規(guī)定的結(jié)構(gòu)存儲在緩存區(qū),供數(shù)據(jù)顯示函數(shù)調(diào)用。同時根據(jù)接收到的測量數(shù)據(jù)的前、后兩幀中的幀計數(shù)進行丟幀判斷,若同一類型測量數(shù)據(jù)前、后兩幀幀計數(shù)差大于1,則判斷出現(xiàn)丟幀,采用MFC消息機制中PostMessage()函數(shù)將消息放入消息隊列,調(diào)用自定義消息響應(yīng)函數(shù)將丟幀信息插入日志隊列并顯示。
考慮到測量數(shù)據(jù)接收解析和界面數(shù)據(jù)顯示刷新具有不同的頻率,因此采用共享緩沖區(qū)的設(shè)計實現(xiàn)同步通信,其中數(shù)據(jù)接收對緩存區(qū)只寫,按接收順序依次編號排列,而數(shù)據(jù)顯示則對緩存區(qū)只讀,軟件根據(jù)數(shù)據(jù)接收幀計數(shù)將緩存區(qū)中的所有已收到的數(shù)據(jù)用于界面顯示。
4)在定時器控制下,調(diào)用數(shù)據(jù)顯示函數(shù)刷新界面中圖形顯示、數(shù)值顯示、源碼顯示等控件。設(shè)計中增加了必要的限制條件,即收到數(shù)據(jù)幀計數(shù)大于1時才開始啟動界面刷新,避免增加計算量和計算機資源消耗。
5)若啟動存盤則根據(jù)接收到各類測量數(shù)據(jù)的數(shù)據(jù)標志碼、數(shù)據(jù)類型、存盤時間創(chuàng)建各自的存盤文件,對每一類測量數(shù)據(jù)源碼、解析后的測量數(shù)據(jù)分別進行存盤。
6)在停止網(wǎng)絡(luò)接收后,按順序解綁IP地址、端口號、組播地址,關(guān)閉套接字,結(jié)束數(shù)據(jù)接收線程。若需要對接收到的距離值、速度值進行質(zhì)量分析,可以選擇采用差分計算,則從數(shù)據(jù)緩沖區(qū)調(diào)用解析后的時間、距離值、速度值等信息后進行一階差分計算,并在圖形顯示控件中顯示,可以有效分析距離、速度變化情況,找出數(shù)據(jù)野值,從而確定整個飛行器跟蹤弧段是否存在數(shù)據(jù)中斷、跳變等異常情況。
船載統(tǒng)一載波測控系統(tǒng)基帶實時可視化綜合監(jiān)視系統(tǒng)軟件在Windows XP系統(tǒng)平臺上采用Visual C++ 6.0[3-7]編程環(huán)境進行開發(fā),軟件中圖形繪制采用Steema Software公司開發(fā)的TeeChart8.0繪圖控件[8-10],該控件支持多種操作系統(tǒng),具有豐富的API編程接口,圖形功能強大并且繪圖效率極高,特別是在軟件程序中制作曲線圖、柱狀圖時使用方便,可控性強。
軟件主要實現(xiàn)過程如下:在VC++6.0環(huán)境中創(chuàng)建工程BBEDataMonitorProject,建立基本對話框應(yīng)用程序。在對話框主界面上添加一個Tab Control控件,增加8個屬性頁,每個屬性頁是用一個“窗體”(對話框)來實現(xiàn)。在工程對話框資源里面添加8個子對話框,分別對應(yīng)8個功能模塊,并為對話框建類,將Tab Control控件屬性頁與8個子對話框關(guān)聯(lián)。基帶實時可視化綜合監(jiān)視系統(tǒng)軟件如圖4所示,通過選擇Tab Control控件標簽來切換功能模塊,當前顯示的為測距測速變化監(jiān)視模塊界面。
圖4 測距測速變化監(jiān)視界面
測距測速變化監(jiān)視模塊以圖形顯示、數(shù)值顯示、源碼顯示、列表顯示等相結(jié)合的方式實現(xiàn)測距、測速的可視化監(jiān)視。其以圖形方式顯示距離、速度曲線,以數(shù)值方式顯示當前時間、距離、速度值,以源碼顯示方式顯示當前測距、測速接收數(shù)據(jù)幀,以列表方式記錄數(shù)據(jù)接收、丟幀等情況。因此測距測速變化監(jiān)視模塊界面設(shè)計中主要使用了TeeChart控件、MSFlexGrid控件、ListCtrl控件、Edit控件、Button控件以及一些單選、多選控件等。其中兩個TeeChart控件用于多種測控體制和數(shù)據(jù)源的測距、測速數(shù)據(jù)的實時曲線的顯示,在安裝注冊TeeChart控件后,通過插入ActiveX控件的方式將TeeChart控件增加到對話框界面中;1個MSFlexGrid控件用于實時顯示當前時間、距離、速度值,以及測控系統(tǒng)測量數(shù)據(jù)與脈雷測量系統(tǒng)測量數(shù)據(jù)、引導數(shù)據(jù)之間的差值,以表格化的形式展現(xiàn);3個Edit控件分別用于顯示測距、測速、脈雷數(shù)據(jù)源碼,通過單選控件來選擇切換顯示的源碼;8個Button控件分別對應(yīng)坐標軸設(shè)置、顯示參數(shù)設(shè)置、網(wǎng)收開始/停止、日志存盤、繪圖重置、保存圖片、差分計算功能按鈕;另外兩個ListCtrl控件分別用于測距、測速日志記錄。
將船載統(tǒng)一載波測控系統(tǒng)基帶實時可視化綜合監(jiān)視系統(tǒng)軟件部署在一套備份綜合測控基帶設(shè)備上,同時啟動6路測距、6路測速、1路脈雷測量數(shù)據(jù)、8路遙測、1路數(shù)傳、1路遙控、1路引導總計24路數(shù)據(jù)進行測試,數(shù)據(jù)發(fā)送均采用UDP協(xié)議以組播形式進行,具有1~20 Hz的不同發(fā)送頻率。測試結(jié)果充分驗證了可視化綜合監(jiān)視軟件能正確接收所有測控數(shù)據(jù),各功能模塊能清晰顯示各類數(shù)據(jù)接收及變化情況,且日志記錄完整。對各功能模塊界面進行切換測試,完成時間小于2 s。軟件分別運行10 min、20 min、30 min后的運行效率測試結(jié)果見表1。從測試結(jié)果可知,在軟件運行30分鐘后,CPU占用最大為15%,內(nèi)存占用<100 MB(綜合測控基帶工控機硬件平臺CPU采用Intel Core2 i7雙核四線程3.2 GHz、運行內(nèi)存4GB),遠小于軟件設(shè)計要求中CPU占用≤30%,內(nèi)存占用≤20%的要求。
表1 軟件運行效率測試結(jié)果
通過采用可視化綜合監(jiān)視方案,設(shè)計了一套統(tǒng)一載波測控系統(tǒng)基帶實時可視化綜合監(jiān)視系統(tǒng)軟件,實現(xiàn)了對綜合測控基帶接收和發(fā)送的各類數(shù)據(jù)、狀態(tài)的可視化監(jiān)視。通過優(yōu)化可視化綜合監(jiān)視系統(tǒng)軟件架構(gòu)和工作機制、流程,提升了軟件的實時性、可靠性。軟件功能豐富、可視化程度高,具有良好的交互性。通過應(yīng)用該可視化監(jiān)視方案和軟件,可以實時監(jiān)視基帶設(shè)備各類數(shù)據(jù)的收發(fā)狀態(tài)、變化趨勢和異常實時診斷情況,有效避免數(shù)據(jù)、狀態(tài)監(jiān)視中存在的漏讀、漏判的情況,提升崗位人員工作效率、設(shè)備可靠性。