跳到正文
Learn-LAD
示例库/电梯逻辑

电梯逻辑

按下启动后电梯运行 10 秒;若启动信号持续,再等 5 秒进入锁定,避免连续运行。

进阶 S7-1200 电梯 定时器 锁定

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按下启动按钮,电梯运行 10 秒;如果启动信号一直保持,再等 5 秒后进入锁定,防止电梯连续运行。

程序只有一个网络,用 TP(运行 10 秒)+ TON(5 秒后锁定) 组成一个带冷却时间的启动逻辑,是"单次运行 + 防连续触发"的简洁范例。

信号表

信号 类型 含义 作用
Start I 启动按钮/信号 触发电梯运行
Elevator Q 电梯运行输出 运行 10 秒
Tag_1 M 锁定标志 启动信号持续时,5 秒后置位并禁止再启动
IEC_Timer_0_DB TP 运行 10 秒 电梯运行时长
IEC_Timer_0_DB_1 TON 锁定延时 5 秒 运行结束后的冷却时间

工作流程

  1. Start=1 → TP 触发,Elevator=1 运行 10 秒;
  2. 10 秒后电梯停止;
  3. 如果 Start 仍为 1,TON 开始计 5 秒,到时间后 Tag_1=1;
  4. Tag_1 的常闭触点切断启动条件,电梯不会再次运行;松开 Start 后 Tag_1 复位(TON 条件消失),可重新启动。

MainOB

Network 1 — 运行 10 秒 + 防连续锁定

Network 1:Start、Tag_1、Elevator、Elevator、Tag_1

目的:按一次运行固定时间,并防止启动信号长期保持时反复运行。

条件 → 动作:Start=1 且 Tag_1=0 → TP 输出 10 秒,驱动 Elevator;电梯停止后若 Start 仍为 1,TON 计 5 秒后置位 Tag_1,切断启动条件。

为什么:TP 负责"运行多久";TON 负责"运行结束后冷却多久"。Tag_1 的常闭触点串在启动条件里,实现"冷却期间禁止启动"。

注意:Tag_1 是 TON 的输出,不是自锁;Start 松开后 TON 复位,Tag_1 也随之归零。

逻辑: Elevator = TP(IN = Start AND NOT Tag_1, PT = T#10s).Q

Tag_1 = TON(IN = Start AND NOT Tag_1 AND NOT Elevator, PT = T#5s).Q

常见问题

  • 按一次后不能再启动:如果 Start 一直保持,Tag_1 会锁定;先松开再按。
  • 电梯运行时间不对:改 TP 的 PT(10 秒)。
  • 冷却时间不对:改 TON 的 PT(5 秒)。

变体与扩展

  • 楼层请求:把 Start 换成楼层按钮,配合方向判断和限位信号做完整的电梯调度。
  • 加门锁:电梯运行时禁止开门,用 Elevator 的常闭触点串在开门条件里。
  • 加急停:急停按钮直接切断 Elevator,并复位运行标志。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
StartBool%I0.0
ElevatorBool%Q0.0
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

下一步