西门子 _中断_.pdf
文本预览下载声明
中断例行程序
中断由事件驱动。在启动中断例行程序之前,必须使中断事件与发生该事件时您希望执行的程序段建立联系。使
用中断连接指令 (ATCH )建立中断事件 (由中断事件号码指定)与程序段 (由中断例行程序号码指定)之间
的联系。将中断事件附加于中断例行程序时,该中断自动被启用。
如果您使用全局禁止中断指令禁止所有的中断,中断事件的每次出现均被排队等候,直至使用全局启用中断指令
重新启用中断。
使用中断分离指令 (DTCH)可中断分离事件与中断例行程序之间的联系,从而禁止单个中断事件。分离指
令使中断返回未激活或被忽略状态。
了解S7-200如何处理中断例行程序
作为对关联的内部或外部事件的应答,执行中断例行程序。一旦中断例行程序的最后一条指令被执行,控制被返
回至主程序。您可以用执行从中断指令有条件返回指令 (CRETI )的方法退出例行程序。
使用中断例行程序指南和限制
中断程序为特殊内部或外部事件提供快速反应。您应当优化中断例行程序,执行某项具体任务,然后将控制返
回至主程序。
通过将中断例行程序保持为短小和简明扼要,可加快执行的速度,使其他程序不会受到长时间的延误。如果未能
做到这一点,无法预料的情形可能导致主程序控制的装置出现非正常操作状况。
限制
您不得在中断例行程序中使用DISI、ENI、HDEF、LSCR和END指令。
中断的系统支持
由于触点、线圈和累加器逻辑可能受中断的影响,系统保存和重新载入说明累加器和指令操作状态的逻辑堆栈、
累加器寄存器和特殊内存位 (SM)。这样可避免因分支至中断例行程序和从中断例行程序分支而导致的主程
序中断。
在主程序和中断例行程序之间共享数据
您可以在主程序和一个或多个中断例行程序之间共享数据。因为无法预测S7-200何时可能生成中断,最好限制
中断例行程序和程序中其他位置使用的变量数目。由于主程序中指令执行被中断事件中断时中断例行程序采取
的措施,会导致共享数据一致性故障。使用中断例行程序局部变量表,以确保中断例行程序仅使用临时内存,
并且不覆盖程序其他位置使用的数据。
您可以使用各种编程技巧,以确保在主程序和中断例行程序之间正确地共享数据。这些技巧限制存取共享内存位
置的方法,或者使用共享内存位置预防出现指令序列中断。
· 对于共享单一变量的STL程序:如果共享数据是单字节、字或双字变量,且程序在STL中写入,则可用在
非共享内存位置或累加器中存储共享数据操作数的直接数值 的方法,确保正确的共享存取。
· 对于共享单一变量的LAD程序:如果共享数据是单字节、字或双字变量,且程序在LAD中写入,则可用建
立仅使用移动指令 (MOVB、MOVW、MOVD、MOVR)存取共享内存位置常规的方法,确保正确的共
享存取。尽管很多LAD指令由STL指令的可中断序列组成,这些移动指令却是由单个STL指令组成,此
类指令的执行不受中断事件的影响。
· 对于共享多个变量的STL或LAD程序:如果共享数据由各种相关的字节、字或双字组成,则可使用中断禁
止/启用指令 (DISI和ENI)控制中断例行程序的执行。在主程序中共享内存位置操作即将开始的点,禁
止中断。一旦所有影响共享位置的措施均完成后,重新启用中断。在中断被禁止的时间内,不得执行中
断例行程序,因此无法存取共享内存位置;但是,此种方法会导致对中断事件的延迟应答。
从中断例行程序调用子程序
您可以从中断例行程序调用一个子程序嵌套级别。在被调用的中断例行程序和子程序之间共享累加器和逻辑堆栈。
S7-200支持的中断类型
S7-200支持以下中断例行程序类型:
· 通讯端口中断:S7-200生成允许程序控制通讯端口的事件。
· I/O中断:S7-200生成用于各种I/O状态不同变化的事件。这些事件允许程序对高速计数器、脉冲输出或输
入的升高或降低状态作出应答。
· 时间基准中断:S7-200生成允许程序按照具体间隔作出应答的事件。
通讯端口中断
可用程序控制S7-200的串行通讯端口。此种操作通讯端口的模式被称作自由端口模式。在自由端口模式中,程
序定义波特率、每个字符的位、校验和协议。可提供接收和传送中断,协助您进行程序控制的通讯。详情请
参阅传送和接收指令。
I/O中断
I/O中断包括上升/下降边缘中断、高速计数器中断和脉冲链输出中断。S7-200可生成输入 (I0.0、I0.1、I0.2或
I0.3)上升和/或下降边缘中断。可为每个此类输入点捕获上升边缘和下降边缘事件。这些上升/下降边缘事件
可用于表示在事件发生
显示全部