一次读取所有8个通道的计数值
发送指令:01 03 00 70 00 10 45 DD
其中
01为设备地址
03为读取计数值的功能码
00 70为4055第一个计数通道的寄存器地址,每一个计数通道占用两个寄存器地址,计数通道2的寄存器地址为00 72.
00 10为要读取的寄存器数量,因为一个通道占用两个寄存器地址,要读取8个通道,所以是16个寄存器地址,10为十六进制数,转换为十进制后是16.
45 DD为CRC校验码
模块返回:01 03 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23 D3 A3
其中
01为模块地址
03为读取计数值的功能码
20为返回数据的字节数量
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23为8个通道当前的采集值,其中一个通道占用4个字节,高位在前。最后一个通道的计数值为00 00 00 23,转换为十进制计数值的方法:
1、把00 00 00 23转换为十进制为:00 00 00 35
2、计数值 = ((00*256+00)*256+00)*256+35 = 35
D3 A3为CRC校验码。
一次读取一个通道的计数值
发送指令:
通道0:01 03 00 70 00 02 C5 D0
通道1:01 03 00 72 00 02 64 10
通道2:01 03 00 74 00 02 84 11
通道3:01 03 00 76 00 02 25 D
通道4:01 03 00 78 00 02 44 12
通道5:01 03 00 7A 00 02 E5 D2
通道6:01 03 00 7C 00 02 05 D3
通道7:01 03 00 7E 00 02 A4 13
其中
01为模块地址
03为读取保持型寄存器的功能码
00 7E为计数通道7的寄存器地址,注意一个计数通道占用2个地址,所以计数通道7的寄存器为00 7a,通道7为00 7c,通道5为00 7A
00 02为读取的寄存器数量,这里02表示读取一个通道。
A4 13为CRC检验码
模块返回:01 03 04 00 00 00 23 BB EA
其中
01为模块地址
03为功能码
04为返回的字节数量
00 00 00 23为对应通道的计数值,计数值00 00 00 23转换为十进制的计数值的方法是:
1、把00 00 00 23转换为十进制为:00 00 00 35
2、计数值 = ((00*256+00)*256+00)*256+35 = 35
BB EA为CRC检验码
清零所有8个通道的计数值
发送指令:01 10 00 70 00 10 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8E 68
其中
01为模块地址
10为写入多个保持型寄存器的功能码
00 70为写入的起始地址,这里为计数通道0的寄存器地址
00 10要写入的寄存器的数量,00 10表示写入16个寄存器,即所有8个通道
20为要写入的字节数量。
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00全部写入0,清零所有通道。
8E 68为CRC检验码
模块返回:01 10 00 70 00 10 C0 1E
模块返回的前6个字节数据和写入的前6个字节数据相同表示清零成功。
C0 1E为crc检验码。
清零一个通道的计数值
发送指令:01 10 00 70 00 02 04 00 00 00 00 F4 8B
其中
01为模块地址
10为写入多个保持型寄存器的功能码
00 70为写入的起始地址,这里为计数通道0的寄存器地址
00 02要写入的寄存器的数量,00 02表示写入2个寄存器,即1个通道
04为要写入的字节数量。
00 00 00 00全部写入0,清零第一通道。
模块返回:01 10 00 70 00 02 40 13
模块返回的前6个字节数据和写入的前6个字节数据相同表示清零成功。