Objeto: bloque de funciones
Un bloque de funciones es una POU que produce uno o más valores cuando se ejecuta.
El objeto se agrega a la aplicación o al proyecto haciendo clic en POU vista, las POU del bloque de función tienen la (PENSIÓN COMPLETA) sufijo.
. En el árbol de dispositivos o en elSiempre llama a un bloque de funciones por medio de una instancia que es una copia del bloque de funciones.
El editor de un bloque de funciones consta de la parte de declaración y la parte de implementación.
Los valores de las variables de salida y las variables internas permanecen sin cambios después de la ejecución hasta la próxima ejecución. Esto significa que el bloque de funciones no necesariamente devuelve los mismos valores de salida para varias llamadas con las mismas variables de entrada.
Además de la funcionalidad descrita en IEC 61131-3, también puede utilizar bloques de función en CODESYS para las siguientes funcionalidades de la programación orientada a objetos:
Extensión de un bloque de funciones
Implementación de interfaces
La línea superior de la parte de la declaración contiene la siguiente declaración:
FUNCTION_BLOCK <access specifier> <function block> \| EXTENDS <function block> \| IMPLEMENTS <comma-separated list of interfaces>
Llamar a un bloque de funciones
La llamada siempre se realiza mediante una instancia del bloque de funciones. Cuando se llama a un bloque de función, solo cambian los valores de la instancia respectiva.
Declaración de la instancia:
<instance> : <function block>;
Accede a una variable del bloque de función en la parte de implementación de la siguiente manera:
<instance> . <variable>
Importante
Tenga en cuenta lo siguiente:
Solo puede acceder a las variables de entrada y salida de un bloque de funciones desde fuera de la instancia del bloque de funciones, no a las variables internas.
El acceso a una instancia de bloque de funciones está restringido a la POU en la que se declara la instancia, a menos que haya declarado la instancia globalmente.
Puede asignar los valores deseados a las variables del bloque de funciones cuando llama a la instancia.
Acceso a las variables del bloque de funciones:
El bloque de funciones FB1
tiene la variable de entrada iVar1
de tipo INT
y la variable de salida out1
. A continuación, la variable iVar1
se llama desde el programa Prog
.
PROGRAM Prog VAR inst1 : FB1; END_VAR inst1.iVar1 := 33; (* FB1 is called and the value 33 is assigned to the variable iVar1 *) inst1(); (* FB1 is called, that's necessary for the following access to the output variable *) ires := inst1.out1 (* the output variable out1 of the FB1 is read *)
En DCL:

Asignación de valores de variables al llamar:
En los lenguajes textuales IL y ST, puede asignar valores directamente a las variables de entrada y/o salida cuando llama al bloque de función.
Se asigna un valor a una variable de entrada con :=
.
Se asigna un valor a una variable de salida con =>
.
la instancia CMD_TMR
del bloque de función del temporizador se llama con asignaciones para las variables de entrada IN
y PT
. Entonces la variable de salida Q
del temporizador se asigna a la variable A
.
PROGRAM PLC_PRG VAR CMD_TMR : TOF; END_VAR CMD_TMR(IN := %IX5.1, PT := T#100MS); A := CMD_TMR.Q;
Sugerencia
Cuando inserta una instancia de bloque de función por medio del Asistente de entrada y seleccione el Insertar con argumentos opción en el Asistente de entrada diálogo, CODESYS inserta la llamada con todas las variables de entrada y salida. Entonces solo tiene que insertar la asignación de valor deseada. En el ejemplo anterior, CODESYS inserta la llamada de la siguiente manera: CMD_TMR (IN:= ,PT:= , Q=> )
.
Sugerencia
Puedes usar el 'está conectado'
atributo en una variable local para determinar en el momento de la llamada en la instancia del bloque de funciones si una entrada específica recibe o no una asignación externa.