1.中断程序的概念
中断程序是为处理中断事件而事先编好的程序,中断程序不是由程序调用的,而是在中断事件发生时由操作系统调用。在中断程序中不能改写其他程序使用的存储器,最好使用局部变量。中断程序能实现特定的任务,应“越短越好”。
中断程序由中断程序号开始,以无条件返回指令(RETI)结束。在STEP7-Micro/WIN编程软件中无中断标号指令,中断服务程序由不同的中断程序窗口来辨识,且无条件返回指令由编程软件自行处理,不需要用户添加,用户可根据需要添加条件返回指令。在中断程序中禁止使用DISI、ENI、HDEF、LSCR和END等指令。
中断调用即调用中断程序,使系统对特殊的内部事件产生响应。系统响应中断时自动保存逻辑堆栈、累加器和某些特殊标志存储器位,即保护现场。中断处理完成时又自动恢复这些单元原来的状态,即恢复现场。
2.中断程序的构成
中断程序由3部分构成:中断程序标号、中断服务程序和中断返回指令。
1)中断程序标号:即中断程序的名称,它在建立中断程序的时候生成。
2)中断服务程序:用于处理中断事件的程序。
3)中断返回指令:用于退出中断服务程序返回到主程序。
3.建立中断程序的方法
在STEP7-Micro/WIN编程软件中,建立中断程序可以用以下方法
1)在“编辑”菜单选择“插入”→“中断”。
2)在指令树窗口,用鼠标右键单击“程序块”图标,并从弹出的菜单选择“插入”→“中断”。(www.daowen.com)
3)在“程序编辑器”窗口,从弹出的菜单中用鼠标右键单击“插入”→“中断”。
程序编辑器从先前的POU显示更改为新中断程序,在程序编辑器的底部会出现一个新标记,代表新的中断程序。
4.中断程序举例
【例7-1】利用定时中断,编程完成采样工作,要求每10ms采样一次。
分析:完成每10ms采样一次,需用定时中断,查表7-1可知,定时中断0的中断事件号为10。因此在主程序中将采样周期(10ms),即定时中断的时间间隔写入定时中断0的特殊存储器SMB34,并将中断事件10和INT-0连接,全局开中断。在中断程序0中,将模拟量输入信号读入,程序如图7-1所示。
【例7-2】利用定时器中断,编制一个指示灯闪烁程序,即点亮1s,熄灭1s。
分析:查表7-1可知,定时器T32中断事件号为21,编制的指示灯闪烁程序梯形图如图7-2所示。当I0.0由OFF→ON,Q0.0亮1s,灭1s,如此循环反复直至I0.0由ON→OFF,Q0.0变为OFF。
图7-1 数据采样程序
图7-2 指示灯闪烁程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。