跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/Modbus_Master — Modbus RTU 主站

Modbus_Master — Modbus RTU 主站

作为 Modbus RTU 主站读写从站寄存器;使用前需配置串口。

通信 S7-1200/1500 TIA V19 别名:Modbus RTU 主站 / Modbus_Master

在 TIA 里试一下

选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

一句话

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 访问从站。

Modbus_Master_Example:Network 1 — 读取 RTU 从站

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 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_Master_ReadRtu:Network 1 — 读取 RTU 从站

常见坑

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

← 返回 LAD 指令手册