获取485温湿度传感器的Modbus报文

查看说明书得知温湿度变送设备关键信息如下:

通讯协议:

编 码8 位二进制
数据位8 位
奇偶校验位
停止位1 位
错误校验CRC(冗余循环码)
波特率1200bit/s、2400bit/s、4800bit/s、9600bit/s、19200bit/s、38400bit/s、5
7600bit/s、115200bit/s 可设,出厂默认为 4800bit/s。

寄存器地址:

寄存器地址PLC或组态地址内容操作说明
0000 H40001湿度只读湿度实时值(扩大10倍)
0001 H40002温度只读温度实时值(扩大10倍)
0050H40081温度校准值读写整数(扩大10倍)
0051H40082湿度校准值读写整数(扩大10倍)
07D0 H42001设备地址读写1~254(出厂默认1)
07D1 H42002波特率读写0代表2400
1代表4800
2代表9600
3代表19200
4代表38400
5代表57600
6代表115200
7代表1200

串口通讯调试软件设置:

根据以上信息,将参数设置如下

  • 串口:COM3 这个根据自己电脑端口情况来定
  • 波特率:4800 这是设备默认频率
  • 数据位:8
  • 校验位: None
  • 停止位:One
  • 发射/接收报文:十六进制显示

自定义报文获取湿度/温度:

这条Modbus报文 01 03 00 00 00 02 C4 0B 意思是读取温度和湿度

上面这条报文怎么来的参考下面这个表格

地址码功能码起始地址数据长度校验码低位校验码高位
说明书解释0x010x030x00 0x000x00 0x020xC40x0B
说明书解释1字节1字节2字节2字节1字节1字节
自定义发报文010300 0000 02C40B
备注默认默认寄存地址000H连读两个寄存器地址默认默认

获取计算湿度/温度值

只需要算湿度值和温度值的报文就行了,报文格式是16进制,用H表示,H会加在下面的报文上只提示这是16进制没别的;

湿度值Modbus报文:

01D1 H(16进制) → 转换成十进制就是 465*0.1=46.5 这就是最终的数据当前湿度为46.5%

温度值Modbus报文:

010D H(16进制) → 转换成十进制就是269*0.1=26.9=温度26.9℃

注:说明书上介绍温度/湿度实时值扩大了十倍,所以得乘以0.1才是正确数值;

地址码功能码返回有效字节湿度值温度值校验码低位校验码高位
说明书解释0x010x030x040x01 0xE60xFF 0x9F0x1B0xA0
说明书解释1字节1字节1字节2字节2字节2字节2字节
返回的报文01030401 D101 0D6BA3
串口调试软件

温湿度变送器说明书下载:www.5yun.org/soft/PDF/23897.pdf

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片