Un programa es un objeto POU que devuelve uno o varios valores durante la operación. Se conservan todos los valores desde la última vez en que se ejecutó el programa hasta la siguiente. Sin embargo, no hay instancias separadas de programas, a diferencia de los bloques de funciones. Cuando se llama a un bloque de funciones, sólo se modifican los valores en la instancia en cuestión del bloque de funciones. Las modificaciones sólo entran en vigor cuando se vuelve a llamar a la instancia. Las modificaciones de valor de programa se conservarán hasta que se vuelva a llamar al programa, incluso si se llama desde otra POU.
Para añadir un programa a una aplicación existente, seleccione el nodo de la aplicación en el árbol Aplicaciones, haga clic en el botón de signo más de color verde y ejecute el comando POU.... Como alternativa, haga clic con el botón derecho en el nodo Aplicación y ejecute el comando Agregar objeto > POU en el menú contextual. Para añadir una POU independiente de la aplicación, seleccione el nodo Global del árbol Aplicaciones y ejecute los mismos comandos.
En el cuadro de diálogo Añadir POU, seleccione la opción Programa, especifique un nombre para el programa y seleccione el lenguaje de implementación. Haga clic en Abrir para confirmar. Se abrirá la vista de editor del nuevo programa, en la que podrá empezar a editar el programa.
Sintaxis:
PROGRAM <nombre de programa>
Va seguido de las declaraciones de variables de entrada, salida y las variables de programa. Las variables de acceso están también disponibles como opciones.
Ejemplo de un programa
Otra POU puede llamar a un programa. Sin embargo, no se permite una llamada de programa en una función. No hay instancias de programas.
Si una POU ha llamado un programa y los valores del programa se han modificado, estas modificaciones se conservarán hasta que se vuelva a llamar el programa. Esto se aplica aunque se realice la llamada desde otra POU. Tenga en cuenta que esto es diferente de la llamada a un bloque de funciones. Cuando se llama un bloque de funciones, solo se modifican los valores en la instancia en cuestión del bloque de funciones. Las modificaciones solo entran en vigor cuando se vuelve a llamar la instancia.
Con el fin de establecer parámetros de entrada o salida en el transcurso de una llamada de programa, en los editores de texto de lenguaje (por ejemplo, ST), asigne valores a los parámetros después del nombre de programa entre paréntesis. Para los parámetros de entrada, utilice := para esta asignación, como con la inicialización de variables en la posición de declaración. Para los parámetros de salida, utilice =>. Consulte el ejemplo siguiente.
Si el programa se inserta mediante Accesibilidad utilizando la opción Insertar con argumentos en la vista de implementación de un editor de lenguaje de texto, se visualizará automáticamente según esta sintaxis con todos los parámetros, aunque no es necesario que asigne estos parámetros.
Ejemplo para llamadas de programa
Programa en IL:
CAL PRGexample (
in_var:= 33 )
LD PRGexample.out_var
ST erg
Ejemplo con asignación de parámetros (Accesibilidad utilizando la opción Insertar con argumentos):
Programa en IL con argumentos:
CAL PRGexample (
in_var:= 33 ,
out_var=> erg )
Ejemplo en ST
PRGexample(in_var:= 33);
erg := PRGexample.out_var;
Ejemplo con asignación de parámetros (Accesibilidad utilizando la opción Insertar con argumentos, como se ha descrito anteriormente):
PRGexample (in_var:=33, out_var=>erg );
Ejemplo en FBD
Programa en FBD: