以modbus协议为通讯协议的电表解析总结

以modbus协议为通讯协议的电表解析总结
⼀、 初识modbus
Modbus 协议是应⽤于电⼦控制器上的⼀种通⽤语⾔。通过此协议,控制器相互之间、控制器经由⽹络(例如以太⽹)和其它设备之间可以通信。Modbus 协议定义了⼀个控制器能认识使⽤的消息结构,⽽不管它们是经过何种⽹络进⾏通信的。它描述了⼀控制器请求访问其它设备的过程,如果回应来⾃其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
⽬前,Modbus 有下列三种通信⽅式:
1.以太⽹,对应的通信模式是Modbus TCP。
2.异步串⾏传输(各种介质如有线RS-232-/422/485/;光纤、⽆线等),对应的通信模式是 Modbus RTU 或 Modbus ASCII。 Modbus 的ASCII、RTU 协议规定了消息、数据的结构、命令和应答的⽅式,数据通讯采⽤Maser/Slave⽅式。
3.⾼速令牌传递⽹络,对应的通信模式是Modbus PLUS。
⽂档所采⽤的是第⼀种。
⼆、 Modbus的具体含义
先来简单分析⼀条MODBUS-RTU报⽂,例如:01 06 00 01 00 17 98 04
01 06 00 01 00 17 98 04
从机地址 功能号 数据地址 数据 CRC校验
这⼀串数据的意思是:把数据 0x0017(⼗进制23) 写⼊ 1号从机地址 0x0001数据地址。
大连港股份有限公司1、报⽂
⼀个报⽂就是⼀帧数据,⼀个数据帧就⼀个报⽂: 指的是⼀串完整的指令数据,就像上⾯的⼀串数据。
2、CRC校验
意义:例如上⾯的 98 04 是它前⾯的数据(01 06 00 01 00 17)通过⼀算法计算出来的结果,其实就像是计算累加和那样。(累加和:就是010*********加起来的值,然后它的算法就是加法)。
作⽤:在数据传输过程中可能数据会发⽣错误,CRC检验检测接收的数据是否正确。⽐如主机发出01
06 00 01 00 17 98 04,那么从机接收到后要根据01 06 00 01 00 17 再计算CRC校验值,从机判断⾃⼰计算出来的CRC校验是否与接收的CRC校验(98 04主机计算的)相等,如果不相等那么说明数据传输有错误这些数据不能要。
3、功能号
意义:modbus 定义。
捷克斯洛伐克电影最常⽤功能码:
下⾯“线圈”“寄存器”其实分别直的就是“位变量”“16位变量”
01 (0x01) 读线圈
02 (0x02) 读离散量输⼊
03 (0x03) 读保持寄存器
04(0x04) 读输⼊寄存器
05 (0x05) 写单个线圈
06 (0x06) 写单个寄存器
15 (0x0F) 写多个线圈
16 (0x10) 写多个寄存器
三、 ZigBee modbus的报⽂格式及通讯过程
1. 读取多路寄存器
例如:读取环境温度值
1. 读取开关量输出状态
乌鲁克
总结:⼀般主机的报⽂包括流⽔号(1字节),MAC(6字节),从机地址(1字节),功能码(1字节),起始地址(2字节),读取开关量数量(2字节),功能码(2字节)。
从机包括流⽔号(1字节),MAC(6字节),从机地址(1字节),功能码(1字节),数据长度(1字节),开关状态(2字节),功能码(2字节)。
1. 通讯过程
主站与插座的通信协议为 MODBUS 协议。
上位机将 MODBUS 封包按照 【⼀个字节的流⽔号, 6 个字节的 RJ45 主站设备 MAC 值, 给插座的 MODBUS 封包】重新包装,送给 RJ45 ⽆线主站;RJ45 ⽆线主站收到这个格式的封包,确认 MAC 值正确后,就会检查MODBUS 封包的第⼀个字节 (插座的ID, 即寄送⽬的⽅) , 然后通过⽆线 zigbee ⽹络将上位机传来的 MODBUS封包,完全不动的转给该 ID 的插座(透明转发) 。同样地,花的启示
插座送给上位机的封包,也是由 RJ45 ⽆线主站完全不动的送给上位机处理。
四、 硬件解析进展
1. 实时采集数据
(流⽔号)0A .. 0F 10 11 ..19 1A ..1F 20 ..29 2A ..2F 30…99 9A ..9F A0….
查询⾃组⽹系统状态
TX: 00 00 05 9E F4 03 4C 00 03 00 00 00 00 44 1B
RX: AA 00 05 9E F4 03 4C 00 03 32 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B2 7F
(ID 1,ID 2 插座 在⽆线⽹内,正常⼯作中)
读取温度
TX: 00 00 05 9E F4 03 4C 01 03 00 5C 00 01 44 18国家安全生产监督管理总局化学品登记中心
RX: AB 00 05 9E F4 03 4C 01 03 02 00 00 B8 44(0度)
读取开关量输出状态
TX: 00 00 05 9E F4 03 4C 01 01 00 00 00 10 3D C6 00 00 00 00
RX: AC 00 05 9E F4 03 4C 01 01 02 01 00 B8 6C(闭合状态)
RX: AE 00 05 9E F4 03 4C 01 01 02 00 00 B9 FC(断开状态)
设置单路开关状态
RX: 00 00 05 9E F4 03 4C FF 00
RX: 0E 00 05 9E F4 03 4C 01 05 00 00 00 00 CD CA(断开)
TX: 0E 00 05 9E F4 03 4C FF 00
RX: 00 00 05 9E F4 03 4C FF 00
RX: 0F 00 05 9E F4 03 4C 01 05 00 00 01 00 CC 5A(闭合)
TX: 0F 00 05 9E F4 03 4C FF 00
参数采集
(电压229.37,电流0.00,有功功率0.00,有功电能62.3306,功率因数0.000,CO2-0.000,⽤电时间1727.2,信号强度3)
TX: 00 00 05 9E F4 03 4C 01 03 00 48 00 0A 45 DB
RX: 00 00 05 9E F4 03 4C FF 00
RX: A2 00 05 9E F4 03 4C 01 03 14 59 99 00 00 00 00 00 03 0B 22 00 00 00 00 00 00 52 25 03 01 01 00
TX: A2 00 05 9E F4 03 4C FF 00
TX: 00 00 05 9E F4 03 4C 01 03 00 52 00 02 65 DA
RX: 00 00 05 9E F4 03 4C FF 00
RX: A3 00 05 9E F4 03 4C 01 03 04 00 00 43 78 CB 21
TX: A3 00 05 9E F4 03 4C FF 00
1. 进展及问题
能成功读取多路开关量的输出状态,并解析报⽂数据;能成功设置单路开关量的输出状态,并解析报⽂数据。
田间持水量
明⽩报⽂各个数据各个字节代表的含义,但缺少具体的⽂档说明,⽆法弄清楚每个字节数字组合后的运算逻辑,具体原理还待研究。

本文发布于:2024-09-24 01:18:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/137000.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   字节   状态   开关
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议