跳到正文
Learn-LAD
示例库/开关与定时输出

开关与定时输出

开关启动两个阀;关闭后阀1 延时 10 秒、阀2 延时 15 秒关闭。

入门 S7-1200 延时断开 TOF 阀门

导入到我的 TIA 项目

通过 TiaLink 把本示例的 4 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。

TiaLink 设置

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

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

概述

合上开关,两个阀同时打开;断开开关后,阀 1 延时 10 秒关闭,阀 2 延时 15 秒关闭。

程序用 自锁 + 两个 TOF 实现"同时开、先后关",是延时断开(TOF)最典型的用法。

信号表

信号 类型 含义 作用
Switch_On I 接通开关 启动两个阀
Switch_Off I 断开开关(常闭) 停止并触发延时关闭
Tag_1 M 运行标志 自锁
Valve1 Q 阀 1 断开后延时 10 秒关闭
Valve2 Q 阀 2 断开后延时 15 秒关闭
定时器 TOF 10s / 15s 延时断开

工作流程

  1. Switch_On=1 → Tag_1 自锁,Valve1、Valve2 同时打开;
  2. 断开开关(Switch_Off 常闭断开)→ Tag_1=0;
  3. Valve1 继续开 10 秒后关闭;
  4. Valve2 继续开 15 秒后关闭。

MainOB

Network 1 — 启停自锁

Network 1:Switch_On、Tag_1、Switch_Off、Tag_1

条件 → 动作:Switch_On 置位 Tag_1 并自锁;Switch_Off 常闭触点断开时复位。

为什么:标准起保停;Tag_1 作为两个 TOF 的共同输入。

逻辑:Tag_1 = (Switch_On OR Tag_1) AND NOT Switch_Off

Network 2 — 延时关闭

Network 2:Tag_1、Valve1、Valve2

目的:让两个阀在停止信号后错开关闭。

条件 → 动作:Tag_1=1 时两个阀立即打开;Tag_1=0 后,TOF 分别保持 10 秒和 15 秒,再关闭。

为什么:TOF 的特性是"输入断开后输出继续保持 PT 时间";两个 TOF 用不同的 PT,就得到先后关闭。

注意:TOF 的 PT 是"断开后延时",不是"接通后延时";如果写成 TON,逻辑会完全不同。

逻辑: Valve1 = TOF(IN = Tag_1, PT = T#10s).Q

Valve2 = TOF(IN = Tag_1, PT = T#15s).Q

常见问题

  • 阀不关闭:检查 TOF 的输入是否真的变 0,以及 PT 是否设置正确。
  • 两个阀同时关:确认两个 TOF 的 PT 不同(10 秒 / 15 秒)。
  • 想要延时打开:把 TOF 换成 TON,接法不变,行为变成"接通后延时开"。

变体与扩展

  • 多阀顺序关闭:继续并联 TOF,设置递增的延时。
  • 延时时间可调:把两个 PT 换成 HMI 变量。
  • 加急停:急停时绕过延时,直接关闭所有阀。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Switch_OnBool%I0.0
Switch_OffBool%I0.1
Valve1Bool%Q0.0
Valve2Bool%Q0.1
Tag_1Bool%M0.0
系统实例 DB(2 个)

TIA 自动生成的定时器/计数器实例 DB,导入示例时会一并导入。

IEC_Timer_0_DB 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool
IEC_Timer_0_DB_1 实例 DB(IEC_TIMER)
名称数据类型起始值注释
Static
PTTime
ETTime
INBool
QBool

下一步