高速磁浮运行控制系统半实物仿真的软件适配方法及设备与流程

文档序号:17130354发布日期:2019-03-16 01:07阅读:177来源:国知局
高速磁浮运行控制系统半实物仿真的软件适配方法及设备与流程

本发明涉及轨道交通半实物仿真领域,尤其是涉及一种高速磁浮运行控制系统半实物仿真的软件适配方法及设备。



背景技术:

对于高速磁浮列车这样的快速运行地面轨道交通运输工具,其安全高效的运行离不开运行控制系统的控制和防护。运行控制系统作为安全苛求的系统,在上线之前必须进行充分的测试和试验。然而,实际环境并不能提供测试条件,因此往往采用半实物仿真(hardwareintheloopsimulation)方式,即将待测试验证的实体设备接入到仿真回路中,从而实现一种经济可靠的检验方式。

为实现半实物仿真,对于运行控制系统实体设备而言,外部仿真设备的物理接口必须与实体设备保持一致。外部仿真设备普遍采用工控机进行开发。传统的接口适配方法是基于硬件接口适配,即根据所连实体设备的要求,外部仿真设备配置相应的硬件接口进行适配。限于工控机的接口能力有限,往往一台工控机只能仿真某一功能部件。高速磁浮运行控制系统是高度集成的系统,与牵引控制系统、牵引供电系统、道岔系统以及车辆系统都有存在接口,因此高速磁浮运行控制系统需要对接的外部仿真系统很多。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种高速磁浮运行控制系统半实物仿真的软件适配方法及设备。

本发明的目的可以通过以下技术方案来实现:

一种高速磁浮运行控制系统半实物仿真的串口软件适配方法,包括:

基于串口配置文件进行串口通道初始化,以得到串口通信通道的套接字;

基于套接字循环接收数据,提取数据报文并通过仿真业务逻辑层提供的数据报文接收回调函数将数据报文以及串口通道号发送给仿真业务逻辑层;

对仿真业务逻辑层发出的数据报文进行封装得到数据块,并基于仿真业务逻辑层提供的串口通道号所对应的套接字将封装好的数据块对外发送。

所述串口配置文件中包含串口通道数信息以及各串口通道的配置信息。

所述基于套接字循环接收数据,提取数据报文并通过仿真业务逻辑层提供的数据报文接收回调函数将数据报文以及串口通道号发送给仿真业务逻辑层,包括:

基于套接字接收数据并存入数据接收缓冲区;

按照接口协议,从数据接收缓冲区的队列头部开始扫描识别帧头和帧尾,提取得到数据块;

进行crc校验,若校验通过,则将数据块进行转义处理得到数据报文;

通过仿真业务逻辑层提供的数据报文接收回调函数将数据报文以及串口通道号发送给仿真业务逻辑层。

所述按照接口协议,从数据接收缓冲区的队列头部开始扫描识别帧头和帧尾,提取得到数据块的过程中,

若没有识别到帧头,则记录到日志文件。

所述基于串口配置文件进行串口通道初始化,以得到串口通信通道的套接字,具体为:基于串口配置文件进行串口通道初始化,以得到串口通信通道的套接字并存入串口通道信息共享区;

所述对仿真业务逻辑层发出的数据报文进行封装得到数据块,并基于仿真业务逻辑层提供的串口通道号所对应的套接字将封装好的数据块对外发送,具体包括:

按照高速磁浮运行控制系统实体设备的接口协议对仿真业务逻辑层发出的数据报文进行封装得到数据块,

根据仿真业务逻辑层提供的串口通道号,从串口通道信息共享区中取得跟串口通道相对应的套接字,

调用套接字的发送函数将数据块发送到相应的cots串口-网络接口适配。

一种高速磁浮运行控制系统半实物仿真的数字量接口软件适配方法,包括:

基于数字量配置文件进行数字量通信通道初始化,以得到数字量通信通道的套接字;

基于套接字接收数据,存入数字量接收缓冲区中,并通过仿真业务逻辑层提供的数字量数据接收回调函数将数字量接收缓冲区发送给仿真业务逻辑层;

对仿真业务逻辑层发出的数据基于仿真业务逻辑层提供的数字量号所对应的套接字对外发送。

所述数字量配置文件包含数字量接口通道数信息以及各数字量接口通道的配置信息。

所述基于套接字接收数据,存入数字量接收缓冲区中,并通过仿真业务逻辑层提供的数字量数据接收回调函数将数字量接收缓冲区发送给仿真业务逻辑层,具体包括:

接收数据并存入数字量接收缓冲区;

周期性轮询每个套接字,按照套接字对应的数字输入信号数进行提取有效的数字量信息,并按位左移到数字量数据接收缓冲区有效数据部分的高位;

