高炮通用型综合检测仪的设计与实现

2021-06-25 08:38舒立鹏范继朱柏飞吴晔霍勇谋杨永亮
火炮发射与控制学报 2021年2期
关键词:高炮服务器端正弦

舒立鹏,范继,朱柏飞,吴晔,霍勇谋,杨永亮

(西北机电工程研究所,陕西 咸阳 712099)

在高炮研制过程中,为了检测系统的功能和性能,需要模拟外部信息输入到系统,实时记录系统的响应,以检验系统性能或者查找问题。高炮研制过程中需要多种检测工装,其中信息模拟工装仿真外部信息输入到高炮系统,作为系统检测的激励源,数据录取工装实时记录总线数据。目前,高炮研制过程中检测工装功能单一、种类繁多是导致高炮的研制成本高的问题之一,如数字航路仪、数字正弦机以及姿态模拟器等都属于满足不同功能要求的信息模拟器。另外,由于不同型号高炮通信协议的不同导致同样功能的信息模拟器不能在不同类型的高炮检测中通用,造成了资源浪费。

基于目前现状,笔者提出了一种高炮通用型综合检测仪的设计方案,该方案包括信息模拟、数据记录、状态监控等功能,具有通用性好、功能全面、操作简便、易于实现等特点,可以降低高炮研制过程中检测工装的研制成本。

1 系统原理及特点

如图1所示,高炮通用型综合检测仪通过CAN总线网络与高炮相连接,构成分布式半实物仿真系统[1]。根据不同功能要求,高炮通用型综合检测仪能根据不同的模型和通信协议进行系统配置,实现不同类型信息的模拟输出,以满足不同的检测需求,如室内无真实目标时,火控系统检测需要实现数字航路仪的功能,仿真输入光电跟踪、激光测距等不同的数据作为火控计算机输入;为了检测火炮随动系统性能,需要实现数字正弦机的功能,生成不同特征的正弦信号输入到火炮随动系统。

相比于目前的检测工装,该方案具有以下特点:

1)通用性好。该方案设计的高炮通用型检测仪能满足各种不同型号的高炮检测过程中不同种类信息的模拟要求,解决高炮调试过程中同一种功能模拟器由于通信协议不同难以重用的问题。

2)功能齐全。该方案具有多种信息模拟、数据录取和状态监控功能,将原来多种检测工装功能集成于一体,解决了模拟器功能单一导致研制过程中中模拟器种类多、成本高的问题,实现工装的多功能化与一体化。

3)易于扩展。该方案具有良好的可扩展性,可以根据新需求增加新的信息模拟功能,以满足新装备研制要求。

2 总体设计

图1所示的高炮通用型综合检测仪方案采用客户端-服务器的工作方式,客户端为笔记本电脑或者PC机;服务器端为半实装实时设备,服务器端硬件与文献[2]中的硬件组成相同,主要由基于PC104架构的主板、CAN接口板、同步板和电源板组成。客户端与服务器通过以太网进行通信。客户端通过发送指令控制服务器端工作;服务器端接收客户端指令并及时响应。为了实现信息模拟功能的通用性,客户端根据具体参数设置生成相应的模拟数据,传输到服务器端,服务器端根据控制命令和数据,进行判断处理和发送,以满足各类高炮的检测要求。

此方案的优点是针对不同型号高炮对模拟器功能要求不同,服务器端软硬件无需变动,只需在客户端软件进行参数设置,即可满足不同信息的模拟生成。

2.1 软件架构

系统软件组成如图2所示,包括客户端、服务器端软件。客户端软件包括指令发送模块、信息模拟等模块,目前信息模拟模块设计了航路信息模拟和正弦主令信息模拟等模块,在此功能模块下可以扩展其他不同信息模拟模块。服务器端包括网络监控、以太网数据发送、以太网数据接收、数据解析、CAN数据中断发送、CAN数据中断接收、外同步中断处理等模块。

2.2 通信协议

高炮通用型综合检测仪基于TCP协议采用客户端-服务器模式进行信息的传输,信息分为指令信息和数据信息两类。如表1所示,协议规定按顺序定义为信息数据长度、信息号、信息紧急标志、信息传递方向和信息内容以及所对应分配的字节数。

表1 通信协议数据格式

