新闻中心
PRESS CENTERModbus是一种工业现场总线协议,通常运行于RS485总线,采用半双工即一问一答的通信机制。Modbus分为Modbus RTU/Modbus TCP/Modbus ASCII三种通信模式,Modbus请求和Modbus解析节点只用于Modbus RTU通信。
Modbus请求节点:根据设置的参数(地址码/功能码/寄存器起始地址/寄存器数量等)生成Modbus指令。
Modbus解析节点:根据匹配的Modbus请求节点,解析响应数据。
Modbus解析节点使用时需指定匹配的Modbus请求节点,匹配完成就会按照Modbus请求节点的设置来解析数据,因此Modbus请求和Modbus解析节点必须成对出现且必须一一匹配。
节点只对协议报文处理,并未指定相应的串口,因此一般配合串口节点一起使用。Modbus请求和Modbus解析不支持通过传参来动态请求数据。
以下介绍主要针对Modbus请求节点,Modbus解析节点无任何设置项。
Modbus协议【完整版】-https://iotrouter.yuque.com/attachments/yuque/0/2023/pdf/38696274/1698721058459-2269824c-e5b8-49d9-b135-164ba88cd249.pdf
(如下源码:https://iotrouter.yuque.com/zn3vdn/eg8000/xtbmo18kq05in9gm)
msg.payload
#设置的功能码不同需要不同的参数
#FC 1:读线圈(msg.payload无意义)
#FC 2:读触点(msg.payload无意义)
#FC 3:读保持寄存器(msg.payload无意义)
#FC 4:读输入寄存器(msg.payload无意义)
#FC 5:写单个线圈(msg.payload:1/0)
#FC 6:写单个保持寄存器(msg.payload:0-65535)
#FC15:写多个线圈(msg.payload:字节数组,每个字节表示8个线圈)
#FC16:写多个保持寄存器(msg.payload:一个寄存器2个字节,要写入的具体字节数组,详见示例)
msg.payload
#根据配置项生成的modbus rtu请求指令
功能
1. 配置项
地址码:1-255 十进制输入,请注意进制转换
功能码:FC 1读线圈(功能码:0x01)
FC 2读触点(功能码:0x02)
FC 3读保持寄存器(功能码:0x03)
FC 4读输入寄存器(功能码:0x04)
FC 5写单个线圈(功能码:0x05)
FC 6写单个保持寄存器(功能码:0x06)
FC 15写多个线圈(功能码:0x0F)
FC 16写多个寄存器(功能码:0x10)
起始地址:5位十进制数字,请注意进制转换
最高位不清楚怎么写可以填0,后4位是寄存器地址十六进制转成十进制后加1
例如:0x0100-->002570x0000-->00001 0x0010-->00017
数量:根据实际情况填写
寄存器解析:根据实际情况填写
2. 节点匹配方法
1. 读线圈
2. 读触点
3. 读保持寄存器
4. 读输入寄存器
5. 写单个线圈
6. 写单个保持寄存器
7. 写多个线圈
8. 写多个保持寄存器
9. 轮训采集
10. 同一个传感器采集相同数量寄存器(防止误解析)
Modbus请求节点参数有改动,对应的Modbus解析节点要重新搜索选中一下