乐为物联全部说明书与教程,请访问看云地址:www.kancloud.cn/lewei50/lewei50-usermanual/380550
前言:
modbus 设备接入乐联网大概经历了三个过程:
第一个阶段:
提供了pc 测试软件,如下图所示。
下载地址http://www.lewei50.com/dev/content/downloads?sk=74),当时的想法就是可以通过pc 软件直接把modbus设备接入乐联网。
优点:通过PC直接接入乐联网,简单快捷
缺点:只能用PC作为网关。
第二个阶段:
提供了类似wifi master 之类的标准化设备如下图:
具体内容链接:http://www.lewei50.com/dev/doc/201
优点:接入网关成本低。
缺点:接入网关属于定制设备,只能向乐为购买。
第三个阶段:
直接用标准DTU设备将modbus 设备接入
优点:完全变成了标准设备接入乐联网,不需要锁定网关厂家,TB直接采购就可以了(采购DTU的时候需要注意要有注册包发送功能的DTU就可以)。
本篇文章主要就是来说怎么用标准dtu 来把modbus设备接入乐联网的。
如果手里有modbus设备想接入一起玩的,可以尝试加QQ群626047753(请注明你手里的modbus设备是啥,乐联网账号是啥,否则不会通过
目的:
用标准设备(淘宝买的DTU,不区分厂家,不区分GPRS,wifi 以太网)把modbus标准设备直接接入乐联网。
下面的三相电表 两个DTU (一个以太网的,一个gprs的)都是TB 直接买的:
乐联网web配置
建立一个modbus 设备,注意红框内容
标识:与后面DTU 注册包内容对应,不是必须要01
类型:只能选择 lw-modbus
Slave id:Modbus device NO.
Func: Modbus 操作码,这里选择03。
是否可控:选择“是”,点击“使用乐联网modbus设备”以后API 地址和公网IP 自动出现内容。
建立一个传感器,S是必须的前缀,72 是因为要访问寄存器地址0x0048,注意根据modbus协议内容进行数值转换。
实验用设备
Modbus 设备
实验设备为JSY-301 三相电表,相关寄存器如下,0x0048 为测试寄存器。
序号 |
定义 |
寄存器地址 |
读/写 |
数据类型与计算 说明 |
1 |
A相电压 |
0048H |
读 |
无符号数,值=DATA/100,单位V |
2 |
A相电流 |
0049H |
读 |
无符号数,值=DATA/1000,单位A |
3 |
A相有功功率 |
004AH |
读 |
无符号数,值=DATA,单位为W |
4 |
A相有功总电能 |
004BH |
读 |
无符号数,值=DATA/800,单位为kWh,数值与000CH,000DH寄存器相同 |
004CH |
读 |
|||
5 |
A相功率因数 |
004DH |
读 |
无符号数,值=DATA/1000 |
6 |
A相二氧化碳排量 |
004EH |
读 |
无符号数,值=DATA/1000,单位为Kg |
004FH |
读 |
|||
7 |
A相报警及继电器状态 |
0050H |
读 |
高字节未用,低字节为报警及继电器状态指示,具体意义见报警及继电器状态指示字意义表 |
8 |
B相电压 |
0051H |
读 |
无符号数,值=DATA/100,单位V |
9 |
B相电流 |
0052H |
读 |
无符号数,值=DATA/1000,单位A |
10 |
B相有功功率 |
0053H |
读 |
无符号数,值=DATA,单位为W |
11 |
B相有功总电能 |
0054H |
读 |
无符号数,值=DATA/800,单位为kWh,数值与000EH,000FH寄存器相同 |
0055H |
读 |
|||
12 |
B相功率因数 |
0056H |
读 |
无符号数,值=DATA/1000 |
13 |
B相二氧化碳排量 |
0057H |
读 |
无符号数,值=DATA/1000,单位为Kg |
0058H |
读 |
|||
14 |
B相报警及继电器状态 |
0059H |
读 |
高字节未用,低字节为报警及继电器状态指示,具体意义见报警及继电器状态指示字意义表 |
15 |
C相电压 |
005AH |
读 |
无符号数,值=DATA/100,单位V |
16 |
C相电流 |
005BH |
读 |
无符号数,值=DATA/1000,单位A |
17 |
C相有功功率 |
005CH |
读 |
无符号数,值=DATA,单位为W |
18 |
C相有功总电能 |
005DH |
读 |
无符号数,值=DATA/800,单位为kWh,数值与0010H,0011H寄存器相同 |
005EH |
读 |
|||
19 |
C相功率因数 |
005FH |
读 |
无符号数,值=DATA/1000 |
20 |
C相二氧化碳排量 |
0060H |
读 |
无符号数,值=DATA/1000,单位为Kg |
0061H |
读 |
|||
21 |
C相报警及继电器状态 |
0062H |
读 |
高字节未用,低字节为报警及继电器状态指示,具体意义见报警及继电器状态指示字意义表 |
23 |
三相有功总电能 |
0063H |
读 |
无符号数,值=DATA/800,单位为kWh,数值与0012H,0013H寄存器相同 |
0064H |
读 |
|||
24 |
频率 |
0065H |
读 |
无符号数,值= DATA/100,单位为Hz |
读数据寄存器(功能码03H):读A相的3个寄存器值,结果为:电压231.5V,电流10.123A,功率2343W,仪表地址为1。
主机读数据帧:
地址 |
命令 |
起始地址(高位在前) |
寄存器数(高位在前) |
校验码(低位在前) |
01H |
03H |
00H,48H |
00H,03H |
85H,DDH |
仪表回应数据帧:
地址 |
命令 |
数据长度 |
数据段(6字节) |
校验码 |
01H |
03H |
06H |
5AH,6EH,27H,8BH,09H,27H |
F8H,92H |
写数据寄存器(功能码10H):设置A相电压上限为260V,A相电流上限为50A,仪表地址为1。
主机写数据帧:
地址 |
命令 |
起始地址 |
寄存器数 |
字节数 |
数据段 |
校验码 |
01H |
10H |
00H,20H |
00H,02H |
04H |
01H,04H,01H,F4H |
B1H,9DH |
仪表回应数据帧:
地址 |
命令 |
起始地址 |
寄存器数 |
校验码 |
01H |
10H |
00H,20H |
00H,02H |
40H,02H |
DTU设备
实验采用有人410S,只要是可以在TCP链接以后第一时间发送注册包的设备都可以。注册包内容为乐联网USRKEY_网关号,连接到modbus.lewei50.com,端口号为9970。具体内容见下面有人配置页面截图红框“注册包内容”。
最终测试效果
Modbus 控制台效果,起始位置为10进制(72=0x48)
直接测试发送原始数据,对比该电表协议内容更容易理解。
最终数据结果如下:
感兴趣可以加群:
乐联网 modbus dtu 群号 626047753 (申请时候注明乐联网ID 和 modbus 设备名称)