一种基于Modbus-TCP协议的自转换方法与流程

文档序号:14717772发布日期:2018-06-16 01:56阅读:565来源:国知局

本发明涉及工业级控制系统数据通信领域,特别是在异构网络之间数据实时通讯领域,具体涉及一种基于Modbus-TCP协议的自转换方法。



背景技术:

随着DCS控制系统在核电控制中应用越来越广泛,现场总线技术的发展改变了控制系统的结构,但是随着越来越多的现场总线协议的出现,异构系统之间数据传输变得越来越难,导致无法直接进行数据互访与交互。

同时为避免系统中采用低速、短距离传输的RS232接口,异构系统中需要实现高速、大数据量的快速传输。

Modbus-TCP协议通过目前使用最广泛的以太网协议标准(IEEE802.3)将Modbus协议帧封装到TCP/IP下层协议中,并将该报文在物理层上进行数据传输,该协议有效的解决了串口总线数据传输距离短、传输速率慢、传输数据量少的问题。

自定义的RS485总线协议包括物理层、链路层和自定义应用层。RS485总线物理层采用差分线,在传输距离为100m内,传输速率可以达到Mbps的级别。自定义的RS485总线协议简称本地总线协议。

因此,针对控制系统中现场总线协议的不足,此处介绍一种基于Modbus-TCP协议与本地总线协议相互转换,解决异构系统中传输距离、传输速率和传输数据量的不足的问题。



技术实现要素:

本发明的目的在于提供一种基于Modbus-TCP协议的自转换方法。

实现本发明目的的技术方案:

一种基于Modbus-TCP协议的自转换方法,该方法应用于核电控制系统,网关模块实现将第三方系统接入本系统,实现本系统的可用性和扩展性;

该方法的具体步骤如下:

第一步:协议解析

网关模块收到Modbus-TCP响应报文后,根据Modbus-TCP协议解析得到数据段DU1;

第二步:协议转换

网关模块将数据段DU1按照本地协议实现数据段映射得到相应的数据段DU2;

第三步:协议组包

网关模块将数据段DU2按照本地总线协议组包得到相应的报文,并发送到本地总线网络;

同理,从本地网络发送到Modbus-TCP网络的过程也是如此。

进一步的,如上所述的一种基于Modbus-TCP协议的自转换方法,第二步中实现两种协议的数据段映射,包括地址映射和数据格式转换:

(1)地址映射

地址映射指某一数据从Modbus-TCP缓冲区的某一地址搬移到本地协议缓冲区的某一地址下;

(2)数据格式转换

在Modbus-TCP协议中数据格式如下:

数据类型ModBus_BIT,该数据占用的Modbus寄存器数量1,字节数1bit;

数据类型ModBus_WORD 1,该数据占用的Modbus寄存器数量1,字节数2byte;

数据类型ModBus_DWORD,该数据占用的Modbus寄存器数量2,字节数4byte;

数据类型ModBus_FLOAT 2,该数据占用的Modbus寄存器数量2,字节数4byte;

在本地协议中数据格式如下:

数据类型LocalBus_BIT,表示数字量输入/输出的数据类型,字节数1bit;

数据类型LocalBus_WORD,表示模拟量输出的数据类型,字节数2byte;

数据类型LocalBus_FLOAT,表示模拟量输入的数据类型,字节数4bytet;

从Modbus-TCP总线接收到的ModBus_WORD、ModBus_DWORD、ModBus_FLOAT的模拟量输入,映射到LocalBus_FLOAT的数据类型上再发送到系统的控制器模块;

系统的控制器模块发送的LocalBus_WORD型模拟量输出数据,转为ModBus_WORD、ModBus_DWORD或ModBus_FLOAT的数据类型再发送到Modbus-TCP网络。

本发明的效果在于:

针对目前核电控制系统中异构系统之间数据传输存在协议不匹配、传输数据量大、传输距离远的问题,设计了一种基于Modbus-TCP协议的自转换方法。该方法实现了Modbus-TCP协议与本地总线协议转换,解决了异构系统之间的数据传输;采用Modbus-TCP网络解决两个异构系统之间要求数据传输量大,传输距离远、传输速率快等问题;采用自定义的RS485总线协议可以快速、定时、准确的实现控制器与网关模块的数据交互,实现将第三方设备/系统接入到核电控制系统,实现自身系统的可用性和扩展性。

附图说明

图1为本发明所述的异构系统的框图。

图中:1网关模块,2控制器模块,3控制系统,4第三方系统。

具体实施方式

下面结合附图和具体实施例对本发明所述的一种基于Modbus-TCP协议的自转换方法作进一步描述。

实施例1

一种基于Modbus-TCP协议的自转换方法,该方法应用于核电控制系统,网关模块实现将第三方系统接入本系统,实现本系统的可用性和扩展性;

该方法的具体步骤如下:

第一步:协议解析

网关模块收到Modbus-TCP响应报文后,根据Modbus-TCP协议解析得到数据段DU1;

第二步:协议转换

网关模块将数据段DU1按照本地协议实现数据段映射得到相应的数据段DU2;

第三步:协议组包

网关模块将数据段DU2按照本地总线协议组包得到相应的报文,并发送到本地总线网络;

同理,从本地网络发送到Modbus-TCP网络的过程也是如此。

2.根据权利要求1所述的一种基于Modbus-TCP协议的自转换方法,其特征在于:第二步中实现两种协议的数据段映射,包括地址映射和数据格式转换:

(1)地址映射

地址映射指某一数据从Modbus-TCP缓冲区的某一地址搬移到本地协议缓冲区的某一地址下;

(2)数据格式转换

在Modbus-TCP协议中数据格式如下:

数据类型ModBus_BIT,该数据占用的Modbus寄存器数量1,字节数1bit;

数据类型ModBus_WORD 1,该数据占用的Modbus寄存器数量1,字节数2byte;

数据类型ModBus_DWORD,该数据占用的Modbus寄存器数量2,字节数4byte;

数据类型ModBus_FLOAT 2,该数据占用的Modbus寄存器数量2,字节数4byte;

在本地协议中数据格式如下:

数据类型LocalBus_BIT,表示数字量输入/输出的数据类型,字节数1bit;

数据类型LocalBus_WORD,表示模拟量输出的数据类型,字节数2byte;

数据类型LocalBus_FLOAT,表示模拟量输入的数据类型,字节数4bytet;

从Modbus-TCP总线接收到的ModBus_WORD、ModBus_DWORD、ModBus_FLOAT的模拟量输入,映射到LocalBus_FLOAT的数据类型上再发送到系统的控制器模块;

系统的控制器模块发送的LocalBus_WORD型模拟量输出数据,转为ModBus_WORD、ModBus_DWORD或ModBus_FLOAT的数据类型再发送到Modbus-TCP网络。

实施例2

根据上述描述,通过一个实例进一步描述该专利发明。假设从第三方系统中传输一个模拟量点POINT1,该数据类型为FLOAT。在Modbus-TCP侧需要2个寄存器传输,并且寄存器起始地址定为0x0001;在本地协议侧需要4个字节存放该数据,并且定为通道1,也即通道1数据类型被初始化为FLOAT型。

第一步:网关模块接收到Modbus-TCP报文,解析后得到数据类型为FLOAT的数据,并且bit[24-31]的寄存器地址为0x0001。

第二步:将上述数据从DU1段协议转换到DU2,该FLOAT数据放到DU2的通道1。

第三步:将DU2的数据按照本地总线协议组包,并发送到本地总线网络。

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