Siemens SIMATIC S7-1500 falla OB121: Error de programación
El sistema operativo llama al OB121 cuando ocurre un error de programación al ejecutar una instrucción del programa de usuario, siempre que el bloque no use tratamiento local de errores (GET_ERROR o GET_ERR_ID). Si ni el OB121 ni el tratamiento local atrapan el error, el S7-1500 pasa de RUN a STOP y registra una entrada en el búfer de diagnóstico. El Fault_ID identifica el error, p. ej. 16#3A acceso a un DB no cargado, 16#22/16#23 errores de longitud de área, 16#75 profundidad máxima de anidamiento de bloques excedida.
Diagnostica esta falla con IA
Diagnóstico gratis Sube una foto del panel, el historial de fallas o los parámetros de tu Siemens SIMATIC S7-1500. InduQT compara la evidencia y sugiere las siguientes pruebas.
Cuándo aparece
- RUN, cuando se ejecuta la instrucción con error
- A menudo después de una carga, o cuando un índice o puntero toma un valor nuevo
Causas probables y pruebas
1Acceso a un DB, FC o FB no cargado o inexistente
- Indicios
- Fault_ID 16#3A, 16#3B, 16#3C o 16#3E; sigue a una carga parcial o a un bloque borrado.
- Prueba
- Comparar los bloques de la CPU con el proyecto (comparación online/offline) y cargar el bloque faltante.
2Error de área o de longitud por un direccionamiento indirecto o acceso a un array
- Indicios
- Fault_ID 16#22–16#25; el búfer de diagnóstico indica el bloque y el acceso.
- Prueba
- Leer el valor del índice o puntero en el error y compararlo con el área que direcciona.
3Se excedió el anidamiento de llamadas o los datos locales
- Indicios
- Fault_ID 16#00/16#75 (anidamiento) o 16#76 (datos locales).
- Prueba
- Revisar la profundidad de llamadas y la recursión en el bloque indicado por BlockNr.
Cómo distinguirla
- En el S7-1500 un error de programación sin OB121 ni tratamiento local detiene la CPU; un error de acceso a la periferia (OB122) no.
- Si el bloque usa GET_ERROR o GET_ERR_ID, el OB121 no se llama para errores de ese bloque; decide el tratamiento de errores del propio bloque.
- Siemens indica que el S7-1200 trata internamente los errores de programación y de acceso y sigue en RUN con una entrada en el búfer, así que el mismo programa puede detener un S7-1500 y no un S7-1200.
Evidencia que conviene reunir
- Exportación del búfer de diagnóstico con la causa del STOP y el bloque
- Información de arranque del OB121 (BlockNr, BlockType, Fault_ID, Area), si se registra
- Comparación online/offline de bloques
- Archivo del proyecto TIA Portal
El trabajo en trenes de combustible, quemadores, recipientes a presión y equipos eléctricos debe hacerlo personal calificado, siguiendo la documentación del fabricante y la normativa local. Nunca puentees un dispositivo de seguridad ni un enclavamiento.
Relacionado
- Siemens SIMATIC S7-1500 OB80: Error de tiempo (tiempo de ciclo excedido)
- Siemens SIMATIC S7-1500 OB82: Alarma de diagnóstico
- Siemens SIMATIC S7-1500 OB83: Alarma de extracción/inserción (periferia descentralizada)
- Siemens SIMATIC S7-1500 OB86: Fallo de rack (falla de estación o sistema de E/S)
- Siemens SIMATIC S7-1500 OB122: Error de acceso a la periferia
- Todos los códigos de falla de Siemens SIMATIC S7-1500 (en inglés)