编程错误 OB

时间:2021-07-27点击次数:518

编程错误 OB

调用编程错误 OB 的要求

要允许 S7-1500 CPU 调用编程错误 OB,必须设置全局错误处理。

说明

如果在处理用户程序指令时发生编程错误,S7-1500 CPU 操作系统将调用编程错误 OB。编程错误 OB 会根据为其设置的**级进行处理。


提示

如果已设置了本地错误处理,那么相应块中的编程错误处理将在发生编程错误时有效。



启动信息结构

对于 S7-300 和 S7-400 CPU

请参见

优化启动信息:

名称

数据类型

含义

BlockNr

UINT

发生编程错误的块的编号

Reaction

USINT

0:忽略错误

1:替换不正确的值

2:跳过命令

3:已编程的错误处理,例如由使用无效下标的数组访问触发,或者为 FC 或 FB 提供参数时由错误触发

Fault_ID

BYTE

错误代码(可能值:B#16#00、B#16#03、B#16#04、B#16#05、B#16#20、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#2C、B#16#30、B#16#31、B#16#32、B#16#33、B#16#34、B#16#35、B#16#38、B#16#39、B#16#3A、B#16#3B、B#16#3C、B#16#3D、B#16#3E、B#16#3F、B#16#50、B#16#51、B#16#75、B#16#76、B#16#A1、B#16#A2)

BlockType

USINT

出错块的类型:

OB:1

FC:2

FB:3

SFC:4

SFB:5

DB:6

Area

USINT

发生错误访问的区域:

本地数据:B#16#40 至 4E、86、87、8E、8F、C0 至 CE

过程映像输入:B#16#01

过程映像输出:B#16#02

工艺 DB:B#16#04

I:B#16#81

Q:B#16#82

M:B#16#83

DB:B#16#84、85、8A、8B

DBNr

Block_DB

DB 编号(如果 AREA = DB 或 DI)

Csg_OBNr

OB_ANY

OB 编号 (121)

Csg_Prio

USINT

OB **级

Width

USINT

出错的访问类型:

Bit:

- B#16#00,用于访问标准存储区

- B#16#01,用于访问优化存储区

Byte:B#16#01

Word:B#16#02

DWord:B#16#03

LWord:B#16#04

下表列出了错误代码的含义:

fault_ID

B#16# ...

含义

00

**出了块调用的较大嵌套深度

03

使用了 NULL 指针对操作数进行寻址。

04

未知指令

05

Stop 指令

20

被寻址的字符串的长度信息有误。

21

BCD 码转换错误

22

读取时出现区域长度错误

23

写入时出现区域长度错误

24

读取时区域出错

25

写入时区域出错

26

定时器编号错误

27

计数器编号错误

28

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

29

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

2C

使用了 NULL 指针对操作数进行寻址。

30

对写保护全局 DB 的写访问

31

对写保护背景 DB 的写访问

32

访问全局 DB 时 DB 编号出错

33

访问背景 DB 时 DB 编号出错

34

调用 FC 时编号出错

35

调用 FB 时编号出错

38

未加载类型安全数据块。

39

数据块未定义为类型安全。

3A

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

3B

DB 不存在

3C

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

3D

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

3E

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

3F

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

50

未加载类型安全数据块。

51

数据块未定义为类型安全。

75

**出了块调用的较大嵌套深度。

76

**出了可用本地数据的较大量。

A1

对写保护变量的写访问

A2

对包含无效数字值的变量的访问


http://shtxjd.cn.b2b168.com

产品推荐