Bloques de función (FB)
Los bloques de función son bloques programables "con memoria".
Dispone de un bloque de datos asignado como memoria (bloque de datos de
instancia). Los parámetros que se transfieren al FB, así como las variables
estáticas, se memorizan en dicho DB de instancia, mientras que las variables
temporales se memorizan en la pila de datos locales. Los datos memorizados en el
DB de instancia no se pierden al concluir el tratamiento del FB. Los datos
memorizados en la pila de datos locales se pierden al concluir el tratamiento
del FB.
Campo de aplicación
Un FB contiene un programa que se ejecuta siempre cuando el FB es llamado por
otro bloque lógico. Los bloques de función simplifican la programación de
funciones complejas de uso frecuente.
FBs y DBs de instancia
A cada llamada de un bloque de función que transfiere parámetros está
asignado un bloque de datos de instancia. Mediante la llamada de varias
instancias de un FB es posible controlar varios equipos con un FB. Un FB para un
tipo de motor puede controlar, por ejemplo, diferentes motores, utilizando datos
de instancia diferentes para los diferentes motores. Los datos para cada motor
(tales como número de revoluciones, rampas, tiempo de funcionamiento acumulado,
etc.) se pueden memorizar en uno o varios DBs de instancia. La figura siguiente
muestra los parámetros formales de un FB que utiliza los parámetros actuales.
Los parámetros formales están memorizados en el DB de instancia.

Variable del tipo de datos FB
Si el programa de usuario está estructurado de tal manera que en un FB se
puedan llamar bloques de función ya existentes, los FBs a llamar se pueden
incluir como variables estáticas del tipo de datos FB en la tabla de
declaración de variables del FB invocante. Esto permite anidar las variables y
concentrar los datos en un bloque de datos de instancia (multiinstancia).
Asignación de parámetros actuales a parámetros formales
En general, en STEP 7 no es necesario asignar parámetros actuales al
parámetro formal de un FB. No obstante, hay ciertas excepciones. Los
parámetros actuales se han de asignar:
· A los parámetros de entrada/salida de un tipo de datos compuestos (p.ej.
STRING, ARRAY o DATE_AND_TIME)
· A todos los tipos de parámetros (p.ej. TIMER, COUNTER o POINTER) STEP 7
asigna los parámetros actuales a los parámetros formales de un FB de la
siguiente manera; si se indican parámetros actuales en la instrucción de
llamada: Las operaciones del FB utilizan los parámetros actuales suministrados,
y si en la instrucción de llamada no se indica ningún parámetro actual: Las
operaciones del FB utilizan los valores memorizados en el DB de instancia.
Asignación de valores iniciales a parámetros formales
En el área de declaración del FB se pueden asignar valores iniciales a los
parámetros formales. Estos datos se incluyen en el DB de instancia asignado al
FB. Si en la instrucción de llamada no se asignan parámetros actuales a los
parámetros formales, entonces STEP 7 utiliza los valores memorizados en el DB
de instancia. Estos datos pueden ser valores iniciales, que han sido indicados
en la tabla de declaración de variables de un FB. La tabla siguiente muestra
qué variables se pueden asignar a un valor inicial. Como los datos temporales
no se memorizan tras el tratamiento del bloque, entonces no se les puede asignar
valores.
Variables |
Tipo de datos simples |
Tipo de datos compuestos |
Entrada |
Valor inicial admisible |
Valor inicial admisible |
Salida |
Valor inicial admisible |
Valor inicial admisible |
Entrada/Salida |
Valor inicial admisible |
- |
Estáticas |
Valor inicial admisible |
Valor inicial admisible |
Temporales |
- |
- |
|