气缸伸缩计数统计
本教程实现一个经典的生产节拍统计场景:气缸每完成一次"伸出 → 缩回"就计数一次,达到预设次数后点亮完成指示灯并自动停机。通过它你可以掌握计数器(CTU)、上升沿触点与定时器在真实控制场景中的配合使用。
场景目标
启动 → 气缸反复伸缩 ──每个循环计数 1 次──▶ 计数达 10 → 完成指示灯点亮
▼
停止伸缩(自动停机)
复位按钮 ──▶ 计数清零,可重新开始控制要求:
- 按下启动按钮后,气缸开始往复伸缩;
- 气缸每次伸出碰到上限位,计数 +1;
- 计数达到预设值(PV = 10)后,点亮完成指示灯,同时停止伸缩;
- 按下复位按钮,计数清零,可再次启动。
涉及的知识点
- 计数器 CTU(增计数):
CU输入上升沿使CV加 1,CV ≥ PV时QU输出; - 上升沿触点:仅在输入由关变开的瞬间导通一个周期;
- TON 定时器:实现缩回到位后的短暂延时再伸出;
- 置位/复位线圈:保持运行状态与停机状态。
第一步:创建变量
| 变量名 | 类型 | 说明 |
|---|---|---|
I0.0 | Bool | 气缸上限位(场景 → PLC,只读) |
I0.1 | Bool | 气缸下限位(场景 → PLC,只读) |
I0.2 | Bool | 启动按钮 |
I0.3 | Bool | 复位按钮 |
Q0.0 | Bool | 气缸伸缩杆(PLC → 场景,读写) |
Q0.1 | Bool | 计数完成指示灯 |
M0.0 | Bool | 运行标志(自锁保持运行状态) |
C0 | Counter | 计数器(PV = 10) |
T0 | Timer | 缩回到位延时(TON,500ms) |
第二步:编写梯形图
网络 1:启动
I0.2
--|P|----------------------------( S )-- M0.0 (运行标志)
( S )-- Q0.0 (气缸伸出)按下启动按钮(上升沿),置位运行标志与伸缩杆输出,气缸开始伸出。
网络 2:计数与缩回
I0.0(上限位)
--|P|-----------------------------+--( R )-- Q0.0 (缩回)
|
+--[CTU]-- C0 (计数 +1)
CU = I0.0
PV = 10气缸伸出到位,上限位变为 1,其上升沿触发一次计数,同时复位伸缩杆,气缸缩回。
网络 3:再次伸出(往复)
M0.0 I0.1 T0.Q
--| |-----------| |-----------[TON]--+------( S )-- Q0.0
(运行中) (下限位) T0: PT=500ms气缸缩回到位后,下限位导通,定时器 T0 开始计时;0.5 秒后 T0.Q 导通,再次置位伸缩杆,进入下一个循环。
网络 4:计数完成停机
C0.QU(CV ≥ 10)
--| |----------------------------( )-- Q0.1 (完成指示灯)
( R )-- M0.0 (停止运行)
( R )-- Q0.0 (气缸停在缩回位)计数达到 10,QU 输出导通:点亮完成指示灯、复位运行标志、停止气缸。
网络 5:复位
I0.3
--| |----------------------------( R )-- C0(CV 清零)
( R )-- Q0.1按下复位按钮,计数器清零、指示灯熄灭,可重新启动。
提示:
C0的当前值CV也可以在控制面板的输入框中绑定显示,实时查看计数进度。
第三步:搭建 iScene 场景
- 添加 1 个气缸,调整位置与朝向(建议水平摆放,便于观察伸缩);
- 在气缸参数中配置联动变量:
| 气缸参数 | 绑定 PLC 变量 |
|---|---|
| 伸缩杆变量名 | Q0.0 |
| 上限位变量名 | I0.0 |
| 下限位变量名 | I0.1 |
- 添加 1 个控制面板,配置:
| 元素 | 绑定变量 |
|---|---|
| 按钮(启动) | I0.2 |
| 按钮(复位) | I0.3 |
| 指示灯(完成) | Q0.1 |
| 输入框(计数显示,可选) | C0.CV |
第四步:运行与验证
- 在 PLC在线模拟器 中启动仿真;
- 在场景面板中按下启动按钮,观察气缸往复伸缩,每次伸出到位时计数 +1;
- 计数达到 10 后,完成指示灯点亮,气缸停止;
- 按下复位,计数归零,再次启动可重复运行;
- 观察计数过程中"缩回 → 0.5 秒延时 → 伸出"的节奏是否符合预期。
验证要点:
- 计数是否恰好每次伸出加 1(而不是每个扫描周期加 N 次)——这验证了上升沿触点的作用;
- 完成停机后,气缸是否停在缩回位,且运行标志已复位;
- 复位后能否重新启动一个完整流程。
扩展练习
- 把预设值 PV 改为变量绑定(如
M2.0的 Uint16 值),用面板输入框动态设定目标次数; - 增加"计数满后自动复位再循环"的连续批次模式;
- 用
SM0.5(1 秒时钟)驱动一个节拍指示灯,模拟生产节拍可视化; - 给气缸加上气压变量绑定,观察不同气压下伸缩速度与节拍的变化。