定时中断用于实现在设置时间间隔的情况下,完成一定的功能动作;计数器中断用于实现在设置计数条件下,完成一定的功能动作。不同的两者,但实现基本原理一致。这里就定时器中断和计数器中断的使用方法分享如下。
一、定时器中断
在处理主程序的运算周期较长时,对特定程序进行高速处理,或者需要在顺控运算时间隔一定时间执行程序时的情况。那么可以使用定时器中断的方式来实现。定时器中断程序实现过程如下图所示:
定时中断处理程序通过中断指针编号指定。中断指针编号规则如下:
每隔指定的中断循环时间(10ms~99ms),执行中断子程序。若要取消中断,则通过中断标志位操作即可。
在进行程序处理的过程中,特别地需要注意:
- 指针编号(I6、I7、I8)不能重复使用
- 在程序中接通M8056~M8058后,其各自支持的定时器中断被禁止
定时中断程序实现举例
1、实现功能
通过定时中断的方式实现每隔10ms对数据进行加法运算,并与设定值比较。
2、程序实现
特殊情况下的定时中断处理
RAMP(FNC 67)、HKY(FNC 71)、SEGL(FNC 74)、ARWS(FNC 75)、PR(FNC 77)指令是与扫描时间同步的,执行一 连串动作的指令。 在这些指令中,由于会出现整体时间过长或在时间波动上有问题,所以使用定时器中断,使指令按照一定时间 间隔执行。此外,未使用定时器中断时,应使用恒定扫描模式。
1、HKY(FNC 71)指令的定时器中断处理
2. RAMP(FNC 67)指令的定时器中断处理
定时中断斜坡输出模型如下图所示:
程序实现如下:
特别注意
1、在中断程序内使用 HKY(FNC 71)、SEGL(FNC 74)、PR(FNC 77)指令时,M8029在中断程序内的HKY(FNC 71)、 SEGL(FNC 74)、PR(FNC 77)指令执行时动作。如下述程序所示,在主程序内参考了 M8029的情况下,由于 M8029会因中断程序而发生变化,因此在某些时序下会出现即使刚执行指令后参考M8029也无法判定指令执行正常结束的情况。如下所示:
2、解决方法
使用DI指令将主程序中使用M8029的指令到参考M8029的区间设定成禁止中断。
二、计数器中断
与DHSCS(FNC 53)的比较置位指令一起使用,当高速计数器的当前值达到规定值时执行中断程序。
程序实现方式如下:
定时器中断指针(6点)的编号及动作
特别注意
- 不能重复使用指针编号
- 在程序中使特殊辅助继电器M8059为ON后,则所有的计数器中断都被禁止
(转载请注明来源函控自动化工程师头条号)