此教程适用于老版MD620、MD663、MD650,新版MD625、MD663、MD620的配置请参考最左侧新RTU教程。
202409月后发货的MD620,MD663型号设备为新版本。
通过MQTT控制继电器为例,以下进行网络连接、modbus和虚拟设备进行配置演示。
MQTT的发布订阅主题不能设置一样
MQTT配置:
这里以MD620为例,配置模板->4G RTU。
通过指令模板快速配置DO、DI、AI,选择4GRTU电流(或者4GRTU电压、4GRTU电流电压),再点击快速添加,会自动配置AI、DO和DI,用户按需选择,删除多余的即可。例如,只需要一个继电器DO1,则可只保留DO1。写入回复->启用,若不启用,写入属性时会提示超时。
属性 | 说明 | 必填 |
---|---|---|
读取超时 | 串口数据返回超时,单位秒 | 是 |
协议类型 | 当前配置的协议类型,RTU ,TCP not ok,R2T 代表RTU转TCP,ATCP 代表modbus tcp,数据源来自任意输入 |
是 |
定义数据源 | 定义当前功能的数据源名称,需要唯一,用在其他模块如网络配置的数据源需要选择当前的名称 | 是 |
输入数据源 | 当前功能的数据来源,可以多选,一般是串口,网络,自定义数据源 | 是 |
用户参数 | 在结果里面携带用户参数,用户参数支持魔法值,${imei} ,${iccid} ,${csq} 动态,${vbat} 动态,${lon} 动态,${lat} 动态 |
否 |
时间戳 | 将会在数据里面插入为ts的时间戳 | 是 |
数据结构 | 混合模式或者设备模式,混合模式下所有采集指令键值会组合成一个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设备后,是否返回结果 | 否 |
属性 | 说明 | 必填 |
---|---|---|
周期 | 采集指令读取周期,单位秒 | 是 |
单独上传 | 勾选后,此采集指令读取成功即上传,会组成单独的json;而其他没有勾选的指令会组成一条json | 是 |
变化上传 | 读取的数据和上次比较,发生变化则上传;多条指令有一条发生变化也会上传 | 是 |
只写 | 当数据只需要写时,需要设置为只写 ,支持功能码05、06, 此时读取周期无效 |
是 |
写功能码 | 写指令转换使用的的功能码,寄存器写入用06 还是10 |
是 |
ID | 采集指令,Modbus 设备ID, 最大是255 | 是 |
功能 | 采集指令,Modbus 设备功能码,支持01 、02 、03 、04 、05 、06 |
是 |
地址 | 采集指令,Modbus 设备寄存器起始地址,十进制数字,协议地址是从0开始的,如果是PLC地址要减40001 | 是 |
长度 | 采集指令,Modbus 设备寄存器读写长度,必须包含 所有映射中的地址 |
是 |
键值 | 数据映射,寄存器键值(别名),英文字符串, 转换成json使用的名称 | 是 |
地址 | 数据映射,寄存器地址,必须包含 在采集指令的采集范围中;包含 的**计算方法,映射的地址要大于起始地址,小于等于起始地址加指令长度 |
是 |
类型 | 数据映射,寄存器值类型,和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是偏移 | 是 |
最新版本MD620中,电流(4-20mA)比例为0.01004,偏移为-0.1471;电压(0-5V)比例为0.001379,偏移为-0.08779,精度优于1%
虚拟设备、MODBUS 和网络连接三个功能模块填写完成后,点击写入配置,返回CONFIG OK表示写入配置成功
点击查看调试信息,如下图所示,则配置完成
注意订阅和发布主题的正确填写,下发键值要和modbus中的键值一样。例如,modbus中配置的是DO1,那么下发指令的时候也是DO1。发下指令{"DO1":1}或者{"DO1":0}
DTU平台远程配置流程如下图:
硬件准备 | 软件准备 |
---|---|
MD6XX RTU 主机 天线、电源、流量卡 | DTU管理平台http://plat.developlink.cloud/ |
注册账户
注册,登录平台 http://plat.developlink.cloud ,进入DTU管理;注意需要填写正确的手机和邮箱格式
小程序扫码添加设备
使用微信扫码打开小程序,使用DTU管理平台账号登录,点击扫码,对准设备机身二维码扫描添加即可自动激活
DTU管理平台配置虚拟设备、MODBUS 两个功能模块的流程和本文第二章2、3节一致,具体可见上文
填写完成后,点击写入配置,DTU会自动重启
由于网络等问题,可以DTU自动重启失败,所以最好远程重启一下
点击其他-控制台,重启设备,返回ok,则重启成功
TU配置也支持直接导入配置文件的方法。
若想直接导入对应型号的json配置文件,用户需要提供给技术支持当前产品型号,找技术支持要对应json配置文件,例如MD620虚拟设备配置文件 。
具体操作如下图所示:
点击json,黏贴覆盖原有配置,点击更新。
然后点击写入确认即可。
也可以直接复制json文本,点击配置页面JSON按钮,粘贴替换点更新
公共端:COM,常开端:NO,常闭端:NC。
以下接线中,COM为设备上的GND引脚,DI为设备上的DI1-DI2引脚。
以下接线中,Alin为设备上的AI1-AI2输入引脚,ACOM为设备上的GND引脚。
{"type":"base","version":"V4","base":{"host":"","param_ver":0,"flow":0,"fota":1,"log":2,"shell":[1,120,1],"report":0,"pmod":0,"pswd":"","pins":[13,8,12],"reboot":0,"mqr":[1,20,100],"apn":[0,"","",""]},"uconf":[[1,9600,8,0,1,19,1,20,"",0],[],[]],"nconf":[[],[],[],[],[],[]],"param_ver":0,"mb":[[2,1,21,[22],1,0,0,"","","",0,500,0,1],[[10,96,"640300000002"],[["dianliu",0,"H",1,0.01036,-0.8753],["dianya",1,"H",1,0.001384,-0.1302]]],[[10,96,"640200000002"],[["DI1",0,"c",1],["DI2",1,"c",1]]],[[10,96,"640100000002"],[["jidianqi1",0,"c",1],["jidianqi2",1,"c",1]]]],"d6":[],"up":{},"vd":{"d":[100,22,[1]],"c3":[1,2],"c2":[26,27],"c1":[20,7],"c1u":[2,0],"c3u":[2,0]},"rule":[],"lora":[]}
{"type":"base","version":"V5","base":{"host":"","param_ver":0,"flow":0,"fota":1,"log":1,"nnt":3,"shell":[1,120,1],"report":0,"pmod":0,"pswd":"","pins":[33,12,35],"reboot":0,"mqr":[1,20,100],"ofm":0,"eth":[1,"","",""],"wifi":[1,"","",-1,0,"","",""],"dns":["",""]},"uconf":[[1,9600,3,0,1,4,1,20,"",0],[]],"nconf":[["mqtt","115.159.225.58",1883,300,"","xx","xx","xxsub","sspub",0,0,0,0,"",[21],0,0],[],[],[],[],[]],"param_ver":0,"h2":[],"mb":[[2,1,21,[22],1,0,0,"","","",0,500,0,5,3,0],[[10,96,"640100000002"],[["do1",0,"c",1],["do2",1,"c",1]]],[[10,96,"640200000002"],[["di1",0,"c",1],["di2",1,"c",1]]]],"up":{},"vd":{"d":[100,22,[1]],"c3":[1,2],"c2":[34,36],"c1":[13,15],"c1u":[2,0],"c3u":[2,0]},"rule":[],"d6":[]}