Skip to main content

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

tabla 2. Calificadores disponibles

N

No almacenado

La acción está activa mientras lo esté el paso.

R

Restablecimiento prioritario

La acción ejecutada con S, SD, DS o SL se desactiva y, por lo tanto, deja de ejecutarse.

S

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.

L

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.

D

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.

P

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.

SD

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.

DS

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.

SL

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

_c4_img_sfc-qualifizierer-simple.png

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.

procedimiento. Control de la ventilación de humos
  1. 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 SFC

  2. En la parte de declaración de la POU creada, cree las siguientes variables booleanas:

    PROGRAM Simple_N
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modifique la transición del paso inicial: haga clic en la transición y utilice el Asistente de entrada _cds_icon_button_threedots.png para asignar la variable bSmokeDetected.

  4. Después de la transición del paso inicial, agregue un paso denominado SmokeInSystem.

  5. Modifique la transición del paso SmokeInSystem: haga clic en la transición y utilice el Asistente de entrada _cds_icon_button_threedots.png para asignar la variable bSmokeDetected. Agregue NOT: NOT bSmokeDetected

  6. En el árbol de dispositivos, haga clic con el botón derecho en la POU recién creada Simple_N y seleccione el comando Agregar objeto → Acción.... Asigne el nombre Ventilate y ajuste la opción Texto Estructurado (ST) para el lenguaje de implementación.

  7. Inserte allí el código siguiente:

    // The alternation simulates the running ventilator.  
    bvent := NOT bvent;
  8. Haga clic en el paso SmokeInSystem y 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.

  9. Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada _cds_icon_button_threedots.png para seleccionar la acción Ventilate.

    Se ha configurado una ventilación de humos sencilla.

POU con dos calificadores N

_c4_img_sfc-qualifizierer-advanced_2_N.png

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.

procedimiento. Control de la ventilación de humos
  1. 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 SFC

  2. En la parte de declaración de la POU creada, cree las siguientes variables booleanas:

    PROGRAM Advanced_N_N
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modifique la transición del paso inicial: haga clic en la transición y utilice el Asistente de entrada _cds_icon_button_threedots.png para asignar la variable bSmokeDetected.

  4. Después de la transición del paso inicial, agregue un paso denominado SmokeInSystem.

  5. Modifique la transición del paso SmokeInSystem: Haga clic en la transición y asigne la variable bSmokeDetected mediante el Asistente de entrada _cds_icon_button_threedots.png. Agregue NOT: NOT bSmokeDetected

  6. En el árbol de dispositivos, haga clic con el botón derecho en la POU recién creada Advanced_N_N y seleccione el comando Agregar objeto → Acción.... Asigne el nombre Ventilate y ajuste la opción Texto Estructurado (ST) para el lenguaje de implementación.

  7. Inserte allí el código siguiente:

    bvent := NOT bvent;
  8. Haga clic en el paso SmokeInSystem e 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.

  9. Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada _cds_icon_button_threedots.png para seleccionar la acción Ventilate.

  10. Agregue un paso denominado NoSmokeMore después de la transición del paso SmokeInSystem y agregue una transición con la condición NoSmokeMore.t > t#5s.

  11. Haga clic en el paso NoSmokeMore y 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.

  12. Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada _cds_icon_button_threedots.png para seleccionar la acción Ventilate.

    La ventilación de humos se detiene después de 5 segundos.

POU con los calificadores S y R

_c4_img_sfc-qualifizierer-advanced.png

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.

procedimiento. Inicio de la ventilación de humos
  1. 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 SFC

  2. En la parte de declaración de la POU creada, cree las siguientes variables booleanas:

    PROGRAM Advanced_S_R
    VAR	
        bSmokeDetected: BOOL;
        bVent: BOOL;
    END_VAR
  3. Modifique la transición del paso inicial: haga clic en la transición y utilice el Asistente de entrada _cds_icon_button_threedots.png para asignar la variable bSmokeDetected.

  4. Después de la transición del paso inicial, agregue un paso denominado SmokeInSystem.

  5. Modifique la transición del paso SmokeInSystem: Haga clic en la transición y asigne la variable bSmokeDetected mediante el Asistente de entrada _cds_icon_button_threedots.png. Agregue NOT: NOT bSmokeDetected

  6. En el árbol de dispositivos, haga clic con el botón derecho en la POU recién creada Advanced_S_R y seleccione el comando Agregar objeto → Acción.... Asigne el nombre Ventilate y ajuste la opción Texto Estructurado (ST) para el lenguaje de implementación.

  7. Inserte allí el código siguiente:

    bvent := NOT bvent;
  8. Haga clic en el paso SmokeInSystem e inserte la asociación de acción mediante el menú SFC → Insertar asociación de acción.

  9. Haga clic en el campo izquierdo de la asociación y utilice el Asistente de entrada _cds_icon_button_threedots.png para seleccionar el calificador S.

  10. Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada _cds_icon_button_threedots.png para seleccionar la acción Ventilate.

    Se ha configurado una ventilación de humos sencilla.

procedimiento. Detener la ventilación de humos después de 5 segundos
  1. Agregue un paso denominado NoSmokeMore después de la transición del paso SmokeInSystem y agregue una transición con la condición NoSmokeMore.t > t#5s.

  2. Agregue otro paso denominado After_5sec después de la transición del paso NoSmokeMore y agregue una transición con la condición TRUE.

  3. Haga clic en el paso After_5sec y utilice el comando SFC → Insertar asociación de acción para agregar una asociación de acción.

  4. Haga clic en el campo izquierdo de la asociación y utilice el Asistente de entrada _cds_icon_button_threedots.png para seleccionar el calificador R.

  5. Haga clic en el campo derecho de la asociación y utilice el Asistente de entrada _cds_icon_button_threedots.png para seleccionar la acción Ventilate.

    La ventilación de humos se detiene.