
PUT — S7 通信写入
通过 S7 连接把本地数据写入伙伴 PLC。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
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 表示完成。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 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 是地址和数据区,不能直接写常量,按实际项目绑定。

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