(上海航天電子技術研究所,上海 201109)
運載火箭一體化地面測試發射控制系統(簡稱一體化測發控系統)是現役運載火箭地面測試系統的重要組成部分[1],如圖1所示。負責完成運載火箭總裝廠集成綜合試驗、發射場試驗[2]。通過一體化測發控系統完成對火箭控制系統、推利系統、遙測系統、外安系統、動力系統等五大系統的控制[3],完成信號采樣、信號診斷、信號激勵、流程控制、點火發射、生成判讀報告等。該系統采用集中控制、分布式測試模式,共同完成一套測試任務[4]。
主機控制軟件是一體化測發控系統軟件分系統的重要組成部分,是所有控制指令的發起端,也是有回令屬性指令的閉合端,負責完成測試流程文件、控制指令文件創建、流程控制、數據診斷、報表生成等操作。因現役主機控制軟件測試流程不可配置,且測試流程固化在軟件代碼中,導致軟件代碼更改頻繁、升級次數多、管理成本高等問題發生,固新研新一代主機控制軟件(簡稱新型主機控制軟件),該軟件有效地將試驗過程信息以文件流的形式與軟件架構相分離,降低了軟件模塊間耦合度,提升了軟件通用性,將該軟件功能最終轉化為測試流程控制器,通過輸入測試流程文件,最終實現對一體化測發控系統的控制。

圖1 一體化測發控系統框圖
軟件架構設計不合理。現役一體化測發控系統主機控制軟件采用在軟件代碼中固定不同類型編碼順序,形成不同測試函數模塊,通過用戶界面選擇,執行不同函數功能模塊分支,完成測試流程,實現對一體化測發控系統的控制。這種定制化軟件架構,對未來軟件需求發生變更方面適應性較差,軟件架構不合理,沒有將軟件功能模塊、接口定義、模塊間從屬關系劃分清晰,當一級基礎文件編碼發生變更、或增加、縮減控制指令、測試流程順序發生調整時,必須更改軟件代碼,升級軟件版本,驗證測試后,才能符合用戶方需求。這種實現方式導致代碼功能模塊耦合度高、后期維護管理成本高,無法滿足用戶多樣性需求。
通用化設計欠缺。由于軟件架構設計的不合理、網絡通信協議不兼容,導致不同型號運載火箭都必須獨自開發與之型號相適應的主機控制軟件,進而導致各型號間通用化程度低,實現方式原理各不相同,研制、維護成本增加,人員利用率低。
通用化是新型主機控制軟件研制的必然發展方向[5],只有實現最大限度的通用,才能有效降低人力成本、維護成本、縮短相同類型軟件的研發周期,以最小的更改適應更廣闊的市場變化[6]。
三層C/S結構提供了一種思路,即分離出業務處理規則,使之獨立出來,這種獨立的特點使得一個領域內最容易導致系統無法復用的部分變得相對容易修改[7]。新型主機控制軟件三層結構如圖2所示。

圖2 新型主機控制軟件C/S三層體系結構
新型主機控制軟件與現役主機控制軟件相比,具有如下特點:
1)業務層與數據層更好的分離。業務層各功能模塊邏輯關系劃分清晰,耦合度低;數據層以XML文件的形式作為軟件的輸入,該模式可有效地提升軟件通用性;
2)測試流程文件以XML文件形式與軟件進行剝離,并可根據用戶需求實時調整測試流程或基礎數據表文件,適應變化;
3)增加標簽概念及標簽處理,可有效提升軟件功能性;
4)軟件結構更加模塊化,邊界清晰,降低模塊間耦合度;
5)以XML文件形式保存新型主機控制軟件數據層內容,可通過調整文件屬性列方式,滿足用戶多樣性需求。
新型主機控制軟件由基礎數據表模塊、測試流程模塊、接口協議轉換模塊、發送控制器模塊、接收控制器模塊、單步測試模塊組成,其中,發送控制器包括SOCKET發送控制器和COM發送控制器;接收控制器包括SOCKET接收控制器和COM接收控制器,分別用于完成對網絡信號和串口信號控制;一級基礎文件通過與一體化測發控系統不同功能子系統進行一一對應,依托功能號進行不同編碼設計,生成不同功能一級基礎指令編碼表文件;測試流程文件依據任務需求通過不同基礎數據表文件中的控制編碼指令拼裝而成,并以不同名稱獨立XML文件形式保存。試驗過程中,發送控制器對測試流程文件內容進行解析,將當前步驟中解析好的指令數組傳送給SOCKET功能模塊或COM功能模塊,依托通訊模塊返回結果控制任務流程進度,顯示執行結果,提示錯誤信息,等待用戶選擇。SOCKET功能模塊或COM功能模塊最終實現控制指令的發送與接收,并對接收到的返回指令進行解析、判定,將判定結果返回給發送控制器,輔助測試流程控制,軟件結構如圖3所示。

