← 返回程序库

按钮三灯循环控制(CTU计数器实现)

西门子 计数器 👁 2 浏览

按一次按钮,三个指示灯按顺序循环点亮,每次只有一个灯亮。

⬇ 下载程序包(指令表+梯形图+参数+说明)
🧩 梯形图
LDI0.0AM0.0=M0.0按钮上升沿检测,产生一个扫描周期的脉冲LDM0.0CUC0LDM0.1RC0计数器C0计数,每按一次按钮加1,设定值PV=3LDC0AM0.2=Q0.0计数当前值为1时点亮1号灯LDC0AM0.3=Q0.1计数当前值为2时点亮2号灯LDC0AM0.4=Q0.2=M0.1计数当前值为3时点亮3号灯,同时产生复位脉冲使计数器归零
📋 指令表(可复制)
// 按钮上升沿检测 LD I0.0 A M0.0 = M0.0 // 计数器C0计数,PV=3,复位由M0.1触发 LD M0.0 CU C0 LD M0.1 R C0 // 计数当前值为1时点亮1号灯 LD C0 A M0.2 = Q0.0 // 计数当前值为2时点亮2号灯 LD C0 A M0.3 = Q0.1 // 计数当前值为3时点亮3号灯,同时产生复位脉冲 LD C0 A M0.4 = Q0.2 = M0.1
点击上方面板可复制指令表
⚙️ 参数说明
名称说明示例值
I0.0启动按钮输入,常开触点,按一次计数一次按钮按下=1,松开=0
Q0.01号指示灯输出计数=1时亮
Q0.12号指示灯输出计数=2时亮
Q0.23号指示灯输出计数=3时亮
C0加计数器,设定值PV=3PV=3
M0.0按钮上升沿脉冲中间位脉冲一个扫描周期
M0.1计数器复位脉冲中间位计数到3时接通一个扫描周期
📖 原理讲解

按一次按钮,三个指示灯按顺序循环点亮,每次只有一个灯亮。

点位说明

类型地址说明
II0.0启动按钮(常开,按一次计数一次)
QQ0.01号指示灯
QQ0.12号指示灯
QQ0.23号指示灯
MM0.0按钮上升沿脉冲
CC0循环计数器(CTU,PV=3)
MM0.1计数完成复位脉冲

指令表

// 按钮上升沿检测
LD I0.0
A M0.0
= M0.0

// 计数器C0计数,PV=3,复位由M0.1触发
LD M0.0
CU C0
LD M0.1
R C0

// 计数当前值为1时点亮1号灯
LD C0
A M0.2
= Q0.0

// 计数当前值为2时点亮2号灯
LD C0
A M0.3
= Q0.1

// 计数当前值为3时点亮3号灯,同时产生复位脉冲
LD C0
A M0.4
= Q0.2
= M0.1

原理讲解

本程序使用西门子S7-200/S7-1200风格的CTU加计数器实现一个按钮控制三个灯循环点亮。

1. 按钮上升沿检测:I0.0为启动按钮,M0.0为上一次扫描的按钮状态。通过 LD I0.0 / A M0.0 / = M0.0 实现上升沿检测,即按钮按下的瞬间M0.0只接通一个扫描周期,避免按住按钮时计数器连续计数。

2. 计数器计数:M0.0的脉冲送入CTU计数器C0的CU端,每按一次按钮C0当前值加1。C0的设定值PV=3。当C0当前值达到3时,C0的完成位(C0触点)接通。

3. 灯输出逻辑:
- 当C0当前值为1时,C0常开触点接通,同时M0.2(比较当前值=1)接通,Q0.0点亮;
- 当C0当前值为2时,M0.3接通,Q0.1点亮;
- 当C0当前值为3时,M0.4接通,Q0.2点亮,同时M0.1产生复位脉冲,将C0复位为0,实现循环。

4. 循环复位:当计数到3时,M0.1接通,R C0指令将计数器C0复位,下一个扫描周期C0当前值变为0,三个灯全部熄灭,等待下一次按钮按下重新从1号灯开始。

5. 互锁保证:由于C0当前值在同一时刻只能等于1、2或3中的一个,因此三个输出Q0.0、Q0.1、Q0.2互斥,任何时刻只有一个灯亮,满足“一次只亮一个灯”的要求。

注意:M0.2、M0.3、M0.4为计数器当前值比较位,在S7-200中可用C0的当前值比较指令实现,在S7-1200中可用CMP == 指令实现。本方案用M位表示比较结果,实际编程时请根据PLC型号用对应的比较指令替换。

本程序由 PLC工控网 AI 生成,供参考学习使用;投入生产前请结合现场实际点位、保护与安全要求核对。

🔗 相关程序
计数器产量计数(三菱FX,C计数器)
mitsubishi · counter · 👁 67
电机启停自锁控制(西门子S7-200 SMART)
siemens · motor · 👁 65
电机星三角降压启动控制(西门子S7-200)
siemens · motor · 👁 70
🤖 用 AI 生成类似程序 🧰 更多PLC工具
💬 工程师点评 (0)
暂无点评,来抢沙发~