sábado, 21 de noviembre de 2009

Otro OB útil en los PLC's S7-300

 
SI-300-004

    Como comentaba en el post precedente, al programar un PLC desde cero solemos iniciar sin muchas consideraciones de seguridad. El entusiasmo por ver la CPU en "Run" y funcionando a la perfección nos lleva a escribir líneas de código sin detenernos demasiado en los detalles. Estos, pensamos, podrán resolverse después de tener lista la estructura principal de la lógica de control.

    Además, muchas veces trabajamos contra el reloj: la programación que controla toda una línea de producción debe estar lista el lunes… y hoy es viernes. La presión por entregar a tiempo puede llevarnos a omitir detalles importantes. Y es en estas condiciones donde se gestan errores que más tarde pueden provocar que la CPU se detenga y se vaya a "Stop".

El escenario real: prisas, fatiga y errores

    Es domingo y el programa apenas toma forma. El cansancio nubla la mente y la concentración disminuye. Lo que al inicio parecía claro y sencillo ahora se vuelve confuso. Surgen dudas y hasta llegamos a pensar si hubiera sido mejor seguir la sugerencia del jefe, aunque fuese menos elegante.

    En ese estado de fatiga ocurren errores mínimos pero críticos. Por ejemplo, al escribir en el programa que queremos leer la dirección DBW48 del bloque de datos DB110, por descuido tecleamos DB119. Una diferencia aparentemente insignificante (confundir un "0" con un "9"), pero suficiente para desencadenar un problema serio.

    El editor de programas del Simatic Manager no detecta el error en esta etapa, así que seguimos escribiendo más líneas hasta completar la rutina deseada. Convencidos de que todo funcionará, descargamos el bloque de programa al PLC… y de inmediato la CPU se va a "Stop".

Diagnóstico del fallo

    Tras la frustración inicial, acudimos al búffer de diagnóstico de la CPU y encontramos la causa del problema: aparece un mensaje donde se indica que no se encontró el OB121.

    Aquí es donde entra en juego este bloque de organización: el OB121 es llamado por la CPU cuando se comete un error de programación, como el ejemplo descrito. Si este OB está cargado en la memoria del PLC, la CPU no se va a "Stop" automáticamente. En cambio, si no existe en memoria, el resultado inevitable es que la CPU abandone el modo "Run" y se detenga.

El papel del OB121

    El OB121 actúa como un “salvavidas” para los errores de programación:

  • Prevención de parada inesperada: si el bloque está cargado, evita que la CPU entre en modo "Stop" ante un error de código.

  • Persistencia del error: aunque la CPU siga en "Run", el error sigue existiendo y debe corregirse manualmente en el programa.

  • Facilidad de implementación: basta con crear el OB121 en el Simatic Manager y transferirlo a la CPU. No es necesario añadir instrucciones dentro del bloque; con que exista en memoria es suficiente para evitar que la CPU se detenga.

Para concluir...

    El OB121 es fundamental cuando programamos bajo presión o en condiciones poco favorables, donde los errores de escritura y referencia a bloques inexistentes pueden ocurrir fácilmente. Su presencia en la CPU asegura que ésta no se detenga por un fallo de programación, evitando comprometer el arranque de una máquina o interrumpir un proceso productivo.

    Sin embargo, debe quedar claro que el OB121 no corrige el error, sólo lo enmascara para que la CPU siga en ejecución. La responsabilidad final es del programador, quien debe revisar el código, localizar y eliminar el fallo.

    En resumen, crear y cargar el OB121 en el PLC no requiere esfuerzo adicional, pero puede marcar la diferencia entre un proyecto estable y una CPU detenida en el peor momento. Con él, podremos programar con mayor confianza, sin olvidar que la verdadera solución siempre será una programación clara, organizada y libre de errores.

    

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

    Una CPU S7-300 que entra en modo STOP sin una causa evidente puede detener completamente una línea de producción. En muchos casos, el origen no es una falla compleja, sino un detalle que pasa desapercibido durante la programación: el acceso a direcciones de entradas o salidas inexistentes.

    Este tipo de error es más común de lo que parece y, si no se maneja correctamente, puede provocar paros inesperados en operación.

Un problema frecuente en campo

    Durante el desarrollo de aplicaciones para PLC Siemens S7-300, es habitual trabajar con:

  • asignación de entradas y salidas

  • integración de hardware

  • uso de temporizadores, marcas y bloques de programa

    En este proceso, pueden introducirse errores que no siempre son detectados en modo offline.

    Algunos fallos aparecen únicamente cuando el programa se descarga en la CPU y entra en ejecución. En situaciones más críticas, la CPU puede pasar inmediatamente a STOP al intentar ejecutar instrucciones inválidas.

