导入到我的 TIA 项目
通过 TiaLink 把本示例的 6 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。
概述
按住启动按钮,输送线延时 3 秒启动;瓶子到达传感器后,输送线暂停 26 秒,在这段时间里先灌装 15 秒、再(并行)封盖 10 秒;26 秒后输送线恢复,继续送瓶。
这个例子把边沿置位/复位、延时接通和脉冲定时组合在一个流程里,适合练习"输送 + 工位动作"的常见结构。
信号表
| 信号 |
类型 |
含义 |
作用 |
Start_station |
I |
启动按钮 |
按住启动输送线 |
sensor |
I |
瓶子到位传感器 |
触发灌装/封盖工位 |
Tag_1 |
M |
运行标志 |
按下置位、松开复位(带边沿处理) |
Tag_2 |
M |
工位窗口 |
传感器触发后保持 26 秒 |
Tag_3 |
M |
上升沿存储位 |
配合 P 触点检测按下 |
Tag_4 |
M |
下降沿存储位 |
配合 N 触点检测松开 |
Conveyor |
Q |
输送机 |
运行/暂停 |
Fill valve/pump |
Q |
灌装阀/泵 |
灌装 15 秒 |
Capper actuator |
Q |
封盖执行器 |
封盖 10 秒 |
IEC_Timer_0_DB / _1 |
TP |
灌装 15 秒 / 封盖 10 秒 |
工位动作时长 |
IEC_Timer_0_DB_2 |
TP |
工位窗口 26 秒 |
输送线暂停时长 |
IEC_Timer_0_DB_3 |
TON |
启动延时 3 秒 |
输送线延迟启动 |
工作流程
- 按住
Start_station 并保持 → Tag_1 置位;松开时 Tag_1 复位;
Tag_1=1 后延时 3 秒 → Conveyor 启动,开始送瓶;
- 瓶子到位 →
sensor=1 触发 26 秒的工位窗口 Tag_2,输送线暂停;
Tag_2 期间:Fill valve/pump 灌装 15 秒,Capper actuator 封盖 10 秒(两者同时开始);
- 26 秒结束 →
Tag_2=0,若按钮仍按住,输送线恢复运行。
MainOB
Network 1 — 边沿置位 / 复位运行标志
目的:用按下和松开两个边沿,精确地置位和复位 Tag_1。
条件 → 动作:Start_station 的上升沿(P 触点,存储位 Tag_3)置位 Tag_1;下降沿(N 触点,存储位 Tag_4)复位 Tag_1。
为什么:P/N 触点和 S/R 线圈配合,可以避免用普通触点直接驱动线圈时可能出现的"中间状态"问题,是更规范的按钮处理写法。
注意:Tag_3、Tag_4 是边沿检测的存储位,它们记录上一次扫描的按钮状态,不能当普通标志使用。
逻辑:
Tag_1 = P(IN = Start_station, bit = Tag_3)(置位)
Tag_1 = N(IN = Start_station, bit = Tag_4)(复位)
Network 2 — 输送线延时启动
目的:启动按钮按下后延迟 3 秒再开输送线,并在工位窗口内暂停。
条件 → 动作:Tag_1=1 持续 3 秒 → TON 输出;再串 Tag_2 常闭,得 Conveyor = TON(...).Q AND NOT Tag_2。
为什么:TON 用于"按下去缓一缓"的软启动;Tag_2 常闭让输送线在工位动作期间停下。
注意:Tag_1 只在按住按钮时为 1,所以松开按钮后 TON 立即复位、输送线停止。如果希望按一下持续运行,需要把 Tag_1 改成自锁。
逻辑:Conveyor = TON(IN = Tag_1, PT = T#3s).Q AND NOT Tag_2
Network 3 — 工位窗口 26 秒
目的:传感器一检测到瓶子,就生成一个 26 秒的工位时间窗口。
条件 → 动作:sensor=1 触发 TP → Tag_2 输出保持 26 秒。
为什么:26 秒 ≥ 灌装 15 秒 + 封盖 10 秒,给两个工位留足时间;用 TP 保证即使瓶子瞬间经过传感器,窗口也能完整走完。
逻辑:Tag_2 = TP(IN = sensor, PT = T#26s).Q
Network 4 — 灌装 15 秒 + 封盖 10 秒
目的:在工位窗口内驱动灌装和封盖两个执行器。
条件 → 动作:Tag_2=1 同时触发两个 TP:Fill valve/pump 输出 15 秒,Capper actuator 输出 10 秒。
为什么:两个工位并行动作、各自定时,比串联更省时间。两个 TP 的 PT 可以根据工艺调整。
注意:两个动作同时开始;如果工艺要求"先灌满再封盖",应把封盖的触发条件改成灌装 TP 的下降沿。
逻辑:
Fill valve/pump = TP(IN = Tag_2, PT = T#15s).Q
Capper actuator = TP(IN = Tag_2, PT = T#10s).Q
常见问题
- 输送线不转:
Tag_1 只在按住启动按钮时为 1;松开就停,属于当前逻辑。
- 工位动作不完整:检查 26 秒窗口是否覆盖了两个动作的总时长;要调时间就改
Tag_2 的 TP。
- 边沿存储位被人误用:
Tag_3/Tag_4 只服务于 P/N 触点,不要在其他逻辑里当状态位使用。
变体与扩展
- 按一下持续运行:把
Tag_1 的置位/复位换成"启动按钮置位、停止按钮复位",输送线不再依赖按住。
- 先灌装再封盖:用灌装 TP 的下降沿触发封盖 TP,形成严格先后顺序。
- 多工位:按同样结构继续并联 TP,做贴标、检测等工位。
变量与数据块
系统实例 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 | | |