當前位置:江蘇三普儀表有限公司>>技術文章>>MBmag電磁流量計網絡通訊協議
*部分 電磁流量計網絡通訊協議
(MBmagCP V4.2)
通訊協議針對電磁流量計工業應用設計,版本:MBmagCP V4.2,該版本主要用于實時數據采集、流量測量及流量累計控制。
一、主機系統通訊部件要求
標準RS-485通訊接口部件,不小于10 Bytes 的通信緩沖區(FIFO),支持600、1200、2400、4800、9600、14400通訊波特率,支持半雙工通訊模式。通訊程序應允許FIFO,從機要求主機FIFO不小于10Bytes。
二、協議結構
MBmagCP V4.2協議遵從基本開放系統互連(OSI)參考模型,基本開放系統互連參照模型提供通訊系統基本結構和要素,但MBmagCP V4.2協議使用簡化的OSI參照模型,僅采用1、2和7層。
基本開放系統互連參考模型
層號 | 層名 | 功能 | MBmagCP V4.2 |
7 | 應用層 | | MBmagCP 命令 |
6 | 表示層 | | |
5 | 會話層 | | |
4 | 傳輸層 | | |
3 | 網絡層 | | |
2 | 鏈路層 | 數據鏈路連接 | MBmagCP Link |
1 | 物理層 | 設備連接 | RS-485 |
三、MBmagCP V4.2物理結構
MBmag 電磁流量計的網絡通訊接口為半雙工方式,標準通訊速率大于250khz,通訊方向轉換時間3.5uS。通訊接口電氣標準遵從RS232/RS485標準。
MBmagCP V4.2協議可用于星型式網絡結構和總線式網絡結構。標準通訊連接介質為屏蔽雙絞線。
四、MBmagCP V4.2主機信息結構
MBmagCP V4.2協議為主從掃描式通訊協議,每次通訊過程均由主機發起,然后從機進行響應,回傳規定的信息,完成一次通訊過程。
主機至從機信息結構
起始碼(0x2A) | 地址碼 | 功能碼 | 結束碼(0x2E) |
主機發送至從機的信息由四字節組成,*字節是起始碼(0x2A),第二字節為從機地址,其編碼:0---127(zui高二進制位另有定義),第三字節為數據分類命令(下表定義),第四字節是結束碼(0x2E)。從機通訊緩沖區(FIFO)為一字節,因此,主機發送至從機的四個字節必須留時間間隔。
主機應使用10位串行數據格式,并且不使用奇偶校驗。
數據分類命令(十六進制)
命令編碼 | 命令定義 | 命令編碼 | 命令定義 |
00 | 瞬時流量 | 05 | 反向總量 |
01 | 瞬時流速 | 06 | 報警狀態 |
02 | 流量百分比 | 07 | 管道直徑 |
03 | 流體電阻值 | | |
04 | 正向總量 | | |
| | | |
數據分類命令指示從機回送的數據類型,數據分類命令編碼:0---127,MBmagCP V4.2 僅使用0—7和14號編碼,其他編碼暫時保留。
五、 MBmagCP V4.2從機信息結構
從機接受到主機命令信息后,按命令要求回傳測量數據。
從機響應信息數據結構
從機地址 | 命令 | D0 | D1 | D2 | D3 | D4 | D5 | 校驗和 | 結束標志 |
從機響應主機命令,回送10個字節數據,分為命令段、數據段、校驗和、結束標志四部分。
1、 命令段
命令段由兩字節組成:從機地址和數據分類命令,該段是將主機發來的信息直接返回,用于主機校驗從機對主機傳送信息中地址和命令響應的正確性。
2、 數據段
由于流量計各測量數據長度、單位、符號等信息各不相同,因此,從機回傳的數據段按各命令具體定義。
3、 校驗和
校驗和 = D0 xor D1 xor D2 xor D3 xor D4 xor D5;
xor --- 邏輯異或。
4、結束標志
結束標志 = 0AAH; (十進制170)
0)流量定義
數據段的D2、D1、D0三個字節組成十位流量計測量數據,每字節表示兩位十進制數的壓縮BCD碼格式。D2、D1、D0需要先規格化為十進制格式,具體算法如下:
D0 = ( D0 >> 4) *10 + (D0 & 0x0F)
D1 = ( D1 >> 4) *10 + (D1 & 0x0F)
D2 = ( D2 >> 4) *10 + (D2 & 0x0F)
流量值 = 10000 * D2 + 100 * D1 + D0;
其中 符號 >> 為C語言中的邏輯右移操作。
D3字節:流量值的指數(10的冪)
冪值 = D3 – 5, 冪值范圍: -5 – +5
D4字節:流量單位
D4 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
單位 | m3/s | m3/min | m3/h | m3/d | L/s | L/min | L/h | L/d |
D4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
單位 | t/s | t/min | t/h | t/d | kg/s | kg/min | kg/h | kg/d |
D5字節:流體流動方向:
位 | B6…….B1 | B0 |
定義 | 保留 | 0---正向; 1---反向 |
1) 流速定義
D2、D1、D0需要先規格化為十進制格式,具體如下:
D0 = ( D0 >> 4) *10 + (D0 & 0x0F)
D1 = ( D1 >> 4) *10 + (D1 & 0x0F)
D2 = ( D2 >> 4) *10 + (D2 & 0x0F)
其中 符號 >> 為C語言中的邏輯右移操作。
流速值 = 10000 * D2 + 100 * D1 + D0;
值范圍 = 00.000 ~ 99.999
流速單位:固定為 m/s
D3字節:小信號切除標志;0 --- 允許; 1 --- 禁止。
D4字節:流量值顯示精度(保留小數點后位數)(固定值3)
D5字節:流動方向;0 --- 正向、1 --- 反向;
2) 流量百分比定義
D1、D0需要先規格化為十進制格式,具體如下:
D0 = ( D0 >> 4) *10 + (D0 & 0x0F)
D1 = ( D1 >> 4) *10 + (D1 & 0x0F)
其中 符號 >> 為C語言中的邏輯右移操作。
百分比 = 100 * D1 + D0;
值范圍 = 000.0 ~ 999.9 %
D2字節:量程比
0 - 1:1
1 - 1:2
2 - 1:4
3 - 1:8
D3字節:上限報警允許
0 - 允許
1 - 禁止
D4字節:下限報警允許
0 - 允許
1 - 禁止
D5字節:流動方向;0 --- 正向、1 --- 反向;
3) 流體電阻
D1、D0需要先規格化為十進制格式,具體如下:
D0 = ( D0 >> 4) *10 + (D0 & 0x0F)
D1 = ( D1 >> 4) *10 + (D1 & 0x0F)
其中 符號 >> 為C語言中的邏輯右移操作。
電阻 = 100 * D1 + D0;
值范圍 = 0000 ~ 999.9 KW
D2字節:保留
D3字節:保留
D4字節:空管報警允許
0 - 允許
1 - 禁止
D5字節:流動方向;0 --- 正向、1 --- 反向;
4)正向總量定義
D4、D3、D2、D1、D0需要先將壓縮BCD碼規格化為十進制格式,具體如下:
D4 = ( D4 >> 4) *10 + (D4 & 0x0F)
D3 = ( D3 >> 4) *10 + (D3 & 0x0F)
D2 = ( D2 >> 4) *10 + (D2 & 0x0F)
D1 = ( D1 >> 4) *10 + (D1 & 0x0F)
D0 = ( D0 >> 4) *10 + (D0 & 0x0F)
其中 符號 >> 為C語言中的邏輯右移操作。
總量 = 100000000 * D4 + 1000000 * D3 + 10000 * D2 + 100 * D1 + D0;
D5字節:
D5 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
單位 | 0.001L | 0.01L | 0.1L | 1L | 0.001m3 | 0.01m3 | 0.1m3 | 1m3 |
D5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
單位 | 0.001kg | 0.01kg | 0.1kg | 1kg | 0.001t | 0.01t | 0.1t | 1t |
5)反向總量定義
D4、D3、D2、D1、D0需要先將壓縮BCD碼規格化為十進制格式,具體如下:
D4 = ( D4 >> 4) *10 + (D4 & 0x0F)
D3 = ( D3 >> 4) *10 + (D3 & 0x0F)
D2 = ( D2 >> 4) *10 + (D2 & 0x0F)
D1 = ( D1 >> 4) *10 + (D1 & 0x0F)
D0 = ( D0 >> 4) *10 + (D0 & 0x0F)
其中 符號 >> 為C語言中的邏輯右移操作。
總量 = 100000000 * D4 + 1000000 * D3 + 10000 * D2 + 100 * D1 + D0;
D5字節:
D5 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||||||||
單位 | 0.001L | 0.01L | 0.1L | 1L | 0.001m3 | 0.01m3 | 0.1m3 | 1m3 | ||||||||
D5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ||||||||
單位 | 0.001kg | 0.01kg | 0.1kg | 1kg | 0.001t | 0.01t | 0.1t | 1t |
6) 報警狀態定義
D0字節:
位定義:Bx = 0 無警狀態;Bx = 1 報警狀態;
ALAM位 | B0 | B1 | B2 | B3 | B4 |
報警定義 | 保留 | 勵磁報警 | 電極報警 | 空管報警 | 上限報警 |
ALAM位 | B5 | B6 | B7 | B8 | B9 |
報警定義 | 下限報警 | 保留 | 保留 | 保留 | 保留 |
7)電磁流量計管徑定義
D0字節定義管徑 (單位mm)
D0數值 | 代表管徑 | D0數值 | 代表管徑 | D0數值 | 代表管徑 |
00 | 3 | 15 | 200 | 30 | 1400 |
01 | 6 | 16 | 250 | 31 | 1600 |
02 | 8 | 17 | 300 | 32 | 1800 |
03 | 10 | 18 | 350 | 33 | 2000 |
04 | 15 | 19 | 400 | 34 | 2200 |
05 | 20 | 20 | 450 | 35 | 2400 |
06 | 25 | 21 | 500 | 36 | 2600 |
07 | 32 | 22 | 600 | 37 | 2800 |
08 | 40 | 23 | 700 | 38 | 3000 |
09 | 50 | 24 | 800 | | |
10 | 65 | 25 | 900 | | |
11 | 80 | 26 | 1000 | | |
12 | 100 | 27 | 1100 | | |
13 | 125 | 28 | 1200 | | |
14 | 150 | 29 | 1300 | | |
六、 MBmagCP V4.2通訊過程時序
通訊過程時序指編制通訊軟件時應遵從的時間間隔、延時、等待時間等。
1. 主機發送時序
主機發送的兩個信息字節間的時間間隔zui小為0,zui大時間間隔為20毫秒,大于20毫秒,從機認為發送超時。
2. 從機回傳時序
從機zui小回傳響應時間為1毫秒,zui大為10毫秒 + 11位傳送時間。
從機每個回傳字節時間間隔zui大為10毫秒 + 11位傳送時間。
(11位傳送時間根據選用波特率計算出)
3. 從機允許的通訊頻度
從機允許的通訊頻度為10次/每秒,大于該值,可能影響從機其他功能。
七、 MBmagCP V4.2通訊波特率
MBmagCP V4.2支持的通訊波特率為:600、1200、2400、4800、9600、14400。
八、 MBmagCP V4.2通訊數據塊偵錯信息
1. 從機地址和數據分類命令回傳,主機可用于校對從機是否正確響應;
2. 從機回傳字節異或和校驗,主機可用于校對是否有數據位錯誤;
3. 從機回傳字節中B7 = 0為數據字節,B7 = 1為命令字節;
4. 從機回傳字節中的數據字節值不大于153(十六進制數99);
5. 從機回傳字節數長度固定,共十字節長度,主機可做長度檢驗;
6. 從機回傳結束標志,主機可用于長度檢驗和數據字節定位。
請輸入賬號
請輸入密碼
請輸驗證碼
以上信息由企業自行提供,信息內容的真實性、準確性和合法性由相關企業負責,儀表網對此不承擔任何保證責任。
溫馨提示:為規避購買風險,建議您在購買產品前務必確認供應商資質及產品質量。