电磁流量计MODBUS寄存器地址定义表文档格式.docx

上传人:b****1 文档编号:4794362 上传时间:2023-05-04 格式:DOCX 页数:41 大小:910.58KB
下载 相关 举报
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第1页
第1页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第2页
第2页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第3页
第3页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第4页
第4页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第5页
第5页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第6页
第6页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第7页
第7页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第8页
第8页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第9页
第9页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第10页
第10页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第11页
第11页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第12页
第12页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第13页
第13页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第14页
第14页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第15页
第15页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第16页
第16页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第17页
第17页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第18页
第18页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第19页
第19页 / 共41页
电磁流量计MODBUS寄存器地址定义表文档格式.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电磁流量计MODBUS寄存器地址定义表文档格式.docx

《电磁流量计MODBUS寄存器地址定义表文档格式.docx》由会员分享,可在线阅读,更多相关《电磁流量计MODBUS寄存器地址定义表文档格式.docx(41页珍藏版)》请在冰点文库上搜索。

电磁流量计MODBUS寄存器地址定义表文档格式.docx

寄存器地址

寄存器长度

CRC校验

帧结束

T1-T2-T3-T4

8Bit

16Bit

图-2主站RTU消息帧

2从站响应帧结构

数据

n个8Bit

图3从站RTU消息帧

说明:

(1)T1-T2-T3-T4为帧起始或帧结束,MODBUS协议规定帧起始或帧结

束是在帧与帧间延时3.5char字符的时间实现的,如图-4所示。

Frame1Frame2Frame3

3.5char

atleast3.5charatleast3.5criar►!

4.5char

图-4MODBUS帧间隔

(2)设备地址:

电磁流量计的通讯地址,在一个网络中不能有两个相同的

地址。

(3)功能码:

MODBUS协议规定的功能码,L-mag电磁流量计采用功能码

4读输入寄存器来实现采集数据的。

(4)寄存器地址和寄存器数

主站命令中的参数是从寄存器地址开始的寄存,读寄存器长度的N个

寄存器。

(5)从站响应数据

从站响应数据是:

字节数和N个数字节数据

详见MODBUS协议。

四、Modbus协议命令编码定义

MODBUS功能码定义如表-1所示,L-mag-电磁流量计仅采用04功能码

表-1

功能码

名称

作用

01

读取线圈状态

保留

02

读取输入状态

03

读取保持寄存器

04

读取输入寄存器

读电磁流量计实时信息

05

强置单线圈

06

预置单寄存器

07

读取异常状态

08

回送诊断校验

09

编程(只用于484)

10

控询(只用于484)

11

读取事件计数

12

读取通信事件记录

13

编程(184/384484584)

14

探询(184/384484584)

五、L-mag电磁流量计MODBUS寄存器定义

1.L-mag电磁流量计MODBUS寄存器地址定义表-2

ProtocolAddresses(Decimal)

