程序块执行被中止后,CPU 操作系统将调用 OB 88。 中止的可能原因:
同步嵌套深度太深
块调用嵌套深度太深(U 机架)
分配本地数据时出错
如果未对 OB 88 编程,且处理中断,则 CPU 切换为 STOP 模式(事件 W#16#4570)。
如果在**等级为 28 时中止了程序块执行,则 CPU 进入 STOP 模式。
可以使用指令“DIS_IRT”禁用处理中断 OB,使用指令“EN_IRT”再重新启用,使用指令“DIS_AIRT”和“EN_AIRT”对其进行延时。
下表列出了处理中断 OB 的临时 (TEMP) 变量。已选择 OB 88 的默认名称作为变量名称。
变量 | 数据类型 | 说明 |
---|---|---|
OB88_EV_CLASS | BYTE | 事件类别和标识符: B#16#35 |
OB88_SW_FLT | BYTE | 错误代码 B#16#71:嵌套深度太深 B#16#72:主站控制继电器嵌套深度太深 B#16#73:同步嵌套深度太深 B#16#74块调用嵌套深度太深(U 机架) B#16#75:块调用嵌套深度太深(B 机架) B#16#76:分配本地数据时出错 B#16#78:未知指令 B#16#7A:跳转指令的目的地**出块范围 请参考 CPU 的操作列表,以确定哪些错误代码适用于您的 CPU。 |
OB88_PRIORITY | BYTE | **等级: 28 |
OB88_OB_NUMBR | BYTE | OB 编号 (88) |
OB88_BLK_TYPE | BYTE | 出错块的类型: B#16#88: OB B#16#8C: FC B#16#8E: FB B#16##00:无法确定中断源 |
OB88_RESERVED_1 | BYTE | 预留 |
OB88_FLT_PRIORITY | BYTE | 导致错误的 OB 的**等级 |
OB88_FLT_OB_NUMBR | BYTE | 导致错误的 OB 的编号 |
OB88_BLK_NUM | WORD | 包含导致错误的 MC7 指令的块的编号 |
OB88_PRG_ADDR | WORD | 导致错误的 MC7 指令的相对地址 |
OB88_DATE_TIME | DATE_AND_TIME | 调用 OB 时的日期和时间 |
必须在 CPU 的块中添加 OB 88。 将要在 OB 88 中执行的程序写入到生成的块中,并作为用户程序的一部分,将该块加载到 CPU。
例如,可如下使用 OB 88:
对 OB 88 中的开始信息进行评估。
在报警数据块中输入错误原因。
产品推荐
友情链接