分离型轮机模拟器通用分布式处理单元的设计

2023-07-07 03:10刘利源何治斌王萌萌徐飞翔
计算机应用与软件 2023年6期
关键词:测试软件轮机模拟器

孙 泽 刘利源 何治斌 王萌萌 徐飞翔

(大连海事大学轮机学院 辽宁 大连 116026)

0 引 言

轮机模拟器是应用计算机仿真技术和半实物仿真方法搭建的具有与实船相似的模拟操作平台,在模拟设备上操作可以获得与实船相近的设备响应过程,被广泛地运用于轮机人员的操作培训、考核发证、工程论证等领域[1]。轮机模拟器一般采用客户端/服务器(C/S)模式[2],上位机仿真服务器运行轮机设备及系统的仿真模型,分布式处理单元(DPU)作为下位机设备通过以太网接收上位机的仿真数据,同时,DPU的操作数据经以太网上传至仿真服务器驱动仿真模型的运算。DPU是轮机模拟器硬件平台的核心组成部分,主要起到了控制、监视及辅助操作设备的作用[3]。

目前,针对轮机模拟器的不同仿真设备及系统,设计了不同的下位机通信板卡,且不同的下位机设备和上位机仿真模型之间的应用层通信协议不尽相同,增加了上位机仿真模型的开发难度。文献[4]设计了万箱船柴油发电机模拟控制面板,实现了模拟控制面板和柴油发电机仿真模型间的实时通信。文献[5]针对分油机系统设计了分布式分油机仿真面板,取得了较好的效果。文献[6]设计了一种油水分离器仿真模块,能够脱离上位机仿真模型,实现独立仿真,同时还能与上位机仿真模型实时交互。但以上的仿真面板具有功能单一、通用性差、与仿真模型耦合度高等缺点,不适合在轮机模拟器的硬件平台上广泛使用。文献[7]提出了分离型轮机模拟器仿真平台,要求仿真模型和交互UI以及硬件交互耦合度要低。

DPU作为下位机设备,在分离型轮机模拟器中处于数据交互枢纽,既能接收上位机仿真模型的仿真数据,又能实时采集半实物仿真设备的相应的操作数据,实现上位机和下位机信息实时交互。下行仿真数据通过以太网传输至DPU的通信模块,再由主控芯片进行协议解析,经数据调度优化,由外围执行电路更新至指定半实物仿真设备;上行数据采集于半实物仿真设备,经DPU通过以太网传输至上位机仿真模型。

本文基于分离型轮机模拟器仿真平台,设计一种通用型DPU,可实现与轮机模拟器的各个设备仿真模型间的实时交互,并且仿真数据交互采用统一的通信协议,具有通用性好、集成度高、耦合度低等优点。

1 轮机模拟器概述

在轮机系统仿真领域,轮机模拟器已经是一个成熟的产品,国内外比较知名的产品有挪威KONSBERG轮机模拟器、英国的TRANSAS轮机模拟器、大连海事大学的DMS-2015轮机模拟器[8]。轮机模拟器是采用数学建模对船舶轮机系统的设备、管网、系统间的逻辑关系、数值关系等以抽象化的数值形式进行描述。

分离型轮机模拟器是由仿真模型和硬件交互DPU两部分组成,其结构如图1所示。仿真模型和DPU相互隔开,硬件交互DPU与仿真模型通过以太网进行数据共享相连,这种结构可以有效降低硬件交互DPU和仿真模型的耦合度[9]。在分离型轮机模拟器的上位机仿真模型中,各个设备或系统均具有独立的仿真模型,不同仿真模型间耦合度较低,并通过独立的以太网IP地址与对应的下位机DPU实现数据交互,当一个模型发生故障时,其他仿真模型仍可正常工作,具有良好的可维护性;且当下位机DPU发生故障时,上位机运转亦不受影响。

图1 分离型轮机模拟器结构

