跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/PUT — S7 通信写入

PUT — S7 通信写入

通过 S7 连接把本地数据写入伙伴 PLC。

通信 S7-1200/1500 TIA V19 别名:S7 写入 / PUT

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

PUT 通过 S7 连接把本地数据写入伙伴 PLC。

符号与引脚

分类:通信 需要实例 模板值:remote_type, local_type
引脚方向说明
en流输入使能输入
REQ输入写请求
ID输入S7 连接 ID
ADDR_1输入远程地址 1
ADDR_2输入远程地址 2
ADDR_3输入远程地址 3
ADDR_4输入远程地址 4
SD_1输入本地写入区 1
SD_2输入本地写入区 2
SD_3输入本地写入区 3
SD_4输入本地写入区 4
DONE输出完成
ERROR输出错误
STATUS输出状态码

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

最小示例

Enable=1 时每个扫描调用;REQ 触发写入,按 ID 指定的 S7 连接把 Local 写到 Remote;DONE=1 表示完成。

PUT_Example:Network 1 — 写入远程数据区

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

怎么工作

  • PUT 是 FB,需要静态实例(本页 Inst_PUT)。
  • ID 是 S7 连接 ID;ADDR_1 用 Remote 类型描述远程地址,SD_1 是本地写入区(Variant)。
  • 模板 remote_type=Remote、local_type=Variant。
  • DONE/ERROR/STATUS 给出执行状态;它是 terminal,rung 在它这里结束。
  • 导入只保证块能编译;实际通信还需要配置 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 是地址和数据区,不能直接写常量,按实际项目绑定。

PUT_WriteArea:Network 1 — 写入远程数据区

常见坑

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

← 返回 LAD 指令手册