三菱plc双重线圈想必是每个新手在接触plc编程时都会遇到的问题,从原理上讲双线圈输出并非是“程序错误”,而是使输出重叠覆盖导致动作混乱。想要搞清楚双线圈输出异常首先要明白PLC的工作原理,在这里简单说下输入输出的刷新方式:
PLC在运行中会一直重复执行①~③步骤进行输入输出处理,整个过程就是扫描时间或者运算周期,当然一个周期时间内还要干其他的事情,这里我们只说下输出,PLC对输入进行提取后将结果存放到输入映像存储区或者缓存区,然后根据输入对程序做运算将输出结果存放到锁存内存中,双线圈问题就是出在输出软元件的映像存储区的更新,由plc从上到下的扫描方式,最下面的线圈将会是最终的输出线圈从而导致前面的线圈输出无效。
为了方便说明我们以实际的PLC梯形图进行说明双线圈问题的实质:
上图就是一个典型的双线圈输出Y0,我们进行仿真测试下,闭合M0,M1断开:
从结果看,M0闭合Y0没有输出,但Y1却有输出(此时Y1前面的Y0是断开的),这个结果很有趣。其实从上面的原理来解释很简单,在一个扫描周期内,从上到下看:
1、M0闭合Y0有输出,将Y0的结果ON状态存到映像存储区,
2、接近着Y1的ON状态也存到存储区内,
3、此时映像存储区内的Y0和Y1的状态都是ON,由于M1的断开PLC判断Y0没有输出,这时候映像存储区内的Y0的状态就进行了更新变成OFF,注意Y1的状态并没有更新(这里可能有的同学会问Y0不是变了吗Y1为什么不变,一定要记住一个扫描周期内只会从上到下从左到右扫描一次),所以最终的输出锁存内存中Y0是OFF状态,Y1是ON状态。
以上就是双线圈造成的混乱,在这里我们需要了解PLC的扫描原理和扫描周期时间的重要性,因此要编程梯形图时一定要注意程序前后顺序的重要性,如果我们把上图步2放在最后,结果就不一样了,
在三菱plc编程软件中程序编译或者转换中双线圈是不会报错的,我们需要点击工具→程序检查进行。
检查的结果会有:
1 Error MAIN 程序检查 'Y000'为双线圈。可能会无法正常运行,请修改程序。(步No.1) C9300
为了避免双线圈的问题,我们只需要把Y0的条件并联起来即可:
(责任编辑:admin) |