仿真模型向DPU传输的仿真数据主要有指示灯的状态、设备的启动和停止、继电器的断/闭、仪表的显示、电磁阀的开度等。DPU向上位机仿真模型端传输的信号或数据主要有开关、按钮、附属设备的启动、仪表和车钟信号(4~20 mA电流信号)、电位器信号(电阻信号)等。轮机模拟器的硬件交互DPU不仅能够实现数据采集和数据输出,而且还能实现过程控制,具备以太网的数据通信功能。

2 硬件架构

DPU硬件架构如图2所示,主要由6个部分构成,分别为主控芯片模块、32路数字量输入DI模块、32路数字量输出DO模块、8路4~20 mA电流模拟量输入AI模块、8路4~20 mA电流模拟量输出AO模块、以太网通信模块。主控芯片是DPU的核心单元,它不仅要采集和处理轮机模拟器现场设备的数字量信号和模拟电流信号,而且要接收上位机仿真模型的仿真数据,并进行解析,以控制现场设备的显示和相应操作。针对上述过程,需要主控芯片具有较快的运算速度才能对现场信号采集和相应的操作做出实时响应。本文选用ARM公司的STM32F767IGT6微处理器作为核心处理单元,它集成了数字信号处理指令、216 MHz时钟频率的浮点单元、1 MB Flash和512 KB SRAM[10]。

在DI通道电路设计时,充分考虑了输出电压值、电流大小、稳压、隔离保护等因素后设计了32路DI通道,各通道在电路设计上是相同的,以其中一路为例,具体如图3所示。光耦隔离LTV-357T具有单向传递、强共模抑制等优点,将24 V外部电路与5 V内部电路进行隔离,确保系统安全、信号可靠。双向电平转换芯片SN74LCV8T245DBQR实现3.3 V与5 V转换,转换后的3.3 V高电平或低电平被微处理器捕获,实现了电气隔离和电平的传输与转换。考虑电路的输出驱动能力和隔离保护后设计了32路DO通道,具体一路DO通道如图4所示。信号放大器BSR606N可承受灌入电流高达2.3 A和60 V的电压,实现功率放大、恒流、信号输出流向的控制。

图3 DI通道电路设计

图4 DO通道电路设计

8路AI电路独立设计,若一路通道损坏,对其他通道不会产生任何影响,确保了电路的可靠性和稳定性。其中一路AI通道电路设计如图5所示。输入4~20 mA标准电流信号,经150 Ω精密电阻转化为0.6~3.0 V电压,经低通滤波器,接入运算放大器OPA2277U,经同相比例运算放大1.1倍后输出电压0.66~3.3 V,并进行去耦处理。微处理器的GPIO口配置模拟量输入模式,采集运算放大器输出端的模拟电压,然后通过微处理器内嵌的12位A/D转换器,转换为数字量保存于寄存器中,实现了电流模拟量信号转数字信号功能。

图5 AI通道电路设计

微处理器内嵌的D/A转换器通道数量少、驱动能力较弱、处理精度低,不适合8路AO方案,因此,选用了AD公司的16位ADC芯片AD5676R来实现8路通道模拟量的输出。AD5676R支持串行SPI总线,SPI的时钟最高可达50 MHz,在SPI通信中,微处理器为主机,AD5676R为从机,实现通道号、数据、命令的传输通信。AD5676R输出0~2.5 V电压信号经2倍放大电路,由精密电阻转为4~20 mA电流模拟量信号输出。具体电路如图6所示。

图6 AO通道电路设计

以太网通信模块,采用微处理器+W5500+网络变压器+RJ45的连接形式。W5500是一款嵌入式以太网控制器,其内部不仅集成了固件TCP/IP协议栈,支持TCP、UDP等协议,而且还内嵌了10/100M以太网数据链路层(DL)和物理子层(PHY),这两个子层构成介质访问控制层(MAC),在设计中只需要通过带有网络变压器的RJ45就可以和Ethernet网实现连接[11]。此外,W5500内嵌了16 KB发送和16 KB接收的缓存区用于存放以太网数据包。

