En SIMATIC PCS 7 y STEP 7, cuando la compilación o la carga de diagramas CFC falla con un error que indica que los requerimientos de datos locales para el OB35 superan la memoria de pila configurada, se debe incrementar la asignación de datos locales temporales (pila L) de la CPU para la Clase de prioridad 12. Esto se resuelve en HW Config abriendo las propiedades de la CPU, navegando a la pestaña Memoria (Memory), aumentando los bytes de datos locales asignados a la Clase de prioridad 12 (que corresponde a la interrupción cíclica OB35) dentro de los límites de memoria del hardware, y cargando la configuración de hardware actualizada en la CPU.
Índice de contenidos
- Arquitectura de datos locales (pila L) en controladores S7-400
- Procedimiento paso a paso para aumentar la asignación de datos locales del OB35
- Verificación
- Limitaciones y precauciones operativas
- Preguntas frecuentes para ingenieros
- Referencias técnicas
- Artículos relacionados
- Etiquetas relacionadas
Arquitectura de datos locales (pila L) en controladores S7-400
En las estaciones de automatización SIMATIC S7-400 y S7-410, la CPU reserva memoria de pila temporal conocida como datos locales (pila L):
* Función de los datos locales: Los datos locales almacenan variables temporales (TEMP), direcciones de transferencia de parámetros y punteros de retorno de llamadas a funciones durante la ejecución del bloque. A diferencia de los datos estáticos en bloques de datos de instancia (DB), los datos locales existen únicamente durante el tiempo de ejecución activo del bloque.
* Partición por clase de prioridad: La CPU divide su memoria total de datos locales disponible entre las clases de prioridad de ejecución:
* OB1: Clase de prioridad 1 (barrido principal)
* OB38: Clase de prioridad 25 (interrupción de 10 ms)
* OB35: Clase de prioridad 12 (interrupción de control de proceso estándar de 100 ms)
* OB34: Clase de prioridad 11 (interrupción de 200 ms)
* OB32: Clase de prioridad 9 (interrupción de 1000 ms)
* OB8x: Clases de prioridad 26-28 (interrupciones de diagnóstico y fallas de hardware)
* Causa raíz del agotamiento en PCS 7: Los diagramas CFC complejos que contienen bloques macro profundamente anidados, llamadas extensas de la Advanced Process Library (APL) o múltiples controladores de canales en cascada consumen una cantidad significativa de memoria de pila temporal por profundidad de llamada. Si la profundidad de pila acumulada supera la memoria predeterminada asignada a la Clase de prioridad 12 (típicamente 1024 o 2048 bytes), el compilador de CFC o el motor de carga bloquea la operación para evitar el desbordamiento de la pila en tiempo de ejecución y paradas (STOP) de la CPU.
Procedimiento paso a paso para aumentar la asignación de datos locales del OB35
Siga este procedimiento en HW Config de SIMATIC Manager para ampliar la asignación de datos locales.
Prerrequisitos
- SIMATIC Manager abierto con permisos de escritura en el proyecto de AS.
- Estado del controlador evaluado: la actualización de los datos locales de la CPU requiere cargar la configuración de hardware (HW Config), lo que normalmente requiere un STOP de la CPU o una ventana de mantenimiento planificada.
Paso 1: Abrir las propiedades de la CPU en HW Config
- En SIMATIC Manager, navegue hasta la estación de automatización de destino y abra HW Config.
- Localice el controlador central (p. ej.,
CPU 410-5HoCPU 417-4H) en el rack central. - Haga doble clic en el módulo de CPU para abrir su cuadro de diálogo de Propiedades.
Paso 2: Navegar a la pestaña Memoria y ajustar la Clase de prioridad 12
- Seleccione la pestaña Memoria (Memory).
- En la sección Datos locales (Local Data), localice la tabla que enumera las clases de prioridad y sus asignaciones de bytes.
- Identifique la Clase de prioridad 12 (que rige directamente la ejecución del
OB35). - Revise los bytes asignados actuales (p. ej.,
1024o2048bytes). - Aumente la asignación para satisfacer los requisitos del compilador (p. ej., aumentar a
4096o8192bytes). - Verifique que la suma de todas las clases de prioridad no supere la memoria total de datos locales admitida por el modelo de CPU (se muestra en la parte superior de la tabla). Si es necesario, reduzca las asignaciones de clases de prioridad no utilizadas (p. ej.,
OB1u OB de interrupción no utilizados) para equilibrar el total. - Haga clic en Aceptar para aceptar los parámetros.
Paso 3: Guardar, compilar y cargar la configuración de hardware
- En HW Config, seleccione Estación -> Guardar y compilar (Station -> Save and Compile).
- Ponga la estación de automatización en un estado de mantenimiento planificado.
- Seleccione PLC -> Cargar en módulo... (PLC -> Download to Module...) y cargue la configuración actualizada en la CPU.
- Si se le solicita que la CPU debe pasar a estado
STOP, confirme la secuencia de reinicio.
Paso 4: Recompilar y cargar los diagramas CFC
- Regrese a SIMATIC Manager.
- Seleccione la Carpeta de gráficos (Chart folder) en el programa S7.
- Ejecute una compilación completa:
Gráfico -> Compilar -> Todo el programa(Chart -> Compile -> Entire Program). - Verifique que el registro de compilación informe
0 errores. - Cargue el programa CFC en la CPU:
CPU -> Cargar(CPU -> Download).
Verificación
- En SIMATIC Manager, abra el cuadro de diálogo de información del módulo (
Ctrl + D) para la CPU. Navegue a la pestaña Memoria: confirme que los datos locales asignados reflejen los valores actualizados. - Revise el búfer de diagnóstico de la CPU: verifique que no existan entradas de eventos para el
ID de evento 16#4541(Error de asignación de datos locales) o16#2522(Desbordamiento de pila). - En CFC, ejecute
Gráfico -> Comprobar consistencia -> Todo el programa(Chart -> Check Consistency -> Entire Program): confirme que no aparezcan indicadores de advertencia de datos locales. - Pase la CPU a
RUNy verifique que todos los bloques de diagramas delOB35se ejecuten dinámicamente sin sobrecargas en el tiempo de ciclo.
Limitaciones y precauciones operativas
- Límite total de datos locales: Cada revisión de hardware de CPU tiene un límite global fijo de datos locales (p. ej., 64 KB o 128 KB para CPUs S7-400/410 modernas). No puede asignar más datos locales que los límites de memoria física del procesador.
- Requisito de STOP de la CPU: Modificar la asignación de memoria en HW Config cambia la partición de memoria del sistema operativo central del procesador S7-400. En sistemas estándar de una sola CPU, esto requiere estrictamente un STOP de la CPU. En sistemas redundantes S7-400H/410H, evalúe si se permite el cambio de tipo en ejecución (TCiR) o una conmutación por error de redundancia por etapas.
- Pilas de llamadas profundas en bloques personalizados: Si los bloques SCL creados por el usuario utilizan llamadas recursivas profundas o matrices locales masivas, refactorice el código para mover las matrices temporales a bloques de datos estáticos (variables
STAT) en lugar de agotar la pila L.
Preguntas frecuentes para ingenieros
- ¿Qué clase de prioridad corresponde al OB35?
En los controladores SIMATIC S7-400, la interrupción cíclicaOB35se ejecuta en la Clase de prioridad 12. - ¿Puedo aumentar la memoria de datos locales en línea sin detener la CPU?
En los procesadores S7-400 estándar, no. La reconfiguración de la tabla de memoria requiere una carga de hardware en modo STOP. En los sistemas redundantes S7-410H con el firmware adecuado, los cambios de configuración se pueden realizar mediante procedimientos de conmutación por error redundantes. - ¿Por qué CFC utiliza tantos datos locales en comparación con la lógica de contactos (ladder) clásica?
CFC genera extensas conexiones de parámetros intermedias, contenedores de variables estructuradas y punteros de diagnóstico que se transfieren en la pila temporal entre bloques interconectados. - ¿Cómo puedo averiguar exactamente cuántos bytes requiere el OB35?
Durante la compilación de CFC, si se superan los datos locales, el registro del compilador informa el número exacto de bytes requeridos por el árbol de llamadas de bloques más profundo frente al límite configurado actualmente. - ¿Puedo reducir los datos locales en el OB1 para dar más al OB35?
Sí. En PCS 7, la lógica de proceso se ejecuta en OBs cíclicos, por lo que elOB1tiene una lógica mínima. Puede reducir de forma segura la asignación de la Clase de prioridad 1 (OB1) para liberar bytes para la Clase de prioridad 12.
Referencias técnicas
- Entrada de Siemens Industry Online Support ID 109801081: Configuración de datos locales para bloques de organización en S7-400.
- Manual de sistema de Siemens: Especificaciones de la CPU SIMATIC S7-400 y arquitectura de memoria.
- Manual de SIMATIC PCS 7 CFC de Siemens: Requisitos de memoria del compilador y asignación de pila.
Artículos relacionados
- Comprender y configurar particiones de imagen de proceso para bloques de canales de PCS 7
- Optimización de los tiempos de ciclo y secuencias de ejecución del S7-400 en PCS 7
- Solución de problemas de errores de parada de CPU S7-400 y fallas en el búfer de diagnóstico
Etiquetas relacionadas
- PCS 7
- S7-400
- OB35
- Datos locales
- Pila L
- CFC
- HW Config
- Automatización industrial