陳留濤,楊業(yè)明,陳京誼
(航天科工慣性技術(shù)有限公司,北京100074)
慣導(dǎo)系統(tǒng)測(cè)控軟件通用開發(fā)平臺(tái)研究
陳留濤,楊業(yè)明,陳京誼
(航天科工慣性技術(shù)有限公司,北京100074)
為提高慣導(dǎo)系統(tǒng)測(cè)控軟件標(biāo)準(zhǔn)化、系列化、模塊化程度及開發(fā)效率,對(duì)測(cè)控軟件通用開發(fā)平臺(tái)技術(shù)進(jìn)行了研究。在分析慣導(dǎo)系統(tǒng)測(cè)試需求的基礎(chǔ)上,設(shè)計(jì)了軟件平臺(tái)體系結(jié)構(gòu),并對(duì)軟件平臺(tái)框架的功能、組件和插件的設(shè)計(jì)、平臺(tái)中的狀態(tài)機(jī)模型、平臺(tái)的可擴(kuò)展性等進(jìn)行了詳細(xì)闡述。最后通過實(shí)例描述了利用軟件平臺(tái)開發(fā)測(cè)控軟件的開發(fā)模式,以可視化組態(tài)方式設(shè)計(jì)開發(fā)測(cè)控軟件的過程表明,軟件平臺(tái)具有很強(qiáng)的通用性,采用軟件平臺(tái)開發(fā)測(cè)控軟件可大幅提高測(cè)控軟件的開發(fā)效率及其標(biāo)準(zhǔn)化、系列化、模塊化程度。
慣導(dǎo)系統(tǒng);測(cè)控軟件;通用開發(fā)平臺(tái);界面組態(tài);流程組態(tài)
慣導(dǎo)系統(tǒng)是指利用慣性敏感器、方向基準(zhǔn)和初始位置信息來確定運(yùn)載體姿態(tài)、加速度、速度和位置的自主式導(dǎo)航系統(tǒng)。由于慣導(dǎo)系統(tǒng)對(duì)外通信的接口和協(xié)議多樣、測(cè)試流程各異,導(dǎo)致用于對(duì)其進(jìn)行測(cè)試的測(cè)控軟件差異很大。為滿足不同慣導(dǎo)產(chǎn)品的測(cè)試要求,通常是針對(duì)每個(gè)產(chǎn)品開發(fā)專用的測(cè)控軟件,在產(chǎn)品研制過程中還要根據(jù)需要對(duì)測(cè)控軟件源代碼進(jìn)行反復(fù)的修改和調(diào)試,造成測(cè)控軟件開發(fā)周期長、源代碼開發(fā)量大且重復(fù)性工作多,以及標(biāo)準(zhǔn)化、系列化、模塊化程度很低,從而制約了慣導(dǎo)產(chǎn)品的快速研發(fā)。
為解決上述問題,本文對(duì)測(cè)控軟件通用開發(fā)平臺(tái)進(jìn)行了研究。測(cè)控軟件通用開發(fā)平臺(tái)(簡稱軟件平臺(tái))是為測(cè)控軟件開發(fā)、調(diào)試和運(yùn)行提供的集成環(huán)境,可靈活配置軟硬件測(cè)試資源,以可視化的方式創(chuàng)建測(cè)試流程,并加載硬件接口的驅(qū)動(dòng)程序從而自動(dòng)生成測(cè)控軟件。測(cè)控軟件在運(yùn)行時(shí)自動(dòng)載入測(cè)試過程中所需的參數(shù)、文件和數(shù)據(jù)庫等,并按照設(shè)計(jì)好的流程完成對(duì)慣導(dǎo)產(chǎn)品的測(cè)試。
慣導(dǎo)系統(tǒng)對(duì)外接口及其測(cè)試流程具有多樣性和復(fù)雜性的特點(diǎn),因此要求軟件平臺(tái)要有很好的通用性、靈活性和可擴(kuò)展性。為滿足上述要求,本文采用組件及插件的思想設(shè)計(jì)了軟件平臺(tái)體系結(jié)構(gòu),并通過制定統(tǒng)一的組件接口規(guī)范,實(shí)現(xiàn)了組件的標(biāo)準(zhǔn)化開發(fā)。由于軟件平臺(tái)是由一系列的組件和插件構(gòu)成的,組件本身所具有的可重用性和可移植性,實(shí)現(xiàn)了軟件資源的共享和即插即用,并為軟件平臺(tái)功能擴(kuò)展和升級(jí)提供了條件。在利用軟件平臺(tái)開發(fā)測(cè)控軟件時(shí),只需以可視化的方式進(jìn)行一系列的設(shè)置、配置和組態(tài)設(shè)計(jì),便可完成測(cè)控軟件的開發(fā),開發(fā)效率大幅提高。
1.1 國外典型的測(cè)控軟件開發(fā)平臺(tái)
PAWS[1-2]是一個(gè)綜合的、開放的軟件開發(fā)環(huán)境,主要用于自動(dòng)測(cè)試系統(tǒng)軟件的開發(fā),貫穿于ATE開發(fā)的全過程,包括ATLAS程序的翻譯、ATE建模、ATE驅(qū)動(dòng)程序、測(cè)試程序執(zhí)行等。PAWS軟件平臺(tái)主要包括PAWS Developers Studio、PAWS/RTS和工具軟件。PAWS Developers Studio完成ATE的開發(fā)和自動(dòng)測(cè)試系統(tǒng)資源的自動(dòng)分配、PAWS/RTS完成測(cè)試程序的執(zhí)行,工具軟件主要是指PAWS/TRD等輔助設(shè)計(jì)ATE系統(tǒng)的工具。
PAWS具有層次化的體系機(jī)構(gòu),使得ATE設(shè)備開發(fā)和UUT的TPS開發(fā)可并行進(jìn)行,大大縮短了開發(fā)周期。PAWS在美國軍工測(cè)試領(lǐng)域得到了廣泛應(yīng)用,國內(nèi)航空工業(yè)系統(tǒng)引進(jìn)使用該軟件的單位也比較多,它雖然功能強(qiáng)大,但需根據(jù)國內(nèi)測(cè)試設(shè)備的特點(diǎn)和測(cè)試需求進(jìn)行二次開發(fā)。
另外,國外還有一些典型的組態(tài)軟件,如美國NI公司的LabView、德國西門子公司的WinCC和美國GE公司的Cimplicity等,利用LabView開發(fā)的測(cè)控軟件在實(shí)時(shí)性方面無法滿足要求,WinCC和Cimplicity主要應(yīng)用在工控領(lǐng)域,均不適合對(duì)慣導(dǎo)系統(tǒng)進(jìn)行測(cè)試。
1.2 國內(nèi)典型的測(cè)控軟件開發(fā)平臺(tái)
中航工業(yè)634所研發(fā)的GTest[3]可視化測(cè)試程序集成環(huán)境,是在對(duì)PAWS及其他國外優(yōu)秀自動(dòng)測(cè)試系統(tǒng)軟件開發(fā)平臺(tái)進(jìn)行深入分析研究的基礎(chǔ)上開發(fā)出來的。GTest與其他自動(dòng)測(cè)試系統(tǒng)軟件平臺(tái)的區(qū)別在于:首先它使用可視化建模方式建立測(cè)試過程模型,然后結(jié)合儀器的驅(qū)動(dòng)程序自動(dòng)生成測(cè)試程序,不需要用戶進(jìn)行程序代碼的編寫,因此降低了對(duì)用戶計(jì)算機(jī)語言應(yīng)用能力的要求,有效提高了測(cè)試軟件的開發(fā)效率。GTest仿照了PAWS的功能,接近實(shí)用但對(duì)其進(jìn)行功能擴(kuò)展和二次開發(fā)比較困難。
北京航天測(cè)控技術(shù)開發(fā)公司研發(fā)的虛擬儀器測(cè)試環(huán)境VITE[4](Visual Instrument Test Environment),兼有測(cè)試和故障診斷的能力,功能覆蓋面較廣但針對(duì)性不強(qiáng),若用于慣導(dǎo)系統(tǒng)測(cè)試還要進(jìn)行改造。
1.3 研制測(cè)控軟件開發(fā)平臺(tái)的意義
慣導(dǎo)系統(tǒng)測(cè)控軟件不但要承擔(dān)所屬系統(tǒng)的數(shù)據(jù)采集和控制功能,而且還要實(shí)現(xiàn)人機(jī)交互接口、數(shù)據(jù)保存與分析、系統(tǒng)標(biāo)定與測(cè)試等功能,有時(shí)還要實(shí)現(xiàn)模擬仿真功能,因此功能較為復(fù)雜,實(shí)時(shí)性要求較高。另外,慣導(dǎo)系統(tǒng)在調(diào)試、驗(yàn)證階段,需求變化較大,經(jīng)常需要對(duì)軟件進(jìn)行快速、頻繁更改;對(duì)慣導(dǎo)系統(tǒng)進(jìn)行測(cè)控的設(shè)備通常屬于定制產(chǎn)品,因此需要由可擴(kuò)展的軟件平臺(tái)來實(shí)現(xiàn)軟硬件接口。
目前國內(nèi)外已有部分相關(guān)的軟件開發(fā)平臺(tái),但存在各種各樣的局限性,有的只能滿足某個(gè)領(lǐng)域測(cè)控軟件的開發(fā)需要;有的可擴(kuò)展性差,無法滿足慣導(dǎo)系統(tǒng)的測(cè)控需求。因此,需要針對(duì)慣導(dǎo)系統(tǒng)的測(cè)控要求,有針對(duì)性地開發(fā)適用的測(cè)控軟件開發(fā)平臺(tái),切實(shí)提高測(cè)控軟件開發(fā)效率和質(zhì)量。
在對(duì)慣導(dǎo)系統(tǒng)進(jìn)行測(cè)試時(shí),具有以下特點(diǎn)和需求:
1)通信接口類型多,包括RS422/232/485、CAN總線、1553B總線、ARINC429等;
2)通信協(xié)議種類多,不同的通信接口,其通信協(xié)議通常不同,即便是同一種通信接口,其通信協(xié)議也有很多種類型;
3)對(duì)測(cè)控軟件運(yùn)行實(shí)時(shí)性要求高,測(cè)控軟件要能夠?qū)崟r(shí)發(fā)送(轉(zhuǎn)發(fā))控制指令,接收解析、顯示并保存慣導(dǎo)系統(tǒng)發(fā)送的數(shù)據(jù);
4)在轉(zhuǎn)臺(tái)上進(jìn)行標(biāo)定、驗(yàn)證試驗(yàn)時(shí),標(biāo)定方法種類多,數(shù)據(jù)保存格式及數(shù)據(jù)處理方法各異;
5)在進(jìn)行導(dǎo)航測(cè)試時(shí),不同慣導(dǎo)產(chǎn)品的導(dǎo)航測(cè)試流程差異很大,對(duì)導(dǎo)航數(shù)據(jù)處理的方法各異。
慣導(dǎo)系統(tǒng)存在的上述測(cè)試需求,要求軟件平臺(tái)的體系結(jié)構(gòu)必須是通用的、開放的和標(biāo)準(zhǔn)化的,便于對(duì)其進(jìn)行升級(jí)和擴(kuò)展;同時(shí)要具有很好的靈活性,其中的組件要可重用和可移植,以便實(shí)現(xiàn)軟件平臺(tái)中資源的共享。
根據(jù)慣導(dǎo)系統(tǒng)測(cè)試需求,由測(cè)控軟件實(shí)現(xiàn)的需求可以按照功能進(jìn)行分類,例如:用于底層通信的硬件驅(qū)動(dòng)接口模塊、數(shù)據(jù)解幀組幀模塊、數(shù)據(jù)處理模塊、顯示模塊、轉(zhuǎn)臺(tái)控制模塊等,上述獨(dú)立功能模塊適宜采用插件方式進(jìn)行設(shè)計(jì)、開發(fā)。
采用插件方式實(shí)現(xiàn)的功能可以有效地實(shí)現(xiàn)對(duì)外接口的統(tǒng)一,同時(shí)能夠很好地滿足可擴(kuò)展性要求。設(shè)計(jì)出的軟件平臺(tái)體系結(jié)構(gòu)如圖1所示,由兩部分組成:一部分為軟件平臺(tái)的主體,定義為框架;另一部分為功能實(shí)現(xiàn)和擴(kuò)展,定義為插件。軟件平臺(tái)框架和插件都遵循統(tǒng)一的接口規(guī)范,之間可以相互通信。插件是開發(fā)滿足特定功能的組件集合,框架可以加載符合軟件平臺(tái)接口規(guī)范的插件,用戶可通過增刪或修改插件來調(diào)整軟件平臺(tái)的功能,因此框架具備良好的可擴(kuò)展性。
將開發(fā)完成的插件載入軟件平臺(tái)中,然后利用軟件平臺(tái)框架提供的組態(tài)開發(fā)功能,靈活地將相關(guān)的功能插件連接組裝在一起,生成針對(duì)某個(gè)具體慣導(dǎo)系統(tǒng)的測(cè)試控制流程,用于慣導(dǎo)系統(tǒng)的測(cè)試。
圖1 軟件平臺(tái)體系結(jié)構(gòu)Fig.1 Software platform architecture
3.1 軟件平臺(tái)框架的功能
軟件平臺(tái)框架是一個(gè)通用的可獨(dú)立運(yùn)行的程序,定義了軟件平臺(tái)的接口規(guī)范,他可自動(dòng)加載符合軟件平臺(tái)接口規(guī)范的插件,是整個(gè)軟件平臺(tái)的基礎(chǔ)和主干,主要完成以下功能:
1)負(fù)責(zé)啟動(dòng)整個(gè)軟件平臺(tái)和注冊(cè)插件:軟件平臺(tái)啟動(dòng)后初始化窗體界面和組件管理器,掃描插件目錄,完成插件的注冊(cè),并保存插件信息。
2)負(fù)責(zé)管理組件和插件:完成組件、插件接口的初始化,加載和卸載組件、插件,并處理軟件平臺(tái)異常。
3)負(fù)責(zé)向外界提供使用插件功能的界面(如菜單、工具欄等),通過規(guī)范接口調(diào)用工廠類組件實(shí)例化功能組件。工廠類組件是框架實(shí)例化功能組件的入口,為框架提供功能組件的相關(guān)信息,并根據(jù)需要實(shí)例化相應(yīng)的功能組件。
軟件平臺(tái)中的插件包括基礎(chǔ)插件和功能插件?;A(chǔ)插件在軟件平臺(tái)啟動(dòng)時(shí)由框架自動(dòng)加載,僅實(shí)例化一次,初始化軟件的界面和基本功能;功能插件輔助軟件平臺(tái)實(shí)現(xiàn)開發(fā)測(cè)控軟件流程所需的具體功能。
3.2 組件及其接口設(shè)計(jì)
軟件平臺(tái)中以XML自描述的形式建立標(biāo)準(zhǔn)化的組件模型,并設(shè)計(jì)統(tǒng)一的對(duì)外接口。設(shè)計(jì)的組件基本接口如圖2所示,包括3個(gè)基本接口:Report()、Notify()和Attach()。其中,Attach()接口用于實(shí)現(xiàn)組件間的注冊(cè),Report()接口與Notify()接口共同實(shí)現(xiàn)組件間的信息交互,組件間可采用數(shù)據(jù)交換和消息傳遞兩種方式進(jìn)行通信。組件間的數(shù)據(jù)交換采用端口到端口的傳輸機(jī)制,若傳輸?shù)臄?shù)據(jù)量較大可采用緩沖區(qū)機(jī)制;組件間進(jìn)行消息傳遞時(shí),采用發(fā)布-訂購機(jī)制傳輸XML格式的消息。
圖2 組件接口Fig.2 Component interface
軟件平臺(tái)內(nèi)的所有組件均繼承上述3個(gè)基本接口,如圖3所示。不同類型的組件根據(jù)其實(shí)現(xiàn)的功能對(duì)外提供不同的應(yīng)用接口,有以下三類典型的組件:
1)工廠類組件:提供了CreateComponent()接口,該接口可用于實(shí)例化功能組件。
2)圖示類組件:主要負(fù)責(zé)實(shí)現(xiàn)測(cè)控軟件界面設(shè)計(jì)所需的功能,不包括測(cè)控軟件所需的計(jì)算或處理功能;提供了Draw()接口,該接口可根據(jù)需要在流程組態(tài)視圖和界面組態(tài)視圖內(nèi)繪制相應(yīng)的圖形,若組件是非可視化的,則Draw()接口為空。
3)功能組件:按照設(shè)計(jì)要求對(duì)外提供Run()、Draw()和PopPropertyDlg()接口,分別實(shí)現(xiàn)運(yùn)行、繪制圖形和屬性設(shè)置功能。
圖3 組件接口繼承關(guān)系Fig.3 Inherit relationship of the component interface
3.2 插件設(shè)計(jì)及開發(fā)
插件是一系列相關(guān)功能的集合體,被封裝在同一個(gè)動(dòng)態(tài)鏈接庫中,包含一個(gè)或多個(gè)功能組件和一個(gè)工廠類組件,軟件平臺(tái)中以插件作為組件的組織形式。軟件平臺(tái)啟動(dòng)時(shí)自動(dòng)掃描插件目錄,并將可用插件注冊(cè)到軟件平臺(tái)中,插件的工廠類組件提供的接口供軟件平臺(tái)調(diào)用,同時(shí)也是功能組件實(shí)例化的入口。采用插件技術(shù)可實(shí)現(xiàn)軟件平臺(tái)的功能定制,提高軟件平臺(tái)的靈活性。
3.2.1 插件基本結(jié)構(gòu)
插件由“工廠類組件”和“功能組件”兩部分組成,工廠類組件是一組與軟件平臺(tái)相銜接的接口函數(shù),功能組件負(fù)責(zé)實(shí)現(xiàn)特定的功能。插件的基本結(jié)構(gòu)如圖4所示,這里的“工廠類組件”與圖3中的定義相同,除了組件所具有的Report()、Notify()和Attach()等基本接口外,還提供了CreateComponent()接口,用于實(shí)例化插件內(nèi)的功能組件。
圖4 插件基本結(jié)構(gòu)Fig.4 Plug-in basal architecture
圖5 插件與軟件平臺(tái)框架的關(guān)系Fig.5 The relationship between plug-in and software development platform
3.2.2 插件與軟件平臺(tái)框架的關(guān)系
軟件平臺(tái)以動(dòng)態(tài)鏈接庫的方式實(shí)現(xiàn)插件,插件與軟件平臺(tái)框架的關(guān)系如圖5所示。插件中包含的信息如插件名、插件動(dòng)態(tài)庫路徑、插件圖標(biāo)路徑等,均以XML格式進(jìn)行描述。軟件平臺(tái)通過讀取XML文件獲取相應(yīng)信息并注冊(cè)插件,插件注冊(cè)成功后,軟件平臺(tái)就可以調(diào)用插件中的功能組件完成特定的任務(wù),以此實(shí)現(xiàn)測(cè)控軟件開發(fā)過程中所需功能及軟件資源的“即插即用”。
3.3.3 核心插件Editpanel
3.3.3.1 Editpanel插件的功能
Editpanel插件是整個(gè)軟件平臺(tái)的核心部分,用于實(shí)現(xiàn)拖放式組態(tài)、組件通信及工程的創(chuàng)建、打開和保存。Editpanel插件負(fù)責(zé)對(duì)用戶操作引起的事件做出響應(yīng),實(shí)現(xiàn)用戶與軟件平臺(tái)的交互。基于狀態(tài)機(jī)思想設(shè)計(jì)的Editpanel插件實(shí)現(xiàn)了雙視圖結(jié)構(gòu)(即界面視圖和組態(tài)視圖),并為用戶提供了三種工作模式:設(shè)計(jì)模式、運(yùn)行模式和調(diào)試模式。
設(shè)計(jì)模式下,可以在界面視圖和組態(tài)視圖之間自由切換,界面視圖提供各種界面圖標(biāo),用于設(shè)計(jì)用戶界面;組態(tài)視圖提供具有端口的圖標(biāo),通過拖放式組態(tài)完成測(cè)控軟件控制流程的設(shè)計(jì)。設(shè)計(jì)完成后,切換至運(yùn)行模式,可在界面視圖內(nèi)觀看界面運(yùn)行效果、查看測(cè)試數(shù)據(jù);如果切換至調(diào)試模式,則可在組件端口處設(shè)置斷點(diǎn),通過單步執(zhí)行、執(zhí)行至斷點(diǎn)等方法清晰地觀察數(shù)據(jù)的流動(dòng)。測(cè)控軟件運(yùn)行時(shí),通過拓?fù)渑判蛩惴ù_定組件間的時(shí)序拓?fù)潢P(guān)系,保證每個(gè)組件接收的數(shù)據(jù)都是上一拓?fù)涔?jié)拍產(chǎn)生的最新數(shù)據(jù),滿足數(shù)據(jù)傳遞的實(shí)時(shí)性及時(shí)序關(guān)系的正確。
3.3.3.2 Editpanel的狀態(tài)機(jī)模型
Editpanel插件基于狀態(tài)機(jī)思想進(jìn)行設(shè)計(jì),用戶的操作作為狀態(tài)轉(zhuǎn)移的觸發(fā)條件,采用表驅(qū)動(dòng)的方式建立有限狀態(tài)機(jī),對(duì)應(yīng)的狀態(tài)轉(zhuǎn)移表中保存了當(dāng)前狀態(tài)、觸發(fā)事件、下一狀態(tài)以及相應(yīng)的處理函數(shù)。其中觸發(fā)事件與處理函數(shù)用宏表示,狀態(tài)轉(zhuǎn)移表格式如表1所示。
表1 狀態(tài)轉(zhuǎn)移表格式Tab.1 The format of state transfer table
狀態(tài)機(jī)模型如圖6所示,在狀態(tài)機(jī)運(yùn)行過程中,當(dāng)有事件觸發(fā)時(shí),狀態(tài)處理函數(shù)StatusHandle()查詢狀態(tài)轉(zhuǎn)移表,查詢成功后轉(zhuǎn)移至新的狀態(tài)并進(jìn)入事件處理函數(shù)ActionHandle()。
圖6 狀態(tài)機(jī)模型Fig.6 State machine model
為保證軟件平臺(tái)的雙視圖結(jié)構(gòu)正常工作,設(shè)計(jì)了DisplayEditpanel容器和LinkViewEditpanel容器,兩個(gè)容器互為兄弟節(jié)點(diǎn)。DisplayEditpanel容器負(fù)責(zé)用戶與界面視圖的交互,LinkViewEditpanel容器負(fù)責(zé)用戶與組態(tài)視圖的交互。當(dāng)用戶與其中一個(gè)容器交互時(shí),該容器向兄弟節(jié)點(diǎn)發(fā)消息,完成雙視圖的同步更新。
DisplayEditpanel的狀態(tài)遷移如圖7所示,LinkViewEditpanel的狀態(tài)遷移如圖8所示。
圖7 Display Editpanel的狀態(tài)遷移圖Fig.7 Display Editpanel state transfer chart
圖8 LinkViewEditpanel的狀態(tài)遷移圖Fig.8 LinkViewEditpanel state transfer chart
軟件平臺(tái)啟動(dòng)后,通過狀態(tài)機(jī)完成設(shè)計(jì)模式下軟件平臺(tái)與用戶的交互。狀態(tài)機(jī)默認(rèn)以零號(hào)狀態(tài)開始,等待用戶的操作觸發(fā)相應(yīng)事件;狀態(tài)機(jī)根據(jù)觸發(fā)事件調(diào)用事件處理函數(shù)完成事件的響應(yīng),并調(diào)用狀態(tài)處理函數(shù)完成狀態(tài)的遷移。
3.4 軟件平臺(tái)的可擴(kuò)展性
可擴(kuò)展性是該軟件平臺(tái)最大的優(yōu)勢(shì)和特色,由于軟件平臺(tái)的功能是通過各種插件實(shí)現(xiàn)的,只需封裝符合軟件平臺(tái)接口規(guī)范的新插件,將其放在軟件平臺(tái)的掃描路徑下,軟件平臺(tái)運(yùn)行時(shí)就可以自動(dòng)加載新開發(fā)的插件,實(shí)現(xiàn)軟件平臺(tái)功能的擴(kuò)展。
為了滿足慣導(dǎo)系統(tǒng)測(cè)控要求,軟件平臺(tái)中內(nèi)置了一些定制組件,如串口通信卡組件、CAN通信卡組件、1553B通信卡組件、慣導(dǎo)自檢組件、慣導(dǎo)封裝組件、慣導(dǎo)對(duì)準(zhǔn)組件、慣導(dǎo)導(dǎo)航組件、轉(zhuǎn)臺(tái)控制組件、數(shù)據(jù)處理組件等,方便了慣導(dǎo)用測(cè)控軟件的設(shè)計(jì)開發(fā)。
該軟件平臺(tái)的應(yīng)用方式雖然與傳統(tǒng)的組態(tài)軟件類似,但工作原理有很大區(qū)別,軟件平臺(tái)運(yùn)行時(shí)直接執(zhí)行各種插件、組件的.dll文件,因此能夠滿足測(cè)試時(shí)對(duì)實(shí)時(shí)性的要求。
軟件平臺(tái)運(yùn)行后的主界面如圖9所示,界面上主要包括3個(gè)區(qū)域,左上部為“項(xiàng)目管理”區(qū),右上部為“界面組態(tài)”區(qū),下部為“流程組態(tài)”區(qū)。在利用軟件平臺(tái)開發(fā)測(cè)控軟件時(shí),以可視化組態(tài)的方式進(jìn)行設(shè)計(jì)開發(fā),具有固定的步驟和流程。
圖9 測(cè)控軟件開發(fā)平臺(tái)主界面Fig.9 Main interface of the software development platform
慣導(dǎo)系統(tǒng)測(cè)控軟件基本工作流程如下:
1)測(cè)控軟件接收慣導(dǎo)系統(tǒng)自檢數(shù)據(jù)幀;
2)自檢正常后進(jìn)行慣導(dǎo)系統(tǒng)參數(shù)裝定;
3)裝定正確后發(fā)送對(duì)準(zhǔn)指令、轉(zhuǎn)導(dǎo)航指令;
4)測(cè)控軟件接收慣導(dǎo)系統(tǒng)導(dǎo)航數(shù)據(jù)。
下面根據(jù)慣導(dǎo)系統(tǒng)測(cè)控軟件工作流程,以一個(gè)實(shí)例描述測(cè)控軟件設(shè)計(jì)開發(fā)過程。該實(shí)例通過“開始測(cè)試”按鈕控制測(cè)試過程的啟動(dòng)和停止,利用“數(shù)據(jù)裝定”、“對(duì)準(zhǔn)指令”、“導(dǎo)航指令”等按鈕進(jìn)行指令發(fā)送,設(shè)計(jì)完成的測(cè)控軟件如圖10所示。軟件平臺(tái)運(yùn)行后默認(rèn)為編輯模式,在該模式下進(jìn)行測(cè)控軟件的設(shè)計(jì),具體步驟如下:
1)選擇“項(xiàng)目”中的“新建”菜單,新建一個(gè)工程。
2)調(diào)出所需的工具欄,如基礎(chǔ)控件類、顯示類、存儲(chǔ)類等,工具欄中的每一個(gè)可視化圖標(biāo)都是一個(gè)封裝好的組件。
3)根據(jù)需要將“流程組件”圖標(biāo)和所需的功能組件圖標(biāo)拖放到界面下部的“流程組態(tài)”區(qū)域,如果“流程組件”具有界面特性,軟件平臺(tái)將自動(dòng)在“界面組態(tài)”區(qū)域放置相應(yīng)的“界面組件”圖標(biāo)。用到的組件包括:按鈕組件、RS422板卡組件、幀解析組件、數(shù)據(jù)列表組件、數(shù)據(jù)存儲(chǔ)組件等。
4)根據(jù)需要調(diào)整“界面組件”的大小,并利用軟件平臺(tái)提供的組件排布工具將各組件放置在合適的位置。
5)在組件之間進(jìn)行連線,有兩種方式:一種是直接用線條連接不同組件的端口;另一種是無線連接,通過不同的端口顏色確定連接關(guān)系。完成連線后測(cè)控軟件設(shè)計(jì)過程結(jié)束。
測(cè)控軟件設(shè)計(jì)完成后,在運(yùn)行模式下點(diǎn)擊“開始測(cè)試”按鈕,測(cè)控軟件開始接收、解析、顯示并保存慣導(dǎo)系統(tǒng)數(shù)據(jù),測(cè)試人員根據(jù)需要向慣導(dǎo)系統(tǒng)發(fā)送控制命令,實(shí)現(xiàn)對(duì)慣導(dǎo)系統(tǒng)的測(cè)試。
圖10 設(shè)計(jì)完成的測(cè)控軟件Fig.10 The designed test software
利用軟件平臺(tái)設(shè)計(jì)的測(cè)控軟件,運(yùn)行后如果滿足設(shè)計(jì)要求則可通過軟件平臺(tái)提供的“發(fā)布”功能,將測(cè)控軟件發(fā)布為可脫離軟件平臺(tái)獨(dú)立運(yùn)行的可執(zhí)行程序,測(cè)控軟件整個(gè)開發(fā)過程結(jié)束,否則重新返回到“編輯模式”修改設(shè)計(jì)。通過上述設(shè)計(jì)開發(fā)過程可以看出,無需編寫源代碼,使得測(cè)控軟件的開發(fā)效率大幅提高;由于測(cè)控軟件是軟件平臺(tái)中若干組件的集合,通過修改組件屬性及組態(tài)流程,便可適應(yīng)對(duì)不同慣導(dǎo)產(chǎn)品的測(cè)試,因此軟件平臺(tái)具有很強(qiáng)的通用性。
本文對(duì)測(cè)控軟件通用開發(fā)平臺(tái)進(jìn)行了研究,在對(duì)慣導(dǎo)系統(tǒng)測(cè)試需求進(jìn)行分析的基礎(chǔ)上,設(shè)計(jì)了軟件平臺(tái)體系結(jié)構(gòu),詳細(xì)論述了軟件平臺(tái)框架的功能、組件和插件的設(shè)計(jì)、狀態(tài)機(jī)模型及平臺(tái)的可擴(kuò)展性,最后通過一個(gè)簡單的實(shí)例,描述了利用軟件平臺(tái)開發(fā)測(cè)控軟件的開發(fā)模式。利用軟件平臺(tái)開發(fā)慣導(dǎo)系統(tǒng)測(cè)控軟件時(shí)無需編寫源代碼,測(cè)控軟件是由一系列標(biāo)準(zhǔn)的插件組合而成的。利用該軟件平臺(tái)開發(fā)慣導(dǎo)系統(tǒng)測(cè)試軟件,不但可以有效地提高開發(fā)效率和產(chǎn)品質(zhì)量、降低人力成本,而且使測(cè)控軟件的標(biāo)準(zhǔn)化、系列化、模塊化程度大幅提高。
[1] 劉暢,李顯甫.一種自動(dòng)測(cè)試系統(tǒng)的開發(fā)平臺(tái)-PAWS[J].測(cè)控技術(shù),2003,22(12).
[2] 王紅,楊小輝.PAWS軟件平臺(tái)的資源描述及自動(dòng)配置實(shí)現(xiàn)分析[J].測(cè)控技術(shù),2004,23(9).
[3] 王紅,王湘念.自動(dòng)測(cè)試系統(tǒng)軟件平臺(tái)發(fā)展現(xiàn)狀及建議[J].航空制造技術(shù),2008,22.
[4] 于功敬,馬好東,楊廣志,奚全生.虛擬儀器測(cè)試環(huán)境軟總線體系結(jié)構(gòu)[J].計(jì)算機(jī)測(cè)量與控制,2006,14(2).
Research on Inertial Navigation System Test Software Development Platform
CHEN Liu-tao,YANG Ye-ming,CHEN Jing-yi
(Aerospace Science and Industry Inertial Technology Co.,Ltd.,Beijing 100074,China)
In order to enhance the development efficiency and the grade of standardization,serialization and modularization of the inertial navigation system test software,a general software development platform technique of the test software is researched.The software development platform architecture is designed based on the analysis of the inertial navigation system test requirement.The function of the software development platform framework,the design method of the component and plug-in,the state machine model on the software development platform,and the function extendibility are introduced in detail.Based on a case the development model of the test software on the software development platform is described.The configuration development process shows that the general-utility of the software development platform is excellent.The development efficiency and the grade of standardization,serialization and modularization of the inertial navigation system test software based on the software development platform are advanced greatly.
Inertial navigation system;Test software;General software development platform;Interface configuration;Work flow configuration
2015-10-28;
2015-11-09。
陳留濤(1979-),男,博士,工程師,主要從事測(cè)控軟件技術(shù)方面的研究。E-mail:clt00000@163.net
U666.12
A
2095-8110(2016)01-0073-08