Modbus 基本命令

0x03 – 查询从设备寄存器内容

主设备发送报文从设备地址范围功能码起始寄存器地址寄存器个数CRC校验码
/0x01 - 0xFF (1 字节)0x03 (1 字节)(2 字节)(2 字节)(2 字节)
主设备接受报文从设备地址范围功能码数据区字节数数据区CRC校验码
/0x01 - 0xFF (1 字节)0x03 (1 字节)2 * 寄存器个数 (1 字节)寄存器内容 (2 * 寄存器个数字节)(2 字节)

例子: 读所有数据发送命令举例

主设备发送报文从设备地址范围功能码起始寄存器地址寄存器个数CRC校验码
/010300 0000 47xx xx

说明: 从寄存器 0 开始,连续读 72 (0x47) 个寄存器数据,每一路数据占用一路寄存器。

主设备接受报文从设备地址范围功能码数据区字节数数据区CRC校验码
/01038E12 56 27 01 11 EC ….. (16 进制 2 个字节为一个参数,返回 142 个字节数据 72 个参数)XX XX

说明: 数据区总共有 16 组数据,32 个字节,每组数据为 2 个字节,高字节在前低字节在后;CRC 校验码要根据实际数据得出;如下为举例,其它所有参数依此类推。

其中: 数据区 1256H 代表数据 4694;如电压量程为 30V,即实际电压 = 4694 / 10000 * 30 = 4694 * 0.003 = 14.082V2701H 代表数据 10001;如电压量程为 30V,即实际电压 = 10001 / 10000 * 30 = 10001 * 0.003 = 30.003V

0x06 – 对从设备单个寄存器置数

主设备发送报文从设备地址范围功能码起始寄存器地址寄存器个数CRC校验码
/0x01 - 0xFF (1 字节)0x06 (1 字节)(2 字节)(2 字节)(2 字节)
主设备接受报文从设备地址范围功能码数据区字节数数据区CRC校验码
/0x01 - 0xFF (1 字节)0x06 (1 字节)(2 字节)(2 字节)(2 字节)

例子: 修改采样率命令举例

主设备发送报文从设备地址范围功能码寄存器地址写入的数据CRC校验码
/010600 EF00 09xx xx

说明: 00EFH 地址对应的寄存器内容为采样率,000950ksps 采样率对应的代码值。

主设备接受报文从设备地址范围功能码寄存器地址写入的数据CRC校验码
/010600 EF00 09xx xx

说明: 返回值与主设备发送报文相同。

采样率指标

采样率采样点采样方式采样率代码
100sps512同步采样0000
500sps512同步采样0001
1ksps1024同步采样0002
2ksps1024同步采样0003
4ksps1024同步采样0004
5ksps1024同步采样0005
10ksps2048同步采样0006
20ksps4096同步采样0007
40ksps4096同步采样0008
50ksps4096同步采样0009
100ksps16384轮询采样0010
150ksps16384轮询采样0011

寄存器参数说明

寄存器地址 (括号内为十进制)寄存器内容数据类型数据长度数据说明 (DATA 为从模块读出的数据)
0000-0007H (0-7)1-8 路有效值只读16无符号,值 = DATA * 量程 / 10000
0018-001FH (24-31)1-8 路频率只读16无符号整数,分辨率单位由 00EBH(235) 寄存器设置;最大值 65535 表示数据超范围溢出。注意 00EFH(239) 采样率设置寄存器要大于输入频率才能准确测量:
值=DATA / 100(分辨率 0.01Hz)
值=DATA / 10(分辨率 0.1Hz,出厂默认)
值=DATA(分辨率 1Hz)
值=DATA * 10(分辨率 10Hz)
0040-0047H (64-71)1-8 路占空比只读16无符号,值 = DATA / 100(单位 %,频率大于 15kHz 误差超过 1%,频率越高误差越大不保证精度)
0048-0057H (72-87)1-8 路脉宽最大值只读32无符号,值 = DATA / 10(分辨率 0.1μs)(具有最大值记录功能,读取后清零)
00FEH(254)采样点数只读16总采样点数,不同采样率采样点数不同,参见 采样率指标表
00E5H(229)网口地址1读/写1-250(默认 1255 为广播地址)
00E6H(230)网口波特率1读/写默认 115200bps(可改为 230400 / 256000 / 460800 / 921600 bps)
00E9H(233)更新时间设置1读/写0: 正常时间(缺省采样点)
1: 时间减半(采样点减半)
2: 四分之一时间(采样点减至四分之一)
00EBH(235)频率分辨率设置1读/写0: 0.01Hz
1: 0.1Hz(缺省)
2: 1Hz
3: 10Hz(针对 0018H-001FH 频率数据寄存器)
00EFH(239)采样率1读/写0: 100sps
1: 500sps
2: 1ksps
3: 2ksps
4: 4ksps
5: 5ksps
6: 10ksps
7: 20ksps(缺省)
8: 40ksps
9: 50ksps
10: 100ksps(波形触发记录功能无效)
11: 150ksps(波形触发记录功能无效)
(过采样原理:采样率根据实际输入的频率范围来选择,采样率越高,采到的干扰信号越多)