楊振,馬鵬飛,趙偉忠
?測試、發(fā)射技術(shù)?
基于構(gòu)件的點火控制軟件設(shè)計*
楊振,馬鵬飛,趙偉忠
(上海機電工程研究所,上海 201109)
針對飛行器點火控制軟件不宜購買商用構(gòu)件且需要個性化定制的需求,對飛行器點火控制原理進行了研究,并對多種飛行器的點火控制流程進行了抽象,設(shè)計了一種基于參數(shù)和動作的點火控制軟件構(gòu)件。該構(gòu)件通過各個子構(gòu)件之間的配合,利用對點火流程抽象得到的裝訂參數(shù),可以適應(yīng)多種不同飛行器的點火控制需求,實現(xiàn)點火控制軟件的核心功能。將該構(gòu)件應(yīng)用于點火控制軟件應(yīng)用簇的研制,可以降低軟件開發(fā)成本,有效地提升點火控制軟件產(chǎn)品的質(zhì)量。
點火控制;軟件復(fù)用;構(gòu)件;結(jié)構(gòu);參數(shù);抽象
為了提高開發(fā)效率,軟件復(fù)用越來越受到軟件企業(yè)的重視。軟件復(fù)用是指在不同的軟件開發(fā)過程中重復(fù)使用相同或相近軟件元素的過程,軟件元素包括程序代碼、測試用例、設(shè)計文檔、設(shè)計過程、需求分析文檔甚至領(lǐng)域知識[1]。與軟件復(fù)用技術(shù)密切相關(guān)的概念是構(gòu)件。構(gòu)件是指語義完整、語法正確和有可重用價值的單位軟件,是軟件復(fù)用過程中可以明確辨識的系統(tǒng);結(jié)構(gòu)上,它是語義描述、通訊接口和實現(xiàn)代碼的復(fù)合體[2]。通過購買商用構(gòu)件并遵循其開發(fā)標準來進行應(yīng)用開發(fā),是提高應(yīng)用軟件開發(fā)效率的常見選擇。當(dāng)前,主流的商用構(gòu)件標準規(guī)范包括OMG(object management group)的CORBA、Sun公司的J2EE和Microsoft的DNA等[3]。
除購買商用構(gòu)件外,軟件企業(yè)也會自行開發(fā)構(gòu)件。在開發(fā)若干相關(guān)的應(yīng)用軟件時,會首先界定這一組“應(yīng)用簇”的共同特性,并以此建立模型,按照復(fù)用的要求將模型分解成恰當(dāng)規(guī)模和結(jié)構(gòu)的構(gòu)件,對這些構(gòu)件進行設(shè)計、實現(xiàn)、編寫文檔、打包,形成可復(fù)用構(gòu)件,并用于支持該應(yīng)用簇的各個應(yīng)用軟件的開發(fā)工作[4]。飛行器發(fā)射時的點火控制軟件一般需要按照點火場景進行定制化開發(fā),由于限價設(shè)計以及技術(shù)保密性等原因,購買商用構(gòu)件往往也難于實施。本文以飛行器點火控制軟件為背景,對多種飛行器點火場景的需求進行了研究和抽象,設(shè)計了一套可復(fù)用構(gòu)件,可以通過配置參數(shù)以及子構(gòu)件之間的配合,實現(xiàn)多樣化的飛行器點火控制功能,并廣泛應(yīng)用于點火控制軟件應(yīng)用簇的開發(fā)之中,提高了點火控制軟件的研制效率和產(chǎn)品質(zhì)量。
目前點火控制系統(tǒng)一般采用二級分布式計算機控制方式,如圖1所示。管理組合(上級計算機)一般采用高性能的計算機,負責(zé)整個系統(tǒng)的協(xié)調(diào)、管理、分配等功能;控制組合(下級計算機)一般采用DSP,負責(zé)具體點火控制操作[5]。管理組合和控制組合進行點對點的應(yīng)答式通訊。點火控制軟件運行在控制組合中,接收管理組合的控制指令,通過IO端口輸出的電平驅(qū)動執(zhí)行組合上的繼電器動作,將電源接通到火工品電路上,從而實現(xiàn)被控目標的加電、點火,并采集點火執(zhí)行結(jié)果的返回信號。本文設(shè)計的可復(fù)用構(gòu)件主要應(yīng)用于點火控制軟件的開發(fā)當(dāng)中。
圖1 點火控制系統(tǒng)組成
為了快速定位故障,控制組合需要檢測點火步驟的2種信號:已執(zhí)行信號和返回好信號。已執(zhí)行信號取自繼電器的后端,當(dāng)繼電器正常吸合,電源接入到被控目標時,已執(zhí)行信號正常;返回好信號取自火工品電路的后端,如果火工品成功點燃,返回好信號正常。管理組合根據(jù)控制組合回告的點火結(jié)果,決定發(fā)出下一個控制指令或者進入故障處理流程。不同的飛行器,其點火流程相差很大,因此各項目的點火控制軟件一般都需要個性化定制。
控制組合核心功能是在管理組合的控制下,通過驅(qū)動執(zhí)行組合來完成點火流程。點火流程是由若干步驟依次執(zhí)行完成的,而每一個步驟都可以抽象為以下的固定時序控制:①控制組合接收到管理組合發(fā)送的控制命令;②控制組合輸出IO控制信號給執(zhí)行組合;③執(zhí)行組合上的繼電器吸合,實施點火實際動作;④控制組合檢測已執(zhí)行結(jié)果和返回好結(jié)果,并回告管理組合;⑤控制組合判斷執(zhí)行結(jié)果,等待下一控制命令或者進入故障處理??梢姡c火流程的時序動作是固定的,但是時序動作中的每個步驟會因為系統(tǒng)的不同而有細節(jié)上的差別。比如,不同系統(tǒng)選用的繼電器類型不一致,對于已執(zhí)行結(jié)果檢測的時間會有不同。如果能夠用一組參數(shù)來描述時序動作的每一個步驟的執(zhí)行細節(jié),當(dāng)控制組合接收到某一控制命令時,首先檢索到執(zhí)行該步驟的參數(shù),然后再根據(jù)這些參數(shù)去執(zhí)行點火動作,即采用“參數(shù)(可變)+動作(不變)”的構(gòu)件結(jié)構(gòu),就可以適應(yīng)不同系統(tǒng)的點火需求[6]。
單步動作是點火流程中的基本動作,至少應(yīng)該包含控制一個IO端口輸出有效電平,以驅(qū)動繼電器吸合;檢測一個已執(zhí)行IO端口和一個返回好IO端口,以確認本步動作的執(zhí)行結(jié)果。通過各系統(tǒng)點火需求的分析,對于一個單步動作,各配置2組輸出端口、已執(zhí)行檢測端口、返回好檢測端口。輸出端口除了明確端口號外,還需要設(shè)置時間屬性——維持一段固定的時間、持續(xù)輸出、或是在檢測到返回好信號后將輸出切掉。已執(zhí)行和返回好檢測端口除了明確端口號外,還需要明確開始檢測的時間和檢測截止的時間,這是由繼電器的吸合時間以及火工品電路的反應(yīng)時間決定的。對于返回好信號的檢測,有的系統(tǒng)并不是以“規(guī)定時間內(nèi)檢測到返回好信號有效”為依據(jù),而可能有更為復(fù)雜的判據(jù)。例如,某系統(tǒng)中就是以“該點火動作的返回好信號在規(guī)定時間內(nèi)持續(xù)有效”為判據(jù)。因此,對于返回好信號的判別可以分為一般判定和特殊判定,如果為特殊判定還需要指明特殊判定的類型。已執(zhí)行和返回好信號出現(xiàn)異常時,并不是都要判定為故障。例如,點火步驟“打開保險開關(guān)”,由于此時流程已經(jīng)不可逆轉(zhuǎn),即使沒有成功也要繼續(xù)執(zhí)行點火流程。所以,需要對單步動作已執(zhí)行和返回好信號異常是否判定為故障進行設(shè)置。
點火操作對于安全性的要求很高,因此單步動作執(zhí)行前必須進行合法性判斷。一般情況下,流程都是順序進行的,如果前一步驟沒有完成,不能夠執(zhí)行下一步驟;另一方面,點火流程由于受到系統(tǒng)反應(yīng)時間的限制,有時會要求某一步驟執(zhí)行完之后,一定時間之內(nèi)必須要開始執(zhí)行下一步驟。為了實現(xiàn)安全性判據(jù),需要對單步動作設(shè)置前序動作和后序動作。前序動作未完成,收到新的控制命令即判斷為命令非法;本步執(zhí)行完畢后,在給定的時間內(nèi)沒有接到后序動作的控制命令,即判斷為命令超時。以上2種情況都視為故障,應(yīng)上報管理組合、終止點火流程并進行安全處理。
點火控制軟件還需要具有點火時序結(jié)果采集功能。時序結(jié)果是某一單步動作相對于點火起始時間的相對時間,點火起始時間即為某一特定單步動作的開始時間。因此,需要對單步動作是否為點火起始點進行設(shè)置。單步動作參數(shù)的結(jié)構(gòu)如表1所示。
表1 單步動作參數(shù)
連續(xù)動作可以看作是幾個單步動作的組合。對于連續(xù)動作里面的單步動作,需要按照參數(shù)的設(shè)置自行執(zhí)行。因此,對于一個連續(xù)動作,需要明確的信息主要有:每一個單步動作的標識和每個單步動作之間的間隔時間??紤]到現(xiàn)有點火流程的復(fù)雜度,每個連續(xù)動作最多包含4個單步動作,且僅需實現(xiàn)“單步動作2,3,4與單步動作1同時執(zhí)行”,以及“在單步動作1執(zhí)行后,單步動作2,3,4各自延遲不同的時間執(zhí)行”這2種情況。連續(xù)動作參數(shù)結(jié)構(gòu)如表2所示。
表2 連續(xù)動作參數(shù)
單步動作構(gòu)件結(jié)構(gòu)如圖2所示。該構(gòu)件的內(nèi)部有以下7個子構(gòu)件:獲取單步動作參數(shù)、端口輸出、已執(zhí)行結(jié)果檢測、返回好結(jié)果檢測、時序獲取、單步動作收尾、命令合法性判別。每個子構(gòu)件都與該單步動作的參數(shù)直接相關(guān)。
連續(xù)動作構(gòu)件結(jié)構(gòu)如圖3所示。該構(gòu)件是通過調(diào)用單步動作構(gòu)件實現(xiàn)的,調(diào)用的方式與該連續(xù)動作的參數(shù)直接相關(guān)。
動作構(gòu)件結(jié)構(gòu)如圖4所示。動作構(gòu)件是通過調(diào)用單步動作構(gòu)件和連續(xù)動作構(gòu)件實現(xiàn)的。有的點火系統(tǒng)對于一些特定動作只要求輸出,不關(guān)心其執(zhí)行結(jié)果,將這種動作識別為單步動作將造成資源的浪費。因此,在動作構(gòu)件中增加“附加IO端口操作”子構(gòu)件,對于不需要檢測執(zhí)行結(jié)果的動作,按照從控制命令中解析出的附加IO端口號以及輸出需要維持的時間,直接完成輸出動作[7]。
本套點火控制構(gòu)件的運行主要是通過對參數(shù)的檢索以及識別實現(xiàn)的。單步動作構(gòu)件、連續(xù)動作構(gòu)件首先都需要基于當(dāng)前控制命令檢索到其對應(yīng)的參數(shù),將其載入到構(gòu)件之中,并最終確定構(gòu)件的行為。正是基于對點火過程的抽象,將業(yè)務(wù)流程轉(zhuǎn)化為參數(shù)數(shù)據(jù),使這套構(gòu)件具備了可復(fù)用的特性[8-9]。
首先通過分析被控目標的點火過程來確定單步動作參數(shù)、連續(xù)動作參數(shù),并由管理組合將參數(shù)通過通訊報文的形式裝訂給控制組合,通訊方式根據(jù)不同的系統(tǒng)有所不同。以控制器局域網(wǎng)(controller area network,CAN)總線為例,管理組合與多個控制組合掛接在同一條CAN總線上,依次為每個控制組合裝訂參數(shù):首先通過握手令通知某一控制組合開始裝訂,并以不同的幀頭區(qū)分單步動作參數(shù)和連續(xù)動作參數(shù),控制組合接收完畢后進行校驗,若校驗通過,則回告裝訂成功,并將接收到的報文進行解析,填充至參數(shù)數(shù)據(jù)結(jié)構(gòu)中,管理組合轉(zhuǎn)而為下一個控制組合裝訂參數(shù)[10]。裝訂完參數(shù)的控制組合即處于命令等待狀態(tài)。當(dāng)收到管理組合的控制命令時,控制組合由命令等待狀態(tài)跳轉(zhuǎn)至命令執(zhí)行狀態(tài),并調(diào)用動作構(gòu)件執(zhí)行控制命令。控制命令執(zhí)行完畢,如果結(jié)果正常,則跳轉(zhuǎn)至命令等待狀態(tài),如果結(jié)果異常,則跳轉(zhuǎn)至安全處理狀態(tài),如圖5所示。
圖2 單步動作構(gòu)件的內(nèi)部構(gòu)造
圖3 連續(xù)動作構(gòu)件的內(nèi)部構(gòu)造
圖4 動作構(gòu)件的內(nèi)部構(gòu)造
圖5 點火控制軟件的狀態(tài)圖
隨著飛行器領(lǐng)域的不斷發(fā)展,飛行器點火控制系統(tǒng)的需求日新月異,對此類軟件研制能力的要求也越來越高。軟件復(fù)用作為提升軟件開發(fā)效率和產(chǎn)品質(zhì)量的有效手段,正在業(yè)界中發(fā)揮著日益重要的作用[11]。本文設(shè)計的點火控制軟件構(gòu)件,當(dāng)點火流程變化或者需要適應(yīng)其他系統(tǒng)的點火需求時,通過更新管理組合裝訂給控制組合的參數(shù)即可實現(xiàn)不同被控目標的點火控制功能。本構(gòu)件的開發(fā)文檔、代碼齊套,已經(jīng)應(yīng)用到具體的項目中并已經(jīng)通過了各種測試和系統(tǒng)聯(lián)試的驗證,后續(xù)有望在飛行器點火控制軟件應(yīng)用簇的開發(fā)中,發(fā)揮重要的作用。
[1] SCHACH S R.面向?qū)ο筌浖こ蹋跰]. 黃林輝,徐小輝,伍建焜,譯.北京:機械工業(yè)出版社,2008:145-153.
SCHACH S. R. Object-Oriented Software Engineering [M]. HUANG Linhui, XU Xiaohui, WU Jiankun, Translated. Beijing: China Machine Press, 2008:145-153.
[2] 張友生.軟件體系結(jié)構(gòu)原理、方法與實踐[M].2版.北京:清華大學(xué)出版社,2014:4-7.
ZHANG Yousheng. Principles, Methods and Practice of Software Architecture [M]. 2nd ed. Beijing: Tsinghua University Press, 2014:4-7.
[3] 希賽教育軟考學(xué)院.系統(tǒng)架構(gòu)設(shè)計師教程[M]. 4版. 北京:電子工業(yè)出版社,2017:161-162.
Xisai College of Education and Software Examination. System Architecture Designer Tutorial [M]. 4th ed. Beijing: Publishing House of Electronics Industry, 2017:161-162.
[4] Hassan Gomaa.軟件建模與設(shè)計[M].彭鑫,吳毅堅,趙文耘,等,譯.北京:機械工業(yè)出版社,2016:227-240.
Hassan Gomaa. Software Modeling and Design [M]. PENG Xin, WU Yijian, ZHAO Wenyun,et al, Translated. Beijing: China Machine Press, 2016: 227-240.
[5] 李蘭蘭,霍宏,溫亞.基于構(gòu)件的運載器控制系統(tǒng)飛行軟件框架研究[J].航天控制,2017,35(3):63-66.
LI Lanlan, HUO Hong, WEN Ya. Research on Flight Software Framework of Component-Based Launch Vehicle Control System [J]. Aerospace Control, 2017,35 (3): 63-66.
[6] 葛洋洋,王驥超.基于構(gòu)件的串行總線通信軟件設(shè)計[J].信息通信,2018(10):196-197.
GE Yangyang, WANG Jichao. Design of Component-Based Serial Bus Communication Software[J]. Information Communication, 2018 (10): 196-197.
[7] 方志.基于構(gòu)件的軟件開發(fā)與集成平臺設(shè)計[J].計算機網(wǎng)絡(luò),2013(13):53-56.
FANG Zhi. Component-Based Software Development and Integration Platform Design [J]. Computer Network, 2013 (13): 53-56.
[8] 彭剛,夏成林.基于構(gòu)件的開放式機器人控制軟件設(shè)計[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2015,43(10):10-13.
PENG Gang, XIA Chenglin. Design of Component-Based Open Robot Control Software[J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2015,43 (10): 10-13.
[9] 鄭世明,徐新偉,朱江.基于構(gòu)件的武器裝備體系敏捷仿真框架研究[J].指揮控制與仿真,2019,41(2):81-87.
ZHENG Shiming, XU Xinwei, ZHU Jiang. Research on Component-Based Agile Simulation Framework of Weapon Equipment System [J]. Command, Control and Simulation, 2019, 41 (2): 81-87.
[10] DAM H K, WINIKOFF M. Towards a Next-Generation AOSE Methodology[J]. Science of Computer Programming,2013,78(6):684-694.
[11] 臧維明,華驊,賴炳宇,等.一種跨平臺敏捷式動態(tài)可重構(gòu)系統(tǒng)架構(gòu)研究[J].中國電子科學(xué)研究院學(xué)報,2017,12(3):225-231.
ZANG Weiming, HUA Hua, LAI Bingyu, et al. Research on a Cross-Platform Agile Dynamic Reconfigurable System Architecture [J]. Journal of China Academy of Electronic Sciences, 2017,12 (3): 225-231.
Design of Ignition Control Software Based on Component
YANGZhen,MAPengfei,ZHAOWeizhong
(Shanghai Electro-Mechanical Engineering Institute, Shanghai 201109, China)
In view of the requirements that flight vehicle ignition control software is not suitable for purchasing commercial components and needs customized development, the ignition control principles of flight vehicles are studied. The ignition control processes of various flight vehicles are abstracted, and an ignition control software component based on parameters and actions is designed. These subcomponents can cooperate with each other, and the component needs parameters which reflect the characteristics of control process. This component can adapt to the ignition requirements of different systems and realizes the core function of ignition control software, which can reduce the software development cost and improve software quality efficiently in the meantime.
ignition control;software reuse;component;structre;parameter;abstract
10.3969/j.issn.1009-086x.2023.04.012
TJ765
A
1009-086X(2023)-04-0097-07
楊振, 馬鵬飛, 趙偉忠.基于構(gòu)件的點火控制軟件設(shè)計[J].現(xiàn)代防御技術(shù),2023,51(4):97-103.
YANG Zhen,MA Pengfei,ZHAO Weizhong.Design of Ignition Control Software Based on Component[J].Modern Defence Technology,2023,51(4):97-103.
2022 -05 -30 ;
2023 -03 -15
楊振(1985-),男,黑龍江哈爾濱人。高工,碩士,研究方向為嵌入式系統(tǒng)軟件架構(gòu)設(shè)計。
201109 上海市閔行區(qū)元江路3888號 E-mail:535069913@qq.com