-
新鄉(xiāng)市天科測(cè)控儀表有限公司
全國(guó)統(tǒng)一服務(wù)熱線:18637357823
電 話:0373-2695792
0373-2695798
0373-2695799
傳 真:0373-2695791
郵 箱:xxtkyb@126.com
地 址:河南省新鄉(xiāng)牧野區(qū)北環(huán)路西段小里工業(yè)區(qū)
氣體渦輪LWQ-D2頭 MODBUS-RTU協(xié)議
MODBUS-RTU協(xié)議
1.數(shù)據(jù)格式說(shuō)明
1、1通訊模式
本儀表采用MODBUSRTU格式。
協(xié)議用于主從查詢模式,進(jìn)行數(shù)據(jù)通訊。通訊流程如下圖。
在RTU模式下,數(shù)據(jù)格式說(shuō)明如下。
數(shù)據(jù)格式為n,8,1(1個(gè)起始位、8個(gè)數(shù)據(jù)位、無(wú)校驗(yàn)、1個(gè)停止位)
波特率可選五種,1200、2400、4800、9600、19200
1、3地址
協(xié)議中規(guī)定儀表的地址為“01-99”,“0”地址用于廣播,本協(xié)議不支持廣播,其余地址保留。
2.命令說(shuō)明
2.1本儀表使用了MODBUS協(xié)議中3條指令:
命令03(HEX) | 讀單個(gè)或多個(gè)寄存器 |
|
命令06(HEX) | 寫單個(gè)寄存器 | 此命令包含在“命令10”中 |
命令10(HEX) | 寫多個(gè)寄存器 | 此命令包含“命令6” |
2.2數(shù)據(jù)格式
協(xié)議中的數(shù)據(jù)包括:16進(jìn)制數(shù)、整數(shù)、BCD碼、浮點(diǎn)數(shù)
寄存器地址下列表中的屬性指數(shù)據(jù)的讀寫屬性,R-只讀;W-寫;R/W-既可讀,也可寫入。
? 單精度浮點(diǎn)數(shù)SINGLE格式為IEEE754,數(shù)據(jù)由低到高。
32位浮點(diǎn)數(shù)共計(jì)32位,折合4字節(jié)。
由高到低位分別是第31、30、29、……、0位。
31 | 30-23 | 22-0 |
S | 階碼 | 尾數(shù) |
31位是符號(hào)位(S),1表示該數(shù)為負(fù),0反之;
30-23位,一共8位是階碼;
22-0位,一共23位是尾數(shù)。
? BCD碼格式有兩種:
格式1:4字節(jié)BCD編碼,數(shù)據(jù)低→高,如數(shù)據(jù)20100617,表示為4字節(jié)
2 | 0 | 1 | 0 | 0 | 6 | 1 | 7 |
地址低 |
| 地址高 |
格式2:(內(nèi)部應(yīng)用)6字節(jié)BCD編碼,表示固定小數(shù)點(diǎn)的數(shù)據(jù),數(shù)據(jù)低→高,如12345.678表示為6字節(jié)
0 | 0 | 0 | 0 | 1 | 2 | 3 | 4 | 5· | 6 | 7 | 8 |
地址低 |
| 地址高 |
小數(shù)點(diǎn)默認(rèn)為第9位數(shù)的后面。
? 無(wú)符號(hào)整數(shù)Uint為0-65536。
各指令的格式及示例見下面的說(shuō)明。
命令3格式如下(讀寄存器命令):
MODBUS請(qǐng)求
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03 |
起始地址 | 2 BYTE | 0-FFFF |
讀取數(shù)量 | 2 BYTE | 1-7D |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 響應(yīng)
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10) |
字節(jié)計(jì)數(shù) | 1 BYTE | N |
輸入狀態(tài) | N*2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
錯(cuò)誤 響應(yīng)
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10)+ 80 |
錯(cuò)誤代碼 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
舉例
請(qǐng)求 | 響應(yīng) | ||
域名稱 | 數(shù)據(jù)(hex) | 域名稱 | 數(shù)據(jù)(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 03 | 功能碼 | 03 |
起始地址高(字節(jié)) | 00 | 字節(jié)計(jì)數(shù) | 06 |
起始地址低(字節(jié)) | 6B | 寄存器高(108) | 02 |
讀取數(shù)量高(字節(jié)) | 00 | 寄存器低(108) | 2B |
讀取數(shù)量低(字節(jié)) | 03 | 寄存器高(109) | 00 |
| 寄存器低(109) | 00 | |
寄存器高(110) | 00 | ||
寄存器低(110) | 64 | ||
CRC校驗(yàn) | 校驗(yàn)碼 | CRC校驗(yàn) | 校驗(yàn)碼 |
命令6格式如下(寫單個(gè)字節(jié)):
MODBUS 請(qǐng)求
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 10 |
寄存器地址 | 2 BYTE | 0-XFFFF |
寄存器內(nèi)容 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 響應(yīng)
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10) |
寄存器地址 | 2 BYTE | 0-FFFF |
寄存器內(nèi)容 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
錯(cuò)誤 響應(yīng)
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10)+ 80 |
錯(cuò)誤代碼 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
舉例
請(qǐng)求 | 響應(yīng) | ||
域名稱 | 數(shù)據(jù)(hex) | 域名稱 | 數(shù)據(jù)(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 06 | 功能碼 | 06 |
寄存器地址高 | 00 | 起始地址高(字節(jié)) | 00 |
寄存器地址低 | 6B | 起始地址低(字節(jié)) | 6B |
高位寄存器值 | 00 | 高位寄存器值 | 00 |
低位寄存器值 | 低位寄存器值 | ||
CRC校驗(yàn) | 校驗(yàn)碼 | CRC校驗(yàn) | 校驗(yàn)碼 |
命令10格式如下(寫多個(gè)字節(jié)):
MODBUS 請(qǐng)求
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 10 |
寄存器起始地址 | 2 BYTE | 0-FFFF |
寄存器數(shù)量 | 2 BYTE | 1-7D |
字節(jié)計(jì)數(shù) | 1 BYTE | N |
設(shè)置內(nèi)容 | N*2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 響應(yīng)
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10) |
寄存器起始地址 | 1 BYTE | 0-FFFF |
寄存器數(shù)量 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
錯(cuò)誤 響應(yīng)
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10)+ 80 |
錯(cuò)誤代碼 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
舉例
請(qǐng)求 | 響應(yīng) | ||
域名稱 | 數(shù)據(jù)(hex) | 域名稱 | 數(shù)據(jù)(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 10 | 功能碼 | 10 |
起始地址高 | 00 | 起始地址高(字節(jié)) | 00 |
起始地址低 | 6B | 起始地址低(字節(jié)) | 6B |
設(shè)置數(shù)量高 | 00 | 設(shè)置數(shù)量高(字節(jié)) | 00 |
設(shè)置數(shù)量低 | 02 | 設(shè)置數(shù)量低(字節(jié)) | 02 |
字節(jié)數(shù) | 4 |
|
|
設(shè)置寄存器高 | 00 |
|
|
設(shè)置寄存器低 |
|
| |
設(shè)置寄存器高 | 06 |
|
|
設(shè)置寄存器低 | 08 |
|
|
CRC校驗(yàn) | 校驗(yàn)碼 | CRC校驗(yàn) | 校驗(yàn)碼 |
3.數(shù)據(jù)項(xiàng)定義
記錄信息表
屬性 | 地址 (hex/word) | 寄存器長(zhǎng)度(word) | 數(shù)據(jù)類型 | 描述 | 說(shuō)明 | 備注 (舉例) |
采集數(shù)據(jù)信息 | ||||||
R | 0001 | 2 | SINGLE | M3/h | 瞬時(shí)流量 |
|
R | 0003 | 2 | SINGLE | M3/h | 累積流量 |
|
R | 0005 | 2 | SINGLE | V | CPU電壓 |
|
流量信息 | ||||||
R/W | 0007 | 2 | SINGLE | M3/h | 滿量程 | 備用 |
R/W | 0009 | 2 | SINGLE | M3/h | 小流量切除 | 備用 |
修正信息 | ||||||
R/W | 0010 | 2 | SINGLE | K | 儀表平均系數(shù) | 備用 |
R/W | 0012 | 2 | SINGLE | F1 | 頻率1點(diǎn) | 備用 |
R/W | 0014 | 2 | SINGLE | K1 | 系數(shù)補(bǔ)償1點(diǎn) | 備用 |
R/W | 0016 | 2 | SINGLE | F2 | 頻率2點(diǎn) | 備用 |
R/W | 0018 | 2 | SINGLE | 系數(shù)補(bǔ)償2點(diǎn) | 備用 | |
R/W | 2 | SINGLE | F3 | 頻率3點(diǎn) | 備用 | |
R/W | 2 | SINGLE | K3 | 系數(shù)補(bǔ)償3點(diǎn) | 備用 | |
R/W | 001E | 2 | SINGLE | F4 | 頻率4點(diǎn) | 備用 |
R/W | 0020 | 2 | SINGLE | K4 | 系數(shù)補(bǔ)償4點(diǎn) | 備用 |
R/W | 0022 | 2 | SINGLE | F5 | 頻率5點(diǎn) | 備用 |
R/W | 0024 | 2 | SINGLE | K5 | 系數(shù)補(bǔ)償5點(diǎn) | 備用 |
R/W | 0026 | 1 | UINT | T | 阻尼時(shí)間 | 備用 |
R/W | 0027 | 1 | UINT | FH | 頻率上限 | 備用 |
| ||||||
輸出信息(備用) | ||||||
R/W | 0030 | 1 | Uint | POUT | 脈沖輸出選擇 | 1:L/PULSE 2: 3: |
R/W | 0031 | 2 | SINGLE | ZERO | 4mA電流調(diào)整 | 零點(diǎn)流量M3/h |
R/W | 0033 | 2 | SINGLE | FULL | 20mA電流調(diào)整 | 滿度流量M3/h |
通訊信息(備用) | ||||||
R/W | 0040 | 1 | Uint | BAUD | 波特率 | 1:1200 2:2400 3:4800 4:9600 5:19200 |
R/W | 0041 | 1 | Uint | ADR | 通信地址 | 01-99 |
輔助信息(備用) | ||||||
R/W | 0050 | 1 | BCD-1 | SERNO | 儀表序列號(hào) | 20100617 |
R/W | 0052 | 1 | BCD-1 | TIME | 儀表出廠日期 | 20100617 |
R/W | 0054 | 1 | BCD-1 | VER | 版本號(hào) | 10 |
4. 版本
版本號(hào) | 日期 | 描述 | 作者 |
V1.0 | 創(chuàng)建 |
|
5.參考
Modicon-ModbusProtocolReferenceGuide(PI-MBUS-300);REVJ;June,1996
6.自定義RS485通訊協(xié)議
通訊線路:采用RS485數(shù)據(jù)通訊線路,半雙工通訊
通訊協(xié)議:(120024004800960019200),NONE/0DD/EVEN,8位數(shù)據(jù),1停止位
讀瞬時(shí)流量、累積流量
1.主機(jī)命令格式
0 | 1 | 2 |
指令包包頭 | 設(shè)備地址高位(ASCII) | 設(shè)備地址低位(ASCII) |
5a | 30~39 | 30~39 |
2.設(shè)備回應(yīng)格式
0 | 1 | 2 | 3~9 | 10~20 | 21 | 22 | 23 |
返回包包頭 | 設(shè)備地址高位(ASCII) | 設(shè)備地址低位(ASCII) | 瞬時(shí)流量(ASCII) | 累積流量(ASCII) | 累加和高位 | 累加和低位 | 結(jié)束符 |
3d | 30~39 | 30~39 | xxxxxxx | xxxxxxxxxxx | xx | xx | ff |
注:流量計(jì)返回?cái)?shù)據(jù)格式定義:
瞬時(shí)流量: xxxxxxx 7字節(jié)
累積流量: xxxxxxxxxxx 11字節(jié)
讀流量數(shù)據(jù)舉例(以下數(shù)據(jù)均為十六進(jìn)制):
指令包: 5a 包頭
32 34 流量計(jì)485地址
返回包: 3d 包頭
32 34 流量計(jì)485地址
31 32 33 2e 34 35 36 瞬時(shí)流量=123.456 m3/h
20 20 20 20 20 31 32 33 34 2e 35 累積流量=1234.5 m3
03 d3 累加和高位、累加和低位
ff 結(jié)束符