Skip to main content

Elemento SFC: Acción

Símbolo: _cds_icon_sfc_action.png

Una acción contiene una o varias sentencias en uno de los lenguajes de programación disponibles. Puede asignar una acción a un paso o a una transición.

Las acciones que llama en los pasos SFC se deben crear como POU en el proyecto.

_cds_img_sfc_element_action.png

Excepción: En el caso de acciones IEC que agrega a un paso como asociación de acción, puede especificar una variable booleana en lugar de un objeto de acción. El valor de esta variable cambia entre FALSE y TRUE en cada ejecución de la acción.

Importante

Debe definir nombres de paso únicos dentro del ámbito de la POU superior. Una acción escrita en SFC no debe contener ningún paso con el mismo nombre que el paso al que está asignada.

Existen acciones IEC y acciones de paso.

Acción IEC

Las acciones IEC son acciones conformes a la norma IEC 61131-3. Se ejecutan según su calificador.

Las acciones IEC se ejecutan dos veces: una vez cuando el paso se activa y una segunda vez cuando se desactiva. Si asigna varias acciones a un paso, la lista de acciones se procesa de arriba a abajo.

Cada cuadro de acción contiene el calificador en la primera columna y el nombre de la acción en la segunda columna. Ambos se pueden editar directamente.

_cds_img_sfc_iec_action.png

Importante

Si la misma variable booleana global está asociada como acción IEC en distintas POU SFC, pueden producirse efectos de sobrescritura no deseados.

A diferencia de las acciones de paso, las acciones IEC permiten utilizar distintos calificadores.

Otra diferencia respecto a las acciones de paso es que cada acción IEC dispone de una bandera de control. Esto garantiza que la acción solo se ejecute una única vez en cada momento, aunque otro paso la llame simultáneamente. Esto no se puede garantizar para las acciones de paso.

Con el comando Insertar asociación de acción se asigna una acción IEC a un paso.

Acción de paso

Las acciones de paso son acciones que puede utilizar para ampliar la norma IEC.

  • Acción de entrada:

    La acción se realiza una vez después de que se haya activado el paso y antes de que se ejecute la acción principal.

    Mediante la propiedad del elemento Acción de entrada puede hacer referencia, desde un paso individual, a una acción nueva o a una ya creada bajo el objeto SFC (2).

    Puede utilizar el comando Agregar acción de entrada para agregar una nueva acción al paso. La acción de entrada se muestra con una E en la esquina inferior izquierda del cuadro de paso.

  • Acción principal:

    Esta acción se ejecuta después de que se haya activado el paso y de que se haya ejecutado la acción de entrada, si la hay. Sin embargo, a diferencia de una acción IEC, no se ejecuta una segunda vez cuando se desactiva el paso. Tampoco se pueden utilizar calificadores aquí.

    • (1) Puede utilizar la propiedad del elemento Acción principal para agregar una acción a un paso existente.

    • Puede hacer doble clic en el elemento de paso para crear y agregar una nueva acción.

    Una acción principal se muestra con un triángulo relleno en la esquina superior derecha del cuadro de paso.

  • Acción de salida:

    Esta acción se ejecuta una vez después de que se haya desactivado el paso. Sin embargo, tenga en cuenta que la ejecución no tiene lugar en el mismo ciclo, sino solo al comienzo del siguiente.

    Puede referenciar desde un paso una acción nueva o una ya creada bajo el objeto SFC mediante la propiedad de elemento Acción de salida (3).

    Puede utilizar el comando Agregar acción de salida para agregar una acción de salida al paso.

    La acción de salida se muestra con una X en la esquina inferior derecha del cuadro de paso.

_cds_img_sfc_non_iec_actions.png

Diferencia entre acciones IEC y acciones de paso

La diferencia principal entre las acciones IEC con calificador N y las acciones de paso es que la acción IEC se ejecuta siempre dos veces: una vez cuando el paso se activa y una segunda vez cuando se desactiva. Vea el ejemplo siguiente:

ejemplo 8. Ejemplo
_cds_img_sfc_diff_iecaction_stepaction.png

Para el paso AS1, ha agregado la acción Action_AS1 una vez como acción de paso (izquierda) y una vez como acción IEC con calificador N. Puesto que en ambos casos se conmutan dos transiciones, en cada caso se necesitan 2 ciclos del PLC hasta que se vuelve a alcanzar el paso inicial. Suponga que una variable de contador iCounter se inicializa en 0 y se incrementa en la acción Action_AS1. Tras reactivar el paso Init, iCounter tiene el valor 1 en el ejemplo de la izquierda. En el ejemplo de la derecha, sin embargo, tiene el valor 2, porque la acción IEC se ejecuta una segunda vez debido a la desactivación de AS1.



Otra diferencia es que las acciones de paso se pueden incrustar. En este caso, solo se puede acceder a ellas desde el paso afectado. Si copia este paso, se crean automáticamente nuevos objetos de acción y se copia el código de implementación de cada uno. Usted define si una acción de paso se incrusta o no, bien al insertar la primera acción en el paso o bien posteriormente mediante la propiedad del elemento Duplicar o copiar. En general, este comportamiento también se puede predefinir en las opciones de SFC.

Para las acciones IEC también se puede especificar una variable booleana en lugar de un objeto de acción. Esto no es posible para las acciones de paso.