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

    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.

    

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?
    

jueves, 5 de noviembre de 2009

Respaldo del programa de los PLC's en memoria Flash

  
TyC-007
 
    En un tema anterior hablamos sobre el papel de las baterías en las CPU’s de los PLC como medio para conservar los programas en memoria RAM. Sin embargo, este método tiene una desventaja: si la batería se agota y la CPU pierde alimentación eléctrica, el programa desaparece irremediablemente. Para evitar este tipo de situaciones críticas, existe una alternativa mucho más segura: las memorias Flash.

    Estas memorias permiten almacenar el programa de manera permanente, sin depender de la batería, garantizando que la lógica de control esté siempre disponible cuando la CPU se energice.

Limitaciones del respaldo con batería

  • Cuando la batería está en buen estado, la CPU mantiene su programa incluso sin alimentación eléctrica.

  • Si la batería está agotada y se corta la energía, el programa se pierde totalmente.

  • Este riesgo hace que confiar únicamente en la batería sea insuficiente en aplicaciones críticas.

    Por esta razón, además de respaldar en medios externos (como guardar copias en computadora o discos), se recomienda el uso de memorias Flash.

Ventajas de las memorias Flash

    Las memorias Flash poseen características que las hacen ideales para respaldo:

  • Conservan la información grabada sin importar el estado de la batería o la alimentación eléctrica.

  • Sólo pueden borrarse o modificarse mediante procedimientos eléctricos controlados (no por desconexión de energía).

  • Una vez grabado el programa, la información es estable y puede almacenarse por largos periodos sin alteración.

  • Son portátiles: pueden retirarse, transportarse y reinstalarse fácilmente.

⚠️ Nota: Si se someten a golpes, altas temperaturas o condiciones destructivas, podrían dañarse parcial o totalmente.

Consideraciones al usar memorias Flash


     Al decidir respaldar un programa en una memoria Flash, deben tomarse en cuenta los siguientes aspectos:

  1. Compatibilidad: Cada fabricante y modelo de CPU requiere un tipo específico de memoria Flash. Es fundamental elegir la adecuada.

  2. Capacidad: Los programas grandes necesitan memorias de mayor tamaño. Seleccionar una memoria con suficiente capacidad es clave.

  3. Un solo programa por memoria: Aunque la memoria tenga más espacio libre, sólo puede almacenar el programa de una CPU.

  4. Respaldo previo: Antes de instalar la memoria Flash en la CPU, es importante guardar el programa en una computadora. Esto evita riesgos de bloqueo o pérdida durante la instalación.

  5. Procedimiento de carga: La memoria Flash se instala en la CPU y luego se carga el programa siguiendo las instrucciones del fabricante.

  6. Autonomía: Una vez almacenado el programa en la memoria Flash, este no se borrará al cortar energía ni al agotarse la batería.

  7. Recuperación automática: Si la memoria RAM de la CPU pierde el programa, al reenergizarse, la CPU copiará automáticamente el contenido de la memoria Flash a la RAM. Este proceso es casi imperceptible.

Limitaciones de la restauración automática

    Aunque el programa lógico siempre estará disponible, hay un detalle importante:

  • La memoria Flash sólo transfiere el programa de usuario (lógica).

  • Los datos dinámicos de la máquina se pierden al restaurar desde la Flash.

    Esto incluye:

  • Conteo de piezas.

  • Valores de temporizadores y contadores.

  • Set-points configurados por el operador.

  • Variables en bloques de datos.

    En consecuencia, tras una restauración desde la Flash, todos los valores regresan al estado inicial con el que se grabó la memoria.

    Ejemplo:
     Si en la Flash el programa está configurado para lubricar cada 18 horas, pero la máquina había trabajado 10 horas y debía lubricar en 2 horas más, esa información se perderá. Al restaurarse, la CPU volverá al valor de 18 horas.

    Lo único que se garantiza permanentemente es la lógica del programa.

Conclusión

    El uso de memorias Flash en PLC’s es una práctica altamente recomendable para asegurar la disponibilidad del programa de usuario, incluso cuando las baterías fallan o se corta la energía.

  • Ofrecen respaldo seguro y permanente.

  • Evitan pérdidas de programación costosas o críticas en producción.

  • Sin embargo, no sustituyen la importancia de realizar respaldo externo en computadora y de considerar que los datos dinámicos siempre se perderán al restaurar desde la Flash.

    En resumen, las memorias Flash son una herramienta confiable y complementaria a las baterías, que garantiza la continuidad operativa de los sistemas automatizados.

    

