485 通迅- Modbus协议

分享到:
点击量: 187662 来源: 上海瑾熙自动化设备有限公司

通讯协议针对L-mag电磁流量计工业应用设计,版本: Lmag-BV1,该版本主要用于实时数据采集、流量测量、流量累计控制及部分参数的修改。

 

一、主机系统通讯部件要求

1.国际标准RS-485通讯接口部件或国际标准RS-232通讯接口部件,不小于11 Bytes 的通信缓冲区(FIFO),支持120024004800960019200通讯波特率,支持半双工通讯模式。通讯程序应允许FIFO,从机要求主机FIFO不小于11Bytes

 

二、协议结构

Lmag-BV1协议遵从基本开放系统互连(OSI)参考模型,基本开放系统互连参照模型提供通讯系统基本结构和要素,但Lmag-BV1协议使用简化的OSI参照模型,仅采用127层。

 

基本开放系统互连参考模型

层号

层名

功能

L-magCP V3.4

7

应用层

 

L-magCP 命令

6

表示层

 

 

5

会话层

 

 

4

传输层

 

 

3

网络层

 

 

2

链路层

数据链路连接

L-mag CP Link

1

物理层

设备连接

RS-485RS-232

三、L-mag BV1物理结构

L-mag电磁流量计的RS-485通讯接口在物理结构上采用电气隔离方式,隔离电压1500伏。通讯数据传输接口为半双工方式,标准通讯速率大于250khz,通讯方向转换时间3.5uS。通讯接口电气标准遵从RS-485国际标准。

Lmag-BV1可用于星型式网络结构和总线式网络结构。标准通讯连接介质为屏蔽双绞线。

四、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

n8Bit

16Bit

T1-T2-T3-T4

图4 从机RTU消息帧

五、Modbus协议命令编码定义

Lmag-BV1协议遵从Modbus协议,,但Lmag-BV1协议使用简化的Modbus协议,仅采用030406功能码。

功能码

名称

作用

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

884MICRO 84

保留

19

重置通信链路

保留

20

读取通用参数(584L

保留

21

写入通用参数(584L

保留

2264

保留作扩展功能备用

保留

6572

保留以备用户功能所用

保留

73119

非法功能

保留

120127

保留

保留

128255

保留

保留

六、电磁流量计寄存器地址定义

(针对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

系统报警

七、基础数据解析

瞬时流量,瞬时流速,流量百分比,流体电导比,正反向累积量小数部分以浮点数的格式传输。正反向累积量得整数部分以长整型数传输。

瞬时流量单位表示:

0-------------L/S

1-------------L/M

2-------------L/H

3-------------M3/S

4-------------M3/M

5-------------M3/H

6-------------T/S

7-------------T/M

8-------------T/H

9-------------GPS

10------------GPM

11------------GPH

累积总量单位表示:

0--------------L

1--------------M3

2--------------T

3--------------USG

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

0---------不报警

1---------报警

 20101210


附录1:针对PLC的寄存器使用说明

modbus调试软件 modbus poll 为例,使用PLC地址采集数据。

假设从机地址为1,波特率9600,想要采集瞬时流量,设置如下图。

1设置数据显示格式

 

2设置采集命令

 

3设置串口数据

 

 

modbus调试软件modscan32为例,使用protocol为例采集数据:

1:串口参数设置

 

2:设置采集命令

 

3:设置数据显示方式

 


以组态王6.53为例说明使用方法。

**步:

创建组态王工程

 

**步:

添加标准modbus设备,组态王设备列表里的-PLC-莫迪康-modbusRTU)。

 

第三步:

设置设备地址,举例为 1

 

第四步:

设置串口参数,举例为9600 n 8 1

 

第五步:

添加变量举例瞬时流量寄存器为84113格式为浮点数(float),同时添加流速,百分比,空管比,正反向累积值。

分别为

变量名

寄存器值

数据格式

瞬时流量

84113

Float

瞬时流速

84115

Float

流量百分比

84117

Float

流体电导比

84119

Float

正向累积值整数部分

84121

Long

正向累积值小数部分

84123

Float

反向累积值整数部分

84125

Long

反向累积值小数部分

84127

Float

 

寄存器值为8XXXX而不是3XXXX,原因详见组态王驱动说明

 

 

第六步:

创建窗口界面并连接变量

 

第七步:

保存更改并运行工程

 


以力控6.1为例,说明使用方法

**步:

创建一个工程

 

**步:

IO口设备组态选择IO设备-modbus-标准modbus-modbusRTU串口)

 

选择串口

 

设置显示数据格式

 

第三步:

数据库组态

 

设置数据格式及地址偏移

 

数据举例

 

第四步:

创建窗口并连接变量

 

第五步:

运行工程