quote:以下是引用shine在2010-06-13 08:57:26的发言:
故障恢复时也会自动调用OB122,在入口参数中有一个参数是表示故障的到来和离去的。
在OB122的帮助里,看不出有故障离开时也会调用OB122的描述
[COLOR=blue]描述
只要在访问模块上的数据时出错,CPU的操作系统即调用OB122。例如,如果在访问I/O模块上的数据时,CPU检测到读取错误,操作系统将调用OB122。
了解I/O访问错误OB的操作
执行OB122时所处优先级与中断OB的优先级相同。如果OB122未编程,则CPU将由RUN模式改变为STOP模式。
S7提供了下列SFC,用于在执行程序期间屏蔽和取消屏蔽OB122的启动事件:
?SFC36 (MSK_FLT):屏蔽特定的错误代码
?SFC37 (DMSK_FLT):取消屏蔽由SFC36屏蔽的错误代码
?SFC38 (READ_ERR):读取错误寄存器
I/O访问错误OB的本地数据
下表说明了I/O访问错误OB的临时(TEMP)变量。变量名为OB122的默认名称。
变量 类型 描述
OB122_EV_CLASS BYTE 事件等级和标识符:B#16#29
OB122_SW_FLT BYTE 错误代码:?B#16#42:I/O访问错误,读取 ?B#16#43:I/O访问错误,写入
OB122_PRIORITY BYTE 优先级: ?出错OB的优先级
OB122_OB_NUMBR BYTE OB编号(122)
OB122_BLK_TYPE BYTE 出错块的类型(B#16#88:OB,B#16#8C:FC,B#16#8E:FB) (未在此处为S7-300输入有效编号)
OB122_MEM_AREA BYTE 存储器区域和访问类型:?位7至4:访问类型- 0: 位访问- 1: 字节访问- 2: 字访问- 3: 双字访问?位3至0:存储器区- 0: I/O区域- 1: 输入的过程映像 2: 输出的过程映像
OB122_MEM_ADDR WORD 出错的内存地址
OB122_BLK_NUM WORD 具有导致错误的MC7命令的块编号(未在此处为S7-300输入有效的编号)
OB122_PRG_ADDR WORD 导致错误的MC7命令的相对地址(未在此处为S7-300输入有效编号)
OB122_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME[/COLOR]