电磁通讯协议Word文件下载.docx
《电磁通讯协议Word文件下载.docx》由会员分享,可在线阅读,更多相关《电磁通讯协议Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
数据高字节
数据低字节
CRC低字节
CRC高字节
8位字节
Modbus通讯协议规定了2种通讯方式。
RTU(REMOTE
TERMINAL
UNIT)方式通讯采用8位字节的二进制数据通讯,数据校验采用CRC循环冗余校验,通讯速度较快;
ASCII方式采用7位ASCII码进行通讯,数据校验采用LRC逻辑冗余校验,通讯速率较慢。
目前,我公司的Modbus通讯只是采用的RTU模式。
针对MODBUS在电磁流量转换器上的应用,在MODBUS的功能码中,我公司只用了3个功能码:
03、04、06。
04号功能码主要用来读取流量信息,包括瞬时流量、流速、流量百分比、电极电阻、正向累计、反向累计、仪表口径、报警状态等;
03号功能码用来读取键盘参数,06号功能码用来设置键盘参数。
现场仪表的流量信息,由瞬时流量、流速、百分比、报警状态等参数进行反映,参数存放地址定义如下:
参数存放首址
参数定义
参数取值范围
01
瞬时流量
数据长度
04
流速
07
百分比
10
空管电阻
13
正向累计
16
反向累计
19
仪表口径
22
报警状态
读取流量信息时,主机发出功能编码04:
读取输入寄存器值。
参数存放首址对应输入寄存器首址的低字节。
主机发送命令格式如下:
从机地址(1Byte)+功能编码(1Byte)+输入寄存器首址(2Byte)+输入寄存器个数(2Byte)+CRC校验值(2Byte)
从机地址值范围在1-99
输入寄存器高字节全部是0,低字节范围在01~09,对应上面表格中参数存放首址。
输入寄存器个数高字节是0,低字节是3
从机回应格式如下:
从机地址(1Byte)+功能编码(1Byte)+读出的字节个数(1Byte)+字节内容(6Byte)+CRC校验值(2Byte)
返回的参数占6个字节,故字节个数是6。
注:
读取流量信息时,瞬时流量、流速、百分比、报警状态等参数是分别读取的,即一次只能读取一个参数。
但是可以根据用户需要对程序进行修改,一次性读取所有的8个参数或一次读取其中的几个参数。
读出的流量信息有两种表示方法:
整形数表示法和浮点数表示法。
浮点数格式采用IEEE标准方式表示如下:
Bit31。
。
Bit24,Bit23。
Bit0
8位价码23位尾数+数符
在23位尾数中,不存放最高位的1,最高位为1表示负数,为0表示正数,这样23位尾数还需要加上隐含的最高位的1,构成24位的小数尾数,即尾数为大于等于0.5,小于1的小数。
最高8位为价码,采用偏移码方式,价码等于实际值减去127。
接收时先接收价码(Bit31。
Bit24),然后是第二字节(Bit7。
Bit0),第三字节(Bit15。
Bit8),最后是第四字节(Bit23。
Bit16)。
比如接收的4个字节是:
87HD7HE3H40H,则浮点算法如下:
87H是价码,换算成10进制是135,减去127,故价码值是8。
浮点数的整数部分为28=256。
第二字节是D7H,换算成10进制是215,215/256=0.8398
第三字节是E3H,换算成10进制是227,227+0.8398=227.8398,227.8398/256=0.89
第四字节是40H,换算成10进制是64:
第四字节如果大于128,则浮点数为负;
如果小于128,则浮点数为正,因为隐含了最高位的1故第四字节值还应加上128。
64+128=192,192+0.89=192.89,192.89/256=0.7535,这是浮点数的小数部分。
故浮点数值为浮点数的整数部分乘上浮点数的小数部分,即256*0.7535=192.89。
详细信息结构定义如下:
1)、瞬时流量信息定义
主机发送:
01H
04H
00H
03H
E1H
CBH
从机响应:
01H
04H
06H
D0
D1
D2
D3
D4
D5
CRC16低
CRC16高
如果数据以整形数格式进行传输,则D0、D1代表瞬时流量整数部分的高4位(16进制),D2、D3代表瞬时流量整数部分的低4位(16进制),D4、D5代表瞬时流量小数部分值(16进制)。
如果数据以浮点数格式进行传输,则D0、D1、D2、D3是瞬时流量浮点数值。
D4代表流向和流量单位,定义如下:
D4=Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
Bit7=0:
流向正Bit7=1:
流向负
流量单位定义如下:
B3B2B1B0
1
2
3
4
5
6
7
单位
m3/s
m3/min
m3/h
m3/d
L/s
L/min
L/h
L/d
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保留。
2)、流速信息定义
F1H
CAH
如果数据以整形数格式进行传输,则D0、D1代表流速整数部分的高4位(16进制),D2、D3代表流速整数部分的低4位(16进制),D4、D5代表流速小数部分值(16进制)。
如果数据以浮点数格式进行传输,则D0、D1、D2、D3是流速浮点数值。
D4、D5:
保留。
3)、流量百分比信息定义
07H
如果数据以整形数格式进行传输,则D0、D1代表百分比值整数部分的高4位(16进制),D2、D3代表百分比值整数部分的低4位(16进制),D4、D5代表百分比值小数部分值(16进制)。
如果数据以浮点数格式进行传输,则D0、D1、D2、D3是百分比的浮点数值。
4)、电极电阻信息定义
0AH
90H
09H
如果数据以整形数格式进行传输,则D0、D1代表电极电阻整数部分的高4位(16进制),D2、D3代表电极电阻整数部分的低4位(16进制),D4、D5代表电极电阻小数部分值(16进制)。
如果数据以浮点数格式进行传输,则D0、D1、D2、D3是电极电阻浮点数值。
5)、正向总量信息定义
0DH
21H
C8H
如果数据以整形数格式进行传输,则D0、D1代表正向总量整数部分的高4位(16进制),D2、D3代正向总量整数部分的低4位(16进制),D4、D5代表正向总量小数部分值(16进制)。
如果数据以浮点数格式进行传输,则D0、D1、D2、D3是正向总量浮点数值。
D5:
D4:
正向总量单位,定义如下:
0.001L
0.01L
0.1L
1L
0.001m3
0.01m3
0.1m3
1m3
0.001USgal
0.01USgal
0.1USgal
1USgal
0.001igal
0.01igal
0.1igal
1igal
16
17
18
19
20
21
22
23
0.001kg
0.01kg
0.1kg
1kg
0.001t
0.01t
0.1t
1t
6)、反向总量信息定义
10H
B1H
CEH
如果数据以整形数格式进行传输,则D0、D1代表反向总量整数部分的高4位(16进制),D2、D3代表反向总量整数部分的低4位(16进制),D4、D5代表反向总量小数部分值(16进制)。
如果数据以浮点数格式进行传输,则D0、D1、D2、D3是反向总量浮点数值。
反向总量单位,定义如下:
7)、仪表口径信息定义
13H
41H
如果数据以整形数格式进行传输,则D0、D1代表仪表口径整数部分的高4位(16进制),D2、D3代表仪表口径整数部分的低4位(16进制),D4、D5代表仪表口径小数部分值(16进制)。
如果数据以浮点数格式进行传输,则D0、D1、D2、D3是仪表口径浮点数值。
定义如下:
浮点值
代表管径
200
30
1400
250
31
1600
300
32
1800
350
33
2000
400
34
2200
450
35
2400
25
500
36
2600
600
37
2800
40
700
38
3000
50
24
800
65
900
80
26
1000
100
27
1100
125
28
1200
150
29
1300
8)、报警状态信息定义
16H
51H
CFH
如果数据以整形数格式进行传输,则D2、D3代表报警状态整数值(十六进制),D0、D1、D4、D5保留。
如果数据以浮点数格式进行传输,则D0-D3:
报警状态的4字节浮点数,D4、D5:
报警状态的值范围不会超过1024,用二进制位表示为:
Bit9Bit8Bit7Bit6Bit5Bit4BIT3bit2Bit1Bit0,分别定义如下:
位定义:
Bitx=0无警状态;
Bitx=1报警状态;
ALAM位
Bit1
Bit2
Bit3
Bit4
报警定义
保留
励磁报警
电极报警
空管报警
上限报警
Bit5
Bit6
Bit7
Bit8
Bit9
下限报警
现场仪表的各个参数,参数编号定义如下:
读写参数时,各个参数的定义如下:
参数编号
显示文字
设置方式
默认值
语言选择
选择
中文
测量管道口径
100
3
流量量程单位
m3/h
流量量程倍率
-2
流量量程设定
设置
28274
量程自动切换
禁止
测量阻尼时间
4.0S
流量方向选择
正向
流量零点修正
+0.000
小信号切除点
0.5%
切除允许选择
允许
变化率限制值
00%
不敏感时间值
00S
流量积算单位
1.0m3
脉冲输出方式
频率
脉冲当量选择
脉冲当量单位
频率输出满度
2000
空管报警允许
电极报警阀值
200.0K
上限报警允许
上限报警阀值
90.0%
下限报警允许
下限报警阀值
15.0%
反向测量允许
传感器系数值
1.0000
励磁方式选择
方式一
仪表标定系数
电流零点修正
电流满度修正
出厂标定系数
1)、语言选择
参数值=0:
中文
参数值=1:
英文
2)、测量管道口径选择
参数值
32)、流量量程单位选择
USg/m
USg/h
ig/m
ig/h
t/m
33)、流量量程冥指数选择
-1
参数值=2:
-2
参数值=201:
参数值=202:
参数值=203:
参数值=204:
参数值=205:
5)、流量量程设置:
0~65535。
34)、量程自动切换选择
禁止
1:
参数值=3:
7)、测量阻尼时间选择
阻尼时间
0.2s
0.5s
0.8s
1.0s
2.0s
3.0s
4.0s
5.0s
6.0s
8.0s
10.0s
20.0s
30.0s
50.0s
100.0s
8)、流量方向选择
正向
反向
9)、流量零点设置:
±
0.000~±
9.999。
设置正数时,按照设置值进行输出。
设置负数时,输出值为设置值的绝对值加上32.768。
10)、小信号切除点设置:
0~99.9%。
11)、小信号切除允许选择
允许
12)、变化率限制值设置:
0~29%。
13)、不敏感时间值设置:
0~19S。
14)、流量积算单位选择
1USgal
0.001igal
0.01igal
0.1igal
1igal
15)、脉冲输出方式选择
频率
脉冲
16)、脉冲当量单位选择
0.01L/P
0.1L/P
1L/P
2L/P
参数值=4:
5L/P
参数值=5:
10L/P
参数值=6:
100L/P
参数值=7:
1m3/P
参数值=8:
10m3/P
参数值=9:
100m3/P
18)、频率输出满度设置:
1~5999Hz。
19)、空管报警允许选择
20)、电极报警阀值设置:
0~999.9KΩ。
21)、上限报警允许选择
22)、上限报警阀值设置:
0~199.9%。
23)、下限报警允许选择