System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于通信方法的,具体涉及一种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协议时
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协议转换方法,其特征
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协议转换方法,其特征在于,网...
【专利技术属性】
技术研发人员:梁文祯,叶德云,
申请(专利权)人:广东水利电力职业技术学院广东省水利电力技工学校,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。