¿Qué son los OBs en S7-300?

    Bien, ahora continuemos comprendiendo qué es un OB. En los PLC Siemens S7-300, los OB (Organization Blocks) son bloques especiales que el sistema operativo de la CPU ejecuta automáticamente ante determinados eventos.

    Cada OB cumple una función específica dentro del sistema, por ejemplo:

  • OB1: ciclo principal del programa

  • OB100: arranque de la CPU

  • OB121: manejo de errores de programación

  • OB122: manejo de errores de acceso a entradas/salidas

    En esencia, los OB permiten que la CPU responda de forma controlada ante diferentes condiciones de operación o falla.

Herramienta utilizada: SIMATIC Manager STEP 7

    Para programar, configurar y diagnosticar las CPU S7-300 se utiliza el entorno SIMATIC Manager STEP 7.

    Desde este software es posible realizar múltiples tareas, entre ellas:

  • crear y editar bloques de programa

  • configurar el hardware del sistema

  • cargar el programa a la CPU

  • acceder a funciones de diagnóstico

    Es importante entender que muchas de las herramientas de análisis, como el diagnóstico de fallas, sólo están disponibles desde este entorno.

Caso típico en planta

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

    El síntoma era claro: la máquina entraba en STOP de forma intermitente, generando paros no programados y afectando la operación.

    Llegué a planta, y al revisar el sistema, advertí que la CPU estaba en STOP. Así que el siguiente paso fue acceder al búffer de diagnóstico de la CPU.

¿Qué es el búffer de diagnóstico?

    Ahora te preguntarás qué rayos es el "búffer de diagnóstico". El búffer de diagnóstico es una memoria interna de la CPU donde se registran eventos importantes del sistema, como:

  • errores de ejecución

  • fallas de hardware

  • cambios de estado (RUN/STOP)

    Para consultarlo es necesario:

  1. Conectarse a la CPU mediante SIMATIC Manager STEP 7

  2. Seleccionar la CPU en el proyecto

  3. Abrir la opción de diagnóstico / buffer de diagnóstico

     Ahí se puede ver el historial de eventos que permite identificar la causa del problema.

    En el caso que me encontraba en planta, el mensaje indicaba claramente la ausencia del bloque OB122. "OB 122 no cargado" era la línea descriptiva de la falla.

¿Qué es el OB122 y por qué es importante?

    El OB122 es un bloque de sistema diseñado para manejar errores de direccionamiento en entradas y salidas.

    Su función principal es evitar que la CPU se detenga cuando el programa intenta acceder a direcciones inexistentes.

    Esto ocurre porque:

  • En programación offline, el software permite usar direcciones que no existen físicamente

  • No se genera error durante el desarrollo

    Pero al ejecutar el programa en la CPU:

    Si se quiere acceder en el programa a una dirección inexistente y no existe el OB122, la CPU entra, inevitablemente, en STOP.

Ejemplo práctico

    Vamos a ver un ejemplo para que quede más claro. Si el programa intenta leer desde la dirección PIW312 (una dirección analógica), pero no existe un módulo físico asociado:

  • Sin OB122 → la CPU se detiene

  • Con OB122 → la CPU permanece en RUN y gestiona el error 

Cómo implementar el OB122

    El procedimiento es sencillo:

  1. Crear el bloque OB122 en SIMATIC Manager STEP 7

  2. Descargarlo a la CPU

  3. No es necesario programar ni una línea de lógica dentro del bloque

    Incluso un OB122 vacío cumple su función.

    Una vez presente:

  • La CPU lo reconoce automáticamente

  • En caso de error, lo ejecuta en lugar de detenerse

  • El sistema continúa en operación

Algo importante que debes considerar

    El OB122 no elimina el error.

    Sólo evita que la CPU se detenga.

    Esto significa que:

  • El problema de direccionamiento sigue existiendo

  • Puede haber pérdida de señales reales

  • El sistema puede operar con fallas ocultas

    Por lo tanto, siempre es necesario realizar un diagnóstico completo.

Situaciones donde se activa el OB122

    Este bloque puede entrar en acción en distintos escenarios:

Durante programación

  • Uso de direcciones incorrectas

  • Configuración incompleta de hardware

Durante operación

  • Fallo o desconexión de módulos de E/S

  • Daños eléctricos

  • Cambios en hardware no actualizados en el programa

    Incluso sistemas estables durante años pueden presentar este problema de forma repentina.

Checklist rápido en campo

    Antes de intervenir una CPU en STOP o comportamiento anómalo, revisa lo siguiente:

  • ¿El OB122 está cargado en la CPU?

  • ¿El búffer de diagnóstico muestra errores de direccionamiento?

  • ¿Existen módulos físicos para todas las direcciones utilizadas?

  • ¿Se realizaron cambios recientes en hardware o cableado?

  • ¿Hay módulos dañados o desconectados?

  • ¿El direccionamiento en hardware coincide con el programa?

