基于构件的点火控制软件设计*

2023-09-08 12:35杨振马鹏飞赵伟忠
现代防御技术 2023年4期
关键词:命令飞行器端口

杨振,马鹏飞,赵伟忠

☞测试、发射技术☜

基于构件的点火控制软件设计*

杨振,马鹏飞,赵伟忠

(上海机电工程研究所,上海 201109)

针对飞行器点火控制软件不宜购买商用构件且需要个性化定制的需求,对飞行器点火控制原理进行了研究,并对多种飞行器的点火控制流程进行了抽象,设计了一种基于参数和动作的点火控制软件构件。该构件通过各个子构件之间的配合,利用对点火流程抽象得到的装订参数,可以适应多种不同飞行器的点火控制需求,实现点火控制软件的核心功能。将该构件应用于点火控制软件应用簇的研制,可以降低软件开发成本,有效地提升点火控制软件产品的质量。

点火控制;软件复用;构件;结构;参数;抽象

0 引言

为了提高开发效率,软件复用越来越受到软件企业的重视。软件复用是指在不同的软件开发过程中重复使用相同或相近软件元素的过程,软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识[1]。与软件复用技术密切相关的概念是构件。构件是指语义完整、语法正确和有可重用价值的单位软件,是软件复用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体[2]。通过购买商用构件并遵循其开发标准来进行应用开发,是提高应用软件开发效率的常见选择。当前,主流的商用构件标准规范包括OMG(object management group)的CORBA、Sun公司的J2EE和Microsoft的DNA等[3]。

除购买商用构件外,软件企业也会自行开发构件。在开发若干相关的应用软件时,会首先界定这一组“应用簇”的共同特性,并以此建立模型,按照复用的要求将模型分解成恰当规模和结构的构件,对这些构件进行设计、实现、编写文档、打包,形成可复用构件,并用于支持该应用簇的各个应用软件的开发工作[4]。飞行器发射时的点火控制软件一般需要按照点火场景进行定制化开发,由于限价设计以及技术保密性等原因,购买商用构件往往也难于实施。本文以飞行器点火控制软件为背景,对多种飞行器点火场景的需求进行了研究和抽象,设计了一套可复用构件,可以通过配置参数以及子构件之间的配合,实现多样化的飞行器点火控制功能,并广泛应用于点火控制软件应用簇的开发之中,提高了点火控制软件的研制效率和产品质量。

1 点火控制原理简介

目前点火控制系统一般采用二级分布式计算机控制方式,如图1所示。管理组合(上级计算机)一般采用高性能的计算机,负责整个系统的协调、管理、分配等功能;控制组合(下级计算机)一般采用DSP,负责具体点火控制操作[5]。管理组合和控制组合进行点对点的应答式通讯。点火控制软件运行在控制组合中,接收管理组合的控制指令,通过IO端口输出的电平驱动执行组合上的继电器动作,将电源接通到火工品电路上,从而实现被控目标的加电、点火,并采集点火执行结果的返回信号。本文设计的可复用构件主要应用于点火控制软件的开发当中。

图1  点火控制系统组成

为了快速定位故障,控制组合需要检测点火步骤的2种信号:已执行信号和返回好信号。已执行信号取自继电器的后端,当继电器正常吸合,电源接入到被控目标时,已执行信号正常;返回好信号取自火工品电路的后端,如果火工品成功点燃,返回好信号正常。管理组合根据控制组合回告的点火结果,决定发出下一个控制指令或者进入故障处理流程。不同的飞行器,其点火流程相差很大,因此各项目的点火控制软件一般都需要个性化定制。

2 构件参数设计

2.1 建立构件模型

控制组合核心功能是在管理组合的控制下,通过驱动执行组合来完成点火流程。点火流程是由若干步骤依次执行完成的,而每一个步骤都可以抽象为以下的固定时序控制:①控制组合接收到管理组合发送的控制命令;②控制组合输出IO控制信号给执行组合;③执行组合上的继电器吸合,实施点火实际动作;④控制组合检测已执行结果和返回好结果,并回告管理组合;⑤控制组合判断执行结果,等待下一控制命令或者进入故障处理。可见,点火流程的时序动作是固定的,但是时序动作中的每个步骤会因为系统的不同而有细节上的差别。比如,不同系统选用的继电器类型不一致,对于已执行结果检测的时间会有不同。如果能够用一组参数来描述时序动作的每一个步骤的执行细节,当控制组合接收到某一控制命令时,首先检索到执行该步骤的参数,然后再根据这些参数去执行点火动作,即采用“参数(可变)+动作(不变)”的构件结构,就可以适应不同系统的点火需求[6]。