微处理器和W5500连接如图7所示,W5500支持串行SPI总线与微处理器连接,此连接方式只需要4个通用输入输出口(GPIO)引脚便可实现数据通信。这4个GPIO引脚分别为从机选择SCS、时钟SCLK、主机输出从机输入MOSI、主机输入从机输出MISO。另外,还配置了一个GPIO作为W5500的复位引脚,一个外部中断引脚来响应W5000的中断。在SPI总线通信中,微处理器作为主机,W5500为从机,时钟SCLK提供主机与从机同步节拍,主机通过MISO引脚实现数据的输入,通过MOSI引脚实现数据的输出,以完成数据的交换[12]。

图7 微处理器和W5500连接

3 通信协议

轮机模拟器的实时数据通信量较大,对数据帧传送顺序没有要求,也不要求数据丢失重传。运输层中的TCP协议面向连接、提供可靠的传输服务并具有流量控制、超时重传、失序处理等功能,但是协议首部太长、系统开销大、不提供多播服务。UDP协议首部开销小、传输效率高,在传输的可靠性方面,虽然不保证可靠交付,但可以对交付的数据进行校验,保证可靠性可以满足要求。因此,轮机模拟器和交互DPU数据传输采用简单、效率高、实时性好、支持海量并发的UDP协议。

UDP数据帧格式如图8所示。UDP数据帧头部一共有3个字段,占8个字节,第一个字段是目标IP地址,存放目标仿真模型端的主机IP地址;第二字段是目标端口号,用于区分轮机设备的各仿真系统;第三个字段是应用层传输的有效数据长度。UDP数据包是上位机应用程序与交互DPU传输的有效数据,具体的规定如下:

图8 UDP数据帧格式

1) 数据包头部:上位机和下位机交互的起始字节规定为0XFE。

2) 数据包长度:上位机或下位机的应用层程序交付的UDP数据包的长度。

3) 功能码:用于区分不同的功能。

4) 数据区:根据功能码的不同,定义了不同的数据区,具体如表1所示。

表1 协议功能码参照表

5) 数据包校验值:

bxor=b1⊕b2⊕…⊕blen-2

(1)

式中:bxor表示对数据包的前len-2字节异或校验的值;blen-2表示UDP数据包的第len-2字节;⊕表示异或校验符号。

6) 数据包尾部:上位机和下位机交互的结束字节规定为0XFF。

4 软件架构

4.1 软件总架构

以集成开发环境Keil5为软件开发平台,充分利用ST官方的固件库,采用C语言编写分布式处理单元的外设驱动程序和相应的应用程序。借鉴MVC软件设计模式中的程序结构层次化、模块独立化、内部关联简洁化的原则,使软件架构高内聚低耦合,以便于程序的后期维护、增强可读性[10]。根据分布式处理单元的应用环境和系统任务,将其软件部分分为通信层、数据层、任务层三层结构,并将三层结构分为通信驱动、数据解算、指令集、内存池、功能应用等五大主要模块,各层之间、模块之间的逻辑关系如图9所示。

图9 软件总架构

4.2 通信层

通信层主要包含通信驱动模块,其功能主要为:根据轮机模拟器仿真系统以太网通信传输协议,完成轮机模拟器上位机与下位机分布式处理单元的数据通信。通过以太网,实时接收上位机下行数据,经数据接口,将数据传入数据层;经数据接口读入数据层传入的数据,再根据指令接口指令,实时发送下位机上行数据。通信层程序流程如图10所示。

图10 通信层程序流程

4.3 数据层

数据层主要由指令集、数据解算、内存池三大模块构成。其中,指令集将读取数据解算模块传入指令接口的指令码,将数据发送、功能应用选择、复位等指令传入指令接口,使得通信层、任务层取得相应指令,以完成相应功能。数据解算模块从数据接口读入通信层、任务层需处理的数据,并将处理后上行数据或执行数据传入数据接口,以供通信层和任务层根据指令进行数据调用。数据解算模块将完成数据读取与存放、协议解析与封装、数据调制、内存池数据读取与更新、数据匹配与校验、指令码产生与存放等。内存池则用于存放数据解算模块产生的历史数据,并通过I2C通信完成数据读取和写入。数据层程序流程如图11所示。

图11 数据层程序流程

4.4 任务层