ProtocolAddresses(HEX

数据格式

寄存器定乂

4112

0x1010

Float

Inverse

瞬时流量浮点表示

4114

0x1012

FloatInverse

瞬时流速浮点表示

4116

0x1014

流量百分比浮点表示(电池供电表保留)

4118

0x1016

流体电导比浮点表示

4120

0x1018

LongInverse

正向累积数值整数部分

4122

0x101A

正向累积数值小数部分

4124

0x101C

反向累积数值整数部分

4126

0x101E

反向累积数值小数部分

4128

0x1020

Unsignedshort

瞬时流量单位(表3)

4129

0x1021

累积总量单位(表4/表5)

4130

0x1022

上限报警

4131

0x1023

下限报警

4132

0x1024

空管报警

4133

0x1025

系统报警

2.PLC地址设置说明

PLC设置时如果没有功能码设置项时,使用功能04应在寄存器地址前面加3另PLC寄存器地址的基址是从1开始,所以PLC设置寄存器地址时应在原地址上加1.

例:

L-mag电磁流量计MODBUS寄存器地址为4112(0x1010,MODBUS功能码为4时,PLC寄存器地址为34113

详细设置见应用举例章节2.

3组态王地址设置说明

组态王设置时没有功能码设置项,不同的驱动设置方法不同。

以PLC-莫迪康-modbus(RTU)驱动为例,使用功能04应在寄存器地址前面加&

另组态王寄存器地址的基址是从1开始,所以组态王设置寄存器地址时应在原地址上加1.

L-mag电磁流量计MODBUS寄存器地址为4112(0x1010,MODBUS功能

码为4时,组态王寄存器地址为84113

详细设置见应用举例章节4.

4•数据含义说明

(1)浮点格式:

L-mag电磁流量计MODBUS采用IEEE75432位浮点数格式,其结构如下:

(以瞬时流量为例)

0X1010(34113)

0x1011(34114)

BYTE1

BYTE2

BYTE3

BYTE4

SEEEEEEE

EMMMMMMM

MMMMMMMM

S—尾数的符号;

1二负数,0=正数;

E-指数;

与十进制数127的差值表示。

M—尾数;

低23位,小数部分当E不全”0”时,且不全”1时浮点数与十进制数转换公式:

V

(1)S2(E127)(1M)

(2)瞬时流量单位

表3

代码

瞬时单位

L/S

3

M3/S

6

T/S

9

GPS

1

L/M

4

M3/M

7

T/M

GPM

2

L/H

5

M3/H

8

T/H

GPH

(3)累积总量单位

表4(适用于B型及511型电磁流量计转换器)

代码1

累积单位

L

M3

T

USG

 

表5(适用于C型电磁流量计转换器)

(4)报警

上限报警,下限报警,空管报警,系统报警表示:

0-----不报警;

1----报警

六、通讯数据解析

瞬时流量,瞬时流速,流量百分比,流体电导比,正反向累积量小数部分以

浮点数的格式传输。

正反向累积量的整数部分以长整型数传输。

1读瞬时流量

主站发送命令(十六进制)

00

74

CE

设备

寄存器

CRC

地址

地址高位

长度高位

长度低位

高位

低位

C4

1C

60

2F

72

4个字节浮点数

长度

(瞬时流量)

主站接收到数据:

浮点数

11000100000111000110000000000000

浮点数字节1浮点数字节2浮点数字节3浮点数字节4

S=1:

尾数符号为1表示是负数。

E=10001000:

指数为136

M=00111000110000000000000尾数为

=-625.5

2读瞬时流速:

主站发送命令:

D5

0E

主站接收数据:

C1

B0

80

A6

5F

(瞬时流速)

浮点数为:

C1B08000

11000001101100001111100000000000

E=10000011

M=01100001111100000000000

-22.0625

3读累积流量

为了能够完全表达电磁流量计的9位累积值,所以把累积流量的整数和小数

部分分别表达。

整数部分用长整型变量,小数部分使用浮点数

累积流量为1587m3

主站发送采集累积流量整数值命令:

18

F5

0C

70

71

1E

4个字节长整形

(累积量整数部分)

累积流量的整数部分为=28785

主站发送采集累积流量小数值命令

1A

54

CC

3F

3B

90

(累积量小数部分)

00111111000000000000000000000000

E=0111111126

M=00000000000000000000000

(126127)

V

(1)12

=0.5

4读瞬时流量单位

主站发送读瞬时流量单位8个字节命令:

20

34

C0

主站接收到从站回传7个字节数据:

79

33

2个字节整型

(瞬时流量单位)

根据表3查得:

流量单位为M3/H

5.读总量流量单位

21

65

主站接收到从站回传7个字节数据:

78

F0

(累积量单位)

B型及511型根据表4查得:

流量单位为M3

C型根据表5查得:

流量单位为L

6.读报警状态

主站发送读报警8个字节命令:

24

75

(报警)

状态为1表示空管是报警状态

其他报警依次类推。

七、应用举例

1.C语言MODBUS示例程序

(1).CRC16算法:

INT16UCRC16(INT8U*puchMsg,INT16UusDataLen)

{

lNT8UuchCRCHi=0xFF;

/*高CRC字节初始化*/

lNT8UuchCRCLo=0xFF;

/*低CRC字节初始化*/

lNT8Uulndex;

/*CRC循环中的索引*/

while(usDataLen--)

/*传输消息缓冲区*/

ulndex=uchCRCHiA*puchMsg++;

/*计算CRC*/

uchCRCHi=uchCRCLoAauchCRCHi[ulndex];

uchCRCLo=auchCRCLo[uIndex];

}

return(uchCRCHi<

<

8|uchCRCLo);

(2)发送命令程序

本例程以Mag64为核心CPU

voidRead_lnPut(lNT8UAddr,lNT16UStart,lNT16ULen){

//设备地址

//modbus功能码

//Start为寄存器地址

lNT16UCRC;

SendBuffer_485[0]=Addr;

SendBuffer_485[1]=0x04;

SendBuffer_485[2]=Start/256;

SendBuffer_485[3]=Start%256;

SendBuffer_485[4]=Len/256;

SendBuffer_485[5]=Len%256;

CRC=CRC16(SendBuffer_485,6);

SendBuffer_485[6]=CRC/256;

SendBuffer_485[7]=CRC%256;

R485_OUT;

SendLen_485=8;

SendNum_485=0;

CloseINT0();

UCSR0B|=BIT(UDRIE0);

//Len为读取寄存器长度

//CRC校验高位

//CRC校验低位

II使能RS485发送

//关闭串口接受中断

II打开串口发送中断

3)返回数据解析(只以瞬时流量为例)

数据接收使用串口中断,ReceivedBuffer_485为接收数据组,ReceivedNum_485为接收到数据长

度,ReceivedFlag_485接收到数据标志。

函数floatDatasum(INT8UBYTE1,INT8UBYTE2,INT8U

BYTE3,INT8UBYTE4)把浮点数的4个字节转换为1个浮点数。

floatDatasum(INT8UFloatByte1,INT8UFloatByte2,INT8UFloatByte3,INT8UFloatByte4)

floataa;

unionIntTOFP

FP32F32;

INT8UT8[4];

};

unionIntTOFPaa;

aa.T8[0]=FloatByte1;

aa.T8[1]=FloatByte2;

aa.T8[2]=FloatByte3;

aa.T8[3]=FloatByte4;

returnaa;

voidRead_Lmag(INT8UAd)

INT8Ui,j;

INT8UNum1[10],BIT;

INT16UCRC1,CRC2;

FP32Flow;

IIaaa为瞬时流量数值

ReceivedFlag_485=1;

Open_Time1_Ms5(20);

Read_InPut(Ad,0x1010,2);

while(ReceivedFlag_485);

II发送设备地址、寄存器地址、寄存器长度

II等待接收结束

if((ReceivedNum_485==9)&

&

(ReceivedBuffer_485[0]==Ad))

II判断数据是否正确

CRC1=CRC16(ReceivedBuffer_485,7);

CRC2=ReceivedBuffer_485[7]*256+ReceivedBuffer_485[8];

if(CRC1==CRC2)

{//转换数据为浮点数

Flow=Datasum(ReceivedBuffer_485[6],ReceivedBuffer_485[5],ReceivedBuffer_485[4],ReceivedBuffer_485[3]);

2.modbus调试软件modbuspoll通讯实例

以从站地址为1,波特率9600读取所有实时数据为例设置方法如下

按照表2所示:

起始寄存器地址4113寄存器个数为22

1.设置采集命令包括设备地址

(1)、MODBUS功能码(04)、寄存器地址(4113)、寄存器长度

(2)、采集间隔(1000)。

2.设置串口数据

根据L-mag电磁流量计串口格式(1位起始位8位数据位1位停止位,无校验)设置

如下图:

3.设置数据显示格式

4.通讯成功界面

魄ModbusPoll-[Mbpolll]

目FileCo-nnertionSetupFunctionsDisplayViewWindouvHelp_Fx

□HSX9MJ=L060615152223101發皤

Tx■:

L7L:

Err-S3:

ID-1

54113

=

-159了口。

瞬时流量

34114

3411S

-5.6330

瞬时济速

34116

34117

5石.3200

3^1113

34119

37.0000

34120

34121

0.0000

34LZ?

34123

0.7000

34124

34125

34L26

34127

□.£

000

34128

34129

0-0000

34130

34131

□.□□00

34132

34133

34134

F6rHelp,Fl.ForEdit,daublfrdklconavalue.MUM

3.modbus调试软件modscan32通讯实例

以从站地址为1波特率9600读取所有实时数据为例设置方法如下:

1.设置采集命令包括设备地址

(1)、MODBUS功能码(04)、寄存器地址(4113)、

寄存器长度

(2)、采集间隔(1000)

3.设置数据显示方式

Setup|viewWindowHelp

DataDefinition

DisplayOptions

*

“$hdvp3ta

Extended

ShewTraffic

Capture

Binary

DbaseCaflDtore

Hex

CoptuixOff

Una-grcdD«

i™l

RsEdtCtra

'

lritc?

ger

FboatingIh

Sz/apped千

DUFlcat

SnappedDbl

H&

xAddres

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

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2