唐山道恒科技有限公司 欢迎您!
联系方式

    地址:河北省唐山市遵化市西三里乡

    电话:18210318121)(微信号)

    电话:13931505053

    邮件:3561505056@qq.com

    网站:http://www.tsdhkj.cn

你的位置:首页 > 新闻动态 > 技术文章

超声波流量计MODBUS协议调试办法(1)

2020/4/14 9:27:58      点击:

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

超声波流量计/热能表只能支持MODBUS功能代码0306以及16三种功能代码,分别是读寄存器和写单一寄存器以及数据块写入功能。

例如在RTU方式下读取1号设备的流速,即读寄存器562个寄存器,命令如下:

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.2345678IEEE754格式单精度浮点形式。

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

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

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

      01   03   04   3F  31   00   0C   A7  ED(十六进制数字,A7 ED为效验和)

当净累计=0时,返回数据为01  03  04  00  00  00  00  FA  33

      其中FA 33为效验和。

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

 

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

01030000000AF2(回车换行)

    返回数据为 :0103280000000000000000000000000000000000000000D4

其中“:”是ASCII方式下的引导符,“F2”和“D4” 是双字节效验和。求法是把除“:”及行尾的回车换行以外的所有字符顺序进行单字节加法,不计进位,然后求补码得到的。例如上面的命令中 01h03h00h00h00h0Ah0Eh, 其补码=00EhF2。而返回数据的效验和等于 1328h2Ch,其补码=02Ch=D4h

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

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

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

 

在默认状态下通信的设置速率一般是9600、无效验、8数据位、1个停止位。

Copyright 2019 www.tsdhkj.cn

唐山道恒科技有限公司 超声波流量计TUF-2000S/便携式流量计TDS-100F/插入式传感器/外夹式传感器/手持式流量计/管段式/电磁流量计/孔板流量计/超声波液位计/hanwool记录仪保压仪 版权所有 All Rights Reserved 备案号:冀ICP备19017620号-2

在线客服

182-1031-8121