跳到正文
Learn-LAD
示例库/秋千定时控制

秋千定时控制

按下启动后秋千运行标志置位,30 秒后报警提示;复位按钮解除。

入门 S7-1200 秋千 定时器 报警

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按下启动按钮,秋千开始运行;持续运行 30 秒后触发报警提示;复位按钮用于解除/重置。

程序只有三个网络:启动、30 秒定时、复位。结构简单,但有一个值得注意的写法——Swing start sensor 被当作线圈使用,而它其实是一个 %I 输入地址。

信号表

信号 类型 含义 作用
PB I 启动按钮 触发秋千运行
Swing start sensor I 秋千运行标志 程序把它当线圈写(注意地址类型)
Reset button I 复位按钮 置位 Tag_1,暂时禁止启动
Tag_1 M 复位/禁止标志 为 1 时启动条件断开
Alarm Q 报警输出 运行 30 秒后动作
IEC_Timer_0_DB TON 30 秒 报警延时

工作流程

  1. Tag_1=0 时按下 PB → Swing start sensor=1;
  2. Swing start sensor 持续 30 秒 → Alarm=1;
  3. 按住 Reset button → Tag_1=1,启动条件被切断,Swing start sensor 变 0,报警随之复位;
  4. 松开复位按钮,Tag_1=0,可以再次启动。

MainOB

Network 1 — 启动

Network 1:PB、Tag_1、Swing start sensor

目的:在未复位状态下响应启动按钮。

条件 → 动作:PB=1 且 Tag_1=0 → Swing start sensor=1。

为什么:Tag_1 的常闭触点作为"复位/禁止"条件。

注意:Swing start sensor 在点表里是 %I0.0 输入地址,但这里被当线圈写入。在真实 PLC 中写输入地址通常不会驱动现场设备,建议改成 %M 或 %Q 标志。

逻辑:Swing start sensor = PB AND NOT Tag_1

Network 2 — 30 秒报警

Network 2:Swing start sensor、Alarm

目的:秋千运行超时后报警。

条件 → 动作:Swing start sensor=1 持续 30 秒 → Alarm=1。

为什么:用 TON 做运行时长限制;时间到就报警,提醒管理员。

注意:报警依赖 Swing start sensor 保持为 1;松开 PB 后启动标志变 0,报警也会消失。如果要"报警自保持",需要给 Alarm 加自锁。

逻辑:Alarm = TON(IN = Swing start sensor, PT = T#30s).Q

Network 3 — 复位

Network 3:Reset button、Tag_1

目的:用复位按钮解除运行/报警。

条件 → 动作:按住 Reset button → Tag_1=1,切断启动条件。

为什么:Tag_1 只作为禁止位,不直接复位报警;报警会随着启动标志消失而复位。

注意:Tag_1 是普通线圈,只在按住复位按钮时有效;松开后系统又允许启动。

逻辑:Tag_1 = Reset button

常见问题

  • 按启动没反应:检查 Tag_1 是否为 1(复位按钮被按住或卡住)。
  • 报警不出现:需要启动标志持续 30 秒;中途松开按钮会重新计时。
  • 写输入地址无效:Swing start sensor 是 %I,建议改成 %M/%Q 再使用。

变体与扩展

  • 报警自保持:给 Alarm 加自锁,按复位按钮清除。
  • 运行时间可调:把 TON 的 PT 换成参数。
  • 加安全传感器:在启动条件中串入"秋千区域无人"等安全信号。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Swing start sensorBool%I0.0
Reset buttonBool%I0.1
AlarmBool%Q0.0
PBBool%I0.2
Tag_1Bool%M0.0
系统实例 DB(1 个)

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

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

下一步