Modbus 服务器支持以下 Modbus 请求:
功能代码 十进制(十六进制) |
子功能 十进制(十六进制) |
功能 |
---|---|---|
3 (3) |
– |
读取保持寄存器 (%MW) |
6 (6) |
– |
写入单个寄存器 (%MW) |
16 (10) |
– |
写入多个寄存器 (%MW) |
22 (16) |
- |
掩蔽写入寄存器 |
23 (17) |
– |
读取/写入多个寄存器 (%MW) |
43 (2B) |
14 (E) |
读取设备标识 |
区域 |
访问 |
寄存器 |
功能 |
---|---|---|---|
诊断区 |
RO |
900 - 901 |
总线耦合器诊断 |
RO |
930 - 931 |
TM2/TM3 总线和模块状态 |
|
RO |
932 |
系统状态 |
|
RO |
991 - 992 |
通讯诊断 |
|
RO |
1058...1066 |
Ethernet 通讯参数 |
|
RO |
1100...1115 |
TM3 总线耦合器 产品信息 |
|
RO |
2512 - 2513 |
TM3 总线耦合器 设备序列号 |
|
IO Scanner 区 |
RO |
1...99 |
总线耦合器模块输入值的子集(前 7 个模块)(1) |
RW |
101...199 |
总线耦合器模块输出值的子集(前 7 个模块)(1) |
|
RO |
3001...3499 |
总线耦合器模块输入值(所有模块)(1) |
|
RW |
3501...3999 |
总线耦合器模块输出值(所有模块)(1) |
|
RO |
13001...13499 |
用于与 HMI 设备一起使用的总线耦合器模块输入值(所有模块)。 |
|
RO |
13501...13999 |
用于与 HMI 设备一起使用的总线耦合器模块输出值(所有模块)。 |
|
直接 TM3 配置 |
请参阅如何配置:配置管理寄存器 |
15000 - 16499 |
让控制器能够通过 Modbus 请求发送 TM3 配置。 |
(1) 当系统状态(寄存器 932)不为 5(TM3 总线受到 modbus TCP 控制)时,对这些寄存器的访问会导致返回错误。只有在寄存器 931 为 0(总线状态良好,所有模块状态良好)时,寄存器 3001...3499、3501...3999、13001...13999 的值才有效。 |
寄存器 |
功能 |
描述 |
---|---|---|
900 |
总线耦合器诊断 |
位 (0...8):未使用 |
位 (9):I/O 总线运行时错误 |
||
位 (10-11):未使用 |
||
位 (13):I/O 总线未配置或者总线配置错误 |
||
位 (14-15):未使用 |
||
901 |
I/O 模块状态 |
位 (0...13):第一个扩展模块的状态变成第 14 个扩展模块的状态 |
位 (14-15):未使用 |
||
0:未检测到错误 |
||
1:检测到错误 |
寄存器 |
功能 |
位 |
描述 |
---|---|---|---|
930 |
TM3/TM2 总线和模块状态 |
0...1 模块 1 |
模块状态(每个模块 2 个位):
|
2...3 模块 2 |
|||
4...5 模块 3 |
|||
6...7 模块 4 |
|||
8...9 模块 5 |
|||
10...11 模块 6 |
|||
12...13 模块 7 |
|||
14...15 模块 8 |
|||
931 |
TM3/TM2 总线和模块状态 |
0...1 模块 9 |
模块状态(每个模块 2 个位):
|
2...3 模块 10 |
|||
4...5 模块 11 |
|||
6...7 模块 12 |
|||
8...9 模块 13 |
|||
10...11 模块 14 |
|||
12...13 |
保留 |
||
14...15 |
总线状态:
|
寄存器 |
功能 |
描述 |
---|---|---|
932 |
系统的状态 |
|
933 |
TM3/TM2 总线配置 |
|
有关如何使用寄存器 1050 - 1056 来配置网络配置的详细信息,请参阅 通过 Modbus 命令配置网络设置。
寄存器 |
功能 |
---|---|
1050 |
开始或应用网络配置。 1= 开始 0= 应用 |
1051 |
IP 地址高字 |
1052 |
IP 地址低字 |
1053 |
子网掩码高字 |
1054 |
子网掩码低字 |
1055 |
网关地址高字 |
1056 |
网关地址低字 |
1057 |
检测到错误。(请参阅下表中的位的错误指示) |
1058 |
MAC 地址 |
1059 |
|
1060 |
|
1061 |
IP 地址 |
1062 |
|
1063 |
子网掩码 |
1064 |
|
1065 |
网关 |
1066 |
下表介绍了寄存器 1057 的位的错误指示:
位字段 |
错误位 ( 0 = 无错误,1 = 有错误) |
描述 |
||
---|---|---|---|---|
位 0 |
无效 IP |
不允许使用 90.0.0.1 和 90.0.0.2,它们在总线耦合器中保留供 RNDIS 网络使用。 |
||
位 1 |
无效 IP |
高字节值不正确。 值不得为零。 值应大于或等于 224。
无效 IP 地址的示例:
|
||
位 2 |
无效 IP |
不允许使用回送地址。 IP 地址的高字节值或者高字节不得为 127。 示例:不允许使用 IP 地址 127.xxx.xxx.xxx。 |
||
位 3 |
子网掩码无效 |
最后一个字节的最大允许值为 252。
无效子网掩码值的示例:
|
||
位 4 |
子网掩码无效 |
子网掩码必须包含连续的数位,中间不得有零。 无效地址的示例:
|
||
位 5 |
无效 IP |
IP 地址不得为广播地址。 广播地址通过对子网掩码的位取反、然后对 IP 地址执行按位或运算来计算得到。 示例:IP 地址为 10.10.0.3、子网掩码为 255.255.255.252 的配置是无效配置,因为所得到的广播地址等于 IP 地址。 |
||
位 6 |
子网无效 |
未涵盖 IP 类。 使用子网掩码的取反位值对 IP 地址执行的按位与运算所得到的结果不应为 0。 示例:不允许使用 IP 地址 10.10.0.4 和子网掩码 255.255.255.252,因为子网掩码未涵盖 IP 类。 |
||
位 7 |
网关无效 |
网关地址的高字节值不正确。 不允许使用零。 不允许使用 127。 值应小于 224。
不正确网关地址的示例:
|
||
位 8 |
网关无效 |
不允许使用网关地址 255.255.255.255。 |
||
位 9 |
无效 IP |
如果网关地址等于广播地址,则会返回错误。 广播地址通过对子网掩码的位取反、然后对 IP 地址执行按位或运算来计算得到。
无效配置的示例:
|
||
位 10 |
网关无效 |
主机 ID 通过对子网掩码的位取反、然后对网关地址执行按位与运算来计算得到。所得到的值不应为 0。
无效配置的示例:
|
||
位 11 |
无效 IP |
网络不可达。 如果(IP 地址和子网掩码的与运算的结果)不等于(网关地址和子网掩码的与运算的结果),则会返回错误。
无效配置的示例:
|
||
位 12 |
子网无效 |
不允许使用子网掩码 0.0.0.0。 |
||
位 13 |
未使用 |
– |
||
位 14-15 |
状态位:指示网络设置配置的状态 |
位 15 |
位 14 |
描述 |
0 |
0 |
通电时的缺省值。 |
||
0 |
1 |
总线耦合器正在保存网络配置(向寄存器 1050 写入了 |
||
1 |
0 |
已保存网络配置,等待执行电源重置。 |
||
1 |
1 |
网络配置出错,或者发生了超时。 |
||
示例:
|
寄存器 |
功能 |
---|---|
1100 |
TM3 总线耦合器 产品代码 |
2507-2508 |
TM3 总线耦合器 产品固件版本 |
2512-2513 |
TM3 总线耦合器 设备序列号 |
2601 |
旋转开关 ONES 位置 |
2602 |
旋转开关 TENS 位置 |
下表显示了 TM3 总线耦合器 支持的用于扩展模块的寄存器:
寄存器 |
访问 |
功能 |
---|---|---|
1100 |
RO |
TM3 总线耦合器 产品代码 |
1101 |
RO |
TM3 总线耦合器 软件版本 |
1102 |
RO |
扩展模块 1 的类型 |
1103 |
RO |
扩展模块 2 的类型 |
1104 |
RO |
扩展模块 3 的类型 |
1105 |
RO |
扩展模块 4 的类型 |
1106 |
RO |
扩展模块 5 的类型 |
1107 |
RO |
扩展模块 6 的类型 |
1108 |
RO |
扩展模块 7 的类型 |
1109 |
RO |
扩展模块 8 的类型 |
1110 |
RO |
扩展模块 9 的类型 |
1111 |
RO |
扩展模块 10 的类型 |
1112 |
RO |
扩展模块 11 的类型 |
1113 |
RO |
扩展模块 12 的类型 |
1114 |
RO |
扩展模块 13 的类型 |
1115 |
RO |
扩展模块 14 的类型 |
下表显示了用于总线耦合器状态和配置接口的寄存器:
寄存器 |
功能 |
描述 |
---|---|---|
2502 - 2506 |
保留 |
未使用 |
2507 |
固件主修订版 |
- |
2508 |
固件次修订版 |
- |
2512 - 2513 |
序列号 |
- |
2514 - 2515 |
保留 |
未使用 |
2518 |
检测到的 I/O 模块总数 |
最多 14 个模块 |
2519 |
插槽 0 模块 ID(如有) |
- |
2520 |
插槽 1 模块 ID(如有) |
- |
2521 |
插槽 2 模块 ID(如有) |
- |
2522 |
插槽 3 模块 ID(如有) |
- |
2523 |
插槽 4 模块 ID(如有) |
- |
2524 |
插槽 5 模块 ID(如有) |
- |
2525 |
插槽 6 模块 ID(如有) |
- |
2526 |
插槽 7 模块 ID(如有) |
- |
2527 |
插槽 8 模块 ID(如有) |
- |
2528 |
插槽 9 模块 ID(如有) |
- |
2529 |
插槽 10 模块 ID(如有) |
- |
2530 |
插槽 11 模块 ID(如有) |
- |
2531 |
插槽 12 模块 ID(如有) |
- |
2532 |
插槽 13 模块 ID(如有) |
- |
2533 - 2600 |
保留 |
保留 |
2601 |
旋转开关个位值 |
- |
2602 |
旋转开关十位值 |
- |