(中國運載火箭技術研究院 研究發展中心,北京 100076)
隨著我國航天器頻繁發射的常態化,以及各類科研空間探測器型號的不斷增多,對測發控軟件技術要求也不斷提髙[1]。目前測發控軟件的技術實現途徑主要分為兩類,傳統代碼實現和基于組態技術實現[2-4]。
傳統測發控軟件由于具體型號任務需求的差異,根據試驗具體要求,功能都是通過代碼定制開發實現的,一套軟件通常只能針對一個型號和試驗任務,任務需求和試驗方案一旦變更,需要專門的開發人員根據需求進行重新開發,軟件的測試維護都需要大量的人力物力支出,同時也對保障軟件的可靠性帶來難度[5-7]。
目前一些測發控軟件結合組態技術,可以對軟件部分功能以類似搭積木的簡單方式完成,當試驗任務需求發生更改時,無需進行大量底層源碼級的開發,實現軟件的靈活和可配置性,縮短軟件開發周期[8-10]。如某靶場測控軟件,由工程管理器、開發系統、運行系統、實時數據庫和其它模塊組成,根據導彈種類、試驗目的和測控方案,快速建立不同的導彈測控工程[11]。現有的組態化測發控軟件均根據所處理的數據工程實際和被測試對象特點,形成一套內部閉環的系統,靠事先固化好的程序實現固定類型數據的處理、編輯和顯示,交互界面編輯、數據監控、數據處理、數據存儲等各模塊間耦合緊密。而航天飛行器涉及遙測參數復雜,不同類型飛行器和型號對參數的設計與處理均不同,數據處理端一旦發生變化,交互界面的編輯與監控均無法適用。且現有測發控軟件的組態控件的設計僅限于特定工程類型,雖可以集成自定義控件,但對控件本身的設計缺少通用化接口,用戶擴展控件功能、開發新控件需要編寫大量代碼,具有集成難度。
本文克服現有技術的不足,提出一種基于復雜參數組態化顯控系統,對系統組成架構及各功能模塊進行了實施方式的描述。
一種基于復雜參數的組態化顯示監控系統將測發控軟件中顯示監控和數據中心分開,實現對不同領域各種類型數據的處理以及顯控界面的配置和終端靈活加載,系統構成如圖1所示,該系統包括數據配置模塊、控件設計模塊、界面配置模塊以及顯示終端模塊。

