ABB全新YB560103-AE DSQC 204
冗余模块,电源模块,继电器输出模块,继电器输入模块,处理器模块。
CompactLogix:1769/1768系列Logix5000: 1756/1789/1794/1760/1788系列 PLC-5: 1771/1785 系列
设第n个子程序的运行时间为Rn;同一个中断源的两次中断***小时间间隔In,在中断处理程序结构1中,中断1,中断2,中断3的优先权级为中断1>中断 2>中断3,这种方法在中断处理中广为使用。对于具有抢先优先级要求的程序可以通过第二个程序结构完成,即每执行完一个中断程序都重新检查该中断程序的中断标志位,如果其标志位又被置位,则执行该中断。为了确保第二个中断能够执行必须要求R1<I1,同样第三个能够执行的条件是R1+R2<
BTFSC INT1,INTIF ;判断INT1是否有中断
GOTO INT1 ;是!执行INT1中断
如果ISR2的程序较长或者ISR1的中断级较高,可以在ISR2中加入多条这样的语句。同样道理,为了形成ISR2的次高优先级,可以在ISR3中加入指令:
BTFSC INT2,INTIF ;判断INT2是否有中断
GOTO INT2 ;是!执行INT2中断
由此可以达到预期效果,这种方法主要是基于每个子程序的执行时间比较长而产生的,如果每个中断程序的执行时间都很短,那么也就没有必要牺牲这一个指令周期了,所以程序的设计应该力求中断的简洁。
为了能够编写好一个简洁的中断程序,应抓住中断的特点是具有实时性,针对实时中断数据采集系统,也就是中断的特点在于数据的采集。因此在中断程序中只应该处理数据采集和标志位的设置,而将数据的处理放在中断之外,由主程序通过循环检测执行数据处理工作,具体做法:先开辟一个"储存缓冲区",作为采集来的数据的传递媒体,即存储采集数据,等待主程序的处理;中断程序负责数据的采集,并且将采集来的数据值赋给"存储缓冲区";主程序通过条件循环语句反复检测" 存储缓冲区"情况,及时处理采集信息。这样在处理方法既能有效的实现中断的功能,又可以极大的缩减每个中断的时间,提高整个程序的反应速度。
4.结束语:
从上看出,灵活地应用中断,不但可以大量的节省CPU资源,而且能够使程序更加简化,具有更高的实时性和稳定性。在实际应用中应该注意将任务合理分配给中断和主程序,二者要分工明确,接口简单。这其中的技巧还需要在实践中多多摸索与体会。