超声波流量计串口及通讯协议

上传人:平*** 文档编号:13103383 上传时间:2017-10-22 格式:DOC 页数:16 大小:405.95KB
返回 下载 相关 举报
超声波流量计串口及通讯协议_第1页
第1页 / 共16页
超声波流量计串口及通讯协议_第2页
第2页 / 共16页
超声波流量计串口及通讯协议_第3页
第3页 / 共16页
超声波流量计串口及通讯协议_第4页
第4页 / 共16页
超声波流量计串口及通讯协议_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《超声波流量计串口及通讯协议》由会员分享,可在线阅读,更多相关《超声波流量计串口及通讯协议(16页珍藏版)》请在金锄头文库上搜索。

1、串口及通讯协议1.1概述新一代 UFT系列产品本身带有隔离的 RS485接口,可以同时支持多种常用的通讯协议,包括 MODBUS协议、M-BUS、FUJI 扩展协议、并兼容国内其它厂家协议。MODBUS协议是常规的工控常用协议。MODBUS 的两种格式 RTU和 ASCII都能支持。M-BUS是国际上常用热表计量协议,使用该协议在 M63菜单中选择“MODBUS ASCII”选项。天泽 FUJI扩展协议是在日本 FIJI超声波流量计协议的基础上扩展实现的,能够兼容 FUJI超声波流量计协议,以及第 7版超声波流量计协议。兼容协议可以兼容水表协议以及国内其他厂家协议,为了方便用户把 UFT系列产

2、品接入用户按照国际其它厂家通讯协议而开发的数据采集系统中,目前可以支持 12种兼容通讯协议。使用兼容通讯协议,用户需要在 M63中,选择:MODBUS ASCII 选项后再选择协议中的任意一种即可。UFT系列产品还能够起到简易 RTU设备的作用,可使用电流环及 OCT输出控制步进式或模拟式电磁阀的开度,OCT 输出可控制其它设备的上下电,其 1路模拟输入可用来输入压力、温度等信号。位于 M63窗口外的设置选项设置为“MODBUS-RTU ONLY”时,用来支持 MODBUS-RTU协议,当此选项设置为“MODBUS ASCII、Meter-BUS、天泽 FUJI扩展协议及汇中流量计水表兼容协议

3、。不同的汇中流量计水表兼容协议的选择则也使用 M63进行选择,在选择了“MODBUS-RTU” 、 “MODBUS-ASCII”之后进行选择。M62菜单用于设置串口参数,能够支持的波特率有19200、14400、9600、4800、2400、1200、600、300 共 8种,停止位 1比特或 2比特、校验位也可以选择。使用各种组态软件自带的标准 MODBUS驱动,程序可以方便的把 UFT连接到数据采集中。通过使用 MODBUS-PROFTBUS转换器,也可以方便的把 UFT连接到 PROFIBUS总线中。使用 RS485则可以接入 RS-485总线,也可以使用本公司生产的 GSM短信息模块板

4、,通过短信息传输流量/热量测量数据。该模块板可以多机组网,还可以使用普通手机(移动电话)查看流量计的工作状态和测量数据。在网络环境中使用时,除标识地址码的编程需使用串口或并口操作键盘外,其它各个量的操作均可在上位机上进行。数据的传输采用命令应答方式即上位机发出命令流量计作出相应的回答。流量数据采集可以使用本公司研制开发的通用/专用流量/热量数据监控系统,该系统基于 UFT流量计的特点,充分利用了流量计特色的软硬件设计,具有投资少,系统简单明快、运行可靠等特点。为了通讯调试的方便,新版 UFT设有一个模拟运行状态,在此状态下流量计不需要接入管道,即可模拟工作,用于调试,参看下一节的问答。1.2关

5、于通讯方面问题的问答(1) 问:为什么我就连接不上流量计,它不做任何反应?答:A. 检查串口参数是否匹配;位于 M63窗口的协议选择是否正确B检查物理连线是否接好D位于 M46窗口的地址是否设置正确C把流量计重新上电,应该能接收到字符“AT” ,否则 A和 B步存在问题D检查命令是否正确。在使用扩展协议时命令后面要紧跟者一个回车符号(2) 问:为什么 MODBUS读出的量值乱七八糟的,和显示值完全不一致?答:一般来说如果 MODBUS协议能够读出数据就表明协议本身没有问题了。乱七八糟的数据是因为存在如下错误:A数据格式错误, B.寄存器地址有误,导致数据发生了位移而产生错误。比如 REAL4这

6、种实型变量(IEEE754 格式的单精度浮点数) ,按照字和字节共有 4种不同的排列方式,UFT 使用的是最常规的一种,即低 word和高 byte在前格式。您可以修改您的软件的数据存放格式解决这个问题。如果使用通用的组态软件,则组态软件一般具有一个选择格式的方法。(3) 问:我的系统要求每次 1小时只发出一次命令然后要求同时收到多个变量,应该使用哪个协议?答:一条 MODBUS命令可以一次读出很多变量。如果 MODBUS-RTU不能解决问题,可以使用使用“&”连接符号连接起来的扩展协议。还可以使用简易兼容协议,或者 Meter-BUS协议。(4) 问:为什么通过协议读出的量值和流量计显示的不

