Multiinstancias en la
tabla de declaración de variables
Utilización de multiinstancias
Es posible que, debido a los datos característicos (p.ej.
capacidad de memoria) de las CPUS S7 utilizadas, sólo pueda o desee utilizar
una cantidad limitada de DBs para los datos de instancia. Si en un FB de su
programa de usuario se invocan otros bloques de función ya existentes
(jerarquía de llamada de FBs), éstos últimos se pueden llamar sin DBs de
instancia propios (es decir, adicionales). Para ello existe la siguiente
solución:
· Incorpore
los FBs a llamar en forma de variables estáticas en la declaración de
variables del FB invocante.
· En este
último FB se llaman otros bloques de función sin DBs de instancia propios (es
decir, adicionales).
· Ello permite
concentrar los datos de instancia en un solo bloque de datos de instancia,
pudiéndose aprovechar mejor el número disponible de DBs.
El ejemplo siguiente muestra la
solución descrita:
El FB 2 y el
FB 3 aprovechan el DB de instancia del FB 1 que es el bloque de
función invocante.
|
 |
Es preciso "comunicarle" al bloque de función
invocante qué instancias se han de llamar, así como el tipo (de FB) de dichas
instancias. Las tareas se deben efectuar en el área de declaración del FB
invocante. El FB a utilizar debe tener por lo menos una variable o un parámetro
del área de datos (es decir, que no sea VAR_TEMP). No utilice bloques de datos
multiinstancia si espera realizar cambios online con la CPU en marcha. Para
evitar que el proceso automatizado se vea perturbado por la carga del programa
modificado es necesario utilizar bloques de datos de instancia.
Reglas para declarar multiinstancias
1) Las multiinstancias sólo se pueden declarar en bloques de función creados a
partir de la versión 2 de STEP 7 (v. el atributo de bloque en las propiedades
del FB).
2) Para poder declarar las multiinstancias, el bloque de función se deberá
haber creado como FB apto para multiinstancias (preajuste a partir de la
versión x.x de STEP 7; deseleccionable en el editor mediante el comando de
menú Herramientas >Preferencias).
3) Al bloque de función en el que se declara una multiinstancia debe asociarse
un DB de instancia.
4) Una multiinstancia sólo se puede declarar como variable estática (tipo de
declaración "stat").
|