电磁流量转换器MODBUS通讯协议.docx

上传人:b****4 文档编号:12289095 上传时间:2023-04-17 格式:DOCX 页数:19 大小:154.45KB
下载 相关 举报
电磁流量转换器MODBUS通讯协议.docx_第1页
第1页 / 共19页
电磁流量转换器MODBUS通讯协议.docx_第2页
第2页 / 共19页
电磁流量转换器MODBUS通讯协议.docx_第3页
第3页 / 共19页
电磁流量转换器MODBUS通讯协议.docx_第4页
第4页 / 共19页
电磁流量转换器MODBUS通讯协议.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

电磁流量转换器MODBUS通讯协议.docx

《电磁流量转换器MODBUS通讯协议.docx》由会员分享,可在线阅读,更多相关《电磁流量转换器MODBUS通讯协议.docx(19页珍藏版)》请在冰豆网上搜索。

电磁流量转换器MODBUS通讯协议.docx

电磁流量转换器MODBUS通讯协议

电磁流量转换器

MODBUS通讯说明书

2008-9-2

一、概述

二、读流量信息

三、读参数

四、改写参数

五、安装与布线

六、通讯测试

一、概述

在传统的自动化监控及信息集成系统中,很多现场层设备与控制器之间的连接是一对一(一个I/O点对设备的一个测控点)所谓I/O接线方式,信号传递通常是采用4-20mA(传送模拟量信息)或24VDC(传送开关量信息)信号。

但是这样的系统存在一些明显的缺点,那就是信息集成能力不强;系统不开放、可集成性差、专业性不强;可靠性不易保证;可维护性不高等等。

如果现场层设备配有串行数据接口(如RS-232/485),控制器就可以按接口规定协议,通过串行通信方式(而不是I/O方式)完成对现场设备的监控。

如果设想全部或大部分现场设备都具有串行通信接口并具有统一的通信协议,控制器只需一根通信电缆就可将分散的现场设备连接,完成对所有现场设备的监控,这就是所说的采用现场总线技术。

我公司的电磁流量计都配有串行数据接口(如RS-232/485),根据总线协议的不同,用户可以选择不同通讯功能的电磁流量计。

目前,我公司开发了多种采用485总线协议的通讯,包括带MODBUS总线协议的通讯、带PROFIBUS-DP接口的通讯、带HART总线协议的通讯及自定义的、带MBmagCPV1.0协议的485/232通讯。

Modbus协议是由MODICON公司为其控制器设计的一种可靠而有效的工业控制系统通信协议。

从功能上看,是一种现场总线。

Modbus协议定义了消息域格式和内容的公共格式,使控制器能认识和使用消息结构,而无需考虑通信网络的拓扑结构,它描述了一个控制器访问其它设备的过程。

当采用Modbus协议通信时,此协议规定每个控制器需要知道自己的设备地址,识别按地址发来的消息,如何响应来自其它设备的请求,如何侦测错误并记录。

其数据通讯采用主—从方式,主机只能有1台,每个从机都有指定的地址,地址范围在0~247之间(其中0为广播地址),只有主机具有主动权,从机只能对主机发送的命令作出响应。

当主机端发出数据请求消息(查询)时,从机端接收到正确消息后就可以发送数据到主机端以响应请求;主机端也可以直接发消息修改从机端的数据,实现读和写。

查询—回应周期如图1。

如果采用广播方式(地址为0)查询,从机不作任何回应

我公司电磁流量转换器MODBUS通讯采用标准MODBUS通讯协议,MODBUS模块和上位机进行通讯的波特率为600–19200,波特率设备地址可以通过键盘进行设置。

通讯由主机发起,主机首先发送消息帧,消息帧的发送间隔必须大于3.5个以上字符的发送时间。

消息帧发送的第一个字节是设备地址,从设备不断的侦测网络总线当接收到第一个字节,每一个设备都进行解码以判断是否是发往自己的消息帧;接收到一个字符之后,如果停顿时间超过3.5个以上字符的发送时间,标志着前一个消息帧发送结束,一个新的消息帧在此停顿后开始。

