La secuencia de ejecución en runtime de CFC se altera de 1-2-3 a 2-1-3 durante la generación de instancias mediante IEA o CMT porque el asistente de importación crea grupos runtime basados en la clasificación por nombre de diagrama y punteros predeterminados de inserción de bloques organizacionales, en lugar de las posiciones relativas de los diagramas. Al instanciar múltiples diagramas, los grupos runtime generados automáticamente de forma independiente se colocan al final del ciclo de ejecución del OB sin un encadenamiento estructural. Para forzar la secuencia de ejecución exacta de forma permanente, consolide los bloques interdependientes en un único grupo runtime definido por el usuario dentro de la plantilla maestra, o configure reglas de precedencia de ejecución dentro de los Tipos de Módulo de Control (CMT).
Índice de contenidos
- Mecánica de los grupos runtime de CFC y secuencias de ejecución de OB
- Por qué los asistentes de importación alteran las secuencias de ejecución de múltiples diagramas
- Métodos de ingeniería para imponer un orden de ejecución determinista en runtime
- Verificación
- Limitaciones y precauciones operativas
- Preguntas frecuentes del ingeniero
- Referencias técnicas
- Artículos relacionados
- Etiquetas relacionadas
Mecánica de los grupos runtime de CFC y secuencias de ejecución de OB
En SIMATIC PCS 7, la ejecución determinista de la lógica de control dentro de bloques organizacionales cíclicos (por ejemplo, OB35 a 100 ms u OB32 a 1 s) se gestiona mediante grupos runtime (Runtime Groups).
Cada bloque ubicado en un diagrama CFC debe residir en un grupo runtime asignado a una tarea específica:
* La secuencia de ejecución determina el orden exacto en el que los bloques leen entradas, calculan algoritmos y escriben salidas dentro de ese intervalo de exploración.
* En bucles de control interconectados (por ejemplo, un driver de entrada analógica Pcs7AnIn que alimenta a un controlador PID PIDConL, el cual a su vez alimenta una salida analógica Pcs7AnOu), la ejecución de los bloques en la secuencia 1 -> 2 -> 3 garantiza que los valores de proceso se propaguen a través de todo el bucle en un solo ciclo de CPU.
* Si la secuencia se altera a 2 -> 1 -> 3, el controlador PID evalúa datos obsoletos del ciclo de exploración anterior, introduciendo un tiempo muerto artificial (retraso de fase) en el bucle de control.
Por qué los asistentes de importación alteran las secuencias de ejecución de múltiples diagramas
Cuando un ingeniero diseña un modelo tecnológico de múltiples diagramas y lo duplica en todas las unidades de planta utilizando el Asistente de Importación/Exportación (IEA), Tipos de Módulos de Proceso (PTT) o Tipos de Módulos de Control (CMT):
- Asignación independiente de grupos runtime: Si cada diagrama de la plantilla tiene su propio grupo runtime predeterminado separado, el motor de importación crea grupos runtime separados para cada instancia recién importada.
- Inserción basada en nombres o punteros: El asistente de importación inserta nuevos grupos runtime en el marcador activo Predecesor de inserción en el OB de destino. Al procesar múltiples diagramas por instancia, el motor de importación los inserta en el orden dictado por los ID de objetos de base de datos internos o la clasificación alfabética de los nombres de los diagramas, en lugar de la intención de diseño manual del usuario.
- Pérdida de desplazamientos relativos: El motor de importación conserva los números de secuencia relativa dentro de un solo grupo runtime, pero no conserva el orden de ejecución relativo entre grupos runtime desconectados distribuidos en diagramas separados.
Métodos de ingeniería para imponer un orden de ejecución determinista en runtime
Para garantizar que las instancias importadas mantengan secuencias de ejecución estrictas en reimportaciones recurrentes:
Método 1: Consolidar bloques interdependientes en un único grupo runtime
- Abra el modelo maestro o el Tipo de Módulo de Control (CMT) en el CFC.
- Abra el Editor Runtime (
Ctrl+Alt+R). - Cree un único grupo runtime de usuario nombrado explícitamente (por ejemplo,
RG_Master_Loop). - Mueva todos los bloques de los diagramas 1, 2 y 3 a este grupo runtime unificado.
- Ordene los bloques secuencialmente:
Block_1->Block_2->Block_3. - Cuando IEA o CMT importan una instancia, todo el grupo runtime se instancia como una secuencia de bloques atómica. El orden de ejecución interno relativo (1 -> 2 -> 3) permanece 100% inmune a la alteración de la secuencia de importación.
Método 2: Configurar punteros de inserción de predecesores en CMT
En PCS 7 moderno (V9.0, V9.1):
1. En la biblioteca maestra de datos (Master Data Library), abra el Tipo de Módulo de Control (CMT).
2. En el editor tecnológico, seleccione el grupo runtime.
3. Defina el atributo Predecesor de ejecución (Execution Predecessor), vinculando explícitamente los grupos hijos a los grupos padres.
4. Al sincronizar con CMT, el generador coloca automáticamente los grupos runtime hijos inmediatamente después de sus predecesores designados en el OB de destino.
Verificación
- En SIMATIC Manager, ejecute la importación masiva a través de la sincronización IEA o CMT.
- Abra CFC y ejecute el Editor Runtime (
Opciones->Personalizar->Secuencia de ejecuciónuOpciones->Customize->Runtime Sequence/Ctrl+Alt+R). - Navegue hasta el OB cíclico de destino (por ejemplo,
OB35). - Localice los grupos runtime recién instanciados.
- Confirme que los bloques dentro de las instancias importadas se ejecutan estrictamente en el orden previsto 1 -> 2 -> 3 sin reposicionamiento manual.
Limitaciones y precauciones operativas
- Modificar las asignaciones de grupos runtime requiere compilar y cargar el programa AS. Si los órdenes de bloques se reestructuran significativamente, ejecute una compilación completa para garantizar la integridad de los punteros entre bloques.
- Evite colocar un número excesivo de bloques en un solo grupo runtime si pertenecen a diferentes ciclos de ejecución (por ejemplo, mezclar tareas de 100 ms y 1000 ms).
- En la ingeniería multiusuario, asegúrese de que todos los ingenieros sincronicen sus bibliotecas de datos maestros antes de generar instancias para evitar conflictos de versión en la secuencia runtime.
Preguntas frecuentes del ingeniero
- ¿Por qué CFC permite que bloques de diferentes diagramas compartan un grupo runtime?
Los grupos runtime son contenedores de ejecución lógica desacoplados de las disposiciones físicas de los diagramas. Un solo grupo runtime puede contener bloques procedentes de múltiples diagramas CFC distintos. - ¿Qué sucede si dos bloques con dependencias de datos se ejecutan en orden inverso?
El bloque de nivel inferior procesa los datos calculados durante el ciclo de CPU anterior, añadiendo un intervalo de ejecución de retardo de transporte. Aunque la lógica sigue funcionando, la estabilidad del control de lazo cerrado de alta velocidad se degrada. - ¿Puedo bloquear la secuencia runtime en CFC?
Sí. En el Editor Runtime, puede deshabilitar "Optimizar secuencia de ejecución" y configurar manualmente los punteros de inserción para evitar que el compilador mueva grupos automáticamente.
Referencias técnicas
- SIMATIC PCS 7 CFC for S7 / M7 Manual (A5E41356247-AA).
- SIMATIC PCS 7 Engineering System - Runtime Sequence Management and Optimization.
- Siemens Industry Online Support Entry ID 109801081: Runtime Group Handling in IEA and CMT.
Artículos relacionados
- Best Practices for Organizing Cyclic Tasks and Runtime Groups in S7-410 Systems.
- Optimizing Control Loop Dead Time by Eliminating Reverse Execution Sequences in CFC.
Etiquetas relacionadas
PCS 7, CFC, Runtime Sequence, OB35, IEA, CMT, Runtime Groups, S7-400