以前实现一个输出信号的ON/OFF交替,我都是选择使用两个计时器来编程。最近想给自己增加了琢磨的内容,如何使用单个计时器来实现输出信号交替ON/OFF功能。按照设想初步编制了一段测试程序,如图1。
使用三菱PLC仿真测试,发现并不能实现循环交替输出的功能。执行完初始的M10_ON切换到M20_ON后,M20_ON就不能正常地切换回M10_ON了。 仔细观察程序,终于发现了问题点:当第19行程序在当前扫描周期内得到交替启动信号,给M10线圈置位后,第27行程序仍然可以利用这个交替启动信号,它与M10的“与”逻辑又把M10线圈给复位了。
找到了问题症结,就不用盲目修改程序瞎尝试了。思考了一下,认为消除这个Bug的算法应该是:让第19行程序当前扫描周期内的交替启动信号,无法作用到第27行程序上。
具体实现方法:在第19行程序段中增加一个中间继电器M3,使用PLS指令,让M3只能ON一个扫描周期。在第27行程序段里串入M3的常闭信号。如图2.
再次启动程序仿真,可以观察到,第19行程序当前扫描周期内的交替启动信号作用后,M3被触发并仅在当前扫描周期内保持ON, 第29行(原第27行)程序,正好可以被M3的常闭信号给拦阻掉。至此,单计时器成功实现让Y0输出信号实现交替ON/OFF.