Honeyeagle指令集
? RS485接口采用標準modbusRTU協議,波特率9600,無校驗位,8個數據位,1個停止位。
? 支持功能碼:03:讀單個或多個寄存器值;06:寫單個寄存器值。
l 讀取寄存器內容使用03功能碼
03功能碼使用格式
主機發(fā)送:
地址 | 03 | 起始地址高位 | 起始地址低位 | 寄存器數量高位 | 寄存器數量低位 | CRCL | CRCH |
備注:數據地址范圍: 0~47(即0x0000~0x002F),對用戶而言有效數據地址見下文。其余地址保留。
從機回復:
地址 | 03 | 字節(jié)數n*2 | 數據1高位 | 數據1低位 | …… | 數據n高位 | 數據n低位 | CRCL | CRCH |
備注:主機讀取數據時,最大地址不可超過0x002F,即起始地址+數據個數不可超過0x002F,否則報錯,讀取失敗。
注意:實時檢測值、低報值、高報值、設備滿量程、報警回差、標定點濃度這6個參數需結合小數點位數計算,例如實時檢測值為十進制1256,此設備小數點為2位,則真實的實時檢測值為12.56,其余5個參數同理。
1、 讀取實時檢測值(FE為廣播地址,使用時須換成特定從機號,下同)
主機發(fā)送:01 03 00 00 00 01 84 0A
從機回復:01 03 02 00 02 39 85 (氣體實時濃度為2ppm)
2、 讀取低報值
主機發(fā)送:01 03 00 01 00 01 D5 CA
從機回復:01 03 02 00 40 B9 B4 (低報值為64)
3、 讀取高報值
主機發(fā)送:01 03 00 02 00 01 25 CA
從機回復:01 03 02 00 64 B9 AF (高報值為100)
4、 讀取設備地址(不知道設備地址情況下使用萬能碼FE,萬能碼適用于03、06所有指令)
主機發(fā)送:01 03 00 0C 00 01 44 09
從機回復:01 03 02 00 01 79 84 (地址為#1)
5、 讀取設備滿量程
主機發(fā)送:01 03 00 0B 00 01 F5 C8
從機回復:01 03 02 03 E8 B8 FA (滿量程為1000)
6、 讀取設備種類
主機發(fā)送: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、 讀取小數點
主機發(fā)送:01 03 00 0D 00 01 15 C9
從機回復:01 03 02 00 02 39 85 (2位小數點)
8、 單位讀取
主機發(fā)送: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、 讀取回差
主機發(fā)送:01 03 00 24 00 01 C4 01
從機回復:01 03 02 00 14 B8 4B(回差值為:0x0014=20)
l 修改寄存器內容使用06功能碼(修改地址時請使用萬能碼FE)
主機發(fā)送
FE | 06 | 地址寄存器高位 | 地址寄存器低位 | 修改數值高位 | 修改數值低位 | CRCL | CRCH |
從機回復
地址 | 06 | 地址寄存器高位 | 地址寄存器低位 | 修改數值高位 | 修改數值低位 | CRCL | CRCH |
1、 修改低報寄存器
主機發(fā)送:01 06 00 01 00 30 D8 1E
從機回復:01 06 00 01 00 30 D8 1E(低報修改為0x30,即是48)
2、 修改高報寄存器
主機發(fā)送:01 06 00 02 00 64 29 E1
從機回復:01 06 00 02 00 64 29 E1(高報修改為0x64,即是100)
3、 修改地址寄存器
主機發(fā)送:01 06 00 0C 00 02 C8 08
從機回復:01 06 00 0C 00 02 C8 08(地址修改為2)
備注:在執(zhí)行完修改地址寄存器指令后再執(zhí)行下一條指令時,需把地址字節(jié)更換為新的地址,否則不能正常通信,CRC16校驗碼也就需要重新計算了。
4、 設備調零
主機發(fā)送:01 06 00 19 00 00 58 0D
從機回復:01 06 00 19 00 00 58 0D(在干凈大氣中進行調零)
5、 設備標定
主機發(fā)送:01 06 00 19 08 29 9E 13(標定為2089,與小數點無關)
從機回復:01 06 00 19 08 29 9E 13
6、 修改回差
主機發(fā)送: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(微信同號)