机架故障组织块(OB 86) (S7-300, S7-400) 说明 在下列情况下,CPU 操作系统会调用 OB 86: •检测到中央扩展单元故障(不适用于 S7-300)(进入或离去事件)。 • 检测到 DP 主站系统故障(进入或离去事件)。 •检测到分布式 I/O 设备故障(PROFIBUS DP 或 PROFINET IO)(进入或离去事件)。 • 分布式 I/O设备(PROFIBUS DP 或 PROFINET IO)已使用指令“D_ACT_DP”通过 MODE=4 禁 用。 • 分布式I/O 设备(PROFIBUS DP 或 PROFINET IO)已使用指令“D_ACT_DP”通过 MODE=3 启 用。 •已检测到 PROFINET IO 系统故障、PROFINET IO 站故障或 PROFINET 智能设备的一些子模 块的故障。 若OB 86 还没编程,则在检测到这类错误时,CPU 才切换到 STOP 模式。 可以使用指令“DIS_IRT”禁用机架故障OB,使用指令“EN_IRT”再重新启用,使用指令 “DIS_AIRT”和“EN_AIRT”对其进行延时。如果正在使用具有 DPV1或 PROFINET 的 CPU,可使用指令 "RALRM" 获取有关中断的其它信 息,这些信息不止包含 OB 的启动信息。如果在S7 兼容模式下运行 DP 主站,这一点也同样 适用。 OB 86 编程 必须在 CPU 的块中添加 OB 86。 将要在 OB 86中执行的程序写入到生成的块中,并作为用 户程序的一部分,将该块加载到 CPU。 例如,可如下使用 OB 86: • 评估 OB 86的启动信息,确定哪个机架丢失或故障 • 使用指令“WR_USMSG”,将报警输入到诊断缓冲区,并发送到监视设备。通讯错误组织块 (OB87) (S7-300, S7-400) 说明 当发生由通信错误触发的事件时,CPU 操作系统会调用 OB 87。 如果未对 OB87 编程并且发生 OB 87 的启动事件,则 CPU 将作出如下反应: • S7-300 CPU 切换到 STOP 模式。 •S7-400 CPU 切换到 STOP 模式。 可以使用指令“DIS_IRT”禁用通信错误OB,使用指令“EN_IRT”再重新启用,使用指令 “DIS_AIRT”和“EN_AIRT”对其进行延时。 通信错误 OB 的本地数据下表列出了通信错误 OB 的临时 (TEMP) 变量。已选择 OB 87 的默认名称作为变量名称。例如,可如下使用 OB 87: •对 OB 87 中的开始信息进行评估。 • 若共享数据通信的状态信息数据块丢失,则可以创建一个数据块。 处理中断 OB (OB 88)(S7-300, S7-400) 说明 程序块执行被中止后,CPU 操作系统将调用 OB 88。 中止的可能原因: •同步嵌套深度太深 • 块调用嵌套深度太深(U 机架) • 分配本地数据时出错 如果未对 OB 88 编程,且处理中断,则 CPU切换为 STOP 模式(事件 W#16#4570)。 如果在优先等级为 28 时中止了程序块执行,则 CPU 进入 STOP 模式。可以使用指令“DIS_IRT”禁用处理中断 OB,使用指令“EN_IRT”再重新启用,使用指令“DIS_AIRT”和“EN_AIRT”对其进行延时。
OB 88 编程 必须在 CPU的块中添加 OB 88。 将要在 OB 88 中执行的程序写入到生成的块中,并作为用 户程序的一部分,将该块加载到 CPU。例如,可如下使用 OB 88: • 对 OB 88 中的开始信息进行评估。 • 在报警数据块中输入错误原因。 背景组织块 (OB90) (S7-300, S7-400) 说明 使用 S7,可以监视Zui大循环时间,确保Zui小循环时间。 若 OB 1的执行时间(包括所有嵌 套中断处理和系统操作)小于指定的Zui小循环时间,则操作系统如下做出响应: • 调用背景 OB(如果它存在于CPU 中)。 • 延迟下一次 OB 1 启动(如果 OB 90 在 CPU 中不存在)。 背景 OB 的功能 在所有 OB 中,OB90 的优先级Zui低。 它可由任何系统操作和任何中断而中断(甚至是在Zui 小循环时间过后由 OB 1中断),只有在Zui小循环时间还没到时,才能恢复。 有一个例外情 况是,在 OB 90 中启动执行指令。此时,根据 OB 1的优先级执行,不会被 OB 1 中断, 不会对 OB 90 的时间进行监视。 在下列情况下,将从第一条指令开始处理 OB 90中的用户程序: • 暖启动、冷启动或热启动后 • 装载或删除块后 • 在 RUN 模式下将 OB 90 下载到 CPU 后 •终止背景循环后 说明 若Zui小循环时间和Zui大循环时间几乎相同,则在背景数据块中调用指令时,会超出循环 时间。启动事件 CPU按如下所述执行启动: • 上电后 • 通信功能请求后(从编程设备通过菜单,或通过在不同 CPU 上调用指令“START”或“RESUME”) 根据启动事件、特定的 CPU 及其参数,将调用适当的启动 OB(OB 100、OB 101 或 OB102)。通过进行适当的编程,便可在这些块中使用循环程序的某些默认设置。 启动 OB 的本地数据 下表列出了启动 OB 的临时(TEMP) 变量。系统选择默认名称作为变量名称。参见 STARTUP 模式的原理 (页 939) 编程错误组织块 (OB121) (S7-300, S7-400) 说明 只要发生与程序处理有关的错误所导致的事件,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 编程 必须在 CPU 的块中添加 OB 121。 将要在 OB 121 中执行的程序写入到生成的块中,并作为用户程序的一部分,将该块加载到 CPU。 例如,可如下使用 OB 121: • 对 OB 121 中的开始信息进行评估。 •在报警数据块中输入错误原因。I/O 访问错误组织块 (OB 122) (S7-300, S7-400) 说明只要在访问模块中的数据时出错,CPU 操作系统就会调用 OB 122。 例如,如果在访问信号 模块中的数据时,CPU检测到读错误,则操作系统将调用 OB 122。 I/O 访问错误 OB 的功能 OB 122 的执行优先等级与中断块相同。如果未对OB 122 编程,则 CPU 从 RUN 切换为 STOP 模式。 S7 提供有以下指令,用于在程序执行过程中屏蔽/中断屏蔽 OB122 的启动事件。 • 指令“MSK_FLT”可屏蔽特定的错误代码。 •指令“DMSK_FLT”可取消屏蔽使用指令“MSK_FLT”屏蔽的错误代码。 • 指令“READ_ERR”可读取事件状态寄存器。I/O 访问错误 OB 的本地数据 下表列出了 I/O 访问错误 OB 的临时 (TEMP) 变量。已选择 OB 122的默认名称作为变量名称。OB 122 示例程序 下面的示例程序提供了指令“REPL_VAL”中的一个替换值。若输入模块故障,则指令 LPEB0 的 处理会生成一个同步错误,并启动 OB 122。由于故障,装入命令读入值 0。 可以使用指令“REPL_VAL”,指定适用的任何替换值。该指令可以使用指定的替换值替换 ACCU 内容。S7-CPU 工作模式的原理(S7-1200) 简介 操作模式描述了 CPU 的行为。 有下列操作模式: • STARTUP • RUN • STOP例如,在这些操作模式下,CPU 可通过 PN/IE 接口进行通信。 其它操作模式 如果 CPU没有准备好运行,则它处于以下两种操作模式之一: • 断电,即电源电压关闭。 • 故障,表示发生了内部错误。如果此“故障”状态由固件错误导致,则将通过 CPU 的状态 LED 指示该状态(请参见 CPU 的说明)。要找出原因,请按以下步骤操作: – 断开电源开关,接通。 – 读出 CPU启动时的诊断缓冲区内容并将需要分析的数据发送给客户支持。 如果 CPU 没有启动,则更换该 CPU。编号 操作模式转换 条件 ①POWER ON → STARTUP 接通电源后,发生以下情况时,CPU 将转入“STARTUP”模式: •启动类型设置为“暖启动”,且 • 硬件配置与程序块一致。 将清空非保持性存储器中的内容,将非保持性 DB 的内容复位为装载存储器的初始值。 保留保持性存储器和保持性 DB 中的内容。 ② POWER ON → STOP启动类型设置为“不启动”之后,在打开电源之后,CPU 将转入“STOP”模 式。 将清空非保持性存储器中的内容,将非保持性 DB的内容复位为装载 存储器的初始值。 保留保持性存储器和保持性 DB 中的内容。 ③ STOP → STARTUP在以下情况下,CPU 将切换为“STARTUP”模式: • 从编程设备将 CPU 设置为“RUN”模式,•硬件配置与程序块一致。 ④ STARTUP → STOP 在以下情况下 CPU 将返回到“STOP”模式: •在启动过程中检测到错误。 • 从编程设备将 CPU 设置为“STOP”模式。 • 在 STARTUP OB 中执行了一个 STOP命令。