网关Modbus全场景使用指南"/>
ZL400边缘网关Modbus全场景使用指南
文章目录
- Modbus应用场景指南
- 网络透传读写485外接设备
- 多个网关组网一对多透传采集Modbus
- 网络拓扑如图所示
- 实现方案
- 简单的Modbus主机485采集输出JSON
- 边缘网关Modbus主机功能
- 多种网络模式下Modbus Tcp采集输出JSON
- 配置ATCP模式
- Modbus RTU Over Tcp采集从机
- Modbus RTU转TCP透传
- 常见场景
- 实现方案
- 网关做Modbus从机受外部串口或网络控制
- Modbus主从并存,主机同时采集485和内部外设
- Modbus主从并存,主机采集485同步到从机供网络和第二路串口读写
- 常见用途
- 实现方案
- Modbus主从并存,远程传感器通过网络写入从机,主机采集从机并输出JSON
- 实现方案
- Modbus主从并存,DLT645采集电表结果写入Modbus从机
- 应用场景
- 实现方案
- 两个Modbus网关通过MQTT远程连接,传输JSON实现DI、DO跟随或者场景联动
- 应用场景
- 实现方案1
- 实现方案2
- 充电
Modbus应用场景指南
这里对常用的各种Modbus应用场景做一个罗列,都是我们边缘网关支持的场景,皆有实际对接案例。持续更新中…
- 网络透传读写485外接设备
- 多个网关组网一对多透传采集Modbus
- 简单的Modbus主机485采集输出JSON
- 多种网络模式下Modbus Tcp采集输出JSON
- Modbus RTU Over Tcp采集
- Modbus RTU转TCP透传
- 网关做Modbus从机受外部串口或网络控制
- Modbus主从并存,主机同时采集485和内部外设
- Modbus主从并存,主机采集485同步到从机供网络和第二路串口读写
- Modbus主从并存,远程传感器通过网络写入从机,主机采集从机输出JSON
- Modbus主从并存,DLT645采集电表结果写入Modbus从机
- 两个Modbus网关通过MQTT远程连接,传输JSON实现DI、DO跟随或者场景联动
网络透传读写485外接设备
过于简单不做介绍,查看透传使用章节。
多个网关组网一对多透传采集Modbus
网络拓扑如图所示
- 使用边缘网关1对3通过MQTT组网
- 网关从机通过485连接传感器
- 网关主机通过485接收来自数采仪或者上位机软件的采集指令
- 指令1对三透传到从机串口读取传感器
实现方案
由于是透传场景,配置比较简单,只要实现一对三设备的透传组网就行了。
网关配置采用D2Group配置:
- 只需要配置组名称,需要确保唯一,不能和其他的组相同
- 设置好主机设备的IMEI
- 实际也是基于MQTT实现,单独配置4个设备的MQTT也行,只需要注意设备主题是否匹配
简单的Modbus主机485采集输出JSON
边缘网关Modbus主机功能
Modbus网关功能支持对设备数据的自动读写、转换,直接上传json到服务器;
- 支持Modbus RTU, Modbus TCP, RTU转TCP;
- 支持short、float、bcd,bit等多种数据格式以及字节顺序(和modbus poll软件保持一致);
- 内置对阿里云、onenet等平台协议转换,将modbus结果直接转换成对应协议上传到平台,实现物模型接入;
- 支持采集DTU的信号,时间,电源电压,imei,定位坐标等信息上传;
- 模板模式,自定义上传格式;
- 对接自定义、其他的数据格式还可以二次开发,极度灵活。
功能介绍: [在线查看]
使用说明有视频教程:[在线观看]
多种网络模式下Modbus Tcp采集输出JSON
一些传统的Modbus TCP是基于tcp短连接的,目前我们网关只支持了各种长连接的modbus tcp采集,可以是tcp,udp甚至MQTT,只需要保证数据传输即可。
配置ATCP模式
- 首先Modbus主机配置为ATCP模式,modbus指令以及其他功能和modbus rtu协议相同
注意输入数据源这里选择网络通道1(有6个网络通道按需对应)
功能介绍: [在线查看]{target=“_blank”}
使用说明有视频教程:[在线观看]{target=“_blank”}
- 设置网络通道,可以采用任何支持的网络类型连接,接收PLC或者传感器的数据;这里网络通道的数据源不重要可以随便选,也可以选一个没有使用到的自定义
一般情况下,如ZL500网关做MB TCP主机,PLC做从机情况下,网关做tcp client,PLC做tcp server;当然这个比较灵活,可以按需配置
3.步骤2是设置了modbus传感器的输入数据源。这里还需要设置modbus结果的上传网络通道
注意上报结果的网络通道,数据源要选modbus定义数据源(自定义1)
Modbus RTU Over Tcp采集从机
- Modbus RTU协议和Modbus TCP的区别在于tcp多了一个6字节的包头,而去掉这6字节包头直接就能转换成RTU协议;
- 一般情况下RTU使用485传输数据,但是在某些情况下,比如一些平台支持modbus读取数据,会通过tcp网络通道直接下发RTU指令到网关,网关透传到485实现采集,此情况就和场景1是一样的—就是RTU Over TCP。
Modbus RTU转TCP透传
用于实现Modbus RTU协议和TCP协议的透传互转。
常见场景
485接入rtu传感器,plc没有485,只能通过网线和网关相连,此时如果采用rtu over tcp是可以直接通的。在只能支持mb tcp的情况下,需要实现RTU和TCP的转换,plc查询用tcp协议,网关转换成rtu发给传感器,传感器回复后网关在转换成mb tcp给plc。
实现方案
- Modbus设置为R2T模式,指定主机侧是RTU还是TCP协议
- 配置对应的串口和网络,直接通讯即可
网关做Modbus从机受外部串口或网络控制
通常用于平台端下发Modbus RTU指令,透传读取网关从机(虚拟设备)的数据,如模拟量、DI、继电器状态;
-
首先启用虚拟设备,可以选择配置模板快速设置,注意输入数据源要选使用的网络通道,如果是外部主机通过485读取,选串口1(并且不需要配置网络)
-
按需设置网络,这里网络通道的数据源不重要可以随便选,也可以选一个没有使用到的自定义;这样连接网络后,网络直接下发modbus查询指令即可读取虚拟设备里面从机的数据,默认ID是100,可以读取模拟量,DI,DO,定位信息等数据
Modbus主从并存,主机同时采集485和内部外设
当使用带控制外设的设备时,需要启用虚拟设备(从机)来控制外设,此时可以通过网络、串口、以及modbus主机来实现读写,取决于你设置的虚拟设备的输入数据源。
注意,如果是网络、串口读写虚拟设备,输入数据源选网络或者串口; 如果同时Modbus主机也要读写虚拟设备,请在modbus主机的输入数据源选上虚拟设备的定义(一般自定义2); 如果只需要Modbus主机读写虚拟设备,那么从机的输入数据源可以随便选一个用不到的数据源;
-
首先设置好虚拟从机,这里只有modbus主机读写从机
-
设置好modbus主机,注意同时采集485设备和虚拟从机,输入数据源需要选上两个
-
设置指令,先读取外部485传感器,设备ID=1,读取地址1
-
设置指令,读取虚拟从机的数据,AI,DO,DI,默认ID=100
-
设置好上传数据的网络通道,数据源选自定义1,上传MB采集的JSON结果
Modbus主从并存,主机采集485同步到从机供网络和第二路串口读写
常见用途
- 网关4851读取传感器,4852接LED点阵屏控制卡,需要将采集数据显示出来
- 数采仪上,4851采集传感器,4852接组态屏,需要将采集数据显示到组态屏
实现方案
-
启用虚拟设备,用户数据段长度设置为10,表示功能码03,地址0-9可以读写,这里要供4852读写,输入数据源要选串口3
-
启用modbus主机,设置好4851传感器的采集指令,这里要同时读写串口1和虚拟设备,输入数据源要选上串口1和自定义2
-
第二步设置了外部传感器的采集指令,这里还要设置写入虚拟设备的指令(可以只写),注意映射可以简单区别,比如加个后缀(不能相同);把数据写入到虚拟设备的用户数据段,数据格式需要对应,地址可以按需,4852读取地址和这里配置的写入地址一致。
-
第三步设置了写入虚拟设备的指令,但是还需要同步读取的数据然后写入,启用场景联动,添加一条规则;设置输入数据源自定义1,输出数据源自定义1(都是modbus主机),触发选连续触发,动作选属性转换,输入属性选采集映射,输出属性选写入从机的映射;
-
串口配置,启用串口1和串口3, 4852外接Modbus主机即可通讯。
Modbus主从并存,远程传感器通过网络写入从机,主机采集从机并输出JSON
适用用一些特别的场景,当你的传感器数据是靠远程平台Modbus写入数据指令获得。首先需要启用从机,让平台把数据写入到从机里面,然后启用Modbus主机,读取从机数据,之后按需上传即可。
实现方案
-
启用虚拟设备,用户数据段长度设置为10,表示功能码03,地址0-9可以读写,这里要供网络平台读写,输入数据源要选网络通道1
-
设置网络通道1,连接对应的远程平台
-
设置Modbus从机,输入数据源选自定义2,设置读取指令,读取从机数据
-
设置上传数据的网络通道,按需设置
Modbus主从并存,DLT645采集电表结果写入Modbus从机
应用场景
需要上传电表数据到平台,但是平台只能支持Modbus RTU透传采集;此时只能通过先采集DLT645数据然后写入到Modbus从机,平台端通道直接透传指令采集虚拟从机里面的数据;
实现方案
-
设置DLT645采集指令
-
启用虚拟设备,用户数据段长度设置为10,表示功能码03,地址0-9可以读写,这里要供网络平台读写,输入数据源要选网络通道1
-
设置MB主机写入虚拟设备的指令(可以只写);把数据写入到虚拟设备的用户数据段,数据格式需要对应,地址可以按需,4外部应用的读取地址和这里配置的写入地址一致。
-
配置场景联动,用于同步DLT645采集数据到Modbus主机写入到从机里面;
两个Modbus网关通过MQTT远程连接,传输JSON实现DI、DO跟随或者场景联动
应用场景
常见于远程控制,多会结合场景联动使用,可以实现复杂的联动控制或者报警;使用则比较简单,两个或者多个远程的主机首先通过MQTT组网连接,设置好各自的Modbus指令,键值相同即可跟随,如果键值不同可以使用场景联动转换。
实现方案1
-
可以采用D2D或者D2G组网
-
设置Modbus采集指令,比如这里采集一个电压VA,远程跟随输出这个值
-
远端设备设置Modbus指令完全相同,勾上只写,因为是受控端
-
近端设备采集VA发送到远端设备,远端设备转换写入到Modbus 485设备输出相同的值;
实现方案2
-
可以采用D2D或者D2G组网,注意采集端数据源需要改动,犹豫这里是靠场景联动转发过来数据,网络数据可以选用不到的,比如规则
-
设置Modbus采集指令,比如这里采集一个DI,远程跟随输出一个DO
-
远端设备设置Modbus指令写入DO,勾上只写,因为是受控端
-
近端设备采集DI,通过场景联动转换成DO属性,在发送到远端设备,远端设备转换写入到Modbus 485设备输出相同的值;
充电
对我们产品感兴趣请查看淘宝:
DEVELOPLINK ______
更多推荐
ZL400边缘网关Modbus全场景使用指南
发布评论