电子说
一套程序可以分为主程序区,还有子程序区,中断程序区等等,主程序区的程序是无时无刻都会扫描执行的,而子程序还有中断程序就必须触发某些条件,然后程序会停止运行主程序,跳到指定运行的中断程序里面运行。在一段程序里面,主程序是必须有的,其他程序可以选择是否需要。
如下图,是一段程序,有一段主程序,还有2段中断程序I001和I200。假如只有主程序,那么程序结尾就需要一个END指令就可以,如果别别的程序,就需要和下图一样,在主程序区尾端假如一行FEND,主程序结束指令,把主程序和其他程序区分开。
中断程序写在主程序的后面,在左母线的左边输入中断程序的编号,I1代表从这一行开始是I001中断程序(中断指令的编号是3位的,I1就是I001)结束的标准是IRET。第二段中断程序从左母线I200的符号开始,结束时到IRET。这两段中断程序都比较段只有1行程序。
主程序时无时无刻执行的,那么中断程序怎么来触发的呢。首先,看我们程序的第一行,有一条EI指令,代表的是打开中断的功能,这个时候中断就被允许调用了。怎么通过来调用呢?有3种调用的方式。
第一种,外部中断
如下图,我们更改用的中断的编号其中一个是I001,那么对应的应该是X0的上升沿,也就是说,我们外部按下X0的按钮的一瞬间,这一段中断程序就会运行,只运行一个plc的扫描周期,然后又跳回主程序,只运行了一次;又比如I200这段中断程序,需要触发X2的下降沿,就可以跳出主程序,执行I200这一段中断程序,执行一次后又跳回主程序。其他几个X点的不同信号分别对应了不同的中断程序编号。我们可以随意选择。
第二种,定时器中断
如下图的I620的中断指针,代表的是每20ms执行一次中断程序,假如是I630,那么就是30ms执行一次中断的程序,时间的设定可以从10到99ms这个时间随意设置。中断的指针编号由6、7、8这3个,时间都可以自己设定。
第三种,高速计数器中断
指针的编号有6个,从I010到I060,我们可以用高速计数器计算X点的脉冲数,然后通过DHSCS这一条高速中断指令进行设定,控制我们对应的中断指针执行,比如我们下图,就是计数达到1000个脉冲的时候执行中断指针I010。
责任编辑人:CC
全部0条评论
快来发表一下你的评论吧 !