7、一致?答:A. 确认变量地址是否就是您要求的那个变量?因为流量计内部的变量太多,是否混淆了? 注意在读取数据时,REG 0001在命令字符串中表示为 0000,而不是 0001。0001 在命令字符串中表示读出 REG 0002的内容。 B对于累积量只能显示 7位 10进制数字,而通过 MODBUS协议可以读出 8位 10进制数字。这种情况下,读出来的数值的后 7位是一样的。(5) 问:我的系统不能支持长整数以及实型变量格式,应该怎么办?答:需要采用数值转换方式,或查找新驱动程序解决。(6) 问:MODBUS 有测试程序吗?答:有!推荐使用 MODSCAN这个软件,可以在网上搜到。这个程序很是

8、方便,有助于方便检查读出的数据,理解各种类型数据的含义。(7) 问:流量计是否具有模拟运行状态以方便测试,怎样设置?答:有!在 M11窗口中输入 0值即启动模拟运行状态。模拟运行状态下总是设置流速为 1.2345678m/s,瞬时流量等于 0,并且显示“R”状态。如果要求瞬时流量为设定值,则可以通过在 M44窗口中输入一个负的设定值实现。例如在 M44窗口中输入-3600 立方米/秒。瞬时流量就会显示为 3600立方米/秒。这时所有累积器也会做相应的累积。因此就得到了变化的累积量输出。使用这个功能,能在不接传感器的条件下,特别方便与联网软件的调试以及流量计功能的测试。(8)问:使用 C时,浮点

9、数存放顺序是怎样的?答:例如 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 3

10、F 31 00 0C A7 ED (十六进制数字,A7 ED 为校验和)1.3 MODBUS协议MODBUS协议的两种格式都能支持。通过在菜单窗口 M63中,选择使用 MODBUS-RTU还是 MODBUS-ASCII格式。默认状态下支持 MODBUS-ASCII格式。UFT型系列超声波流量计/热量计只能支持 MODBUS功能代码 03和 06以及 16三种功能代码,分别是读寄存器和写单一寄存器以及数据块写入功能。例如在 RTU方式下读取 1号设备的流速,即读寄存器 5,6 共 2个寄存器命令如下01 03 00 00 04 02 85 CA (十六进制数字)设备号 功能 起始寄存器 寄存器数

11、目 效验和其中 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

12、 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 .在

13、 ASCII 方式下读取 1号设备的从寄存器 1开始的 10个寄存器的命令如下:01030000000AF2(回车换行)返回数据为:0103280000000000000000000000000000000000000000D4其中“:”是 ASCII方式下的引导符, “F2” 是双字节效验和。求法是把除“:”及行尾的回车换行以外的所有字符顺序进行单字节加法,不计进位,然后求补码得到的。例如上面的命令中01h+03h+00h+00h+00h+0Ah=0Eh,其补码=0-0Eh=F2,而返回数据的效验和等于 1+3+28h=2Ch,其补码=0-2Ch=D4h。在 MODBUS-RTU状态下,每次

14、最多能够读出 125个寄存器,而在 MODBUS-ASCII状态下每次只能读出61个寄存器,如果多于这些数目流量计就会返回出错信息。有关 MODBUS协议细节请参考有关资料。在调试 MODBUS协议时,推荐使用一种免费调试软件 MODSCAN,这个软件可以在互联网上搜索到。当出现问题时,如果能够接受到效验和正确的数据包则说明通讯本身是不存在问题的。在默认状态下通信的设置速率一般是 9600、无效验、8 数据位、1 个停止位。1.3.1 MODBUS寄存器地址表(注意与水表协议的不同之处)寄存器 寄存器个数变量名称 数据类型 说明0001-0002 2 瞬时流量 REAL4 单位:立方米/小时(

15、32 位浮点数)0003-0004 2 瞬时热流量 REAL4 单位:GJ/小时0005-0006 2 流体速度 REAL4 单位:米/秒0007-0008 2 测量流体声速 REAL4 单位:米/秒(32 位浮点数)0009-0010 2 正累积流量 LONG 所有使用长整数的流量累积器,其计量单位受 M32(即REG1438)控制0011-0012 2 正累积流量小数部分 REAL40013-0014 2 负累积流量 LONG0015-0016 2 负累积流量小数部分 REAL40017-0018 2 正累积热量 LONGREAL4是标准 IEEE-754格式单精度浮点数。该格式数据一般也

16、称为 FLOAT格式(32 位整数)0019-0020 2 正累积热量小数部分 REAL40021-0022 2 负累积热量 LONG0023-0024 2 负累积热量小数部分 REAL40025-0026 2 净累积流量 LONG0027-0028 2 净累积流量小数部分 REAL40029-0030 2 净累积热量 LONG0031-0032 2 净累积热量小数部分 REAL4LONG是低字在前带符号长整数(32 位整数)0033-0034 2 温度 1/进水温度 REAL4 单位:(32 位浮点数)0035-0036 2 温度 2/回水温度 REAL4 单位:(32 位浮点数)0037-0038 2 模拟输入 AI3量 REAL4 转换后无量钢数据0039-0040 2 模拟输入 AI4量 REAL4 转换后无量钢数据0041-0042 2 模拟输入 AI5量 REA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号