您好,欢迎访问三七文档
1串口及通讯协议1.1概述新版TUF-2000具有强大的通讯功能,能够同时支持多种不同的协议,包括MODBUS协议、MBUS、海峰FUJI扩展协议、汇中流量计水表兼容协议。海峰FUJI扩展协议是在日本FIJI超声波流量计协议的基础上扩展实现的,能够兼容FUJI超声波流量计协议,以及海峰第7版超声波流量计协议。兼容协议还可以兼容海峰水表协议以及汇中水表协议。位于M63窗口处的设置选项设置为“MODBUS-RTUONLY”时,用来支持MODBUS-RTU协议。当此选项设置为“MODBUSASCII+原协议”时,用来支持MODBUSASCII、Meter-BUS、海峰FUJI扩展协议以及汇中流量计水表兼容协议。不同的汇中流量计水表兼容协议的选择则也使用M63进行选择。在选择了“MODBUS-RTU”,“MODBUS-ASCII”之后进行选择。M62菜单用于设置串行口参数。能够支持的波特率有19200,14400,9600,4800,2400,1200,600,300共8种,停止位1比特或2比特。校验位也可以选择。使用各种组态软件自带的标准的MODBUS驱动程序可以方便地把TUF-2000连接到数据采集中。通过使用MODBUS-PROFIBUS转换器,也可以方便地把TUF-2000连接到PROFIBUS总线中。目前还已经有了多家第三方厂商的专门支持TUF-2000系列流量计的数据采集软件供用户选用,其中有些小的软件是免费的,特别方便小用户的组网使用。§1.2关于通讯方面问题的问答(1)问:为什么连接不上流量计?,接上后它不做任何反应?答:A.检查串口参数是否匹配;位于M63窗口的协议选择是否正确B.检查物理连线是否接好D.位于M46窗口的地址是否设置正确C.把流量计重新上电,应该能接收到字符“AT”,否则A和B步存在问题D.检查命令是否正确。在使用扩展协议时命令后面要紧跟者一个回车符号(2)问:为什么MODBUS读出的量值乱七八糟的,和显示值完全不一致?答:一般来说如果MODBUS协议能够读出数据就表明协议本身没有问题了。乱七八糟的数据是因为存在如下错误:A.数据格式错误;B.寄存器地址有误,导致数据发生了位移而产生错误。比如REAL4这种实型变量(IEEE754格式的单精度浮点数),按照字和字节共有4种不同的排列方式,TDS100使用的是昀常规的一种,即低word和高byte在前格式。您可以修改您的软件的数据存放格式解决这个问题。使用C语言时的数据存放顺序请参考本节的问答(8)如果使用通用的组态软件,则组态软件一般具有一个选择格式的方法。(3)问:我的系统要求每次1小时只发出一次命令然后要求同时收到多个变量,应该使用那个协议?2答:一条MODBUS命令可以一次读出很多变量。如果MODBUS-RTU不能解决问题,可以使用使用“&”连接符号连接起来的海峰扩展协议。还可以使用简易兼容协议,或者Meter-BUS协议。(4)问:为什么通过协议读出的量值和流量计显示的不一致?答:A.确认变量地址是否就是您要求的那个变量?因为流量计内部的变量太多,是否混淆了?注意在读取数据时,REG0001在命令字符串中表示为0000,而不是0001。0001在命令字符串中表示读出REG0002的内容。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时,浮点数存放顺序是怎样的?答:例如3F9E0651四个字节为1.2345678的IEEE754格式单精度浮点形式。在MODBUS数据流中的顺序是06513F9E。在X86计算机中使用C语言时,按照内存从低到高存放顺序51069E3F。§1.3MODBUS协议MODBUS协议的两种格式都能支持。通过在菜单窗口M63中,选择使用MODBUS-RTU还是MODBUS-ASCII格式。默认状态下支持MODBUS-ASCII格式。TUF-2000型系列超声波流量计/热能表只能支持MODBUS功能代码03和06以及16三种功能代码,分别是读寄存器和写单一寄存器以及数据块写入功能。例如在RTU方式下读取1号设备的流速,即读寄存器5,6共2个寄存器,命令如下:01030004000285CA(十六进制数字)设备号功能起始寄存器寄存器数目效验和其中85CA是16进制数值,是按照CRC-16(BISYNCH,多项式是x16+x15+x2+1屏蔽字为0A001H)循环冗余算法得到的。请参考MODBUS有关资料了解进一步的算法。返回的数据应该为(设定状态为模拟运行状态,流速=1.2345678m/s):01030406513F9E3B32(十六进制数字)设备号功能数据字节数数据=1.234567效验和其中3F9E0651四个字节即为1.2345678的IEEE754格式单精度浮点形式。再举例,读净累积流量,REG25,REG26两个寄存器命令如下:0103000400180002440C(十六进制数字)返回数据应该为(设净累积器=802609,其4字节16进制表示为000C3F31)0103043F31000CA7ED(十六进制数字)请注意上面例子中数据存放的顺序。对于使用C语言解释数值时,可以使用指针直接把所需的数据3放入相应的变量地址中即可,一般常用的存放顺序为低字节在前,例如上面的1.23456m/s例子中,3F9E0651数据的存放顺序为51069E3F。在ASCII方式下读取1号设备的从寄存器1开始的10个寄存器的命令如下:01030000000AF2(回车换行)其中“:”是ASCII方式下的引导符,“F2”是双字节效验和。求法是把除“:”及回车换行以外的所有字符的二进制ASCII码值进行二进制加法得到的。在MODBUS-RTU状态下,每次昀多能够读出125个寄存器。而在MODBUS-ASCII状态下每次只能读出61个寄存器。如果多于这些数目,流量计就会返回出错信息。有关MODBUS协议细节请参考有关资料。在调试MODBUS协议时,推荐使用一种免费调试软件MODSCAN,这个软件可以在互联网上搜索到。当出现问题时,如果能够接受到效验和正确的数据包则说明通讯本身是不存在问题的。在默认状态下通信的设置速率一般是9600、无效验、8数据位、1个停止位。§1.3.1MODBUS寄存器地址表(注意与水表协议的不同之处)寄存器寄存器个数变量名称数据类型说明0001-00022瞬时流量REAL4单位:立方米/小时0003-00042瞬时热流量REAL4单位:GJ/小时0005-00062流体速度REAL4单位:米/秒0007-00082测量流体声速REAL4单位:米/秒0009-00102正累积流量LONG所有使用长整数的流量累积器,其计量单位受M32(即REG1438)控制0011-00122正累积流量小数部分REAL4REAL4是标准IEEE-754格式单精度浮点数。该格式数据一般也称为FLOAT格式0013-00142负累积流量LONGLONG是低字在前带符号长整数0015-00162负累积流量小数部分REAL40017-00182正累积热量LONG所有使用长整数的热量累积器,其计量单位受M84(即REG1441)控制0019-00202正累积热量小数部分REAL40021-00222负累积热量LONG0023-00242负累积热量小数部分REAL40025-00262净累积流量LONG0027-00282净累积流量小数部分REAL40029-00302净累积热量LONG0031-00322净累积热量小数部分REAL40033-00342温度1/供水温度REAL4单位:℃0035-00362温度2/回水温度REAL4单位:℃0037-00382模拟输入AI3量REAL4转换后无量钢数据0039-00402模拟输入AI4量REAL4转换后无量钢数据40041-00422模拟输入AI5量REAL4转换后无量钢数据0043-00442模拟输入AI3电流值REAL4单位:毫安0045-00462模拟输入AI4电流值REAL4单位:毫安0047-00482模拟输入AI5电流值REAL4单位:毫安0049-00502系统设置密码BCD可写。00H表示取消密码设置00511硬件设置密码BCD可写。“A55Ah”表示打开0053-00553仪表日期时间BCD可写。6字节BCD数分别表示秒分时日月年,低位在前00561自动储存数据日小时BCD可写。2个字节表示定时储存数据开始的时间和天,例如0312H表示每月3日12时储存数据。0012H表示每日12时储存数据。00591输入键值(可模拟键盘)INTEGER可写。参看说明书键值表00601使显示器显示x号菜单INTEGER可写。00611输入背光点亮时间INTEGER可写。单位秒00621蜂鸣器剩余鸣响次数INTEGER可写。昀大255次00621OCT剩余脉冲数目INTEGER可写。昀大6553600721仪表工作错误代码BIT16比特位分别表示含义见备注40077-00782供水电阻数REAL4单位欧姆0079-00802回水电阻数REAL4单位欧姆0081-00822超声波总传播时间REAL4单位微妙0083-00842超声波传播时间时差REAL4单位纳秒0085-00862超声波上游传播时间REAL4单位微妙0087-00882超声波下游传播时间REAL4单位微妙0089-00902当前电流环输出电流值REAL4单位毫安00921工作步骤和信号质量INTEGER高字节表示信号调整步骤底字节表示信号质量,数值范围0-9,数值大表示信号好00931上游信号强度INTEGER数值范围0-409500941下游信号强度INTEGER数值范围0-409500961操作界面语言类型INTEGER0表示中文,1表示英文0097-00982超声波信号传输比REAL4正常范围100+-3%0099-01002当前雷诺数REAL40101-01022当前雷诺修正系数REAL40103-01042工作定时器时间LONG无符号,单位秒0105-01062总工作时间LONG无符号,单位秒0105-01062总上电次数LONG无符号0113-01142净累积流量(浮点形式)REAL4单位为立方米,7位有效数字0115-01162正累积流量(浮点形式)REAL4单位为立方米,7位有效数字0117-01182负累积流量(浮点形式)REAL4单位为立方米,7位有效数字0119-01202净累积热量(浮点形式)REAL4单位为GJ,7位有效数字0121-01222正累积热量(浮点形式)REAL4单位为GJ,7位有效数字0123-01242负累积热量(浮点形式)REAL4单位为GJ,7位有效数字0125-01262今天累积流量(浮点形式)REAL4单位为立方米,7位有效数字50127-01282本月累积流量(浮点形式)REAL4单位为立方米,7位有效数字0129-01302手动累积器流量LONG0131-01322手动累积器小数部分REAL40133-01342批
本文标题:串口及通讯协议
链接地址:https://www.777doc.com/doc-5519387 .html