圖3 新一代主機控制軟件系統結構
基礎數據表功能模塊由基礎數據表格信息和網絡信息構成,主要用于完成一級基礎文件的創建、刪除、保存;文件記錄的增加、刪除、更改、搜索、移動等操作。一級基礎文件通過對一體化測發控系統不同功能子系統進行編碼設計,生成具有不同功能號的一級基礎指令編碼表文件[8-11]。
1)基礎數據表格信息定義如下六元結構:
(編碼,名稱,標準值,偏差值,計量單位,備注)
編碼:同一基礎表文件中不同控制指令的唯一數字標識;
名稱:同一基礎表文件中不同控制指令的唯一字符串標識;
標準值:同一基礎表文件中不同控制指令的理論值;
偏差值:同一基礎表文件中不同控制指令的誤差值;
計量單位:單位屬性。例如,V,mA,A等;
備注:字符串標識,用來記錄指令的含義或其他;
2)網絡信息如圖4所示,定義如下九元結構,圖片中其他信息作為后續拓展功能使用。
(文件屬性、信源、信宿、功能號、幀標識、IP、IPPort、數值類型、通訊方式)
文件屬性:分發送和接收兩種屬性。發送表明該基礎表文件為指令控制文件;接收表明當接收到該文件中的指令時用于顯示,不進行判斷;
信源:表示控制指令的發送方;
信宿:表示控制指令的接收方;
功能號:基礎數據表文件的唯一標識,不同基礎數據表文件具有不同功能號;
幀標識:用于標識此幀為命令幀或為回令幀;若為命令幀,主機控制軟件只需要發送此幀,沒有回令;若為回令幀表明發送完此幀后,還需對隨后返回的回令幀進行判別處理。
IP:網絡接收方IP;
IPPort:網絡接收方網絡端口;
數值類型:表示基礎數據表中標準值與偏差值得類型,分為字符串和數值型兩種。在數值型基礎數據表文件修改時,需要對每條編碼指令對應的標準值與偏差值的合法性進行判別;
通訊方式:分TCP通訊與COM通訊兩種。TCP用于完成網絡通訊,COM通訊用于完成串口通訊,未來可根據新型主機控制軟件應用場景對通訊方式進行擴充;

圖4 網絡信息
依托基礎數據表功能模塊可以創建多項事先按功能號劃分的一級基礎數據表文件,以XML形式保存。文件中編碼與名稱必須唯一,在保存過程中會自動校驗,對異常記錄信息進行報錯提示。一級基礎數據表文件中的控制指令是二級測試流程文件的重要組成部分,依靠功能號與控制指令編碼實現對終端的控制。
二級測試流程文件由來自不同一級基礎數據表文件中的控制指令及標簽功能碼按一定順序排列而成。測試流程模塊負責完成測試流程文件的創建、修改、保存等工作,具體操作流程如圖5所示。

