Calificadores para acciones en SFC
Los calificadores se asignan a las acciones IEC asociadas a un paso. El calificador define el comportamiento de ejecución de la acción respectiva: de qué manera, cuándo y durante cuánto tiempo se ejecuta.
Los calificadores se procesan mediante el bloque de funciones SFCActionControl de la biblioteca IecSfc.library. La biblioteca se integra automáticamente en el proyecto en cuanto se ha instalado CODESYS SFC.
Para obtener más información, consulte: Programación en SFC
| No almacenado | La acción está activa mientras lo esté el paso. |
| Restablecimiento prioritario | La acción ejecutada con |
| Establecer (almacenado) | La acción se ejecuta en cuanto el paso se activa. La ejecución de la acción continúa, incluso después de que se haya desactivado el paso, hasta que se restablece. |
| Limitado en el tiempo | La acción se ejecuta en cuanto el paso se activa. La acción se ejecuta hasta que el paso se desactiva o ha transcurrido el intervalo de tiempo indicado. |
| Retardado en el tiempo | La acción se ejecuta después de que el paso se haya activado, si ha transcurrido el tiempo de retardo especificado y el paso sigue activo. La acción se ejecuta hasta que el paso se desactiva. |
| Impulso | La acción se realiza exactamente dos veces: una vez cuando el paso se activa y la segunda vez cuando el paso se desactiva. |
| Almacenado y retardado en el tiempo | La ejecución de la acción solo comienza cuando ha transcurrido el tiempo de retardo especificado después de que el paso se haya activado. La acción se ejecuta hasta que se restablece. |
| Retardado y almacenado | La ejecución de la acción solo comienza cuando ha transcurrido el tiempo de retardo especificado después de que el paso se haya activado y el paso sigue activo. La acción se ejecuta hasta que se restablece. |
| Almacenado y limitado en el tiempo | La acción se ejecuta en cuanto el paso se activa. Se ejecuta hasta que ha transcurrido el tiempo especificado o hasta que se restablece. |
Nota
Una acción con el calificador S, SD, DS o SL se sigue ejecutando después de que el paso pase a estar inactivo.
Con los calificadores S, SD y DS, la acción solo finaliza mediante una llamada de restablecimiento a la misma acción con el calificador R. Este tipo de llamada es necesaria para que la acción finalice.
Con el calificador SL, la acción finaliza automáticamente en cuanto ha transcurrido el tiempo especificado, o antes mediante una llamada con R.
Debe especificar los tiempos para los calificadores L, D, SD, DS y SL en el formato de una constante TIME.
Para obtener más información sobre cómo se aplican los calificadores, consulte Ejemplos de calificadores.
Sugerencia
Cuando se desactiva una acción IEC, se ejecuta una vez más. Esto significa que CODESYS ejecuta este tipo de acción al menos dos veces. Esto también se aplica a las acciones con el calificador P.
Ejemplos de calificadores
Esta sección contiene ejemplos de cómo utilizar los calificadores.
Ejemplo: Ventilación de humos en un sistema de ventilación
El calificador de una acción determina cuándo se inicia la acción y durante cuánto tiempo se ejecuta. El ejemplo muestra el mismo proceso en tres implementaciones del diagrama funcional secuencial (SFC). Las implementaciones se diferencian por el uso de los calificadores.
Situación inicial: Un sistema de ventilación utiliza un sensor de humo para supervisar el aire. Cuando el sensor detecta humo, el controlador activa inmediatamente la ventilación de humos.
POU con un calificador N

La POU contiene la secuencia más sencilla. Cuando el sensor de humo detecta humo, se activa el paso con la acción Ventilate. El paso llama a la acción con el calificador N. La ventilación de humos funciona mientras el sensor detecta humo.
Cree una POU en SFC y cambie el nombre a
Simple_N. Para obtener más información, consulte: Creación de una POU en SFCEn la parte de declaración de la POU creada, cree las siguientes variables booleanas:
PROGRAM Simple_N VAR bSmokeDetected: BOOL; bVent: BOOL; END_VARModifique la transición del paso inicial: haga clic en la transición y utilice el Asistente de entrada
para asignar la variable bSmokeDetected.Después de la transición del paso inicial, agregue un paso denominado
SmokeInSystem.Modifique la transición del paso
SmokeInSystem: haga clic en la transición y utilice el Asistente de entrada
para asignar la variable bSmokeDetected. AgregueNOT:NOT bSmokeDetectedEn el árbol de dispositivos, haga clic con el botón derecho en la POU recién creada
Simple_Ny seleccione el comando Agregar objeto → Acción.... Asigne el nombreVentilatey ajuste la opción Texto Estructurado (ST) para el lenguaje de implementación.Inserte allí el código siguiente:
// The alternation simulates the running ventilator. bvent := NOT bvent;
Haga clic en el paso
SmokeInSystemy utilice el comando SFC → Insertar asociación de acción para agregar una asociación de acción.El calificador N queda asignado ahora a la acción asociada.
Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada
para seleccionar la acción Ventilate.Se ha configurado una ventilación de humos sencilla.
POU con dos calificadores N

