(上海航天電子技術(shù)研究所,上海 201109)
運載火箭一體化地面測試發(fā)射控制系統(tǒng)(簡稱一體化測發(fā)控系統(tǒng))是現(xiàn)役運載火箭地面測試系統(tǒng)的重要組成部分[1],如圖1所示。負責完成運載火箭總裝廠集成綜合試驗、發(fā)射場試驗[2]。通過一體化測發(fā)控系統(tǒng)完成對火箭控制系統(tǒng)、推利系統(tǒng)、遙測系統(tǒng)、外安系統(tǒng)、動力系統(tǒng)等五大系統(tǒng)的控制[3],完成信號采樣、信號診斷、信號激勵、流程控制、點火發(fā)射、生成判讀報告等。該系統(tǒng)采用集中控制、分布式測試模式,共同完成一套測試任務(wù)[4]。
主機控制軟件是一體化測發(fā)控系統(tǒng)軟件分系統(tǒng)的重要組成部分,是所有控制指令的發(fā)起端,也是有回令屬性指令的閉合端,負責完成測試流程文件、控制指令文件創(chuàng)建、流程控制、數(shù)據(jù)診斷、報表生成等操作。因現(xiàn)役主機控制軟件測試流程不可配置,且測試流程固化在軟件代碼中,導(dǎo)致軟件代碼更改頻繁、升級次數(shù)多、管理成本高等問題發(fā)生,固新研新一代主機控制軟件(簡稱新型主機控制軟件),該軟件有效地將試驗過程信息以文件流的形式與軟件架構(gòu)相分離,降低了軟件模塊間耦合度,提升了軟件通用性,將該軟件功能最終轉(zhuǎn)化為測試流程控制器,通過輸入測試流程文件,最終實現(xiàn)對一體化測發(fā)控系統(tǒng)的控制。
圖1 一體化測發(fā)控系統(tǒng)框圖
軟件架構(gòu)設(shè)計不合理。現(xiàn)役一體化測發(fā)控系統(tǒng)主機控制軟件采用在軟件代碼中固定不同類型編碼順序,形成不同測試函數(shù)模塊,通過用戶界面選擇,執(zhí)行不同函數(shù)功能模塊分支,完成測試流程,實現(xiàn)對一體化測發(fā)控系統(tǒng)的控制。這種定制化軟件架構(gòu),對未來軟件需求發(fā)生變更方面適應(yīng)性較差,軟件架構(gòu)不合理,沒有將軟件功能模塊、接口定義、模塊間從屬關(guān)系劃分清晰,當一級基礎(chǔ)文件編碼發(fā)生變更、或增加、縮減控制指令、測試流程順序發(fā)生調(diào)整時,必須更改軟件代碼,升級軟件版本,驗證測試后,才能符合用戶方需求。這種實現(xiàn)方式導(dǎo)致代碼功能模塊耦合度高、后期維護管理成本高,無法滿足用戶多樣性需求。
通用化設(shè)計欠缺。由于軟件架構(gòu)設(shè)計的不合理、網(wǎng)絡(luò)通信協(xié)議不兼容,導(dǎo)致不同型號運載火箭都必須獨自開發(fā)與之型號相適應(yīng)的主機控制軟件,進而導(dǎo)致各型號間通用化程度低,實現(xiàn)方式原理各不相同,研制、維護成本增加,人員利用率低。
通用化是新型主機控制軟件研制的必然發(fā)展方向[5],只有實現(xiàn)最大限度的通用,才能有效降低人力成本、維護成本、縮短相同類型軟件的研發(fā)周期,以最小的更改適應(yīng)更廣闊的市場變化[6]。
三層C/S結(jié)構(gòu)提供了一種思路,即分離出業(yè)務(wù)處理規(guī)則,使之獨立出來,這種獨立的特點使得一個領(lǐng)域內(nèi)最容易導(dǎo)致系統(tǒng)無法復(fù)用的部分變得相對容易修改[7]。新型主機控制軟件三層結(jié)構(gòu)如圖2所示。
圖2 新型主機控制軟件C/S三層體系結(jié)構(gòu)
新型主機控制軟件與現(xiàn)役主機控制軟件相比,具有如下特點:
1)業(yè)務(wù)層與數(shù)據(jù)層更好的分離。業(yè)務(wù)層各功能模塊邏輯關(guān)系劃分清晰,耦合度低;數(shù)據(jù)層以XML文件的形式作為軟件的輸入,該模式可有效地提升軟件通用性;
2)測試流程文件以XML文件形式與軟件進行剝離,并可根據(jù)用戶需求實時調(diào)整測試流程或基礎(chǔ)數(shù)據(jù)表文件,適應(yīng)變化;
3)增加標簽概念及標簽處理,可有效提升軟件功能性;
4)軟件結(jié)構(gòu)更加模塊化,邊界清晰,降低模塊間耦合度;
5)以XML文件形式保存新型主機控制軟件數(shù)據(jù)層內(nèi)容,可通過調(diào)整文件屬性列方式,滿足用戶多樣性需求。
新型主機控制軟件由基礎(chǔ)數(shù)據(jù)表模塊、測試流程模塊、接口協(xié)議轉(zhuǎn)換模塊、發(fā)送控制器模塊、接收控制器模塊、單步測試模塊組成,其中,發(fā)送控制器包括SOCKET發(fā)送控制器和COM發(fā)送控制器;接收控制器包括SOCKET接收控制器和COM接收控制器,分別用于完成對網(wǎng)絡(luò)信號和串口信號控制;一級基礎(chǔ)文件通過與一體化測發(fā)控系統(tǒng)不同功能子系統(tǒng)進行一一對應(yīng),依托功能號進行不同編碼設(shè)計,生成不同功能一級基礎(chǔ)指令編碼表文件;測試流程文件依據(jù)任務(wù)需求通過不同基礎(chǔ)數(shù)據(jù)表文件中的控制編碼指令拼裝而成,并以不同名稱獨立XML文件形式保存。試驗過程中,發(fā)送控制器對測試流程文件內(nèi)容進行解析,將當前步驟中解析好的指令數(shù)組傳送給SOCKET功能模塊或COM功能模塊,依托通訊模塊返回結(jié)果控制任務(wù)流程進度,顯示執(zhí)行結(jié)果,提示錯誤信息,等待用戶選擇。SOCKET功能模塊或COM功能模塊最終實現(xiàn)控制指令的發(fā)送與接收,并對接收到的返回指令進行解析、判定,將判定結(jié)果返回給發(fā)送控制器,輔助測試流程控制,軟件結(jié)構(gòu)如圖3所示。
圖3 新一代主機控制軟件系統(tǒng)結(jié)構(gòu)
基礎(chǔ)數(shù)據(jù)表功能模塊由基礎(chǔ)數(shù)據(jù)表格信息和網(wǎng)絡(luò)信息構(gòu)成,主要用于完成一級基礎(chǔ)文件的創(chuàng)建、刪除、保存;文件記錄的增加、刪除、更改、搜索、移動等操作。一級基礎(chǔ)文件通過對一體化測發(fā)控系統(tǒng)不同功能子系統(tǒng)進行編碼設(shè)計,生成具有不同功能號的一級基礎(chǔ)指令編碼表文件[8-11]。
1)基礎(chǔ)數(shù)據(jù)表格信息定義如下六元結(jié)構(gòu):
(編碼,名稱,標準值,偏差值,計量單位,備注)
編碼:同一基礎(chǔ)表文件中不同控制指令的唯一數(shù)字標識;
名稱:同一基礎(chǔ)表文件中不同控制指令的唯一字符串標識;
標準值:同一基礎(chǔ)表文件中不同控制指令的理論值;
偏差值:同一基礎(chǔ)表文件中不同控制指令的誤差值;
計量單位:單位屬性。例如,V,mA,A等;
備注:字符串標識,用來記錄指令的含義或其他;
2)網(wǎng)絡(luò)信息如圖4所示,定義如下九元結(jié)構(gòu),圖片中其他信息作為后續(xù)拓展功能使用。
(文件屬性、信源、信宿、功能號、幀標識、IP、IPPort、數(shù)值類型、通訊方式)
文件屬性:分發(fā)送和接收兩種屬性。發(fā)送表明該基礎(chǔ)表文件為指令控制文件;接收表明當接收到該文件中的指令時用于顯示,不進行判斷;
信源:表示控制指令的發(fā)送方;
信宿:表示控制指令的接收方;
功能號:基礎(chǔ)數(shù)據(jù)表文件的唯一標識,不同基礎(chǔ)數(shù)據(jù)表文件具有不同功能號;
幀標識:用于標識此幀為命令幀或為回令幀;若為命令幀,主機控制軟件只需要發(fā)送此幀,沒有回令;若為回令幀表明發(fā)送完此幀后,還需對隨后返回的回令幀進行判別處理。
IP:網(wǎng)絡(luò)接收方IP;
IPPort:網(wǎng)絡(luò)接收方網(wǎng)絡(luò)端口;
數(shù)值類型:表示基礎(chǔ)數(shù)據(jù)表中標準值與偏差值得類型,分為字符串和數(shù)值型兩種。在數(shù)值型基礎(chǔ)數(shù)據(jù)表文件修改時,需要對每條編碼指令對應(yīng)的標準值與偏差值的合法性進行判別;
通訊方式:分TCP通訊與COM通訊兩種。TCP用于完成網(wǎng)絡(luò)通訊,COM通訊用于完成串口通訊,未來可根據(jù)新型主機控制軟件應(yīng)用場景對通訊方式進行擴充;
圖4 網(wǎng)絡(luò)信息
依托基礎(chǔ)數(shù)據(jù)表功能模塊可以創(chuàng)建多項事先按功能號劃分的一級基礎(chǔ)數(shù)據(jù)表文件,以XML形式保存。文件中編碼與名稱必須唯一,在保存過程中會自動校驗,對異常記錄信息進行報錯提示。一級基礎(chǔ)數(shù)據(jù)表文件中的控制指令是二級測試流程文件的重要組成部分,依靠功能號與控制指令編碼實現(xiàn)對終端的控制。
二級測試流程文件由來自不同一級基礎(chǔ)數(shù)據(jù)表文件中的控制指令及標簽功能碼按一定順序排列而成。測試流程模塊負責完成測試流程文件的創(chuàng)建、修改、保存等工作,具體操作流程如圖5所示。
圖5 測試流程模塊工作流程
測試流程模塊執(zhí)行過程描述如下:
1)創(chuàng)建測試流程文件,輸入新測試流程文件名字,生成內(nèi)容為空的XML文件;
2)從一級基礎(chǔ)數(shù)據(jù)表文件中選擇控制指令,單擊“添加記錄”按鈕,將已經(jīng)選擇的控制指令添加到測試流程信息列表中。添加過程中,既可以選擇單項,也可以選擇多項一起添加;
3)對已經(jīng)生成的測試流程信息列表進行添加標簽操作。標簽分為Group(組幀)標簽、IF(條件)標簽、Message(提示)標簽、Com(串口)標簽4種類別。其中Group標簽用于將來自同一基礎(chǔ)數(shù)據(jù)表文件的多條連續(xù)指令打包為一個組,一幀發(fā)送;IF標簽用于將一種信號或多種信號作為判別條件,當條件滿足時執(zhí)行特殊代碼段;Message標簽用于在特定時間點完成彈框提示功能,同時可供用戶選擇繼續(xù)當前測試流程或者退出當前測試流程;Com標簽用于添加Com指令,可對COM指令內(nèi)容按用戶需求設(shè)定;
4)指令延時屬性用來標記兩條連續(xù)指令間執(zhí)行時間間隔,滿足對一些采樣信息的特定時間延時需求;
5)當測試流程信息列表中所有測試信息已經(jīng)修改完畢時,單擊保存按鈕,將測試流程信息列表中所有信息保存至已經(jīng)生成的相應(yīng)XML文件中;
處理單元負責完成自動測試過程中二級測試流程文件指令解析、標簽識別處理、流程控制,將解析好的指令數(shù)組傳送通訊模塊,通訊模塊完成指令的發(fā)送與接收、指令比對校驗,并將處理結(jié)果反饋給處理單元,是新型主機控制軟件的調(diào)度中心單元。SOCKET功能模塊包含包括SOCKET發(fā)送控制器和SOCKET接收控制器;COM功能模塊包含COM發(fā)送控制器和COM接收控制器;
發(fā)送控制器負責完成指令識別、指令處理、界面更新、流程進度控制等;接收控制器負責完成指令接收、指令校驗、合法性判定、同步互斥變量狀態(tài)設(shè)置等;
同步互斥變量負責協(xié)同發(fā)送控制器與接收控制器同步工作,并攜帶接收控制器判讀結(jié)果,發(fā)送控制器通過對同步互斥變量進行判斷,依托不同測試結(jié)果執(zhí)行不同程序代碼分支。
處理單元執(zhí)行過程描述如下:
1)發(fā)送控制器判斷指令隊列是否不為空,若不為空,從指令隊列中取出待發(fā)送指令;
2)發(fā)送控制器判斷被取出指令中是否含有標簽,若含有標簽,進行標簽處理,同時設(shè)置同步互斥變量狀態(tài)為0;
3)發(fā)送控制器發(fā)送控制指令,若該指令屬性為有回令指令,則實時查詢同步互斥變量狀態(tài),等待回令接收,并記錄等待時間,超過3分鐘進行彈框提示,跳出等待狀態(tài)。同步互斥變量為非0值時,表示回令已接收。若同步互斥變量為1時,代表結(jié)果正常;若同步互斥變量為-1時,代表結(jié)果異常,針對不同錯誤類型,進行界面顯示;
4)接收控制器負責接收回令指令,并判斷接收指令與發(fā)送指令編碼長度及編碼號是否相同,若相同,判斷回令合格標記是否為真,若為真,設(shè)置同步互斥變量狀態(tài)為1,否則設(shè)置為-1;發(fā)送控制器通過對同步互斥變量進行監(jiān)控,并實時判斷同步互斥變量狀態(tài),執(zhí)行不同代碼分支;
5)若發(fā)送控制器發(fā)送的指令不需要回令,則延時一段指令配置好的延時時間,繼續(xù)執(zhí)行下一條指令操作;
單步測試模塊通過一級基礎(chǔ)數(shù)據(jù)表文件完成系統(tǒng)級單步調(diào)試過程。該模塊可以有效完成對系統(tǒng)級單點故障診斷、網(wǎng)絡(luò)通路驗證及系統(tǒng)單通道驗證等。啟動單步測試模塊時,新型主機控制軟件自動導(dǎo)入一級基礎(chǔ)數(shù)據(jù)表所有文件,并在基礎(chǔ)數(shù)據(jù)表信息中顯示文件具體指令內(nèi)容,單擊指令右側(cè)發(fā)送按鈕自動完成指令的發(fā)送,流程框顯示顯示測試過程信息,如圖6所示。
圖6 單步測試界面
新型主機控制軟件設(shè)計完成后,已被用于新型測發(fā)控系統(tǒng)、商業(yè)火箭藍箭一體化測發(fā)控系統(tǒng)中。軟件已交付使用,軟件設(shè)計合理、可行,具有測試速度快、測試流程可配置、結(jié)構(gòu)靈活、操作方便等優(yōu)點。相應(yīng)的測試界面如下圖7所示。
圖7 主機控制軟件主界面
新型主機控制軟件相比現(xiàn)役主機控制軟件而言,軟件架構(gòu)得到了進一步改進,軟件通用性得到了進一步提升,對一體化測發(fā)控系統(tǒng)等效器階段的不同項目測試、軟件更改維護周期有了進一步改善,具體分析情況見表1。
新型主機控制軟件雖然解決了測試流程與軟件業(yè)務(wù)層分離、測試流程可配置等問題,提升了軟件通用性,但在某些方面仍有可進一步完善的空間。例如基礎(chǔ)數(shù)據(jù)表數(shù)字顯示進制問題、基礎(chǔ)數(shù)據(jù)表定義問題等?;A(chǔ)數(shù)據(jù)表也可以采用成熟數(shù)據(jù)庫中數(shù)據(jù)表的定義模式,設(shè)置關(guān)鍵字、外鍵、主鍵等屬性,優(yōu)化基礎(chǔ)數(shù)據(jù)表功能;網(wǎng)絡(luò)協(xié)議還需進一步獨立封裝,實現(xiàn)網(wǎng)絡(luò)協(xié)議可配置,自動識別轉(zhuǎn)換;界面信息列表顯示定制化等;為后續(xù)主機控制軟件的研制奠定了基礎(chǔ)。
表1 系統(tǒng)效益分析表