导入到我的 TIA 项目
通过 TiaLink 把本示例的 3 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。
概述
按住启动按钮,炉子和排风机同时运行;松开按钮后炉子立即停止,排风机继续排风 1 分钟再关闭。
程序只有一个网络,用 普通线圈 + TOF 实现"先停炉、后排风"的安全顺序,是延时断开(TOF)的典型应用。
信号表
| 信号 |
类型 |
含义 |
作用 |
Turn_On_PB |
I |
启动按钮 |
按住时炉子和排风机运行 |
Turn_Off_PB |
I |
停止按钮(常闭) |
断开时立即停止 |
Stove |
Q |
炉子输出 |
按钮按住时运行 |
Exhaust |
Q |
排风机 |
按钮松开后继续排风 1 分钟 |
IEC_Timer_0_DB |
TOF |
1 分钟 |
排风延时 |
工作流程
- 按住
Turn_On_PB(且 Turn_Off_PB 未动作)→ Stove=1、Exhaust=1;
- 松开
Turn_On_PB → Stove=0,但 TOF 让 Exhaust 继续保持 1 分钟;
- 1 分钟后
Exhaust=0;
- 按下停止按钮 → 炉子和排风机立即停止(TOF 也会被复位)。
MainOB
| 名称 | 数据类型 | 注释 |
| Temp |
| OB1_EV_CLASS | Byte | Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1) |
| OB1_SCAN_1 | Byte | 1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1) |
| OB1_PRIORITY | Byte | Priority of OB Execution |
| OB1_OB_NUMBR | Byte | 1 (Organization block 1, OB1) |
| OB1_RESERVED_1 | Byte | Reserved for system |
| OB1_RESERVED_2 | Byte | Reserved for system |
| OB1_PREV_CYCLE | Int | Cycle time of previous OB1 scan (milliseconds) |
| OB1_MIN_CYCLE | Int | Minimum cycle time of OB1 (milliseconds) |
| OB1_MAX_CYCLE | Int | Maximum cycle time of OB1 (milliseconds) |
| OB1_DATE_TIME | Date_And_Time | Date and time OB1 started |
| Constant |
|---|
Network 1 — 炉子与排风机
目的:炉子停后让排风机延时关闭,把残余烟气排干净。
条件 → 动作:Turn_On_PB=1 且 Turn_Off_PB=0 → 炉子和排风机同时运行;条件消失后,TOF 让排风机延时 1 分钟关闭。
为什么:TOF 的"输入断开后继续保持"正好满足"炉子先停、风机后停"的安全顺序;停止按钮用常闭,停止优先。
注意:Turn_On_PB 是普通按钮,Stove 没有自锁——必须按住按钮炉子才运行。实际设备通常会给 Stove 加自锁。
逻辑:
Stove = Turn_On_PB AND NOT Turn_Off_PB
Exhaust = TOF(IN = Turn_On_PB AND NOT Turn_Off_PB, PT = T#1m).Q
常见问题
- 炉子不保持:
Stove 没有自锁;松开按钮就停。
- 排风机不延时:确认 TOF 的
PT 和输入条件;停止按钮动作会直接复位 TOF。
- 想改成按一下启动:给
Stove 加自锁,Exhaust 的输入改用 Stove。
变体与扩展
- 加自锁:按一次启动炉子,按停止按钮停炉并触发排风延时。
- 排风延时可调:把 TOF 的
PT 换成变量。
- 加温度联锁:炉温高于阈值时强制排风,直到温度降下来。
变量与数据块
系统实例 DB(1 个)
TIA 自动生成的定时器/计数器实例 DB,导入示例时会一并导入。
IEC_Timer_0_DB 实例 DB(IEC_TIMER)
| 名称 | 数据类型 | 起始值 | 注释 |
| Static |
| PT | Time | | |
| ET | Time | | |
| IN | Bool | | |
| Q | Bool | | |