1、MODBUS水表通讯协议(RTU模式)一、通讯设置 1. 波特率:9600 2. 校验:无校验3. 数据位:84. 停止位:1二、 modbus协议1、读操作(03H)地址功能码第一个寄存器高位地址第一个寄存器低位地址寄存器的数量的高位寄存器的数量的低位CRC校验低位CRC校验高位XX03XXXXXXXXXXXX 2、读操作回复(03H)地址功能码字节数数据高字节数据低字节CRC校验低位CRC校验高位XX03XXXXXXXXXX 3、写操作(06H)地址功能码第一个寄存器高位地址第一个寄存器低位地址数据高字节数据低字节CRC校验低位CRC校验高位XX06XXXXXXXXXXXX4、 写操作回复
2、(06H)地址功能码第一个寄存器高位地址第一个寄存器低位地址数据高字节数据低字节CRC校验低位CRC校验高位XX06XXXXXXXXXXXX5、写操作(10H)地址功能码第一个寄存器高位地址第一个寄存器低位地址寄存器的数量的高位寄存器的数量的低位字节数数据高字节数据低字节CRC校验低位CRC校验高位XX10XXXXXXXXXXXXXXXXXX6、写操作回复(10H)地址功能码第一个寄存器高位地址第一个寄存器低位地址寄存器的数量的高位寄存器的数量的低位CRC校验低位CRC校验高位XX10XXXXXXXXXXXX7、异常码地址功能码异常码CRC校验低位CRC校验高位XXXX(注3)01H 非法功能
3、02H 非法数据地址03H 非法数据值XXXX注3 异常码是正常功能码的最高位加1,如读操作03H的异常功能码为83H,写单个字06H的异常功能码为86H,写多个字的10H的异常功能码为90H。8、寄存器地址名称寄存器地址字节数 操作备注设备地址0200H2读00H为单只读地址累计流量0202H4读/写注1表具状态0206H2读注2倍率值0208H2读/写见注1中的解释注1:累计流量为4个字节的十六进制数,高位在前,低位在后,累计流量采用无符号的32 位数据(2个字)如:实际数据为123456,则高位字保存0x0001,低位字保存0xE240。单位:根据您写入的倍率值计算,本水表不参与计算,只
4、记录实际脉冲值。比如,您写入的倍率值为分别表示为00H代表1个脉冲只为1立方、01H代表0.1立方、02H代表0.01立方,那么数据123456分别为123456立方;12345.6立方;1234.56立方,由您在上位机程序中进行计算和处理。注2:表具状态位76543210无意义无意义无意义无意义无意义0为现在电池不缺电 无意义无意义1为现在电池缺电 三、举例说明:假设表地址为01(表地址范围1-247)写表底数123456(16进制: 01E240H)01 10 02 02 00 02 04 00 01 E2 40 73 86 13个字节写表底数返回: 01 10 02 02 00 02 E
5、1 B0 8个字节异常时返回: 01 90 03 0C 01 5个字节(非法数据值)-读表累计: 01 03 02 02 00 02 64 73 8个字节读累计返回: 01 03 04 00 01 E2 40 E2 A3 9个字节异常时返回: 01 83 03 01 31 5个字节 -读表地址: 00 03 02 00 00 01 84 63 8个字节返回: 01 03 02 00 01 79 84 7个字节注意!读表地址时,总线上只能连接1只表。-写倍率: 01 06 02 07 00 10 38 7F 8个字节 (设倍率值为10H)返回: 01 06 02 07 00 10 38 7F 8
6、个字节-读倍率:01 03 02 08 00 01 04 70 8个字节返回: 01 03 02 00 10 B9 88 7个字节-读表具状态值:01 03 02 06 00 01 65 B3 8个字节返回: 01 03 02 00 00 B8 44 7个字节(电池电压正常)-四、接线说明: 请使用优质的RS485转RS232转换器正确接线,并配备符合要求的12V-18V电源,使用带屏蔽网的聚苯乙烯双绞4芯线,通讯线路较长时应加大通讯导线的截面积,通讯线应避开大功率用电设备和强干扰源,并做好防水保护。红线:+12V 白线:GND 黄线:RS485 A 蓝线:RS485 B注意:必须谨慎接线!错误将导致损坏仪表模块。 精品word文档,可以编辑