2.2 描述单步动作的参数

单步动作是点火流程中的基本动作,至少应该包含控制一个IO端口输出有效电平,以驱动继电器吸合;检测一个已执行IO端口和一个返回好IO端口,以确认本步动作的执行结果。通过各系统点火需求的分析,对于一个单步动作,各配置2组输出端口、已执行检测端口、返回好检测端口。输出端口除了明确端口号外,还需要设置时间属性——维持一段固定的时间、持续输出、或是在检测到返回好信号后将输出切掉。已执行和返回好检测端口除了明确端口号外,还需要明确开始检测的时间和检测截止的时间,这是由继电器的吸合时间以及火工品电路的反应时间决定的。对于返回好信号的检测,有的系统并不是以“规定时间内检测到返回好信号有效”为依据,而可能有更为复杂的判据。例如,某系统中就是以“该点火动作的返回好信号在规定时间内持续有效”为判据。因此,对于返回好信号的判别可以分为一般判定和特殊判定,如果为特殊判定还需要指明特殊判定的类型。已执行和返回好信号出现异常时,并不是都要判定为故障。例如,点火步骤“打开保险开关”,由于此时流程已经不可逆转,即使没有成功也要继续执行点火流程。所以,需要对单步动作已执行和返回好信号异常是否判定为故障进行设置。

点火操作对于安全性的要求很高,因此单步动作执行前必须进行合法性判断。一般情况下,流程都是顺序进行的,如果前一步骤没有完成,不能够执行下一步骤;另一方面,点火流程由于受到系统反应时间的限制,有时会要求某一步骤执行完之后,一定时间之内必须要开始执行下一步骤。为了实现安全性判据,需要对单步动作设置前序动作和后序动作。前序动作未完成,收到新的控制命令即判断为命令非法;本步执行完毕后,在给定的时间内没有接到后序动作的控制命令,即判断为命令超时。以上2种情况都视为故障,应上报管理组合、终止点火流程并进行安全处理。

点火控制软件还需要具有点火时序结果采集功能。时序结果是某一单步动作相对于点火起始时间的相对时间,点火起始时间即为某一特定单步动作的开始时间。因此,需要对单步动作是否为点火起始点进行设置。单步动作参数的结构如表1所示。

表1  单步动作参数

2.3 描述连续动作的参数

连续动作可以看作是几个单步动作的组合。对于连续动作里面的单步动作,需要按照参数的设置自行执行。因此,对于一个连续动作,需要明确的信息主要有:每一个单步动作的标识和每个单步动作之间的间隔时间。考虑到现有点火流程的复杂度,每个连续动作最多包含4个单步动作,且仅需实现“单步动作2,3,4与单步动作1同时执行”,以及“在单步动作1执行后,单步动作2,3,4各自延迟不同的时间执行”这2种情况。连续动作参数结构如表2所示。

表2  连续动作参数

3 构件结构设计

3.1 单步动作构件

单步动作构件结构如图2所示。该构件的内部有以下7个子构件:获取单步动作参数、端口输出、已执行结果检测、返回好结果检测、时序获取、单步动作收尾、命令合法性判别。每个子构件都与该单步动作的参数直接相关。

3.2 连续动作构件

连续动作构件结构如图3所示。该构件是通过调用单步动作构件实现的,调用的方式与该连续动作的参数直接相关。

3.3 动作构件

动作构件结构如图4所示。动作构件是通过调用单步动作构件和连续动作构件实现的。有的点火系统对于一些特定动作只要求输出,不关心其执行结果,将这种动作识别为单步动作将造成资源的浪费。因此,在动作构件中增加“附加IO端口操作”子构件,对于不需要检测执行结果的动作,按照从控制命令中解析出的附加IO端口号以及输出需要维持的时间,直接完成输出动作[7]。

