Orden de ejecución en CFC

Descripción general

El orden de ejecución de elementos en POU se determina únicamente en editores basados en texto y en red. Sin embargo, en el editor CFC, puede colocar los elementos libremente, por lo que el orden de ejecución, en principio, no es único. Por lo tanto, EcoStruxure Machine Expert determina el orden de ejecución por el flujo de datos y, en el caso de que haya varias redes, por la posición topológica de los elementos. Los elementos se ordenan de arriba abajo y de izquierda a derecha para conseguir un orden de ejecución único.

El orden cronológico de los elementos del gráfico puede indicarse en EcoStruxure Machine Expert mostrando temporalmente el orden de ejecución. Para redes con realimentación, puede definir un elemento como punto de partida del bucle de realimentación.

EcoStruxure Machine Expert V2.0 y versiones posteriores le permiten editar el orden de ejecución en un objeto CFC explícitamente seleccionando Modalidad de orden de ejecución explícita (Explicit Execution Order Mode) en la ficha del objeto CFC Orden de ejecución de CFC (CFC Execution Order) (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea), Propiedades.

Flujo de datos

En general, el término flujo de datos describe el orden cronológico de lectura o escritura de determinados datos en un momento y de una forma concretos en un objeto de programación determinado. Una POU puede procesar un número arbitrario de flujos de datos. Estos flujos de datos también pueden ejecutarse independientemente unos de otros.

Visualización del orden de ejecución

De forma predeterminada, Modalidad de flujo de datos automática (Auto Data Flow Mode) se selecciona en la ficha del objeto CFC Orden de ejecución de CFC (CFC Execution Order) (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea), Propiedades, y el orden de ejecución de un objeto CFC se determina automáticamente.

Para mostrar temporalmente el orden de ejecución en el editor CFC, haga lo siguiente:

Paso

Acción

Comentario

1

Cree un nuevo proyecto con la plantilla Proyecto estándar y especifique un nombre.

Nombre de ejemplo: Minimal

2

Inserte el bloque de funciones FB_DOIt con entradas y salidas en lenguaje de implementación ST.

Ejemplo:

FUNCTION_BLOCK FB_DoIt
VAR_INPUT
iAlfa : INT;
iBravo: INT;
sCharlie : STRING := 'Charlie';
xItem : BOOL;
END_VAR
VAR_OUTPUT
    iResult : INT;
    sResult : STRING;
    xResult : BOOL;
END_VAR
VAR
END_VAR
iResult := iAlfa + iBravo;
IF xItem = TRUE THEN
xResult := TRUE;
END_IF

3

Cree el bloque de funciones ExecuteCFC en lenguaje de implementación CFC.

Ejemplo:

PROGRAM ExecuteCFC
VAR
fb_DoIt_0: FB_DoIt;
fb_DoIt_1: FB_DoIt;
iFinal_1: INT;
iFinal_0: INT;
xFinal: BOOL;
END_VAR

Los objetos de programación creados recientemente en CFC han seleccionado la opción Modalidad de flujo de datos automática (Auto Data Flow Mode). El orden de ejecución óptimo de los objetos de programación se define internamente.

4

Ejecute el comando CFC > Orden de ejecución > Mostrar orden de ejecución (Display Execution Order).

Resultado: se muestra el orden de ejecución del objeto. Los módulos y las entradas se numeran de acuerdo con el orden de procesamiento cronológico. Esta visualización temporal se quita en cuanto hace clic de nuevo en el editor CFC.

Determinación manual del orden de ejecución en redes con realimentación

Para determinar manualmente el orden de ejecución en redes con realimentación, haga lo siguiente:

Paso

Acción

Comentario

1

Cree un programa CFC con realimentación.

Ejemplo: los recuentos de PrgPositiveFeedback de POU.

PROGRAM PrgPositiveFeedback
VAR
    iResult: INT;
END_VAR

2

Seleccione un elemento en la realimentación.

Resultado: el elemento seleccionado se resalta en rojo.

3

Ejecute el comando CFC > Orden de ejecución > Definir inicio de realimentación (Set Start of Feedback).

Resultado: al elemento seleccionado se le asigna el número 0 (el número más bajo de la realimentación) y se indica mediante el símbolo . En el tiempo de ejecución, esta POU se procesa en primer lugar.

Para deshacer esta numeración, haga lo siguiente:

  1. Seleccione la POU definida como POU inicial.

  2. Ejecute el comando CFC > Orden de ejecución > Definir inicio de realimentación (Set Start of Feedback).

Resultado: la POU deja de estar definida como POU inicial y el orden de ejecución se define internamente.

Para mostrar el orden de ejecución por flujo de datos, ejecute el comando CFC > Orden de ejecución. > Mostrar orden de ejecución (Display Execution Order).

Definición manual del orden de ejecución

La Modalidad de flujo de datos automática (Auto Data Flow Mode) predeterminada determina el orden de los objetos CFC automáticamente para conseguir una ejecución optimizada por tiempo y por ciclo. Con esta modalidad activada, no tiene que preocuparse de definir el orden de ejecución durante el proceso de desarrollo.

NOTA: La Modalidad de orden de ejecución explícita (Explicit Execution Order Mode) le permite definir el orden de ejecución manualmente. Tenga en cuenta que es responsabilidad suya adaptar el orden de ejecución y evaluar las consecuencias y los efectos. Para que le resulte más sencillo, el orden de ejecución se muestra permanentemente.

Para definir manualmente el orden de ejecución, haga lo siguiente:

Paso

Acción

Resultado

1

En el árbol Dispositivos o POU, haga clic con el botón derecho en un objeto CFC y ejecute el comando Propiedades.

Se abre el cuadro de diálogo Propiedades.

2

Seleccione la ficha Orden de ejecución de CFC (CFC Execution Order).

La lista Orden de ejecución muestra la modalidad seleccionada.

3

En la lista Orden de ejecución, seleccione la opción Modalidad de orden de ejecución explícita (Explicit Execution Order Mode).

4

Haga clic en Aceptar para confirmar y cerrar el cuadro de diálogo.

  • Se activa Modalidad de orden de ejecución explícita (Explicit Execution Order Mode).

  • Las redes se numeran en el editor CFC.

  • Los siguientes comandos están disponibles en el menú CFC > Orden de ejecución:

    • Comando Mostrar orden de ejecución (Display Execution Order) (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea)

    • Comando Definir inicio de realimentación (Set Start of Feedback) (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea)

5

Abra un objeto CFC.

6

Seleccione un elemento numerado y ejecute el comando CFC > Orden de ejecución > Enviar adelante.

El orden de ejecución se reordena y al elemento seleccionado se le asigna el número 0.