
MB_SERVER — Modbus TCP 服务器
作为 Modbus TCP 服务器,向客户端提供保持寄存器区。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
MB_SERVER 作为 Modbus TCP 服务器,向客户端提供保持寄存器区。
符号与引脚
分类:通信
需要实例
模板值:无
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 使能输入 |
CONNECT | 输入 | 连接参数 |
MB_HOLD_REG | 输入 | 保持寄存器区 |
DISCONNECT | 输入 | 断开连接 |
NDR | 输出 | 新数据 |
DR | 输出 | 数据已读 |
ERROR | 输出 | 错误 |
STATUS | 输出 | 状态码 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1 时每扫描调用;客户端可以读写 HoldReg 数组对应的保持寄存器。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
MB_SERVER是 FB,需要静态实例和TCON_IP_v4连接参数。MB_HOLD_REG是保持寄存器区(Array of Word);客户端按 Modbus 地址访问它。DISCONNECT=TRUE断开连接;正常运行时保持FALSE。NDR/DR/ERROR/STATUS给出执行状态;NDR表示收到新请求。- 这是 Modbus TCP(以太网),默认端口 502。
常用场景
1. 提供保持寄存器
同上面的最小示例。
2. 提供 16 个保持寄存器
把 HoldReg[0..15] 暴露给客户端读写。
| 参数 | 示例值 |
|---|---|
Enable |
TRUE |
DISCONNECT |
FALSE |
HoldReg |
Array[0..15] of Word |
Conn |
本地端口 502,伙伴按实际 |

常见坑
- 没配连接:
CONNECT的本地端口/接口要正确;导入只保证编译。 - 地址映射:客户端看到的 Modbus 地址和
HoldReg下标要按协议换算。 - 数据竞争:客户端读写与程序写同一寄存器时要定义一致性规则。
- 多客户端:确认服务器支持的连接数。
- STATUS:出错先看
STATUS。