本套点火控制构件的运行主要是通过对参数的检索以及识别实现的。单步动作构件、连续动作构件首先都需要基于当前控制命令检索到其对应的参数,将其载入到构件之中,并最终确定构件的行为。正是基于对点火过程的抽象,将业务流程转化为参数数据,使这套构件具备了可复用的特性[8-9]。

3.4 点火控制构件的应用

首先通过分析被控目标的点火过程来确定单步动作参数、连续动作参数,并由管理组合将参数通过通讯报文的形式装订给控制组合,通讯方式根据不同的系统有所不同。以控制器局域网(controller area network,CAN)总线为例,管理组合与多个控制组合挂接在同一条CAN总线上,依次为每个控制组合装订参数:首先通过握手令通知某一控制组合开始装订,并以不同的帧头区分单步动作参数和连续动作参数,控制组合接收完毕后进行校验,若校验通过,则回告装订成功,并将接收到的报文进行解析,填充至参数数据结构中,管理组合转而为下一个控制组合装订参数[10]。装订完参数的控制组合即处于命令等待状态。当收到管理组合的控制命令时,控制组合由命令等待状态跳转至命令执行状态,并调用动作构件执行控制命令。控制命令执行完毕,如果结果正常,则跳转至命令等待状态,如果结果异常,则跳转至安全处理状态,如图5所示。

图2  单步动作构件的内部构造

图3  连续动作构件的内部构造

图4  动作构件的内部构造

图5  点火控制软件的状态图

4 结束语

随着飞行器领域的不断发展,飞行器点火控制系统的需求日新月异,对此类软件研制能力的要求也越来越高。软件复用作为提升软件开发效率和产品质量的有效手段,正在业界中发挥着日益重要的作用[11]。本文设计的点火控制软件构件,当点火流程变化或者需要适应其他系统的点火需求时,通过更新管理组合装订给控制组合的参数即可实现不同被控目标的点火控制功能。本构件的开发文档、代码齐套,已经应用到具体的项目中并已经通过了各种测试和系统联试的验证,后续有望在飞行器点火控制软件应用簇的开发中,发挥重要的作用。

[1] SCHACH S R.面向对象软件工程[M]. 黄林辉,徐小辉,伍建焜,译.北京:机械工业出版社,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] 张友生.软件体系结构原理、方法与实践[M].2版.北京:清华大学出版社,2014:4-7.

ZHANG Yousheng. Principles, Methods and Practice of Software Architecture [M]. 2nd ed. Beijing: Tsinghua University Press, 2014:4-7.

[3] 希赛教育软考学院.系统架构设计师教程[M]. 4版. 北京:电子工业出版社,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.软件建模与设计[M].彭鑫,吴毅坚,赵文耘,等,译.北京:机械工业出版社,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] 李兰兰,霍宏,温亚.基于构件的运载器控制系统飞行软件框架研究[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] 葛洋洋,王骥超.基于构件的串行总线通信软件设计[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] 方志.基于构件的软件开发与集成平台设计[J].计算机网络,2013(13):53-56.

FANG Zhi. Component-Based Software Development and Integration Platform Design [J]. Computer Network, 2013 (13): 53-56.

[8] 彭刚,夏成林.基于构件的开放式机器人控制软件设计[J].华中科技大学学报(自然科学版),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] 郑世明,徐新伟,朱江.基于构件的武器装备体系敏捷仿真框架研究[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] 臧维明,华骅,赖炳宇,等.一种跨平台敏捷式动态可重构系统架构研究[J].中国电子科学研究院学报,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

杨振, 马鹏飞, 赵伟忠.基于构件的点火控制软件设计[J].现代防御技术,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-),男,黑龙江哈尔滨人。高工,硕士,研究方向为嵌入式系统软件架构设计。

201109 上海市闵行区元江路3888号 E-mail:535069913@qq.com

猜你喜欢
命令飞行器端口
只听主人的命令
高超声速飞行器
一种端口故障的解决方案
移防命令下达后
复杂飞行器的容错控制
端口阻塞与优先级
这是人民的命令
神秘的飞行器
初识电脑端口
8端口IO-Link参考设计套件加快开发速度