System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种PLC的TCP与RTU协议转换方法技术_技高网

一种PLC的TCP与RTU协议转换方法技术

技术编号:40917240 阅读:7 留言:0更新日期:2024-04-18 14:43
本发明专利技术公开了一种PLC的TCP与RTU协议转换方法,步骤包括设定485地址、485地址通信基数、IP地址、Modbus TCP服务的网络端口号;配置PLC本地网络端口号,建立MB_CLIENT通信模块程序与网关设备的TCP/IP连接;设定PLC本地网络端口号对应485地址加上485地址通信基数;在接收到Modbus TCP数据包时,计算485地址将Modbus TCP数据包转换为包含485地址的Modbus RTU数据包;在接收Modbus RTU数据包时,计算PLC本地网络端口号将Modbus RTU数据包转换为Modbus TCP数据包。本发明专利技术能满足RS485串行总线挂载多个Modbus从机通信需求。

【技术实现步骤摘要】

本专利技术属于通信方法的,具体涉及一种plc的tcp与rtu协议转换方法。


技术介绍

1、在工业物联网中,plc常作为modbus主机,传感器与执行机构常作为modbus从机。在modbus主机与modbus从机的通信中,modbus从机通过rs485串行总线接入网关设备,需要使用rtu协议与网关设备进行通信。对modbus从机来说,modbus rtu的数据包的结构如下表1所示:

2、表1modbus rtu数据包结构

3、

4、网关设备用作modbus tcp服务器,需要设置ip地址和modbus tcp服务的网络端口号。modbus tcp的数据包的结构如下表2所示:

5、表2modbus tcp数据包结构

6、

7、在现有技术中,对以太网与rs485串行总线之间进行通信连接的网关设备,转换协议可以支持modbus协议。modbus协议是指将modbus tcp数据包与modbus rtu数据包透过网关设备进行双向转换。例如,modbus rtu数据包从modbus从机发出,通过串行通信传输到网关设备,转换成modbus tcp数据包,再通过以太网通信传输给plc,而plc能够正确解释此modbus tcp数据包;再例如,modbus tcp数据包从plc发出,通过以太网通信传输到网关设备,转换成modbus串行数据包,通过串行通信传输给modbus从机,而modbus从机能够正确解释此modbus串行数据包。现有技术中,进行配置实现modbus协议时采用的方式为,使用plc设备中的mb_client通信模块程序进行参数配置,mb_client通信模块程序中各通信参数如表3所示:

8、表3mb_client通信参数

9、

10、在表3中提及的tcon_ip_v4数据类型,其参数组成如表4所示:

11、表4tcon_ip_v4数据类型的参数

12、

13、

14、但是在现有技术中,plc设备作为modbus tcp服务器时,无法满足与多个挂载在同一条rs485串行总线上的modbus从机之间同时通信的情况。因为,现有的plc设备使用modbus协议进行modbus tcp数据包与modbus rtu数据包转换时,采用的方式是将modbustcp数据包中单元标识符(即485地址)固定为广播地址0xff,所以在一条串行总线上,只能为一个modbus从机进行挂载,如果该串行总线上同时连接多个modbus从机,这些modbus从机根据将modbus tcp数据包中单元标识符(即485地址)固定为广播地址0xff的方式,则将使用同一个广播地址,进而都能够响应modbus串行广播数据包,造成这些modbus从机一起回复主机的情形,从而在这条串行总线上出现数据包冲突的问题,plc设备的modbus主机没办法接收正确地址回复的数据包,从而无法完成相应的modbus协议通信。


技术实现思路

1、为了克服现有技术存在的缺陷与不足,本专利技术的目的在于提供一种plc的tcp与rtu协议转换方法,用于保证plc设备作为主机,当多个modbus从机挂载在同一条串行总线时能够为数据包正确地寻址,避免modbus从机在rs485串行总线上出现通信冲突。

2、为了达到上述目的,本专利技术采用以下技术方案:

3、一种plc的tcp与rtu协议转换方法,用于以plc设备作为modbus主机通过以太网执行modbus tcp协议与网关设备通信、多个modbus从机接入同一条rs485串行总线执行modbus rtu协议与网关设备通信所构成的网络中,包括步骤如下:

4、s1、分别设定多个modbus从机各自的485地址;设置网关设备485地址通信基数、ip地址、modbus tcp服务的网络端口号;

5、s2、使用plc设备中的mb_client通信模块程序配置相应的plc本地网络端口号,建立mb_client通信模块程序与网关设备的tcp/ip连接;

6、设定一个plc本地网络端口号对应一个modbus从机的485地址加上网关设备485地址通信基数的和值;

7、s3、网关设备接收modbus tcp数据包和/或modbus rtu数据包;

8、s4、在网关设备接收到modbus tcp数据包时,网关设备根据一个plc本地网络端口号对应一个modbus从机的485地址加上网关设备485地址通信基数的和值的设定,计算得到需要响应的modbus从机的485地址,然后将modbus tcp数据包转换为包含485地址的modbusrtu数据包,接着将modbus rtu数据包发送到rs485串行总线,由对应的modbus从机进行响应;

