一、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平台服务、国际化运营于一体,让我们联接,共创未来