Las Funciones (FUN) son un tipo de POU que una vez ejecutadas proporcionan un dato como resultado y uno o varios valores de salida de clase VAR_OUTPUT y VAR_IN_OUT. Si se especifica el tipo VOID la función no devuelve ningún resultado.
También tienen acceso a las variables globales a través de VAR_EXTERNAL, VAR_EXTERNAL_RETAIN o VAR_EXTERNAL_CONSTANT.
Las funciones no contienen ninguna información de estado, es decir, si se llama a una función con los mismos valores de entrada de las clases VAR_INPUT, VAR_IN_OUT y VAR_EXTERNAL siempre va a proporcionar los mismos valores de salida para las clases VAR_OUTPUT, VAR_IN_OUT y VAR_EXTERNAL.
Control FPWIN Pro7 proporciona dos tipos de funciones:
Instrucciones de las librerías del sistema
IEC standard library
FP library
FP tool library
FP pulsed library
Funciones definidas por el usuario
También se pueden programar funciones de usuario y almacenarlas en una librería de usuario. Las nuevas funciones estarán disponibles en todos los proyectos que tengan instalada la librería de usuario.
Las funciones se pueden escribir en los siguientes lenguajes de programación:
Diagrama de Contactos (LD) o Diagrama de Bloques de Funciones (FBD)
Texto Estructurado (ST)
Lista de Instrucciones (IL)
Las Funciones no pueden ser asignadas directamente a una tarea ya que tienen que ser llamadas por un programa, otra función o un bloque de función.
Una función no puede ser llamada de forma recursiva.
FUN1() -> FUN2() -> FUN3() -> FUN1()
no está permitida.
FUN1 (FUN2 (FUN3 (FUN4 (FUN5 (x)))))
.
Número máximo de llamadas a función anidadas |
Tipos de PLCs |
---|---|
16 |
FP7 |
10 |
Nuevos tipos de PLC de 16 bits, como FP0H, FP_XH, FP0R |
15 |
Tipos de PLC de 16 bits antiguos |
Excepto para las funciones ST o IL que no tienen parámetros formales, los resultados y las salidas de las funciones se pueden dejar sin conectar.
Cuando se llama a una función con parámetros formales en el editor ST, se cumplen las siguientes condiciones:
Para los argumentos con parámetros formales, el orden de los parámetros NO es importante.
Con las funciones de usuario se puede omitir la entrada y la salida EN. Si se omite EN se considera que está a TRUE.