跳到正文
Learn-LAD
示例库/车库门定时控制

车库门定时控制

车辆检测后道闸打开 10 秒;停车费已付且车辆仍在时,最长延长到 60 秒。

进阶 S7-1200 道闸 定时器 互锁

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

车辆被检测到后,道闸打开 10 秒;如果车辆仍在、并且停车费已付,道闸最多可以延长到 60 秒,方便车辆通过。

程序用 自锁 + TP + TOF 三个时间层控制开门窗口,是"短开门 + 条件延长"的典型结构。

信号表

信号 类型 含义 作用
vehicle_sensor I 车辆检测 触发开门
parking paid I 停车费已付 允许延长开门
Tag_1 M 有车标志 传感器触发后自锁
Tag_2 M 开门窗口 10 秒 基础开门时间
Tag_3 M 延长窗口 60 秒 可选的长时间开门
gate Q 道闸输出 抬杆
IEC_Timer_0_DB TP 10 秒 基础窗口
IEC_Timer_0_DB_1 TOF 60 秒 延长窗口

工作流程

  1. vehicle_sensor=1 → Tag_1 置位并自锁;
  2. Tag_1 触发 TP → Tag_2=1,gate=1 打开 10 秒;
  3. Tag_2 结束后,TOF 让 Tag_3 再保持 60 秒;
  4. 在延长期间,只要车辆仍在并且 parking paid=1,gate 保持打开;
  5. 条件不满足或延长结束后,道闸关闭。

MainOB

Network 1 — 有车自锁

Network 1:vehicle_sensor、Tag_1、Tag_1

条件 → 动作:vehicle_sensor=1 → Tag_1 置位并自锁。

为什么:车辆经过传感器可能只是瞬间,自锁保证后续定时器有稳定的触发条件。

注意:Tag_1 没有复位条件,会一直保持——和道闸示例一样,这会导致第二辆车无法重新触发开门(见常见问题)。

逻辑:Tag_1 = (vehicle_sensor OR Tag_1)

Network 2 — 基础开门 10 秒

Network 2:Tag_1、Tag_2

条件 → 动作:Tag_1=1 触发 TP → Tag_2=1 保持 10 秒。

为什么:TP 控制最短开门时间,保证车辆有足够时间通过。

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

Network 3 — 延长窗口 60 秒

Network 3:Tag_2、Tag_3

条件 → 动作:Tag_2 结束后,TOF 继续输出 Tag_3=1 60 秒。

为什么:TOF 的"输入断开后继续保持"正好用于延长窗口;它从 Tag_2 的下降沿开始计时。

逻辑:Tag_3 = TOF(IN = Tag_2, PT = T#60s).Q

Network 4 — 道闸输出

Network 4:Tag_2、Tag_3、parking paid、vehicle_sensor、gate

条件 → 动作:Tag_2=1(基础窗口)或(Tag_3=1 或 parking paid=1)且 vehicle_sensor=1 → gate=1。

为什么:基础窗口内无条件开门;延长期间必须同时满足"车辆仍在"和"已付费/延长窗口",避免道闸无车空开。

逻辑:gate = Tag_2 OR (Tag_3 OR parking paid) AND vehicle_sensor

常见问题

  • 第二辆车不抬杆:Tag_1 自锁后没有复位,TP 不会再次触发;需要车辆离开时复位 Tag_1。
  • 道闸一直开着:检查 Tag_3 的 60 秒是否结束,以及 vehicle_sensor/parking paid 是否一直为 1。
  • 没付费也能开:基础 10 秒窗口内不检查付费;如果业务要求先付费,需要把 parking paid 串进基础窗口。

变体与扩展

  • 车离开复位:用 vehicle_sensor 的下降沿复位 Tag_1,让每辆车都能重新触发。
  • 付费联锁:把 parking paid 串入所有开门条件。
  • 防砸保护:落杆前检测车辆是否已完全离开。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
vehicle_sensorBool%I0.0
gateBool%Q0.0
parking paidBool%I0.1
Tag_1Bool%M0.0
Tag_2Bool%M0.1
Tag_3Bool%M0.2
系统实例 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

下一步