Network 1 — 启动 1 号设备

条件 → 动作:按下 Pushbutton → Machine 1 置位并自锁;Tag_2=1 时复位。
逻辑:Machine 1 = (Pushbutton OR Machine 1) AND NOT Tag_2
同一个按钮分步启动三台设备:每按一次启动下一台并停上一台;第三台启动后保持。
通过 TiaLink 把本示例的 2 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。
同一个按钮,每按一次就切换一台设备:第一次启动 Machine 1,第二次停 1 号、启 2 号,第三次停 2 号、启 3 号。
程序用一串自锁标志记住"按钮按到第几步",再用这些标志控制三台设备。它是单按钮顺序控制的典型写法,也暴露了"没有复位"时最后一步会卡住的问题。
| 信号 | 类型 | 含义 | 作用 |
|---|---|---|---|
Pushbutton |
I | 单按钮 | 每按一次推进一步 |
Machine 1/2/3 |
Q | 三台设备 | 同一时刻只运行一台 |
Tag_1 |
M | 已松开标志(第 1 步后) | 等待第二次按下 |
Tag_2 |
M | 第 2 步标志 | 停 1 号、启 2 号 |
Tag_3 |
M | 已松开标志(第 2 步后) | 等待第三次按下 |
Tag_4 |
M | 第 3 步标志 | 停 2 号、启 3 号 |
Pushbutton → Machine 1 启动并自锁;Tag_1 置位;Tag_2 置位 → Machine 1 停止、Machine 2 启动;Tag_3 置位;Tag_4 置位 → Machine 2 停止、Machine 3 启动;Tag_4 保持,继续按按钮不会再有变化。
条件 → 动作:按下 Pushbutton → Machine 1 置位并自锁;Tag_2=1 时复位。
逻辑:Machine 1 = (Pushbutton OR Machine 1) AND NOT Tag_2

目的:区分"刚启动 1 号"和"已经松开、准备第二次按下"。
条件 → 动作:Pushbutton=0 且 Machine 1=1 → Tag_1 置位并保持。
逻辑:Tag_1 = (NOT Pushbutton AND Machine 1 OR Tag_1)

条件 → 动作:Tag_1=1 且再次按下 Pushbutton → Tag_2 置位并保持。
为什么:Tag_2 同时承担"停 1 号"和"启 2 号"的开关。
逻辑:Tag_2 = (Tag_1 AND Pushbutton OR Tag_2)

条件 → 动作:Tag_2=1 且 Tag_4=0 → Machine 2=1。
逻辑:Machine 2 = Tag_2 AND NOT Tag_4

条件 → 动作:Tag_2=1 且 Pushbutton=0 → Tag_3 置位并保持。
逻辑:Tag_3 = (Tag_2 AND NOT Pushbutton OR Tag_3)

条件 → 动作:Tag_3=1 且按下 Pushbutton → Tag_4 置位并保持。
逻辑:Tag_4 = (Pushbutton AND Tag_3 OR Tag_4)

条件 → 动作:Tag_4=1 → Machine 3=1。
逻辑:Machine 3 = Tag_4
Tag_4 已自锁,程序没有复位网络;需要加复位按钮或让流程循环。Tag_2/Tag_4 的互锁;正常情况下 Machine 2 = Tag_2 AND NOT Tag_4 会保证只运行一台。Tag_1/Tag_3 需要松开才置位,按住不会连续推进。Tag_1…Tag_4,流程即可从头再来。CTU 记录按钮次数,按次数映射设备,扩展更多台设备更清晰。| 名称 | 数据类型 | 地址 | 注释 |
|---|---|---|---|
| Pushbutton | Bool | %I0.0 | |
| Machine 1 | Bool | %Q0.0 | |
| Machine 2 | Bool | %Q0.1 | |
| Machine 3 | Bool | %Q0.2 | |
| Tag_1 | Bool | %M0.0 | |
| Tag_2 | Bool | %M0.1 | |
| Tag_3 | Bool | %M0.2 | |
| Tag_4 | Bool | %M0.3 |