当所有套接字轮询完之后,通过仿真业务逻辑层提供的数字量数据接收回调函数将数字量接收缓冲区中的数据连同有效长度发送给仿真业务逻辑层。

所述基于数字量配置文件进行数字量通信通道初始化,以得到数字量通信通道的套接字,具体为:基于数字量配置文件进行数字量通信通道初始化,以得到数字量通信通道的套接字,并将套接字连同通道号、数字信号数和数字输出数组成元组后存入数字量通道信息共享区;

所述对仿真业务逻辑层发出的数据基于仿真业务逻辑层提供的数字量号所对应的套接字对外发送,具体包括:

获取入口参数,其中,所述入口参数包括数字量位号和数字量的值;

从数字量通道信息共享区中从1号元组数据开始扫描,如果该位号大于该元组数据中的数字输出信号数的值,则将该位号减去数字输出信号数,继续扫描直到位号不大于当前扫描元组数据中的数字输出信号数的值为止;

扫描结束后当前的元组数据即对应需要连接的cots数字量-网络接口适配,位号即为cots数字量-网络接口适配数字输出对应的序号;

通过modbustcp协议发送命令字的方式,将位号及入口参数对应的数字量的值发送到cots数字量-网络接口适配。

一种高速磁浮运行控制系统半实物仿真的软件适配设备,包括测试主机、cots接口适配装置,所述测试主机通过cots接口适配装置连接至运行控制系统实体设备,所述cots接口适配装置包括cots串口-网络接口适配和cots数字-网络接口适配,所述测试主机包括存储器、处理器,以及存储于存储器中并由所述处理器执行的程序,所述处理器执行所述程序时实现以下步骤:

基于串口配置文件进行串口通道初始化,以得到串口通信通道的套接字,

基于套接字循环接收数据,提取数据报文并通过仿真业务逻辑层提供的数据报文接收回调函数将数据报文以及串口通道号发送给仿真业务逻辑层,

对仿真业务逻辑层发出的数据报文进行封装得到数据块,并基于仿真业务逻辑层提供的串口通道号所对应的套接字将封装好的数据块对外发送;

基于数字量配置文件进行数字量通信通道初始化,以得到数字量通信通道的套接字,

基于套接字接收数据,存入数字量接收缓冲区中,并通过仿真业务逻辑层提供的数字量数据接收回调函数将数字量接收缓冲区发送给仿真业务逻辑层,

对仿真业务逻辑层发出的数据基于仿真业务逻辑层提供的数字量号所对应的套接字对外发送。

与现有技术相比,本发明具有以下有益效果:将半实物仿真的物理接口适配转换为软件逻辑接口适配,仿真系统的功能部件不再受限于工控机物理接口的扩展能力,部署起来更加灵活。

附图说明

图1是本发明实施的串行通信软件接口适配逻辑框图;

图2是本发明实施的数字量软件接口适配逻辑框图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

本申请目的是为了简化高速磁浮列车控制系统外部仿真系统的开发,通过将与高速磁浮列车控制系统实体设备相连的物理接口(包括rs232/422/485串行通信接口和数字输入输出接口)外置,将仿真系统的接口部分转换为软件接口适配的方式。接口外置可采用定制或cots硬件,即商用成熟产品,将高速磁浮列车控制系统实体设备所使用的物理接口统一转换为以太网接口。

本申请提出高速磁浮列车控制系统半实物仿真系统的软件接口适配,通过以太网与外置的cots接口适配器实现物理接口转换,同时与仿真系统的业务逻辑层对接,实现列车控制系统实体设备与仿真系统业务逻辑层的信息交互。有了基于网络的软件接口适配,仿真系统的功能部件就不受限于工控机物理接口的扩展能力,部署起来更加灵活。比如对于实时性要求不高的道岔仿真系统,如果采用传统半实物仿真方式,一组道岔仿真软件只能部署在一台工控机上,如果采用基于物理接口外置并且适配为网络接口的软件接口适配,则一台工控机可以部署多组道岔仿真软件。

即,本申请从逻辑上分解为两部分,即串行通信软件接口适配方法和数字量软件接口适配方法。

一种高速磁浮运行控制系统半实物仿真的串口软件适配方法,包括:

a1:基于串口配置文件进行串口通道初始化,以得到串口通信通道的套接字并存入串口通道信息共享区,其中,串口配置文件中包含串口通道数信息以及各串口通道的配置信息;

a2:基于套接字循环接收数据,提取数据报文并通过仿真业务逻辑层提供的数据报文接收回调函数将数据报文以及串口通道号发送给仿真业务逻辑层,具体包括:

基于套接字接收数据并存入数据接收缓冲区;