Para finalizar

    El OB122 es una herramienta sencilla pero crítica para evitar que una CPU S7-300 entre en STOP debido a errores de direccionamiento.

    Implementarlo desde la etapa inicial del proyecto puede marcar la diferencia entre:

  • una falla que detiene producción

  • o un sistema que continúa operando mientras se diagnostica el problema

    Sin embargo, es importante remarcar que nunca debe considerarse una solución definitiva, sino una medida preventiva dentro de una estrategia de diagnóstico más amplia.

-------------------------------------------------------------------------------------------------------------- 

Siguiente paso

    El error de I/O es sólo una de varias causas que pueden provocar que una CPU Siemens S7-300 entre en STOP y detenga un proceso productivo.

    Contar con una metodología clara de diagnóstico permite reducir tiempos de paro, evitar cambios innecesarios y recuperar la operación con mayor rapidez.

    Si necesitas apoyo práctico para atender este tipo de fallas en campo, puedes acceder a los siguientes recursos:

        >>> Documento Gratuito <<<

    Checklist descargable gratuito listo para uso en campo:

  Diagnóstico y Solución de Fallas de I-O en CPU Siemens S7-300 [Hoja de Checklist]

 

 

        >>> Documento Completo <<<

    Guía práctica con procedimientos paso a paso, causas frecuentes de STOP, uso del búffer de diagnóstico y acciones recomendadas para corregir fallas comunes

  Diagnóstico y Solución de Fallas en CPU Siemens S7-300 

 

    *** Disponibles en "Buy Me a Coffee"

    Espera las siguientes entregas. 

    ¡Gracias por tu apoyo!

    

lunes, 9 de noviembre de 2009

Cómo respaldar programa en Flash en PLC's Siemens S7-300

 SI-300-002

    En esta línea de respaldos de programa en memoria flash, describiremos la forma de hacerlo en las CPU's de la línea S7-300 de los PLC's Siemens.

    Como requisitos para hacer este respaldo, tenemos que estar conectados a nuestra CPU, y ésta ha de tener su cartucho de memoria flash ya insertado. Una vez que hemos hecho la conexión con nuestro software Simatic Manager, estamos listos para iniciar el procedimiento. Por supuesto, esto lo podemos hacer sólo si la máquina no está en operación o en producción, ya que por unos momentos será necesario pasar a "Stop" la CPU. Así que, cuidado al realizar este respaldo. De igual forma, al terminar el proceso de carga en la memoria flash, cuidemos que al poner el sistema en "Run", no haya nadie interviniendo el equipo, ya la máquina puede arrancar ciertos equipos de improviso, con lo cual podemos causar accidentes y sus consecuentes daños materiales o personales. No está de más tomar nuestras precauciones.

    Bien, ahora estamos frente a nuestra PC, con nuestro Simatic Manager (Administrador Simatic) abierto, así como también tenemos abierto el programa de la CPU a la que estamos conectados.

1. Vamos a la opción "Sistema de destino" de nuestro menú principal del Simatic Manager.
2. En la lista de submenús, seleccionamos haciendo click en "Cargar programa de usuario en Memory Card", como se muestra a continuación:

3. Una vez que seleccionamos esta opción, el programa examina el sistema y evalúa si es posible la transferencia del programa a la memoria flash. Si no hay inconsistencias, nos aparecerá una ventana que nos preguntará si estamos seguros de realizar la carga, a lo que daremos click en "Sí" para continuar. De lo contrario, podemos cancelar el proceso seleccionando la opción "No":

4. Por si fuera poco, luego de que damos click en "Sí", nos aparece un nuevo cuadro de diálogo en el que se nos aclara que para realizar la carga del programa, la CPU necesita cambiar al modo "Stop". De estar listos, oprimimos la opción "Sí"...

    ¡Y con esto dejamos muerto nuestro PLC, así como dejamos muerta nuestra máquina! Claro, esto sólo dura unos cuantos segundos, mientras el Simatic Manager realizar su labor de borrar la CPU y cargar el programa a la flash.

5. Cuando el Simatic Manager concluye su proceso, de improviso nos aparece una ventana que nos informa que la carga del programa ya fue realizada, por lo que podemos proceder a rearrancar nuestro PLC al poner la CPU en modo "Run". Si, luego de analizar que no se corre riesgo alguno, damos en "Sí" para mandar la CPU a ejecutar su nuevo programa, y con este paso finalizamos.


Fue sencillo, no les parece?