-
新鄉(xiāng)市天科測控儀表有限公司
全國統(tǒng)一服務熱線: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ù)格式說明
1、1通訊模式
本儀表采用MODBUSRTU格式。
協(xié)議用于主從查詢模式,進行數(shù)據(jù)通訊。通訊流程如下圖。
在RTU模式下,數(shù)據(jù)格式說明如下。
數(shù)據(jù)格式為n,8,1(1個起始位、8個數(shù)據(jù)位、無校驗、1個停止位)
波特率可選五種,1200、2400、4800、9600、19200
1、3地址
協(xié)議中規(guī)定儀表的地址為“01-99”,“0”地址用于廣播,本協(xié)議不支持廣播,其余地址保留。
2.命令說明
2.1本儀表使用了MODBUS協(xié)議中3條指令:
命令03(HEX) | 讀單個或多個寄存器 |
|
命令06(HEX) | 寫單個寄存器 | 此命令包含在“命令10”中 |
命令10(HEX) | 寫多個寄存器 | 此命令包含“命令6” |
2.2數(shù)據(jù)格式
協(xié)議中的數(shù)據(jù)包括:16進制數(shù)、整數(shù)、BCD碼、浮點數(shù)
寄存器地址下列表中的屬性指數(shù)據(jù)的讀寫屬性,R-只讀;W-寫;R/W-既可讀,也可寫入。
? 單精度浮點數(shù)SINGLE格式為IEEE754,數(shù)據(jù)由低到高。
32位浮點數(shù)共計32位,折合4字節(jié)。
由高到低位分別是第31、30、29、……、0位。
31 | 30-23 | 22-0 |
S | 階碼 | 尾數(shù) |
31位是符號位(S),1表示該數(shù)為負,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:(內部應用)6字節(jié)BCD編碼,表示固定小數(shù)點的數(shù)據(jù),數(shù)據(jù)低→高,如12345.678表示為6字節(jié)
0 | 0 | 0 | 0 | 1 | 2 | 3 | 4 | 5· | 6 | 7 | 8 |
地址低 |
| 地址高 |
小數(shù)點默認為第9位數(shù)的后面。
? 無符號整數(shù)Uint為0-65536。
各指令的格式及示例見下面的說明。
命令3格式如下(讀寄存器命令):
MODBUS請求
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03 |
起始地址 | 2 BYTE | 0-FFFF |
讀取數(shù)量 | 2 BYTE | 1-7D |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 響應
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10) |
字節(jié)計數(shù) | 1 BYTE | N |
輸入狀態(tài) | N*2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
錯誤 響應
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10)+ 80 |
錯誤代碼 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
舉例
請求 | 響應 | ||
域名稱 | 數(shù)據(jù)(hex) | 域名稱 | 數(shù)據(jù)(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 03 | 功能碼 | 03 |
起始地址高(字節(jié)) | 00 | 字節(jié)計數(shù) | 06 |
起始地址低(字節(jié)) | 6B | 寄存器高(108) | 02 |
讀取數(shù)量高(字節(jié)) | 00 | 寄存器低(108) | 2B |
讀取數(shù)量低(字節(jié)) | 03 | 寄存器高(109) | 00 |
| 寄存器低(109) | 00 | |
寄存器高(110) | 00 | ||
寄存器低(110) | 64 | ||
CRC校驗 | 校驗碼 | CRC校驗 | 校驗碼 |
命令6格式如下(寫單個字節(jié)):
MODBUS 請求
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 10 |
寄存器地址 | 2 BYTE | 0-XFFFF |
寄存器內容 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 響應
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10) |
寄存器地址 | 2 BYTE | 0-FFFF |
寄存器內容 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
錯誤 響應
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10)+ 80 |
錯誤代碼 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
舉例
請求 | 響應 | ||
域名稱 | 數(shù)據(jù)(hex) | 域名稱 | 數(shù)據(jù)(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 06 | 功能碼 | 06 |
寄存器地址高 | 00 | 起始地址高(字節(jié)) | 00 |
寄存器地址低 | 6B | 起始地址低(字節(jié)) | 6B |
高位寄存器值 | 00 | 高位寄存器值 | 00 |
低位寄存器值 | 低位寄存器值 | ||
CRC校驗 | 校驗碼 | CRC校驗 | 校驗碼 |
命令10格式如下(寫多個字節(jié)):
MODBUS 請求
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 10 |
寄存器起始地址 | 2 BYTE | 0-FFFF |
寄存器數(shù)量 | 2 BYTE | 1-7D |
字節(jié)計數(shù) | 1 BYTE | N |
設置內容 | N*2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 響應
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10) |
寄存器起始地址 | 1 BYTE | 0-FFFF |
寄存器數(shù)量 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
錯誤 響應
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10)+ 80 |
錯誤代碼 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
舉例
請求 | 響應 | ||
域名稱 | 數(shù)據(jù)(hex) | 域名稱 | 數(shù)據(jù)(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 10 | 功能碼 | 10 |
起始地址高 | 00 | 起始地址高(字節(jié)) | 00 |
起始地址低 | 6B | 起始地址低(字節(jié)) | 6B |
設置數(shù)量高 | 00 | 設置數(shù)量高(字節(jié)) | 00 |
設置數(shù)量低 | 02 | 設置數(shù)量低(字節(jié)) | 02 |
字節(jié)數(shù) | 4 |
|
|
設置寄存器高 | 00 |
|
|
設置寄存器低 |
|
| |
設置寄存器高 | 06 |
|
|
設置寄存器低 | 08 |
|
|
CRC校驗 | 校驗碼 | CRC校驗 | 校驗碼 |
3.數(shù)據(jù)項定義
記錄信息表
屬性 | 地址 (hex/word) | 寄存器長度(word) | 數(shù)據(jù)類型 | 描述 | 說明 | 備注 (舉例) |
采集數(shù)據(jù)信息 | ||||||
R | 0001 | 2 | SINGLE | M3/h | 瞬時流量 |
|
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點 | 備用 |
R/W | 0014 | 2 | SINGLE | K1 | 系數(shù)補償1點 | 備用 |
R/W | 0016 | 2 | SINGLE | F2 | 頻率2點 | 備用 |
R/W | 0018 | 2 | SINGLE | 系數(shù)補償2點 | 備用 | |
R/W | 2 | SINGLE | F3 | 頻率3點 | 備用 | |
R/W | 2 | SINGLE | K3 | 系數(shù)補償3點 | 備用 | |
R/W | 001E | 2 | SINGLE | F4 | 頻率4點 | 備用 |
R/W | 0020 | 2 | SINGLE | K4 | 系數(shù)補償4點 | 備用 |
R/W | 0022 | 2 | SINGLE | F5 | 頻率5點 | 備用 |
R/W | 0024 | 2 | SINGLE | K5 | 系數(shù)補償5點 | 備用 |
R/W | 0026 | 1 | UINT | T | 阻尼時間 | 備用 |
R/W | 0027 | 1 | UINT | FH | 頻率上限 | 備用 |
| ||||||
輸出信息(備用) | ||||||
R/W | 0030 | 1 | Uint | POUT | 脈沖輸出選擇 | 1:L/PULSE 2: 3: |
R/W | 0031 | 2 | SINGLE | ZERO | 4mA電流調整 | 零點流量M3/h |
R/W | 0033 | 2 | SINGLE | FULL | 20mA電流調整 | 滿度流量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 | 儀表序列號 | 20100617 |
R/W | 0052 | 1 | BCD-1 | TIME | 儀表出廠日期 | 20100617 |
R/W | 0054 | 1 | BCD-1 | VER | 版本號 | 10 |
4. 版本
版本號 | 日期 | 描述 | 作者 |
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停止位
讀瞬時流量、累積流量
1.主機命令格式
0 | 1 | 2 |
指令包包頭 | 設備地址高位(ASCII) | 設備地址低位(ASCII) |
5a | 30~39 | 30~39 |
2.設備回應格式
0 | 1 | 2 | 3~9 | 10~20 | 21 | 22 | 23 |
返回包包頭 | 設備地址高位(ASCII) | 設備地址低位(ASCII) | 瞬時流量(ASCII) | 累積流量(ASCII) | 累加和高位 | 累加和低位 | 結束符 |
3d | 30~39 | 30~39 | xxxxxxx | xxxxxxxxxxx | xx | xx | ff |
注:流量計返回數(shù)據(jù)格式定義:
瞬時流量: xxxxxxx 7字節(jié)
累積流量: xxxxxxxxxxx 11字節(jié)
讀流量數(shù)據(jù)舉例(以下數(shù)據(jù)均為十六進制):
指令包: 5a 包頭
32 34 流量計485地址
返回包: 3d 包頭
32 34 流量計485地址
31 32 33 2e 34 35 36 瞬時流量=123.456 m3/h
20 20 20 20 20 31 32 33 34 2e 35 累積流量=1234.5 m3
03 d3 累加和高位、累加和低位
ff 結束符