Puede definir acciones y asignarlas a bloques de funciones y programas. Una acción es una implementación adicional. Se puede crear en un lenguaje diferente al de la implementación básica. A cada acción se le da un nombre.
Las acciones trabajan con los datos del bloque de funciones o programa al cual pertenecen. Las acciones utilizan variables de entrada/salida y variables locales definidas y no contienen sus propias declaraciones.
Ejemplo de una acción de un bloque de funciones
En la ilustración siguiente se muestra una acción en FB:
En este ejemplo, cada llamada del bloque de funciones FB1 incrementa o reduce la variable de salida out, en función del valor de la variable de entrada in. Si se llama la acción Reset del bloque de funciones, la variable de salida out se establece en 0. En ambos casos se escribe la misma variable out.
Para añadir una acción, seleccione el nodo correspondiente del programa o bloque de funciones en el árbol Aplicaciones o en el nodo Global del árbol Aplicaciones, haga clic en el signo más de color verde y ejecute el comando Acción... Como alternativa, haga clic con el botón derecho en el nodo del programa o bloque de funciones y ejecute el comando Agregar objeto > Acción. En el cuadro de diálogo Agregar acción, defina el Nombre de la acción y el Lenguaje de implementación deseado.
EcoStruxure Machine Expert facilita la programación orientada a objetos utilizando la herencia dentro de los bloques de funciones. Al ejecutar Agregar objeto sobre un bloque de funciones que hereda de otro, los elementos Acción, Método, Propiedad y Transición utilizados en el bloque de funciones base se enumeran para seleccionarlos.
oLos elementos Acción, Método, Propiedad y Transición con Modificador de acceso = PUBLIC, PROTECTED e INTERNAL definidos en el bloque de funciones base están disponibles para seleccionarlos. Puede adaptar la definición para el objeto heredado. En el objeto heredado, se asigna el mismo Modificador de acceso que a los elementos origen.
oLos elementos Acción, Método, Propiedad y Transición con Modificador de acceso = PRIVATE no se pueden seleccionar porque el acceso está restringido al bloque de funciones base.
Sintaxis
<Program_name>.<Action_name>
o
<Instance_name>.<Action_name>
Tenga en cuenta la notación en FBD (consulte el ejemplo siguiente).
Si es necesario llamar a la acción desde su propio bloque, que es el programa o el bloque de funciones al cual pertenece, es suficiente utilizar el nombre de la acción.
En esta sección se ofrecen ejemplos para llamar a la acción que se describe más arriba desde otra POU.
Declaración para todos los ejemplos:
PROGRAM PLC_PRG
VAR
Inst : Counter;
END_VAR
Llamada de la acción Reset en otra POU, que está programada en IL:
CAL Inst.Reset(In := FALSE)
LD Inst.out
ST ERG
Llamada de la acción Reset en otra POU, que está programada en ST:
Inst.Reset(In := FALSE);
Erg := Inst.out;
Llamada de la acción Reset en otra POU, que está programada en FBD:
Acción en FBD
NOTA: El estándar IEC solo reconoce las acciones del diagrama funcional secuencial (SFC). Estas acciones constituyen una parte esencial que contiene las instrucciones que se procesarán en pasos concretos del diagrama.