跳到正文
Learn-LAD
示例库/泵循环控制

泵循环控制

按住按钮时泵按 10 秒运行 / 20 秒停止循环(不是两台泵轮换)。

入门 S7-1200 泵 循环 定时器

导入到我的 TIA 项目

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

TiaLink 设置

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

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

概述

按住按钮,泵按"运行 10 秒、停止 20 秒"的节奏循环;松开按钮即停止。

程序用 TP(运行窗口)+ TP(停止窗口) 两个定时器互相配合,形成一个占空比可调的循环,是间歇运行类应用的通用模板。

信号表

信号 类型 含义 作用
PB I 启动按钮 按住期间循环运行
Pump ON Q 泵输出 每次运行 10 秒
Tag_1 M 停止窗口 泵停止的 20 秒
IEC_Timer_0_DB TP 运行 10 秒 泵运行时长
IEC_Timer_0_DB_1 TP 停止 20 秒 泵停止时长

工作流程

  1. 按住 PB → Pump ON=1,运行 10 秒;
  2. 10 秒后 Pump ON=0;只要 PB 仍按住,Tag_1 触发,停止 20 秒;
  3. 20 秒后 Tag_1=0,泵重新启动 10 秒;
  4. 松开 PB,两个定时器都失去条件,循环停止。

MainOB

Network 1 — 10 秒运行 / 20 秒停止

Network 1:PB、Tag_1、Pump ON、Pump ON、Tag_1

目的:产生一个固定节奏的间歇运行。

条件 → 动作:PB=1 且 Tag_1=0 → TP 触发,Pump ON=1 保持 10 秒;泵停止后,PB=1 且 Pump ON=0 → 第二个 TP 触发,Tag_1=1 保持 20 秒,期间禁止泵启动。

为什么:两个 TP 首尾相接:一个管"开",一个管"关";Tag_1 的常闭触点是互锁,保证开/关不会重叠。

注意:这是单泵循环,不是两台泵轮换。要轮换两台泵,需要用计数器或状态位在两次运行之间切换输出。

逻辑: Pump ON = TP(IN = PB AND NOT Tag_1, PT = T#10s).Q

Tag_1 = TP(IN = PB AND NOT Tag_1 AND NOT Pump ON, PT = T#20s).Q

常见问题

  • 泵不循环:确认 PB 是否一直按住;松开就停止。
  • 节奏不对:改两个 TP 的 PT:第一个是运行时间,第二个是停止时间。
  • 想要两台泵轮换:当前程序只有一个输出;请参考"泵轮换"类示例,用计数器或状态位切换。

变体与扩展

  • 占空比可调:把两个 PT 换成 HMI 变量,现场调整运行/停止时间。
  • 累计运行时间:加一个运行小时计数器,用于维护提醒。
  • 双泵轮换:在两个运行窗口之间切换 Pump 1/Pump 2,并记录各自运行时间。

变量与数据块

变量表:Default tag table

名称数据类型地址注释
PBBool%I0.0
Pump ONBool%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

下一步