Cómo diagnosticar y resolver fallos de tiempo de ciclo excedido (OB80) en sistemas S7-400H de PCS 7

Para resolver fallos recurrentes de "Tiempo de ciclo excedido" (llamadas al bloque de organización OB80) en sistemas redundantes SIMATIC PCS 7 S7-400H, elimine las tormentas de interrupciones del bus de campo subyacentes y reequilibre la ejecución del programa en OB de interrupción cíclica más lentas. Cuando el tiempo de ciclo del controlador supera el temporizador de vigilancia de ciclo máximo configurado (por defecto 6,000 ms) o cuando las OB de interrupción cíclica (p. ej., OB35 a 100 ms) se interrumpen repetidamente, la CPU llama al OB80 para registrar un fallo de tiempo. Si el tiempo de ciclo se excede dos veces consecutivas sin completar el punto de control del ciclo, la CPU pasa a modo STOP. La corrección inmediata requiere verificar el búfer de diagnóstico en busca de tormentas de interrupciones de diagnóstico (OB82/OB86 causadas por fibra óptica dañada o esclavo DP inestable), instanciar el bloque CPU_RT para la reducción automatizada de carga y reubicar los lazos de control analógico lentos de OB35 a OB34 o OB32.

Índice de contenidos

Mecánica del monitoreo de tiempo de ciclo y OB80 en S7-400H

El sistema operativo SIMATIC S7-400H aplica estrictos temporizadores de vigilancia (watchdog) para garantizar un control de proceso determinista:
- Temporizador de ciclo OB1: Monitoreado por un temporizador de hardware configurado en HW Config (por defecto 6000 ms). Si la ejecución de OB1 no se completa antes de que expire el temporizador, la CPU activa el OB80 (Error de tiempo). Si el OB80 no está presente o si el tiempo de ciclo se agota por segunda vez en el mismo ciclo, el controlador entra en modo STOP.
- Desbordamiento de interrupción cíclica: Las tareas periódicas se ejecutan en bloques de organización temporizados (OB38: 10 ms, OB35: 100 ms, OB34: 200 ms, OB33: 500 ms, OB32: 1000 ms). Si la duración de la ejecución del código dentro de un OB supera su intervalo de ciclo configurado, se produce un intento de inicio anidado, lo que genera un error de tiempo.
- Sobrecarga de sincronización del sistema H: En controladores S7-400H redundantes, las CPU primaria y en reserva intercambian continuamente datos de sincronización a través de enlaces ópticos. Las altas tasas de interrupción aumentan drásticamente la sobrecarga de sincronización, agravando la latencia de la CPU.

Causas raíz: Tormentas de perturbación en el bus vs. sobrecarga de código cíclico

Un fallo recurrente de tiempo de ciclo que se manifiesta repentinamente en una planta previamente estable casi siempre es causado por un fallo de comunicación física externo en lugar de una expansión repentina del código:

Categoría de falloMecanismo subyacenteFirma de diagnóstico observableTormentas en el bus (OB82 / OB86)Cables de fibra óptica defectuosos, módulos de enlace óptico (OLM) desalineados o conectores PROFIBUS/PROFINET flojos provocan que los dispositivos se desconecten y reconecten rápidamente.Miles de eventos OB86 (Fallo de bastidor) y OB82 (Interrupción de diagnóstico) inundando el búfer de diagnóstico en segundos, privando de recursos a la ejecución cíclica.Sobrecarga de ejecución cíclicaDemasiados bloques tecnológicos complejos (motores APL, válvulas, controladores PID de alto orden) empaquetados en la OB35 de interrupción rápida (100 ms).Utilización constante de la CPU superior al 85%; tiempo de ejecución neto de OB35 acercándose o superando los 90 ms.Retrasos de acoplamiento H-SyncModificaciones de memoria durante descargas en RUN o trabajos de comunicación en segundo plano de alta intensidad de memoria que retrasan las confirmaciones de sincronización cíclica.Retrasos de estado síncrono registrados en la ventana de estado del controlador redundante.

