電池供電電磁流量計Modbus通訊協(xié)議針對HLLDE電磁流量計工業(yè)應(yīng)用設(shè)計,該版本主要用于實時數(shù)據(jù)采集、流量測量、流量累計控制及部分參數(shù)的修改。
一、電池供電電磁流量計Modbus通訊主機系統(tǒng)通訊部件要求
1.國際標準RS-485通訊接口部件或國際標準RS-232通訊接口部件,不小于11 Bytes 的通信緩沖區(qū)(FIFO),支持1200、2400、4800、9600、19200通訊波特率,支持半雙工通訊模式。通訊程序應(yīng)允許FIFO,從機要求主機FIFO不小于11Bytes。
二、電池供電電磁流量計Modbus通訊協(xié)議結(jié)構(gòu)
協(xié)議遵從基本開放系統(tǒng)互連(OSI)參考模型,基本開放系統(tǒng)互連參照模型提供通訊系統(tǒng)基本結(jié)構(gòu)和要素,但協(xié)議使用簡化的OSI參照模型,僅采用1、2和7層。
基本開放系統(tǒng)互連參考模型
層號
|
層名
|
功能
|
Lmag-BV1
|
7
|
應(yīng)用層
|
|
L-magCP 命令
|
6
|
表示層
|
|
|
5
|
會話層
|
|
|
4
|
傳輸層
|
|
|
3
|
網(wǎng)絡(luò)層
|
|
|
2
|
鏈路層
|
數(shù)據(jù)鏈路連接
|
L-mag CP Link
|
1
|
物理層
|
設(shè)備連接
|
RS-485、RS-232
|
三、電池供電電磁流量計Modbus通訊物理結(jié)構(gòu)HLLDE電磁流量計的RS-485通訊接口在物理結(jié)構(gòu)上采用電氣隔離方式,隔離電壓1500伏。通訊數(shù)據(jù)傳輸接口為半雙工方式,標準通訊速率大于250khz,通訊方向轉(zhuǎn)換時間3.5uS。通訊接口電氣標準遵從RS-485國際標準。
可用于星型式網(wǎng)絡(luò)結(jié)構(gòu)和總線式網(wǎng)絡(luò)結(jié)構(gòu)。標準通訊連接介質(zhì)為屏蔽雙絞線。
四、電池供電電磁流量計Modbus協(xié)議RTU消息幀定義
數(shù)據(jù)通訊由主機發(fā)起,主機首先發(fā)送RTU消息幀,消息幀發(fā)送至少要以3.5個字符時間的停頓間隔開始(如下圖的T1-T2-T3-T4所示)。傳輸?shù)牡谝粋€字節(jié)是設(shè)備地址。可以使用的傳輸字符是十六進制的0...9,A...F。所有的從設(shè)備不斷偵測網(wǎng)絡(luò)總線,包括停頓間隔時間內(nèi)。當?shù)谝粋€地址字節(jié)接收到,每個設(shè)備都進行解碼以判斷是否發(fā)往自己的。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定了消息的結(jié)束。一個新的消息可在此停頓后開始。
整個消息幀必須作為一連續(xù)的流轉(zhuǎn)輸。如果在幀完成之前有超過1.5個字符時間的停頓時間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內(nèi)接著前個消息開始,接收的設(shè)備將認為它是前一消息的延續(xù)。這將導致一個錯誤,因為在最后的CRC域的值不可能是正確的。主機消息幀定義如下所示:
起始位
|
設(shè)備地址
|
功能代碼
|
寄存器地址
|
寄存器長度
|
CRC校驗
|
結(jié)束符
|
T1-T2-T3-T4
|
8Bit
|
8Bit
|
16Bit
|
16Bit
|
16Bit
|
T1-T2-T3-T4
|
圖3主機 RTU消息幀
從機消息幀定義如下所示:
起始位
|
設(shè)備地址
|
功能代碼
|
數(shù)據(jù)
|
CRC校驗
|
結(jié)束符
|
T1-T2-T3-T4
|
8Bit
|
8Bit
|
n個8Bit
|
16Bit
|
T1-T2-T3-T4
|
圖4 從機RTU消息幀
五、電池供電電磁流量計Modbus協(xié)議命令編碼定義
Lmag-BV1協(xié)議遵從Modbus協(xié)議,,但Lmag-BV1協(xié)議使用簡化的Modbus協(xié)議,僅采用03、04和06功能碼。
功能碼
|
名稱
|
作用
|
01
|
讀取線圈狀態(tài)
|
保留
|
02
|
讀取輸入狀態(tài)
|
保留
|
03
|
讀取保持寄存器
|
保留
|
04
|
讀取輸入寄存器
|
讀電磁流量計實時信息
|
05
|
強置單線圈
|
保留
|
06
|
預置單寄存器
|
保留
|
07
|
讀取異常狀態(tài)
|
保留
|
08
|
回送診斷校驗
|
保留
|
09
|
編程(只用于484)
|
保留
|
10
|
控詢(只用于484)
|
保留
|
11
|
讀取事件計數(shù)
|
保留
|
12
|
讀取通信事件記錄
|
保留
|
13
|
編程(184/384 484 584)
|
保留
|
14
|
探詢(184/384 484 584)
|
保留
|
15
|
強置多線圈
|
保留
|
16
|
預置多寄存器
|
保留
|
17
|
報告從機標識
|
保留
|
18
|
(884和MICRO 84)
|
保留
|
19
|
重置通信鏈路
|
保留
|
20
|
讀取通用參數(shù)(584L)
|
保留
|
21
|
寫入通用參數(shù)(584L)
|
保留
|
22~64
|
保留作擴展功能備用
|
保留
|
65~72
|
保留以備用戶功能所用
|
保留
|
73~119
|
非法功能
|
保留
|
120~127
|
保留
|
保留
|
128~255
|
保留
|
保留
|
六、電磁流量計寄存器地址定義
(針對PLC組態(tài)軟件的專用寄存器)
PLC Addresses(Base 1)
|
Protocol Addresses
(Base 0)
|
數(shù)據(jù)格式
|
寄存器定義
|
34113
|
0x1010
|
Float Inverse
|
瞬時流量浮點表示
|
34115
|
0x1012
|
Float Inverse
|
瞬時流速浮點表示
|
34117
|
0x1014
|
Float Inverse
|
流量百分比浮點表示(電池供電表保留)
|
34119
|
0x1016
|
Float Inverse
|
流體電導比浮點表示
|
34121
|
0x1018
|
Long Inverse
|
正向累積數(shù)值整數(shù)部分
|
34123
|
0x101A
|
Float Inverse
|
正向累積數(shù)值小數(shù)部分
|
34125
|
0x101C
|
Long Inverse
|
反向累積數(shù)值整數(shù)部分
|
34127
|
0x101E
|
Float Inverse
|
反向累積數(shù)值小數(shù)部分
|
34129
|
0x1020
|
Unsigned short
|
瞬時流量單位
|
34130
|
0x1021
|
Unsigned short
|
累積總量單位
|
34131
|
0x1022
|
Unsigned short
|
上限報警
|
34132
|
0x1023
|
Unsigned short
|
下限報警
|
34133
|
0x1024
|
Unsigned short
|
空管報警
|
34134
|
0x1025
|
Unsigned short
|
系統(tǒng)報警
|
七、電池供電電磁流量計Modbus通訊基礎(chǔ)數(shù)據(jù)解析
1.瞬時流量
1000H寄存器
|
1001H寄存器
|
寄存器高位
|
寄存器低位
|
寄存器高位
|
寄存器低位
|
瞬時流量高位=1000H寄存器高位*256+1000H寄存器地位
瞬時流量低位=1001H寄存器高位*256+1001H寄存器地位
瞬時流量=瞬時流量高位*65536+瞬時流量低位
2.累積數(shù)值
1002H寄存器
|
1003H寄存器
|
寄存器高位
|
寄存器低位
|
寄存器高位
|
寄存器低位
|
主機恢復累積量值十進制數(shù)據(jù)的算法:
正向累積數(shù)值高位=1002H寄存器高位*256+1002H寄存器地位
正向累積數(shù)值低位=1003H寄存器高位*256+1003H寄存器地位
正向累積數(shù)值=正向累積數(shù)值高位*65536+正向累積數(shù)值低位
反向累積數(shù)值與正向的方法相同。
3. 流量和累積量單位
1009H寄存器
|
瞬時流量小數(shù)位及單位
|
累積量小數(shù)位及單位
|
Bit
15
|
Bit
14
|
Bit
13
|
Bit
12
|
Bit
11
|
Bit
10
|
Bit
9
|
Bit
8
|
Bit
7
|
Bit
6
|
Bit
5
|
Bit
4
|
Bit
3
|
Bit
2
|
Bit
1
|
Bit
0
|
瞬時流量小數(shù)位及單位解析如下:
BIT15 為符號位 1負向 0 正向
寄存器高位字節(jié)的Bit14Bit13Bit12是小數(shù)點位置:
Bit14Bit13Bit12= 0 .00000 Bit14Bit13Bit12= 1 0.0000
Bit14Bit13Bit12= 2 00.000 Bit14Bit13Bit12= 3 000.00
Bit14Bit13Bit12= 4 0000.0 Bit14Bit13Bit12= 5 00000.
單位數(shù)點字節(jié)的Bit10Bit9Bit8是流量單位:
Bit10Bit9Bit8= 0 LTR / s Bit10Bit9Bit8= 1 LTR / m
Bit10Bit9Bit8= 2 LTR / h Bit10Bit9Bit8= 3 M3 / s
Bit10Bit9Bit8= 4 M3 / m Bit10Bit9Bit8= 5 M3 /h
累積量小數(shù)位及單位解析如下:
寄存器低位字節(jié)的B6B5B4是小數(shù)點位置:
Bit6Bit5Bit4 = 0 .00000 Bit6Bit5Bit4 = 1 0.0000
Bit6Bit5Bit4 = 2 00.000 Bit6Bit5Bit4 = 3 000.00
Bit6Bit5Bit4 = 4 0000.0 Bit6Bit5Bit4 = 5 00000.
單位數(shù)點字節(jié)的Bit2Bit1Bit0是流量單位:
Bit2Bit1Bit0= 0 LTR Bit2Bit1Bit0= 1 LTR
Bit2Bit1Bit0= 2 LTR Bit2Bit1Bit0= 3 M3
Bit2Bit1Bit0= 4 M3 Bit2Bit1Bit0= 5 M3
4.瞬時流速
瞬時流速=寄存器高位*256+寄存器低位
流速固定顯示為: XX.XXX m / s;
5.流體電導比
流量百分比=寄存器高位*256+寄存器低位
百分比固定顯示為: XXXXX %;
6.電池和報警
100AH寄存器
|
寄存器高位
|
寄存器低位
|
Bit
15
|
Bit
14
|
Bit
13
|
Bit
12
|
Bit
11
|
Bit
10
|
Bit
9
|
Bit
8
|
Bit
7
|
Bit
6
|
Bit
5
|
Bit
4
|
Bit
3
|
Bit
2
|
Bit
1
|
Bit
0
|
寄存器高位為電池電量:0-5
寄存器低位為報警:
BIT0 小信號 BIT1 空管 BIT2 系統(tǒng)(電池供電表)
BIT1 空管 BIT2 系統(tǒng) BIT3 上限 BIT4 下限 |