一、MODBUS RTU 通讯协议
波特率:9600
数据位:8
停止位:1
校验位:无
1、CRC 说明
以下所有说明中,MODBUS RTU 协议中的CRC16两字节,按照 MODBUS规定:低字节在前,高字节在后。 以下说明中,假定传感器地址0xFF(传感器缺省地址为FF)。
2、返回错误码规定
传感器对于错误指令的接收(包括CRC16效验错误),均实行不返回错误码方式。上位机可在指令发出100ms后收不到返回数据时认为发出指令失败,可重新发送指令。
3、标准 MODBUS 寄存器说明
特别注意:MODBUS 命令中寄存器的数量或长度一项均为两字节16位为一个单位(高字节在前,低字节在后),而非单字节8 位为一个单位。
用户应保证命令中寄存器的地址和数量这两项参数的范围在 本系统规定范围之内。如果超出范围,传感器的输出结果将无法预测,用户应在上位机软件设计中保证MODBUS命令符合本手册要求。
输入寄存器:用功能码 03 读
地址 | 操作 | 内容 | 备注 |
0x0001 | 只读 | 噪声,放大 10 倍的 16 进制数,如 0x021C 表示噪声为 54.0dB | |
0x0002 | 只读 | 保留 | |
0x0003 | 只读 | SO2 浓度,16 进制数,如 0x0172 表示 SO2 浓度为 370ppb | |
0x0004 | 只读 | NO2 浓度,16 进制数,如 0x0036 表示 NO2 浓度为 54ppb | |
0x0005 | 只读 | CO 浓度,16 进制数,如 0x0A00 表示 CO 浓度为 2560ppb | |
0x0006 | 只读 | O3 浓度,16 进制数,如 0x0123 表示 O3 浓度为 291ppb | |
0x0007 | 只读 | PM2.5 浓度,16 进制数,如 0x0172 表 示 PM2.5 浓度为 370ug/m3 | |
0x0008 | 只读 | PM10 浓度,16 进制数,如 0x0193 表 示 PM10 浓度为 403ug/m3 | |
0x0009 | 只读 | 空气温度,加40放大100倍的16进 制数,如 0x1B00 表示 6912/100-40=29.12°C | |
0x000A | 只读 | 空气湿度,放大 100 倍的 16 进制数, 如 0x1603 表示 5635/100=56.35% | |
0x000B | 只读 | 大气压强,放大 10 倍的 16 进制数, 如 0x2784 表示 10116/10=1011.6hPa | |
0x000C | 只读 | 风速,放大 100 倍的 16 进制数,如 0x0125 表示 293/100=2.93m/s | |
0x000D | 只读 | 风向,放大 10 倍的 16 进制数,如 0x0C14 表示 3092/10=309.2° | 北为 0° |
0x000E | 只读 | 雨量,放大 10 倍的 16 进制数,如 0x0016 表示 2.2mm | 默认为 10分 钟雨量 |
0x000F | 只读 | 辐射,16 进制数,如 0x0172 表示辐 射强度为为 370W/m² | |
0x0010 | 只读 | 光照,放大 100 倍的 16 进制数,例如 如 0x0123 表示光照强度为 2.91.Klux | |
0x0011 | 只读 | 紫外指数,16 进制数,如 0x05 代表 紫外指数为 5 | |
0x0012 | 只读 | CO2,16 进制数,如 0x01F4 表示 CO2 浓度为 500ppm | |
0x0013 -0x001 f | 只读 | 保留 | |
0x0105 | 只读 | 电子罗盘,16 进制数,如 0x0036 表示目前 指向 54° | 北为0 |
内部寄存器:用功能码 03 读; 功能码 06 写
地址 | 操作 | 内容 | 备注 |
0x0000 | 读写 | 传感器地址,范围0x01-0xFF (十进制),出厂设置为0xFF |
注:地址部分的数据为 16 进制表示,例:地址 20(十进制) 读写值为 0x14
4、通讯示例
下面举例介绍一下利用 Modbus RTU命令访问系统寄存器的方法:
(1)读取多个输入寄存器(5个实时数据)命令 ,发送:FF 03 00 09 00 05 40 15
FF | 03 | 00 09 | 00 05 | 40 15 |
系统地址 | 功能码 | 寄存器地址 | 寄存器数量 | 软件自动产生的CRC16校验位 |
回答:FF 03 0A 1A 57 0C 5F 27 83 00 00 0C 14 36 E0
FF | 03 | 0A | 1A 57 0C 5F 27 83 00 00 0C 14 | 36 E0 |
系统 地址 | 功能码 | 数据段字节数量 | 数据段数据 | CRC16校验位 |
解析数据:
0x1A57= 0x1A * 256 + 0x57= 6743
温度 = 6743/100-40=27.43°C 0x0C5F= 0x0C * 256 + 0x5F= 3167
湿度=3167/100=31.67%RH
0x2783= 0x27 * 256 + 0x83= 10115
气压=10115/10=1011.5hPa
0x0000=0
风速=0/100=0.00m/s
0x0C14=0x0C * 256 + 0x14= 3092
风向=3092/10=309.2°
(2)读取单个输入寄存器命令 发送:FF 03 00 01 00 01 C0 14
FF | 03 | 00 01 | 00 01 | C0 14 |
系统地址 | 功能码 | 寄存器地址 | 寄存器数量 | 软件自动产生的 CRC16 校验位 |
回答:FF 03 02 02 1C 91 39
FF | 03 | 02 | 02 1C | 91 39 |
系统地址 | 功能码 | 数据段字节数量 | 数据段数据 | CRC16 校验位 |
解析数据:
0x021C= 0x02 * 256 + 0x1C= 540
噪声 = 540/10=54.0dB
(3)读取地址寄存器命令
发送:00 03 00 00 00 01 85 DB
00 | 03 | 00 00 | 00 01 | 85 DB |
功能码 | 寄存器地址 | 寄存器数量 | 软件自动产生的 CRC16 校验位 |
回答:00 03 02 00 01 44
00 | 03 | 02 | 00 01 | 44 44 |
功能码 | 数据段的字节数量 | 数据段数据 | CRC16校验位 |
数据段数据为0x0001 =01 表示系统地址01
(4)修改内部寄存器(系统地址)命令(把地址改为0x33) 发送:00 06 00 00 00 33 C8 0E
00 | 06 | 00 00 | 00 33 | C8 0E |
功能码 | 寄存器地址 | 新地址 | CRC16校验位 |
回答:00 06 00 00 00 33 C8 0E (表示修改成功)
00 | 06 | 00 00 | 00 33 | C8 0E |
功能码 | 起始地址 | 新地址 | CRC16校验位 |
(5)读取电子罗盘(输出值为罗盘北与传感器指北箭头的夹角) 发送:FF 03 01 05 00 01 80 29
FF | 03 | 01 05 | 00 01 | 80 29 |
站号 | 功能码 | 寄存器地址 | 寄存器 数量 | 软件自动产生的 CRC16校验位 |
回答:FF 03 02 00 36 11 86
FF | 03 | 02 | 00 36 | 11 86 |
站号 | 功能码 | 数据段的字节数量 | 数据段数据 | CRC16校验位 |
(6)设置雨量累计时间 发送:00060104 000A 4821
00 | 06 | 01 04 | 00 0A | 48 21 |
功能码 | 起始地址 | 累计时间(分钟) | CRC16校验位 |
回答:00 06 01 04 00 0A 48 21 (表示修改成功)
00 | 06 | 01 04 | 00 0A | 48 21 |
功能码 | 起始地址 | 累计时间(分 钟) | 97CRC16校验位 |
注:设备出厂默认立即时间为 10 分钟
将雨量累计时间设置为 0 时,设备不自动清零降雨量,一直累计,可通过断电重启重新设置雨量累计时间的方式将 降雨量清零。
设置完成后需重启设备。
(7)设置磁偏角修正(仅针对选配电子罗盘时) 发送:00060103 0005 B9E4
00 | 06 | 01 04 | 00 05 | B9 E4 |
功能码 | 寄存器地址 | 修正角 | CRC16校验位 |
回答:00 06 01 03 00 05 B9 E4 (表示修改成功)
00 | 06 | 01 03 | 00 05 | B9 E4 |
功能码 | 起始地址 | 修正角 | CRC16校验位 |
修正角含义
高八位表示修正方向,0x00 代表正修正,0x01 为负修正,低八位为需要修正的角度。
例 0x00 05 表示需要在输出值上增加 5 度。0x01 03 表示需要在输出值上减少 3 度。
(8)GPRS 设置网络信息(针对选配 GPRS 款)
设置 IP AT+GPRSIP=xxx.xxx.xxx.xxx#
设置端口 AT+GPRSPORT=xxxxx#
保存并生效设置 AT+GPRSRESET
读取 IP、端口 RD+GPRSADD=
(9)读取经纬度信息
发送 AT+GPS#
回复 GPS:36.12345,N;114.12345,E#
7.5 其他 可根据用户需求定制协议,具体需要可咨询厦门佰马科技专属销售。
稳 定 性: 传感器使用周期内小于1%
反应时间: 小于10 秒
预热时间: 30S(SO2\NO2\CO\O3 12 小时)
工作电流:DC12V≤60ma(HCD6815)-DC12V≤180ma(HCD6820)
功耗:DC12V≤0.72W(HCD6815);DC12V≤2.16W(HCD6820)
寿命:寿命不小于 3 年 ,高污染环境不做保证
输出:RS485、MODBUS 通讯规约
壳体材料: ASA 工程塑料 工作环境:温度-30~70°C、工作湿度:0-100%
标配线长:3 米 最远引线长度:RS485 1000米
防护等级: IP65
现象 | 解决方法 |
没有通讯 | 检查电源,连接电缆 检查通讯配置参数 |
数据异常 | 检查传感器是否被异物污染 检查周围是否有干扰源 |
如故障仍无法排除请联系厦门佰马科技客服,私自拆开设备将不再享受质保。
佰马Baimatech,集M2M产品研发、IoT平台服务、国际化运营于一体,让我们联接,共创未来