导入到我的 TIA 项目
通过 TiaLink 把本示例的 4 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。
概述
按住按钮,泵按"运行 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 秒 |
泵停止时长 |
工作流程
- 按住
PB → Pump ON=1,运行 10 秒;
- 10 秒后
Pump ON=0;只要 PB 仍按住,Tag_1 触发,停止 20 秒;
- 20 秒后
Tag_1=0,泵重新启动 10 秒;
- 松开
PB,两个定时器都失去条件,循环停止。
MainOB
Network 1 — 10 秒运行 / 20 秒停止
目的:产生一个固定节奏的间歇运行。
条件 → 动作: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,并记录各自运行时间。
变量与数据块
系统实例 DB(2 个)
TIA 自动生成的定时器/计数器实例 DB,导入示例时会一并导入。
IEC_Timer_0_DB 实例 DB(IEC_TIMER)
| 名称 | 数据类型 | 起始值 | 注释 |
| Static |
| PT | Time | | |
| ET | Time | | |
| IN | Bool | | |
| Q | Bool | | |
IEC_Timer_0_DB_1 实例 DB(IEC_TIMER)
| 名称 | 数据类型 | 起始值 | 注释 |
| Static |
| PT | Time | | |
| ET | Time | | |
| IN | Bool | | |
| Q | Bool | | |