信息数据长度指一次信息传输中全部数据总字节数。信息号区别不同的数据信息和指令信息,如0~100为指令信息编号范围,101~150表示数据信息编号范围。信息的紧急标志用于表示信息发送的紧迫程度,一般指令信息紧急程度高于数据信息,如0表示一般,1表示紧迫。信息传递方向用于区别是上传还是下行信息,如0表示数据上传,1表示下行。信息内容是指一次信息传输中除去信息数据长度、信息号、信息紧急标志、信息传递方向外的具体信息,数据信息存放于格式固定的数组内,指令信息为定义不同的控制命令。当信息长度大于4 096字节时采用多次分组发送[2]。

下行信息数据格式如表2所示。数据ID为发送CAN总线数据对应的ID号码,数据内容为生成的信息模拟数据。发送时刻为相对于外同步方波信号上升沿的时刻,如在第10 ms发送则该值为10.发送频率是指数据发送频率,如随动主令数据10 ms发送一次,则对应数据发送频率为100 Hz,发送频率数值为100.

表2 下行信息数据格式

上传信息主要为数据信息和单体状态信息,在数据记录模式下服务器将记录在缓存的全部CAN总线数据按照表1格式打包一次性发送。在状态监控模式下服务器间隔20 ms上传一次数据信息,上传信息数据格式如表3所示。

2.3 开发工具选择

系统客户端软件采用Visual studio 2010和Measurement Studio 2010混合编程的模式开发[3]。作为主流的可视化开发环境Visual studio 2010具有界面友好、功能强大、开发灵活等优点,但是在绘图显示等方面存在开发周期长和难度高的缺点,而Measurement Studio 2010是美国NI公司专为测试和控制领域开发的新版虚拟仪器设计工具,能无缝集成到Visual studio 2010,更适用于该软件界面的开发。服务器端软件采用Tornado 2.2实现实时软件的开发。

3 软件设计与实现

3.1 客户端软件设计

3.1.1 软件功能设计

根据需求分析,软件具有信息模拟、数据录取、状态监控3种功能,对应设计了3种工作模式。启动软件后,首先进行初始化,与服务器端连接,连接成功后可以选择进入不同的工作模式。

1)信息模拟模式。用户在客户端软件界面上设置如数据的ID、发送时刻、发送频率等通用参数和专用参数。软件按照相应算法和协议生成相应的数据进行分发,等待服务器端接收好后,可以进行模拟信息的发送控制。目前信息模拟包括航路信息、正弦主令信息模拟功能,该模块具有扩展性,后续可以实现其他信息模拟功能。

2)数据录取模式。用户通过发送指令控制服务器记录开始和停止,开始记录时服务器端记录系统总线全部数据,收到停止指令后传输全部数据到客户端保存,用于离线分析。

3)状态监控模式。用户通过发送指令控制服务器监控开始和停止,开始监控后服务器端转发接收到系统总线数据,实时上传数据和状态信息到客户端,数据进行曲线显示,用于监控火炮状态。

在软件设计中,为了满足数据接收和曲线绘制的实时性要求,采用多线程技术将数据的接收与显示功能分别实现,提高了软件实时性;为了保证数据接收及显示的完整性,将数据接收线程的接收数据暂存环形缓冲区,保证了数据的完整性,并减少内存使用,提高线程间通信安全性[4]。由于NI控件不是线程安全的,用户不能在线程中刷新绘图控件,因此软件自定义了刷新消息,通过发送消息的方式,驱动绘图控件刷新[5]。

3.1.2 软件算法

软件信息模拟实现是系统设计的关键,不同的信息模拟功能对应的算法不同,限于篇幅,这里只对随动正弦跟踪试验中正弦主令信息生成算法进行描述,航路信息模拟可参考文献[6]。

随动正弦跟踪试验中系统要从当前位置开始平稳运行,运行完成后要缓慢过渡停到当前位置,因此需要加入引导使随动系统启动和停止过程平稳。引导采用线性函数让正弦运动振幅从0线性递增到指定振幅[7]的方式,幅值变化曲线如图3所示。

对应振幅变化,控制过程也分为前引导段(0~MT)、正弦运动段(MT~NT)和后引导段(NT~KT)[8],3个阶段的正弦信号计算公式如下:

(1)

