《 关于PLC如何编程的讨论 》
从网上看到这样一个求助帖:“plc。。三菱fx1n 1只 ,按钮一只(接在x0),电磁阀 6只(接y0~y5).
要求:任意时间按下按钮X0,延时670毫秒y0输出,松开x0,延时650毫秒断开y0。y0输出后,延时640毫秒y1接通,y0断开后,延时630毫秒y1断开,其他的都是上一级接通后延时输出,上一级断开后延时断开,只是时间不同而已。
难点:1 x0在670毫秒里连续接通断开2次咋办? 2 要用很多10毫秒时间继电器。”
由于本人不熟悉三菱PLC的编程语句,对此只做了文字回答。考虑此题目对锻炼编程者的编程技巧有帮助,就用自己熟悉的S7-200语言编写了该程序。由于S7-200的延时10mS的定时器只有4个,就将原题的定时时间做了改动,但编程思路不变。
改动后的课题为:一个按钮控制5个电磁阀。按下启动按钮,保持一段时间后按钮抬起,要求从按下按钮时起,延时1S,使电磁阀1得电,再延时0.9S,使电磁阀2得电,再延时0.8 mS,使电磁阀3得电,再延时0.7 mS,,使电磁阀4得电,再延时0.6 mS,使电磁阀5得电。当按钮抬起时起,延时2S,使电磁阀1断电,再延时1.9 S,使电磁阀2断电,再延时1.8S,使电磁阀3断电,再延时1.7S,,使电磁阀47断电,再延时1.6S,使电磁阀5断电。
在按钮按下时间里,可能会因按钮抖动,出现打连发现象,要求排除抖动干扰,应如何编程?
一、编程的思考:
1、可以用5个通电延时定时器控制5个电磁阀得电,再用5个通电延时定时器控制5个电磁阀断电。由于按钮按下的时间是可变的,其长度有可能短于5个电磁阀延时的总时间,故不能用按钮连接的PLC的输入点(如I0.0)来连接5个定时器,可以用I0.0=1的前沿去触发PLC内部的一个位信号(如M1.0)使其置1(即M1.0=1),再用M1.0的常开点使定时器T101(延时1 S)得电且开始延时,延时时间到,T101=1(即吸合),用其前沿使Q0.0=1(电磁阀1得电动作)T101的常开触点闭合,使T102(延时0.9S)得电开始延时,延时时间到,T102=1,其前沿使Q0.1=1(电磁阀2得电动作)。。。。直到第5个电磁阀得电动作。
按钮抬起(即I0.0=1的后沿)时,使M0.1=1,而M0.1=1使T106(延时2S)得电延时,延时时间到,T106=1,使Q0.0=0(电磁阀1失电断开),同时使T107(延时1.9S)得电延时,延时时间到,T107=1,使Q0.1=0(电磁阀2失电断开)。。。直到电磁阀5失电断开。
2、对按钮按下时因抖动产生的打连发现象的消除:
按下按钮时,因按钮的抖动会产生达立法的现象,是不可避免的。如何在编程时消除这种干扰呢?可以采用这样处理办法:
(1)、按钮连结点为 I0.0,按下按钮时,用I0.0=1 的前沿触发M0.0,使M0.0置1(M0.0=1),用M0.0的常开点去连接控制5 个电磁阀延时启动的定时,这样处理后,一旦M0.0=1,再出现I0.0=1的连发干扰脉冲,对M0.0=1无影响。
(2)、用I0.0的常开点连接通电延时定时器T115,其定时设定为0.5S,当按下按钮,使I0.0=1,连续导通0.5S,T115才能吸合,如按下时产生抖动,抖动引起的干扰脉冲的间距<0.3S,这样T115是不会吸合的,只有抖动现象消除后,再延时0.5S ,T115才能吸合。当按钮抬起时T115立即断开,即T115的断开时间与按钮抬起是同时刻的,我们就用T115=1的后沿去触发5个电磁阀断开的延时定时器,就解决打连发的干扰问题。
二、编程:根据上述分析,编出如下程序:
附件:
[本地下载]经上机运行,其控制动作正确。按钮按下时间大于0.5S 都可正常运行。对连续按几下,其彼此间隔都小于0.5S时,程序都不动作。
最后修改:2011/4/20 14:20:52