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
- Causas raíz: Tormentas de perturbación en el bus vs. sobrecarga de código cíclico
- Método: Análisis del búfer de diagnóstico e identificación de eventos
- Método: Reequilibrio del programa y reducción de carga con CPU_RT
- Verificación
- Limitaciones y precauciones operativas
- Preguntas frecuentes del ingeniero
- Referencias técnicas
- Artículos relacionados
- Etiquetas relacionadas
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:
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
- En SIMATIC Manager, seleccione la estación AS y haga clic en PLC -> Diagnostic Buffer.
- Examine la lista de eventos recientes en busca de eventos de error de tiempo:
- ID de evento16#4533: Tiempo de ciclo excedido (Se llamó a OB80 porque OB1 excedió el tiempo máximo de monitoreo de ciclo).
- ID de evento16#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
- Desplácese hacia abajo inmediatamente debajo del evento
16#4533o16#4535. - Busque eventos de ráfaga precedentes:
- Múltiples instancias de ID de evento16#38C4/16#39C4(Fallo/retorno de estación OB86 en PROFIBUS o PROFINET).
- Múltiples instancias de ID de evento16#3842/16#3942(Interrupción de diagnóstico de módulo OB82). - 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
- Cómo resolver tormentas del watchdog WAN y desconexiones de clientes en buses de terminal PCS 7 enrutados
- Cómo suprimir y gestionar alarmas de 'Error de módulo al entrar en estado' en PCS 7
- Actualización de S7-417H a CPU 410-5H en SIMATIC PCS 7 V8.1 SP1: Compatibilidad y pasos de migración
Etiquetas relacionadas
- S7-400H
- OB80
- Tiempo de ciclo
- CPU_RT
- Diagnósticos
- Watchdog
- Automatización industrial