电源错误组织块 (OB 81)

2021-07-26 浏览次数:261
电源错误组织块 (OB 81)

说明

只要发生由错误或故障所触发的事件,而此错误或故障又与电源(仅在 S7-400 上)或备用电池(进入或离去事件)有关,则 CPU 操作系统调用 OB 81。

在 S7-400 中,如果已使用 BATT.INDIC 开关激活了电池测试功能,则只有在出现电池故障时才会调用 OB 81。

如果没有对 OB 81 编程,则 CPU 不会转为 STOP 模式。

可使用指令 "DIS_IRT" 禁止调用电源错误 OB,使用指令 "EN_IRT" 重新调用,并使用指令 "DIS_AIRT" 和 "EN_AIRT" 对其进行延时。

电源错误 OB 的本地数据

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

变量

数据类型

说明

OB81_EV_CLASS

BYTE

事件类别和标识符:

B#16#38:离去事件

B#16#39:到达事件

OB81_FLT_ID

BYTE

错误代码(可能值: B#16#21、B#16#22、B#16#23、B#16#25、B#16#26、B#16#27、B#16#31、B#16#32、B#16#33)

OB81_PRIORITY

BYTE

**等级: 可在组态期间设定

例如,对于 RUN 模式,可设定值 2 至 26。

OB81_OB_NUMBR

BYTE

OB 编号 (81)

OB81_RESERVED_1

BYTE

预留

OB81_RESERVED_2

BYTE

预留

OB81_RACK_CPU

WORD

位 0 到 7: B#16#00

位 8 到 15:

- 对于标准 CPU: B#16#00

- 对于 H-CPU: 位 8 到 10: 机架号,位 11: 0=预留 CPU,1=主站 CPU,位 12 到 15: 1111

OB81_RESERVED_3

BYTE

仅与错误代码 B#16#31、B#16#32 以及 B#16#33 相关

OB81_RESERVED_4

BYTE

仅与错误代码 B#16#31、B#16#32 以及 B#16#33 相关

OB81_RESERVED_5

BYTE

仅与错误代码 B#16#31、B#16#32 以及 B#16#33 相关

OB81_RESERVED_6

BYTE

仅与错误代码 B#16#31、B#16#32 以及 B#16#33 相关

OB81_DATE_TIME

DATE_AND_TIME

调用 OB 时的日期和时间


变量 OB81_RESERVED_i (3 ≤ i ≤ 6) 指示其上的备用电池(错误代码 B#16#31)、备用电压(错误代码 B#16#32)或 24 V 电源(错误代码 B#16#33)出现故障或已恢复正常的扩展机架。 下表显示了在变量 OB81_RESERVED_i (3 ≤ i ≤ 6) 中各个位与扩展机架的分配关系。

 

OB81_RESERVED_6

OB81_RESERVED_5

OB81_RESERVED_4

OB81_RESERVED_3

位 0

预留

8. 扩展机架

16. 扩展机架

预留

位 1

1. 扩展机架

9. 扩展机架

17. 扩展机架

预留

位 2

2. 扩展机架

10. 扩展机架

18. 扩展机架

预留

位 3

3. 扩展机架

11. 扩展机架

19. 扩展机架

预留

位 4

4. 扩展机架

12. 扩展机架

20. 扩展机架

预留

位 5

5. 扩展机架

13. 扩展机架

21. 扩展机架

预留

位 6

6. 扩展机架

14. 扩展机架

预留

预留

位 7

7. 扩展机架

15. 扩展机架

预留

预留


变量 OB81_RESERVED_i 中各个位的含义(对于相关的扩展机架)如下:

当事件发生时,将对其上至少有一个电池或备用电压或 24 V 电源出现故障的扩展机架进行标记(置位相应的位)。 对于其上至少有一个电池或备用电压或 24 V 电源在先前发生过故障的扩展机架,将不再对其进行标记。 当清除了该事件并且至少在一个扩展机架上恢复了备份后,将就此发出信号进行指示(置位相应的位)。

下表显示了启动 OB81 的事件:

OB81_EV_CLASS

OB81_FLT_ID

含义

B#16#39/B#16#38

B#16#21

至少一个*机架的备用电池电量耗尽/问题已排除 (BATTF)

注: 只有两个电池中的一个出现故障时(如果有冗余备用电池),才会发生该到达事件。 如果另一个电池随后也发生故障,则不会再次发生该事件。

B#16#39/B#16#38

B#16#22

*设备中的缓冲电压丢失/已修复 (BAF)。

B#16#39/B#16#38

B#16#23

*设备上的 24-V 电源发生故障/已修复。

B#16#39/B#16#38

B#16#25

至少一个冗余*设备中的至少一个缓冲电池为空/已修复 (BATTF)。

B#16#39/B#16#38

B#16#26

至少一个冗余*设备中的缓冲电压丢失/已修复 (BAF)。

B#16#39/B#16#38

B#16#27

至少一个冗余*设备上的 24-V 电源发生故障/已修复。

B#16#39/B#16#38

B#16#31

至少一个扩展单元中的至少一个缓冲区电池为空/已修复 (BATTF)。

B#16#39/B#16#38

B#16#32

至少一个扩展单元中的缓冲电压丢失/已修复 (BAF)。

B#16#39/B#16#38

B#16#33

至少一个扩展单元中的 24-V 电源发生故障/已修复。

OB 81 示例程序

示例程序 STL 将显示如何在 OB 81 中读取错误代码。

程序结构如下:

读取 OB 81 中的错误代码 (OB81_FLT_ID),并与“至少一个*机架的备用电池电量耗尽”(B#16#21) 和“*机架的备用电源不存在”(B#16#22) 事件的标识符进行比较。

若错误代码与其中的一条显示事件相对应,则程序将跳转到 BF 标签 否则,块将被终止。

从 BF 标签处启动,若事件是到达事件,则程序将设定电池错误变量。 若事件是离去事件,则程序将复位该变量。

 
 
L B#16#21
//“至少一个*机架的备用电池电量耗尽”事件的标识符
L #OB81_FLT_ID
//OB 81 中的错误代码
==I
//若相同,
JC BF
//然后跳转到 BF
L B#16#22
//“*机架的备用电源不存在”事件的标识符
==I
//若与 OB 81 中的错误代码相同,
JC BF
//然后跳转到 BF
BEU
//没有关于电池错误的报警
 
 
BF: L B#16#39
//到达事件的标识符
L #OB81_EV_CLASS
//OB 81 调用的事件类别和标识符
==I
//若相同,
S 电池错误
//然后设定电池错误(变量从变量表获取)
L B#16#38
//离去事件的标识符
==I
//与 OB 81 调用的事件类别和标识符相同,
R 电池错误
//然后复位电池错误(变量从变量表获取)

shtxjd.cn.b2b168.com/m/
top