字符间隔不能大于一个字符,否则认为是一条新的消息帧开始,老的消息帧结束。

消息帧定义如下:

0

1

2

3

4

5

6

7

设备地址

功能编码

地址高字节

地址低字节

数据高字节

数据低字节

CRC低字节

CRC高字节

8位字节

8位字节

8位字节

8位字节

8位字节

8位字节

8位字节

8位字节

Modbus通讯协议规定了2种通讯方式。

RTU(REMOTE TERMINAL UNIT)方式通讯采用8位字节的二进制数据通讯,数据校验采用CRC循环冗余校验,通讯速度较快;ASCII方式采用7位ASCII码进行通讯,数据校验采用LRC逻辑冗余校验,通讯速率较慢。

目前,我公司的Modbus通讯只是采用的RTU模式。

针对MODBUS在电磁流量转换器上的应用,在MODBUS的功能码中,我公司只用了3个功能码:

03、04、06。

03号功能码主要用来读取流量信息,包括瞬时流量、流速、流量百分比、电极电阻、正向累计、反向累计、仪表口径、报警状态等;04号功能码用来读取键盘参数,06号功能码用来设置键盘参数。

二、读流量信息

现场仪表的流量信息,由瞬时流量、流速、百分比、报警状态等参数进行反映,参数存放地址定义如下:

参数存放首址

参数定义

参数取值范围

01

瞬时流量

数据长度

04

流速

3

07

百分比

3

10

空管电阻

3

13

正向累计

3

16

反向累计

3

19

仪表口径

3

22

报警状态

3

读取流量信息时,主机发出功能编码03:

读取输入寄存器值。

参数存放首址对应输入寄存器首址的低字节。

主机发送命令格式如下:

从机地址(1Byte)+功能编码(1Byte)+输入寄存器首址(2Byte)+输入寄存器个数(2Byte)+CRC校验值(2Byte)

从机地址值范围在1-99

输入寄存器高字节全部是0,低字节范围在01~09,对应上面表格中参数存放首址。

输入寄存器个数高字节是0,低字节是3

从机回应格式如下:

从机地址(1Byte)+功能编码(1Byte)+读出的字节个数(1Byte)+字节内容(6Byte)+CRC校验值(2Byte)

返回的参数占6个字节,故字节个数是6。

注:

读取流量信息时,对瞬时流量、流速、百分比、报警状态等参数,用户可以分别读取,即一次只读取一个参数。

用户也可以一次性读取所有的8个参数或一次读取其中的几个参数。

读出的流量信息有两种表示方法:

整形数表示法和浮点数表示法。

如没有特殊声明,仪表采用整形数据进行传输。

详细信息结构定义如下:

1)、瞬时流量信息定义

主机发送:

01H

03H

00H

01H

00H

03H

54H

0BH

从机响应:

01H

03H

06H

D0

D1

D2

D3

D4

D5

CRC16低

CRC16高

如果数据以整形数格式进行传输,则D0、D1代表瞬时流量整数部分的高4位(16进制),D2、D3代表瞬时流量整数部分的低4位(16进制),D4、D5代表瞬时流量小数部分值(16进制)。

2)、流速信息定义

主机发送:

01H

03H

00H

04H

00H

03H

44H

0AH

从机响应:

01H

03H

06H

D0

D1

D2

D3

D4

D5

CRC16低

CRC16高

如果数据以整形数格式进行传输,则D0、D1代表流速整数部分的高4位(16进制),D2、D3代表流速整数部分的低4位(16进制),D4、D5代表流速小数部分值(16进制)。

3)、流量百分比信息定义

主机发送:

01H

03H

00H

07H

00H

03H

B4H

0AH

从机响应:

01H

03H

06H

D0

D1

D2

D3

D4

D5

CRC16低

CRC16高

如果数据以整形数格式进行传输,则D0、D1代表百分比值整数部分的高4位(16进制),D2、D3代表百分比值整数部分的低4位(16进制),D4、D5代表百分比值小数部分值(16进制)。

4)、电极电阻信息定义

主机发送:

01H

03H

00H

0AH

00H

03H

25H

C9H

从机响应:

01H

03H

06H

D0