按照接口协议,从数据接收缓冲区的队列头部开始扫描识别帧头和帧尾,提取得到数据块,其中,若没有识别到帧头,则记录到日志文件;

进行crc校验,若校验通过,则将数据块进行转义处理得到数据报文;

通过仿真业务逻辑层提供的数据报文接收回调函数将数据报文以及串口通道号发送给仿真业务逻辑层。

按照接口协议,从数据接收缓冲区的队列头部开始扫描识别帧头和帧尾,提取得到数据块的过程中,

a3:对仿真业务逻辑层发出的数据报文进行封装得到数据块,并基于仿真业务逻辑层提供的串口通道号所对应的套接字将封装好的数据块对外发送,具体包括:

按照高速磁浮运行控制系统实体设备的接口协议对仿真业务逻辑层发出的数据报文进行封装得到数据块,

根据仿真业务逻辑层提供的串口通道号,从串口通道信息共享区中取得跟串口通道相对应的套接字,

调用套接字的发送函数将数据块发送到相应的cots串口-网络接口适配。

具体的,对于串行通信软件接口适配方法的实施过程,图1给出逻辑框图。该方法向高速磁浮牵引/道岔/车辆功能部件的仿真业务逻辑层提供三个接口,即串口通道初始化接口、数据报文接收接口和数据报文发送接口。这三个接口分别由串口通道初始化过程、串口数据接收处理过程和串口数据发送处理过程分别实现对接。

串口通道初始化过程由仿真业务逻辑层的串口通道初始化接口调用,入口参数是仿真业务逻辑层提供的数据报文接收回调函数。

串口通道初始化过程运行时调入xml格式的串口配置文件,该文件负责配置cots串口-网络接口适配的通道信息。下面是一个串口配置文件的实施样例。

根据串口配置文件的配置信息,串口通信接口通道数n由xmlnode“<串行通信接口通道数></串行通信接口通道数>”确定。

每一通道的初始化参数由xmlnode“<通道x适配信息></通道x适配信息>”确定,x的范围为[1,n]。其子节点“<ip></ip>”和“<port></port>”提供对应cots串口-网络接口适配的ip地址和端口号。

对于每一串口通信通道,按照通道号依次创建相应的套接字。套接字和通道号组成元组{通道号,套接字}后放入串口通道信息共享区进行管理。

串口通道初始化过程根据串行通信接口通道数创建相应数量的线程,即tcp数据接收线程。线程的主函数为串口数据接收处理过程,串口通道号和套接字作为串口数据接收处理过程的入口参数。

串口数据接收处理过程内置串口数据接收缓冲区。该缓冲区为一循环队列,负责缓冲所接收到的串口数据。串口数据接收处理过程的主流程是通过套接字循环接收数据并进行处理。一旦接收到新的数据,则将数据追加到串口数据接收缓冲区中,进而执行一个提取数据报文的过程:

按照接口协议,高速磁浮运行控制系统实体设备通过串口发送的数据包括帧头stx(02h)、帧尾etx(03h)、crc校验和以及数据报文,其中数据报文中的数据须经过转义处理。提取数据报文基于串口数据接收缓冲区,从队列头部开始扫描。正常情况下队列头部的数据是帧头stx,否则一直扫描到包含帧头stx数据的队列位置,并将该队列位置之前的这块数据提取,记录到日志文件中,同时将该位置设置为队列头部指针。极端情况是整个队列中都没有找到帧头stx数据,那么将缓冲区中的全部数据都记录到日志文件中,同时将队列置空,即将头部指针赋值为尾部指针。找到帧头stx数据后,继续在队列中找帧尾etx数据。如果找到,则提取该数据块,并进行crc校验,如果正确,则将该数据块存到临时数字存储区,并进行转义处理,处理后的数据块即为数据报文,通过数据报文接收回调函数将数据报文以及串口通道号发送给仿真业务逻辑层。继续这样的过程,直到不能提取完整的数据报文为止。

数据报文发送处理过程接收仿真业务逻辑层的直接调用,入口参数为串口通道号和数据报文。为了将数据报文发送到高速磁浮运行控制系统实体设备,需要按照高速磁浮运行控制系统实体设备的接口协议对数据报文进行封装。首先对数据报文进行转义,然后计算crc校验,在此基础上附加上帧头stx和帧尾etx,得到待发送给高速磁浮运行控制系统实体设备的数据块。根据仿真业务逻辑层提供的串口通道号,从串口通道信息共享区中取得跟串口通道相对应的套接字。然后调用套接字的发送函数将数据块发送到相应的cots串口-网络接口适配。

对于数字量软件接口适配方法的实施过程,包括:

