研发中心 流量计通讯协议
版本:V1.0.0 海森电子股份 2014年10月 文档说明 文档属性 容 文档名称 Modbus协议 文档编号 HS-CK0001-20141030-1 文档状态 正式稿 完成日期 10月14日 部 门 研发中心 作 者 版本 修正日期 修正人 描述 1.0.0 目录 文档说明 ........................................................... 2 一、 协议简介 ...................................................... 4 二、 帧格式 ........................................................ 4 1. 写单一寄存器 ................................................. 4 2. 写多个寄存器 ................................................. 4 2.1写多个寄存器正常回复 ...................................... 5 2.2写多个寄存器错误回复 ...................................... 5 3. 读多个寄存器 ................................................. 5 3.1读多个寄存器正常回复 ...................................... 5 3.2读多个寄存器错误回复 ...................................... 5 三、具体协议 ....................................................... 6 1. 读数据 ...................................................... 6 1.1读累计流量和瞬时流量 ...................................... 6 1.2读公式系数................................................ 6 2. 写数据 ...................................................... 7 2.1 写流量计版本号 .......................................... 10 2.2写从设备地址 .............................. 错误!未定义书签。 2.3写公式系数................................ 错误!未定义书签。 3. 控制器寄存器地址表 ......................................... 13 一、协议简介 网关控制器通讯协议为Modbus协议的MODBUS-RTU格式。控制器暂支持Modbus的03(读多个寄存器) 、06(写单一寄存器)以及10(写多个寄存器)三种功能码。
二、帧格式 1. 写单一寄存器 从设备地址 功能码 寄存器地址 寄存器值 CRC校验 1字节 1字节,06 2字节 2字节 2字节 1.1 写单一寄存器正常回复 从设备地址 功能码 寄存器地址 寄存器值 CRC校验 1字节 1字节 06 2字节 2字节 2字节
1.2 写单一寄存器错误回复 从设备地址 错误码 错误类型 CRC校验 1字节,01 1字节 86 1字节 01 2字节
2. 写多个寄存器
从设备地址 功能码 寄存器起始地址 寄存器数量N 字节数2N 寄存器值 CRC校验 1字节 1字节,10 2字节 2字节 1字节 2N字节 2字节 2.1写多个寄存器正常回复 从设备地址 功能码 寄存器起始地址 寄存器数量N CRC校验 1字节 1字节 10H 2字节 2字节 2字节 2.2写多个寄存器错误回复 从设备地址 错误码 错误类型 CRC校验 1字节 1字节 90H 1字节 01 2字节 3. 读多个寄存器 从设备地址 功能码 寄存器地址 寄存器数量N CRC校验 1字节 1字节,03 2字节 2字节 2字节
3.1读多个寄存器正常回复 从设备地址 功能码 数据字节数2N 数据 CRC校验 1字节 1字节,03 1字节 2N字节 2字节
3.2读多个寄存器错误回复 从设备地址 错误码 错误类型 CRC校验 1字节 1字节,83 1字节 01 2字节 三、具体协议 1.读数据 1.1读累计流量和瞬时流量
a)控制器发送数据: 默认01 03 00 09 00 04 CRC 从设备地址 功能码 起始寄存器地址 寄存器数目
b)流量计回复数据 默认01 03 8 数据 CRC校验 从设备地址 功能码 1字节,数据字节数 8字节 2字节
数据: 累计流量 瞬时流量
4字节 double 4字节 double
流量计回复错误: 默认01 83 01 CRC校验 从设备地址 错误码 错误类型 2字节
例如:控制器发送:01 03 00 09 00 04 94 0B 流量计回复:01 03 08 00 00 B4 41 4E 8A 88 40 E3 5E 错误回复: 01 83 01 80 F0 00 00 B4 41 代表累计流量(低位在前高位在后)22.5 4E 8A 88 40 代表瞬时流量(低位在前高位在后)4.266883
1.2读公式K系数 a)控制器发送:
默认01 03 00 25 00 02 CRC 从设备地址 功能码 起始寄存器地址 寄存器数目
b)流量计回复: 默认01 03 04 数据 CRC校验 从设备地址 功能码 1字节,数据字节数 4字节 2字节 数据: K 4字节 double
控制器回复错误: 默认01 83 01 CRC校验 从设备地址 错误码 错误类型 2字节
例如:控制器发送:01 03 00 25 00 02 d5 c0 流量计回复:01 03 04 40 C0 00 00 EF CF 错误回复:01 83 01 80 f0 40 C0 00 00 代表K=6.0 1.3读公式K1,K2,K3,K4,K5系数 a)控制器发送:
默认01 03 00 27 00 0A CRC 从设备地址 功能码 起始寄存器地址 寄存器数目
b)流量计回复: 默认01 03 14 数据 CRC校验 从设备地址 功能码 1字节,数据字节数 20字节 2字节 数据: K1 K2 K3 K4 K5
4字节 double 4字节 double 4字节 double 4字节 double 4字节 double
控制器回复错误: 默认01 83 01 CRC校验 从设备地址 错误码 错误类型 2字节
例如:控制器发送:01 03 00 27 00 0A 75 c6 流量计回复:01 03 14 B3 1D ED 00 36 FF FC FF BA 14 8C 01 3C 9F 47 FF BE 8E 38 FF C3 84 B3 1D ED 00 代表K1 = -3.676996E-08 36 FF FC FF 代表K2 =7.629045E-06 BA 14 8C 01 代表K3 =-0.0005666614 3C 9F 47 FF 代表K4 =0.01944351 BE 8E 38 FF 代表K5 =-0.2777786 错误回复:01 83 01 80 f0
1.4读版本号 a)控制器发送:
默认01 03 00 07 00 02 CRC 从设备地址 功能码 起始寄存器地址 寄存器数目
b)流量计回复: 默认01 03 04 数据 CRC校验 从设备地址 功能码 1字节,数据字节数 4字节 2字节 数据:
56 46 30 31 4字节 流量计版本VF01
例如:控制器发送:01 03 00 06 00 02 24 0A 流量计回复:01 03 04 56 46 30 31 DF BA 错误回复: 01 83 01 80 f0 2.写数据 2.1写从设备地址 a)控制器发送:
b)流量计正常回复: 不固定 06 00 09 xxxx CRC 从设备地址 功能码 寄存器地址 从设备地址
c)控制器回复错误: 01 86 01 CRC 控制器地址 错误码 错误类型
例如:控制器发送:01 06 00 08 00 02 89 c9 00 02 为从设备地址 流量计回复:02 06 00 08 00 02 89 FA 错误回复: 01 86 01 83 A0
2.2写K公式系数 a)控制器发送:
默认01 10 00 25 00 02 04 XXXX CRC 从设备地址 功能码 起始寄存器地址 2字节 寄存器数目 1字节 字节数 寄存器值
默认01 06 00 09 xxxx CRC 从设备地址 功能码 寄存器地址 从设备地址