解析用S7-200编写的二段程序的编程思路与技巧
本文展示的这二段程序都是为求助帖编写的,并对其编程思路与技巧作以解析,供大家参考,希望能对初学者学习编程有点帮助。
一、求助帖:如题,不管用何种PLC,编写一个开关控制4个灯,按一下,1号灯亮。一号灯亮后,再按一下开关,就关掉,如果按两下开关,就2号灯亮,再按就关掉,如果按3下,就3号灯亮,再按就关掉,4号灯同理。
回复:此面题确实有些难度,现用S7-200编写一段程序供参考:
1、 编程说明:Q0.0 为一号灯输出,Q0.1 为二号灯输出,Q0.2 为三号灯输出,Q0.3 为四号灯输出。此程序按1下、或按2下~按4下的次序可随意,再按1下,就会使前次按亮的灯熄灭。
2、 编程技巧的解析:本题目要求用一个按钮,控制4个灯的亮灭:按一下,1号灯亮。一号灯亮后,再按一下开关,就关掉,如果按两下开关,就2号灯亮,再按就关掉,如果按3下,就3号灯亮,再按就关掉,4号灯同理。
对此要求是这样实现的:按钮输入点I0.0 连接断电延时定时器T101(网络2),其延时时间=1秒。而连续按钮的间隔要求<1秒,这样当连续按几下按钮时,由于连续按钮的间隔<1秒,故使T101从第一次按下按钮起,立即吸合(T101=1),直到最后一次按钮按下抬起,再延时1秒时,T101才从吸合变断开(即T101 由=1变=0),在此时间内,用I0.0=1的后沿对MB10进行加1计数(网络3),这样当T101由1 变为=0 时,MB10 的计数值=本次按钮按下的此数。
3、 对用比较指令判断那个灯亮灭的编程构思:开机使MB9=0,当第一次按钮结束当其T101=1的后沿出现时,进行MB9与MB10比较,由于此时MB10≥1,而MB9=0,故MB10≠M9,再,进行MB10与1、2、3、4比较:
(1)、如MB10=1,而MB9=0(≠2、≠3、≠4),故使Q0.0=1,即第一个灯亮。
(2)、如MB10=2,则使Q0.1=1,即第二个灯亮。
(3)、如MB10=3,则使Q0.2=1,即第三个灯亮。
(4)、如MB10=4,则使Q0.3=1,即第四个灯亮。
(5)、将MB10送入MB9,再将MB10=0.
再按按钮当其T101=1的后沿出现时,进行MB9与MB10比较:
(1)、如MB9=MB10,且MB10=1说明前一次按按钮的次钮=1,故使Q0.0=0,即第一个灯灭。
(2)、如MB9≠MB10,且MB10=1、MB9=2时,说明前一次按按钮的次钮=2,本次按按钮的次钮=1,故使Q0.1 =0,即第二个灯灭。
(3)、如MB9≠MB10,且MB10=1、MB9=3时,说明前一次按按钮的次钮=3,本次按按钮的次钮=1,故使Q0.2 =0,即第三个灯灭。
(4)、如MB9≠MB10,且MB10=1、MB9=4时,说明前一次按按钮的次钮=4,本次按按钮的次钮=1,故使Q0.3 =0,即第四个灯灭。
本程序由于巧妙的运用断电延时定时器的断电滞后断开的特点,结合计数、比较指令的灵活运用,使该程序可准确执行命题要求的控制动作。经上机运行验证,动作正确无误。
二、求助帖:
设计一个启动程序。按下启动按钮,M1启动作正转,五秒后自动停止,三秒后自动反转,再五秒自动停止,再三秒自动正转。如此循环。按下停止按钮自动停止工作。
回复:我给你出个梯形图,只用2个定时器,即可实现控制要求,你可分析一下动作原理:
该程序上机运行正确。
又问:不明白,1和QB0取或,是不是Q0.0,Q0.1都是1啊?能使后面有输出吗?后边置位复位指令矛盾吗,是不是互锁呢?不明白能讲讲吗谢谢大虾
动作说明:按下启动按钮(I0.0=1)QB0与1相或,其结果使QB0=1,即使Q0.0=1,电机正传运行,Q0.0=1使定时器T101得电开始延时,延时5秒时间到,使T101=1,此时Q0.0=1,故使Q0.0=0(正转停),且使M0.0=1,M0.0=1使T102得电延时,延时3秒,T102=1,此时M0.0=1,故使M0.0=0,又是Q0.1=1,即电机反转运行,而M0.0=0使T101失电而断开。Q0.1=1使T101得电延时,延时5秒,T101=1,此时Q0.1=1,故使Q0.1=0(反转停),且使M0.1=1,M0.1=1使T102得电延时,延时3秒,T102=1,此时M0.1=1,故使M0.1=0,又是Q0.0=1,即电机正转运行,而M0.1=0使T102失电而断开。。。。
按停止按钮(I0.1=0),使M0.0、M0.1、Q0.0、Q0.1皆为0,电机停,电路回复起始状态。
这里要说明的是:按下启动按钮(I0.0=1)用或指令代替而不用使Q0.0置1指令,就是为防止输出双线圈引起动作不正常。
本文到此结束,如有不妥之处,请给予指正,本人深表感谢!