圖1 系統構成
其中數據配置模塊實現對測試覆蓋參數、數據幀幀協議、參數處理公式以及用戶登錄權限的配置,生成以xml文件格式存儲的數據配置文件,供界面配置模塊和顯示終端模塊使用。
控件設計模塊實現組態化控件設計,供界面配置模塊和顯示終端模塊使用。該模塊包括已定義好的一系列控件,包括文本、數字量、模擬量、狀態燈、曲線、切換欄、星點圖等,可供系統直接使用。同時具有通用持久化接口和標準化數據服務接口,支持用戶自定義控件,實現自定義控件的靈活設計與快速定義,供系統直接使用,大幅降低開發成本。
界面配置模塊用于快速配置滿足測試任務的終端界面,配置完成后,界面配置信息以xml文件格式進行保存,供顯示終端模塊進行加載。針對具體測試任務,建立界面模板和配置界面,從控件庫中以拖拽的方式選擇相應控件對顯示終端界面進行布局設計,并對控件進行屬性設置和綁定測試參數,對復雜測試參數進行設定,測試參數來自數據配置模塊生成的數據配置文件。
顯示終端模塊在用戶登錄系統時,根據數據配置模塊配置的用戶權限信息以及界面配置模塊生成的xml界面配置信息加載當前用戶可訪問的測試任務終端界面。與數據中心進行連接,接收并解析數據中心發送的數據,將解析得到的數據發送給所有組態化控件,每個組態化控件從中提取綁定的測試參數對應的數據,將提取的數據和設置的屬性發送給顯示終端模塊顯示。
控件設計模塊是該系統實現組態化設計的重要組成,該模塊包括了基礎核心模塊、屬性管理模塊、持久化模塊和數據服務模塊,共同實現了組態化控件。其中基礎核心模塊為控件本身的屬性面板設計定義了基礎屬性和編輯器類型,供用戶在自定義控件開發過程中使用。基礎屬性包括屬性面板的名稱、描述、事件、聚焦、隱藏、優先編輯、表單類型過濾等屬性。編輯器類型包括顏色、字體、下拉框、xml編輯器、多選框、字符型、整型、浮點型、時間、拖拽、組合類型等各類編輯器屬性。
屬性管理模塊實現自定義控件屬性的靈活定義。只需要通過對基礎核心模塊的基礎屬性和編輯器類型進行調用設置,便可實現自定義控件屬性的定義。例如對某一新建自定義控件添加控件背景色的屬性,只需定義一下屬性面板名稱為背景色,編輯器類型為顏色,生成的控件便可供界面配置模塊使用,具有背景色編輯屬性。
持久化模塊定義并實現了控件的通用持久化接口,接口包括以下4個功能:設置唯一標識、反序列化、信息持久化和拷貝。設置唯一標識即為控件設置一個唯一的標識ID。反序列化用于從界面配置信息中獲得控件定義的所有屬性名稱和屬性值,并將屬性值轉換成相應數值類型。信息持久化將控件當前或修改后的屬性名稱和屬性值寫入界面配置信息。拷貝用于實現將當前控件的所有屬性進行復制使用。
數據服務模塊定義并實現了控件的標準化數據服務接口,這也是組態化控件設計的一項關鍵技術。該標準化數據服務接口具有以下5個功能:啟動、暫停、停止、獲取參數類型和獲取綁定參數。啟動服務用于訂閱各類數據服務處理事件,包括實時數據接收事件、歷史數據接收事件等。暫停服務用于暫停訂閱數據服務處理事件。停止服務用于取消訂閱數據服務處理事件。參數類型用于獲取控件關聯參數的類型,1代表模擬量、2代表狀態量、3代表參數量、4代表故障診斷、5代表沒有關聯參數類型。綁定參數用于獲取控件綁定的參數信息,參數信息以XElement類型存儲,用于控件定位關聯參數。
圖2所示為組態控件通用接口設計與調用的示意圖,界面配置模塊與顯示終端模塊均基于組態控件。界面配置模塊如果新建一個配置頁面,在頁面中添加一個新的控件,將觸發控件設置控件唯一標識,并設置控件屬性。如果不需要新建配置頁面,則加載定義好的控件,通過調用反序列化功能,獲取添加控件的所定義的屬性信息,這些屬性信息可供用戶在頁面中對控件進行設置,完成控件屬性設置后,保存頁面信息,將調用通用持久化接口,將頁面中的控件相關配置信息寫入xml配置文件,生成頁面配置文件。顯示終端模塊在運行配置好的頁面時,會加載控件,過程中進行數據訂閱,調用標準化數據服務接口。通過啟動功能訂閱數據服務處理事件,通過獲取參數類型功能獲取控件關聯的參數類型,通過獲取綁定參數功能獲取控件綁定的參數信息,終端控件完成數據加載后通過調用停止功能取消數據訂閱事件。

