Ejemplo
.
.
.
.
.
.
.
.
.
.
.
.
Los circuitos del esquema de contactos arriba representados son elementos del programa de un
bloque de función escrito por el usuario. En este bloque de función se abre DB10 y se activa el
MCR. Si se ejecuta la llamada absoluta al FB11 sucede lo siguiente:
Se memorizan la dirección de retorno del bloque de función que efectúa la llamada, los datos
seleccionados para el DB10 y los datos para el bloque de datos de instancia perteneciente al
bloque de función que efectúa la llamada. El bit MA que fue puesto a "1" por la función MCRA se
desplaza a la pila BSTACK y seguidamente es puesto a "0" para el bloque FB11 llamado. La
ejecución del programa continúa en FB11. Si el FB11 necesita el MCR, hay que volver a activar el
MCR en el bloque de función. El estado del RLO tiene que almacenarse a través de la operación --
-(SAVE) en el bit RB para poder evaluar los posibles errores en el FB que efectúa la llamada. Una
vez finalizada la ejecución del FB11, el programa vuelve al bloque de función que efectúa la
llamada. El bit MA se restablece y el bloque de datos de instancia perteneciente al bloque de
función escrito por el usuario se vuelve a convertir en el DB actual. Si el FB11 es ejecutado
correctamente, ENO es 1 y, por tanto, A 4.0 es 1.
Nota
El número del bloque de datos abierto anteriormente se pierde al llamar FB/SFB. Habrá que volver
a abrir el DB que se necesite.
Esquema de contactos (KOP) para S7-300 y S7-400
Manual de referencia, 04/2017, A5E41654719-AA
DB10
OPN
MCRA
DB11
FB11
A 4.0
EN ENO
DB10
OPN
Operaciones de control del programa
10.3 CALL_FB
Llamar a un FB desde un cuadro
119