上传数据格式以及高级模板用法请看此链接
注意不要将软件安装到C盘,容易出现问题;
上位机软件包括SD-RTU配置工具MDIOT设置软件:点我下载
使用 MODBUS 功能前,先对出串口参数,网络通道参数等进行设置。
首先配置串口,再配置网络连接,最后配置ModBus。
因此接下来将对串口、网络连接和ModBus三个配置依次进行演示。
1. 配置串口参数
串口参数的配置需查看传感器说明书,参数应与选择的传感器相对应,不同的传感器参数可能不同。
MD-600 485 串口通过串口 1 进行通讯,案例中波特率为 9600bit/s
2. 配置网络连接
网络通道参数配置包含:TCP、UDP、HTTP、MQTT、P2P、OneNET、Aliyun、DevelopLink、TxIOT 等通道类型,不在这里展开,详情请见相关文档,可参考左侧应用教程。
注意数据源要选
自定义1
3. MODBUS 配置说明
在配置ModBus前,用户可以先大致了解此页面中各个属性的功能说明,例如输入数据源、输入数据源和数据结构。各个属性的功能说明请参考下表。
属性 | 说明 | 必填 |
---|---|---|
读取超时 | 串口数据返回超时,单位秒 | 是 |
网络通道 | 通道1-6代表对应的网络通道;不解析 代表不对读取到数据解析,上传的数据为原始二进制数组 ;规则引擎代表手动控制数据;自适应 对应从网络通道下面选择modbus实现多路上传 |
是 |
数据串口 | 串口1-3,串口4代表USB | 是 |
数据结构 | 混合模式或者设备模式,混合模式下所有采集指令键值会组合成一个json对象(键值必须全局唯一):{"a":1,"b":2}, 设备模式下每个设备按照ID排序组成json数组(每个指令下键值唯一):[{"i":"id1", "c":"func",v:{"a":1,"b":2}},{"i":"id2", "c":"func",v:{"a":1,"b":2}}] | 是 |
写入回复 | 服务端写入新数据到modbus设备后,是否返回结果 | 是 |
时间戳 | 将会在数据里面插入为ts的时间戳 | 是 |
周期 | 采集指令读取周期,单位秒 | 是 |
单独上传 | 勾选后,此采集指令读取成功即上传,会组成单独的json;而其他没有勾选的指令会组成一条json | 是 |
变化上传 | 读取的数据和上次比较,发生变化则上传;多条指令有一条发生变化也会上传 | 是 |
只写 | 当数据只需要写时,需要设置为只写 ,支持功能码05、06,此时读取周期无效 |
是 |
ID | 采集指令,Modbus 设备ID | 是 |
功能 | 采集指令,Modbus 设备功能码,支持1、2、3、4、5、6 | 是 |
地址 | 采集指令,Modbus 设备寄存器起始地址 | 是 |
长度 | 采集指令,Modbus 设备寄存器读写长度,必须包含 所有映射中的地址 |
是 |
键值 | 数据映射,寄存器键值(别名),英文字符串 | 是 |
地址 | 数据映射,寄存器地址,必须包含 在采集指令的采集范围中 |
是 |
类型 | 数据映射,寄存器值类型,和modbus poll软件格式一致,支持Coils, Short,Unsigned Short,Long,Unsigned Long,Float,Short BCD,Long BCD | 是 |
顺序 | 数据映射,寄存器值字节顺序,和modbus poll软件格式一致,支持ABCD, CDAB,BADC,DCBA | 是 |
比例 | 数据转换,公式为 y = ax + b , a是比例 | 是 |
偏移 | 数据转换,公式为 y = ax + b , b是偏移 | 是 |
4. 配置 MODBUS 参数
接下来是ModBus的配置,在配置ModBus中,请重点注意输入数据源、设备ID、起始地址和读取长度的配置。
以温湿度光照三合一传感器为例:
以此类推设置 CO2,NH3 传感器 Modbus 参数,如图
继电器 modbus 参数略有不同,如下图
功能码设为
写入配置,Modbus 配置完成,DTU 会自动重启。
配置成功后,上电DTU和传感器,可以用上位机连接usb查看日志。
若配置成功后没有数据,检查如下原因:
需要固件sbl版本大于等于104
网络连接配置:
数据源要选择规则引擎
modbus配置:
modbus的键值a,在场景联动配置会用到
场景联动配置:
数据a发生变化,且变化的范围大于2,会立即上传一次;如果没有变化,间隔时间大于设置周期上传一次。
变化范围和上传周期根据实际情况设置。
注意场景联动触发的周期是modbus的采集周期,实际频率和modbus采集周期也有关系,判断数据变化是两次modbus采集结果进行对比
这里动作也可以使用属性转发上传来自自定义1的modbus数据
波特率、数据位、校验位和停止位,要与modbus slave中设置的一样。
数据源->自定义1,表示数据来自modbus。
写入回复->启用,这里modbus中的键值是a和b。
下发格式{"a":4,"b":3}
这里使用Modbus slave模拟一个modbus tcp 从机
使用上位机设置网关,新建网络通道,TCP连接到电脑modbus slave
设置modbus协议
TODO
注意数据源要选规则或者用不到的自定义
注意连接对端的tcp角色,有些时候是需要设备做TCP server