四創電子股份有限公司 姜艷艷 范 暉
隨著雷達技術的發展,為適應相同天氣下,不同頻段雷達數據的比對,多頻段雷達有了越來越多的應用。基于目前計算機及網絡技術的發展,實時處理顯示多頻段雷達數據,并可靠的運行,是多頻段雷達數據處理終端的需求。本文講述基于QT平臺,運用QT GDI、進程、數據庫等技術,實時顯示三頻段雷達的回波數據,控制雷達運行狀態,基于QT的顯控終端軟件設計也使整個系統的兼容性和可擴充性得以極大提升,為跨平臺操作提供便利。
雷達顯示終端系統是雷達系統的重要組成部分,是人機界面交互的工具,主要負責對雷達各分系統的控制、雷達故障報警、雷達狀態監視、雷達數據采集、數據處理顯示及數據保存等功能。本文基于XKaW三頻段雷達系統,利用QT平臺開發適應多波段數據顯示的終端軟件。終端軟件界面簡潔,人機交互性強,且具有自動加載模式等功能。
軟件運行于Win10操作系統,基于Qt5.7平臺,選用戴爾T7920工作站,型號5222,8核CPU,3.8G主頻,64G內存,該電腦可滿足同時接收3頻段數據的帶寬。
雷達終端軟件運行于戴爾T7920工作站,工作站置于雷達旁邊的移動方艙內。其他分系統通過RJ45接入交換機,交換機接入工作站。工作站有多個網卡,一個網卡負責實現信號處理回波數據及狀態數據的接收,及信號處理的控制;另一個網卡接收伺服角碼及狀態回饋,還有一塊網卡負責與監控的通信,實現發送雷達控制指令及其他分系統的回饋數據。
終端軟件采用基于千兆網絡的雷達系統架構,以此實現各分系統間的高速數據交換及配置加載等功能。終端軟件設計的原則是界面友好,人機交互性強,符合軟件開發的標準化原則。QT是類MFC的面向對象的C++開發包,具有信號與槽的事件驅動機制,提供了豐富的類庫以及靈活易用的Qt Designer工具開發界面。Qt Designer是QT GUI編程語言一系列工具中的一個,該工具提供QT基本的可繪制窗口的部件。能夠快速高效的實現GUI界面的整體設計,界面直觀形象。Qt Designer為雷達終端的界面設計提供了便捷的方式和靈活的接口。終端軟件使用Qt Designer設計終端軟件主界面的部件和窗口,在人機交互中采用信號與槽的機制,使得對雷達的控制變得非常簡單,響應時間快。

