張 龍, 許 寧, 楊 振
(上海機(jī)電工程研究所, 上海 201109)
火控系統(tǒng)軟件多采用實(shí)時(shí)性強(qiáng)、可靠性高和成熟度高的嵌入式VxWorks操作系統(tǒng),充分利用VxWorks操作系統(tǒng)的多任務(wù)調(diào)度機(jī)制和多任務(wù)通信機(jī)制[1-2],滿足火控系統(tǒng)實(shí)時(shí)性和可靠性要求。目前的導(dǎo)彈火控系統(tǒng)已發(fā)展成為與多個(gè)子系統(tǒng)交互的復(fù)雜控制系統(tǒng),由于其功能、結(jié)構(gòu)及接口的復(fù)雜,對(duì)火控系統(tǒng)錄取功能的要求越來越高。而嵌入式系統(tǒng)使用操作上并不友好,使得錄取功能數(shù)據(jù)提取操作變得困難,特別是對(duì)分析操作人員有很強(qiáng)的依賴性。本文從這一問題出發(fā),針對(duì)性地進(jìn)行火控系統(tǒng)錄取功能進(jìn)行了完善設(shè)計(jì),并在某型導(dǎo)彈武器系統(tǒng)實(shí)際工程應(yīng)用過程中,取得了良好的效果。
火控系統(tǒng)需要接收雷達(dá)系統(tǒng)、光電系統(tǒng)等探測(cè)設(shè)備的目標(biāo)數(shù)據(jù)和信息,響應(yīng)顯控輸入命令,制定目標(biāo)攔截策略,組織火力資源,計(jì)算射擊諸元參數(shù),聯(lián)動(dòng)控制伺服系統(tǒng)、導(dǎo)彈系統(tǒng)、發(fā)控系統(tǒng),實(shí)現(xiàn)導(dǎo)彈發(fā)射,完成殺傷目標(biāo)的作戰(zhàn)功能?;鹂叵到y(tǒng)軟件架構(gòu)基于VxWorks嵌入式操作平臺(tái),軟件采用操作系統(tǒng)提供的高精度定時(shí)器和優(yōu)先級(jí)搶占式的多任務(wù)調(diào)度機(jī)制設(shè)計(jì)多任務(wù)結(jié)構(gòu)[3-4]。以某型號(hào)研制為背景,火控系統(tǒng)軟件根據(jù)各個(gè)功能特點(diǎn)劃分為以下任務(wù)。初始化任務(wù)為一次性任務(wù),調(diào)用應(yīng)用程序入口;校時(shí)任務(wù)在準(zhǔn)秒觸發(fā)時(shí)校準(zhǔn)系統(tǒng)工作時(shí)間;顯示刷新任務(wù)更新界面顯示數(shù)據(jù)并完成操作按鍵數(shù)據(jù)采集;網(wǎng)絡(luò)接收任務(wù)、串口1/2接收任務(wù)、CAN1/2/3接收任務(wù)接收外部輸入信息;火力控制任務(wù)作為火力系統(tǒng)軟件的中心,完成解算和控制流程;數(shù)據(jù)錄取任務(wù)完成與火控交互的各個(gè)節(jié)點(diǎn)的數(shù)據(jù)記錄;看門狗定時(shí)器負(fù)責(zé)火控任務(wù)入口的周期回調(diào),保證周期控制[3]。各個(gè)任務(wù)數(shù)據(jù)流與控制流如圖1所示。
火控系統(tǒng)軟件的數(shù)據(jù)記錄任務(wù)主要是記錄火控系統(tǒng)對(duì)外接口的交互內(nèi)容,形成如圖2所示的數(shù)據(jù)文件,一定程度上能夠滿足數(shù)據(jù)資源的獲取以及分析。但這種錄取功能設(shè)計(jì)也有十分明顯的缺點(diǎn),正如圖1所示,網(wǎng)絡(luò)接收任務(wù)、串口1/2接收任務(wù)、CAN口1/2/3接收任務(wù)完成數(shù)據(jù)接收后發(fā)送至火力控制任務(wù),再由火力控制任務(wù)發(fā)送至數(shù)據(jù)記錄任務(wù)。各個(gè)接收任務(wù)獲取的數(shù)據(jù)并未第一時(shí)間轉(zhuǎn)交給數(shù)據(jù)記錄任務(wù),也未標(biāo)記報(bào)文獲取的時(shí)間信息。這種數(shù)據(jù)流設(shè)計(jì)不能保證數(shù)據(jù)本身的時(shí)序狀態(tài),容易造成數(shù)據(jù)存儲(chǔ)時(shí),交互數(shù)據(jù)時(shí)序被動(dòng)打亂。另外,錄取文件中雖然存儲(chǔ)了與火控系統(tǒng)交互的所有通信節(jié)點(diǎn)的數(shù)據(jù)內(nèi)容,但數(shù)據(jù)形式不夠直觀,查閱十分不便,而且對(duì)分析操作人員有很強(qiáng)的依賴性,特別是對(duì)于變長(zhǎng)度報(bào)文的查閱,難度更大。因此,火控系統(tǒng)數(shù)據(jù)記錄模塊亟須在錄取任務(wù)和數(shù)據(jù)讀取層面優(yōu)化。
火控系統(tǒng)軟件數(shù)據(jù)記錄任務(wù)產(chǎn)生的文件主要用于存儲(chǔ)與火控系統(tǒng)交互的數(shù)據(jù),用于試驗(yàn)后的數(shù)據(jù)分析。嵌入式操作系統(tǒng)VxWorks平臺(tái)下,圖形的繪制和大容量的文件讀寫十分消耗系統(tǒng)資源。為不影響火控系統(tǒng)軟件的正常性能,增強(qiáng)火控系統(tǒng)錄取功能的性能,我們從以下幾個(gè)方面改進(jìn)火控系統(tǒng)錄取功能:
1) 更改VxWorks平臺(tái)下數(shù)據(jù)存儲(chǔ)報(bào)文形式,建立起雙平臺(tái)的 “紐帶”,實(shí)現(xiàn)錄取功能的跨平臺(tái)操作;
2) 對(duì)于實(shí)時(shí)性要求不高的數(shù)據(jù)處理部分轉(zhuǎn)移至Windows平臺(tái)處理,通過Windows平臺(tái)增強(qiáng)對(duì)錄取文件的可操作性;
3) Windows平臺(tái)下,創(chuàng)建錄取輔助解析軟件,設(shè)置錄取數(shù)據(jù)轉(zhuǎn)換功能、錄取回放功能、數(shù)據(jù)評(píng)估等功能。對(duì)于數(shù)據(jù)評(píng)估部分,我們只展示其功能部分,不詳細(xì)介紹。
我們通過增加錄取輔助解析軟件,將VxWorks平臺(tái)下記錄文件轉(zhuǎn)至Windows平臺(tái)下解析,具體示意圖如圖3所示。此方法一方面方便數(shù)據(jù)解析,增強(qiáng)了錄取功能的實(shí)用效果,另一方面盡可能地保證火控系統(tǒng)正常作戰(zhàn)控制流程性能的穩(wěn)定。
為了增強(qiáng)錄取輔助解析軟件對(duì)錄取文件的提取的便捷性,在VxWorks操作系統(tǒng)中,錄取任務(wù)記錄的文件數(shù)據(jù)增加時(shí)間信息、報(bào)文標(biāo)識(shí)符以及報(bào)文長(zhǎng)度等報(bào)文頭,如圖4所示。通過借助VxWorks提供的消息隊(duì)列機(jī)制,實(shí)現(xiàn)任務(wù)間的通信。消息隊(duì)列允許以FIFO方式或基于優(yōu)先級(jí)方式排隊(duì)消息,消息數(shù)目可變,消息長(zhǎng)度可變[1,5],其原理圖如圖5所示。
通過使用消息隊(duì)列機(jī)制和互斥信號(hào)量,改進(jìn)火控系統(tǒng)軟件架構(gòu)設(shè)計(jì),圖6對(duì)應(yīng)更改后的錄取任務(wù)的數(shù)據(jù)流圖。經(jīng)過任務(wù)間通信層面的改進(jìn),錄取形成的二進(jìn)制文件中各個(gè)節(jié)點(diǎn)的報(bào)文數(shù)據(jù)時(shí)序上更加合理。其中,各個(gè)節(jié)點(diǎn)報(bào)文到達(dá)火控系統(tǒng)時(shí),相應(yīng)數(shù)據(jù)接收任務(wù)標(biāo)記數(shù)據(jù)獲取時(shí)間和來源標(biāo)識(shí),并通過消息隊(duì)列轉(zhuǎn)發(fā)至數(shù)據(jù)記錄任務(wù),時(shí)間和標(biāo)識(shí)信息成為錄取數(shù)據(jù)輔助解析軟件實(shí)現(xiàn)的關(guān)鍵。網(wǎng)絡(luò)接收任務(wù)、CAN1/2/3接收任務(wù)、串口1/2接收任務(wù)、報(bào)文發(fā)送任務(wù)之間具體流程圖如圖7所示。
以下為VxWorks平臺(tái)下火控系統(tǒng)軟件部分實(shí)例?;鹂叵到y(tǒng)軟件使用msgQCreate()創(chuàng)建錄取專用消息隊(duì)列,并使用RECORD-HEAD結(jié)構(gòu)體通過FCS-DataSendRecordMsg()函數(shù)通過消息隊(duì)列發(fā)送至錄取任務(wù),FCS-DataRecordTask()實(shí)現(xiàn)數(shù)據(jù)寫內(nèi)存與寫電子盤操作。
MSG-Q-ID g-msgQID-DataRecord=msgQCreate(H-MaxMsgs-DataRecord,
H-MsgQLen-DataRecord, MSG-Q-FIFO);∥數(shù)據(jù)錄取消息隊(duì)列初始化
int FCS-DataSendRecordMsg(u-char* dataBuf, RECORD-HEAD *record-head)∥數(shù)據(jù)錄取發(fā)送函數(shù)
int FCS-DataRecordTask()∥完成數(shù)據(jù)寫內(nèi)存與寫電子盤的操作
其中,
typedef struct RECORD-HEAD
{
char msghead[4];∥報(bào)文頭
enum enum-MSGTYPE enum-msgtype;∥報(bào)文類型
MSG-RECV-TIME strRevcTime;∥報(bào)文接收時(shí)間
UINT msgfrom;∥報(bào)文節(jié)點(diǎn)來源
WORD length;∥報(bào)文數(shù)據(jù)長(zhǎng)度
};
Windows平臺(tái)下,主要是將錄取文件轉(zhuǎn)化為直觀的數(shù)據(jù)或圖示,實(shí)現(xiàn)對(duì)錄取數(shù)據(jù)的回放功能,完成數(shù)據(jù)評(píng)估、設(shè)備考核。錄取數(shù)據(jù)輔助解析軟件流程圖如圖8所示。
在嵌入式VxWorks操作系統(tǒng)下,通過對(duì)火控系統(tǒng)軟件進(jìn)行優(yōu)化后,實(shí)現(xiàn)了Windows平臺(tái)數(shù)據(jù)提取的可行性。借助錄取輔助軟件,以數(shù)據(jù)、圖例或評(píng)估的方式,充分發(fā)揮火控系統(tǒng)錄取文件的功能,提高了數(shù)據(jù)分析效率。錄取數(shù)據(jù)輔助軟件的顯示界面如圖9所示,此處我們僅展示其部分功能。
按下數(shù)據(jù)解析、數(shù)據(jù)回放、數(shù)據(jù)評(píng)估按鈕,選擇需要解析的錄取文件,如圖10所示。
1) 進(jìn)入數(shù)據(jù)解析界面,完成錄取文件選擇后點(diǎn)擊開始按鈕,中間狀態(tài)如圖11所示,解析完成后得到如圖12所示文件。
本文以火控到發(fā)控的數(shù)據(jù)為例,借助Excel,可以直觀的查看到火控系統(tǒng)到發(fā)控設(shè)備之間的數(shù)據(jù)內(nèi)容,如圖13所示。圖13中展示了火控到發(fā)控下達(dá)發(fā)射命令的次數(shù)以及數(shù)據(jù)發(fā)送的時(shí)刻,非常方便快捷地查詢所需數(shù)據(jù)。
2) 進(jìn)入數(shù)據(jù)回放界面,選擇相應(yīng)錄取文件回放,通過加速、減速按鈕完成對(duì)錄取文件回放速度的控制。據(jù)圖14、15所示,其中,隱去部分回放選項(xiàng)。
3) 進(jìn)入數(shù)據(jù)評(píng)估界面,如圖16所示選擇相應(yīng)評(píng)估數(shù)據(jù)。點(diǎn)擊目標(biāo)PPI按鍵,顯示如圖17所示界面。點(diǎn)擊控制曲線按鍵,顯示如圖18所示界面。點(diǎn)擊設(shè)備評(píng)估按鍵,顯示如圖19、20所示界面。
本文以實(shí)際開發(fā)使用作為切入點(diǎn),采用針對(duì)問題的設(shè)計(jì),極大提高了火控系統(tǒng)軟件錄取功能的合理性。
將VxWorks操作系統(tǒng)下的錄取數(shù)據(jù)移到Windows下解析,既確保了火控系統(tǒng)軟件的實(shí)時(shí)性和可靠性,又方便了錄取數(shù)據(jù)獲取,進(jìn)而增強(qiáng)火控系統(tǒng)錄取模塊的功能。經(jīng)過在某型導(dǎo)彈武器系統(tǒng)中的實(shí)踐應(yīng)用,表明改進(jìn)后的火控系統(tǒng)錄取功能實(shí)用、有效,大大加快了火控系統(tǒng)調(diào)試進(jìn)度,取得了良好的效果。在其他嵌入式行業(yè)領(lǐng)域,本文提及的軟件設(shè)計(jì)方同樣具有一定的參考意義和使用價(jià)值。