圖2 組態控件通用接口設計與調用示意圖
該系統的另一個關鍵技術是顯示終端模塊界面加載與數據顯示方法的實現,涉及到顯示終端模塊的設計。顯示終端模塊包括網絡通信模塊、用戶權限驗證模塊、界面加載模塊和數據處理模塊。其中網絡通信模塊支持TCP和UDP兩種通信協議,負責接收數據中心傳遞過來的數據幀,并向數據中心發送狀態幀。實現顯控終端模塊與數據中心的數據聯通。
用戶權限驗證模塊用于在運行終端啟動時驗證用戶名和密碼,根據數據中心返回的用戶訪問權限,加載用戶可訪問的測試任務終端界面。用戶權限信息在數據配置模塊進行配置。例如為用戶A配置了查看GNC系統終端界面的權限,用戶A登錄終端后,只能訪問GNC系統界面,其它分系統界面不能訪問。
界面加載模塊實現界面配置模塊中配置的測試任務終端界面在顯示終端模塊上的加載運行。該模塊設計了統一的業務執行過程,便于軟件和控件的靈活擴展與快速修改,實現每個自定義控件的加載和運行,并實現控件對數據的實時顯示。
數據處理模塊實現將控件從網絡通信模塊接收的數據進行處理,將數據按照控件配置的顯示方式進行處理顯示。顯示方式包括按位顯示、二進制、十進制、十六進制顯示。根據控件配置進行數據處理與顯示的方法為:首先將數字量參數值從數據幀中挑出來,轉換成十進制,然后將十進制轉換成二進制字符串,根據控件按位顯示的配置起始位和終止位對二進制字符串進行截取,將截取后的二進制字符串轉換成十進制,然后根據配置的顯示方式,將處理后的數據轉換成二進制、十六進制或者十進制進行刷新實時顯示。例如將某個占一個字節值為230的參數,挑取0到3位以十六進制顯示。將230轉換成二進制11100110,截取0到3位后的二進制字符串為1110,將該二進制字符串轉換成十進制14,再將14轉換成十六進制E,控件最終會刷新數據顯示E。
圖3所示為顯示終端模塊界面加載與數據顯示方法,首先通過網絡通信模塊使顯示終端模塊與數據中心建立通信,顯示終端模塊根據用戶的登錄信息,向數據中心發送登錄驗證幀信息,驗證成功后,數據中心將返回登錄驗證幀信息,其中包括允許當前用戶加載的測試任務終端界面。顯示終端模塊具備一個統一顯示運行窗口“Shell”,在載入窗口過程中,對界面配置模塊中生成的模板文件進行載入,模板文件包括用戶定制的多個頁面,每個頁面為一個xml文件,所有的頁面xml文件信息統一存儲在globle.xml文件中。通過讀取globle.xml文件,遍歷模板中所有的頁面xml文件來初始化頁面布局和創建控件,每個頁面的xml文件存儲了配置頁面布局中包含的所有控件及屬性信息。程序在遍歷頁面布局中每個控件時,使當前控件訂閱實時數據接收事件,并獲取當前控件能處理的參數類型,然后根據不同的參數類型,判斷當前控件是否已經綁定了需要處理的參數信息,如果控件不具有綁定參數信息,則通過調用GetXelementParam方法從界面配置信息(頁面xml文件)中獲得該控件所綁定的參數信息,完成頁面布局中所有控件的遍歷后,向數據中心發送相應的參數注冊命令以便數據中心對注冊的參數進行處理,最后向數據中心發送注冊結束命令通知數據中心完成了參數注冊。網絡通信模塊監聽數據中心發送給顯示終端模塊的數據幀,完成數據幀接收后,對該數據幀的結構進行檢查,并對幀類型進行判斷。根據不同的數據幀類型,將數據幀發送給訂閱了接收對應數據幀類型的控件,通知控件數據接收事件,對數據幀進行解析,獲取數據幀中的參數個數與參數ID,遍歷所有參數,若ID與控件綁定的參數ID相符,刷新控件的顯示數據并根據設置的屬性對數據進行顯示。

圖3 顯示終端模塊界面加載與數據顯示方法示意圖
該系統擺脫了一個工程從頭到尾開發一套軟件的模式,將顯示監控和數據中心分開,實現對各種類型數據的處理,有效地解決軟件“重用”問題。目前該基于復雜參數的組態化顯示監控系統已經應用于多個工程項目的地面測試階段,實現單機設備測試、系統級匹配測試、模飛測試等試驗任務。其采用軟件配置設計思想,將通信、數據處理、數據顯
示等功能用通用化處理代碼固化在程序里,將測試參數、通信協議、計算公式等作為配置參數項,采用配置工具進行配置錄入,實現快速可配置設計。目前已經為近5000個復雜參數及十幾個分系統的通信協議完成配置與運行。
該系統的控件設計模塊通過標準化數據服務接口、通用持久化接口實現自定義控件設計的標準化與靈活擴展,實現交互界面配置自動生成,監控顯示終端自動加載,能夠在使用現有功能的基礎上進行自定義功能的開發,在實際工程項目應用中,根據總體的特殊需求,利用標準服務接口,完成定制了多種顯示狀態燈、監控文本窗口、功能按鈕等控件,不需作很多修改而方便地完成軟件的更新和升級,達到了快速開發的良好效果。歷經多個工程項目,該系統的設計方法和實現已得到了充分的驗證。
基于復雜參數的組態化顯示監控系統采用基于事件注冊的復雜參數數據處理與顯示方法,實現飛行器復雜參數測試數據的實時監控,提出標準化數據服務接口、通用持久化接口的組態化控件設計方法,進行自定義控件設計標準化與靈活擴展,實現交互界面配置自動生成、監控顯示終端自動加載,達到一套軟件應用于多個型號的通用化目標,實現飛行器復雜參數測試數據的實時監控,已經在工程中得到很好的應用,既節約人力物力,又降低成本,大大提高了開發效率,實現軟件的復用。