
Modbus_Master — Modbus RTU 主站
作为 Modbus RTU 主站读写从站寄存器;使用前需配置串口。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
Modbus_Master 作为 Modbus RTU 主站,读写从站寄存器;使用前要先配置串口。
符号与引脚
分类:通信
需要实例
模板值:无
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 使能输入 |
REQ | 输入 | 请求 |
MB_ADDR | 输入 | 从站地址 |
MODE | 输入 | 读写模式 |
DATA_ADDR | 输入 | 起始寄存器地址 |
DATA_LEN | 输入 | 寄存器数量 |
DATA_PTR | 输入 | 数据区 |
DONE | 输出 | 完成 |
BUSY | 输出 | 忙 |
ERROR | 输出 | 错误 |
STATUS | 输出 | 状态码 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1 时每扫描调用;REQ 触发一次请求,按 MB_ADDR/MODE/DATA_ADDR/DATA_LEN 访问从站。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
Modbus_Master是 FB,需要静态实例(本页Inst_Master)。- 使用前必须先调用
Modbus_Comm_Load配置串口(波特率、校验、端口、MB_DB)。 MB_ADDR是从站地址(1..247);MODE=0读、MODE=1写(按 TIA 规则)。DATA_ADDR起始寄存器,DATA_LEN数量,DATA_PTR数据区。DONE/BUSY/ERROR/STATUS给出执行状态。- 这是串口 Modbus(RTU),需要 CM/RS485 硬件。
常用场景
1. 读取从站
同上面的最小示例。
2. 读取 RTU 从站
从站地址 2,起始寄存器 100,读 4 个寄存器到 Data[0..3]。
| 参数 | 示例值 |
|---|---|
Enable |
TRUE |
REQ |
0 → 1 → 0 |
MB_ADDR |
2 |
MODE |
0(读) |
DATA_ADDR |
100 |
DATA_LEN |
4 |
Data |
Array[0..3] of Word |

常见坑
- 没配串口:先
Modbus_Comm_Load;端口/波特率/校验要和从站一致。 - 地址/寄存器偏移:Modbus 地址和 PLC 地址可能差 1,按从站手册确认。
- REQ 一直为 1:用上升沿触发,避免重复请求。
- 同时多个请求:主站一次只处理一个请求;用
BUSY互锁。 - 硬件:需要 CM/RS485 模块;没有硬件时块只能编译,不能实际通信。