1、常工电子 三干簧管水表 MODBUS 协议第 1 页 共 7 页1, 数据格式水表接收数据:HEAD1 ADDR CHN DS CRC16水表发送数据:HEAD2 ADDR CHN DB CRC16数据结构:1 位起始位、8 位数据位、2 位停止位多字节数:起始地址/数据结束地址/数据/ 单字节数据波特率: 9600 bps说明: HEAD1: 0xAA 0xAA 水表接收数据帧帧头( 2Bytes )HEAD2: 0x55 0x55 水表发送数据帧帧头( 2Bytes )ADDR: 水表地址 ( 3Bytes )CHN: 功能码 分为读寄存器 写寄存器和自定义功能码 (1Byte)DS/DB
2、: 见各功能详细说明 (DS:DataSend DB:DataBack)CRC16: 帧数据校验,低字节在前,高字节在后,不含帧头两字节数据(2Bytes)2,读多个寄存器2.0.1 读多个寄存器功能码:0x03说明:水表接收与水表发送数据的功能码均是 0x03,出错时返回 0x832.0.2 数据格式水表接收数据 DS(4Bytes): DS1DS2DS3DS4DS1 起始地址(高位)DS2 起始地址(低位)DS3 寄存器数量(高位)DS4 寄存器数量(低位)水表发送数据 DB:DB 1DB2DB3DBDB1 DBDB1+1DB1 :数据字节长度DB2 :起始寄存器( 高位)DB3 :起始寄
3、存器( 低位)DBDB1-1 :结束寄存器 (高位) DBDB1 :结束寄存器( 低位)说明:单字节数据不分高位和低位2.1 读取水表所有充值记录(共 32 条)水表接收数据: DS1DS2: DS3DS4: 0x000A /长度 11水表返回数据: DB1:0x0A /长度 11DB2:充值记录序号 031DB3:年DB4:月DB5:日DB6:时DB7:分DB8 DB9DB10DB11:当前用户充值水量(UserRecharge)2.2 读取当前用户信息水表接收数据: DS1DS2: 常工电子 三干簧管水表 MODBUS 协议第 2 页 共 7 页DS3DS4: 0x001A /长度 26水
4、表返回数据: DB1:0x1A /长度 26DB2DB3DB4 DB5:用户已用水量(正向+ 反向)( consumption)DB6DB7DB8DB9:用户剩余可用水量(Surplus water)DB10:无响应次数 DB11:当前水表状态 (WaterMeterState)DB12DB13DB14DB15:水表正向总流量(Forward Value)DB16DB17DB18DB19:水表反向总流量(Backflow Value)DB20DB21DB22DB23:当次用户充值总量(UserRecharge)DB24DB25:备份记录计数器,永不清零DB26DB27:备份水表脉冲数2.3 读
5、取当前用户充值信息水表接收数据: DS1DS2: DS3DS4: 0x000A /长度 11水表返回数据: DB1:0x0A /长度 11DB2:充值记录序号 031DB3:年DB4:月DB5:日DB6:时DB7:分DB8 DB9DB10DB11:当前用户充值水量(UserRecharge)2.4 读取水表当前总共用量水表接收数据: DS1DS2: DS3DS4: 0x0004 /长度 4水表返回数据: DB1:0x04 /长度 4DB2DB3DB4 DB5:已用水量(正向+ 反向)( consumption)2.5 读取水表参数水表接收数据: DS1DS2: DS3DS4: 0x0012 /
6、长度 18水表返回数据: DB1:0x12 /长度 18DB2DB3:脉冲计量单位,以 0.1L 为一个单位DB4DB5:低水位报警线DB6DB7DB8DB9:最低用量限制(或者最大透支用量) DB10DB11DB12DB13:水表当前基数;DB14DB15:显示控制字DB16DB17:水表工作模式(予留)DB18:水表工作使能DB19:校表参数说明: 低水位报警线:当水量小于该值时,设备提示报警。最低用量限制:当水量小于该值时,设备发出关断用户用水指令。水表当前基数:设备安装改造时,水表显示的已有水量值。常工电子 三干簧管水表 MODBUS 协议第 3 页 共 7 页2.6 读取通讯地址(单
7、机命令)水表地址:ADDR:0x000x000x00水表接收数据: DS1DS2: DS3DS4: 0x0003 /长度 3水表返回数据: DB1:0x03 /长度 3DB2 DB3 DB4:水表通讯地址2.7 读取系列号(单机命令)水表地址:ADDR:0x000x000x00水表接收数据: DS1DS2: DS3DS4: 0x0008 /长度 8水表返回数据: DB1:0x08 /长度 8DB2 DB8:水表出厂序列号2.8 通过系列号读取设备地址水表地址:ADDR:0x000x000x00水表接收数据: DS1DS2: DS3DS4: 0x0008 /长度 8水表返回数据: DB1:0x0
8、8 /长度 8DB2 DB8:水表出厂序列号2.9 读取水表备份历史记录(共 96 条)水表接收数据: DS1DS2: DS3DS4: 0x0017 /长度 23水表返回数据: DB1:0x17 /长度 23DB2DB3:冲值序号DB4:冲值的时间 年DB5:月DB6:日DB7:时DB8:分DB9DB10DB11DB12:用户剩余水量DB13DB14DB15DB16:用户已用水量DB17DB18DB19DB20:水表正向总流量,DB21DB22DB23DB24:水表反向总流量2.10 通过地址读取设备系列号水表接收数据: DS1DS2: DS3DS4: 0x0008 /长度 8水表返回数据:
9、DB1:0x08 /长度 8DB2 DB8:水表出厂序列号常工电子 三干簧管水表 MODBUS 协议第 4 页 共 7 页2.11 读取设备固件版本号水表接收数据: DS1DS2: DS3DS4: 0x0002 /长度 2水表返回数据: DB1:0x02 /长度 2DB2DB3:水表固件版本号2.12 电脑读取设备时间水表接收数据: DS1DS2: DS3DS4: 0x0007 /长度 2水表返回数据: DB1:0x07 /长度 2DB2DB8: 时间 年 月 日 周 时 分 秒3,写多个寄存器 0x10写多个寄存器功能码:0x10说明:水表接收与水表发送数据的功能码均是 0x10,出错时返回
10、 0x90数据格式水表接收数据 DS(4Bytes): DS1DS2DS3DS4DS5DS6DSnDS1起始地址(高位)DS2起始地址(低位)DS3寄存器数量(高位)DS4寄存器数量(低位)DS5字节数(数据长度)DS6DSn:寄存器数据水表发送数据 DB:DB 1DB2DB3DB4DB1DB2DB3DB4 与DS 1DS2DS3DS4数据相同。说明: 单字节数据不分高位和低位;3.1 修正水表正向水量(内部命令,一般为只读型)水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x04 /4 字节DS6DS7DS8DS9:水表当前显示的正向水量3
11、.2 写入当前用户信息水表接收数据: DS1DS2: DS3DS4: 0x0002 /2 个寄存器 2 组数据DS5: 0x08 /8 个字节DS6DS7DS8DS9:用户已用水量DS10DS11DS12DS13:用户可用水量(充值量+ 剩余量)3.3 修正水表已用水量水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x04 /4 字节DS6DS7DS8DS9:水表显示水量常工电子 三干簧管水表 MODBUS 协议第 5 页 共 7 页3.4 设置水表脉冲计量单位水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1
12、组数据DS5: 0x02 /2 字节DS6DS7:水表脉冲计量单位3.5 水表充值水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x04 /4 字节DS6DS7DS8DS9:用户充值水量(当次充值水量)(删除)3.6 写入水表免费水量水表接收数据: DS1DS2: DS3DS4: 0x0002 /2 个寄存器 2 组数据DS5: 0x08 /8 字节DS6DS7DS8DS9:水表剩余水量DS10DS11DS12DS13:免费水量3.7 设置校表参数水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5:
13、 0x01 /1 字节DS6:设置校表参数3.8 设置水表参数水表接收数据: DS1DS2: DS3DS4: 0x0008 /8 个寄存器 8 组数据DS5: 0x12 /18 字节DS6DS7:脉冲计量单位,最小为 10LDS8DS9:低水位报警线DS10DS11DS12DS13:最低用量限制(或者最大透支用量)DS14DS15DS16DS17:水表当前基数DS18DS19: 显示控制字DS20DS21:水表工作模式(予留)DS22:水表工作使能DS23:校表参数3.9 单机设置通讯地址(单机连接)水表接收地址: 0x000x000x00水表接收数据: DS1DS2: DS3DS4: 0x0
14、001 /1 个寄存器 1 组数据DS5: 0x03 /3 字节DS6DS7DS8:水表新设地址水表发送地址: ADDR 为 DS6DS7DS8,水表新设地址水表返回数据: 与DS1DS2 DS3DS4相同常工电子 三干簧管水表 MODBUS 协议第 6 页 共 7 页3.10 设置水表低水量报警线水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x02 /2 字节DS6DS7:水表低水量报警线3.11 设置水表最低用量限制水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x04 /4 字节DS
15、6DS7DS8DS9:水表最低用量限制3.12 设置水表当前基数水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x04 /4 字节DS6DS7DS8DS9:水表当前基数3.13 设置水表工作使能水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x01 /1 字节DS6:水表工作使能3.14 设置时间水表接收数据: DS1DS2: DS3DS4: 0x0007 /7 个寄存器 7 组数据DS5: 0x07 /7 字节DS6 DS12:时间 年 月 日 周 时 分 秒3.15 更新地址水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x03 /3 字节DS6DS7DS8:水表新设地址水表发送地址: ADDR 为 DS6DS7DS8,水表新设地址水表返回数据: 与DS1DS2 DS3DS4相同3.16 修正水表逆流水量水表接收数据: DS1DS2: DS3DS4: 0x0001 /1 个寄存器 1 组数据DS5: 0x04 /4 字节DS6DS7DS8DS9:水表当前显示的逆流水量常工电子 三干簧管水表 MODBUS 协议第 7 页 共 7 页4,自定义功能码4.1 恢复出厂参数 0x424.2 恢复出厂设置 0x43