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.
Crea un nuevo proyecto usando el Proyecto estándar plantilla y especifique el nombre
Minimal
Por ejemplo.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
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.
Hacer clic
.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.
Determinación del orden de ejecución en redes de retroalimentación
Crear un programa CFC con retroalimentación.
El POU
PrgPositiveFeedback
cuenta.PROGRAM PrgPositiveFeedback VAR iResult: INT; END_VAR
Seleccione un elemento dentro de la retroalimentación.
El elemento seleccionado se resalta en rojo.
Hacer clic CFC → Orden de ejecución → Establecer Arranque de Respuesta.
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
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).
Seleccione nuevamente el POU de inicio.
Hacer clic CFC → Orden de ejecución → Establecer Arranque de Respuesta.
El módulo no está seleccionado como módulo de inicio.
El orden de ejecución se define internamente.
Hacer clic CFC → Orden de ejecución → Mostrar orden de ejecución.
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.
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.
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.
Abrir un objeto CFC.
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.