北京华水仪表系统有限公司

可信赖的水计量解决方案合作伙伴

超声波流量计RS485系统集成指南

浏览数:836

UPM系列超声水表MODBUSRTU)通讯协议

表1 Modbus RTU通讯设置

串行通讯接口设置

波特率

默认9600bps

数据位

8

停止位

1

校验位

默认无校验(无校验、奇校验、偶校验可?。?/span>

传输模式

Modbus RTU

设备地址

00HFEH00H为广播地址)

功能代码

读数据03H、写数据06H

寄存器有效地址范围

0000H0012H(可以一条指令度多个寄存器的内容)

表2 寄存器分配列表

数据内容

寄存器地址

长度

数据类型

单位

瞬时流量

0000H-0001H

4

浮点型

M3/h

累计流量整数部分

0002H-0003H

4

长整型

M3

累计流量小数部分

0004H-0005H

4

浮点型

M3

正向流量整数部分

0006H-0007H

4

长整型

M3

正向流量小数部分

0008H-0009H

4

浮点型

M3

反向流量整数部分

000AH-000BH

4

长整型

M3

反向流量小数部分

000CH-000DH

4

浮点型

M3

仪表通讯地址

000EH

2

字符型

--

仪表日期时间

000FH-0011H

6

hex

--

仪表诊断信息

0012H

2

字符型

--

表3  仪表诊断信息代码表

00

正常

Bit3

电量不足

Bit0

过载

Bit4

空管

Bit1

泄漏

Bit5

气泡

Bit2

反装

Bit6

通讯唤醒


例:

1、读取设备通讯地址(即设备号),即寄存器地址为000EH,命令如下:

00          03                000E          00 01        E4 18

设备号   功能码      寄存器地址   寄存器长度   校验结果

其中设备号00H 为广播地址,读取仪表信息的时候设备号可以为该仪表的设备好,也可以为广播地址。A4 19是CRC校验结果,是按照CRC-16(BISYNCH,多项式是x16+x15+x2+1屏蔽字为A001H)循环冗余算法得出的。如有疑问请参照MODBUS通讯协议进一步了解算法。

仪表返回数据:

01              03              02             00 01           79 84

设备号   功能码   数据字节数  设备号     校验结果

仪表的通讯地址,即设备号为01H。

2、设置仪表设备通讯地址(即设备号),即寄存器地址为000EH,命令如下:

00                        06                00 0E              00 01         28 18

当前设备号   功能码   寄存器地址    预设设备号  校验结果

仪表返回数据:

01               06              02         00 01            7948

设置后的设备号  功能码   数据字节数     设备号      校验结果

仪表的通讯地址,即设备号为01H。

3、读取1号设备的瞬时流量,即寄存器地址为0000H,命令如下:

01             03         00 00          00 02       C4 0B

设备号  功能码   寄存器地址  寄存器长度  校验结果

仪表返回数据:

01             03             04             E6B6 46 40      1F 0D

设备号  功能码 数据字节数浮点型数据 校验结果

所以瞬时流量为12345.678 m3/h(12345.678四字节16进制表示为46 40 E6 B6)。

4、读取1号设备的累计流量整数部分,即寄存器地址为0002H,命令如下:

01             03        00 02         00 02       65CB

设备号  功能码   寄存器地址  寄存器长度  校验结果

仪表返回数据:

01          03              04                 E2 40 00 01       0C 5F

设备号   功能码  数据字节数       长整型数据    校验结果

则累计流量为123456 m3(123456四字节进制表示为00 01 E2 40)

5、读取1号设备的累计流量小数部分,即寄存器地址为0004H,命令如下:

01             03          00 04         00 02       85 CA

设备号 功能码   寄存器地址  寄存器长度  校验结果

仪表返回数据:

01          03              04                  FBE7 3F 49       13 98

设备号  功能码     数据字节数      浮点型数据     校验结果

则累计流量为0.789 m3(123456.789四字节16进制表示为FB E7 3F 49)

6、读取1号设备的日期时间,即寄存器地址为000AH,命令如下:

01             03           00 0F            00 03      35 C8

设备号  功能码   寄存器地址  寄存器长度  校验结果

仪表返回数据:

01             03             06                       0E 01 0A 0B 12 30            6335

设备号  功能码  数据字节数         16进制数据        校验结果

仪表日期时间为2015年01月10日11时18分48秒

7、读取仪表诊断信息,即寄存器地址为000CH,命令如下:

01             03         00 12          00 01      24 0F

设备号  功能码   寄存器地址  寄存器长度  校验结果

仪表返回数据:

01             03            02              00 63          F86D

设备号  功能码 数据字节数仪表信息 校验结果

仪表信息为63h。转换为二进制为0110 0011。则对应的:

Bit0---1    仪表出现过载,流量超过水表Q4值

Bit1---1    仪表检测到泄漏

Bit2---0    仪表无反装

Bit3---0    仪表无电量不足现象

Bit4---0    仪表无空管现象

Bit5---1    仪表检测到有气泡

Bit6---1    仪表对外通讯被唤醒。

一条指令读取多个寄存器信息示例:

8、读取1号设备的累计流量整数部分和小数,即起始寄存器地址为0002H,长度为 00 04。命令如下:

01             03          00 02          00 04     E5C9

设备号  功能码   寄存器地址  寄存器长度  校验结果

仪表返回数据:

01         03           08             E2 40 00 01  FB E7 3F 49    37 57

设备号  功能码   数据字节数   长整型数据   浮点型数据   校验结果

则累计流量为123456.789 m3。