BCgame game

联系我们

400-665-1992

大连BCgame超声波流量计支持哪些通讯协议

来源:本站 发布时间:2020-09-18

大连BCgame game超声流量计串口及通讯协议

§1.1 概述

新一代TDS-100系列产品本身带有隔离的RS485接口,可以同时支持多种常用的通讯协议,包括MODBUS、M-BUS、BCgameFUJI扩展协议、并兼容汇中公司产品通讯协议。
MODBUS协议是常规的工控协议,TDS-100系列产品支持RTU和ASCII两种格式。
M-BUS是国际上常用热表计量协议,使用该协议在M63菜单中选择“MODBUS  ASCII”选项。
BCgameFUJI扩展协议是在日本FIJI超声波流量计协议的基础上扩展实现的,能够兼容FUJI超声波流量计协议,以及第7版超声波流量计协议。
兼容协议可以兼容BCgame水表协议以及汇中公司产品通讯协议,为方便用户把TDS-100系列产品接入用户按照国内其它厂家通讯协议而开发的数据采集系统中,目前可以支持12种兼容通讯协议。使用兼容通讯协议,用户需要在M63中选择“MODBUS  ASCII”选项后再选择协议中的一种即可。
TDS-100系列产品还能够起到简易RTU设备的作用,可使用电流环及OCT输出控制步进式或模拟式电磁阀的开度,OCT输出可控制其他设备的上下电,其1路模拟输入可用来输入压力、温度等信号。
位于M63窗口处的设置选项设置为“MODBUS-RTU ONLY”时,用来支持MODBUS-RTU协议。当此选项设置为“MODBUS ASCII+原协议”时,用来支持MODBUS ASCII、Meter-BUS、BCgameFUJI扩展协议以及汇中流量计水表兼容协议。
不同的汇中流量计水表兼容协议的选择则也使用M63进行选择。在选择了“MODBUS-RTU”,“MODBUS-ASCII”之后进行选择。
M62菜单用于设置串行口参数。能够支持的波特率有19200,14400, 9600, 4800, 2400, 1200, 600, 300共8种,停止位1比特或2比特。校验位也可以选择。
使用各种组态软件自带的标准MODBUS驱动程序可以方便地把TDS-100连接到数据采集中。
通过使用MODBUS-PROFIBUS转换器,也可以方便地把TDS-100连接到PROFIBUS总线中。
使用RS485则可以接入RS-485总线。也可以使用本公司生产的GSM短信息模块板,通过短信息传输流量/热量测量数据。该模块板可以多机组网,还可以使用普通手机(移动电话)查看流量计的工作状态和测量数据。
在网络环境中使用时,除标识地址码的编程需使用串口或并口操作键盘外,其他各个量的操作均可在上位机上进行,数据的传输采用命令应答方式,即上位机发出命令,流量计做出相应的回答。
流量数据采集可以使用本公司研制开发的通用/专用流量/热量数据监控系统,该系统基于TDS-100流量计的特点,充分利用了流量计特色的软硬件设计,具有投资少、系统简单明快、运行可靠等特点。
目前还已经有了多家第三方厂商的专门支持TDS-100系列流量计的数据采集软件供用户选用,其中有些小的软件是免费的,特别方便小用户的组网使用。
为了通讯调试的方便,新版TDS-100设有一个模拟运行状态。在此状态下,流量计不需要接入管道,即可模拟工作,用于调试,参看下一节的问答。

§1.2 关于通讯方面问题的问答

 大连BCgame超声波流量计支持哪些通讯协议
(1) 问:为什么连接不上流量计?,接上后它不做任何反应?
答: A. 检查串口参数是否匹配;位于M63窗口的协议选择是否正确
     B.检查物理连线是否接好
     D.位于M46窗口的地址是否设置正确
  C.把流量计重新上电,应该能接收到字符“AT”,否则A和B步存在问题
D.检查命令是否正确。在使用扩展协议时命令后面要紧跟者一个回车符号
(2) 问:为什么MODBUS读出的量值乱七八糟的,和显示值完全不一致?
答:一般来说如果MODBUS协议能够读出数据就表明协议本身没有问题了。乱七八糟的数据是因为存在如下错误:
    A.数据格式错误; B.寄存器地址有误,导致数据发生了位移而产生错误。
