导入到我的 TIA 项目
通过 TiaLink 把本示例的 6 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。
概述
合上开关后,机床运行 40 秒、冷却液运行 45 秒;两者结束后各产生一个短脉冲(10 秒 / 5 毫秒),用于抑制再次触发。
程序有三个网络:主输出、结束脉冲、以及短延时抑制。注意:这个示例的后两个网络更像实验性逻辑,实际作用有限,读的时候重点看主输出部分。
信号表
| 信号 |
类型 |
含义 |
作用 |
Machine_Bench_Turn_ON_Switch |
I |
总开关 |
启动机床和冷却液 |
Machine |
Q |
机床运行 |
40 秒 |
Coolant |
Q |
冷却液 |
45 秒 |
Tag_2 |
M |
机床结束脉冲 |
机床停止后 10 秒 |
Tag_3 |
M |
冷却结束脉冲 |
冷却停止后 5 毫秒 |
Tag_1 |
M |
点表中未使用 |
— |
工作流程
- 开关闭合 →
Machine 运行 40 秒,Coolant 运行 45 秒;
- 机床停止后,TON 计 10 秒 →
Tag_2 短暂为 1;
- 冷却液停止后,TON 计 5 毫秒 →
Tag_3 短暂为 1;
- 开关断开,所有输出停止。
MainOB
Network 1 — 机床与冷却液
条件 → 动作:开关闭合且 Tag_2=0 → Machine=1 持续 40 秒;开关闭合且 Tag_3=0 → Coolant=1 持续 45 秒。
为什么:用两个 TP 分别控制机床和冷却液的运行时长;冷却液比机床多 5 秒,保证停机后继续冷却。
注意:Tag_2/Tag_3 是短脉冲,正常情况下几乎不影响主输出;TP 触发一次后需要新的上升沿。
逻辑:
Machine = TP(IN = Switch AND NOT Tag_2, PT = T#40s).Q
Coolant = TP(IN = Switch AND NOT Tag_3, PT = T#45s).Q
Network 2 — 机床结束脉冲
条件 → 动作:开关仍闭合、机床已停止、Tag_2=0 → TON 计 10 秒 → Tag_2=1。
为什么:原工程意图可能是"机床停止后延时做某件事";但 Tag_2 只是 TON 输出,置位后条件立即断开,所以只维持一个扫描周期。
注意:这不会形成持续 10 秒的信号,和字面"延时 10 秒"容易混淆。
逻辑:Tag_2 = TON(IN = Switch AND NOT Machine AND NOT Tag_2, PT = T#10s).Q
Network 3 — 冷却结束脉冲
条件 → 动作:开关仍闭合、冷却已停止、Tag_3=0 → TON 计 5 毫秒 → Tag_3=1。
为什么:5 毫秒的延时在实际设备上几乎不可见,可能是原工程的占位/实验参数。
注意:与 Tag_2 类似,这只是瞬时脉冲,不承担实际的冷却后动作。
逻辑:Tag_3 = TON(IN = Switch AND NOT Tag_3 AND NOT Coolant, PT = T#5MS).Q
常见问题
- 机床/冷却液不运行:检查总开关和两个 TP 的条件;
Tag_2/Tag_3 异常为 1 会切断输出。
- 机床停止后没有延时动作:当前程序没有真正的"停止后延时输出",只有瞬时脉冲;应改用 TON 并保持条件。
- 想要冷却液延后关闭:把
Coolant 改成 TOF,或在机床停止后延时断开。
变体与扩展
- 冷却液延时关闭:
Machine 停止后让 Coolant 继续运行 N 秒(TOF 或 TON)。
- 加液位/流量联锁:冷却液无流量时禁止机床运行。
- 维护计时:累计冷却液运行时间,到时提示更换。
变量与数据块
系统实例 DB(4 个)
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 | | |
IEC_Timer_0_DB_2 实例 DB(IEC_TIMER)
| 名称 | 数据类型 | 起始值 | 注释 |
| Static |
| PT | Time | | |
| ET | Time | | |
| IN | Bool | | |
| Q | Bool | | |
IEC_Timer_0_DB_3 实例 DB(IEC_TIMER)
| 名称 | 数据类型 | 起始值 | 注释 |
| Static |
| PT | Time | | |
| ET | Time | | |
| IN | Bool | | |
| Q | Bool | | |