循环中断 OB (S7-1200)说明 循环中断 OB 以周期性时间间隔启动程序,而与循环程序执行无关。循环中断 OB 的启动时 间通过时间基数和相位偏移量来指定。该时间基数用于定义循环中断 OB 启动的时间间隔,是基本时钟周期 (1 ms) 的整数倍。相位偏移量为与基本时钟周期相比,启动时间的偏差时间。如果使用多个循环中断 OB,当这些 循环中断 OB的时间基数有公倍数时,可以使用该偏移量防止启动。 可以指定 1 ms 和 60000 ms 间的时间段作为时间基数。在用户程序中,Zui多可使用 4 个循环中断 OB(或延时中断 OB)。例如,如果已使用 2 个 延时中断OB,则在用户程序中Zui多可以再插入 2 个循环中断 OB。 说明 各循环中断 OB的执行时间必须明显小于其时间基数。如果尚未执行完循环中断 OB,但由 于周期时钟已到而导致执行暂停,则将启动时间错误OB。稍后将执行导致错误的循环 中断或将其放弃。使用相位偏移的示例 已在用户程序中插入 2 个循环中断 OB: • 循环中断 OB1• 循环中断 OB2 其中,循环中断 OB1 已设置时间基数 20 ms;循环中断 OB2 已设置时间基数 100 ms。在 时间基数100 ms 到期后,循环中断 OB1 第五次到达启动时间,循环中断 OB2 则第一次到 达启动时间。要执行循环中断 OB偏移,则请为其中一个循环中断 OB 输入相位偏移量。 启动信息 • 无 • 优化启动信息: 名称 数据类型 含义 first_scanBOOL 为 TRUE,在下列情况下第一次调用此 OB 时 • 从 STOP 或 HOLD 切换到 RUN • 重新加载后event_coun t INT 自上次启动该 OB 之后丢失的启动事件数 参见 给循环中断 OB 分配参数(页 1271) 事件和 OB (页 1174) 硬件中断 OB (S7-1200) 说明 可以使用硬件中断 OB来响应特定事件。只能将触发报警的事件分配给一个硬件中断 OB。而 一个硬件中断 OB 可以分配给多个事件。高速计数器和输入通道可以触发硬件中断。对于将触发硬件中断的各高速计数器和输入通道, 需要组态以下属性: •将触发硬件中断的过程事件,例如,高速计数器的计数方向改变 • 分配给该过程事件的硬件中断 OB 的编号在用户程序中Zui多可使用 50个互相独立的硬件中断 OB(OB 编号大于等于 123)。 硬件中断 OB 的功能触发硬件中断后,操作系统将识别输入通道或高速计数器并确定所分配的硬件中断 OB。 如果没有其它中断 OB 激活,则调用所确定的硬件中断OB。 如果已经在执行其它中断 OB, 硬件中断将被置于与其同优先等级的队列中。 所分配的硬件中断 OB 完成执行后,即确认了该硬件中断。 如果在对硬件中断进行标识和确认的这段时间内,在同一模块中发生了触发硬件中断的另一 事件,则应用以下规则: •如果该事件发生在先前触发硬件中断的通道中,则不会触发另一个硬件中断。 只有确认 当前硬件中断后,才能触发其它硬件中断。 •如果该事件发生在另一个通道中,将触发硬件中断。 只有在 CPU 处于“RUN”模式时才会调用硬件中断 OB。 启动信息 • 无 •优化启动信息: 名称 数据类型 含义 Laddr HW_IO 触发硬件中断的模块的硬件标识符 USI WORD将来扩展的标识符(与用户无关) IChannel USINT 触发硬件中断的通道的编号 EventType BYTE与触发中断的事件相关的事件类型的标识符(如,上升沿) 可在相应模块的说明中找到该标识。
时间错误 OB(S7-1200) 说明 如果发生以下事件之一,则操作系统将调用时间错误 OB (OB 80): • 循环程序超出Zui大循环时间。 •被调用的 OB 当前正在执行(对于延时中断 OB 和循环中断 OB 有这种可能)。 • 错过时间中断,因为时钟时间设置提前了超过 20秒的时间。 • 在 STOP 期间错过了时间中断。 • 中断 OB 队列发生溢出。 • 由于中断负载过大而导致中断丢失。如果未编写时间错误 OB,则 S7-1200 CPU 将有以下反应: • 固件版本为 V1.x 到 V3.x 的 CPU:CPU仍处于 RUN 模式。 • 固件版本为 V4.x 及以上版本的 CPU: – 超出Zui大循环时间后 CPU 转为 STOP 模式。 –在时间错误 OB 的所有其它启动事件下,CPU 仍为 RUN 模式。 超出Zui大循环时间两倍时,不会调用 OB 但 CPU 将转入STOP 模式。使用 RE_TRIGR 指 令重新启动 CPU 的循环监视,可以避免第二次超出。 在用户程序中只能使用一个时间错误OB。诊断中断 OB (S7-1200) 说明 可以为具有诊断功能的模块启用诊断错误中断功能,使模块能检测到 I/O 状态变化。模块会在发生以下情况时触发诊断错误中断: • 出现故障(进入事件) • 故障不再存在(离开事件) 如果没有激活其它中断OB,则调用诊断中断 OB (OB 82)。如果已经在执行其它中断 OB,诊 断错误中断将置于同优先级的队列中。在用户程序中只能使用一个诊断中断 OB。MC 伺服 OB (S7-1200) 说明 使用 MC-Servo [OB91]创建一个带有驱动连接的工艺对象时,或创建一个模拟量输出时,将 自动创建组织块PROFIdrive。工艺对象的运动控制功能可创建自己的执行级别,并根据运动 控制应用周期进行调用。 MC 伺服 OB受到写保护。内容无法更改。 而在 CPU 上为运动控制组态的所有工艺对象的位置控制算法将在 MC 伺服 OB 中进行计算。可以根据控制质量和系统负载等方面的需求,设定组织块的应用循环和优先级。 应用循环 在此,可以设置在组织块属性中调用 MC-ServoOB 的应用周期。 MC 伺服 OB 以指定的应用循环周期性地调用。选择的应用周期必须足够大,才能确保在一个周期内完成所有工艺对象的处理。如果工艺对 象的处理时间比应用周期长,则会发生溢出。 为了避免CPU 上程序运行中断,需根据所使用的轴数量设置应用周期,如下所示: 应用周期 = 轴数量 x 2 ms下表中举例说明了不同轴数量所对应的应用周期数:MC-PreServo OB (S7-1200) 说明 在此,可编程组织块MC-PreServo [OB67],在组态的应用周期内在 MC-Servo OB (页 1266)中进行调用。MC-PreServo [OB67] 将在 MC-Servo [OB91] 之前直接调用。通过组织块,可读取所组态的应用周期(该数据的单位为 µs)。 启动信息的结构 优化的启动信息: 名称 数据类型 含义Initial_Call BOOL =TRUE,从 STOP 转为 RUN 的过程中首次调用该 OB 时 PIP_Input BOOLTRUE:相关的过程映像输入为Zui新值 PIP_Output BOOL TRUE:在Zui后一个周期后,相关的过程映像输出适时传送到 输出中IO_System USINT 触发中断的分布式 I/O 系统的编号 Event_Count INT • = n:丢失的周期数 • =-1:丢失的未知周期数(如,由于周期发生变更)。 Synchronous BOOL 预留 CycleTime UDINT 为MC-Servo OB 组态的应用周期,单位为 μs MC-PostServo OB (S7-1200) 说明 在此,可编程组织块MC-PostServo [OB95],在组态的应用周期内在 MC-Servo OB (页1266)中进行调用。MC-PostServo [OB95] 将在 MC-Servo [OB91]之后直接调用。启动信息的结构 优化的启动信息: 名称 数据类型 含义 Initial_Call BOOL =TRUE,从 STOP转为 RUN 的过程中首次调用该 OB 时 PIP_Input BOOL TRUE:相关的过程映像输入为Zui新值 PIP_OutputBOOL TRUE:在Zui后一个周期后,相关的过程映像输出适时传送到 输出中 IO_System USINT 触发中断的分布式 I/O系统的编号 Event_Count INT • = n:丢失的周期数 • = -1:丢失的未知周期数(如,由于周期发生变更)。Synchronous BOOL 预留 CycleTime UDINT 为 MC-Servo OB 组态的应用周期,单位为 μs MC插补器 OB (S7-1200) 说明 使用 MC‑Interpolator [OB91]创建一个带有驱动连接的工艺对象时,或创建一个模拟量输出 时,将自动创建组织块PROFIdrive。工艺对象的运动控制功能可创建自己的执行级别,并根 据 MC-Servo OB (页 1266)的运动控制应用周期进行调用。 MC 插补器 OB 受到写保护。内容无法更改。 运动控制指令的评估和针对在CPU(运动控制)上组态的所有工艺对象监控和生成设定值均 在 MC 插补器 OB 中执行。 MC-Interpolator OB 在MC-Servo OB 处理结束后进行调用。MC-Interpolator OB 和 MC-Servo OB 之间的时钟比率通常为1:1。 过程响应 所选的 MC 伺服 OB 应用循环时间必须足够长,才能在一个应用循环中处理运动控制的所有工艺对象。如果未遵循应用循环,将会发生上溢。请注意下列上溢响应: • CPU 允许 MC 插补器 OB Zui多连续上溢三次。 • MC插补器 OB 的运行Zui多可以被 MC 伺服 OB 调用中断。许多组织块 (OB)都有用户可用来控制其行为或将其分配给特定事件的属性。通过分配参数 可编辑这些属性。