Skip to main content

Ordenar conforme al flujo de datos

El orden de ejecución en los POU se determina de forma única en los editores de texto y de red. Sin embargo, en el editor CFC, se puede posicionar los elementos libremente, por lo que el orden de ejecución no es único inicialmente. Por esta razón, CODESYS Utiliza el flujo de datos para determinar el orden de ejecución y, en el caso de redes múltiples, la posición topológica de los elementos. Los elementos y redes superiores se ordenan de arriba a abajo y de izquierda a derecha. De esta manera, el orden de ejecución es único y garantiza que el POU se procese optimizado en tiempo y ciclo.

Puede visualizar temporalmente el orden de ejecución actual en el gráfico. Al programar redes con retroalimentación, puede definir un elemento como punto de inicio del bucle de retroalimentación.

También puede editar explícitamente el orden de procesamiento en un objeto CFC. Para ello, cambie el... Modo de flujo de datos automático propiedad del objeto CFC a Modo de orden de ejecución explícita En este modo, tiene la opción de editar el orden de ejecución mediante comandos de menú.

Antes CODESYS En la versión V3.5 SP15, era necesario definir explícitamente el orden de ejecución para cada POU. No había cambio de modo.

Flujo de datos

El flujo de datos describe en orden cronológico qué datos deben escribirse o leerse, cómo y cuándo debe hacerse, y en qué objetos de programación. Una POU puede procesar cualquier número de flujos de datos, que también pueden ejecutarse de forma independiente.

Visualización del orden de ejecución

De forma predeterminada, el orden de ejecución de un objeto CFC se determina automáticamente. Modo de flujo de datos automático Para ello, se selecciona la propiedad. Puede visualizar temporalmente el orden de ejecución determinado automáticamente en el editor CFC.

  1. Crea un nuevo proyecto usando el Proyecto estándar plantilla y especifique el nombre Minimal Por ejemplo.

  2. Amplíe la aplicación con el bloque de funciones FB_DOIt en el ST Lenguaje de implementación con entradas y salidas como sigue.

    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. Crear el bloque de función ExecuteCFC en el CFC lenguaje de implementación como sigue.

    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 tienen seleccionado el modo de flujo de datos automático. El orden de ejecución del objeto de programación se define internamente de forma óptima.

    cfc_img_fb_executecfc.png
  4. Hacer clic CFC → Orden de ejecución → Mostrar orden de ejecución.

    Se muestra el orden de ejecución del objeto. Los cuadros y las entradas se numeran según corresponda y reflejan la secuencia cronológica de procesamiento. La numeración se oculta al volver a hacer clic en el editor CFC.

    cfc_img_displaying_execution_order.png

Determinación del orden de ejecución en redes de retroalimentación

  1. Crear un programa CFC con retroalimentación.

    El POU PrgPositiveFeedback cuenta.

    PROGRAM PrgPositiveFeedback
    VAR
        iResult: INT;
    END_VAR
    cfc_img_prg_positive_feedback.png
  2. Seleccione un elemento dentro de la retroalimentación.

    El elemento seleccionado se resalta en rojo.

  3. Hacer clic CFC → Orden de ejecución → Establecer Arranque de Respuesta.

    cfc_img_prg_positive_feedback_with_start.png

    En tiempo de ejecución, este POU se procesa primero. El POU de inicio de la retroalimentación se define y se decora con el cfc_icon_start_of_feedback.png Símbolo. Se reordena el orden de ejecución y el elemento seleccionado obtiene el número 0 (este es el número más bajo de la retroalimentación).

  4. Seleccione nuevamente el POU de inicio.

  5. Hacer clic CFC → Orden de ejecución → Establecer Arranque de Respuesta.

    El módulo no está seleccionado como módulo de inicio.

    cfc_img_prg_positive_feedback.png

    El orden de ejecución se define internamente.

  6. Hacer clic CFC → Orden de ejecución → Mostrar orden de ejecución.

    cfc_img_positive_feedback_numbered.png

    Se muestra el orden de ejecución por flujo de datos.

Definir explícitamente el orden de ejecución

Puede cambiar el orden de ejecución definido automáticamente de un objeto CFC explícitamente cuando selecciona la opción Modo de orden de ejecución explícita Opción para el objeto.

  1. En el Dispositivos o POU Ver, abra el menú contextual de un objeto CFC y haga clic Propiedades. En el Propiedades diálogo, seleccione el Orden de ejecución de CFC pestaña.

    El Orden de ejecución El módulo de lista muestra el modo seleccionado actualmente.

  2. En el Orden de ejecución módulo de lista, seleccionar Modo de orden de ejecución explícita y haga clic DE ACUERDO para confirmar el diálogo.

    Se selecciona el "Modo de orden de ejecución explícita". Las redes se numeran en el editor CFC y se proporcionan los siguientes comandos en el... CFC → Orden de ejecución Menú para editar el orden de ejecución.

  3. Abrir un objeto CFC.

  4. Seleccione un elemento numerado y haga clic CFC → Orden de ejecución → Al principio.

    Se reordena el orden de ejecución y el elemento seleccionado tiene el número 0.

Sugerencia

El orden de ejecución definido automáticamente por el flujo de datos permite una ejecución optimizada del POU en términos de tiempo y ciclo. No necesita información sobre el orden de ejecución gestionado internamente durante el proceso de desarrollo.

En Modo de orden de ejecución explícita Es su responsabilidad adaptar el orden de ejecución y evaluar las consecuencias e impactos. Esta es otra razón por la que el orden de ejecución siempre se muestra.