圖1 終端軟件接口圖
軟件采用多進程的設計,主要包括三個雷達數據采集進程、監控終端進程、磁盤清理進程。因多頻段雷達數據量大,采用多進程可實現軟件的可靠性,優化控制內存的分配。采用QProcess調用start函數來啟動一個進程。雷達數據采集進程和監控終端進程間采用TCP/IP協議,定義接收和發送端口進行通訊。跨平臺的Qt Network模塊提供了眾多的類來實現網絡編程。它提供了高層的類(比如QNetworkAccessManager等)來使用指定的應用程序及協議,也提供了較底層的類(例如QTcoSocket、QTcpServer和QSslSocket)來實現相關的協議。監控終端進程采用定時器啟動磁盤清理進程,兩個進程間不進行通訊。
工作流程:終端軟件上電即自動進行初始化,主要完成主窗口應用程序框架的創建、地圖數據讀取、控制面板創建、回波顯示窗口創建、繪圖各位面和調色板的初始化、網絡初始化、各波段雷達各分系統參數配置、程序內存分配、創建回波數據口讀線程、創建狀態回饋口讀線程、創建控制命令口寫線程、創建數據保存線程、創建日志數據庫、發送控制指令使信號處理分系統、接收分系統和伺服分系統進入初始化狀態,同時,獲取當前顯示器最大分辨率和長寬比以便動態調整應用程序界面各控件的位置和大小以實現顯示器自適應的界面設計。初始化結束后程序進入就緒態,此時程序已經可以通過回波數據口讀線程實時獲取雷達回波數據,通過狀態回饋口讀線程獲取雷達工作狀態和監測參數,程序進入控制態首先確定雷達各頻段工作模式,確認工作模式后即可對發射分機、接收分機、信號處理分機和伺服分機通過控制命令口寫線程發送參數設置控制指令。最后根據用戶需求進入掃描、標定、數據保存或組合掃描等工作狀態。
1.2.1 數據采集進程
系統包含三個數據采集進程,三個數據采集進程軟件分別與三個信號處理板通信,接收三個波段雷達回波數據,包含基數據及功率譜數據,通過虛擬磁盤存儲,發送到主程序監控終端進程,一定時間后清除虛擬磁盤中的數據。數據采集進程在監控終端進程啟動時自動調用,在主進程退出時,自動退出。數據采集進程會提示對信號處理的設置,如不成功會出現提示信息,因基數據及功率譜數據較大,數據采集進程需做好內存分配,及時釋放內存。采集三個波段的數據,保證數據通訊的及時性,可靠性,是終端軟件設計開發時面臨的難點,在使用高性能計算機、千兆網卡、巨型幀等技術后,及時解決此問題。
1.2.2 監控終端進程
監控終端進程軟件采用多線程技術,以確保軟件可實時執行不同的任務,優化軟件結構。主線程主要負責軟件系統的同步控制及啟動從線程,從線程又包括數據采集線程、數據保存線程、網絡控制線程、數據顯示線程等,負責數據處理、雷達狀態參數回饋、發送雷達控制指令、回波數據的實時讀取、顯示和存儲等。多線程的應用提高了軟件的并行性及高效、快速、安全的數據處理能力。
監控終端進程軟件采用Socket網絡通信,通過發送網絡指令可實現對雷達的操控,網絡指令采用UDP組播協議,UDP是一個簡單的面向數據報的運輸層協議,具有資源消耗小、處理速度快的優點,無需事先進行握手操作,且允許和多臺計算機進行通信,對不同分系統采用不同IP、不同端口發送數據,指令按照協議經打包發送到相應的分系統。終端可通過網絡接收并解析各分系統的回饋及故障信息,并可實時顯示狀態及故障報警。
監控終端實時顯示畫面的穩定性和連續性是天氣雷達實時掃描的基本要求。由于雷達數據量大,數據顯示及存儲的處理速度要求較高。戴爾T7920工作站具有領先圖形卡提供商推出的最新圖形卡技術,對圖形的處理能力較強,顯示速度及效果較好,能完成工作所需的功能。
系統采用34in顯示器,分屏顯示不同波段的數據;監控終端進程軟件回波顯示采用GDI繪圖技術,運用雙緩沖機制保證圖像數據的繪制和畫面刷新交替有效進行,避免畫面閃爍,保證畫面的正常顯示。可顯示實時和非實時圖像,每個圖像顯示區可選擇單屏或四屏顯示,并可任意選擇顯示要素。
掃描一定時間后,按照每種掃描模式的數據保存周期,經過一定質量控制的數據,可進行手動及自動數據保存,啟動數據保存線程,保存三個波段的數據,并可進行磁盤檢測,若磁盤不足則啟動報警。數據保存文件名按照掃描方式及當前日期時間來命名,數據按照雷達常用的站點、觀測參數、性能參數、數據塊等進行保存,保證雷達數據與站點、參數等的相關性。
雷達基數據擬采用通用數據格式NetCDF。NetCDF是由美國大學大氣研究協會UCAR下Unidata項目科學家針對科學數據的特點,提出的一種面向數組型數據,適于網絡共享的數據描述和編碼標準。NetCDF軟件獨立于機器并用于保存科學數據,同時也是一個數據類庫接口,該數據類庫包含了訪問數組格式的功能。這種格式的接口、類庫都支持產生、訪問和共享科學數據。
日志管理功能采用SQLite數據庫技術,SQLite數據庫開發桌面數據庫非常簡單、高效,體積小,用于小型系統,以每天一個數據庫文件方式保存,記錄每天的操作及故障日志,并可查詢及導出記錄。并支持記錄日記,操作者可記錄當天重要工作,以便后續查看。
雷達系統機內溫度是影響雷達各系統器件能否正常工作的重要因素,終端系統每分鐘記錄恒溫器件的溫度,保存在文件中,為后續分析雷達數據提供溫度數據。
1.2.3 磁盤清理進程
每隔一段時間,主進程會啟動磁盤清理進程,對已經讀取的數據進行清除,釋放磁盤空間,為保證系統的穩定性,磁盤清理進程對數據進行監測,使磁盤中保留部分最新數據,以免因磁盤無數據造成主進程退出。
綜上所述,通過使用QT多進程、多線程、GDI、數據庫等技術,實現的三波段雷達終端軟件運行可靠、人機交互性強,能夠滿足具體的任務需求,且具有跨平臺優勢,已應用于多個試驗點,為冬奧會等提供天氣保障。