导入到我的 TIA 项目
通过 TiaLink 把本示例的 6 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。
概述
启动按钮按下且传感器有效时,喷漆房按顺序执行:喷漆 10 秒 → 烘干 10 秒 → 20 秒后冲压 2 秒。
程序用一个网络把三个执行器排成时间线,是"喷漆 + 烘干 + 后处理"的顺序控制示例。
信号表
| 信号 |
类型 |
含义 |
作用 |
Start_Button |
I |
启动按钮 |
按住时流程有效 |
Sensor |
I |
工件/位置传感器 |
确认工件到位 |
Spray_Button |
Q |
喷漆输出 |
0~10 秒 |
Drying_Fan |
Q |
烘干风机 |
10~20 秒 |
Puncher |
Q |
冲压执行器 |
20~22 秒 |
| 定时器 |
TP/TON |
10s/10s/20s/2s |
顺序控制 |
工作流程
Start_Button=1 且 Sensor=1 → Spray_Button=1,喷漆 10 秒;
- 喷漆结束 →
Drying_Fan=1,烘干 10 秒(第 10~20 秒);
- 第 20 秒 →
Puncher=1,冲压 2 秒;
- 松开按钮或传感器失效,流程停止(TP 会走完当前脉冲)。
MainOB
Network 1 — 喷漆 → 烘干 → 冲压
目的:在工件到位后按固定时序完成三个动作。
条件 → 动作:
Spray_Button = TP(IN = Start & Sensor, 10s).Q:立即喷漆 10 秒;
Drying_Fan = TP(IN = Start & Sensor & NOT Spray_Button, 10s).Q:喷漆结束后烘干 10 秒;
Puncher = TP(IN = TON(IN = Start & Sensor, 20s).Q, 2s).Q:第 20 秒冲压 2 秒。
为什么:喷漆和烘干用"前一步结束"串联;冲压用 TON 固定在第 20 秒触发,保证在烘干结束后才动作。
注意:Puncher 的 TON 与喷漆/烘干并行计时,如果喷漆或烘干因条件中断而提前结束,冲压仍可能按原时间点触发——这是原逻辑的特点。
逻辑(节选):
Spray_Button = TP(IN = Start_Button AND Sensor, PT = T#10s).Q
Drying_Fan = TP(IN = Start_Button AND Sensor AND NOT Spray_Button, PT = T#10s).Q
Puncher = TP(IN = TON(IN = Start_Button AND Sensor, PT = T#20s).Q, PT = T#2s).Q
常见问题
- 喷漆不启动:确认启动按钮和传感器是否同时为 1。
- 烘干预热不动作:烘干条件是"喷漆结束",检查
Spray_Button 的 10 秒是否走完。
- 冲压时刻不对:冲压由 20 秒的 TON 决定,和喷漆/烘干的时间点相互独立。
变体与扩展
- 加通风联锁:喷漆前先开排风,喷漆结束后延时关排风。
- 加安全门:喷漆房的门未关闭时禁止喷漆。
- 配方:把各段
PT 做成参数,适配不同工件。
变量与数据块
系统实例 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 | | |