硬件中断组织块(OB40至OB47)
描述
S7提供了多达八个的独立硬件中断,每一中断都具有自己的OB。
通过STEP 7分配参数,可以为将要触发硬件中断的每个信号模块指定以下内容:
●在何种条件下触发硬件中断的通道。
●要分配给个别通道组的硬件中断OB(缺省情况下,将由OB40来处理所有的硬件中断)。
借助于CP和FM,可使用其各带软件来分配这些参数。
可使用STEP 7选择各个硬件中断OB的优先级。
了解硬件中断OB的操作
在模块触发硬件中断后,操作系统将标识插槽以及相应的硬件中断OB。如果此OB的优先级高于当前激活的优先级,则将启动该OB。当执行完此硬件中断OB后,将发送通道指定的确认。
如果在对硬件中断进行标识和确认的这段时间内,在同一模块中发生了触发硬件中断的另一事件,则应用以下规则:
●如果该事件发生在先前触发硬件中断的通道中,则新中断丢失。在下图中,将根据数字输入模块的通道实例对此进行说明。触发事件是上升沿。硬件中断OB是OB40。
●如果该事件发生在同一模块的另一通道中,通常不会触发任何硬件中断。然而此中断不会丢失,而是在确认当前激活的硬件中断后被触发。
如果因来自另一模块中的硬件中断而使某一硬件中断被触发,并且其OB当前处于激活状态,则将记录新请求并且在OB空闲时对其进行处理。
可使用SFC 39至42来禁用或延迟,并重新启用硬件中断。
既可以使用STEP 7,也可以使用SFC 55至57为模块的硬件中断分配参数。
硬件中断OB的本地数据
下表给出了硬件中断OB的临时(TEMP)变量。变量名为OB40的缺省名称。
变 量 类 型 描 述
OB40_EV_CLASS BYTE 事件等级和标识符:
B#16#11:中断处于激活状态
OB40_STRT_INF BYTE B#16#41:通过中断线1中断
B#16#42:通过中断线2中断(仅限S7-400)
B#16#43:通过中断线3中断(仅限S7-400)
B#16#44:通过中断线4中断(仅限S7-400)
B#16#45:WinAC:通过PC触发中断
OB40_PRIORITY BYTE 分配的优先级:缺省值为16 (OB40)至23
(OB47)
OB40_OB_NUMBR BYTE OB编号(40至47)
OB40_RESERVED_1 BYTE 保留
OB40_IO_FLAG BYTE 输入模块:B#16#54输出模块:B#16#55
OB40_MDL_ADDR WORD 触发中断的模块的逻辑基址
OB40_POINT_ADDR DWORD 对于数字模块:模块上具有输入
状态的位域(位0对应于第一个输入)可在给定
模块的说明中找到为模块中的通道分配的从
OB40_POINT_ADDR起始的位。
对于模拟模块: 位域,指出哪个通道已超出哪条限制(有关结构的详细信息,请参阅/71/或/101/)。
对于CP或IM: 模块中断状态(非用户相关)
OB40_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME
注意
如果使用了具有DPV1功能的CPU,可借助于SFB54 "RALRM"获取有关中断的其它信息,这些信息不止包含OB的起始信息。在S7兼容模式下操作DP主站时,这一点