Problemas De Asignación De Memoria De La Pila De Datos Locales En Cpus Pequeñas - Siemens SIMATIC S7-SCL V5.3 Manual

Tabla de contenido

Publicidad

Consejos y trucos
Este ejemplo requiere menos memoria y menos tiempo de ejecución si se programa de la
siguiente forma:
VAR_TEMP
tmp : STRUCT
END_STRUCT;
END_VAR
tmp := DB100.feld[i];
DB100.feld[i].value := tmp.valor1 * tmp.valor2 / tmp.valor3;
Nota
Con VAR_TEMP se almacenan las variables en la pila de la CPU. En las CPUs pequeñas, esto
puede provocar un desbordamiento de la pila. Por consiguiente, se recomienda no abusar de
variables temporales.
Problemas de asignación de memoria de la pila de datos locales en CPUs pequeñas
Los problemas de asignación de memoria de la pila de datos locales se deben al reducido
tamaño de la pila de las CPU pequeñas. En la mayoría de los casos, evitará muchos
problemas si sigue estas indicaciones:
• No abuse de las variables temporales (apartado VAR_TEMP o VAR).
• No declare ninguna variable de un tipo de datos superior y reduzca el número de
variables de un tipo de datos simple a un mínimo absoluto.
• Utilice variables estáticas:
cuando programe un FB puede utilizar la sección VAR en lugar de VAR_TEMP.
-
-
cuando programe un FB o un OB tiene que evitar los bloques de datos globales y
las marcas.
• Evite las expresiones largas. Al ejecutar las expresiones largas, el compilador guarda
resultados intermedios en la pila. Dependiendo del tipo y de la cantidad de resultados
intermedios se puede exceder el tamaño de pila disponible.
Remedio:
Fraccione la expresión en partes más pequeñas y asigne los resultados intermedios a
variables explícitas.
16-2
value
: REAL;
valor1 : REAL;
valor2 : REAL;
valor3 : REAL;
S7-SCL V5.3 para S7-300/400
A5E00324652-01

Publicidad

Tabla de contenido
loading

Tabla de contenido