Problema: En el sistema queda una cantidad residual de humo. Por lo tanto, la ventilación de humos debe funcionar 5 segundos más.
La POU resuelve el tiempo de funcionamiento posterior mediante un paso adicional. Cuando el sensor de humo detecta humo, se activa el paso con la acción Ventilate. El paso llama a la acción con el calificador N.
Cuando el sensor ya no detecta humo, el controlador cambia al paso NoSmokeMore. La ventilación de humos sigue funcionando. La transición que sigue al paso evalúa la variable de paso implícita con la condición NoSmokeMore.t > t#5s. Esta variable contiene el tiempo durante el cual el paso ha estado activo.
Después de 5 segundos, la condición se cumple y el paso pasa a estar inactivo. Con ello finaliza también la ejecución de la acción Ventilate.
Cree una POU en SFC y cambie el nombre a
Advanced_N_N. Para obtener más información, consulte: Creación de una POU en SFCEn la parte de declaración de la POU creada, cree las siguientes variables booleanas:
PROGRAM Advanced_N_N VAR bSmokeDetected: BOOL; bVent: BOOL; END_VARModifique la transición del paso inicial: haga clic en la transición y utilice el Asistente de entrada
para asignar la variable bSmokeDetected.Después de la transición del paso inicial, agregue un paso denominado
SmokeInSystem.Modifique la transición del paso
SmokeInSystem: Haga clic en la transición y asigne la variablebSmokeDetectedmediante el Asistente de entrada
. Agregue NOT:NOT bSmokeDetectedEn el árbol de dispositivos, haga clic con el botón derecho en la POU recién creada
Advanced_N_Ny seleccione el comando Agregar objeto → Acción.... Asigne el nombreVentilatey ajuste la opción Texto Estructurado (ST) para el lenguaje de implementación.Inserte allí el código siguiente:
bvent := NOT bvent;
Haga clic en el paso
SmokeInSysteme inserte la asociación de acción mediante el menú SFC → Insertar asociación de acción.El calificador N queda asignado ahora a la acción asociada.
Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada
para seleccionar la acción Ventilate.Agregue un paso denominado
NoSmokeMoredespués de la transición del pasoSmokeInSystemy agregue una transición con la condiciónNoSmokeMore.t > t#5s.Haga clic en el paso
NoSmokeMorey utilice el comando SFC → Insertar asociación de acción para agregar una asociación de acción.El calificador N queda asignado ahora a la acción asociada.
Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada
para seleccionar la acción Ventilate.La ventilación de humos se detiene después de
5segundos.
POU con los calificadores S y R

Problema: En el sistema queda una cantidad residual de humo. Por lo tanto, la ventilación de humos debe funcionar 5 segundos más.
También aquí el controlador activa inmediatamente la ventilación de humos. El paso SmokeInSystem llama a la acción Ventilate con el calificador S. Sin embargo, durante el paso NoSmokeMore, la ventilación de humos sigue funcionando, porque la acción está almacenada con el calificador S y solo finaliza con R.
La POU resuelve el tiempo de funcionamiento posterior con un paso NoSmokeMore adicional. Después de 5 segundos, la condición se cumple y el paso pasa a estar inactivo.
El paso adicional After_5sec llama a la acción Ventilate con el calificador R. El paso restablece la acción y, por lo tanto, detiene la ventilación de humos después de 5 segundos.
Cree una POU en SFC y cambie el nombre a
Advanced_S_R. Para obtener más información, consulte: Creación de una POU en SFCEn la parte de declaración de la POU creada, cree las siguientes variables booleanas:
PROGRAM Advanced_S_R VAR bSmokeDetected: BOOL; bVent: BOOL; END_VARModifique la transición del paso inicial: haga clic en la transición y utilice el Asistente de entrada
para asignar la variable bSmokeDetected.Después de la transición del paso inicial, agregue un paso denominado
SmokeInSystem.Modifique la transición del paso
SmokeInSystem: Haga clic en la transición y asigne la variablebSmokeDetectedmediante el Asistente de entrada
. Agregue NOT:NOT bSmokeDetectedEn el árbol de dispositivos, haga clic con el botón derecho en la POU recién creada
Advanced_S_Ry seleccione el comando Agregar objeto → Acción.... Asigne el nombreVentilatey ajuste la opción Texto Estructurado (ST) para el lenguaje de implementación.Inserte allí el código siguiente:
bvent := NOT bvent;
Haga clic en el paso
SmokeInSysteme inserte la asociación de acción mediante el menú SFC → Insertar asociación de acción.Haga clic en el campo izquierdo de la asociación y utilice el Asistente de entrada
para seleccionar el calificador S.Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada
para seleccionar la acción Ventilate.Se ha configurado una ventilación de humos sencilla.
5 segundosAgregue un paso denominado
NoSmokeMoredespués de la transición del pasoSmokeInSystemy agregue una transición con la condiciónNoSmokeMore.t > t#5s.Agregue otro paso denominado
After_5secdespués de la transición del pasoNoSmokeMorey agregue una transición con la condiciónTRUE.Haga clic en el paso
After_5secy utilice el comando SFC → Insertar asociación de acción para agregar una asociación de acción.Haga clic en el campo izquierdo de la asociación y utilice el Asistente de entrada
para seleccionar el calificador R.Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada
para seleccionar la acción Ventilate.La ventilación de humos se detiene.