发表于:2010/6/17 16:08:06
#0楼
要求:X0输入,Y0、Y1输出。第1次接通X0,Y0接通;第2次接通X0,Y0断开、Y1接通。需用到ANDP指令。
以下详述程序编制过程,以台达ES2型PLC试验。
补叙:那次,有人问起PLS指令与ANDP指令,便随手举了个例子。我编程一般使用所谓的“经验设计法”,下面这个例子也是这样。欢迎各位,提出另外的设计方法。
要用到接点脉冲指令和Y0、Y1,故不妨先将二者安排进去,编制一个图1的程序。显然,程序还不能满足要求,在接通X0时,Y0、Y1仅会闪亮一下。
首先,我们需使Y0能够长期接通,不妨采用自保,见图2。接下来的问题,就是如何使Y1不接通——很自然想到的办法是,可以把Y0的常闭点串到Y1线圈回路,见图3。
好了,第一个目的达到了:接通X0一次,Y0接通。
那么,X0断开后再接通,如何才能使Y0断开、Y1接通呢?这得利用现有的条件了。
现有条件是:X0是第2次接通、Y0已经接通。那么,怎么知道X0是第二次接通,有什么标志呢?其实,X0的上升沿、加Y0的接通,这组合就可表示“X0是第2次接通”,不妨试试,见图4。
为便于编程,特将X0┫↑┣与Y0┫┣的组合,用M0表示。这样做,还能使图面清晰,便于阅读程序。
嗯,现在该看看效果了。运行程序,接通X0,Y0接通;断开X0、再接通,没变,还是Y0接通?!
得分析一下程序了。
第1次接通X0,Y0接通;接下来执行第5行(步序号为5的行)的程序块。此时,X0的上升沿是接通的,Y0已经接通,M0将接通;执行到第10行,Y0的常闭点是断开的,所以Y1不接通。断开X0。
第2次接通X0,Y0保持接通……与上次情况相同!所以Y0不能断开,Y1不能接通;哦,问题肯定在这里了。
那么,利用M0的常闭点断开Y0呢?不妨试一下,见图5。
这下好了,运行程序,接通X0,连Y0也不亮了(观察PLC的输出指示灯);哈哈,可以收拾装备,回去休息了。
且慢,为什么是这样呢?为什么会这样,前面不是说了吗,X0第1次接通时,M0就接通了,M0的接通,使Y0又断开了。
有点眉目了,这么说来:M0的接通,保持到了第2个扫描周期;Y0接通后又断开了。
再次试验,仔细观察,果然Y0闪亮了一下。但M0的接通,也应当与X0的上升沿一致,只有一个扫描周期。或许,是执行OUT M0,M0接通;再次执行到OUT M0,M0断开。
(从上述分析可知,图5中,M0没有能够判别出“X0是第2次接通” 。)
对,扫描周期——第一次接通X0时,不需要M0起作用;于是,可以试把M0指令移至Y0前,见图6。
运行程序,可以了。
啰嗦了一阵,想说明什么问题呢,是想谈点收获:
① 扫描周期的利用;指令位置不同,可能效果不一样。
② 从这程序,可以看到,M0的接通,保持到了再次执行到OUT M0指令。
当然,熟悉了以后,这个程序,可以直接编制,而不需从图1开始。之所以从图1开始介绍,是想说明,初学PLC编程而不知从哪里开始时,可以用基本的方法,从需要实现的功能入手。
呵呵,献丑了,多多包涵!
(20100617)