圖5 測試流程模塊工作流程
測試流程模塊執行過程描述如下:
1)創建測試流程文件,輸入新測試流程文件名字,生成內容為空的XML文件;
2)從一級基礎數據表文件中選擇控制指令,單擊“添加記錄”按鈕,將已經選擇的控制指令添加到測試流程信息列表中。添加過程中,既可以選擇單項,也可以選擇多項一起添加;
3)對已經生成的測試流程信息列表進行添加標簽操作。標簽分為Group(組幀)標簽、IF(條件)標簽、Message(提示)標簽、Com(串口)標簽4種類別。其中Group標簽用于將來自同一基礎數據表文件的多條連續指令打包為一個組,一幀發送;IF標簽用于將一種信號或多種信號作為判別條件,當條件滿足時執行特殊代碼段;Message標簽用于在特定時間點完成彈框提示功能,同時可供用戶選擇繼續當前測試流程或者退出當前測試流程;Com標簽用于添加Com指令,可對COM指令內容按用戶需求設定;
4)指令延時屬性用來標記兩條連續指令間執行時間間隔,滿足對一些采樣信息的特定時間延時需求;
5)當測試流程信息列表中所有測試信息已經修改完畢時,單擊保存按鈕,將測試流程信息列表中所有信息保存至已經生成的相應XML文件中;
處理單元負責完成自動測試過程中二級測試流程文件指令解析、標簽識別處理、流程控制,將解析好的指令數組傳送通訊模塊,通訊模塊完成指令的發送與接收、指令比對校驗,并將處理結果反饋給處理單元,是新型主機控制軟件的調度中心單元。SOCKET功能模塊包含包括SOCKET發送控制器和SOCKET接收控制器;COM功能模塊包含COM發送控制器和COM接收控制器;
發送控制器負責完成指令識別、指令處理、界面更新、流程進度控制等;接收控制器負責完成指令接收、指令校驗、合法性判定、同步互斥變量狀態設置等;
同步互斥變量負責協同發送控制器與接收控制器同步工作,并攜帶接收控制器判讀結果,發送控制器通過對同步互斥變量進行判斷,依托不同測試結果執行不同程序代碼分支。
處理單元執行過程描述如下:
1)發送控制器判斷指令隊列是否不為空,若不為空,從指令隊列中取出待發送指令;
2)發送控制器判斷被取出指令中是否含有標簽,若含有標簽,進行標簽處理,同時設置同步互斥變量狀態為0;
3)發送控制器發送控制指令,若該指令屬性為有回令指令,則實時查詢同步互斥變量狀態,等待回令接收,并記錄等待時間,超過3分鐘進行彈框提示,跳出等待狀態。同步互斥變量為非0值時,表示回令已接收。若同步互斥變量為1時,代表結果正常;若同步互斥變量為-1時,代表結果異常,針對不同錯誤類型,進行界面顯示;
4)接收控制器負責接收回令指令,并判斷接收指令與發送指令編碼長度及編碼號是否相同,若相同,判斷回令合格標記是否為真,若為真,設置同步互斥變量狀態為1,否則設置為-1;發送控制器通過對同步互斥變量進行監控,并實時判斷同步互斥變量狀態,執行不同代碼分支;
5)若發送控制器發送的指令不需要回令,則延時一段指令配置好的延時時間,繼續執行下一條指令操作;
單步測試模塊通過一級基礎數據表文件完成系統級單步調試過程。該模塊可以有效完成對系統級單點故障診斷、網絡通路驗證及系統單通道驗證等。啟動單步測試模塊時,新型主機控制軟件自動導入一級基礎數據表所有文件,并在基礎數據表信息中顯示文件具體指令內容,單擊指令右側發送按鈕自動完成指令的發送,流程框顯示顯示測試過程信息,如圖6所示。

圖6 單步測試界面
新型主機控制軟件設計完成后,已被用于新型測發控系統、商業火箭藍箭一體化測發控系統中。軟件已交付使用,軟件設計合理、可行,具有測試速度快、測試流程可配置、結構靈活、操作方便等優點。相應的測試界面如下圖7所示。

圖7 主機控制軟件主界面
新型主機控制軟件相比現役主機控制軟件而言,軟件架構得到了進一步改進,軟件通用性得到了進一步提升,對一體化測發控系統等效器階段的不同項目測試、軟件更改維護周期有了進一步改善,具體分析情況見表1。
新型主機控制軟件雖然解決了測試流程與軟件業務層分離、測試流程可配置等問題,提升了軟件通用性,但在某些方面仍有可進一步完善的空間。例如基礎數據表數字顯示進制問題、基礎數據表定義問題等。基礎數據表也可以采用成熟數據庫中數據表的定義模式,設置關鍵字、外鍵、主鍵等屬性,優化基礎數據表功能;網絡協議還需進一步獨立封裝,實現網絡協議可配置,自動識別轉換;界面信息列表顯示定制化等;為后續主機控制軟件的研制奠定了基礎。

表1 系統效益分析表