跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/GET — S7 通信读取

GET — S7 通信读取

通过 S7 连接读取伙伴 PLC 的数据区。

通信 S7-1200/1500 TIA V19 别名:S7 读取 / GET

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

GET 通过 S7 连接读取伙伴 PLC 的数据区。

符号与引脚

分类:通信 需要实例 模板值:remote_type, local_type
引脚方向说明
en流输入使能输入
REQ输入读请求
ID输入S7 连接 ID
ADDR_1输入远程地址 1
ADDR_2输入远程地址 2
ADDR_3输入远程地址 3
ADDR_4输入远程地址 4
RD_1输入本地读取区 1
RD_2输入本地读取区 2
RD_3输入本地读取区 3
RD_4输入本地读取区 4
NDR输出新数据就绪
ERROR输出错误
STATUS输出状态码

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable=1 时每个扫描调用;REQ 触发读取,按 ID 指定的 S7 连接从 Remote 读到 Local;NDR=1 表示新数据就绪。

GET_Example:Network 1 — 读取远程数据区

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • GET 是 FB,需要静态实例(本页 Inst_GET)。
  • ID 是 S7 连接 ID;ADDR_1 用 Remote 类型描述远程地址,RD_1 是本地读取区(Variant)。
  • 模板 remote_type=Remote、local_type=Variant。
  • NDR/ERROR/STATUS 给出执行状态;它是 terminal,rung 在它这里结束。
  • 导入只保证块能编译;实际通信还需要在 TIA 中配置 S7 连接和伙伴地址。

常用场景

1. 读取一块数据

同上面的最小示例。

2. 读取远程数据区

把伙伴 PLC 的 DB/区读到本地工作数组。

输入 示例值 说明
Enable TRUE 每个扫描调用 FB
REQ 0 → 1 → 0 触发一次读取
ID 1(图中常量) S7 连接 ID,和 TIA 连接组态一致
Remote 伙伴 DB1.DBX0.0 BYTE 16 远程地址,按实际项目填写
Local 本地 Array[0..15] of Byte 读取目标区

ID 已写成常量;Remote/Local 是地址和数据区,不能直接写常量,按实际项目绑定。

GET_ReadArea:Network 1 — 读取远程数据区

常见坑

  • 没配 S7 连接:ID 要和 TIA 里的连接一致;导入不会自动建连接。
  • 地址不匹配:Remote/Local 的类型和长度要一致。
  • 同时多个作业:同一连接不要并发多个 GET/PUT。
  • 权限:伙伴 PLC 要允许 PUT/GET 访问。
  • STATUS:出错先看 STATUS。

← 返回 LAD 指令手册