Contract
串口及通讯协议
1.1 概述
新版TUF-2000 具有强大的通讯功能,能够同时支持多种不同的协议,包括 MODBUS 协议、MBUS、海峰 FUJI 扩展协议、汇中流量计水表兼容协议。
FUJI 扩展协议是在日本 FIJI 超声波流量计协议的基础上扩展实现的,能够兼容 FUJI 超声波流量计协议,以及海峰第 7 版超声波流量计协议。
兼容协议还可以兼容水表协议。
位于M63 窗口处的设置选项设置为“MODBUS-RTU ONLY”时,用来支持 MODBUS-RTU 协议。当此选项设置为“MODBUS ASCII+原协议”时,用来支持 MODBUS ASCII、Meter-BUS、FUJI 扩展协议以及汇中流量计水表兼容协议。
不同的汇中流量计水表兼容协议的选择则也使用 M63 进行选择。在选择了“ MODBUS-RTU ”, “MODBUS-ASCII”之后进行选择。
M62 菜单用于设置串行口参数。能够支持的xx率有 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 小时只发出一次命令然后要求同时收到多个变量,应该使用 那个协议?
答:一条 MODBUS 命令可以一次读出很多变量。如果 MODBUS-RTU 不能解决问题,可以使用使用“&”连接符号连接起来的海峰扩展协议。还可以使用简易兼容协议,或者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。在 X86 计算机中使用 C 语言时,按照内存从低到高存放顺序 51 06 9E 3F。
§1.3 MODBUS 协议
MODBUS 协议的两种格式都能支持。通过在菜单窗口 M63 中,选择使用 MODBUS-RTU 还是 MODBUS-ASCII格式。默认状态下支持 MODBUS-ASCII 格式。
TUF-2000 型系列超声波流量计/热能表只能支持 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 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-RTU 状态下,每次最多能够读出 125 个寄存器。而在MODBUS-ASCII 状态下每次只能读出 61 个寄存器。如果多于这些数目,流量计就会返回出错信息。
有关MODBUS 协议细节请参考有关资料。
在调试MODBUS 协议时,推荐使用一种免费调试软件 MODSCAN,这个软件可以在互联网上搜索到。当出现问题时,如果能够接受到效验和正确的数据包则说明通讯本身是不存在问题的。
在默认状态下通信的设置速率一般是 9600、无效验、8 数据位、1 个停止位。
§1.3.1 MODBUS 寄存器地址表
(注意与水表协议的不同之处)
寄存器 | 寄存器 个数 | 变量名称 | 数据类型 | 说明 |
0001-0002 | 2 | 瞬时流量 | REAL4 | 单位:立方米/小时 |
0003-0004 | 2 | 瞬时热流量 | REAL4 | 单位:GJ/小时 |
0005-0006 | 2 | 流体速度 | REAL4 | 单位:米/秒 |
0007-0008 | 2 | 测量流体声速 | REAL4 | 单位:米/秒 |
0009-0010 | 2 | 正累积流量 | LONG | 所有使用长整数的流量累积器,其计量单位受 M32(即REG1438) 控制 |
0011-0012 | 2 | 正累积流量小数部分 | REAL4 | REAL4 是标准 IEEE-754 格式单精度浮点数。该格式数据一般也称 为 FLOAT 格式 |
0013-0014 | 2 | 负累积流量 | LONG | LONG 是低字在前带符号长整数 |
0015-0016 | 2 | 负累积流量小数部分 | REAL4 | |
0017-0018 | 2 | 正累积热量 | LONG | 所有使用长整数的热量累积器,其计量单位受 M84(即REG1441) 控制 |
0019-0020 | 2 | 正累积热量小数部分 | REAL4 | |
0021-0022 | 2 | 负累积热量 | LONG | |
0023-0024 | 2 | 负累积热量小数部分 | REAL4 | |
0025-0026 | 2 | 净累积流量 | LONG | |
0027-0028 | 2 | 净累积流量小数部分 | REAL4 | |
0029-0030 | 2 | 净累积热量 | LONG | |
0031-0032 | 2 | 净累积热量小数部分 | REAL4 | |
0033-0034 | 2 | 温度 1/供水温度 | REAL4 | 单位:℃ |
0035-0036 | 2 | 温度 2/回水温度 | REAL4 | 单位:℃ |
0037-0038 | 2 | 模拟输入 AI3 量 | REAL4 | 转换后无量钢数据 |
0039-0040 | 2 | 模拟输入 AI4 量 | REAL4 | 转换后无量钢数据 |
0041-0042 | 2 | 模拟输入 AI5 量 | REAL4 | 转换后无量钢数据 |
0043-0044 | 2 | 模拟输入 AI3 电流值 | REAL4 | 单位:毫安 |
0045-0046 | 2 | 模拟输入 AI4 电流值 | REAL4 | 单位:毫安 |
0047-0048 | 2 | 模拟输入 AI5 电流值 | REAL4 | 单位:毫安 |
0049-0050 | 2 | 系统设置密码 | BCD | 可写。00H 表示取消密码设置 |
0051 | 1 | 硬件设置密码 | BCD | 可写。“A55Ah”表示打开 |
0053-0055 | 3 | 仪表日期时间 | BCD | 可写。6 字节BCD 数分别表示秒分 时日月年,低位在前 |
0056 | 1 | 自动储存数据日小时 | BCD | 可写。2 个字节表示定时储存数据开始的时间和天,例如 0312H 表示每月 3 日 12 时储存数据。0012H 表示每日 12 时储存数据。 |
0059 | 1 | 输入键值(可模拟键盘) | INTEGER | 可写。参看说明书键值表 |
0060 | 1 | 使显示器显示x 号菜单 | INTEGER | 可写。 |
0061 | 1 | 输入背光点亮时间 | INTEGER | 可写。单位秒 |
0062 | 1 | 蜂鸣器剩余鸣响次数 | INTEGER | 可写。最大 255 次 |
0062 | 1 | OCT 剩余脉冲数目 | INTEGER | 可写。最大 65536 |
0072 | 1 | 仪表工作错误代码 | BIT | 16 比特位分别表示含义见备注 4 |
0077-0078 | 2 | 供水电阻数 | REAL4 | 单位欧姆 |
0079-0080 | 2 | 回水电阻数 | REAL4 | 单位欧姆 |
0081-0082 | 2 | 超声波总传播时间 | REAL4 | 单位微妙 |
0083-0084 | 2 | 超声波传播时间时差 | REAL4 | 单位纳秒 |
0085-0086 | 2 | 超声波上游传播时间 | REAL4 | 单位微妙 |
0087-0088 | 2 | 超声波下游传播时间 | REAL4 | 单位微妙 |
0089-0090 | 2 | 当前电流环输出电流值 | REAL4 | 单位毫安 |
0092 | 1 | 工作步骤和信号质量 | INTEGER | 高字节表示信号调整步骤 底字节表示信号质量,数值范围 0-9,数值大表示信号好 |
0093 | 1 | 上游信号强度 | INTEGER | 数值范围 0-4095 |
0094 | 1 | 下游信号强度 | INTEGER | 数值范围 0-4095 |
0096 | 1 | 操作界面语言类型 | INTEGER | 0 表示中文,1 表示英文 |
0097-0098 | 2 | 超声波信号传输比 | REAL4 | 正常范围 100+-3% |
0099-0100 | 2 | 当前雷诺数 | REAL4 | |
0101-0102 | 2 | 当前雷诺修正系数 | REAL4 | |
0103-0104 | 2 | 工作定时器时间 | LONG | 无符号,单位秒 |
0105-0106 | 2 | 总工作时间 | LONG | 无符号,单位秒 |
0105-0106 | 2 | 总上电次数 | LONG | 无符号 |
0113-0114 | 2 | 净累积流量(浮点形式) | REAL4 | 单位为立方米,7 位有效数字 |
0115-0116 | 2 | 正累积流量(浮点形式) | REAL4 | 单位为立方米,7 位有效数字 |
0117-0118 | 2 | 负累积流量(浮点形式) | REAL4 | 单位为立方米,7 位有效数字 |
0119-0120 | 2 | 净累积热量(浮点形式) | REAL4 | 单位为 GJ,7 位有效数字 |
0121-0122 | 2 | 正累积热量(浮点形式) | REAL4 | 单位为 GJ,7 位有效数字 |
0123-0124 | 2 | 负累积热量(浮点形式) | REAL4 | 单位为 GJ,7 位有效数字 |
0125-0126 | 2 | 今天累积流量( 浮点形 式) | REAL4 | 单位为立方米,7 位有效数字 |
0127-0128 | 2 | 本月累积流量( 浮点形 式) | REAL4 | 单位为立方米,7 位有效数字 |
0129-0130 | 2 | 手动累积器流量 | LONG | |
0131-0132 | 2 | 手动累积器小数部分 | REAL4 | |
0133-0134 | 2 | 批量控制器累积流量 | LONG | |
0135-0136 | 2 | 批量控制器小数部分 | REAL4 | |
0137-0138 | 2 | 今天累积流量 | LONG | |
0139-0140 | 2 | 今天累积流量小数部分 | REAL4 | |
0141-0142 | 2 | 本月累积流量 | LONG | |
0143-0144 | 2 | 本月累积流量小数部分 | REAL4 | |
0145-0146 | 2 | 今年累积流量 | LONG | |
0147-0148 | 2 | 今年累积流量小数部分 | REAL4 | |
0158 | 1 | 当前显示所在菜单 | INTEGER | |
0165-0166 | 2 | 故障运行时间 | LONG | 单位:秒 |
0173-0174 | 2 | 当前频率输出值 | REAL4 | 单位:Hz |
0175-0176 | 2 | 当前电流环输出值 | REAL4 | 单位:mA |
0181-0182 | 2 | 当前温差 | REAL4 | 单位:℃ |
0183-0184 | 2 | 本次上电所补加的流量 | REAL4 | 单位:立方米 |
0185-0186 | 2 | 频率系数 | REAL4 | 应该小于 0.1 |
0187-0188 | 2 | 自动储存总时间 | LONG | 储存时间由寄存器 0056 确定 |
0189-0190 | 2 | 自动储存正累积流量 | REAL4 | 储存时间由寄存器 0056 确定 |
0191-0192 | 2 | 自动储存瞬时流量 | REAL4 | 储存时间由寄存器 0056 确定 |
0221-0222 | 2 | 管道内经 | REAL4 | 单位毫米 |
0229-0230 | 2 | 上游传播延迟 | REAL4 | 单位微秒 |
0231-0232 | 2 | 下游传播延迟 | REAL4 | 单位微秒 |
0233-0234 | 2 | 估算总传播时间 | REAL4 | 单位微秒 |
0257-0288 | 32 | 显示器缓冲区 | BCD | 可读出 |
0289 | 1 | 显示器缓冲区存储指针 | INTEGER | |
0311 | 2 | 今天已工作时间 | LONG | 无符号,单位秒 |
0313 | 2 | 本月已工作时间 | LONG | 无符号,单位秒 |
0315 | 2 | 今天最大瞬时流量 | INTEGER | 单位: m3/h |
0317 | 2 | 当月最大瞬时流量 | INTEGER | 单位: m3/h |
1437 | 1 | 当前瞬时流量计量单位 | INTEGER | 取值 0-31 见注 5 |
1438 | 1 | 当前累积流量计量单位 | INTEGER | 取值 0-7 见注 1 |
1439 | 1 | 当前累积流量倍乘因子 | INTEGER | n 取值 0-7, 见注解 1 |
1440 | 1 | 当前累积热量倍乘因子 | INTEGER | n 取值 0-10,见注解 1 |
1441 | 1 | 当前热能测量单位 | INTEGER | 取值 0~3。0=GJ , 1=Kcal 2=KWh, 3=BTU |
1442 | 1 | 仪表通讯地址号码 | INTEGER | |
1491 | 1 | 仪表类型 | INTEGER | BIT0=0 表示是流量计 BIT0=1 表示是热能表 BIT3=1 表示热能表装在供水口 BIT3=0 表示热能表装在回水口 |
1451 | 2 | 用户标尺因子 | REAL4 |
1521 | 2 | 厂家标尺因子 | REAL4 | 不可改写 |
1529 | 2 | 设备电子序列号码 | BCD | 本设备电子序列号码 请注意高位在前 |
注:(1)内部累积量使用了长整数和小数组合的方式。一般使用时,只读整数部分即可,小数部分可以忽略。累积量的大小和 累积单位及倍乘因子有关系,它们之间的确切关系是,设累积整数部分 N(对正累积而言是寄存器 0009,0010 中数值,32 比特带符号长整数),累积的小数部分为 Nf(对正累积而言是寄存器 0011、0012 中内容,4 字节浮点数),而累积流量倍乘因子为 n(寄存器 1439)
则正累积流量=(N+Nf ) ×10n-3 (单位在累积流量单位 1438 寄存器中确定)。寄存器 1438 中 取值 0-7 含义如下
0 立方米 (m3)
1 公升 (L)
2 美制加仑 (GAL)
3 英制加仑 (IGL)
4 美制兆加仑 (MGL)
5 立方英尺 (CF)
6 美制石油桶[42](OB)
7 英制石油桶 (IB)
累积热量=(N+Nf )×10n-4
其中: 对于净热量,N 值在寄存器 0029,0030 中对于净热量,Nf 值在寄存器 0031,0032 中 n 值在寄存器 1440 中确定,
累积热量单位在寄存器 1441 中确定。
(2)其他变量不再给出,如果您有需求可咨询我公司
(3)请注意上表格中的很多数据对于非热能表来说是无效的,在单独使用流量计时,可以忽略无关项。这些无关项主要是为了使我们的产品的通讯协议统一,便于用户使用。
(4)错误代码是 16 比特位其含义如下 Bit0 没有收到信号错误
Bit1 信号太低错误 Bit2 信号差错误 Bit3 管道空错误 Bit4 电路硬件错误
Bit5 正在调整电路增益 Bit6 频率输出超量程错误
Bit7 电流环输出电流过量程错误(一般情形下需要设置最大量程) Bit8 内部数据寄存器效验错误
Bit9 主振频率或者时钟频率存在错误 Bit10 参数区存在效验和错误
Bit11 程序存储器数据效验和错误 Bit12 温度测量电路可能存在错误 Bit13 保留??
Bit14 内部计时器溢出错误 Bit15 模拟输入电路存在错误
注意如果对于流量计,使用此代码时请先注意屏蔽掉那些与热量测量有关的位,因为那些位的状态不是确定的。
0 | 立方米/秒 | 1 | 立方米/分 | 2 | 立方米/小时 | 3 | 立方米/天 |
4 | 公升/秒 | 5 | 公升/分 | 6 | 公升/小时 | 7 | 公升/天 |
8 | 美制加仑/秒 | 9 | 美制加仑/分 | 10 | 美制加仑/小时 | 11 | 美制加仑/天 |
12 | 英制加仑/秒 | 13 | 英制加仑/分 | 14 | 英制加仑/小时 | 15 | 英制加仑/天 |
16 | 美制兆加仑/秒 | 17 | 美制兆加仑/分 | 18 | 美制兆加仑/小时 | 19 | 美制兆加仑/天 |
20 | 立方英尺/秒 | 21 | 立方英尺/分 | 22 | 立方英尺/小时 | 23 | 立方英尺/天 |
24 | 美制石油桶/秒 | 25 | 美制石油桶/分 | 26 | 美制石油桶/小时 | 27 | 美制石油桶/天 |
28 | 英制石油桶/秒 | 29 | 英制石油桶/分 | 30 | 英制石油桶/小时 | 31 | 英制石油桶/天 |
§1.3.2 年月日累积数据MODBUS 地址表
(1) 日累积数据(注意与其它版本流量计的地址是不同的)
每日累积数据采用 32 个字节大小的数据块循环队储存,共有 512 个数据块,当前的数据块指针地址
在寄存器 0162 中,其数值范围为 0~511。当前指针指向“昨天”的数据,当前指针减 1 则指向“前天”
的数据。数据指针等于 0 时再减 1 则指向数据块 511。设 0162 中数为 1,则昨天的累积数据在寄存器
10257-10272 中,前天的数据在 10241-10256 中,大前天的数据在 18417-18432 中。
注意:在组态软件中,对于浮点数据等变量的读出在前面需要添加“4”,这样可能在这类软件中填写寄存器地址时,10241 这个寄存器应该写成“410241”。
地址表如下
数据块号 | 寄存器地址 | 寄 存器 个数 | 变量名称 | 数据类型 | 说明 |
n/a | 0162 | 1 | 日累积数据指针 | Integer | 数值范围 0-127 |
0 | 10241 | 1 | 状态字节和日 | BCD | 低字节中是状态,高字节是日 |
10242 | 1 | 月和年 | BCD | 低字节中是月,高字节为年 | |
10243-10244 | 2 | 总工作时间 | LONG | 用于检查全天工作时间 | |
10245-10246 | 2 | 全天净累积流量 | REAL4 | 当天的总量 | |
10247-10248 | 2 | 净累积热流量值 | REAL4 | 23:59:59 秒时刻累积器值 | |
10249-10250 | 2 | 正累积器值 | LONG | 23:59:59 秒时刻累积器值 | |
10251-10252 | 2 | 负累积器值 | LONG | 23:59:59 秒时刻累积器值 | |
10253-10254 | 2 | 热量正累积器值 | LONG | 23:59:59 秒时刻累积器值 | |
10255-10256 | 2 | 热量负累积器值 | LONG | 23:59:59 秒时刻累积器值 | |
1 | 10257 | 1 | 状态字节和日 | BCD | 低字节中是状态,高字节是日 |
10258 | 1 | 月和年 | BCD | 低字节中是月,高字节为年 | |
10259-10260 | 2 | 总工作时间 | LONG | 用于检查全天工作时间 | |
10261-10262 | 2 | 全天净累积流量 | REAL4 | 当天的总量 | |
10263-10264 | 2 | 净累积热流量值 | REAL4 | 23:59:59 秒时刻累积器值 | |
10265-10266 | 2 | 正累积器值 | LONG | 23:59:59 秒时刻累积器值 | |
10267-10268 | 2 | 负累积器值 | LONG | 23:59:59 秒时刻累积器值 | |
10269-10270 | 2 | 热量正累积器值 | LONG | 23:59:59 秒时刻累积器值 | |
10271-10272 | 2 | 热量负累积器值 | LONG | 23:59:59 秒时刻累积器值 | |
。。。。 | 。。。。。。。。。。 | 。。。。 | 。。。。。。。。。。。。。。 | 。。。。。。 | 。。。。。。。。。。。。。。。。。。。。 |
511 | 18417-18432 | 16 | 第 511 块数据块 |
注:1.状态字节的含义请见状态字含义说明。
(2) 月累积数据(注意与其它版本流量计的地址是不同的)
月累积数据具有和日累积数据相同的结构,请参考日累积数据说明。特别的是日期字节总是取 0 值,
且只有 128 个数据块。地址表如下
数据 块号 | 寄存器地址 | 寄存器 个数 | 变量名称 | 数据类型 | 说明 |
n/a | 0163 | 1 | 月累积数据指针 | Integer | 数值范围 0-127 |
0 | 8193 | 1 | 状态字节 | BCD | 低字节是状态,高字节=0 |
8194 | 1 | 月和年 | BCD | 低字节中是月,高字节为年 | |
8195-8196 | 2 | 总工作时间 | LONG | 用于检查全月工作时间 | |
8197-8198 | 2 | 全月净累积流量 | REAL4 | 当月的总量 | |
8199-8200 | 2 | 净累积热流量值 | REAL4 | 本月最后一秒时刻累积器值 | |
8201-8202 | 2 | 正累积器值 | LONG | 本月最后一秒时刻累积器值 | |
8203-8204 | 2 | 负累积器值 | LONG | 本月最后一秒时刻累积器值 | |
8205-8206 | 2 | 热量正累积器值 | LONG | 本月最后一秒时刻累积器值 | |
8207-8208 | 2 | 热量负累积器值 | LONG | 本月最后一秒时刻累积器值 | |
1 | 8209 | 1 | 状态字节 | BCD | 低字节是状态 |
8210 | 1 | 月和年 | BCD | 低字节中是月,高字节为年 | |
8211-8212 | 2 | 总工作时间 | LONG | 用于检查全月工作时间 | |
8213-8214 | 2 | 全月净累积流量 | REAL4 | 当月的总量 | |
8215-8216 | 2 | 净累积热流量值 | REAL4 | 本月最后一秒时刻累积器值 | |
8217-8218 | 2 | 正累积器值 | LONG | 本月最后一秒时刻累积器值 | |
8219-8220 | 2 | 负累积器值 | LONG | 本月最后一秒时刻累积器值 | |
8221-8222 | 2 | 热量正累积器值 | LONG | 本月最后一秒时刻累积器值 | |
8223-8224 | 2 | 热量负累积器值 | LONG | 本月最后一秒时刻累积器值 | |
。。。。 | 。。。。。。。。。。 | 。。。。。。 | 。。。。。。。。。。。。。。 | 。。。。。。 | 。。。。。。。。。。。。。。。。。。。。 |
127 | 10225-10240 | 16 | 第 127 块数据块 |
注:1.状态字节的含义请见状态字含义说明。
2.如果读出的数据全是 0FFH,表明此寄存器为空
(3) 年累积数据是从月累数据中导出来的。
§1.3.3 上断电数据MODBUS 地址表
断电时,TDS16 流量计会纪录断电时刻时间和流量计当时工作状态字以及所有的累积器值,每个数据块有 128 个字节组成,共有 32 个数据块,可循环记录前 32 次断电。系统使用这些数据使流量计恢复到断电前的工作状态,用户可使用这些数据来检查
上电断电数据也是采用队列环结构存储,请注意当前数据所在位置和指针有关,并且和日月年累积数据不同的是指针减 1 才指向上此断电数据,参见日累积部分说明,上断电数据的 MODBUS 地址表如下
(注意与其它版本流量计的地址是不同的)
数据 块号 | 寄存器地址 | 寄存器 个数 | 变量名称 | 数据类型 | 说明 |
n/a | 0164 | 1 | 上断电数据指针 | Integer | 数值范围 0-31 |
0 | 6145 | 1 | 上电秒和分钟 | BCD | 低字节中是秒,高字节为分 |
6146 | 1 | 上电小时和天 | BCD | 低字节中是小时,高字节为天 | |
6147 | 1 | 上电月和年 | BCD | 低字节中是月,高字节为年 | |
6148 | 1 | 上电状态字 | BIT | B13 标志已补加,其他位参见 状态字说明 | |
6149 | 1 | 断电秒和分钟 | BCD | 低字节中是秒,高字节为分 | |
6150 | 1 | 断电小时和天 | BCD | 低字节为小时高字节 | |
6151 | 1 | 断电月和年 | BCD | 低字节中是月,高字节为年 | |
6152 | 1 | 断电状态字 | BIT | 参见状态字说明 | |
6153 | 1 | 当前窗口号码 | Integer | 低字节中为断电时主窗口号码,高 字节为本地 LCD 菜单号码 | |
6154 | 1 | 上电次数 | Integer | ||
6155-6156 | 2 | 流量计工作总时间 | LONG | 单位为秒 | |
6157-6158 | 2 | 正累积流量 | LONG | 单位取决于 M32,M33 | |
6159-6160 | 2 | 正累积流量小数 | REAL4 | 单位取决于 M32,M33 | |
6161-6162 | 2 | 负累积流量值 | LONG | 单位取决于 M32,M33 | |
6163-6164 | 2 | 负累积流量小数 | REAL4 | 单位取决于 M32,M33 | |
6165-6166 | 2 | 热量正累积 | LONG | 单位取决于 M32,M33 | |
6167-6168 | 2 | 热量正累积小数 | REAL4 | 单位取决于 M32,M33 | |
6169-6170 | 2 | 热量负累积值 | LONG | 单位取决于 M32,M33 | |
6171-6172 | 2 | 热量负累积小数 | REAL4 | 单位取决于 M32,M33 | |
6173-6174 | 2 | 净累积流量 | LONG | 单位取决于 M32,M33 | |
6175-6176 | 2 | 净累积流量小数 | REAL4 | 单位取决于 M32,M33 | |
6177-6178 | 2 | 热量净累积 | LONG | 单位取决于 M32,M33 | |
6179-6180 | 2 | 热量净累积小数 | REAL4 | 单位取决于 M32,M33 | |
6181-6182 | 2 | 日累积流量 | LONG | 单位取决于 M32,M33 | |
6183-6184 | 2 | 日累积流量小数 | REAL4 | 单位取决于 M32,M33 | |
6185-6186 | 2 | 月累积流量 | LONG | 单位取决于 M32,M33 | |
6187-6188 | 2 | 月累积流量小数 | REAL4 | 单位取决于 M32,M33 | |
6189-6190 | 2 | 年累积流量 | LONG | 单位取决于 M32,M33 | |
6191-6192 | 2 | 年累积流量小数 | REAL4 | 单位取决于 M32,M33 | |
6193-6194 | 2 | 断电时瞬时流量 | REAL4 | 单位: 立方米/秒 | |
6195-6196 | 2 | 故障运行时间 | LONG | 单位秒 | |
6197-6198 | 2 | 日工作总时间 | LONG | 单位秒 | |
6199-6200 | 2 | 月工作总时间 | LONG | 单位秒 | |
6201-6202 | 2 | M47 密码 | BCD | ||
6203-6204 | 2 | 断电期间时长 | LONG | 单位秒 | |
6205-6206 | 2 | 上次上电时瞬时流量 | REAL4 | 单位: 立方米/秒 | |
6207-6208 | 2 | 上次断电应补加累积流量 | REAL4 | 单位:立方米 | |
1 | 6209-6272 | 64 | 第 2 块数据块 | ||
2 | 6273-7336 | 64 | 第 3 块数据块 | ||
。。。。 | 。。。。。。。。。。 | 。。。。。。 | 。。。。。。 | 。。。。。。。。。。。。。。。。。。。。 | |
31 | 8129-8192 | 64 | 第 32 块数据块 |
§1.4 海峰FUJI 扩展通讯协议
TUF-2000 新版超声波流量计还可以使用海峰系列第七版超声波流量计 TDS7-FUJI 扩展协议。下表中,那些红色的命令为新添加的协议。
在这个协议中,所传输的数据都是 ASCII 码,便于调试及查看。
在只能发送一次命令需要多种数据的系统中应用时,可以使用‘&’符号把多个基本命令连接起来形成一个可以一次发送的复合命令。请参考参考后面的‘&’符号部分说明。
命 令 | 命令意义 | 数据格式 |
DQD(cr) 注0 | 返回每天瞬时流量 | ±d.ddddddE±dd(cr) 注1 |
DQH(cr) | 返回每小时瞬时流量 | ±d.ddddddE±dd(cr) |
DQM(cr) | 返回每分瞬时流量 | ±d.ddddddE±dd(cr) |
DQS(cr) | 返回每秒瞬时流量 | ±d.ddddddE±dd(cr) |
DV(cr) | 返回瞬时流速 | ±d.ddddddE±dd(cr) |
DI+(cr) | 返回正累积量 | ±dddddddE±d(cr)注2 |
DI-(cr) | 返回负累积量 | ±dddddddE±d(cr) |
DIN(cr) | 返回净累积量 | ±dddddddE±d(cr) |
DIE(cr) | 返回热量累积量 | ±dddddddE±d(cr) |
DIE+(cr) | 返回正热量累积量 | ±dddddddE±d(cr) |
DIE-(cr) | 返回负热量累积量 | ±dddddddE±d(cr) |
DIT(cr) | 返回今天净累积流量 | ±dddddddE±d(cr) |
DIM(cr) | 返回本月净累积流量 | ±dddddddE±d(cr) |
DIY(cr) | 返回今年净累积流量 | ±dddddddE±d(cr) |
DID(cr) | 返回仪器标识码(地址码) | ddddd(cr) 5 位长 |
E(cr) | 返回每秒瞬时热流量 | ±d.ddddddE±dd(cr) |
DL(cr) | 返回信号强度 | UP:dd.d,DN:dd.d,Q=dd(cr) |
DS(cr) | 返回模拟输出 AO 的百分比值 | ±d.ddddddE±dd(cr) |
DC(cr) | 返回当前错误代码 | 注 3 |
DA(cr) | OCT 或 RELAY 报警号 | TR:s,RL:s(cr)注4 |
DT(cr) | 当前日期及时间 | yy-mm-dd,hh:mm:ss(cr) |
Time@TDS1=(cr) | 设定日时间 yy-mm-dd,hh:mm:ss | |
M@(cr) | 发往 TUF-2000 模拟键值@ | M@(cr)注5 |
LCD(cr) | 返回当前 LCD 显示器显示内容 | |
LOCK0(cr) | 开锁(新加指令) | 与原密码无关 |
LOCK1(cr) | 上锁(新加指令) | |
MENUXX(cr) | 显示直接跳到窗口 XX | |
LANGUAGEX(cr) | 选择界面语言 | X=0 英语, 1 简体中文 2 意大利, 如果有的话 3 朝鲜语, 如果有的话 4 法语,如果有的话 5 德语,如果有的话 6 西班牙语,如果存在 |
BAUDRATEX(cr) | 改变xx率(数据位=8,无效验,停 止位=1) | X=0~7, 分别对应 19200, 14400, 9600,4800,2400,1200,600,300 |
OCT 吸合 | ||
C0(cr) | OCT 断开 | |
R1(cr) | 继电器 RELAY 吸合 | |
R0(cr) | 继电器 RELAY 断开 | |
FOdddd(cr) | 使频率输出以 n 值输出 | Fdddd(cr)(lf) |
Aoa(cr) | 使电流环输出电流值 a | AOa(cr)(lf)注6 |
BA1(cr) | 返回温度 T1 的电阻值 | ±d.ddddddE±dd(cr)(lf) |
BA2(cr) | 返回温度 T2 的电阻值 | ±d.ddddddE±dd(cr)(lf) |
BA3(cr) | 返回 AI3 的电流数 (0~20mA) | ±d.ddddddE±dd(cr)(lf) |
BA4(cr) | 返回 AI4 的电流数 (0~20mA) | ±d.ddddddE±dd(cr)(lf) |
BA5(cr) | 返回 AI5 的电流数 (0~20mA) | ±d.ddddddE±dd(cr)(lf) |
AI1(cr) | 返回温度输入 T1 值(温度) | ±d.ddddddE±dd(cr)(lf) |
AI2(cr) | 返回温度输入 T2 值(温度) | ±d.ddddddE±dd(cr)(lf) |
AI3(cr) | 返回模拟输入 AI3 值(温度压力等) | ±d.ddddddE±dd(cr)(lf) |
AI4(cr) | 返回模拟输入 AI4 值(温度压力等) | ±d.ddddddE±dd(cr)(lf) |
AI5(cr) | 返回模拟输入 AI5 值(温度压力等) | ±d.ddddddE±dd(cr)(lf) |
ESN(cr) | 返回电子序列号 | dddddddt(cr)(lf)注 7 |
N | 单字节地址组网命令前缀 | 注 8 |
W | 数字串地址组网命令前缀 | 注 8 |
P | 带校验回传命令前缀 | |
& | 命令“加”功能符号,多个基本命令形 成一个复合命令,一次传送 | 所加字符长度不超过 253 字节 |
RING(cr)(lf) | 调制解调器请求握手命令 | ATA(CR)(lf) |
OK(cr) | 调制解调器应答信号 | 无输出, |
流量计请求握手信号 | AT(CR)(LF) | |
GA(cr) | GSM 短信息通信专用命令A注9 | 注9 |
GB(cr) | GSM 短信息通信专用命令B注9 | 注9 |
GC(cr) | GSM 短信息通信专用命令C | 注9 |
注:
0.(cr)表示回车,其 ASCII 码值为 0DH。(lf)表示换行,其 ASCII 码值为 0AH。
1.d 表示 0~9 数字,0 值表示为 +0.000000E+00
2.d 表示 0~9 数字, ddddddd 是整数,“E”前面整数部分其中无小数点。 3.1~6 个字母表示的机器状态,字符含义见错误代码一节,例如“R”,“IH”
4.s 表示ON/OFF/UD 其中之一
例如“TR:ON,RL:ON”表示OCT 和继电器处于吸合状态例如“TR:UD,RL:UD”表示OCT 和继电器没有使用
5.@表示键值,例如 30H,表示“0”键,例如命令 “M4”相当按键“4”
6.a 表示电流值,取值范围 0~20,例如 AO2.34567, AO0.2 7.dddddddd 八位表示机器的电子序列号码,t 表示机器类型
8.如果数据网中同时有多台 新版TUF-2000 流量计则基本命令不能单独使用,必须加 N 或W 前缀后方可使用,否则会造成多台流量计同时应答,导致系统混乱。
9. 用 GSM 模块配接流量计可实现利用手机短信息查看流量计流量参数的功能。具体内容请来电查询。
§1.4.1 功能前缀和功能符号
(1) P 前缀
字符P 可以加在每一个基本命令前,表示回传的数据带有 CRC 校验。校验和的求法是二进制加法得到的。
例如:命令 DI+(CR)(相应二进制数据为 44H,49H,2BH,0DH)回传的数据为 +1234567E+0m3 (CR) (相应二进制数据为 2BH,31H,32H,33H,34H,35H, 36H,37H,45H,2BH,30H,6DH,33H,20H,0DH,0AH)则命令
PDI+(CR) 回传的数据为 +1234567E+0m3 !F7(CR), “!”表示其前是求和的字符,其后两个字节的校验和(2BH+31H+32H+33H+34H+35H+ 36H+37H+45H+2BH+30H+6DH+33H+20H=(2)F7H)
注意“!”前可以没有数据,也可能存在空格符号。
(2) N 前缀
N 命令的用法是 N + 单字节地址码 + 基本命令。
例如欲访问第 88 号流量计的瞬时流速,可发命令 ‘NXDV’(CR), 其中 X 的十进制码值为 88。建议用户使用 W 命令。
(3) W 前缀
W 前缀的用法是 W+数字串地址码+基本命令,数字串取值范围 0~65535 除去 13(0DH 回车),10(0AH换行),42(2AH *),38(26H&)。如欲访问第 12345 号流量计的瞬时流速,可发命令 W12345DV(CR), 对应二进制码为 57H,31H,32H,33H,34H,35H,44H,56H,0DH。
(4) ‘&’ 功能符号
‘&’ 功能可以实现多个基本命令相加的功能,只要保证所有基本命令相加以后形成的总字符长度不超过 250 个字符即可。所形成的‘超级’命令能够一次传送至流量计,流量计则同时作出应答。
P 前缀P 也可以加在基本命令之前。
例如要求同时发回第 4321 号流量计的 1.瞬时流量 2.瞬时流速 3.正累计量 4.热量累计量 5. AI1模拟输入电流数值 6. AI2 模拟输入数值,并且带校验,发送命令如下: W4321PDQD&PDV&PDI+&PDIE&PBA1&PAI2(CR)
一次同时回传的数据可能如下
+0.000000E+00m3/d!AC(CR)
+0.000000E+00m/s!88(CR)
+1234567E+0m3 !F7(CR)
+0.000000E+0GJ!DA(CR)
+7.838879E+00mA!59
+3.911033E+01!8E(CR)
再例如,要求从串行口修改管道外直径为 123.456 毫米,然后回传显示器内容,可发送如下指令: MENU11&M1&M2&M3&M:&M4&M5&M6&M=&LCD(CR)
§1.5 兼容通讯协议
兼容通讯协议是为了方便用户把 TUF-2000 接入用户按照汇中通讯协议而开发的数据采集系统中。 新开发项目请不要使用这些协议,因为我们将来新开发仪表很可能不能够支持这些协议。
新 TUF-2000 目前可以支持 8 种汇中的通讯协议。
为了使用汇中的通讯协议,用户需要在 M63 中,选择“MODBUS ASCII”选项后再选择下面协议的一种即可。
0. CRL-G ;LL=33 字节
1. SCL-61D (D<50mm) ;LL=13 字节,累积量缩小 1000 倍
2. SCL-61D (D≧50mm) ;默认选项,LL=13 字节水表只兼容此协议,累积量缩小 10 倍
3. SCL-6
4. SCL-7x (D<50mm)
5. SCL-7x (D≧50mm)
7. CRL-G-DL(D≧50mm)
8. CRL-H
9. CRL-HL
10. CRL-G-D (D<50mm)
11. CRL-G-D (D≧50mm)
上面的协议中的 D 表示管道的直径。
如果用户是新开发工程建议选用MOSBUS 协议。
其它详细细节请参考汇中有关资料。下面只给出一种 SCL-61D(D≧50mm)的说明。这种协议海峰生产的电池供电型水表只兼容这一种协议,因此新版流量计把这种协议作为出厂默认选项。
§1.5.2 SCL-61D(D≧50mm)兼容协议
接口:RS485
xx率:默认 9600,使用 M62 菜单可选择共 8 种不同的速率校验位:无(NONE),偶(EVEN),奇(ODD)
数据位:8
停止位:1,2
在以下说明中:XXh 表示当前仪表通讯地址(也称为网络地址),数值范围 00h-FFh。YYh 表示仪表新的通讯地址,数值范围 00h-FFh。ZZh 校验和,是所有数据字节的字节累加和(注意是二进制累加和,不包括控制及命令字节),不计超出 FFh 的进位部分。h 表示此数值为 16 进制数
命令格式
(1)读取水表数据(4A 命令)
主机命令: 2Ah XXh 4Ah 仪表回答 26h XXh 4Ah LL(BCD 码) ZZh其中LL(BCD 码)的内容如下表
位置 | 内容 | 字节数 | 说明 |
1~4 | 瞬时流量 | 4 | 缩小 1000 倍为实际数值,单位为 m3/h |
5~8 | 正累计流量 | 4 | 缩小 10 倍为实际数值,单位为m3 |
9~12 | 累计运行时间 | 4 | 单位:小时 |
13 | 诊断信息代码 | 1 | 见诊断信息表格 |
(2)读取定时存储数据 (49 命令)
主机命令: 2Ah XXh 49h 仪表回答 26h XXh 49h LL(BCD 码) ZZh
该命令同(1)4A 命令读取水表数据,唯一区别是该命令读出的数据是上一个定时时刻存储的数据,而(1)4A 命令读取水表数据读出的是当前水表数据。
(3)更改通讯地址(4B 命令)
主机命令: 2Ah XXh 4Bh YYh 仪表响应 26h XXh 4Bh YYh
如果选取 XXh=YYh,应用此命令可以循环检测通信线路是否正常,还可以扫描网络中存在的仪表数目,可以实现网络的自动配置
注:一般地,主机端需要确认仪表是否设置了正确的通讯地址。如果不检测的话,在误码率较高的网络中,请慎用此 4B 命令,因为如果主机发送的YYh 如果发生了错误,就会发生“丢失”下位机,或者造成两台仪表具有同一通讯号码而发生冲突现象。
(4)更改(设定)定时数据记忆时间(4C 命令)
主机命令: 2Ah XXh 4Ch DDh HHh
仪表回答: 26h XXh 4Ch DDh HHh MMh ZZh
其中 DDh 表示某天,HHh 表示某小时, MM 表示某分钟,BCD 码格式
DD 取值为某月的一天,例如 2Ah 86h 4Ch 12h 15h 表示设定 86 号仪表在每月的 12 号 15 时记忆
(存储)当时的瞬时流量、累计流量、工作时间和状态代码,此储存数据便于用 49 命令读出。如果DD=0 则表示每天的 HHh 时刻进行储存记忆操作。
(5)广播校时 (4D 命令)
主机命令: 2Ah AAh 4Dh ssmmhhDDMMYY 仪表不作回答
其中ssmmhhDDMMYY 表示BCD 码格式的时间日期数值,分别是秒分时天月年。
诊断信息代码为 00h 时表示正常
02h 时表示管道空错误或者是仪表不正常工作
05h 时表示数据存储时错误,硬件故障,需要维修
(6)扩充的读取水表命令(50 命令, 平顶山水资源监控用命令)
主机命令: 2Ah XXh 50h (*xxP) 仪表回答 26h XXh 50h LL(BCD 码) ZZh其中LL(BCD 码)的内容如下表
位置 | 内容 | 字节 数 | 说明 |
1~4 | 瞬时流速 | 4 | 紧凑BCD 码,缩小 1000 倍为实际数值,单位为m/h |
5~8 | 瞬时流量 | 4 | 紧凑BCD 码,缩小 1000 倍为实际数值,单位为 m3/h |
9~12 | 正累积流量 | 4 | 紧凑BCD 码表示的数值部分,单位为 m3 |
13~16 | 负累积流量 | 4 | 紧凑BCD 码表示的数值部分,单位为 m3 |
17 | 累积流量乘积系数值 | 1 | 数值范围 N=0~6 0,1,2,3,4,5,6 分别对应单位 1, 0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001 立方米。 |
18~21 | 累计运行时间 | 4 | 紧凑BCD 码,单位:小时 |
22 | 诊断信息代码 | 1 | 见诊断信息表格 |
例如 9~12 字节数据为 12h,34h,56h,78h,而第 17 字节数值=2 时,则实际的正累积量值是 12345678 X 0.01 =123456.78 立方米
例如接收的字符串为 26H,01H,50H,00H,00H,00H,90H,00H,00H,00H,65H,78H,56H,34H,12H, 12H,34H,56H,80H,03H,00H,00H,12H,34H,00H,zz
则表示的水表数值如下
瞬时流速=00000.090 m/s瞬时流量=00000.065 m3/h
正累积量=78563412x10-3=78563.412 m3
负累积量=12345680x10-3=12345.680 m3
总工作时间=00001234 小时水表工作状态=00 表示正常。
注意:对于替换升级换代使用的用户需要注意如下几点
(1)新版TUF-2000 系列产品更多强调用户可编程更改,所以在协议中,并没有固定xx率以及校验位
(2) 新版 TUF-2000 系列超声波流量计通信时,对时刻的要求低,可以任何时候采集数据。采集数据的时间间隔并没有特殊的要求。
(3) 新版 TUF-2000 系列超声波流量计出厂设置xx率一般为 9600,无校验位。如果需要替换同类仪表,需要更改串行口参数。用户可以在订货时提出此要求,由厂家在出厂时设置好。用户也可以自行更改。更改的方法请参考设置一章
(4) 新版TUF-2000 系列超声波流量计的通信地址(通信号码)。在显示菜单 M46 中可以查阅,也可以使用按键进行更改。出厂时此地址码一般地址设为 01 用户需要自己修改为合适地址。
1.6. M-BUS 协议
(1)概述
版本TUF-2000 2.00
新版TUF-2000 电池供电低功耗系列超声波流量计/热能表通信协议使用M-BUS 通信协议格式,这是一种新型的欧盟标准,适用于所有仪表联网(可包括电表、水表、热能表、煤气表等),其细节请参考 xxx.x-xxx.xxx。M-BUS 模块采用的双绞线既能够传输数据又能给所有连接在总线上的所有可以是不同类型的仪表供电。
每一台新版TUF-2000 电池供电低功耗系列超声波流量计/热能表出厂时都配置了M-BUS 协议的软件部分。但 M-BUS 硬件模块部分用户需要在订货时单独订购。
在大多数应用条件下,M-BUS 协议的软件部分是完全可以在RS232 总线以及 RS485 总线上使用的。
(2)M-BUS 总线的特点有关硬件部分
有关软件部分
(3)接口
新版TUF-2000 电池供电低功耗系列超声波流量计/热能表根据不同型号,或者根据用户的要求,可以具有下列不同的硬件配置
(A)RS-232 接口(已配置)
(B)RS-485 接口(已配置)。
(C)光电接口适配板:可以配合带光电接口的仪表读出器很方便的读出其内部的参数。
(D)M-BUS 适配板:使用单根双绞线即能实现双向数据通信、又能使用这根双绞线给仪表供电
报文格式 采用欧盟标准 IEC 870-5-1 关于遥控设备传输协议第一节--通信格式xx率:300/1200/2400/4800/9600/19200/14400 xx
校验位:奇偶无校验
数据格式:长度可变、多字节数据低位字节在前(即“模式 1”)
(4)有关细节
(A)校验和CS 的求法:从 C 域至校验和前第一个字节所有字节的 8 位累加和,不计进位。
(B)地址 FDh(以下 h 后缀是指 16 进制)用于地址扩展到第二地址, 而发地址 FEh 和 FFh 是广播地址,地址 FEh 需要从机做出应答,而地址 FFh 不需要做出回答。
(C)如果存在第一地址相同的多台从机在总线上这种情况,就会发生冲突。冲突时 M-BUS 总线电流
电压会发生异常变化,主机可以利用这种异常,辅助‘撤选’ ‘选用第二地址’等报文,可以自动解决冲突问题。一般来讲,M-BUS 可以实现自动的地址重新分配。
(D)请不要使用那些厂家专用而用户很少使用的主机命令,因为这些命令会造成表计不能正常工作。
(E)请注意TDS1-100 型仪表的 MBUS 协议与国外进口产品协议存在一些差别。
(5)软件协议
有关M-BUS 协议的详细介绍请参考 DIN EN1434-3,有关 M-BUS 协议的更详细的介绍可以参考 “The M-BUS:A Documentation”此文可以从 xxx.x-xxx.xxx 网站上获得。
新版TUF-2000 型系列超声波超低功耗工业水表/超声波流量计采用的报文格式为可变格式。并且热表和水表采用了同样的协议,用户在不需要热量数据的情况下,只须抛弃不需要的数据,或者采用下表中的通用预定数据报文只选取需要的数据。
新版TUF-2000 型系列超声波超低功耗工业水表/超声波流量计具支持如下功能。
* 支持第二 M-BUS 寻址访问
* 可以修改第一M-BUS 地址
* 可以更改日期时间
* 支持在线更改仪表工作参数具体协议见下页表格
(请注意 MBUS 报文中一些不常用的变量不完全)
表 1 主机=>从机方向协议报文格式
主机请求命令 | 格式 | 注解 | 从机应答 | ||||||||||
C 域=控制域 A 域为地址域 CS 为效验和,CI 域 | |||||||||||||
C 域 | A | CS | |||||||||||
初始化 (SEND_NKE) | 10h | 40h | A | CS | 16h | 释放公用地址,设置为正常状态,默认xx率 | E5h | ||||||
请求数据 (SEND_UD2) | 10h | 5Bh/7Bh | A | CS | 16h | 请求从机传送应答的从机用户数据 | RSP_UD | ||||||
删除使用公用地址 | 10h | 40h | FDh | CS | 16h | 所有从机释放公用地址 FDh,便于以后其他从机使用 | E5h | ||||||
报警协议 (SEND_UD1) | 10h | 5Ah/7Ah | A | CS | 16h | 以最快速度相应主机的报警巡查 | E5h | ||||||
L | L | C 域 | A | CI 域 | CS | ||||||||
选用第二地址 | 68h | 0Bh | 0Bh | 68h | 53h/73 h | FDh | 52h | ID1-4 M1-2 G Med | CS | 16h | ID1-4 为 4 字节 ID, M1-2=C9h,20h G=1 Med=4 回水热表 地位在前 * | E5h | |
选用第二地址 | 68h | 0Bh | 0Bh | 68h | 53h/73 h | FDh | 56h | ID4-1 M2-1 G Med | CS | 16h | 高位在前,其他同上一报文 (Med=0Ch 为供水热表) * | E5h | |
增强选用第二地址 | 68h | 11h | 11h | 68h | 53h/73 h | FDh | 52h | ID1-4 M1-2 G Med 0CH 78H SN1-4 | CS | 16h | 比上面二个报文增加 0Ch 78h +4 字节序列号 * | E5h | |
修改第一地址 | 68h | 06h | 06h | 68h | 53h/73 h | A | 51h | 01h 7Ah NN | CS | 16h | NN 为单字节新地址 范围为 1-250 | E5h | |
修改第二地址 | 68h | 09h | 06h | 68h | 53h/73 h | A | 51h | 0Ch 79h SA1-4 | CS | 16h | SA1-4 为 4 字节新的第二地址 | E5h | |
L | L | C 域 | A | CI 域 | CS | 备注, 从机对修改xx率指令以原先xx率应答后再改动 | |||||||
改变xx率 | 68h | 03h | 03h | 68h | 53h/73 h | A | B8h | CS | 16h | 改变xx率为 300 重新上电后变为默认值,一般取 4800 | E5h | ||
改变xx率 | 68h | 03h | 03h | 68h | 53h/73 h | A | B9h | CS | 16h | 改变xx率为 600 重新上电后变为默认值,一般取 4800 | E5h | ||
改变xx率 | 68h | 03h | 03h | 68h | 53h/73 h | A | BAh | CS | 16h | 改变xx率为 1200 重新上电后变为默认值,一般取 48000 | E5h |
改变xx率 | 68h | 03h | 03h | 68h | 53h/73 h | A | BBh | CS | 16h | 改变xx率为 2400 重新上电后变为默认值,一般取 4800 | E5h | ||
改变xx率 | 68h | 03h | 03h | 68h | 53h/73 h | A | BCh | CS | 16h | 改变xx率为 4800 重新上电后变为默认值,一般取 4800 | E5h | ||
改变xx率 | 68h | 03h | 03h | 68h | 53h/73 h | A | BDh | CS | 16h | 改变xx率为 9600 重新上电后变为默认值,一般取 4800 | E5h | ||
改变xx率 | 68h | 03h | 03h | 68h | 53h/73 h | A | BEh | CS | 16h | 改变xx率为 19200 重新上电后变为默认值,一般取 4800 | E5h | ||
改变xx率 | 68h | 03h | 03h | 68h | 53h/73 h | A | BFh | CS | 16h | 恢复xx率为 P4 菜单所设置的xx率值 | E5h | ||
预定报文类型 | L | L | C 域 | A | CI 域 | 预制数据内容代码 | CS | ||||||
预定常规格式 | 68h | 03h | 03h | 68h | 53h/73 h | A | 50h | CS | 16h | 请求所有数据,应答报文格式见表 2 所示 (All) | E5h | ||
预定常规格式 | 68h | 04h | 04h | 68h | 53h/73 h | A | 50h | 00 | CS | 16h | 请求所有数据,应答报文格式见表 2 所示 (All) | E5h | |
预定快速格式 | 68h | 04h | 04h | 68h | 53h/73 h | A | 50h | 51h | CS | 16h | 请求快速读出数据 (QUICK READOUT) | E5h | |
预定用户数据格式 | 68h | 04h | 04h | 68h | 53h/73 h | A | 50h | 10h | CS | 16h | 请求累计热量 W,累计流量 V (User Data) | E5h | |
预定简单帐单模式 | 68h | 04h | 04h | 68h | 53h/73 h | A | 50h | 20h | CS | 16h | 请求 W,V 上年的 W,V 及运行时间 BT 故障时间 FT(Simple Billing) | E5h | |
预定完全帐单模式 | 68h | 04h | 04h | 68h | 53h/73 h | A | 50h | 30h | CS | 16h | 请求 W,V 上年的 W,V 最大流量/热流量,BT、FT(Enhanced Billing) | E5h | |
预定当前数据 | 68h | 04h | 04h | 68h | 53h/73 h | A | 50h | 50h | CS | 16h | 请求 W,X xxxx/xxx,xxxxx (Xxxxxxxxxxxxx Xxxxxx) | E5h | |
预定内存历史数据 | 68h | 04h | 04h | 68h | 53h/73 h | A | 50h | 60h | CS | 16h | 读出事件指针指向的 40H 字节数据,事件指针设置见相关命令 | E5h |
预定当前数据 | 68h | 04h | 04h | 68h | 53h/73 h | A | 50h | 80h | CS | 16h | 请求仪表序列号,供热结算日期 | E5h | |||
切换到快速方式 | 68h | 05h | 05h | 68h | 53h/73 h | A | 51h | 0Fh | A1h | CS | 16h | 快速读出格式,报文格式见表 3 所示 | E5h | ||
切换到常规方式 | 68h | 05h | 05h | 68h | 53h/73 h | A | 51h | 0Fh | A0h | CS | 16h | 并预定所有输出数据 | E5h | ||
切换到快速方式 | 68h | 03h | 03h | 68h | 53h/73 h | A | A1h | CS | 16h | 不推荐使用本条报文,为了兼容而设置的报文。 | E5h | ||||
切换到常规方式 | 68h | 03h | 03h | 68h | 53h/73 h | A | A0h | CS | 16h | 不推荐使用本条报文,为了兼容而设置的报文。 | E5h | ||||
预定所有数据 1 | 68h | 04h | 04h | 68h | 53h/73 h | A | 51h | 7Fh | CS | 16h | 报文格式见表 2 所示 | E5h | |||
预定所有数据 2 | 68h | 06h | 06h | 68h | 53h/73 h | A | 51h | C8h | 3Fh | 7Eh | CS | 16h | 报文格式见表 2 所示 | E5h | |
预定空报文 | 68h | 06h | 06h | 68h | 53h/73 h | A | 51h | 7Fh | FEh | 0Dh | CS | 16h | E5h | ||
通用选数据报文 | 68h | L | L | 68h | 53h/73 h | A | 51h | 选取代码(组合) | CS | 16h | 限定 L<240,上电初始化后置为全部选中状态 | E5h | |||
选取代码(组合)可以选择下列任意预定数据的代码及其任意组合(例如设预定要读出累计热量和累计流量,报文格式如下 68 L L 68 53/73 A 51 08 14 08 2D CS 16)更新周期 08h 74h 所有更新周期 C8h 3Fh 74h 上年累计热量 48h 00h…0Fh 平均周期 08h 70h 所有平均周期 C8h 3Fh 70h 上年累计流量 48h 10h…17h |
累计热量累计流量瞬时热量瞬时流量供水温度回水温度 温差序列号码运行时间 日期时间 | 08h 08h 08h 08h 08h 08h 08h 08h 08h 08h | 00h…0Fh 10h…17h 28h…37h 38h…4Fh 58h…5Bh 5Ch…5Fh 60h…63h 78h 20h…23h 6Ch | 所有累计热量所有累计流量所有瞬时热量所有瞬时流量所有供水温度所有回水温度 所有温差所有序列号码所有运行时间 所有时间标志 | C8h C8h C8h C8h C8h C8h C8h C8h C8h C8h | 3Fh 3Fh 3Fh 3Fh 3Fh 3Fh 3Fh 3Fh 3Fh 3Fh | 00h…0Fh 10h…17h 28h…37h 38h…4Fh 58h…5Bh 5Ch…5Fh 60h…63h 78h 20h…23h 6Ch | 年结算日期故障时间 去年故障时间最大值平均周期 上年最大瞬时热流量当前最大瞬时热流量当前最大瞬时流量 当前最大供水温度 当前最大回水温度 | 48h 38h 78h 88h D8h 98h 98h 98h 98h | 6Ch 20h…23h 20h…23h 10h 70h…73h 10h 28h…37h 10h 28h…37h 10h 38h…4Fh 10h 5Bh 10h 5Fh | 注:代码中“…”表示之间的意思,例如 00h…0Fh 表示之间任意数字皆可。也就是代码 08h 00h 与代码 08h 0Dh 具有相同的作用 | |||||||||||
L | L | C 域 | A | CI 域 | DIF | DIF | 功能 | 参数 | CS | 解释 | 应答 | ||||||||||
模拟键输入 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 00h | 08h | 00h | 00h | 00h | CS | 16h | 等于短按显示键 (包括菜单跳转,数字键输入) | E5h | |||
模拟键输入 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 00h | 10h | 00h | 00h | 00h | CS | 16h | 等于长按显示键 | E5h | |||
模拟键输入 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 00h | 28h | 00h | 00h | 00h | CS | 16h | 等于短按修改键 | E5h | |||
模拟键输入 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 00h | 30h | 00h | 00h | 00h | CS | 16h | 等于长按修改键 | E5h | |||
调试设备使用功能 | 68h | L | L | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 04h | 18 h | 密码+参数 | CS | 16h | 厂家专用调试设备使用功能 PP1..PP7 为密码 | E5h | |||||
启动代码更新 | 68h | L | L | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 09h | 28 h | 密码+参数 | CS | 16h | 厂家用于更新代码,注意此操作擦除所有代码 | 另外协议 | |||||
初始化参数区 | 68h | L | L | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 18h | 38h | 密码+ nn1..nn64 | CS | 16h | 把 64 个字节的数据写入参数区 1 | E5h | |||||
读出 LCD 内容 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 04h | 68h | 00h | 00h | 00h | CS | 16h | 读出显示器的 96 段显示共 12 字节内容 | 非标协议 | |||
启动流量标定 | 68h | L | L | 68h | 53h/73 | A | 51h | 2Fh | 0Fh | 00h | 13h | 密码+参数 | CS | 16h | 厂家用调试设备使用功能 | E5h |
h | ||||||||||||||||
启动热量标定 | 68h | L | L | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 00h | 15h | 密码+参数 | CS | 16h | 厂家用调试设备使用功能 | E5h |
静态置零 | 68h | 12h | 12h | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 01h | 01h | 密码+参数 | CS | 16h | 厂家用调试设备使用功能 | E5h |
停止静态置零 | 68h | 12h | 12h | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 01h | 00h | 密码+参数 | CS | 16h | 厂家用调试设备使用功能 | E5h |
清除本月最大值 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 02h | 02h | 00h 00h 00h | CS | 16h | 清除本月最大值存储器 | E5h |
清除事件存储器 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 03h | 00h | 00h 00h 00h | CS | 16h | 清除事件存储器 | E5h |
设置事件指针 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 03h | 01h | PTL PTH 00h | CS | 16h | 设置事件存储器指针为 PTH PTL | E5h |
设置时间方法 1 | 68h | 0Dh | 0Dh | 68h | 53h/73 h | A | 51h | 2Fh | 0Fh | 04h | 58h | SSMMHHDDMMYY | CS | 16h | 设置日期时间 推荐方法 参数分别为秒分时天月年 | E5h |
L | L | C 域 | A | CI 域 | DIF | CS | ||||||||||
设置时间方法 2 | 68h | 0Ah | 0Ah | 68h | 53h/73 h | A | 51h | 04h | EDh 00h DATE/TIME | CS | 16h | ** 设置日期时间, DATE/TIME 为标准 TYPE F 格式 | E5h | |||
设置时间方法 3 | 68h | 09h | 09h | 68h | 53h/73 h | A | 51h | 04h | 6Dh DATE/TIME | CS | 16h | ** 设置日期时间, DATE/TIME 为标准 TYPE F 格式 | E5h |
注解: * 选用第二地址,可以使用通配符。通配符的作用可以使主机很快找到总线上所有的从机
** 为了兼容标准而设置模式,因为TYPE F 不含有秒,故此两个报文设置秒=0。TYPE F 格式是 M-BUS 中规定的时间日期格式。
表 2 从机向主机方向报文格式(RSP_UD)
字 节 | 内容 | 报文字节 | 注解 | 备 注 |
4 | 报头 | 68h L L 68h | 报头,L 最大值=F8h | |
3 | 08h A 72h | 可变长度报文,数据低位在前, A 是 M-BUS 主地址 | ||
4 | 78h 65h 34h 21h | M-BUS 第二地址 | ||
2 | 88h 11h | “DLH”标识编码 | ||
1 | 02h | 热能表版本 | ||
1 | 04h | 表示热能表 | ||
1 | Z | 传送次数 | ||
1 | S | 状态字节 Bit0..4 按照 M-BUS 标准设置,Bit5..7 各是热流量/流量/温差符号 | ||
2 | 00h 00h | 签名 | ||
3 | 当前更新周期 | 01h | DIF: 单字节整数,无 DIFE,当前值(Current Value) | |
74h | VIF: 更新周期, 单位:秒 | |||
01h/02h/../1Fh (/表示或者) | 1 秒至 31 秒,取决于用户设置。出厂时默认一般取 3 秒。 | |||
3 | 当前计量周期 | 01h | DIF: 单字节整数,无 DIFE,当前值(Current Value) | |
70h | VIF: 计量周期(平均时间), 单位:秒 | |||
01h/02h/../1Fh | 1 秒至 31 秒,取决于用户设置。出厂时默认一般取 3 秒。 | |||
6 / 7 | 当前累积热量 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
0Dh/FBh 09h | VIF: 累积热量单位(1KWh/1GJ) | 注1 | ||
00h 00h 00h 40h | 累积热量=2.0 KWh/GJ | |||
6 | 当前累积流量 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
15h | VIF:累积流量单位 (m3) | |||
00h 00h 00h 40h | 累积流量=2.0 m3 | |||
6 | 当前瞬时热量 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
2Eh | VIF:瞬时热量(能量)单位 kW(千瓦) | |||
00h 00h A0h 3Fh | 瞬时热量=1.25 kW | |||
6 | 当前瞬时流量 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
3Eh | VIF:瞬时流量单位 (m3/h) | |||
38h A1h 80h 3Eh | 瞬时流量=0.25123 m3/h | |||
6 | 当前供水温度 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
5Bh | VIF:供水温度(℃) | |||
00h 40h B1h 42h | 88.625 ℃ | |||
6 | 当前回水温度 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
5Fh | VIF:回水温度(℃) | |||
4Dh 55h 85h 42h | 66.66666 ℃ | |||
6 | 当前温差 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
63h | VIF: 温差(℃) | |||
CEh AAh AFh 41h | 22.9584℃ | |||
6 | 上年累计流量 | 45h | DIF:八字节 BCD 数,无 DIFE,记忆数 1=年值 | |
15h | VIF:累积流量 (m3) | |||
00h 00h 00h 40h | 2.0 m3 | |||
6 / 7 | 上年累计热量 | 45h | DIF:八字节 BCD 数,无 DIFE,记忆数 1=去年的值 | |
0Dh/FBh 09h | VIF:累积热量 (1KWh/1GJ) | |||
00h 00h 00h 40h | 2.0 KWh/GJ | |||
6 | 仪表序列号 | 0Ch | DIF:八字节 BCD 数,无 DIFE,当前值(Current Value) | |
78h | VIF:序列号 | |||
78h 56h 34h 12h | 12345678 | |||
4 | 最大值平均周期 | 89h | DIF: 单字节 BCD 数,后跟DIFE,当前值(Current Value) | |
10h | DIFE:费率=1 | |||
70h | VIF:平均周期时间(秒) | |||
1 | 1 秒 | |||
7 | 当前最大瞬时热量 | 95h | DIF:四字节单精度浮点数,后跟 DIFE,最大瞬时热量(热功率) | |
10h | DIFE:费率=1 | |||
2Eh | VIF:瞬时热量,单位固定为 KW | |||
00h 00h A0h 3Fh | 1.25 kW | |||
7 | 上年最大瞬时热量 | D5h | DIF: 四字节单精度浮点数,后跟DIFE,最大值存储数据块 1=上年值 | |
10h | DIFE:费率=1 | |||
2Eh | VIF:瞬时热量 单位 kW | |||
00h 00h A0h 3Fh | 1.25 kW | |||
7 | 当前最大瞬时流量 | 95h | DIF: 四字节单精度浮点数,后跟DIFE,最大值 | |
10h | DIFE:费率=1 | |||
3Eh | VIF:瞬时流量 m3/h | |||
38h A1h 80h 3Eh | 瞬时流量=0.25123 m3/h | |||
7 | 当前最高供水 | 95h | DIF: 四字节单精度浮点数,后跟DIFE,最大值, | |
10h | DIFE:费率=1 | |||
5Bh | VIF:供水温度 |
温度 | 38h A1h 80h 3Eh | 0.25123 ℃ | ||
7 | 当前最高回水温度 | 95h | DIF: 四字节单精度浮点数,后跟DIFE,最高回水温度, | |
10h | DIFE:费率=1 | |||
5Fh | VIF:回水温度(℃) | |||
38h A1h 80h 3Eh | 0.25123 ℃ | |||
7 | 总运行时 间 | 04h | DIF: 四字节二进制整数,无 DIFE,当前值(Current Value) | |
20h | VIF:总运行时间(工作时间)单位:秒 | |||
4Eh 61h BCh 00h | 当前总运行时间=12345678 秒 | |||
6 | 当前故障 时间 | 34h | DIF: 四字节二进制整数,无 DIFE,有故障的数值 | |
20h | VIF:总故障时间(丢失/故障时间)单位:秒 | |||
10h 01h 00h 00h | 总故障时间=266 秒 | |||
6 | 上年故障 时间 | 74h | DIF: 四字节二进制整数,无 DIFE,有故障的数值,存储数据块 1=上年值 | |
20h | VIF:总故障时间(丢失/故障时间)单位:秒 | |||
10h 01h 00h 00h | 上年总故障时间=266 秒 | |||
4 | 上年结算 日期 | 42h | DIF: 十六比特整数,后跟DIFE,存储数据块 1=上年值 | |
6Ch | VIF:时间=结算日期;数据格式 type G | |||
01h 04h | 结算日期为 4 月 1 号;年份无关为 0 | |||
7 / 8 | 费率 2累积热量 | 85h | DIF:四字节单精度浮点数,后跟 DIFE,当前值(Current Value) | |
20h | DIFE:费率=2;费率 2 累积寄存器 | |||
0Dh/FBh 09h | VIF:累积热量 (1KWh/1GJ) | |||
00h 00h 00h 40h | 2.0 单位 1KWh/1GJ | |||
7 / 8 | 费率 3累积热量 | 85h | DIF:四字节单精度浮点数,后跟 DIFE,当前值(Current Value) | |
30h | DIFE:费率=3;费率 3 累积寄存器 | |||
0Dh/FBh 09h | VIF:累积热量 (1KWh/1GJ) | |||
00h 00h 00h 40h | 2.0 单位 1KWh/1GJ | |||
7 / 8 | 上年费率 2累积 热量 | C5h | DIF:四字节单精度浮点数,后跟 DIFE 存储数据块 1=上年值 | |
20h | DIFE:费率=2;费率 2 累积寄存器 | |||
0Dh/FBh 09h | VIF:累积热量 (1KWh/1GJ) | |||
00h 00h 00h 40h | 2.0 单位 1KWh/1GJ | |||
7 / 8 | 上年费率 3累积热量 | C5h | DIF:四字节单精度浮点数,后跟 DIFE,存储数据块 1=上年值 | |
30h | DIFE:费率=3;费率 3 累积寄存器 | |||
0Dh/FBh 09h | VIF:累积热量 (1KWh/1GJ) | |||
00h 00h 00h 40h | 2.0 单位 1KWh/1GJ | |||
4 | 上个月最高供水温度 | 91h | DIF:单字节无符号数,后跟 DIFE,最高温度 | |
11h | DIFE:费率=1, 数据块 2 号,上月值 | |||
5Bh | VIF:供水温度(℃) | |||
7Fh | 127℃ | |||
4 | 上个月最高回水温度 | 91h | DIF:单字节无符号数,后跟 DIFE,最高回水温度?? | |
11h | DIFE:费率=1,数据块 2 号,上月值 | |||
5Fh | VIF:回水温度(℃) | |||
23h | 35℃ | |||
7 | 上个月最大瞬时流量 | 95h | DIF: 四字节单精度浮点数,后跟DIFE,最大值 | |
11h | DIFE:费率=1,数据块 2 号,上月值 | |||
3Eh | VIF:瞬时流量(m3/h) | |||
79h E9h F6h 42h | 123.456 m3 /h | |||
7 | 上个月最大瞬时热量 | 95h | DIF: 四字节单精度浮点数,后跟DIFE,最大瞬时热量 | |
11h | DIFE:费率=1,数据块 2 号,上月值 | |||
2Eh | VIF:瞬时热量(kW) | |||
66h E6h 40h 46h | 12345.6 kW | |||
7 | 上个月故障时 间 | B4h | DIF: 四字节二进制整数,后跟 DIFE,有故障的数值 | |
01h | DIFE:数据块 2 号,上月值 | |||
20h | VIF:总运行时间(秒)=丢失/故障时间(秒) | |||
78h 56h 34h 12h | 12345678 秒 | |||
7 / 8 | 上月累计 热流量 | 85h | DIF:四字节二进制整数,后跟 DIFE | |
01h | DIFE:数据块 2 号,上月值 | |||
0Dh/FBh 09h | VIF:累积热量 (1KWh/1GJ) | |||
00h 00h 004h 40h | 2.0 单位 KWh/1GJ | |||
7 / 8 | 上月费率 2累积 热量 | 85h | DIF:四字节二进制整数,后跟 DIFE | |
21h | DIFE:费率=2;数据块 2 号,上月值 | |||
0Dh/FBh 09h | VIF:累积热量 (1KWh/1GJ) | |||
00h 00h 00h 40h | 2.0 单位 KWh/GJ | |||
7 / 8 | 上月费率 3 累积热量 | 85h | DIF:四字节浮点数,后跟 DIFE,当前值 | |
31h | DIFE:费率=3;数据块 2 号,上月值 | |||
0Dh/FBh 09h | VIF:累积热量 (1KWh/1GJ) | |||
00h 00h 00h 40h | 2.0 单位 KWh/GJ | |||
7 | 上月累计流量 | 85h | DIF:四字节浮点数,后跟 DIFE | |
01h | DIFE:数据块 2 号,上月值 | |||
16H | VIF:累积流量 (m3) | |||
00h 00h 00h 00h | 0 m3 |
当前日期 时间 | 04h | DIF:32 比特整数,无 DIFE,当前值 | ||
6Dh | VIF:日期+时间;数据格式 Type F | |||
1Fh 0Ch D0h 03h | 当前日期与时间 06-03-16 12:31:XX ,不含秒数 | |||
6 | 厂家专用 信息 | 0Fh | 生产厂家设置有关的数据 | |
01h 02h | 软件版本 9.21 | |||
00h 00h 01h | 字节 D0 D1 D2 补充信息 D2.0=1 9.2 版本 D2.7:0=回水安装;1=供水安装 | |||
1 | 结尾 | CS | 效验和 | |
1 | 16h | 结束符 |
表 3 从机向主机方向快速读出报文格式(RSP_UD)
字 节 | 内容 | 报文字节 | 注解 | 备 注 |
4 | 报头 | 68h L L 68h | 报头,L 最大值=3Fh 或者 40h 数据长度 | |
3 | 08h A 72h | 可变长度报文,数据低位在前 A 是 M-BUS 主地址 | ||
4 | 78h 65h 34h 21h | M-BUS 第二地址 | ||
2 | 88h 11h | “DLH”标识编码 | ||
1 | 02h | 热能表版本 | ||
1 | 04h | 表示热能表 | ||
1 | Z | 传送次数 | ||
1 | S | 状态字节 Bit0..4 按照 M-BUS 标准设置,Bit5..7 各是热流量/流量/温差符号 | ||
2 | 00h 00h | 签名 | ||
3 | 当前更新 周期 | 01h | DIF: 单字节整数,无 DIFE,当前值(Current Value) | |
74h | VIF: 更新周期, 单位:秒 | |||
01h/02h/../1Fh | 1 秒至 31 秒,取决于用户设置。出厂时默认一般取 3 秒。 | |||
3 | 当前计量 周期 | 01h | DIF: 单字节整数,无 DIFE,当前值(Current Value) | |
70h | VIF: 计量周期(平均时间), 单位:秒 | |||
01h/02h/../1Fh | 1 秒至 31 秒,取决于用户设置。出厂时默认一般取 3 秒。 | |||
6 / 7 | 当前累积 热量 | 05h | DIF: 四字节二进制整数,无 DIFE,当前值(Current Value) | |
0Dh/FBh 09h | VIF: 累积热量单位(1KWh/1GJ) | |||
01h 01h 00h 00h | 累积热量=257 KWh/GJ | |||
6 | 当前累积 流量 | 05h | DIF: 四字节二进制整数,无 DIFE,当前值(Current Value) | |
16h | VIF:累积流量单位 (m3) | |||
01h 01h 00h 00h | 累积流量=257 m3 | |||
6 | 当前瞬时 热量 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
2Eh | VIF:瞬时热量(能量)单位 kW(千瓦) | |||
00h 00h A0h 3Fh | 瞬时热量=1.25 kW | |||
6 | 当前瞬时 流量 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
3Eh | VIF:瞬时流量单位 (m3/h) | |||
38h A1h 80h 3Eh | 瞬时流量=0.25123 m3/h | |||
6 | 当前供水 温度 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
5Bh | VIF:供水温度(℃) | |||
00h 40h B1h 42h | 88.625 ℃ | |||
6 | 当前回水 温度 | 05h | DIF: 四字节单精度浮点数,无 DIFE,当前值(Current Value) | |
5Fh | VIF:回水温度(℃) | |||
4Dh 55h 85h 42h | 66.66666 ℃ | |||
1 | 结尾 | CS | 效验和 | |
1 | 16h | 结束符 |
§1.7 键值编码
键值编码用于使用联机时,在上位机模拟按键用途。例如通过串行口输入指令“M1”,即相当于在 TUF-2000 型超声波流量计键盘上按键 1 ,这样可达到在上位机完全实现键盘操作的所用功能。所有键盘编码如右表所示。
( 十 六 进 制) | 制) | ( 十 六 进 制) | (十进制) | 码 | |||
§1.8 编程举例
1.VB 发出查询每秒瞬时流量的语句 MSCOMM1.INPUT=”dqs”+vbcrlf;
2. 用 VB 发出命令,要求同时发回第 4321 号流量计的 1.瞬时流量 2.瞬时流速 3.正累计量 4.热量累计量 5. AI1 模拟输入电流数值 6. AI2 模拟输入数值并且带校验。发送命令如下:
MSCOMM1.INPUT=“W4321PDQD&PDV&PDI+&PDIE&PBA1&PAI2”+VBCRLF;
3. 用VB 发出修改设置管道外直径(位于M11 窗口)等于 345mm 的命令 MSCOMM1.INPUT=”M<”+VBCRLF+”M1”+VBCRLF+”M1”+VBCRLF+”M3”+VBCRLF+”M4 ”+VBCRLF+”M5”+VBCRLF+”M=”+VBCRLF
上式中 “M<”表示MENU 键,“M=”表示 ENT 键,“M1”表示“1”键。