
-
新乡市天科测控仪表有限公司
全国统一服务热线:18637357823
电 话:0373-2695792
0373-2695798
0373-2695799
传 真:0373-2695791
邮 箱:xxtkyb@126.com
地 址:河南省新乡牧野区北环路西段小里工业区
液体涡轮流量计M型协议
1. 数据格式说明
1、1通讯模式
本仪表采用MODBUS RTU格式。
协议用于主从查询模式,进行数据通讯。通讯流程如下图。
在RTU模式下,数据格式说明如下。
1、2数据格式
数据格式为n,8,1(1个起始位、8个数据位、无校验、1个停止位)
波特率可选五种,1200、2400、4800、9600、19200
其中:T1、T2、T3、T4为每帧之间的时间间隔,两帧之间的传输必须大于间隔时间。
1、3地址
协议中规定仪表的地址为“01-99”,“0”地址用于广播,本协议不支持广播,其余地址保留。
2. 命令说明
2.1 本仪表使用了MODBUS协议中3条指令:
命令03(HEX) | 读单个或多个寄存器 |
|
命令06(HEX) | 写单个寄存器 | 此命令包含在“命令10”中 |
命令10(HEX) | 写多个寄存器 | 此命令包含“命令6” |
2.2 数据格式
协议中的数据包括:16进制数、整数、BCD码、浮点数
寄存器地址下列表中的属性指数据的读写属性,R-只读;W-写;R/W-既可读,也可写入。
l 单精度浮点数SINGLE格式为IEEE754,数据由低到高。
32位浮点数共计32位,折合4字节。
由高到低位分别是第31、30、29、……、0位 。
31 | 30-23 | 22-0 |
S | 阶码 | 尾数 |
31位是符号位(S),1表示该数为负,0反之;
30-23位,一共8位是阶码;
22-0位,一共23位是尾数。
l BCD码格式有两种:
格式1:4字节BCD编码,数据低→高,如数据20100617,表示为4字节
2 | 0 | 1 | 0 | 0 | 6 | 1 | 7 |
地址低 |
| 地址高 |
格式2: (内部应用)6字节BCD编码,表示固定小数点的数据,数据低→高,如12345.678表示为6字节
0 | 0 | 0 | 0 | 1 | 2 | 3 | 4 | 5· | 6 | 7 | 8 |
地址低 |
| 地址高 |
小数点默认为第9位数的后面。
l 无符号整数Uint为0-65536。
各指令的格式及示例见下面的说明。
命令3格式如下(读寄存器命令):
MODBUS 请求
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 03 |
起始地址 | 2 BYTE | 0-FFFF |
读取数量 | 2 BYTE | 1-7D |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 响应
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 03(06、10) |
字节计数 | 1 BYTE | N |
输入状态 | N*2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
错误 响应
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 03(06、10)+ 80 |
错误代码 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
举例
请求 | 响应 | ||
域名称 | 数据(hex) | 域名称 | 数据(hex) |
仪表地址码 | 01 | 仪表地址码 | 01 |
功能码 | 03 | 功能码 | 03 |
起始地址高(字节) | 00 | 字节计数 | 06 |
起始地址低(字节) | 6B | 寄存器高(108) | 02 |
读取数量高(字节) | 00 | 寄存器低(108) | 2B |
读取数量低(字节) | 03 | 寄存器高(109) | 00 |
| 寄存器低(109) | 00 | |
寄存器高(110) | 00 | ||
寄存器低(110) | 64 | ||
CRC校验 | 校验码 | CRC校验 | 校验码 |
命令6格式如下(写单个字节):
MODBUS 请求
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 10 |
寄存器地址 | 2 BYTE | 0-XFFFF |
寄存器内容 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 响应
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 03(06、10) |
寄存器地址 | 2 BYTE | 0-FFFF |
寄存器内容 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
错误 响应
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 03(06、10)+ 80 |
错误代码 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
举例
请求 | 响应 | ||
域名称 | 数据(hex) | 域名称 | 数据(hex) |
仪表地址码 | 01 | 仪表地址码 | 01 |
功能码 | 06 | 功能码 | 06 |
寄存器地址高 | 00 | 起始地址高(字节) | 00 |
寄存器地址低 | 6B | 起始地址低(字节) | 6B |
高位寄存器值 | 00 | 高位寄存器值 | 00 |
低位寄存器值 | 0F | 低位寄存器值 | 0F |
CRC校验 | 校验码 | CRC校验 | 校验码 |
命令10格式如下(写多个字节):
MODBUS 请求
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 10 |
寄存器起始地址 | 2 BYTE | 0-FFFF |
寄存器数量 | 2 BYTE | 1-7D |
字节计数 | 1 BYTE | N |
设置内容 | N*2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
MODBUS 响应
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 03(06、10) |
寄存器起始地址 | 1 BYTE | 0-FFFF |
寄存器数量 | 2 BYTE |
|
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
错误 响应
仪表地址 | 1 BYTE | 01-99 |
功能码 | 1 BYTE | 03(06、10)+ 80 |
错误代码 | 1 BYTE | 01、02、03 |
CRC低位 | 1 BYTE |
|
CRC高位 | 1 BYTE |
|
举例
请求 | 响应 | ||
域名称 | 数据(hex) | 域名称 | 数据(hex) |
仪表地址码 | 01 | 仪表地址码 | 01 |
功能码 | 10 | 功能码 | 10 |
起始地址高 | 00 | 起始地址高(字节) | 00 |
起始地址低 | 6B | 起始地址低(字节) | 6B |
设置数量高 | 00 | 设置数量高(字节) | 00 |
设置数量低 | 02 | 设置数量低(字节) | 02 |
字节数 | 4 |
|
|
设置寄存器高 | 00 |
|
|
设置寄存器低 | 0F |
|
|
设置寄存器高 | 06 |
|
|
设置寄存器低 | 08 |
|
|
CRC校验 | 校验码 | CRC校验 | 校验码 |
3. 数据项定义
记录信息表
属性 | 地址 (hex/word) | 寄存器长度(word) | 数据类型 | 描述 | 说明 | 备注 (举例) |
采集数据信息 | ||||||
R | 0001 | 2 | SINGLE | M3/h | 瞬时流量 |
|
R | 0003 | 2 | SINGLE | M3/h | 累积流量 |
|
R | 0005 | 2 | SINGLE | V | CPU电压 |
|
流量信息 | ||||||
R/W | 0007 | 2 | SINGLE | M3/h | 满量程 | 备用 |
R/W | 0009 | 2 | SINGLE | M3/h | 小流量切除 | 备用 |
修正信息 | ||||||
R/W | 0010 | 2 | SINGLE | K | 仪表平均系数 | 备用 |
R/W | 0012 | 2 | SINGLE | F1 | 频率1点 | 备用 |
R/W | 0014 | 2 | SINGLE | K1 | 系数补偿1点 | 备用 |
R/W | 0016 | 2 |