控制要求如下:
用一个按钮控制8照明灯。当第一次按下按钮时,奇数灯亮;当第二次按下按钮,偶数灯亮;当第三次按下按钮时,全部灯亮;第四次按下按钮,全部等灭,以此规矩循环。
I/O分配表:
输出模式对应数值:
PLC接线图:
实际中PLC输出晶体管或继电器方式,需根据灯功率加中间继电器。
程序设计思路
1.按钮I0.0:每次按下时,模式计数器加1,范围1~4,到4后再加1回到1。
2.模式计数:用一个字节存储器(例如MB10)保存当前模式值。
3.按钮边沿检测:使用上升沿检测(P),确保按一次只加一次数。
4.根据模式值,用比较指令或查表方式输出对应的QB0值。
5.输出方案:可以用4条MOV_B指令,分别对应模式1~4。
梯形图程序
NETWORK 1// 每次按下I0.0,模式值加1
NETWORK 2// 模式值>4时,回到1
NETWORK 3// 模式=1:奇数灯亮
NETWORK 4// 模式=2:偶数灯亮
NETWORK 5 // 模式=3:全部灯亮
NETWORK 6 // 模式=4:全部灯灭
程序工作过程
1.初始状态:MB10=0(第一次按下I0.0前,灯状态不确定,可初始化在上电时让MB10=0且QB0=0)。
建议增加一个初始化网络:
// 上电初始化
LD SM0.1 // 首次扫描为1
MOVB 0, MB10
MOVB 0, QB0
2.第一次按下I0.0:MB10由0→1 → 触发网络3→MOVB 16#55→Q0.0,Q0.2,Q0.4,Q0.6亮(灯1,3,5,7)。
3.第二次按下:MB10由1→2 → 网络4→MOVB 16#AA→Q0.1,Q0.3,Q0.5,Q0.7亮(灯2,4,6,8),奇数灯灭。
4.第三次按下:MB10由2→3 → 网络5→MOVB 16#FF→全亮。
5.第四次按下:MB10由3→4 → 网络6→MOVB 16#00→全灭。
6.第五次按下:MB10由4→5 → 网络2检测到≥5,将MB10复位为1 → 然后网络3又输出奇数灯亮,重复循环。
模拟测试期望结果
这个程序通俗易懂,结构清晰,包含了上电初始化、边沿检测、循环计数、多路比较输出,适合教学与实际应用。你可以直接在STEP 7-Micro/WIN SMART中输入以上网络,下载到 PLC运行测试。
本例 个人观点 ,内容仅供参考,请仔细甄别。


返回顶部
刷新页面
下到页底