D1

D2

D3

D4

D5

CRC16低

CRC16高

如果数据以整形数格式进行传输,则D0、D1代表电极电阻整数部分的高4位(16进制),D2、D3代表电极电阻整数部分的低4位(16进制),D4、D5代表电极电阻小数部分值(16进制)。

5)、正向总量信息定义

主机发送:

01H

03H

00H

0DH

00H

03H

94H

08H

从机响应:

01H

03H

06H

D0

D1

D2

D3

D4

D5

CRC16低

CRC16高

如果数据以整形数格式进行传输,则将D0、D1由16进制转换成10进制X0X1X2X3,将D2、D3由16进制转换成10进制X4X5X6X7,将D4、D5由16进制转换成10进制X8X9X10X11,数据由X0X1X2X3X4X5X6X7X8X9组成,小数点位置和累计单位由X10X11决定。

列表如下:

X10X11

0

1

2

3

4

5

6

7

单位

0.001L

0.01L

0.1L

1L

0.001m3

0.01m3

0.1m3

1m3

X10X11

8

9

10

11

12

13

14

15

单位

0.001USgal

0.01USgal

0.1USgal

1USgal

0.001igal

0.01igal

0.1igal

1igal

X10X11

16

17

18

19

20

21

22

23

单位

0.001kg

0.01kg

0.1kg

1kg

0.001t

0.01t

0.1t

1t

举例说明如下:

如接收到的数据是

01H

04H

06H

00H

22H

16

43

0C

84

68

6B

则0022(16进制)=34(十进制)

则1643(16进制)=5699(十进制)

则0C84(16进制)=3204(十进制)

则数据可表示为34569932,04是小数点位数,查表为0.001m3,故实际数据为34569.932m3。

6)、反向总量信息定义

主机发送:

01H

03H

00H

10H

00H

03H

04H

0EH

从机响应:

01H

03H

06H

D0

D1

D2

D3

D4

D5

CRC16低

CRC16高

数据表示方法和正向总量一样。

7)、仪表口径信息定义

主机发送:

01H

03H

00H

13H

00H

03H

F4H

0EH

从机响应:

01H

03H

06H

D0

D1

D2

D3

D4

D5

CRC16低

CRC16高

如果数据以整形数格式进行传输,则D0、D1代表仪表口径整数部分的高4位(16进制),D2、D3代表仪表口径整数部分的低4位(16进制),D4、D5代表仪表口径小数部分值(16进制)。

8)、报警状态信息定义

主机发送:

01H

03H

00H

16H

00H

03H

E4H

0FH

从机响应:

01H

03H

06H

D0

D1

D2

D3

D4

D5

CRC16低

CRC16高

如果数据以整形数格式进行传输,则D2、D3代表报警状态整数值(十六进制),D0、D1、D4、D5保留。

报警状态的值范围不会超过1024,用二进制位表示为:

Bit9Bit8Bit7Bit6Bit5Bit4BIT3bit2Bit1Bit0,分别定义如下:

位定义:

Bitx=0无警状态;Bitx=1报警状态;

ALAM位

Bit0

Bit1

Bit2

Bit3

Bit4

报警定义

保留

励磁报警

电极报警

空管报警

上限报警

ALAM位

Bit5

Bit6

Bit7

Bit8

Bit9

报警定义

下限报警

保留

保留

保留

保留

三、读参数

现场仪表的各个参数,参数编号定义如下:

读写参数时,各个参数的定义如下:

参数编号

显示文字

设置方式

默认值

1

语言选择

选择

中文

2

测量管道口径

选择

100

3

流量量程单位

选择

m3/h

4

流量量程倍率

选择

-2

5

流量量程设定

设置

28274

6

量程自动切换

选择

禁止

7

测量阻尼时间

选择

4.0S

8

流量方向选择

选择

正向

9

流量零点修正

设置

+0.000

10

小信号切除点

设置

0.5%

11

切除允许选择

选择

允许

12

变化率限制值

设置

00%

13

不敏感时间值

设置

00S

14

流量积算单位

选择

1.0m3

15

脉冲输出方式

选择

频率

16

脉冲当量选择