比如REAL4这种实型变量(IEEE754格式的单精度浮点数),按照字和字节共有4种不同的排列方式,TDS100使用的是最常规的一种,即低word和高byte在前格式。您可以修改您的软件的数据存放格式解决这个问题。如果使用通用的组态软件,则组态软件一般具有一个选择格式的方法。
(3) 问:我的系统要求每次1小时只发出一次命令然后要求同时收到多个变量,应该使用     那个协议?
          答:一条MODBUS命令可以一次读出很多变量。如果MODBUS-RTU不能解决问题,可以使用使用“&”连接符号连接起来的BCgame扩展协议。还可以使用简易兼容协议,或者Meter-BUS协议。
(4) 问:为什么通过协议读出的量值和流量计显示的不一致?
          答:A. 确认变量地址是否就是您要求的那个变量?因为流量计内部的变量太多,是否混淆了? 注意在读取数据时,REG 0001在命令字符串中表示为0000,而不是0001。0001在命令字符串中表示读出REG 0002的内容。 
              B.对于累积量只能显示7位10进制数字,而通过MODBUS协议可以读出8位10进制数字。这种情况下,读出来的数值的后7位是一样的。
(5) 问:我的系统不能支持长整数以及实型变量格式,应该怎么办?
      答:需要采用数值转换方式,或查找新驱动程序解决。
(6) 问:MODBUS有测试程序吗?
答:有!推荐使用MODSCAN这个软件,可以在网上搜到。这个程序很是方便,有助于方便检查读出的数据,理解各种类型数据的含义。
(7) 问:流量计是否具有模拟运行状态以方便测试,怎样设置?
答:有!在M11窗口中输入0值即启动模拟运行状态。模拟运行状态下总是设置流速为1.2345678m/s,瞬时流量等于0,并且显示“R”状态。如果要求瞬时流量为设定值,则可以通过在M44窗口中输入一个负的设定值实现。例如在M44窗口中输入-3600立方米/秒。瞬时流量就会显示为3600立方米/秒。这时所有累积器也会做相应的累积。因此就得到了变化的累积量输出。使用这个功能,能在不接传感器的条件下,特别方便与联网软件的调试以及流量计功能的测试。
(8) 问:使用C时,浮点数存放顺序是怎样的?
答:例如3F 9E 06 51四个字节为1.2345678的IEEE754格式单精度浮点形式。在MODBUS数据流中的顺序是06 51 3F 9E,1号地址数据流应该是01 03 04 06 51 3F 9E 3B 32(十六进制数字)。在X86计算机中使用C语言时,按照内存从低到高存放顺序51 06 9E 3F。
         再例如读取净累积寄存器REG25,REG26两个寄存器命令如下:
          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为效验和)
 

§1.3 MODBUS协议

MODBUS协议的两种格式都能支持。通过在菜单窗口M63中,选择使用MODBUS-RTU还是MODBUS-ASCII格式。默认状态下支持MODBUS-ASCII格式。
TDS-100型系列超声波流量计/热能表只能支持MODBUS功能代码03和06以及16三种功能代码,分别是读寄存器和写单一寄存器以及数据块写入功能。
例如在RTU方式下读取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  25  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” 是双字节效验和。求法是把除“:”及行尾的回车换行以外的所有字符顺序进行单字节加法,不计进位,然后求补码得到的。例如上面的命令中 01h+03h+00h+00h+00h+0Ah=0Eh, 其补码=0-0Eh=F2。而返回数据的效验和等于 1+3+28h=2Ch,其补码=0-2Ch=D4h。
在MODBUS-RTU状态下,每次最多能够读出125个寄存器。而在MODBUS-ASCII状态下每次只能读出61个寄存器。如果多于这些数目,流量计就会返回出错信息。
有关MODBUS协议细节请参考有关资料。
在调试MODBUS协议时,推荐使用一种免费调试软件MODSCAN,这个软件可以在互联网上搜索到。当出现问题时,如果能够接受到效验和正确的数据包则说明通讯本身是不存在问题的。
 
在默认状态下通信的设置速率一般是9600、无效验、8数据位、1个停止位。
版权所有©BCgame game
辽公网安备 21021102000745号
电话:0411-86867705/7706/7704/7756 座机:400-665-1992 传真:0411-86867753
地址:大连市甘井子区张前路588号A区4号
HTML MAP|XML MAP|TXT MAP