首页 理论教育 深入解析5.11.2中断指令及其应用实例

深入解析5.11.2中断指令及其应用实例

时间:2023-06-27 理论教育 版权反馈
【摘要】:中断指令有6条:中断允许指令、中断禁止指令、中断连接指令、中断分离指令、清除中断事件指令和中断条件返回指令。在中断程序运行时,如果I0.5触点闭合,中断条件返回RETI指令执行,中断程序提前返回,不会执行该指令后面的内容。图5-37 中断指令使用举例二

深入解析5.11.2中断指令及其应用实例

中断指令有6条:中断允许指令、中断禁止指令、中断连接指令、中断分离指令、清除中断事件指令和中断条件返回指令。

1.指令说明

中断指令说明见表5-53。

2.中断程序的建立

中断程序是为处理中断事件而事先写好的程序,它不像子程序要用指令调用,而是当中断事件发生后系统会自动执行中断程序,如果中断事件未发生,中断程序就不会执行。在编写中断程序时,要求程序越短越好,并且在中断程序中不能使用DISI、ENI、HDEF、LSCR和END指令。

编写中断程序要在编程软件中进行,打开STEP 7-Micro/WIN编程软件,在程序编辑区下方有“主程序”、“SBR_0”、“INT_0”三个标签,单击“INT_0”标签即可切换到中断程序编辑页面,在该页面就可以编写名称为“INT_0”的中断程序。

如果需要编写第2个或更多的中断程序,可执行菜单命令“编辑→插入→中断程序”,即在程序编辑区下方增加一个中断程序名称为“INT_1”的标签,在标签上单击鼠标右键,在弹出的菜单中可进行更多操作,如图5-35所示。

表5-53 中断指令说明

978-7-111-55193-5-Chapter05-104.jpg

978-7-111-55193-5-Chapter05-105.jpg

图5-35 新增中断程序的操作方式

3.指令使用举例(www.xing528.com)

(1)使用举例一

中断指令使用如图5-36所示,图a为主程序,图b为名称为INT_0的中断程序。

978-7-111-55193-5-Chapter05-106.jpg

图5-36 中断指令使用举例一

在主程序运行时,若I0.0端口输入一个脉冲下降沿(如I0.0端口外接开关突然断开),马上会产生一个中断请求,即中断事件1产生中断请求,由于在主程序中已用ATCH指令将中断事件1与INT_0中断程序连接起来,故系统响应此请求,停止主程序的运行,转而执行INT_0中断程序,中断程序执行完成后又返回主程序。

在主程序运行时,如果系统检测到I/O发生错误,会使SM5.0触点闭合,中断分离DTCH指令执行,禁用中断事件1,即当I0.0端口输入一个脉冲下降沿时,系统不理会该中断,也就不会执行INT_0中断程序,但还会接受其他中断事件发出的请求;如果I0.6触点闭合,中断禁止DISI指令执行,禁止所有的中断事件。在中断程序运行时,如果I0.5触点闭合,中断条件返回RETI指令执行,中断程序提前返回,不会执行该指令后面的内容。

(2)使用举例二

图5-37所示程序的功能是对模拟量输入信号每10ms采样一次。

在主程序运行时,PLC第一次扫描时SM0.1触点接通一个扫描周期,MOV_B指令首先执行,将常数10送入定时中断时间存储器SMB34中,将定时中断时间间隔设为10ms,然后中断连接ATCH指令执行,将中断事件10(即定时器中断0)与INT_0中断程序连接起来,再执行中断允许ENI指令,允许所有的中断事件。当定时中断存储器SMB3410ms定时时间间隔到,会向系统发出中断请求,由于该中断事件对应INT_0中断程序,所以PLC马上执行INT_0中断程序,将模拟量输入AIW0单元中的数据传送到VW100单元中,当SMB34下一个10ms定时时间间隔到,又会发出中断请求,从而又执行一次中断程序,这样程序就可以每隔10ms时间对模拟输入AIW0单元数据采样一次。

978-7-111-55193-5-Chapter05-107.jpg

图5-37 中断指令使用举例二

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