设置

10

17

脉冲当量单位

选择

0

18

频率输出满度

设置

2000

19

空管报警允许

选择

0

20

电极报警阀值

设置

200.0K

21

上限报警允许

选择

禁止

22

上限报警阀值

设置

90.0%

23

下限报警允许

选择

禁止

24

下限报警阀值

设置

15.0%

25

反向测量允许

选择

禁止

26

传感器系数值

设置

1.0000

27

励磁方式选择

选择

方式一

28

仪表标定系数

设置

1.0000

29

电流零点修正

设置

1.0000

30

电流满度修正

设置

1.0000

31

出厂标定系数

设置

1.0000

1)、语言选择

参数值=0:

中文

参数值=1:

英文

2)、测量管道口径选择

参数值

代表管径

参数值

代表管径

参数值

代表管径

0

3

15

200

30

1400

1

6

16

250

31

1600

2

8

17

300

32

1800

3

10

18

350

33

2000

4

15

19

400

34

2200

5

20

20

450

35

2400

6

25

21

500

36

2600

7

32

22

600

37

2800

8

40

23

700

38

3000

9

50

24

800

10

65

25

900

11

80

26

1000

12

100

27

1100

13

125

28

1200

14

150

29

1300

32)、流量量程单位选择

参数值

0

1

2

3

4

5

6

7

单位

m3/s

m3/min

m3/h

L/s

L/min

L/h

USg/m

USg/h

参数值

8

9

10

11

12

13

14

15

单位

ig/m

ig/h

t/s

t/m

t/h

kg/s

kg/min

kg/h

33)、流量量程冥指数选择

参数值=0:

0

参数值=1:

-1

参数值=2:

-2

参数值=201:

1

参数值=202:

2

参数值=203:

3

参数值=204:

4

参数值=205:

5

5)、流量量程设置:

0~65535。

34)、量程自动切换选择

参数值=0:

禁止

参数值=1:

1:

2

参数值=2:

1:

4

参数值=3:

1:

8

7)、测量阻尼时间选择

参数值

0

1

2

3

4

5

6

7

阻尼时间

0.2s

0.5s

0.8s

1.0s

2.0s

3.0s

4.0s

5.0s

参数值

8

9

10

11

12

13

14

阻尼时间

6.0s

8.0s

10.0s

20.0s

30.0s

50.0s

100.0s

8)、流量方向选择

参数值=0:

正向

参数值=1:

反向

9)、流量零点设置:

±0.000~±9.999。

设置正数时,按照设置值进行输出。

设置负数时,输出值为设置值的绝对值加上32.768。

10)、小信号切除点设置:

0~99.9%。

11)、小信号切除允许选择

参数值=0:

允许

参数值=1:

禁止

12)、变化率限制值设置:

0~29%。

13)、不敏感时间值设置:

0~19S。

14)、流量积算单位选择

参数值

0

1

2

3

4

5

6

7

单位

0.001L

0.01L

0.1L

1L

0.001m3

0.01m3

0.1m3

1m3

参数值

8

9

10

11

12

13

14

15

单位

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

15)、脉冲输出方式选择

参数值=0:

频率

参数值=1:

脉冲

16)、脉冲当量单位选择

参数值=0:

0.01L/P

参数值=1:

0.1L/P

参数值=2:

1L/P

参数值=3:

2L/P

参数值=4:

5L/P

参数值=5:

10L/P

参数值=6:

100L/P

参数值=7:

1m3/P

参数值=8:

10m3/P

参数值=9:

100m3/P

 

18)、频率输出满度设置:

1~5999Hz。

19)、空管报警允许选择

参数值=0:

禁止

参数值=1:

允许

20)、电极报警阀值设置:

0~999.9KΩ。

21)、上限报警允许选择

参数值=0:

禁止

参数值=1:

允许

22)、上限报警阀值设置:

0~199.9%。

23)、下限报警允许选择

参数值=0:

禁止

参数值=1:

允许

24)、下限报警阀值设置:

0~199.9%。

25)、反向测量允许选择

参数值=0:

禁止

参数值=1:

允许

26)、传感器系数值设置:

