停止位要选2
MODBUS调试助手下载链接:
http://www.sinilink.com/download/tools/MODBUS-DEBUG.rar
产品说明:
产品采用工业级芯片,高精度进口SHT20温湿度传感器,确保产品的优异可靠性、高精度、互换性。采用RS485硬件接口(具有防雷设计),协议层兼容标准的工业Modbus-Rtu协议。本产品集MODBUS协议与普通协议于一体,用户可以自行选择通信协议,普通协议带有自动上传功能(连接RS485通过串口调式工具即会自动输出温湿度)。
MODBUS 协议
0x03:读保持寄存器
0x04: 读输入寄存器
0x06:写单个保持寄存器
0x10:写多个保持寄存器
寄存器类型 | 寄存器地址 | 数据内容 | 字节数 |
输入寄存器 | 0x0001 | 温度值 | 2 |
0x0002 | 湿度值 | 2 | |
保持寄存器 | 0x0101 | 设备地址 (1~247) | 2 |
0x0102 | 波特率 0:9600 1:14400 2:19200 | 2 | |
0x0103 | 温度修正值(/10) -10.0~10.0 | 2 | |
0x0104 | 湿度修正值(/10) -10.0~10.0 | 2 |
主机发送数据帧:
从机地址 | 功能码 | 寄存器地址 高字节 | 寄存器地址 低字节 | 寄存器数量 高字节 | 寄存器数量 低字节 | CRC 高字节 | CRC 低字节 |
|
|
|
|
|
|
|
|
从机响应数据帧:
从机地址 | 响应功能码 | 字节数 | 寄存器1数据 高字节 | 寄存器1数据 低字节 | 寄存器N数据 高字节 | 寄存器N数据 低字节 | CRC 高字节 | CRC 低字节 |
|
|
|
|
|
|
|
|
|
MODBUS命令帧
从机地址 | 功能码 | 寄存器地址 高字节 | 寄存器地址 低字节 | 寄存器数量 高字节 | 寄存器数量 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x04 | 0x00 | 0x01 | 0x00 | 0x01 | 0x60 | 0x0a |
从机响应数据帧:
从机地址 | 功能码 | 字节数 | 温度 高字节 | 温度 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x04 | 0x02 | 0x01 | 0x31 | 0x79 | 0x74 |
温度值=0x131,转换成十进制305,实际温度值 = 305 / 10 = 30.5℃
注:温度是有符号16进制数,温度值=0xFF33,转换成十进制 -205,实际温度= -20.5℃;
从机地址 | 功能码 | 寄存器地址 高字节 | 寄存器地址 低字节 | 寄存器数量 高字节 | 寄存器数量 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x04 | 0x00 | 0x02 | 0x00 | 0x01 | 0x90 | 0x0A |
从机响应数据帧:
从机地址 | 功能码 | 字节数 | 湿度 高字节 | 湿度 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x04 | 0x02 | 0x02 | 0x22 | 0xD1 | 0xBA |
湿度值=0x222,转换成十进制546,实际湿度值=546 / 10 = 54.6%;
从机地址 | 功能码 | 寄存器地址 高字节 | 寄存器地址 低字节 | 寄存器数量 高字节 | 寄存器数量 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x04 | 0x00 | 0x01 | 0x00 | 0x02 | 0x20 | 0x0B |
从机响应数据帧:
从机地址 | 功能码 | 字节数 | 温度 高字节 | 温度 低字节 | 湿度 高字节 | 湿度 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x04 | 0x04 | 0x01 | 0x31 | 0x02 | 0x22 | 0x2A | 0xCE |
以读取从机地址为例:
从机地址 | 功能码 | 寄存器地址 高字节 | 寄存器地址 低字节 | 寄存器数量 高字节 | 寄存器数量 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x03 | 0x01 | 0x01 | 0x00 | 0x01 | 0xD4 | 0x36 |
从机响应帧:
从机地址 | 功能码 | 字节数 | 从机地址 高字节 | 从机地址 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x03 | 0x02 | 0x00 | 0x01 | 0x30 | 0x18 |
以修改从机地址为例:
从机地址 | 功能码 | 寄存器地址 高字节 | 寄存器地址 低字节 | 寄存器值 高字节 | 寄存器值 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x06 | 0x01 | 0x01 | 0x00 | 0x08 | 0xD8 | 0x30 |
修改从机地址:0x08 = 8
从机响应帧(与发送相同):
从机地址 | 功能码 | 寄存器地址 高字节 | 寄存器地址 低字节 | 寄存器值 高字节 | 寄存器值 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x06 | 0x01 | 0x01 | 0x00 | 0x08 | 0xD4 | 0x0F |
从机地址 | 功能码 | 起始地址 高字节 | 起始地址 低字节 | 寄存器数量 高字节 | 寄存器数量 低字节 | 字节数 | 寄存器1高字节 | 寄存器1低字节 | 寄存器2高字节 | 寄存器2低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x10 | 0x01 | 0x01 | 0x00 | 0x02 | 0x04 | 0x00 | 0x20 | 0x25 | 0x80 | 0x25 | 0x09 |
修改从机地址:0x20 = 32
波特率:0x2580 = 9600
从机响应帧:
从机地址 | 功能码 | 寄存器地址 高字节 | 寄存器地址 低字节 | 寄存器数量 高字节 | 寄存器数量 低字节 | CRC 高字节 | CRC 低字节 |
0x01 | 0x10 | 0x00 | 0x11 | 0x00 | 0x04 | 0xD4 | 0x0F |
普通版本协议
波特率默认9600(用户可自行设定),8位数据,2位停止,无校验
RS485通信
串口命令 | 说明 |
READ | 触发一次温湿度上报 (27.4℃,67.7% 温度27.4℃湿度67.7%) |
AUTO | 启动温湿度自动上报功能 (同上) |
STOP | 停止温湿度自动上报功能 |
BR:XXXX | 设置波特率 9600~19200 (BR:9600 波特率为9600) |
TC:XX.X | 设置温度校准 (-10.0~10.0) (TC:02.0温度修正值为2.0℃) |
HC:XX.X | 设置湿度校准 (-10.0~10.0) (HC:-05.1 湿度修正值为-5.1%) |
HZ:XXX | 设置温湿度上报速率 (0.5,1,2,5,10) (HZ:2 自动上报速率 2Hz) |
PARAM | 读取系统当前设置
|
PARAM指令:
TC:0.0,HC:0.0,BR:9600,HZ:1 ->温度修正值0.0湿度修正值0.0波特率9600上报速率 1Hz
SLAVE_ADD:1 ->MODBUS从机地址 0x01