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").