b1:基于数字量配置文件进行数字量通信通道初始化,以得到数字量通信通道的套接字,并将套接字连同通道号、数字信号数和数字输出数组成元组后存入数字量通道信息共享区,其中,数字量配置文件包含数字量接口通道数信息以及各数字量接口通道的配置信息;

b2:基于套接字接收数据,存入数字量接收缓冲区中,并通过仿真业务逻辑层提供的数字量数据接收回调函数将数字量接收缓冲区发送给仿真业务逻辑层,具体包括:

接收数据并存入数字量接收缓冲区;

周期性轮询每个套接字,按照套接字对应的数字输入信号数进行提取有效的数字量信息,并按位左移到数字量数据接收缓冲区有效数据部分的高位;

当所有套接字轮询完之后,通过仿真业务逻辑层提供的数字量数据接收回调函数将数字量接收缓冲区中的数据连同有效长度发送给仿真业务逻辑层。

b3:对仿真业务逻辑层发出的数据基于仿真业务逻辑层提供的数字量号所对应的套接字对外发送,具体包括:

获取入口参数,其中,入口参数包括数字量位号和数字量的值;

从数字量通道信息共享区中从1号元组数据开始扫描,如果该位号大于该元组数据中的数字输出信号数的值,则将该位号减去数字输出信号数,继续扫描直到位号不大于当前扫描元组数据中的数字输出信号数的值为止;

扫描结束后当前的元组数据即对应需要连接的cots数字量-网络接口适配,位号即为cots数字量-网络接口适配数字输出对应的序号;

通过modbustcp协议发送命令字的方式,将位号及入口参数对应的数字量的值发送到cots数字量-网络接口适配。

图2给出逻辑框图。该方法向高速磁浮牵引/道岔/车辆功能部件的仿真业务逻辑层提供三个接口,即数字量通道初始化接口、数字量接收接口和数字量发送接口。这三个接口分别由数字量初始化过程、数字量接收处理过程和数字量发送处理过程分别实现对接。

数字量通道初始化过程由仿真业务逻辑层调用,入口参数是仿真业务逻辑层提供的数据量接收回调函数。

数字量接口通道初始化过程运行时调入xml格式的数字量配置文件,该文件负责配置cots数字量-网络接口适配的通道信息。下面是一个数字量配置文件的实施样例。

根据数字量配置文件的配置信息,数字量接口通道数n由xmlnode“<数字量接口通道数></数字量接口通道数>”确定。

每一通道的初始化参数由xmlnode“<通道x适配信息></通道x适配信息>”确定,x的范围为[1,n]。其子节点“<ip></ip>”和“<port></port>”提供对应cots数字量-网络接口适配的ip地址和端口号,子节点“<数字输入信号数></数字输入信号数>”和“<数字输入信号数></数字输入信号数>”提供对应cots数字量-网络接口适配的数字输入信号数和数字输出信号数。

对于每一数字量通道,按照通道号依次创建相应的套接字。套接字连同通道号、数字信号数和数字输出数组成元组{通道号,套接字,数字输入信号数,数字输出信号数}后放入数字量通道信息共享区进行管理。

数字量通道初始化过程创建一个tcp数据接收线程。线程的主函数为数字量接收处理过程。

数字量接收处理过程内置数字量数据接收缓冲区。该缓冲区为一int64型变量,负责缓冲所接收到的数字量数据。数字量数据接收处理过程的主流程是通过设置一个时钟,周期性轮询数字量数据。当到达轮询周期时,首先将数字量数据接收缓冲区清空,然后轮询通道信息共享区中的所有套接字。对于每一套接字,通过modbustcp协议发送命令字的方式读取所接口的cots数字量-网络接口适配的寄存器信息,然后按照该套接字对应的数字输入信号数进行提取有效的数字量信息,并按位左移到数字量数据接收缓冲区有效数据部分的高位,同时累计数字量数据接收缓冲区的长度。

当所有套接字轮询完之后,通过数字量数据接收回调函数将数字量接收缓冲区中的数据连同有效长度发送给仿真业务逻辑层。

数字量数据发送处理过程接收仿真业务逻辑层的直接调用,入口参数为数字量位号和数字量的值(0或者1)。根据数字量的位号定位到相应的套接字,算法是从数字量通道信息共享区中从1号元组数据开始扫描,如果该位号大于该元组数据中的数字输出信号数的值,则将该位号减去数字输出信号数,继续扫描直到位号不大于当前扫描元组数据中的数字输出信号数的值为止。扫描结束后当前的元组数据即对应需要连接的cots数字量-网络接口适配,位号即为cots数字量-网络接口适配数字输出对应的序号。通过modbustcp协议发送命令字的方式,将位号和入口参数对应的数字量的值发送到cots数字量-网络接口适配。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1