lunes, 2 de noviembre de 2009

Cambio de Batería en las CPU's de los PLC

  TyC-006

    Al trabajar con PLC Siemens y, en particular, con la CPU S7-315, debemos considerar un aspecto crítico: este modelo, al igual que muchos otros de distintas marcas y gamas, requiere de una batería para conservar el programa en la memoria RAM.

    El descuido de este detalle puede ocasionar la pérdida total del programa y, en consecuencia, la detención de la máquina o del proceso que controla. Por ello, es fundamental conocer cuál es la función de la batería, cuándo reemplazarla y cómo hacerlo sin riesgos.

Función de la batería en la CPU

    Las CPU que requieren guardar el programa de usuarios en memoria RAM necesitan una fuente constante de alimentación para mantener almacenado el programa. Recordemos:

  • La memoria RAM es volátil, es decir, pierde la información si no recibe energía.

  • La alimentación de la RAM puede provenir de dos fuentes:

    • La fuente de poder del tablero.

    • La batería interna de la CPU (cuando el tablero se encuentra apagado).

    De esta manera, la batería actúa como respaldo energético cuando no hay tensión en el tablero.

Ejemplo práctico

  • Si instalamos una CPU nueva y cargamos un programa, pero no insertamos la batería, al desenergizar el tablero el programa se borrará.

  • Si mantenemos la CPU energizada, podemos incluso retirar la batería sin perder el programa. Sin embargo, si quitamos la batería y apagamos el tablero, el programa se perderá irremediablemente.

Indicadores de batería agotada

    La mayoría de las CPU que emplean baterías incluyen un LED indicador (generalmente de color rojo) que advierte cuando la batería está agotada.

     Cuando este LED se enciende, es indispensable reemplazar la batería lo antes posible para evitar la pérdida del programa.

Procedimiento adecuado para reemplazar la batería sin perder el programa


     El cambio de batería es un proceso sencillo, pero requiere seguir ciertas precauciones:

  1. Verificar el estado de la CPU:

    • Confirmar que el LED de batería agotada está encendido.

    • Mantener energizado el tablero en todo momento.

  2. Respaldar el programa:

    • Antes de cualquier intervención, realizar una copia de seguridad del programa y almacenarla en un lugar seguro.

  3. Conseguir la batería adecuada:

    • Asegurarse de que la batería sea del modelo y voltaje indicado por el fabricante.

  4. Reemplazar la batería:

    • Con el tablero energizado, retirar la batería agotada.

    • Insertar inmediatamente la batería nueva.

  5. Verificar resultado:

    • Confirmar que el LED de batería agotada se apague.

    • Comprobar que la CPU y la máquina continúan trabajando normalmente.

Cómo borrar el programa intencionalmente cuando se requiera restablecer la CPU

    En algunos casos puede ser necesario eliminar el programa almacenado en la CPU:

  • Porque se cargará un nuevo programa totalmente distinto.

  • Porque se reutilizará la CPU en otra máquina.

    El procedimiento es muy simple:

  1. Desenergizar el tablero.

  2. Retirar la batería de la CPU.

  3. Esperar unos segundos.

  4. Volver a energizar la CPU → ésta ya no contendrá ningún programa.

Recomendaciones prácticas

  • Respaldar siempre el programa de todas las CPU en las máquinas.

  • Llevar un control de vida útil de cada batería.

    • Generalmente, los fabricantes indican entre 1 y 2 años de duración.

  • No usar baterías de voltajes distintos a los recomendados, ya que esto puede dañar la memoria y obligar a reemplazar la CPU completa.

  • Consultar siempre el manual del fabricante, ya que las indicaciones específicas pueden variar según el modelo.

Nota ecológica

    Las baterías, incluso las agotadas, no deben tirarse a la basura común.

     Se deben depositar en contenedores especiales para baterías usadas o entregarlas a las entidades responsables de su reciclaje y disposición segura.

Finalmente... 

El cuidado de la batería en una CPU Siemens S7-315 (y en general, en cualquier PLC que emplee RAM con respaldo) es vital para garantizar la continuidad operativa de las máquinas y procesos industriales.
Reemplazar la batería siguiendo los pasos correctos asegura que el programa se conserve intacto, evitando pérdidas de tiempo, dinero y producción.


¿Quieres que te prepare esta misma versión en formato guía técnica descargable en PDF, lista para entregar a técnicos en planta?