介绍PLC双线圈输出的规则,一般情况下不允许出现双线圈输出,在三种特定的条件下允许双线圈输出。合理使用双线圈输出可以解决程序设计中的一些问题,还可以减少执行程序的时间。
问:什么是双线圈输出?
答:在用户程序中,同一编程元件的线圈使用了两次或多次,称为双线圈输出。
问:一般情况下为什么不允许双线圈输出?
答:图1a中有输出继电器Y0的两个线圈,在同一扫描周期,两个线圈的逻辑运算结果可能刚好相反,即Y0的线圈一个“通电”,一个“断电”。因为在程序执行完后才将Y0 的 ON/OFF 状态送到输出模块,对于Y0控制的外部负载来说,真正起作用的是最后一个 Y0 的线圈的状态。
图1 双线圈输出
由 P L C 的工作原理可知,PLC程序执行的结果(即运算得到的线圈的通断状态),马上就可以被后面的逻辑运算使用。Y0的线圈的通断状态除了对外部负载起作用外,通过它的触点,还可能对程序中别的元件的状态产生影响。图1a中Y0两个线圈所在的电路将
梯形图划分为3个区域。因为PLC是循环执行程序的,A区和C区中Y0 的状态相同。如果两个线圈的通断状态相反,不同区域中Y0的触点的状态也是相反的,可能使程序运行异常。作者曾遇到因双线圈引起的输出继电器快速振荡的异常现象。所以一般应避免出现双线圈输出现象,例如可以将图1a改为图1b。有时同一元件的线圈分别在不同的程序段中(如自动程序和手动程序),不能用这种合并控制电路的方法来处理双线圈问题。
问:为什么在某些情况下允许双线圈输出?
答:虽然同一元件的线圈在程序中出现两次或多次,只要能保证在同一扫描周期内只执行其中一个线圈对应的逻辑运算,这样的双线圈输出是允许的。
图2:手动/自动程序
问: 那几种情况允许双线圈输出?
下列三种情况允许双线圈输出:
(1)在跳步条件相反的两个程序段(如自动程序和手动程序)中,允许出现双线圈现象,即同一元件的线圈可以在两个程序段中分别出现一次。图2中的X10是自动/手动切换开关,当它为ON 时将跳过自动程序,执行手动程序;为OFF时将跳过手动程序,执行自动程序。实际上CPU 只执行正在处理的程序段中双线圈元件的线圈输出指令。
(2)在调用条件相反的两个子程序中,允许出现双线圈现象,即同一元件的线圈可以在两个子程序中分别出现一次。图3中X20为ON时调用在指针P0 处开始的子程序,X20 为 OFF 时调用在指针 P1 处开始的子程序。图中的 SRET 为子程序返回指令,FEND 为主程序结束指令。
与跳步指令控制的程序段相同,子程序中的指令只是在该子程序被调用时才执行,没有调用时不执行,因为调用它们的条件相反,在一个扫描周期内只能调用一个子程序,实际上只执行正在处理的子程序中双线圈元件的线圈输出指令。
图3:子程序调用 |