Modbus 寄存器表格
表格格式
地址 |
寄存器 |
RW |
单位 |
类型 |
范围 |
厂商 |
已保存 |
位 |
说明 |
---|---|---|---|---|---|---|---|---|---|
-
地址:一个十六进制的 16 位寄存器地址。该地址是 Modbus 帧中使用的数据。
-
寄存器:一个十进制的 16 位寄存器编号(寄存器 = 地址 + 1)。
-
RW:寄存器读写状态
-
R:只读访问
-
RW:利用 Modbus 功能进行读写访问
-
-
单位:用来表示信息的单位。
-
类型:编码数据类型(请参阅 数据类型)。
-
范围 :这个寄存器的允许值,通常是格式允许的一个子集。
-
厂家: 新设备中经过向出厂设置命令复位的变量的值。
-
已保存:
-
是:断电时,值会被保存。
-
否:断电时,值不会被保存。
-
-
位:用于 BITMAP 说明的位编号。
-
说明:提供关于寄存器和适用限制条件的信息。
数据类型
数据类型 |
描述 |
范围 |
---|---|---|
INT16U |
16 位无符号整数 |
0 至 65535 |
INT16 |
16 位有符号整数 |
-32768 至 +32767 |
INT32U |
32 位无符号整数 |
0 至 4 294 967 295 |
INT32 |
32 位有符号整数 |
-2147483648 到 +2147483647 |
STRING |
文本串 |
每个字符占 1 个字节 |
BITMAP |
16 位寄存器 |
– |
数据类型:BITMAP
BITMAP 寄存器是一种 16 位寄存器,它可以被当成以下对象加以读取:
-
若采用读取多寄存器功能(功能代码 0x03),则为 16 位无符号整数。
-
若采用读取多位功能(功能代码 0x01 或 0x02),则为位集合。
注
-
“类型”栏说明了获取变量所需读取的寄存器数。例如,INT16U 要求读取一个寄存器,而 INT32 需要读取 2 个寄存器。
-
某些变量必须被当成一个多寄存器功能块读取。如果只读一部分数会导致错误。
-
从未记录的寄存器读取会导致 Modbus 异常。请参阅 Modbus 异常代码。
-
数值采用十进制表示。如果需要使用十六进制来表示,那么该值将显示为 C 语言类型的常量:0xdddd。比如,十进制值 123 的十六进制表示方式为:0x007B。
-
INT32U 或 INT32 变量以 big-endian 格式保存:首先传输最有效的寄存器,然后是最无效的寄存器。
-
乱序和不相关数据取决于数据类型。
数据类型 |
乱序和不相关数值 |
---|---|
INT16U |
65535 (0xFFFF) |
INT16 |
-32768 (0x8000) |
INT32U |
4294967295 (0xFFFFFFFF) |
INT32 |
0x80000000 |