超声波流量计MODBUS协议介绍

MODBUS协议的两种格式都能支持。通过在菜单窗口M63中,选择使用MODBUS-RLR还是MODBUS-ASCII格式。默认状态下支持MODBUS-ASCII格式。

LRF-2000型系列便携式超声波流量计/热能表只能支持MODBUS功能代码03和06以及16三种功能代码,分别是读寄存器和写单一寄存器以及数据块写入功能。

例如在RLR方式下读取1号设备的流速,即读寄存器5,6共2个寄存器,命令如下:

01      03    00   04     00   02    85  CA  (十六进制数字)

设备号  功能   起始寄存器   寄存器数目  效验和

其中85  CA 是16进制数值,是按照CRC-16 (BISYNCH,多项式是x16 + x15 + x2 + 1屏蔽字为0A001H)循环冗余算法得到的。请参考MODBUS有关资料了解进一步的算法。

返回的数据应该为(设定状态为模拟运行状态,流速=1.2345678m/s

      01      03    04         06  51  3F  9E   3B  32(十六进制数字)

设备号  功能   数据字节数  数据=1.234567    效验和

其中 3F 9E 06 51四个字节即为1.2345678的IEEE754格式单精度浮点形式。

再举例,读净累积流量,REG25,REG26两个寄存器命令如下:

      01   03   00   04  00  18  00  02  44  0C(十六进制数字)

返回数据应该为(设净累积器=802609,其4字节16进制表示为 00 0C 3F 31)

      01   03   04   3F  31   00   0C   A7  ED(十六进制数字)

请注意上面例子中数据存放的顺序。对于使用C语言解释数值时,可以使用指针直接把所需的数据放入相应的变量地址中即可,一般常用的存放顺序为低字节在前,例如上面的1.23456m/s例子中,3F 9E 06 51数据的存放顺序为 51 06 9E 3F。

 

在 ASCII方式下读取1号设备的从寄存器1开始的10个寄存器的命令如下

:01030000000AF2(回车换行)

其中“:”是ASCII方式下的引导符,“F2” 是双字节效验和。求法是把除“:”及回车换行以外的所有字符的二进制ASCII码值进行二进制加法得到的。

在MODBUS-RLR状态下,每次最多能够读出125个寄存器。而在MODBUS-ASCII状态下每次只能读出61个寄存器。如果多于这些数目,流量计就会返回出错信息。

有关MODBUS协议细节请参考有关资料。

在调试MODBUS协议时,推荐使用一种免费调试软件MODSCAN,这个软件可以在互联网上搜索到。当出现问题时,如果能够接受到效验和正确的数据包则说明通讯本身是不存在问题的。

 

在默认状态下通信的设置速率一般是9600、无效验、8数据位、1个停止位。
本文由超声波流量计厂家——龙润机电有限公司提供  产品列表:管段式超声波流量计 外夹式超声波流量计 插入式超声波流量计 手持式超声波流量计