miércoles, 18 de noviembre de 2009

Prevenir que las CPU's S7-300 se vayan a Stop por error de I/O

 SI-300-003

    En la programación de PLC Siemens de la familia S7-300, una de las tareas más comunes es el diseño de bloques de programa, la integración de equipos, la asignación de entradas y salidas, el uso de temporizadores y banderas, entre otros recursos.

    Durante esta etapa de diseño es normal cometer errores de programación que pueden ocasionar que la máquina no funcione como se esperaba o, peor aún, que la CPU entre en modo "Stop".

  • Algunos errores se detectan en la fase de programación.

  • Otros sólo aparecen al cargar el programa en la CPU y ejecutarlo.

  • En casos graves, la CPU se detiene al no poder procesar instrucciones inválidas.

    Un ejemplo típico de este problema ocurre con la ausencia del OB122, el cual cumple una función clave para evitar que la CPU se bloquee por errores de direccionamiento en entradas o salidas.

Caso típico

    Hace poco recibí la llamada de un cliente con una CPU S7-300 que se detenía constantemente.

    Al revisar el búffer de diagnóstico, el mensaje indicaba que faltaba el bloque OB122.

    Esto ocurre porque:

  • El OB122 no estaba cargado desde la etapa inicial de programación.

  • El programa intentaba acceder a direcciones de entradas o salidas que no existían físicamente en el hardware instalado.

¿Qué es el OB122 y para qué sirve?

    El OB122 (Organization Block 122) es un bloque de sistema que el programador puede incluir como medida de precaución.

    Su función principal es:

  • Evitar que la CPU se detenga en modo "Stop" cuando intenta acceder a una dirección de entrada (I) o salida (O) inexistente en el hardware.

    En la práctica:

  • Cuando programamos off-line, el software no marca error aunque usemos direcciones que no correspondan a ninguna tarjeta física.

  • El problema surge al descargar ese programa en la CPU: si intenta leer o escribir en una dirección inexistente, la CPU entra inmediatamente en Stop, a menos que exista el OB122.

    Ejemplo:
     Si en el programa se incluye la instrucción para leer desde la dirección PIW312, pero en el hardware no existe ningún módulo asociado a esa dirección, la CPU se detendrá salvo que tenga cargado el OB122.

Cómo implementar el OB122


     El procedimiento es sencillo:

  1. En el Simatic Manager, crear el bloque OB122.

  2. Descargarlo directamente a la CPU.

  3. No es necesario escribir ninguna instrucción en su interior. Incluso puede enviarse vacío, sin segmentos.

    Con solo estar presente en la CPU:

  • El sistema reconoce que el OB122 existe.

  • Ante un error de acceso a direcciones I/O inexistentes, la CPU invoca este OB en lugar de detenerse.

  • El estado operativo permanece en Run, evitando la interrupción del proceso.

Consideraciones importantes

    Aunque el OB122 evita que la CPU se detenga, no elimina el error.

  • El acceso a una dirección inexistente seguirá ocurriendo.

  • El diagnóstico mostrará que la CPU está en Run, pero el error no aparecerá listado como falla grave.

    Esto significa que:

  • La máquina puede seguir operando, pero con el riesgo de pérdida de señales reales.

  • Se debe revisar el hardware o el programa para corregir el problema de fondo.

Situaciones donde se activa el OB122

    El OB122 puede ser invocado en los siguientes casos:

  1. Durante la programación y pruebas

    • Se escriben líneas de código con direcciones de entradas o salidas inexistentes.

    • Al descargar el programa, la CPU evita el "Stop" gracias al OB122.

  2. En operación normal de la máquina

    • Tras meses o años de funcionamiento estable, puede ocurrir un corto circuito o daño en alguna tarjeta de E/S.

    • La CPU ya no reconoce la tarjeta y, al no poder acceder a sus direcciones, se genera la condición para llamar al OB122.

Para finalizar...

    El OB122 es un recurso indispensable en la programación de PLC Siemens S7-300 para:

  • Evitar que la CPU entre en modo "Stop" por errores de direccionamiento en entradas o salidas inexistentes.

  • Permitir que la máquina continúe en operación, mientras se diagnostica y corrige el problema real.

    Recomendaciones:

  • Siempre cargar el OB122 desde la etapa inicial de programación.

  • Utilizarlo como medida preventiva en proyectos nuevos y en sistemas en operación.

  • Recordar que el OB122 no soluciona el error: únicamente evita la detención de la CPU, por lo que siempre será necesario revisar el hardware o la programación para identificar la causa.

    En conclusión, incluir el OB122 en la CPU es una práctica sencilla, pero de gran impacto, para garantizar la continuidad operativa de los procesos industriales controlados por PLC.

    

1 comentario:

  1. en un PLC step7 300 al momento del arranque presenta en el display el siguiente mensaje: RAM MEMORY FAIL VERIFY LOAD DATA START CODE el programa corre perfectamente y no afecta a los sensores y actuadores.....pueden decirme como hacer para eliminar este mensaje jrabanal@hotmail.com.
    nota: esto apareció despues de un corte de energia intempestivo

    ResponderEliminar