Método: Análisis del búfer de diagnóstico e identificación de eventos

Antes de alterar el código del programa, identifique el desencadenante preciso inspeccionando el búfer de diagnóstico del controlador:

Paso 1: Abrir el búfer de diagnóstico en línea

  1. En SIMATIC Manager, seleccione la estación AS y haga clic en PLC -> Diagnostic Buffer.
  2. Examine la lista de eventos recientes en busca de eventos de error de tiempo:
    - ID de evento 16#4533: Tiempo de ciclo excedido (Se llamó a OB80 porque OB1 excedió el tiempo máximo de monitoreo de ciclo).
    - ID de evento 16#4535: Desbordamiento de interrupción cíclica (Se llamó a OB80 porque se solicitó un OB temporizado antes de que finalizara su ejecución anterior).

Paso 2: Correlacionar eventos de interrupción

  1. Desplácese hacia abajo inmediatamente debajo del evento 16#4533 o 16#4535.
  2. Busque eventos de ráfaga precedentes:
    - Múltiples instancias de ID de evento 16#38C4 / 16#39C4 (Fallo/retorno de estación OB86 en PROFIBUS o PROFINET).
    - Múltiples instancias de ID de evento 16#3842 / 16#3942 (Interrupción de diagnóstico de módulo OB82).
  3. Si aparecen desconexiones repetitivas de estaciones, anote la dirección del esclavo DP o el nombre del dispositivo PROFINET. Inspeccione el medio de red físico, pruebe la potencia óptica en los enlaces OLM y reemplace los conectores dañados.

Método: Reequilibrio del programa y reducción de carga con CPU_RT

Si las comunicaciones físicas están intactas pero la carga computacional es excesiva, reequilibre los grupos de ejecución e instale una gestión de carga automatizada:

Paso 1: Reubicar bloques tecnológicos a OB más lentas

En PCS 7, la ejecución rápida (OB35, 100 ms) solo es necesaria para bucles dinámicos rápidos (control de caudal, presión y velocidad de motores). Los procesos térmicos más lentos no requieren actualizaciones de 100 ms:
1. Abra el diagrama CFC y seleccione Edit -> Run Sequence....
2. Localice los grupos de ejecución que controlan los bucles de temperatura, niveles de tanques lentos y bloques de monitoreo auxiliares.
3. Mueva estos grupos de ejecución de OB35 (100 ms) a OB34 (200 ms) o OB32 (1000 ms).
4. Resultado: El tiempo de ejecución de OB35 se reduce sustancialmente, proporcionando un amplio margen de procesamiento para las interrupciones cíclicas.

Paso 2: Implementar el bloque CPU_RT para la reducción controlada de carga

La librería estándar de PCS 7 proporciona el bloque CPU_RT (FB70) específicamente para evitar caídas de la CPU por el temporizador de vigilancia del ciclo:
1. En la librería de datos maestros (Master Data Library) o en la librería básica de PCS 7, localice el bloque CPU_RT (FB70).
2. Inserte una instancia de CPU_RT en un diagrama dedicado e instálela en la secuencia de ejecución de OB100 (Startup) y OB1 (Segundo plano cíclico).
3. Configure los parámetros de CPU_RT:
- Interconecte NET_TIME para monitorear la ejecución neta del OB.
- Cuando la carga de la CPU supere los umbrales configurables (p. ej., 85%), CPU_RT descarta temporalmente y de forma automática las tareas no esenciales, evitando que el tiempo de ciclo supere el umbral crítico de 6,000 ms.

Verificación