0~3.9999。

27)、励磁方式选择

参数值=0:

方式一

参数值=1:

方式二

参数值=2:

方式三

参数值=3:

方式四

28)、仪表标定系数值设置:

0~3.9999。

29)、电流零点修正值设置:

0~1.9999。

30)、电流满度修正值设置:

0~3.9999。

31)、出厂标定系数设置:

0~3.9999。

读取仪表参数时,主机发出功能编码04:

读取保持寄存器内容。

通讯时,仪表的参数编号,分别对应保持寄存器首址的低字节。

主机发送命令格式如下:

从机地址(1Byte)+功能编码(1Byte)+保持寄存器首址(2Byte)+保持寄存器个数(2Byte)+CRC校验值(2Byte)

从机地址值范围在1-99

保持寄存器高字节全部是0,低字节范围在01~31,对应仪表参数编号。

保持寄存器个数高字节是0,低字节是1。

从机回应格式如下:

从机地址(1Byte)+功能编码(1Byte)+字节个数(1Byte)+字节内容(2Byte)+CRC校验值(2Byte)

返回的参数占2个字节,故字节个数是2。

四、改写参数

改写仪表参数时,主机发出功能编码06:

预置单寄存器值。

主机发送命令格式如下:

从机地址(1Byte)+功能编码(1Byte)+单寄存器首址(2Byte)+字节内容(2Byte)+CRC校验值(2Byte)

从机地址值范围在1-99

单寄存器高字节全部是0,低字节范围在01~37。

从机接收到命令后,将收到的数据原样传回,主机可用于校验。

从机回应格式如下:

从机地址(1Byte)+功能编码(1Byte)+单寄存器首址(2Byte)+字节内容(2Byte)+CRC校验值(2Byte)

如果设置成功,MODBUS返回的字节内容和发出去的字节内容一样。

五、安装与布线

接线图如下:

工控机或PC机通过串口连接到RS232/RS485转换器,转换器的+A、+B分别连接到各个电磁流量计。

如果是分体式电磁流量计,将RS232/RS485转换器的+A、+B分别和电磁流量计的A2、B2相连接,如果接线较长,连接的仪表较多,有必要在远端加一个100Ω-200Ω的匹配电阻。

如果是一体式电磁流量计,将RS232/RS485转换器的+A、+B分别和电磁流量计的TRX+、TRX-相连接,如果接线较长,连接的仪表较多,有必要在远端加一个100Ω-200Ω的匹配电阻。

六、通讯测试

如果您需要和我们仪表进行MODBUS通讯,我们会提供您一张光盘,上面有电磁流量计MODBUS通讯协议、测试应用程序MODBUSV1.0及通讯范例源程序(VB)。

用户在应用MODNUS之前应该仔细阅读电磁流量计MODBUS通讯协议,这样上位机才能正确的读、写电磁流量计的相关参数。

测试时,打开测试应用程序MODBUSV1.0,如下图:

如果RS232/RS485转换器输出是与多台电磁流量计相连接,首先应该注意的是:

●必须将每一台电磁流量计设置为不同的地址,地址范围是01-32。

地址如果重复,通讯很容易出错。

●记住每一台电磁流量计的通讯速度。

通讯速度的波特率包括600、1200、2400、4800、9600、14400、19200。

每一台电磁流量计的通讯速度应该尽量一致,这样操作方便,也减少了出错的几率。

连接完毕,操作如下:

如果连接的仪表中有一台仪表地址是02,通讯速度是19200,则首先在测试画面的左面,在通讯速度的列表框中选择19200,在设备地址的列表框中选择02;此时在右边的空白框中就会有数据显示。

点击显示刷新按扭,会对右边的数据进行瞬间清屏。

如果要对02号仪表的键盘参数进行读、写,可点击左边的读/写参数按扭,弹出下图:

写参数时,可在下拉列表框中选择,或在文本框中输入参数。

参数下面有提示,输入不能超过范围。

读参数时,可先点击清除按扭,刷新文本框的显示,再点击读按扭,则读上来的参数会显示在文本框中。

点击返回按扭,通讯回到流体信息显示画面。

..

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1