电磁流量转换器 MODBUS通讯说明书
2008-9-2
目录
一、概述
二、读流量信息
三、读参数
四、改写参数
五、安装与布线
六、通讯测试
一、概述
在传统的自动化监控及信息集成系统中,很多现场层设备与控制器之间的连接是一对一(一个I/O点对设备的一个测控点)所谓I/O接线方式,信号传递通常是采用4-20mA(传送模拟量信息)或24VDC(传送开关量信息)信号。但是这样的系统存在一些明显的缺点,那就是信息集成能力不强;系统不开放、可集成性差、专业性不强;可靠性不易保证;可维护性不高等等。如果现场层设备配有串行数据接口(如RS-232/485),控制器就可以按接口规定协议,通过串行通信方式(而不是I/O方式)完成对现场设备的监控。如果设想全部或大部分现场设备都具有串行通信接口并具有统一的通信协议,控制器只需一根通信电缆就可将分散的现场设备连接,完成对所有现场设备的监控,这就是所说的采用现场总线技术。
我公司的电磁流量计都配有串行数据接口(如RS-232/485),根据总线协议的不同,用户可以选择不同通讯功能的电磁流量计。目前,我公司开发了多种采用485总线协议的通讯,包括带MODBUS总线协议的通讯、带PROFIBUS-DP接口的通讯、带HART总线协议的通讯及自定义的、带MBmagCP V1.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 CRC低字节 7 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 07 10 13 16 19 22 参数定义 参数取值范围 瞬时流量 流速 百分比 空管电阻 正向累计 反向累计 仪表口径 报警状态 数据长度 3 3 3 3 3 3 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 从机响应: 01H 03H 06H D0 D1 D2 D3 D4 03H 44H 0AH D5 CRC16低 CRC16高 如果数据以整形数格式进行传输,则D0、D1代表流速整数部分的高4位(16进制),D2、D3代表流速整数部分的低4位(16进制),D4、D5代表流速小数部分值(16进制)。
3)、流量百分比信息定义 主机发送: 01H 03H 00H 07H 00H 从机响应: 01H 03H 06H D0 D1 D2 D3 D4 03H B4H 0AH D5 CRC16低 CRC16高 如果数据以整形数格式进行传输,则D0、D1代表百分比值整数部分的高4位(16进制),D2、D3代表百分比值整数部分的低4位(16进制),D4、D5代表百分比值小数部分值(16进制)。
4)、电极电阻信息定义 主机发送: 01H 03H 00H 0AH 00H 从机响应: 01H 03H 06H D0 D1 D2 D3 D4 03H 25H C9H D5 CRC16低 CRC16高 如果数据以整形数格式进行传输,则D0、D1代表电极电阻整数部分的高4位(16进制),D2、D3代表电极电阻整数部分的低4位(16进制),D4、D5代表电极电阻小数部分值(16进制)。
5)、正向总量信息定义 主机发送: 01H 03H 00H 0DH 00H 从机响应: 01H 03H 06H D0 D1 D2 D3 D4 03H 94H 08H D5 CRC16低 CRC16高