电磁流量计标准MODBUS通讯协议1.docx
《电磁流量计标准MODBUS通讯协议1.docx》由会员分享,可在线阅读,更多相关《电磁流量计标准MODBUS通讯协议1.docx(31页珍藏版)》请在冰豆网上搜索。
电磁流量计标准MODBUS通讯协议1
电磁流量计转换器
通讯协议
2012-10-12
目录
一、概述-2-
二、网络结构及接线-2-
三、Modbus协议RTU帧格式-2-
四、Modbus协议命令编码定义-4-
五、电磁流量计MODBUS寄存器定义-5-
1.电磁流量计MODBUS寄存器地址定义-5-
2.PLC地址设置说明-5-
3.组态王地址设置说明-6-
4.数据含义说明-6-
六、通讯数据解析-7-
1读瞬时流量-7-
2.读瞬时流速:
-8-
3读累积流量-8-
5.读总量流量单位-10-
6.读报警状态-10-
七、应用举例-11-
1.C语言MODBUS示例程序-11-
2.modbus调试软件modbuspoll通讯实例-13-
3.modbus调试软件modscan32通讯实例-15-
4.组态王6.53通讯实例-17-
5.力控6.1通讯实例-21-
6.MCGS通讯实例-24-
注:
本协议应用举例中例程只提供参考,例程中部分参数与MODBUS寄存器地址定义不符,请以MODBUS寄存器地址定义为准。
一、概述
电磁流量计具有标准的MODBUS通讯接口,支持波特率1200,2400,4800,9600,19200。
通过MODBUS通讯网络,主站可以采集瞬时流量,瞬时流速,累积流量等参数。
电磁流量计采用的串口参数:
1位起始位8位数据位1位停止位,无校验。
电磁流量计的MODBUS通讯接口在物理结构上采用电气隔离方式,隔离电压1500伏,并具有ESD保护,能够克服工业现场的各种干扰,保证通讯网络的可靠运行。
二、网络结构及接线
电磁流量计标准MODBUS通讯网络是总线型网络结构,支持1到99个电磁流量计组网,在网络最远的电磁流量计通常要在通讯线两端并联一个120欧姆的终端匹配电阻,标准通讯连接介质为屏蔽双绞线。
图-1电磁流量计网络结构
电磁流量计通讯接线详见电磁流量计使用说明书。
三、Modbus协议RTU帧格式
MODBUS协议是主从通讯方式,每次通讯由主站发起,从站响应主站命令回传数据。
电磁流量计采用MODBUSRTU格式(十六进制格式),其帧结构如图-2所示。
1.主站命令帧结构
帧起始
设备地址
功能代码
寄存器地址
寄存器长度
CRC校验
帧结束
T1-T2-T3-T4
8Bit
8Bit
16Bit
16Bit
16Bit
T1-T2-T3-T4
图-2主站RTU消息帧
2.从站响应帧结构
帧起始
设备地址
功能代码
数据
CRC校验
帧结束
T1-T2-T3-T4
8Bit
8Bit
n个8Bit
16Bit
T1-T2-T3-T4
图3从站RTU消息帧
说明:
(1)T1-T2-T3-T4为帧起始或帧结束,MODBUS协议规定帧起始或帧结束是在帧与帧间延时3.5char字符的时间实现的,如图-4所示。
图-4MODBUS帧间隔
(2)设备地址:
电磁流量计的通讯地址,在一个网络中不能有两个相同的地址。
(3)功能码:
MODBUS协议规定的功能码,电磁流量计采用功能码4读输入寄存器来实现采集数据的。
(4)寄存器地址和寄存器数
主站命令中的参数是从寄存器地址开始的寄存,读寄存器长度的N个寄存器。
(5)从站响应数据
从站响应数据是:
字节数和N个数字节数据。
详见MODBUS协议。
四、Modbus协议命令编码定义
MODBUS功能码定义如表-1所示,电磁流量计仅采用04功能码。
表-1
功能码
名称
作用
01
读取线圈状态
保留
02
读取输入状态
保留
03
读取保持寄存器
保留
04
读取输入寄存器
读电磁流量计实时信息
05
强置单线圈
保留
06
预置单寄存器
保留
07
读取异常状态
保留
08
回送诊断校验
保留
09
编程(只用于484)
保留
10
控询(只用于484)
保留
11
读取事件计数
保留
12
读取通信事件记录
保留
13
编程(184/384484584)
保留
14
探询(184/384484584)
保留
15
强置多线圈
保留
五、电磁流量计MODBUS寄存器定义
1.电磁流量计MODBUS寄存器地址定义表-2
ProtocolAddresses
(Decimal)
ProtocolAddresses
(HEX)
数据格式
寄存器定义
4112
0x1010
FloatInverse
瞬时流量浮点表示
4114
0x1012
FloatInverse
瞬时流速浮点表示
4116
0x1014
FloatInverse
流量百分比浮点表示(电池供电表保留)
4118
0x1016
FloatInverse
流体电导比浮点表示
4120
0x1018
LongInverse
正向累积数值整数部分
4122
0x101A
FloatInverse
正向累积数值小数部分
4124
0x101C
LongInverse
反向累积数值整数部分
4126
0x101E
FloatInverse
反向累积数值小数部分
4128
0x1020
Unsignedshort
瞬时流量单位(表3)
4129
0x1021
Unsignedshort
累积总量单位(表4/表5)
4130
0x1022
Unsignedshort
上限报警
4131
0x1023
Unsignedshort
下限报警
4132
0x1024
Unsignedshort
空管报警
4133
0x1025
Unsignedshort
系统报警
2.PLC地址设置说明
PLC设置时如果没有功能码设置项时,使用功能04应在寄存器地址前面加3。
另PLC寄存器地址的基址是从1开始,所以PLC设置寄存器地址时应在原地址上加1.
例:
电磁流量计MODBUS寄存器地址为4112(0x1010),MODBUS功能码为4时,PLC寄存器地址为34113。
详细设置见应用举例章节2.
3.组态王地址设置说明
组态王设置时没有功能码设置项,不同的驱动设置方法不同。
以PLC-莫迪康-modbus(RTU)驱动为例,使用功能04应在寄存器地址前面加8。
另组态王寄存器地址的基址是从1开始,所以组态王设置寄存器地址时应在原地址上加1.
电磁流量计MODBUS寄存器地址为4112(0x1010),MODBUS功能码为4时,组态王寄存器地址为84113。
详细设置见应用举例章节4.
4.数据含义说明
(1)浮点格式:
电磁流量计MODBUS采用IEEE75432位浮点数格式,其结构如下:
(以瞬时流量为例)
0X1010(34113)
0x1011(34114)
BYTE1
BYTE2
BYTE3
BYTE4
SEEEEEEE
EMMMMMMM
MMMMMMMM
MMMMMMMM
S-尾数的符号;1=负数,0=正数;
E-指数;与十进制数127的差值表示。
M-尾数;低23位,小数部分。
当E不全”0”时,且不全”1时浮点数与十进制数转换公式:
(2)瞬时流量单位
表3
代码
瞬时单位
代码
瞬时单位
代码
瞬时单位
代码
瞬时单位
0
L/S
3
M3/S
6
T/S
9
GPS
1
L/M
4
M3/M
7
T/M
10
GPM
2
L/H
5
M3/H
8
T/H
11
GPH
(3)累积总量单位
表4(适用于B型及511型电磁流量计转换器)
代码
0
1
2
3
累积单位
L
M3
T
USG
表5(适用于C型电磁流量计转换器)
代码
0
1
2
3
4
5
累积单位
L
L
L
M3
M3
M3
代码
6
7
8
9
10
11
累积单位
T
T
T
USG
USG
USG
(4)报警
上限报警,下限报警,空管报警,系统报警表示:
0-----不报警;1----报警
六、通讯数据解析
瞬时流量,瞬时流速,流量百分比,流体电导比,正反向累积量小数部分以浮点数的格式传输。
正反向累积量的整数部分以长整型数传输。
1读瞬时流量
主站发送命令(十六进制)
01
04
10
10
00
02
74
CE
设备
地址
功能码
寄存器
地址高位
寄存器
地址高位
寄存器
长度高位
寄存器
长度低位
CRC
高位
CRC
低位
主站接收到数据:
01
04
04
C4
1C
60
00
2F
72
设备
地址
功能码
数据
长度
4个字节浮点数
(瞬时流量)
CRC
高位
CRC
低位
浮点数C41C6000
11000100000111000110000000000000
浮点数字节1浮点数字节2浮点数字节3浮点数字节4
S=1:
尾数符号为1表示是负数。
E=10001000:
指数为136
M=00111000110000000000000,尾数为
=-625.5
2.读瞬时流速:
主站发送命令:
01
04
10
12
00
02
D5
0E
设备
地址
功能码
寄存器
地址高位
寄存器
地址高位
寄存器
长度高位
寄存器
长度低位
CRC
高位
CRC
低位
主站接收数据:
01
04
04
C1
B0
80
00
A6
5F
设备
地址
功能码
数据
长度
4个字节浮点数
(瞬时流速)
CRC
高位
CRC
低位
浮点数为:
C1B08000
11000001101100001111100000000000
S=1
E=10000011
M=01100001111100000000000
=-22.0625
3读累积流量
为了能够完全表达电磁流量计的9位累积值,所以把累积流量的整数和小数部分分别表达。
整数部分用长整型变量,小数部分使用浮点数。
累积流量为1587m3
主站发送采集累积流量整数值命令:
01
04
10
18
00
02
F5
0C
设备
地址
功能码
寄存器
地址高位
寄存器
地址高位
寄存器
长度高位
寄存器
长度低位
CRC
高位
CRC
低位
主站接收到数据:
01
04
04
00
00
70
71
1E
60
设备
地址
功能码
数据
长度
4个字节长整形
(累积量整数部分)