-
新鄉市天科測控儀表有限公司
全國統一服務熱線:18637357823
電 話:0373-2695792
0373-2695798
0373-2695799
傳 真:0373-2695791
郵 箱:xxtkyb@126.com
地 址:河南省新鄉牧野區北環路西段小里工業區
液體渦輪流量計M型協議
1. 數據格式說明
1、1通訊模式
本儀表采用MODBUS RTU格式。
協議用于主從查詢模式,進行數據通訊。通訊流程如下圖。
在RTU模式下,數據格式說明如下。
1、2數據格式
數據格式為n,8,1(1個起始位、8個數據位、無校驗、1個停止位)
波特率可選五種,1200、2400、4800、9600、19200
其中:T1、T2、T3、T4為每幀之間的時間間隔,兩幀之間的傳輸必須大于間隔時間。
1、3地址
協議中規定儀表的地址為“01-99”,“0”地址用于廣播,本協議不支持廣播,其余地址保留。
2. 命令說明
2.1 本儀表使用了MODBUS協議中3條指令:
命令03(HEX) | 讀單個或多個寄存器 |
|
命令06(HEX) | 寫單個寄存器 | 此命令包含在“命令10”中 |
命令10(HEX) | 寫多個寄存器 | 此命令包含“命令6” |
2.2 數據格式
協議中的數據包括:16進制數、整數、BCD碼、浮點數
寄存器地址下列表中的屬性指數據的讀寫屬性,R-只讀;W-寫;R/W-既可讀,也可寫入。
l 單精度浮點數SINGLE格式為IEEE754,數據由低到高。
32位浮點數共計32位,折合4字節。
由高到低位分別是第31、30、29、……、0位 。
31 | 30-23 | 22-0 |
S | 階碼 | 尾數 |
31位是符號位(S),1表示該數為負,0反之;
30-23位,一共8位是階碼;
22-0位,一共23位是尾數。
l BCD碼格式有兩種:
格式1:4字節BCD編碼,數據低→高,如數據20100617,表示為4字節
2 | 0 | 1 | 0 | 0 | 6 | 1 | 7 |
地址低 |
| 地址高 |
格式2: (內部應用)6字節BCD編碼,表示固定小數點的數據,數據低→高,如12345.678表示為6字節
0 | 0 | 0 | 0 | 1 | 2 | 3 | 4 | 5· | 6 | 7 | 8 |
地址低 |
| 地址高 |
小數點默認為第9位數的后面。
l 無符號整數Uint為0-65536。
各指令的格式及示例見下面的說明。
命令3格式如下(讀寄存器命令):
MODBUS 請求
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03 |
起始地址 | 2 BYTE | 0-FFFF |
讀取數量 | 2 BYTE | 1-7D |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 響應
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 03(06、10) |
字節計數 | 1 BYTE | N |
輸入狀態 | 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 |
|
舉例
請求 | 響應 | ||
域名稱 | 數據(hex) | 域名稱 | 數據(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 03 | 功能碼 | 03 |
起始地址高(字節) | 00 | 字節計數 | 06 |
起始地址低(字節) | 6B | 寄存器高(108) | 02 |
讀取數量高(字節) | 00 | 寄存器低(108) | 2B |
讀取數量低(字節) | 03 | 寄存器高(109) | 00 |
| 寄存器低(109) | 00 | |
寄存器高(110) | 00 | ||
寄存器低(110) | 64 | ||
CRC校驗 | 校驗碼 | CRC校驗 | 校驗碼 |
命令6格式如下(寫單個字節):
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 |
|
舉例
請求 | 響應 | ||
域名稱 | 數據(hex) | 域名稱 | 數據(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 06 | 功能碼 | 06 |
寄存器地址高 | 00 | 起始地址高(字節) | 00 |
寄存器地址低 | 6B | 起始地址低(字節) | 6B |
高位寄存器值 | 00 | 高位寄存器值 | 00 |
低位寄存器值 | 0F | 低位寄存器值 | 0F |
CRC校驗 | 校驗碼 | CRC校驗 | 校驗碼 |
命令10格式如下(寫多個字節):
MODBUS 請求
儀表地址 | 1 BYTE | 01-99 |
功能碼 | 1 BYTE | 10 |
寄存器起始地址 | 2 BYTE | 0-FFFF |
寄存器數量 | 2 BYTE | 1-7D |
字節計數 | 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 |
寄存器數量 | 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 |
|
舉例
請求 | 響應 | ||
域名稱 | 數據(hex) | 域名稱 | 數據(hex) |
儀表地址碼 | 01 | 儀表地址碼 | 01 |
功能碼 | 10 | 功能碼 | 10 |
起始地址高 | 00 | 起始地址高(字節) | 00 |
起始地址低 | 6B | 起始地址低(字節) | 6B |
設置數量高 | 00 | 設置數量高(字節) | 00 |
設置數量低 | 02 | 設置數量低(字節) | 02 |
字節數 | 4 |
|
|
設置寄存器高 | 00 |
|
|
設置寄存器低 | 0F |
|
|
設置寄存器高 | 06 |
|
|
設置寄存器低 | 08 |
|
|
CRC校驗 | 校驗碼 | CRC校驗 | 校驗碼 |
3. 數據項定義
記錄信息表
屬性 | 地址 (hex/word) | 寄存器長度(word) | 數據類型 | 描述 | 說明 | 備注 (舉例) |
采集數據信息 | ||||||
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 | 儀表平均系數 | 備用 |
R/W | 0012 | 2 | SINGLE | F1 | 頻率1點 | 備用 |
R/W | 0014 | 2 | SINGLE | K1 | 系數補償1點 | 備用 |
R/W | 0016 | 2 |