新闻中心
PRESS CENTERModbus 从机节点支持Modbus RTU/Modbus TCP 协议。用于将网关采集到的其它数据转换为符合Modbus协议的数据,以供外部的Modbus主站进行读写操作。
msg.payload
#如果数据类型是对象,则会将对象中的键与配置的键名进行匹配,并将相应的值写入对应的寄存器中。如果数据类型为buffer,则将其作为 Modbus 指令进行处理。
msg.payload
#第一个口输出Modbus响应报文
#第二个口以key-value对象的形式输出点位值。输出方式分两种:1.输出变化点位 2.输出全部点位
名称
工作区内节点的命名,方便维护及记忆。
属性
a地址码
Modbus协议站号。(10进制地址,范围1-255)
b协议
Modbus RTU / Modbus TCP。
c线圈
线圈寄存器数量。(范围1-5000)
d触点
触点寄存器数量。(范围1-5000)
e保持寄存器
保持寄存器数量。(范围1-5000)
f输入寄存器
输入寄存器数量。(范围1-5000)
点位表
a数据名称
数据名称作为每个数据点的唯一键(key),请确保其不重复。
写入时输入格式【msg.payload.A = 5000】,表示当表中有名称为A的点位时,将值5000写入对应的寄存器。
b寄存器类型
定义当前数据点属于哪种类型的寄存器。
c偏置
数据点的Modbus寄存器地址(填写10进制地址)。
偏置实际上是指Modbus寄存器地址,此处叫做偏执是为了统一表达。
呈现方式:Modbus寄存器地址一般以两种形式呈现:
十六进制地址:例如0X0000、0X0001
十进制地址:例如40001、40002
填写方式:
十六进制地址:将十六进制地址转换为十进制地址后加1。例如:十六进制的 0x0000 偏置填写 1;十六进制的0x0001偏执填写2
十进制地址:去掉十进制地址的首位后,直接填写偏置。例如:十进制的 40001偏置填写 1;十进制的40002偏执填写2
d数据类型
定义数据的具体类型,线圈和触点默认为布尔类型,不可修改。
Bool:二进制位解析。
UInt16:占用1个寄存器,2个字节,表示非负整数,数据范围 0 ~ 65535。
Int16:占用1个寄存器,2个字节,表示整数,数据范围 -32768 ~ 32767。
UInt32:占2个寄存器,4个字节,表示非负整数,数据范围 0 ~ 4294967295。
Int32:占2个寄存器,4个字节,表示整数,数据范围 -2147483648 ~ 2147483647。
Float32:占2个寄存器,4个字节,表示浮点数。
全部输出: 修改寄存器的值时,将以键值对的形式输出表中配置的所有数据点。
变化输出: 修改寄存器的值时,将以键值对的形式输出表中配置的数据点中值发生变化的数据。
视频:见文末
本示例使用Modbus Poll软件模拟Modbus主机来采集网关的Modbus从机映射的寄存器数据
源码/原文:https://iotrouter.yuque.com/zn3vdn/eg8000/rwsclqi3iw4cgoxt