中断服务程序是在中断事件发生时由操作系统调用的,而不由程序调用。与子程序相同,在中断服务程序中也应尽量使用局部变量,以保证中断服务程序不改变其他程序的数据。中断事件号及其优先级见表11-6。
中断服务程序应越短越好,以减少占用时间,避免延迟其他的处理,否则可能引起设备操作异常。
表11-6 中断事件号及其优先级
1.中断服务程序的创建
“编辑”(Edit)菜单或直接在编辑窗口中点击鼠标右键,再“插入”(Insert)→“中断”(Interrupt)。通过右击指令树中的“中断”或双击程序编辑视窗底部的中断服务程序名,可以更改中断服务程序名。
2.中断事件
S7-200 PLC有34个中断事件,对应不同的优先级和中断号,见表11-6。其中,CPU221、CPU222没有中断事件13~18号和24~26号,CPU224没有中断事件24~26号,而CPU224XP和CPU226有全部的中断事件。
3.中断指令
中断允许指令(ENI):全局地允许所有被连接的中断事件。
中断禁止指令(DISI):全局地禁止所有中断事件。
中断条件返回指令(CRETI):在其条件满足时从中断服务程序返回。如果没有该指令,编程软件自动在中断程序末尾添加无条件返回指令。
中断连接指令(ATCH):将中断事件EVNT(BYTE)与中断服务程序号INT(BYTE)相关联,并使该中断事件允许处理。
中断分离指令(DTCH):切断中断事件EVNT与中断服务程序的联系,并禁止该中断事件。
消除中断指令(CEVNT):从中断队列中清除所有的中断事件。(www.xing528.com)
中断相关指令如图11-11和表11-7所示。
图11-11 中断指令
表11-7 中断指令
多个中断事件可以调用同一个中断服务程序,但一个中断事件只能调用一个中断服务程序。
在中断服务程序中不能使用DISI、ENI、HDEF、LSCR和END指令。
4.中断优先级
中断的执行有固定的优先级顺序:通信中断(最高)、I/O中断和定时中断(最低)。在各个优先级之内,CPU按先来先服务的原则处理中断。一个中断服务程序一旦开始执行,就将执行到结束,不会被别的中断服务程序(哪怕是更高优先级的程序)打断。后来的中断需要排队等待。
中断队列能保存的最大中断个数见表11-8。当中断个数多于能保存的最大数目时,中断队列会产生溢出位,见表11-9。
表11-8 各中断队列的最大中断个数
表11-9 中断队列2溢出的SM位
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。