任务层根据指令接口中的指令,从数据接口中调度数据进行输出,或将采集的数据传入数据接口中,以完成DO、DI、AI和AO任务。DO、DI任务中,32路输出输入的每一个通道都直接对应微处理器的一个GPIO口,DO通道均初始化为强推挽输出,DI通道均初始化为输入模式,通过外围调制电路完成DO、DI功能。AO任务中,微处理器将输出数据经SPI接口传入D/A模块,然后通过放大电路完成AO功能。AI任务中,8路采集通道利用微处理器STM32F767内嵌的A/D转换模块可实现规则组和注入组两种采样方式,本系统选用规则组采样方式,通过外围高精度运算放大电路完成模拟量采集。任务层功能应用程序流程如图12所示。

图12 功能应用程序流程

5 实验验证

5.1 平台搭建

测试平台由一台工作站PC、测试软件、分布式处理单元、一台示波器,以及诸如通信模块、继电器模组、电流转电压检测模块等配件组成,如图13所示。

图13 测试平台

5.2 DO功能验证

据图14可知,测试软件以50 ms间隔值向DPU发送DO测试数据,DPU DO端口以平均周期为53 ms进行高低电平输出,高电平为24 V,低电平为0 V;根据数据收发间隔值统计图可知,测试软件实际相邻两次数据发送间隔均值为53.49 ms,实际相邻两次数据接收间隔均值为53.45 ms,两值近似相等,且与端口输出周期较为接近;据图15可知,DO测试时,每组数据从测试软件发出到测试软件接收到DPU应答的应答间隔约为13.97 ms。

图14 DO示波图与收发间隔值统计

图15 DO发送与应答时间间隔值统计

5.3 DI功能验证

进行DI采集时,DI采集信号为无源信号,调制电路将电路电位的高低变化反馈到微处理器的GPIO口,微处理器通过周期扫描的方式,对GPIO口的电位状态进行信号采集,并将高电位映射为二进制0,低电位映射为二进制1,通过数据匹配对采集信号进行判断,若采集信号发生变化,则将采集信号发往上位机。测试时,通过将发送间隔200 ms的DO数据发送至DPU,使其DO端口输出电压信号,驱动继电器模组,以产生无源开关启闭状态,再将继电器模组常开触点接入DI信号采集端口,以实现DI功能测试,实验结果如图16和图17所示。

图16 测试软件DI可视化界面

图17 DI测试相邻两次收发间隔值比对

DI测试时,DO端口21-24号输出的信号依次对应DI端口25-28号采集信号。图16中反映出DI端口准确完成数字量采集;图17反映出,测试软件实际以212.65 ms的数据发送间隔均值,向DPU发送DO信号,并以213.21 ms的数据接收间隔均值接收到DI采集信号,两者仅相差0.56 ms。

5.4 AO功能验证

处理AO数据时,DPU将输出4~20 mA电流信号,经255次连续增大完成。第256次数据到达时,通道输出电流降为4 mA。因此,AO信号在示波器上的图形为锯齿波。由于示波器仅采集电压变化波形,所以将AO输出的电流流经20 Ω精密电阻R,通过观察R两端电压的变化规律反映AO输出的变化规律。测试时,测试软件以发送数据间隔为28 ms,向DPU发送AO测试数据,若正确处理完AO数据,将返回所接收的数据,以应答测试软件。测试结果如图18和图19所示。

据图18可知,AO端口以平均周期为31.76 ms进行电流输出,根据欧姆定律,电流变化范围为4.4~20.8 mA,误差处于正常范围;根据数据收发间隔值统计图可知,测试软件实际相邻两次数据发送间隔均值为31.27 ms,相邻两次数据接收间隔均值为31.25 ms,两值近似相等,且与端口输出周期较为接近;据图19可知,AO测试时,每组数组从测试软件发出到测试软件接收DPU应答的应答间隔约为3.47 ms。

5.5 AI功能验证

AI采样驱动程序充分考虑采样精度、采样周期、采样数据的存储因素后,经A/D转换模组,采用连续50次充分采样求平均的采样方式,将4~20 mA的电流信号转换为0~255的数字量信号,同时通过DMA(直接存储器访问)将各个通道采样数据高速保存至程序数据接口,通过数据匹配,若采集信号发生变化,则将采集信号发往上位机。

