• 沒有找到結果。

插入/删除模块中断组织块(OB83)

长沙工控帮教育科技有限公司整理

1.18 插入/删除模块中断组织块(OB83)

描述

在下列情况下,CPU操作系统会调用OB 83:

• 插入/删除已组态模块后

• 在STEP 7下修改模块参数以及在运行期间将更改下载至CPU后 可借助SFC 39至42禁用/延迟/启用插入/删除中断OB。

模块插入和删除

每次在RUN、STOP和STARTUP模式期间删除或插入已组态模块时,都会生成插入/

删除中断(在这些模式下一定不能删除电源模块、CPU、适配器模块以及IM)。此中 断会导致在诊断缓冲区和所涉及CPU的系统状态列表中生成一个条目。如果CPU处 于RUN模式,则还会启动插入/删除OB。如果此OB尚未编程,CPU将转为STOP模 式。

随后,系统会以数秒钟的时间间隔来轮询S7-400模块以检测插入或删除。为使CPU 能够检测到S7-400模块的删除和插入,在删除和插入操作之间必须至少有2s的时间 间隔。对于其它模块而言,此最短时间值会稍大一些。

如果在RUN模式下删除了已组态的模块,则启动OB83。由于仅以1s为时间间隔来监 视模块的存在,因此当直接访问模块或更新过程映像时,可能会首先检测到访问错 误。

如果在RUN模式下将一个模块插入到已组态的插槽中,则操作系统将检查所插入模 块的类型是否与所记录的组态相符。如果模块类型匹配,则启动OB83并分配参数。

重新组态模块

当在运行(CiR)期间修改系统组态时,可为现有模块重新分配参数。参数的这种重新 分配通过将所需参数数据记录传送至模块实现。

步骤如下:

1. 在STEP 7下已为模块分配了新参数,且在RUN模式中将此组态下载到 CPU时,将启动OB 83(启动事件W#16#3367)。相关的OB启动信息为逻辑 基址(OB83_MDL_ADDR)和模块类型(OB83_MDL_TYPE)。从现在起,模块 I/O数据可能不正确,这就意味着没有任何SFC忙于将数据记录发送到此模块。

2. 在执行OB 83后将重新分配模块参数。

长沙工控帮教育科技有限公司整理

3. 在分配参数后,将重新启动OB 83(假如成功地分配参数,则启动事件 W#16#3267,如果失败,则启动事件W#16#3968)。模块的I/O数据 响应与其在插入中断后的响应相同,也就是说,当前它们可能不正确。

现在可再次调用SFC以便将数据记录发送到模块。

OB 83的本地数据

下表说明了插入/删除模块中断OB的临时(TEMP)变量。变量名为OB 83 的缺省名称。

变量 类型 描述

OB83_EV_CLASS BYTE 事件等级和标识符:

B#16#32:重新分配模块参数结束

B#16#33:重新分配模块参数开始

B#16#38:模块已插入

B#16#39:模块被删除或未响应,或者参数分配结束 OB83_FLT_ID BYTE 出错代码:(可能值:B#16#61, B#16#63, B#16#64,

B#16#65, B#16#67, B#16#68, B#16#84) OB83_PRIORITY BYTE 优先级,可通过STEP 7分配(硬件配置) OB83_OB_NUMBR BYTE OB编号(83)

OB83_RESERVED_1 BYTE 模块或子模块/接口模块的标识 OB83_MDL_TD BYTE 范围:

B#16#54:外围输入(PI)

B#16#55:外设输出(PQ) OB83_MDL_ADDR WORD 受影响模块的逻辑基址;

如果它是混合模块,则该地址为模块中所使用的最小逻辑地 址。如果混合块中的I地址和O地址相等,则逻辑基址为接收 事件标识符的地址。

OB83_RACK_NUM WORD 如果OB83_RESERVED_1 =B#16#A0:接口模块编号

如果OB83_RESERVED_1 = B#16#C4:机架号或DP 站的编号(低字节)和DP主站系统标识号(高字节) OB83_MDL_TYPE WORD 受影响模块的模块类型:

W#16#X5XX: 模拟模块

W#16#X8XX: 功能模块

W#16#XCXX: CP

W#16#XFXX: 数字模块 X:与用户无关的数值

OB83_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME

长沙工控帮教育科技有限公司整理

下表给出了启动OB83的事件:

OB83_EV_CLASS OB83_FLT_ID 含义

B#16#39 B#16#61 模块已删除或未响应

OB83_MDL_TYPE:实际模块类型 B#16#38 B#16#61 模块已插入。模块类型正确

OB83_MDL_TYPE:实际模块类型 B#16#38 B#16#63 模块已插入,但模块类型不正确

OB83_MDL_TYPE:实际模块类型 B#16#38 B#16#64 模块已插入,但存在问题(无法读取模块ID)

OB83_MDL_TYPE:已组态的模块类型 B#16#38 B#16#65 模块已插入,但模块参数分配有出错

OB83_MDL_TYPE:实际模块类型 B#16#39 B#16#66 模块未响应,负载电压出错

B#16#38 B#16#66 模块再次响应,已更正负载电压出错 B#16#33 B#16#67 启动模块重新组态

B#16#32 B#16#67 结束模块重新组态

B#16#39 B#16#68 模块重新组态因出错而终止 B#16#38 B#16#84 接口模块已插入

B#16#39 B#16#84 接口模块已删除

注意

如果使用了具有DPV1或PROFInet功能的CPU,可借助于SFB54 “RALRM”获取有关 中断的其它信息,这些信息不止包含OB的起始信息。在S7兼容模式下操作DP 主站时,这一点也同样适用。

长沙工控帮教育科技有限公司整理

1.19 CPU硬件故障组织块(OB84)

描述

在下列情况下,CPU中的OS将调用OB84:

• 已检测到并更正了内存出错之后

• 对于S7-400H:如果两个CPU之间的冗余链接的性能下降

可以使用SFC 39至42禁用或延迟CPU硬件出错OB,然后再次启用它。

硬件故障OB的本地数据

下表包括了CPU硬件故障的临时(TEMP)变量。变量名为OB84的缺省名称。

变量 类型 描述

OB84_EV_CLASS BYTE 事件等级和标识符:

B#16#38:离开事件

B#16#35、B#16#39 进入事件

OB84_FLT_ID BYTE 出错代码(B#16#81、B#16#82、B#16#83、B#16#85、

B#16#86、B#16#87)

OB84_PRIORITY BYTE 优先级,可通过STEP 7分配(硬件配置) OB84_OB_NUMBR BYTE OB编号(84)

OB84_RESERVED_1 BYTE 保留 OB84_RESERVED_2 BYTE 保留 OB84_RESERVED_3 WORD 保留 OB84_RESERVED_4 DWORD 保留

OB84_DATE_TIME DATE_AND_TIME 调用OB时的DATE_AND_TIME

下表给出了启动OB84的事件:

OB84_EV_CLASS OB84_FLT_ID OB 84的启动事件 B#16#39 B#16#81 接口出错,进入 B#16#38 B#16#81 接口出错,离开

B#16#35 B#16#82 在操作系统中检测到内存出错并已更正 B#16#35 B#16#83 已检测到并更正的内存出错的累积 B#16#35 B#16#85 PC操作系统中的出错

B#16#39 B#16#86 H-Sync链接的性能受到负面影响 B#16#35 B#16#87 已检测到多位内存出错已并更正

长沙工控帮教育科技有限公司整理