智能电磁流量计是一种智能化的流量仪表,内嵌位高速处理器可以测量瞬时流量、累计流量等参数’ 数据通信传输接口为半双工方式, 支持240048009600bit/s等波***率, 接口电气标准遵从EIA/TIA-485国际标准。用户无须对流量计进行底层编程只需设置好相关参数即可。流量计内部寄存器存储的数据类型与地址如表2所示。
通信开始后, 主机向总线上发送***帧消息,智能电磁流量计侦测总线状态并接收主机送来的消息。如果消息中的地址与本站设备( 即智能电磁流量计) 地址相符, 而且计算所得的16位CRC校验码也正确, 就将收到的消息存储在缓冲区内, 接着执行主机的命令, 并根据处理结果返回***帧正确的消息作为对主机的响应, 其通信流程如图2所示。
在本系统中, 主要使用Modbus协议中的“03 ” 功能码, 它的含义是连续读取设备数据寄存器中的内容。通过设置给智能电磁流量计分配的地址是OFH,为了读取流量计的瞬时流量,主机应该发出***帧(OF 03 00000002 CS 25)消息(十六进制),此帧消息中含有如下信息:
①OF:从站设备地址(流量计地址);
②仍:功能码(读寄存器内容);
③0000:待读寄存器***地址(瞬时流量);
④0002:读2个连续的数据寄存器(因为数据类型是浮点);
⑤C5 25: CRC校验码(低字节在前、***字节在后)。
如果流量计正确收到上面信息,就立即返回与涵管当前瞬时流量对应的消息作为对主机的响应:
OF 03 04 41 B1 42 A7 20 F2
在这帧消息中,OF 03的意义同前,04指4个字节的瞬时流量,数据内容是41 BI 42 A7,流量计发出的CRC校验码是20 F2。
同理,为了读取流量计的累积流量,主机应发:
OF 03 00 13 00 04 B4 E2
如果流量计接收正确,就返回下列数据申:
OF 0308 AD DD 00 3B 4D 6F 3F 6175 7F
其中当前累积流量数据为8个字节,AD DD 00 3B 4D 6F 3F 61,CRC校验码是75 7F。
由于智能电磁流量计中的数据是以字的形式存储在寄存器组中的,而且数据的低位字在前,***位字在后,所以在解析流量数据之前,必须先要交换它们的顺序才能得到正确结果。对于瞬时流量的4个字节(41 BI)(42 A7),交换顺序后成为(42 A7) (41 BI),它是一个符合IEEE 754规范的32位浮点数值,将其还原成十进制数值,结果得到涵管当前瞬时流量值83.6263 m'/ho
对于累积流量,它的数据格式为:整数部分是长整型,而小数部分是32位浮点型,所以应分段交换顺序。整数部分交换顺序后是(00 3B) (AD DD),它对应十进制3911133,而小数部分交换顺序后是(3F 61)(4D6F),按IEEE 754浮点数规范,经过转换,其对应的十进制小数为0. 8801,所以涵管当前累积流量是3911133.88 m3。