Cómo se ejecutan los diagramas CFC anidados y cómo gestionar las secuencias de ejecución en PCS 7

En SIMATIC PCS 7, insertar un diagrama de funciones continuo (CFC) dentro de otro diagrama CFC crea un subdiagrama anidado en lugar de una subrutina encapsulada. En el sistema operativo del controlador, la ejecución se basa en bloques y no en diagramas: los bloques individuales dentro del diagrama anidado se instalan directamente en la lista de ejecución del bloque de organización asignado (como OB35). Si un diagrama se crea en la vista de planta y posteriormente se arrastra a otro diagrama, se instancia una copia duplicada de la estructura del diagrama. Si los bloques del diagrama original permanecen registrados en la secuencia de ejecución junto con la copia recién insertada, el código se ejecutará dos veces por cada interrupción cíclica. La ejecución única determinista requiere inspeccionar y gestionar los grupos de ejecución en el editor de secuencias de ejecución del CFC.

Índice de contenidos

Diagramas de nivel superior frente a subdiagramas anidados en la jerarquía CFC

En el editor CFC de PCS 7, los ingenieros pueden construir una jerarquía visual incrustando diagramas dentro de otros diagramas:
- Diagrama de nivel superior (Top-Level Chart): Un diagrama CFC independiente que reside directamente en una carpeta de la jerarquía de planta en SIMATIC Manager.
- Diagrama anidado (Subdiagrama): Un diagrama insertado dentro de una hoja de un diagrama principal para agrupar lógica relacionada (por ejemplo, colocar lógica de enclavamiento dentro de un diagrama de control de bombas).
- Interfaces de E/S de diagrama: Los diagramas anidados utilizan pines de E/S de diagrama para intercambiar señales con los bloques del diagrama principal a través de los límites de las hojas.
- Sin instrucción de salto de programa: A diferencia de la programación de autómatas tradicional en la que se llama a una subrutina mediante una instrucción de salto, un diagrama CFC anidado no se ejecuta como una subrutina de llamada. El compilador de CFC aplana la jerarquía y planifica las instancias de bloques individuales directamente en los grupos de ejecución del controlador.

Mecánica de ejecución de la CPU basada en bloques en OB cíclicos

Comprender la planificación de la CPU en los controladores SIMATIC S7-400 explica cómo se procesan los bloques:
1. El contenedor del bloque de organización: Las interrupciones cíclicas (como OB35, configurada para 100 ms) mantienen una lista de ejecución de bloques funcionales y funciones.
2. Grupos de ejecución: Dentro de OB35, los bloques se organizan en grupos de ejecución. Un grupo de ejecución corresponde a un diagrama CFC individual o a una sección funcional.
3. Orden de ejecución: Cuando se desencadena el OB35, la CPU ejecuta los grupos de ejecución secuencialmente de arriba a abajo, invocando el código de máquina de cada bloque una vez por ciclo.
4. Ubicación del subdiagrama: Cuando se crea un subdiagrama, el compilador crea un grupo de ejecución correspondiente en la posición del diagrama principal dentro de la secuencia de ejecución.

El riesgo de ejecución duplicada al arrastrar diagramas

La cuestión de si un diagrama se ejecuta una o dos veces depende de cómo se haya instanciado el diagrama:

Método de instanciaciónComportamiento de la secuencia de ejecuciónEjecuciones totales por cicloArrastrar desde la librería maestra / plantillaCrea una nueva instancia única en el diagrama de destino; crea un grupo de ejecución en OB35.Una vez: Ejecución determinista estándar.Insertar nuevo diagrama anidado (vacío)El usuario construye la lógica directamente dentro de la hoja secundaria; el compilador registra un grupo de ejecución.Una vez: Ejecución correcta.Arrastrar diagrama existente desde la vista de plantaCFC crea una copia de la estructura del diagrama dentro del diagrama de destino, mientras que el diagrama original permanece en la carpeta de planta.Dos veces: Si tanto el diagrama original como la copia tienen bloques activos en OB35, ¡la lógica se ejecuta dos veces!

Si se produce una ejecución duplicada en bloques tecnológicos (como temporizadores, integradores o totalizadores), los cálculos del proceso se ejecutan al doble de velocidad, lo que provoca sobreimpulsos en el valor de consigna y un comportamiento de control errático.

Método: Gestión y verificación del editor de secuencias de ejecución de CFC

Para garantizar que los bloques se ejecuten estrictamente una vez por ciclo en el orden cronológico correcto, configure el editor de secuencias de ejecución:

Paso 1: Abrir el editor de secuencias de ejecución

  1. En el editor CFC, seleccione Editar -> Secuencia de ejecución... (o haga clic en el icono de secuencia de ejecución en la barra de herramientas).
  2. La ventana muestra un árbol expandible de todos los bloques de organización (OB100, OB1, OB35, OB34, etc.).

Paso 2: Localizar el bloque de organización asignado

  1. Expanda OB35 (interrupción cíclica de 100 ms).
  2. Localice los grupos de ejecución correspondientes a su diagrama principal y subdiagramas.
  3. Observe la convención de nomenclatura: los grupos de ejecución llevan el nombre de la ruta del diagrama (por ejemplo, Plant1/UnitA/Chart_Pump101).