AI测试时,测试软件令5号AO端口输出18.4 mA电流信号,对应数字量为230,由5号AI端口以一定周期采集信号,采集电流信号对应数字量为230。图20中反映出AI端口准确完成模拟量采集;图21反映出,测试软件以17.82 ms的数据刷新间隔均值接收到AI采集信号,表明分布式处理单元以约0.36 ms的采样周期完成模拟量信号采集。

图21 AI测试数据刷新间隔值

5.6 实际应用

首先将DPU安装至“中海大西洋轮”轮机模拟器半实物仿真系统中,将DPU各功能模块与半实物仿真模块可靠连接;再通过以太网,将轮机模拟器二维、三维上位机仿真系统与下位机半实物仿真系统进行通信组网,并运行上位机。以半实物仿真系统中的集控台3为例,实际运行效果如图22-图25所示。

图22 DPU装配图与半实物集控台3

图23 集控台3二维仿真界面

图24 集控台3三维仿真界面1

图25 集控台3三维仿真界面2

可以看出,半实物仿真系统中,集控台3的1-9号模块状态均与上位机二维、三维仿真系统实现了同步。其中1-9号模块分别为集控台电源指示、辅锅炉运行状态指示、报警灯柱指示、舵机系统指示、辅锅炉应急停止按钮、空气瓶压力表、辅锅炉和废气锅炉蒸汽压力与水位表、死人报警系统、空压机遥控面板。

5.7 实际应用通信数据分析

由于轮机模拟器仿真系统未实现收发数据可视化功能,因此采用以太网抓包软件Wireshark作为第三方软件,对通信数据可靠性与实时性进行分析,指定抓取集控台3中装配的两块IP分别为172.18.137.201、172.18.137.202的DPU、处于另一装配点以实现AI的IP为172.18.137.207的DPU的以太网数据包,以及IP为172.18.137.31的上位机的以太网数据包,部分数据包解析如表2所示。完成DO、DI功能时,为提高传输效率,协议封装时,对不具备控制效益的高字节数据进行省略、低字节数据进行保留,以便识别数字量输出与采集的具体通道。

表2 实际应用中部分数据包解析表

由表2可知,DO和AO应答间隔时间分别为14.4 ms和3.6 ms,均与前述所测应答间隔时间较为接近。DI开关状态变化最小间隔值为19 ms,小于前述所测DI周期变化间隔,即DPU已完成较快变化频率的DI功能。AI数据刷新间隔约18 ms,与前述所测AI刷新间隔较为接近。且上位机与DPU之间的传输数据均正确反映集控台3当前的运行状态。

6 结 语

1) 本文通过分析DPU在轮机模拟器仿真系统中的功能,研究设计DPU的硬件架构和软件架构,并完成DPU从硬件到软件的开发,实现了轮机模拟器的分布式处理单元。

2) 通过对分布式处理单元各功能模块进行实验测试,验证了本文所设计的分布式处理单元各功能模块具有较好的可靠性与实时性。

3) 通过将DPU装配至轮机模拟器的半实物仿真系统,实现了下位机半实物仿真系统与上位机二维、三维仿真系统信息的准确且实时同步。

4) 本文所设计的分布式处理单元具有较高通用性,可完成数字量的输出和采集以及模拟量的输出和采集,并统一了上位机与下位机之间的通信协议,解决了由于下位机设备繁多、下位机与上位机通信协议不统一,造成上位机仿真模型开发难度较大的难题。

猜你喜欢
测试软件轮机模拟器
了不起的安检模拟器
盲盒模拟器
划船模拟器
网络自适应测试软件运行方法设计
自动化检测EPU10A板卡系统设计与实现
轮机英语趣味性教学方法研究
高职轮机专业高中职衔接专业英语课程体系的构建
动态飞行模拟器及其发展概述
远程开放教育学生自主学习能力评价的研究
一款重型包装抗压系统控制软件的设计与开发