Honeyeagle指令集
Ø RS485接口采用标准modbusRTU协议,波特率9600,无校验位,8个数据位,1个停止位。
Ø 支持功能码:03:读单个或多个寄存器值;06:写单个寄存器值。
l 读取寄存器内容使用03功能码
03功能码使用格式
主机发送:
地址 | 03 | 起始地址高位 | 起始地址低位 | 寄存器数量高位 | 寄存器数量低位 | CRCL | CRCH |
备注:数据地址范围: 0~47(即0x0000~0x002F),对用户而言有效数据地址见下文。其余地址保留。
从机回复:
地址 | 03 | 字节数n*2 | 数据1高位 | 数据1低位 | …… | 数据n高位 | 数据n低位 | CRCL | CRCH |
备注:主机读取数据时,最大地址不可超过0x002F,即起始地址+数据个数不可超过0x002F,否则报错,读取失败。
注意:实时检测值、低报值、高报值、设备满量程、报警回差、标定点浓度这6个参数需结合小数点位数计算,例如实时检测值为十进制1256,此设备小数点为2位,则真实的实时检测值为12.56,其余5个参数同理。
1、 读取实时检测值(FE为广播地址,使用时须换成特定从机号,下同)
主机发送:01 03 00 00 00 01 84 0A
从机回复:01 03 02 00 02 39 85 (气体实时浓度为2ppm)
2、 读取低报值
主机发送:01 03 00 01 00 01 D5 CA
从机回复:01 03 02 00 40 B9 B4 (低报值为64)
3、 读取高报值
主机发送:01 03 00 02 00 01 25 CA
从机回复:01 03 02 00 64 B9 AF (高报值为100)
4、 读取设备地址(不知道设备地址情况下使用万能码FE,万能码适用于03、06所有指令)
主机发送:01 03 00 0C 00 01 44 09
从机回复:01 03 02 00 01 79 84 (地址为#1)
5、 读取设备满量程
主机发送:01 03 00 0B 00 01 F5 C8
从机回复:01 03 02 03 E8 B8 FA (满量程为1000)
6、 读取设备种类
主机发送:01 03 00 0E 00 01 E5 C9
从机回复:01 03 02 00 09 78 42 (设备检测对象CO)
(以下使用Hex码表示,包含但不限于表中气体种类)
0x00 | 空 | 0x01 | ASH3 | 0x02 | Br2 | 0x03 | C2H4 |
0x04 | C7H8 | 0x05 | CH4 | 0x06 | CH2O | 0x07 | CL2 |
0x08 | CLO2 | 0x09 | CO | 0x0A | CO2 | 0x0B | COCL |
0x0C | ETO | 0x0D | Ex | 0x0E | F2 | 0x0F | GEH4 |
0x10 | H2 | 0x11 | H2S | 0x12 | HBr | 0x13 | HCHO |
0x14 | HCL | 0x15 | HCn | 0x16 | HF | 0x17 | N2 |
0x18 | NH3 | 0x19 | NO | 0x1A | NO2 | 0x1B | NOX |
0x1C | O2 | 0x1D | O3 | 0x1E | PH3 | 0x1F | PLG |
0x20 | PM2.5 | 0x21 | PM10 | 0x22 | S1H4 | 0x23 | SO2 |
0x24 | TBM | 0x25 | THT | 0x26 | VOC | 0x27 | XXXX |
0x28 | PM | 0x29 | H2O2 | 0x2A | CH3Br | 0x2B | SF6 |
0x2C | SO2F2 | 0x2D | Ar | 0x2E | He | 0x2F | NMP |
0x30 | C2H3N | 0x31 | PM100 | 0x32 | PM1.0 | 0x33 | CH |
7、 读取小数点
主机发送:01 03 00 0D 00 01 15 C9
从机回复:01 03 02 00 02 39 85 (2位小数点)
8、 单位读取
主机发送:01 03 00 17 00 01 34 0E
从机回复:01 03 02 00 F6 38 02 (ppm)
0000:空; 00F6:ppm; 005F:ppb; 200E:%LEL; 380E:%VOL; 3900:ug/m3; 4000:mg/m3
9、 读取回差
主机发送:01 03 00 24 00 01 C4 01
从机回复:01 03 02 00 14 B8 4B(回差值为:0x0014=20)
l 修改寄存器内容使用06功能码(修改地址时请使用万能码FE)
主机发送
FE | 06 | 地址寄存器高位 | 地址寄存器低位 | 修改数值高位 | 修改数值低位 | CRCL | CRCH |
从机回复
地址 | 06 | 地址寄存器高位 | 地址寄存器低位 | 修改数值高位 | 修改数值低位 | CRCL | CRCH |
1、 修改低报寄存器
主机发送:01 06 00 01 00 30 D8 1E
从机回复:01 06 00 01 00 30 D8 1E(低报修改为0x30,即是48)
2、 修改高报寄存器
主机发送:01 06 00 02 00 64 29 E1
从机回复:01 06 00 02 00 64 29 E1(高报修改为0x64,即是100)
3、 修改地址寄存器
主机发送:01 06 00 0C 00 02 C8 08
从机回复:01 06 00 0C 00 02 C8 08(地址修改为2)
备注:在执行完修改地址寄存器指令后再执行下一条指令时,需把地址字节更换为新的地址,否则不能正常通信,CRC16校验码也就需要重新计算了。
4、 设备调零
主机发送:01 06 00 19 00 00 58 0D
从机回复:01 06 00 19 00 00 58 0D(在干净大气中进行调零)
5、 设备标定
主机发送:01 06 00 19 08 29 9E 13(标定为2089,与小数点无关)
从机回复:01 06 00 19 08 29 9E 13
6、 修改回差
主机发送:01 06 00 24 00 32 48 14
从机回复:01 06 00 24 00 32 48 14(将回差修改为0x0032,即50)
寄存器功能 | 寄存器地址 | 范围 | 读/写 |
实时浓度 | 0x0000 | ---- | 只读 |
低报警值 | 0x0001 | 一般为量程的20% | 可读/可写 |
高报警值 | 0x0002 | 一般为量程的50% | 可读/可写 |
PM1.0浓度值 | 0x0005 | 只读 | |
PM2.5浓度值 | 0x0006 | 只读 | |
PM10浓度值 | 0x0007 | 只读 | |
设备满量程 | 0x000B | ---- | 只读 |
设备地址 | 0x000C | 出厂为1号 | 可读/可写 |
小数点位数 | 0x000D | 0,1,2,3 | 可读/可写 |
设备种类 | 0x000E | 只读 | |
单位 | 0x0017 | 0000:空; 00F6:ppm; 005F:ppb; 200E:%LEL; 380E:%VOL; 3900:ug/m3; 4000:mg/m3 |
只读 |
调零/标定 | 0x0019 | 只对气体有效 | 只写 |
报警回差 | 0x0024 | 出厂为0 | 可读/可写 |
标定浓度 | 0x0026 | 实际标气浓度 | 可读/可写 |
更多相关技术联系陈工:18948359132(微信同号)