电池供电电磁流量计Modbus通讯协议针对HLLDE电磁流量计工业应用设计,该版本主要用于实时数据采集、流量测量、流量累计控制及部分参数的修改。
一、电池供电电磁流量计Modbus通讯主机系统通讯部件要求
1.国际标准RS-485通讯接口部件或国际标准RS-232通讯接口部件,不小于11 Bytes 的通信缓冲区(FIFO),支持1200、2400、4800、9600、19200通讯波特率,支持半双工通讯模式。通讯程序应允许FIFO,从机要求主机FIFO不小于11Bytes。
二、电池供电电磁流量计Modbus通讯协议结构
协议遵从基本开放系统互连(OSI)参考模型,基本开放系统互连参照模型提供通讯系统基本结构和要素,但协议使用简化的OSI参照模型,仅采用1、2和7层。
基本开放系统互连参考模型
层号
|
层名
|
功能
|
Lmag-BV1
|
7
|
应用层
|
|
L-magCP 命令
|
6
|
表示层
|
|
|
5
|
会话层
|
|
|
4
|
传输层
|
|
|
3
|
网络层
|
|
|
2
|
链路层
|
数据链路连接
|
L-mag CP Link
|
1
|
物理层
|
设备连接
|
RS-485、RS-232
|
三、电池供电电磁流量计Modbus通讯物理结构HLLDE电磁流量计的RS-485通讯接口在物理结构上采用电气隔离方式,隔离电压1500伏。通讯数据传输接口为半双工方式,标准通讯速率大于250khz,通讯方向转换时间3.5uS。通讯接口电气标准遵从RS-485国际标准。
可用于星型式网络结构和总线式网络结构。标准通讯连接介质为屏蔽双绞线。
四、电池供电电磁流量计Modbus协议RTU消息帧定义
数据通讯由主机发起,主机首先发送RTU消息帧,消息帧发送至少要以3.5个字符时间的停顿间隔开始(如下图的T1-T2-T3-T4所示)。传输的第一个字节是设备地址。可以使用的传输字符是十六进制的0...9,A...F。所有的从设备不断侦测网络总线,包括停顿间隔时间内。当第一个地址字节接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。
整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。主机消息帧定义如下所示:
起始位
|
设备地址
|
功能代码
|
寄存器地址
|
寄存器长度
|
CRC校验
|
结束符
|
T1-T2-T3-T4
|
8Bit
|
8Bit
|
16Bit
|
16Bit
|
16Bit
|
T1-T2-T3-T4
|
图3主机 RTU消息帧
从机消息帧定义如下所示:
起始位
|
设备地址
|
功能代码
|
数据
|
CRC校验
|
结束符
|
T1-T2-T3-T4
|
8Bit
|
8Bit
|
n个8Bit
|
16Bit
|
T1-T2-T3-T4
|
图4 从机RTU消息帧
五、电池供电电磁流量计Modbus协议命令编码定义
Lmag-BV1协议遵从Modbus协议,,但Lmag-BV1协议使用简化的Modbus协议,仅采用03、04和06功能码。
功能码
|
名称
|
作用
|
01
|
读取线圈状态
|
保留
|
02
|
读取输入状态
|
保留
|
03
|
读取保持寄存器
|
保留
|
04
|
读取输入寄存器
|
读电磁流量计实时信息
|
05
|
强置单线圈
|
保留
|
06
|
预置单寄存器
|
保留
|
07
|
读取异常状态
|
保留
|
08
|
回送诊断校验
|
保留
|
09
|
编程(只用于484)
|
保留
|
10
|
控询(只用于484)
|
保留
|
11
|
读取事件计数
|
保留
|
12
|
读取通信事件记录
|
保留
|
13
|
编程(184/384 484 584)
|
保留
|
14
|
探询(184/384 484 584)
|
保留
|
15
|
强置多线圈
|
保留
|
16
|
预置多寄存器
|
保留
|
17
|
报告从机标识
|
保留
|
18
|
(884和MICRO 84)
|
保留
|
19
|
重置通信链路
|
保留
|
20
|
读取通用参数(584L)
|
保留
|
21
|
写入通用参数(584L)
|
保留
|
22~64
|
保留作扩展功能备用
|
保留
|
65~72
|
保留以备用户功能所用
|
保留
|
73~119
|
非法功能
|
保留
|
120~127
|
保留
|
保留
|
128~255
|
保留
|
保留
|
六、电磁流量计寄存器地址定义
(针对PLC组态软件的专用寄存器)
PLC Addresses(Base 1)
|
Protocol Addresses
(Base 0)
|
数据格式
|
寄存器定义
|
34113
|
0x1010
|
Float Inverse
|
瞬时流量浮点表示
|
34115
|
0x1012
|
Float Inverse
|
瞬时流速浮点表示
|
34117
|
0x1014
|
Float Inverse
|
流量百分比浮点表示(电池供电表保留)
|
34119
|
0x1016
|
Float Inverse
|
流体电导比浮点表示
|
34121
|
0x1018
|
Long Inverse
|
正向累积数值整数部分
|
34123
|
0x101A
|
Float Inverse
|
正向累积数值小数部分
|
34125
|
0x101C
|
Long Inverse
|
反向累积数值整数部分
|
34127
|
0x101E
|
Float Inverse
|
反向累积数值小数部分
|
34129
|
0x1020
|
Unsigned short
|
瞬时流量单位
|
34130
|
0x1021
|
Unsigned short
|
累积总量单位
|
34131
|
0x1022
|
Unsigned short
|
上限报警
|
34132
|
0x1023
|
Unsigned short
|
下限报警
|
34133
|
0x1024
|
Unsigned short
|
空管报警
|
34134
|
0x1025
|
Unsigned short
|
系统报警
|
七、电池供电电磁流量计Modbus通讯基础数据解析
1.瞬时流量
1000H寄存器
|
1001H寄存器
|
寄存器高位
|
寄存器低位
|
寄存器高位
|
寄存器低位
|
瞬时流量高位=1000H寄存器高位*256+1000H寄存器地位
瞬时流量低位=1001H寄存器高位*256+1001H寄存器地位
瞬时流量=瞬时流量高位*65536+瞬时流量低位
2.累积数值
1002H寄存器
|
1003H寄存器
|
寄存器高位
|
寄存器低位
|
寄存器高位
|
寄存器低位
|
主机恢复累积量值十进制数据的算法:
正向累积数值高位=1002H寄存器高位*256+1002H寄存器地位
正向累积数值低位=1003H寄存器高位*256+1003H寄存器地位
正向累积数值=正向累积数值高位*65536+正向累积数值低位
反向累积数值与正向的方法相同。
3. 流量和累积量单位
1009H寄存器
|
瞬时流量小数位及单位
|
累积量小数位及单位
|
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
|
瞬时流量小数位及单位解析如下:
BIT15 为符号位 1负向 0 正向
寄存器高位字节的Bit14Bit13Bit12是小数点位置:
Bit14Bit13Bit12= 0 .00000 Bit14Bit13Bit12= 1 0.0000
Bit14Bit13Bit12= 2 00.000 Bit14Bit13Bit12= 3 000.00
Bit14Bit13Bit12= 4 0000.0 Bit14Bit13Bit12= 5 00000.
单位数点字节的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
累积量小数位及单位解析如下:
寄存器低位字节的B6B5B4是小数点位置:
Bit6Bit5Bit4 = 0 .00000 Bit6Bit5Bit4 = 1 0.0000
Bit6Bit5Bit4 = 2 00.000 Bit6Bit5Bit4 = 3 000.00
Bit6Bit5Bit4 = 4 0000.0 Bit6Bit5Bit4 = 5 00000.
单位数点字节的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 系统(电池供电表)
BIT1 空管 BIT2 系统 BIT3 上限 BIT4 下限 |