查看说明书得知温湿度变送设备关键信息如下:
通讯协议:
编 码 | 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 H | 40001 | 湿度 | 只读 | 湿度实时值(扩大10倍) |
0001 H | 40002 | 温度 | 只读 | 温度实时值(扩大10倍) |
0050H | 40081 | 温度校准值 | 读写 | 整数(扩大10倍) |
0051H | 40082 | 湿度校准值 | 读写 | 整数(扩大10倍) |
07D0 H | 42001 | 设备地址 | 读写 | 1~254(出厂默认1) |
07D1 H | 42002 | 波特率 | 读写 | 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 意思是读取温度和湿度
上面这条报文怎么来的参考下面这个表格
地址码 | 功能码 | 起始地址 | 数据长度 | 校验码低位 | 校验码高位 | |
说明书解释 | 0x01 | 0x03 | 0x00 0x00 | 0x00 0x02 | 0xC4 | 0x0B |
说明书解释 | 1字节 | 1字节 | 2字节 | 2字节 | 1字节 | 1字节 |
自定义发报文 | 01 | 03 | 00 00 | 00 02 | C4 | 0B |
备注 | 默认 | 默认 | 寄存地址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才是正确数值;
地址码 | 功能码 | 返回有效字节 | 湿度值 | 温度值 | 校验码低位 | 校验码高位 | |
说明书解释 | 0x01 | 0x03 | 0x04 | 0x01 0xE6 | 0xFF 0x9F | 0x1B | 0xA0 |
说明书解释 | 1字节 | 1字节 | 1字节 | 2字节 | 2字节 | 2字节 | 2字节 |
返回的报文 | 01 | 03 | 04 | 01 D1 | 01 0D | 6B | A3 |

温湿度变送器说明书下载:www.5yun.org/soft/PDF/23897.pdf
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END