间隔循环定时:运行 20 秒、停止 10 秒
有些设备不是一直工作,而是"干一会儿、歇一会儿":搅拌机转 20 秒停 10 秒、加药泵定时投加、除尘脉冲间隔喷吹、灌溉定时洒水…… 这类"占空比明确的循环"用两个接通延时定时器最直观——一个计"工作"时间,一个计"停止"时间, 到点互相触发。练习时可直接打开 PLC 在线仿真器 边搭边跑,其它示例见 梯形图示例库。
题目
搅拌电机:按启动后,工作 20 秒 → 停止 10 秒 → 工作 20 秒……如此往复;按停止后电机立即停,并停止循环。
变量表
| 变量名 | 类型 | 习惯地址 | 说明 |
|---|---|---|---|
| 启动 | 布尔 | I0.0 | |
| 停止 | 布尔 | I0.1 | 程序里用常闭触点 |
| 运行 | 布尔 | M0 | 起保停后的系统运行标志 |
| 工作时间 | 时间 | T1 | 接通延时定时器,预设 20s |
| 停止时间 | 时间 | T2 | 接通延时定时器,预设 10s |
| 搅拌电机 | 布尔 | Q0.0 | 输出 |
梯形图逻辑
关键是 T1 的输入:运行 且 停止计时未到。这样 T2 一到点,就把 T1 自动复位,循环重新开始。
运行: M0 = (I0.0 + M0) · /I0.1 T1 的 IN = [ M0 常开 ] ─ [ T2.Q 常闭 ] 工作时长计时(预设 20s) T2 的 IN = [ T1.Q 常开 ] 停止时长计时(预设 10s) 输出: Q0.0 = [ M0 常开 ] ─ [ T1.Q 常闭 ] T1 计时期间输出为 ON
逻辑:
M0 = (启动 + M0) · /停止 T1.IN = M0 · /T2.Q T2.IN = T1.Q Q0.0 = M0 · /T1.Q
一个周期是怎么转起来的
- 启动:M0 = 1 → T1 开始计时(T2 未到),输出 ON —— 工作段
- T1 计时到 20s:T1.Q = 1 → 输出 OFF、T2 开始计时 —— 停止段
- T2 计时到 10s:T2.Q = 1 → T1 的输入被切断并清零、T1.Q 归 0
- T2 的输入随 T1.Q 一起消失,T2 也清零 —— 回到第 1 步,自动开始下一个周期
搭建步骤
- 变量表建「启动」「停止」「运行」「搅拌电机」四个布尔变量
- 第一梯级:启动/停止做起保停,得到 M0
- 放第一个接通延时定时器(T1),预设 20s;输入串一个「M0 常开」和「T2.Q 常闭」
- 放第二个定时器(T2),预设 10s;输入接「T1.Q 常开」
- 输出梯级:「M0 常开」+「T1.Q 常闭」→ 常开线圈「搅拌电机」
- 开始模拟:启动后观察电机 ON 20s、OFF 10s 循环;按停止立即断开
- 把两个预设值换成量得到的短时间(如 2s / 1s)先看效果,再改回 20s / 10s
要点:
① 两个时间分别决定"开多久"和"停多久",占空比随手可调——这就是它比
闪烁示例
里"自复位定时器"更适合实际应用的原因:那个只能得到脉冲串,得不到明确的停止段。
② 停止后所有定时器自然清零,所以每次重新启动都从"工作段"开始,状态确定。
③ 定时精度取决于扫描周期,教学仿真毫秒级误差可以忽略;真实设备上如果要精确到毫秒,用硬件定时或系统时钟指令。
变体与延伸
- 只循环固定次数:给 T1 到点信号接一个增计数器(配合 T2 的复位),到设定次数后再不启动
- 两个以上的节奏:把循环链延长成 T1→T2→T3→回 T1,就能做出"快搅—慢搅—静置"这类多段循环
- 与顺序控制组合:把本例的输出段接到 步进顺序示例的某一步里,就成了"工位内部的节拍"
- 定时洒水/投喂:把输出换成电磁阀/电机,把工作段设成 30s、停止段设成 5min,就是最常见的定时灌溉与投喂逻辑
练习完成后,如果你想把这套循环逻辑用到真实的西门子 S7-1500 工程里,可以先用 梯形图转 SCL 得到结构化文本,再用 TiaLink(博途 MCP 网关) 写进博途工程并下载到 PLCSIM 仿真。