跳到正文
Learn-LAD
示例库/咖啡研磨定时器

咖啡研磨定时器

启动后磨豆机运行一段时间自动停止,演示延时断开定时器的用法。

入门 S7-1200 定时器 TOF 顺序控制

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按下启动按钮,磨豆机运行 30 秒后自动停止;如果启动按钮在磨豆机停止后仍被按下,蜂鸣器会提示(并把提示保持 5 秒);停止按钮可以抑制蜂鸣提示。

程序把"定时运行"和"结束提示"分开写在两个网络里,是学习 TP 脉冲定时器 + TOF 延时断开 的典型例子。

信号表

信号 类型 含义 作用
Start button I 启动按钮 触发研磨和提示
Stop button I 停止/静音按钮 置位 Tag_1 抑制蜂鸣
Grinder motor Q 磨豆机输出 运行 30 秒
Buzzer Q 蜂鸣器 提示音,保持 5 秒
Tag_1 M 静音标志 按下停止按钮后为 1
IEC_Timer_0_DB TP 研磨定时 30 秒 决定磨豆机运行时长
IEC_Timer_0_DB_1 TOF 蜂鸣保持 5 秒 输入消失后继续响 5 秒

工作流程

  1. 按下 Start button → TP 触发,Grinder motor 运行 30 秒;
  2. 30 秒脉冲结束,磨豆机自动停止;
  3. 如果此时 Start button 仍被按下、且磨豆机已停、且 Tag_1=0,TOF 触发 → Buzzer 响;输入消失后还会保持 5 秒;
  4. 按下 Stop button → Tag_1=1,蜂鸣条件被切断。

MainOB

Network 1 — 研磨 30 秒 + 结束提示

Network 1:Start button、Grinder motor、Grinder motor、Tag_1、Buzzer

目的:控制磨豆机定时运行,并在停止后给出提示音。

条件 → 动作:按下 Start button → TP 输出 30 秒,驱动 Grinder motor;(Start button AND NOT Grinder motor AND NOT Tag_1) → TOF 输出,驱动 Buzzer。

为什么:TP 适合"按一次、运行固定时长"(不要求按钮保持);TOF 适合"输入消失后再响一会儿"的提示音。两个输出互不影响,分别由自己的定时器驱动。

注意:蜂鸣条件里用了 NOT Grinder motor,所以磨豆机运行期间不会响;要听到提示,需要在磨豆机停止后仍按住启动按钮。如果本意是"研磨结束自动响一声",应把条件改成磨豆机的下降沿(见"变体与扩展")。

逻辑: Grinder motor = TP(IN = Start button, PT = T#30s).Q

Buzzer = TOF(IN = Start button AND NOT Grinder motor AND NOT Tag_1, PT = T#5s).Q

Network 2 — 停止按钮静音

Network 2:Stop button、Tag_1

目的:按下停止按钮后,禁止蜂鸣提示。

条件 → 动作:按下 Stop button → Tag_1=1;松开后 Tag_1 归 0(直接线圈,没有自锁)。

为什么:Tag_1 的常闭触点串在蜂鸣条件里,所以按住停止按钮期间不会响;这里只做静音,不停磨豆机——磨豆机只由 30 秒 TP 控制。

注意:Tag_1 不是自锁,仅在按住 Stop button 时有效。如果希望"按一次永久静音",需要给 Tag_1 加自锁。

逻辑:Tag_1 = Stop button

常见问题

  • 磨豆机不转:确认 Start button 有信号;TP 触发后即使松开也会走完 30 秒,但必须先按一下。
  • 蜂鸣器不响:需要"磨豆机已停 + 启动按钮仍按住 + 未按停止"三个条件;正常操作中很少同时满足,这是原程序的写法特点。
  • 想改时长:研磨时长改 TP 的 PT(T#30s),提示保持时间改 TOF 的 PT(T#5s)。

变体与扩展

  • 研磨结束自动响一声:用 Grinder motor 的下降沿(NBox/F_TRIG)触发一个 2 秒 TP 驱动 Buzzer,不再要求按住启动按钮。
  • 静音自锁:把 Tag_1 改成 Tag_1 = Stop button OR Tag_1,再增加一个复位按钮。
  • 设定时间可调:把 TP 的 PT 换成变量(如 GrindTime),从 HMI 或参数设置里修改。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
Start buttonBool%I0.0
Stop buttonBool%I0.1
Grinder motorBool%Q0.0
BuzzerBool%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

下一步