9、s5、在网关设备接收modbus rtu数据包时,网关设备根据一个plc本地网络端口号对应一个modbus从机的485地址加上网关设备485地址通信基数的和值的设定,计算得到需要响应的mb_client通信模块程序的plc本地网络端口号,然后将modbus rtu数据包转换为modbus tcp数据包,接着根据所建立的tcp/ip连接,得到与plc本地网络端口号相对应的mb_client通信模块程序,将modbus tcp数据包发送给对应的mb_client通信模块程序。

10、优选地,mb_client通信模块程序用于管理modbus从机与plc设备的通信;

11、mb_client通信模块程序的数量与modbus从机的数量相同,每个mb_client通信模块程序对应一个modbus从机;

12、每个mb_client通信模块程序之间所设定modbustcp协议下的plc本地网络端口号互不相同;

13、每个mb_client通信模块程序处于不同的时隙上对plc设备与不同modbus从机之间通信响应进行监视。

14、进一步地,设定网关设备中执行对plc本地网络端口号与网关设备485地址通信基数的减法运算、485地址与网关设备485地址通信基数的加法运算,确定需要响应的modbus从机、mb_client通信模块程序。

15、进一步地,网关设备通过将plc本地网络端口号减去485地址通信基数,得到modbus tcp数据包对应目标的modbus从机的485地址。

16、进一步地,网关设备通过将modbus从机的485地址加上485地址通信基数,得到modbus rtu数据包对应mb_client通信模块程序的plc本地网络端口号。

17、进一步地,网关设备接收到modbus tcp数据包后将modbus tcp数据包转换为modbus rtu数据包,具体过程包括:

18、s41、plc设备启动mb_client通信模块程序进行数据打包,然后根据mb_client通信模块程序与网本文档来自技高网...

【技术保护点】

1.一种PLC的TCP与RTU协议转换方法,用于以PLC设备作为Modbus主机通过以太网执行Modbus TCP协议与网关设备通信、多个Modbus从机接入同一条RS485串行总线执行ModbusRTU协议与网关设备通信所构成的网络中,其特征在于,包括步骤如下:

2.根据权利要求1所述PLC的TCP与RTU协议转换方法,其特征在于,所述MB_CLIENT通信模块程序用于管理Modbus从机与PLC设备的通信;

3.根据权利要求2所述PLC的TCP与RTU协议转换方法,其特征在于,设定网关设备中执行对PLC本地网络端口号与网关设备485地址通信基数的减法运算、485地址与网关设备485地址通信基数的加法运算,确定需要响应的Modbus从机、MB_CLIENT通信模块程序。

4.根据权利要求3所述PLC的TCP与RTU协议转换方法,其特征在于,网关设备通过将PLC本地网络端口号减去485地址通信基数,得到Modbus TCP数据包对应目标的Modbus从机的485地址。

5.根据权利要求4所述PLC的TCP与RTU协议转换方法,其特征在于,网关设备通过将Modbus从机的485地址加上485地址通信基数,得到Modbus RTU数据包对应MB_CLIENT通信模块程序的PLC本地网络端口号。

6.根据权利要求5所述PLC的TCP与RTU协议转换方法,其特征在于,网关设备接收到Modbus TCP数据包后将Modbus TCP数据包转换为Modbus RTU数据包,具体过程包括:

7.根据权利要求6所述PLC的TCP与RTU协议转换方法,其特征在于,网关设备首先识别数据包的格式是否为有效的Modbus TCP数据包,若是则再执行网关设备获取PLC本地网络端口号的步骤,若否则丢掉数据包。

8.根据权利要求7所述PLC的TCP与RTU协议转换方法,其特征在于,网关设备接收到Modbus RTU数据包后将Modbus RTU数据包转换为Modbus TCP数据包,具体过程包括:

9.根据权利要求8所述PLC的TCP与RTU协议转换方法,其特征在于,网关设备首先识别数据包的格式是否为有效的Modbus RTU数据包,若是则执行将485地址加上485地址通信基数的步骤,若否则忽略该数据包。

...

【技术特征摘要】

1.一种plc的tcp与rtu协议转换方法,用于以plc设备作为modbus主机通过以太网执行modbus tcp协议与网关设备通信、多个modbus从机接入同一条rs485串行总线执行modbusrtu协议与网关设备通信所构成的网络中,其特征在于,包括步骤如下:

2.根据权利要求1所述plc的tcp与rtu协议转换方法,其特征在于,所述mb_client通信模块程序用于管理modbus从机与plc设备的通信;

3.根据权利要求2所述plc的tcp与rtu协议转换方法,其特征在于,设定网关设备中执行对plc本地网络端口号与网关设备485地址通信基数的减法运算、485地址与网关设备485地址通信基数的加法运算,确定需要响应的modbus从机、mb_client通信模块程序。

4.根据权利要求3所述plc的tcp与rtu协议转换方法,其特征在于,网关设备通过将plc本地网络端口号减去485地址通信基数,得到modbus tcp数据包对应目标的modbus从机的485地址。

5.根据权利要求4所述plc的tcp与rtu协议转换方法,其特征在于,网...

【专利技术属性】
技术研发人员:梁文祯叶德云
申请(专利权)人:广东水利电力职业技术学院广东省水利电力技工学校
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1