Una aplicación o biblioteca está organizada por tipos complejos como programas, bloques de funciones, listas de variables globales, métodos, acciones, funciones, estructuras, etc. Dentro de cada uno de estos tipos se pueden definir variables.
Cuando se llama a un tipo complejo como una función, método, acción, propiedad Get, propiedad Set, o una transición, se necesita memoria en la pila para ejecutar el método. La información del tamaño de la pila se puede utilizar para identificar el tipo complejo que está usando demasiada memoria de la pila.
Para un tipo complejo como una función o un método, se resumen los tamaños de las variables. Cuando se llama al tipo complejo, el tamaño se asigna en la parte superior de la pila y los valores de entrada se copian en la memoria asignada. Durante la ejecución del código de la función o método, se utilizan estos valores de memoria.
Ejemplo
Ejemplo de cálculo de tamaño de pila:
FUNCTION_BLOCK FB_XXX
VAR
fbComplex: FB_Test; // 20 byte
END_VAR
// method call of FB_XXX
Meth1(TRUE);
METHOD Meth1
VAR_INPUT
xTest1: BOOL;
END_VARVAR
iTest2: INT;
END_VAR
METHOD METH2
VAR_INPUT
fbComp: FB_XXX;
END_VAR
Resultados de tamaño de pila
Stack Size (METH1) = 8
Stack Size (METH2) = 32