

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(微信同号)
			


