中断功能常用于可编程plc控制器程序中,其中的中断就相当于子程序,子程序服务于主程序。在PLC的众多功能中中断功能平时用处不大。但是在高速脉冲处理过程中,只需要1MS的定时就可以实现其功能而不中断,但不如中断定时准确。毕竟没有中断,程序扫描受扫描周期的约束。
但是,在某些程序中,必须使用中断,通常是PID,并且检测和读取周期必须准确。无论是之前我们自己编写的PID中断程序,还是现在集成的PID中断程序块,都是利用精确的时间控制来即时处理信息的中断。
今天这篇文章,我们就来说说如何使用PLC的中断功能。
这样,当PLC理解中断功能时,就需要先了解PLC的运行周期或扫描周期。有必要谈谈PLC顺序控制回路执行的流程,这是理解中断的前提,必须掌握。它分为三个部分,输入处理,程序处理,输出处理,
1.输入处理:程序执行前,可编程控制器将可编程控制器所有输入端子的开/关状态读入输入图像区。即使在程序执行期间输入改变,输入图像区域的内容也不会改变,并且当执行下一周期的输入处理时,将读取该改变。
快盈lll 2.程序处理:PLC根据程序存储器中的指令内容,从输入图像区和其他软件组件的图像区读出各软件组件的开/关状态,然后从步骤0开始依次操作,将每次得到的结果写入图像区。因此,每个软件组件的图像区域随着程序的执行而逐渐改变其内容。此外,输出继电器的内部触点根据输出图像区域的内容执行动作。
3.输出处理:所有指令执行完毕后,输出Y像区的开/关状态会传送到输出锁存存储器,作为可编程控制器的实际输出。
执行一个动作所需的时间就是操作周期,也叫扫描时间。那么中断和扫描周期有什么联系呢?中断不是从上到下顺序地完全执行,而是中断程序优先单独运行程序,立即输出,不参与整个循环操作。
快盈lll 中断的作用是什么?我们知道PLC扫描周期很短,所以我们很难看到PLC顺序控制的执行过程。在这里,我们不妨假设扫描周期为10s,即执行所有程序需要10s。有一个很简单的程序LDX0,OUTY0。根据上图,当X0为ON时,Y0不会立即输出,而是10s后才会输出。X0断开后,Y0不会立即关闭。那么,在我们的实际应用中,plc不使用设备就无法工作。此时需要中断处理,采用输入中断功能立即执行输入。其实PLC的运行时间很短,只有几毫秒,完全可以满足需求。然而,某些时间,如微秒级的高频脉冲输入和脉冲捕获,必须受到周期性操作的影响。
快盈lll 因此,如果要在一个周期内多次完成开/关状态处理,必须使用中断功能。一般来说,我们很少使用中断。即使需要带中断功能的PLC高速指令,也不需要专门编写中断子程序。例如,高速计数器使用中断模式来处理来自特定输入继电器的高速脉冲,因此无论操作时间如何,它都可以计数。可以使用高速计数器的特殊比较指令立即输出计数结果,也可以使用高速计数器中断方式处理高速计数器的计数值。
高速计数器不用于计数高频脉冲。我们使用中断功能来计数高速输入。例子如下:EI到FEND为主程序,从指针I101(输入X0的中断指针)到IRET是中断子程序。每当感测到X1的上升沿时,执行子程序立即将该值传输到D10,从而避免了PLC运行周期的影响。