Network 1 — 第一次按下

目的:记录按钮被按下。
条件 → 动作:按下 pb open → Tag_1 置位并自锁。
为什么:Tag_1 是"按下过"的标记,供下一步在松开时使用。
逻辑:Tag_1 = (pb open OR Tag_1)
用脉冲定时器与逻辑组合实现窗帘的自动开合与限位控制。
通过 TiaLink 把本示例的 4 个对象导入你当前打开的 TIA Portal 项目。导入前会先预检,默认不覆盖同名对象,导入后不会自动保存。
用一个按钮(pb open)的"按下 / 松开"节奏来控制窗帘:第一次按下松开后触发一个 30 秒的动作窗口;再次按下则触发第二个 30 秒窗口;两个窗口不会重叠。
它把单按钮顺序(按下/松开产生不同步骤)和脉冲定时器组合成 7 个网络,适合学习"用有限输入表达多个动作"的思路,也能看到这种写法容易变复杂的地方。
| 信号 | 类型 | 含义 | 作用 |
|---|---|---|---|
pb open |
I | 控制按钮 | 按下/松开产生不同步骤 |
Tag_1 |
M | 第 1 步 | 按下时置位 |
Tag_2 |
M | 第 2 步 | 松开时置位;触发窗口 1 |
Tag_3 |
M | 第 3 步 | 再次按下时置位 |
Tag_4 |
M | 窗口 1 | 第 2 步触发,30 秒 |
Tag_5 |
M | 窗口 2 | 第 3 步触发(窗口 1 已结束时),30 秒 |
curtain |
Q | 窗帘输出 | 两个窗口任一有效 |
IEC_Timer_0_DB / _1 |
TP | 各 30 秒 | 两个动作窗口 |
pb open → Tag_1 置位;Tag_2 置位,同时触发 30 秒的窗口 1(Tag_4)→ curtain=1 动作 30 秒;Tag_3 置位;Tag_4=0),窗口 2(Tag_5)触发 → curtain=1 再动作 30 秒;curtain 归 0,等待下一次操作。
目的:记录按钮被按下。
条件 → 动作:按下 pb open → Tag_1 置位并自锁。
为什么:Tag_1 是"按下过"的标记,供下一步在松开时使用。
逻辑:Tag_1 = (pb open OR Tag_1)

目的:松开按钮后进入第 2 步,并准备触发动作窗口。
条件 → 动作:Tag_1=1(按下过)且 pb open=0(松开)→ Tag_2 置位并自锁。
为什么:用"已按下 + 现在松开"判断松开动作,避免按钮没按过就触发。
注意:Tag_2 一旦置位就保持,后续窗口判断依赖它,读图时要记住它不会自动清零。
逻辑:Tag_2 = (Tag_1 OR Tag_2) AND NOT pb open

目的:识别第二次按下。
条件 → 动作:Tag_2=1(已经松开过)且 pb open=1(再次按下)→ Tag_3 置位并自锁。
为什么:Tag_3 代表"第二次按下",与窗口 2 的触发条件配合使用。
逻辑:Tag_3 = (Tag_2 OR Tag_3) AND pb open

目的:松开后输出一个 30 秒的动作窗口。
条件 → 动作:Tag_2=1 触发 TP → Tag_4 输出 30 秒。
为什么:TP 保证窗口完整,不依赖按钮或其他条件维持。
逻辑:Tag_4 = TP(IN = Tag_2, PT = T#30s).Q

目的:第二次按下后输出第二个 30 秒窗口,但避免与窗口 1 重叠。
条件 → 动作:Tag_3=1 且 Tag_4=0(窗口 1 已结束)→ 触发 TP → Tag_5 输出 30 秒。
为什么:NOT Tag_4 是互锁条件,防止两个窗口同时动作;如果窗口 1 还没结束,窗口 2 会等到下一轮。
逻辑:Tag_5 = TP(IN = Tag_3 AND NOT Tag_4, PT = T#30s).Q

目的:把两个窗口合并成窗帘输出。
条件 → 动作:Tag_4=1 或 Tag_5=1 → curtain=1。
为什么:两个窗口是"或"关系,任意一个有效就动作。用一个输出线圈合并,后续接线只需要一根输出。
逻辑:curtain = Tag_4 OR Tag_5
Tag_2/Tag_3 都是保持的,顺序错了后面的步骤不会触发。Tag_4 结束再按。curtain 输出前串"上限位/下限位"条件,避免电机堵转。Tag_1/Tag_2/Tag_3 作为状态位,通过 CASE/IF 统一管理,比散落的线圈更清晰。| 名称 | 数据类型 | 地址 | 注释 |
|---|---|---|---|
| pb open | Bool | %I0.0 | |
| curtain | Bool | %Q0.0 | |
| Tag_1 | Bool | %M0.0 | |
| Tag_2 | Bool | %M0.1 | |
| Tag_3 | Bool | %M0.2 | |
| Tag_4 | Bool | %M0.3 | |
| Tag_5 | Bool | %M0.4 |
TIA 自动生成的定时器/计数器实例 DB,导入示例时会一并导入。
| 名称 | 数据类型 | 起始值 | 注释 |
|---|---|---|---|
| Static | |||
| PT | Time | ||
| ET | Time | ||
| IN | Bool | ||
| Q | Bool | ||
| 名称 | 数据类型 | 起始值 | 注释 |
|---|---|---|---|
| Static | |||
| PT | Time | ||
| ET | Time | ||
| IN | Bool | ||
| Q | Bool | ||