题目:编写程序,实现当按下SB1按钮奇数次,灯亮;当按下SB1按钮偶数次,灯灭,即单键启停控制,设计梯形图。
解法一:使用标志位进行自锁互锁
(1)刚上电,标识1位TRUE,但标识2和电机都为FALSE,整个程序不运行。
(2)当按下start的瞬间,第一行程序标识2置TRUE,第二行程序标识1为FALSE,同时标识2也为FALSE,第三行程序实现了自锁功能,所以电机为TRUE。
(3)当第二次按下start的时候,第一行标识2置TRUE,第二行标识1置FALSE,第三行程序断开,电机为FALSE。
解法二:利用置位/复位触发器进行控制
(1)可以使用SR触发器,不需要用自锁,程序变得更加简单。当第一次按下按钮时,Q0.0线圈得电(灯亮),Q0.0常开触点闭合;当第二次按下按钮时,S和R1端子同时高电平,由于复位优先,所以Q0.0线圈断电(灯灭)。
(2)另一种用法就是使用RS指令,当第一次按下按钮时,Q0.0线圈得电(灯亮),Q0.0常闭触点断开;当第二次按下按钮时,R端子高电平,所以Q0.0线圈断电(灯灭)。
解法三:利用边沿触发和自锁完成
当I0.0第一次合上时,M10.0接通一个扫描周期,使得Q0.0线圈得电一个扫描周期,当下一次扫描周期到达,Q0.0常开触点闭合自锁,灯亮。
当I0.0第二次合上时,M10.0得电一个扫描周期,使得M10.0常闭触点断开,灯灭。
解法四:边沿指令+置位复位
使用这种方法的话,按钮需要做成切换型开关,相对来讲没有那么贴合题意。
解法五:使用ADD自加1并进行判断
解法六:使用MOD指令取余并进行判断