Para verificar que la condición de sobrecarga de ciclo se ha resuelto por completo:
- En SIMATIC Manager, abra PLC -> Module Information -> Performance Data: confirme que los tiempos de ciclo de exploración actuales y máximos se mantengan muy por debajo del límite del temporizador de vigilancia (máximo recomendado < 50% del watchdog).
- Inspeccione el búfer de diagnóstico durante una ventana operativa de 24 horas: confirme cero ocurrencias del ID de evento 16#4533 o 16#4535.
- Monitoree los enlaces de comunicación óptica: verifique que los Módulos de Enlace Óptico (OLM) muestren LED CH1/CH2 verdes fijos sin indicadores de fallo amarillos/rojos parpadeantes.
- En el modo de prueba de CFC, confirme que todos los lazos de control PID que se ejecutan en OB34 o OB32 mantengan un seguimiento suave del punto de consigna (setpoint) sin retrasos.

Limitaciones y precauciones operativas

  • Nunca aumente arbitrariamente el watchdog para enmascarar fallos: Aumentar el tiempo de ciclo máximo en HW Config de 6,000 ms a 10,000 ms no resuelve el problema raíz; simplemente retrasa el inevitable paro del controlador y aumenta la latencia de respuesta de seguridad.
  • Restricciones de ejecución de seguridad F-System: Para los sistemas de seguridad tolerantes a fallos (FH), los bloques de seguridad se ejecutan en un grupo F-runtime dedicado (típicamente en OB35). El tiempo máximo de ejecución de la lógica de seguridad está limitado por el tiempo de monitoreo de seguridad F-Monitoring Time configurado. El reequilibrio del código estándar nunca debe comprometer el estricto ciclo de ejecución del programa F.
  • Precaución con la descarga completa: Mover grupos de ejecución entre diferentes OB en CFC se puede descargar en modo RUN mediante Change Download, siempre que no se eliminen tipos de bloques.

Preguntas frecuentes del ingeniero

¿Qué sucede si el OB80 no está cargado en la CPU?

Si se produce una condición de tiempo de ciclo excedido y el OB80 no está presente en la memoria del controlador, la CPU cambia inmediatamente al modo STOP en la primera ocurrencia.

¿Cómo puedo medir el tiempo exacto de ejecución de un OB individual?

Puede consultar la duración de la ejecución utilizando los parámetros del bloque CPU_RT (OB35_Net, OB1_Net) o utilizando la función de sistema SFC64 TIME_TCK para registrar la marca de tiempo en los puntos de entrada y salida.

¿Por qué cambiar un OLM y un cable de fibra óptica resolvió un fallo de tiempo de ciclo de la CPU?

Cuando los cables de fibra óptica o los OLM se degradan, la alta atenuación óptica provoca pérdida de paquetes. El maestro PROFIBUS reintenta los telegramas continuamente y activa OBs de interrupción de diagnóstico repetidamente, consumiendo hasta el 90% del tiempo de procesamiento de la CPU y privando de recursos a la ejecución cíclica.

¿Es seguro mover los bloques de motores y válvulas APL a OB34 (200 ms)?

Sí. Si bien los enclavamientos digitales se benefician de una respuesta rápida, las bombas, ventiladores y válvulas industriales estándar con tiempos de tránsito mecánicos de varios segundos operan con total estabilidad cuando se ejecutan a intervalos de 200 ms.

Referencias técnicas

  • Soporte en línea de la Industria de Siemens: Descripción y ejemplo de aplicación del bloque SIMATIC PCS 7 CPU_RT.
  • Entrada SIOS 109742323: Compendio de PCS 7 Parte A - Directrices de configuración (Sección: Rendimiento de la CPU y tiempos de ciclo).
  • Entrada SIOS 109809264: Sistema de control de procesos SIMATIC PCS 7 Sistemas de control de procesos tolerantes a fallos (S7-400H).
  • Manual técnico de Siemens: Sistema de automatización SIMATIC S7-400 Datos de los módulos (Temporizadores de vigilancia y OBs).

Artículos relacionados

Etiquetas relacionadas

  • S7-400H
  • OB80
  • Tiempo de ciclo
  • CPU_RT
  • Diagnósticos
  • Watchdog
  • Automatización industrial
20 respuestas