今天出现一个PLC停机: 由 OB85 引起的停机.
OB85里的程序编辑:
L B#16#A1 //尚未加载的OB发生错误事件
L #OB85_FLT_ID
==I
SPB K_OB
L B#16#A2 // 尚未加载的OB发生错误事件
==I
SPB K_OB
L B#16#A3 // 访问未加载的块时出错
L #OB85_FLT_ID
==I
SPB K_B
SPA F_PA
K_OB: SPA STOP
SPA ENDE
K_B: SPA STOP
SPA ENDE
STOP: CALL "STP" 调用FC46
OB85 :
B#16#A1
程序或操作系统(基于组态)为未装载到 CPU 上的 OB 创建一个启动事件。
● OB85_Z1:请求的 OB 的相应临时变量。这由 OB85_Z23 确定。
● OB85_Z23:
– 高位字:导致 OB 调用的事件的类别和编号
– 低位字,高位字节:在出错时处于激活状态的程序级别
B#16#A2
程序或操作系统(基于组态)为未装载到 CPU 上的 OB 创建一个启动事件。
OB85_Z1 和 OB85_Z23(对于 OB85_FLT_ID=B#16#A1)
B#16#A3
操作系统访问块时出错
● OB85_Z1:操作系统的错误 ID
– 高位字节:1=集成的功能,2=IEC 定时器
– 低位字节:0=无错误分辨率,1=未装载块,2=区域长度错误,3=写保护错误
● OB85_Z23:
– 高位字:块编号
– 低位字:导致错误的 MC7 命令的相对地址。块类型必须取自 OB 85_DKZ23(B#16#88:OB,B#16#8C:FC,B#16#8E:FB,B#16#8A:DB)。
-------OB40-->
硬件中断组织块(OB40至OB47)
S7提供了多达八个的独立硬件中断,每一中断都具有自己的OB。
通过STEP 7分配参数,可以为将要触发硬件中断的每个信号模块指定以下内容:
在何种条件下触发硬件中断的通道。
?要分配给个别通道组的硬件中断OB(默认情况下,将由OB40来处理所有的硬件中断)。
借助于CP和FM,可使用其各带软件来分配这些参数。
可使用STEP 7选择各个硬件中断OB的优先级。
了解硬件中断OB的操作
在模块触发硬件中断后,操作系统将标识插槽以及相应的硬件中断OB。如果此OB的优先级高于当前激活的优先级,则将启动该OB。当执行完此硬件中断OB后,将发送通道指定的确认。
如果在对硬件中断进行标识和确认的这段时间内,在同一模块中发生了触发硬件中断的另一事件,则应用以下规则:
如果该事件发生在先前触发硬件中断的通道中,则新中断丢失。在下图中,将根据数字输入模块的通道实例对此进行说明。触发事件是上升沿。硬件中断OB是OB40。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !