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