Orden de procesamiento
Importante
Tenga en cuenta lo siguiente al implementar acciones:
Es posible ejecutar una acción varias veces dentro del mismo ciclo, ya que la acción se puede utilizar en varios diagramas SFC.
Ejemplo: Un diagrama SFC contiene dos acciones IEC A y B, ambas programadas en SFC y que llaman ambas a una acción IEC C. En este caso, C se llamaría dos veces.
Utilizar la misma acción IEC simultáneamente en distintos niveles de un diagrama SFC puede producir resultados impredecibles durante el procesamiento. Por este motivo, CODESYS emite el mensaje de error correspondiente. Este mensaje de error puede aparecer, por ejemplo, cuando trabaja con proyectos creados en una versión anterior del sistema de desarrollo.
Sugerencia
Nota: Es posible utilizar variables implícitas para supervisar el estado de procesamiento de los pasos y acciones o para controlar el procesamiento.
Comportamiento básico de los elementos
Paso activo
Un paso activo contiene acciones que se están ejecutando en ese momento. En el modo en línea, CODESYS muestra los pasos activos en azul.
Paso inicial
En el primer ciclo después de llamar a una POU en SFC, el paso inicial se activa automáticamente y se ejecuta la acción de paso.
Las acciones IEC se ejecutan al menos dos veces. La primera vez cuando se activa el paso y la segunda vez cuando se desactiva el paso (pero no hasta el ciclo siguiente).
Ramas alternativas
Si el paso anterior a la rama está activo, las primeras transiciones de las ramas alternativas se evalúan de izquierda a derecha. En cuanto una transición da como resultado el valor
TRUE, se activa el paso siguiente de la rama correspondiente. Las transiciones de las ramas situadas a su derecha ya no se evalúan.Ramas paralelas
Si el paso anterior a la rama está activo y la transición anterior a la línea doble horizontal es
TRUE, los primeros pasos de todas las ramas se activan simultáneamente. A continuación, las ramas se ejecutan en paralelo. El paso posterior a la rama se activa en cuanto los últimos pasos de todas las ramas están activos y la transición siguiente da como resultado el valorTRUE.
Orden de procesamiento
Restablecer acciones IEC
Se restablecen las banderas de control internas de las acciones con los calificadores
N,R,S,L,D,P,SD,DS,SL. Estas banderas controlan una acción IEC. Sin embargo, las banderas a las que se accede dentro de las acciones no se restablecen.Ejecutar acciones de salida
A continuación, se comprueba en cada paso si cumple la condición para ejecutar su acción de salida. El orden de comprobación sigue la disposición del diagrama SFC, de arriba a abajo y de izquierda a derecha.
Una acción de salida se ejecuta cuando se desactiva el paso, es decir, cuando sus acciones de entrada y de paso, si las hay, se han ejecutado en el ciclo anterior y la condición para el paso siguiente da como resultado
TRUE.Ejecutar acciones de entrada
A continuación, se comprueba en cada paso si cumple la condición para ejecutar su acción de entrada. El orden de comprobación sigue la disposición del diagrama SFC, de arriba a abajo y de izquierda a derecha. Si es así, se ejecutan todas las acciones de entrada.
Una acción de entrada se ejecuta una vez cuando se activa el paso asociado. El requisito para ello es que la transición anterior al paso dé como resultado el valor
TRUE.Comprobación de tiempo / Ejecutar acciones de paso
Se comprueba si un paso ha permanecido activo más tiempo del permitido. La comprobación de tiempo sirve para detectar errores en la secuencia. Por ejemplo, si no se cumple una transición esperada y, por lo tanto, la secuencia se detiene dentro de un paso.
Ejecutar acciones IEC
Las acciones IEC se ejecutan en orden alfabético. Esto se realiza en dos pasadas por la lista de acciones. En la primera pasada se ejecutan las acciones IEC de todos los pasos que se desactivaron en el ciclo anterior. En la segunda pasada se ejecutan las acciones IEC de todos los pasos que están activos.
Comprobación de transiciones / Activar pasos siguientes
Cuando se cumplen las condiciones siguientes, se activa el paso siguiente:
El paso está activo en el ciclo actual.
La transición siguiente devuelve el valor
TRUE.Ha transcurrido el tiempo mínimo definido para el paso, si lo hay.