式中:Φ(t)为第t时刻的角位置;Φ0为正弦零位;A是正弦运动的幅值;T为正弦运动的周期;t为正弦运动的时间。

假定正弦信息间隔Δt时间输出一次,对上式进行离散化为

(2)

客户端软件根据上述算法和设置参数可生成正弦主令数据,发送给服务器端,由其控制随动运动,从而检测火炮随动系统的正弦跟踪性能。

3.2 服务器端软件设计

3.2.1 实时多任务设计

服务器端基于VxWorks实时操作系统设计了多个任务协同实现,主要包括以下任务:

1)网络监控任务。该任务监控网络连接正常与否。

2)以太网数据接收任务。该任务通过以太网通信recv()函数接收客户端数据并存入缓冲区[9]。

3)数据解析任务。该任务读取缓冲区数据后根据协议对数据进行解释,以控制服务器端的动作,实现工作模式控制及不同模式下软件状态控制,例如在信息模拟模式下软件工作又划分为待机、准备、发送3个子状态。

4)以太网数据发送任务。该任务在状态监控模式下向客户端发送对高炮系统进行监控的数据。

5)CAN数据中断发送任务。该任务实现总线模拟数据的发送。

6)CAN数据中断接收任务。该任务使用中断方式接收系统CAN总线数据。

7)外同步中断处理任务。该任务中断接收外同步信号,实现数据发送基准时刻的确定。

8)时钟中断处理任务。该任务实现具体发送时刻定时功能。

根据任务的重要性和VxWorks的工作机制,对任务优先级进行划分,关键任务采用中断方式实现,中断任务优先级由中断号确定。在VxWorks系统里,中断服务程序经过事先绑定,一旦硬件产生中断,就会被优先调用,相当于最高优先级[10]。根据任务的重要和紧迫程度对任务进行优先级划分,如表4所示。

表4 任务优先级分配表

3.2.2 任务协同设计

如图4所示,软件多任务间同步控制基于信号量实现,以太网数据接收任务、数据解析任务和以太网数据发送任务之间通过信号量进行同步,CAN数据中断发送、CAN数据中断接收、外同步中断处理任务以及时钟中断处理任务均采用事件触发中断方式实现。任务间数据通信采用多个缓冲队列实现,分别建立以太网发送缓冲队列和接收缓冲队列,CAN总线驱动程序自带发送和接收缓冲区。服务器端根据客户端设置的工作模式调用不同的任务。

在信息模拟模式下,服务器端接收全部生成数据暂存于以太网缓冲区,数据解析任务收到信号量,从缓冲区解析提取数据和指令,实现数据解析执行,对于数据信息如发送时刻和频率等,设置标志变量并打包到CAN发送数据帧里,时钟中断处理任务判断发送时刻和标志,送到CAN发送缓冲区,由CAN数据中断发送任务执行发送;对于指令信息用于控制服务器工作状态。

在记录和监控模式下,数据解析任务从CAN总线数据缓冲区提取数据按照协议打包后送往以太网发送缓冲区,并释放信号量,以太网数据发送任务接收到信号量后上传数据到客户端。

4 应用验证

在两类不同高炮的火控系统校验中,采用基于上述方案设计的高炮通用型检测仪取代了各自原来的数字航路仪和正弦机两套检测工装,分别模拟匀速直线航路和正弦信息,输入到系统,记录总线输出结果。根据结果统计出该高炮的火控精度以及随动精度,实现了对两型装备的火控系统有效检验。上述实践验证了该方案的可行性和其良好的通用性。

5 结束语

通过对当前高炮研制过程中检测工装存在功能单一、通用性差的问题进行分析,笔者提出了一种通用型综合检测仪的设计方案,详细描述了该方案的工作原理、组成、功能及实现方法。实践证明该方案具有通用性好、功能全且易于扩展的特点,较好地解决了目前检测工装存在的问题,该方案及其具体实现方法可为相关设计提供有益参考。

猜你喜欢
高炮服务器端正弦
正弦、余弦定理的应用
使用正弦、余弦定理时的易错点分析
人影作业高炮的故障分析及排除
六盘水市人工影响天气高炮作业点安全射界管理
利用正弦定理解决拓展问题
SA2型76毫米车载高炮多视图
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
正弦、余弦定理在三角形中的应用
一种基于Java的IM即时通讯软件的设计与实现