公司动态
当前位置:首页 > 公司动态 > 编程错误组织块 (OB 121)
编程错误组织块 (OB 121)

说明

只要发生与程序处理有关的错误所导致的事件,CPU 操作系统就会调用 OB 121。 例如,如果用户程序调用了尚未装载到 CPU 中的块,则会调用 OB 121。

编程错误 OB 的功能

OB 121 的执行**等级与中断块相同。

如果未对 OB 121 编程,则 CPU 从 RUN 切换为 STOP 模式。

S7 提供有以下指令,用于在程序执行过程中屏蔽/取消屏蔽 OB 121 的启动事件。

指令“MSK_FLT”可屏蔽特定的错误代码。

指令“DMSK_FLT”可取消屏蔽使用指令“MSK_FLT”屏蔽的错误代码。

指令“READ_ERR”可读取事件状态寄存器。

编程错误 OB 的本地数据

下表列出了编程错误 OB 的临时 (TEMP) 变量。已选择 OB 121 的默认名称作为变量名称。

变量

数据类型

说明

OB121_EV_CLASS

BYTE

事件类别和标识符: B#16#25

OB121_SW_FLT

BYTE

错误代码(可能值: B#16#21、B#16#22、B#16#23、B#16#24、B#16#25、B#16#26、B#16#27、B#16#28、B#16#29、B#16#30、B#16#31、B#16#32、B#16#33、B#16#34、B#16#35、B#16#3A、B#16#3C、B#16#3D、B#16#3E、B#16#3F)

OB121_PRIORITY

BYTE

出错 OB 的**等级

对于 S7-1500 CPU: **级,默认值: 7

OB121_OB_NUMBR

BYTE

OB 编号 (121)

OB121_BLK_TYPE

BYTE

出错块的类型(对于 S7-300,未在此处输入有效值): B#16#88: OB,B#16#8A: DB,B#16#8C: FC,B#16#8E: FB

OB121_RESERVED_1

BYTE

预留

OB121_FLT_REG

WORD

错误源(取决于错误代码);例如:

出现转换错误的寄存器

不正确的地址(读/写错误)

不正确的定时器/计数器/块编号

不正确的存储区

OB121_BLK_NUM

WORD

具有导致错误的 MC7 命令的块编号(未在此处为 S7-300 输入有效的编号)

OB121_PRG_ADDR

WORD

导致错误的 MC7 指令的相对地址

FB)(未在此处为 S7-300 输入有效编号)

OB121_DATE_TIME

DATE_AND_TIME

调用 OB 时的日期和时间


与错误代码相关的变量具有以下含义:

错误代码

变量

含义

B#16#21

 

BCD 码转换错误

 

OB121_FLT_REG

受影响变量的标识符(W#16#0000: 电池 1)

B#16#22

 

读取时出现区域长度错误

 

OB121_RESERVED_1

位 7 至 4 访问类型:

- 0: 位访问,

- 1: 字节访问,

- 2: 字访问,

- 3: 双字访问

位 3 至 0 存储区:

- 0: I/O 区域

- 1: 过程映像输入

- 2: 过程映像输出

- 3: 位存储区

- 4: 全局 DB

- 5: 背景数据块

- 6: 自己的本地数据

- 7: 调用方的本地数据

B#16#23

 

写入时出现区域长度错误

 

OB121_RESERVED_1

与错误代码 B#16#22 相同

B#16#28

 

利用位地址不为 0 的指针对字节、字或双字进行读访问。

 

OB121_RESERVED_1

与错误代码 B#16#22 相同

B#16#29

 

利用位地址不为 0 的指针对字节、字或双字进行写访问。

故障字节地址。 有关数据区和访问类型的信息,请参见 OB121_RESERVED_1。

 

OB121_RESERVED_1

与错误代码 B#16#22 相同

B#16#24

 

读取时区域出错

 

OB121_FLT_REG

低位字节包含未授权区域(B#16#86 自己的本地数据区)的标识符

B#16#25

 

写入时区域出错

 

OB121_FLT_REG

低位字节包含未授权区域(B#16#86 自己的本地数据区)的标识符

B#16#26

 

定时器编号错误

 

OB121_FLT_REG

未授权的编号

B#16#27

 

计数器编号错误

 

OB121_FLT_REG

未授权的编号

B#16#30

 

对写保护全局 DB 的写访问

 

OB121_FLT_REG

未授权的 DB 编号

B#16#31

 

对写保护背景 DB 的写访问

 

OB121_FLT_REG

未授权的 DB 编号

B#16#32

 

访问全局 DB 时 DB 编号出错

 

OB121_FLT_REG

未授权的 DB 编号

B#16#33

 

访问背景 DB 时 DB 编号出错

 

OB121_FLT_REG

未授权的 DB 编号

B#16#34

 

调用 FC 时编号出错

 

OB121_FLT_REG

FC 编号

B#16#35

 

调用 FC 时 FB 编号出错

 

OB121_FLT_REG

FB 编号

B#16#3A

 

访问了尚未装载的 DB;DB 编号位于允许的范围内

 

OB121_FLT_REG

DB 编号

B#16#3C

 

访问了尚未装载的 FC;FC 编号位于允许的范围内

 

OB121_FLT_REG

FC 编号

B#16#3D

 

访问了不可用的指令;SFC 编号位于允许的范围内。

 

OB121_FLT_REG

SFC 编号

B#16#3E

 

访问了尚未装载的 FB;FB 编号位于允许的范围内

 

OB121_FLT_REG

FB 编号

B#16#3F

 

访问了不可用的 SFB;SFB 编号位于允许的范围内

 

OB121_FLT_REG

SFB 编号

OB 121 编程

必须在 CPU 的块中添加 OB 121。 将要在 OB 121 中执行的程序写入到生成的块中,并作为用户程序的一部分,将该块加载到 CPU。

例如,可如下使用 OB 121:

对 OB 121 中的开始信息进行评估。

在报警数据块中输入错误原因。


shtxjd.cn.b2b168.com/m/