Paso 3: Identificar y eliminar grupos de ejecución duplicados

  1. Busque en el árbol de OB35 nombres de bloques duplicados o entradas de diagramas redundantes.
  2. Si el diagrama independiente original fue reemplazado por un subdiagrama anidado, elimine el diagrama independiente obsoleto de SIMATIC Manager.
  3. Si queda un grupo de ejecución huérfano, haga clic con el botón derecho en el grupo vacío o redundante en el editor de secuencias de ejecución y seleccione Eliminar.
  4. Confirme que cada instancia de bloque tecnológico aparezca exactamente una vez en el árbol de ejecución.

Paso 4: Optimizar el orden de ejecución (dirección del flujo de datos)

  1. Verifique que los bloques anteriores se ejecuten antes que los bloques posteriores:
    - Los controladores de canales de entrada analógicos/digitales (Pcs7DiIn, Pcs7AnIn) deben ejecutarse primero.
    - Los cálculos matemáticos y la lógica de enclavamiento deben ejecutarse en segundo lugar.
    - Los bloques de control (MotL, VlvL, PIDConL) deben ejecutarse en tercer lugar.
    - Los controladores de canales de salida digital (Pcs7DiOu) deben ejecutarse últimos.
  2. Si un bloque está desordenado, arrástrelo y suéltelo en su posición cronológica correcta en la lista.

Verificación

Para confirmar que los diagramas anidados se ejecutan de forma limpia y determinista:
- Abra el diagrama CFC en Modo de prueba online (Depuración -> Modo de prueba).
- Supervise los bloques acumuladores dinámicos (como medidores de tiempo de funcionamiento o totalizadores): confirme que los incrementos de tiempo avanzan exactamente un segundo por segundo de tiempo real.
- Abra Opciones -> Datos de referencia -> Secuencia de ejecución: verifique que el listado tabular no muestre llamadas a bloques duplicadas dentro del mismo OB.
- Verifique los datos de rendimiento de la CPU: compruebe que los tiempos de ejecución de las interrupciones cíclicas permanezcan estables sin picos inexplicables.

Limitaciones y precauciones operativas

  • No anide diagramas a más de 2 o 3 niveles de profundidad: Aunque CFC técnicamente admite múltiples niveles de anidamiento de diagramas, las jerarquías profundas dificultan la resolución de problemas por parte del operador, oscurecen el flujo de señales y complican la visualización de la secuencia de ejecución.
  • Evite mezclar diferentes OB dentro de un mismo diagrama: Todos los bloques de un diagrama anidado fuertemente acoplado deben ejecutarse dentro del mismo bloque de organización (por ejemplo, todos en OB35). Distribuir bloques en diferentes frecuencias de ciclo (por ejemplo, entradas en OB35, lógica en OB32) introduce latencia de varios ciclos y fluctuación de desfase (jitter).
  • Creación automática de grupos de ejecución: Al insertar nuevos bloques, CFC utiliza la configuración del "Punto de inserción". Compruebe siempre dónde se colocan los nuevos bloques para evitar dispersar la lógica entre grupos de ejecución distantes.

Preguntas frecuentes del ingeniero

¿Insertar un diagrama como subdiagrama ahorra memoria de la CPU?

No. En PCS 7, la asignación de memoria está determinada por el número total de instancias de bloques y sus bloques de datos de instancia (DB) asociados. El anidamiento de diagramas mejora la organización gráfica del proyecto para el ingeniero, pero no reduce el consumo de memoria RAM de la CPU.

¿Cómo navego entre un diagrama principal y un subdiagrama anidado?

Haga doble clic en el icono del subdiagrama dentro de la hoja del diagrama principal para acceder a la lógica secundaria. Para navegar hacia arriba, haga clic en el icono de flecha Hacia arriba en la barra de herramientas de navegación de CFC.

¿Qué sucede si elimino un diagrama principal que contiene subdiagramas anidados?

La eliminación del diagrama principal en SIMATIC Manager elimina todos los subdiagramas anidados internos y elimina sus bloques asociados de la secuencia de ejecución de la CPU.

¿Puede un diagrama anidado tener sus propias E/S de diagrama?

Sí. Abra el diagrama anidado, seleccione Ver -> E/S de diagrama y defina los parámetros de entrada y salida. Estos parámetros aparecen como pines conectables en la cara del bloque del subdiagrama cuando se visualiza desde el diagrama principal.

Referencias técnicas

  • Siemens Industry Online Support: Manual de SIMATIC PCS 7 CFC para S7 (A5E00278782).
  • Entrada de SIOS 109742323: Compendio de PCS 7, Parte A - Directrices de configuración (Sección: Secuencias de ejecución y temporización).
  • Entrada de SIOS 109809264: Manual del sistema de control de procesos SIMATIC PCS 7 Advanced Process Library.
  • Guía de ingeniería de Siemens: Planificación determinista de programas en SIMATIC S7-400.

Artículos relacionados

Etiquetas relacionadas

  • CFC
  • Secuencia de ejecución
  • OB35
  • Diagramas anidados
  • S7-400
  • Orden de ejecución
  • Automatización industrial
20 respuestas