domingo, 25 de octubre de 2009

Misteriosa Falla en PLC Siemens (tarjeta FM 354)

SI-300-001

Hace algunos días, me encontraba en una planta de visita.
Mientras recorría las líneas de producción, una persona de mantenimiento se me acerca y me pregunta si lo podría ayudar a resolver un problema en una máquina. Para saber si llevaba las herramientas adecuadas, le pregunté cuál máquina era y qué PLC tenía. Esta persona me dijo que se trataba de una máquina envolvedora de producto, la cual trabaja con un PLC Siemens de la línea S7-300.
Por suerte, llevaba conmigo tanto la lap-top como el cable de comunicación para este PLC, con lo cual me ahorré el tiempo de ir a la oficina por las herramientas indipensables.
Ya estando en la máquina, empecé a ver los detalles del problema. La persona de mantenimiento y el operador de esta máquina me comentaban que todo trabaja bien en forma manual, sin marcarles ninguna falla. Incluso, podían referenciar el eje principal sin complicaciones. Sin embargo, al poner la máquina en modo automático, de pronto la máquina se detenía completamente, se iba a falla, y en el Panel de Operador, aparecía el texto de alarma de "Falla en el Eje Principal", lo cual indicaba que había un problema en torno a los componentes del servo. Podría ser el servo motor, o el cableado, o el módulo FM-354, un problema de programa, un error de configuración de valores en el Panel, u otra falla.
Una vez que se alarmó la tarjeta FM-354, me conecté a la CPU y revisé el búffer de diagnóstico. Mi sorpresa fue que aquí no encontré ninguna falla registrada, ni en la red Profibus, ni en ningún otro componente. Como tenía un respaldo del programa de esta misma máquina, hice la comparación de bloques, con el fin de saber si había alguna modificación hecha por alguien más. Pero tampoco encontré diferencias en los programas. Me puse a monitorear el programa mientras se ponía la máquina en producción automática para detectar alguna anormalidad. Sin embargo, ocurría la falla, y no detectaba nada raro, incluso, ni siquiera perdía la comunicación con la CPU, pensando en que ésta pudiera estar fallando.
A continuación, el personal de mantenimiento desenergizó el tablero completamente y sustituyó la tarjeta FM-354 del PLC. Y se reiniciaron las pruebas. Pero nuevamente la máquina se detuvo en pleno ciclo de producción, marcando la falla en el Eje Principal. La FM-354 encendía su led rojo. ¿Le faltaba alimentación eléctrica? No, estaba bien conectada y alimentada.
Las cosas se estaban poniendo difíciles, y la línea tenía que arrancar ya; la producción estaba bastante atrasada.
Deje a un lado la lap-top y el monitoreo del programa. Me puse a observar el PLC. Pedí que se pusiera en marcha la máquina otra vez en automático. Y lo que pude observar en el momento en que apareció la falla, se me hizo algo bastante extraño. Lo que ví fue que los leds de todo el PLC, de la CPU, de las tarjetas de entradas y salidas, de la tarjeta FM-354, por unos instantes parpadeaban; era un parpadeo casi imperceptible; ¿sería un parpadeo normal en la operación de la máquina? Tal vez, pero no consideré que algo raro había en ese parpadeo. Y es que a continuación de ese parpadeo, ocurría que fallaba la tarjeta FM-354.
Nuevamente se arrancó la máquina, y sí, otra vez el parpadeo, y otra vez la falla.
De ahí que supuse que había un problema eléctrico en la máquina, ya sea que la fuente de alimentación del PLC estaba fallando o que había un corto circuito en alguna parte de la máquina.
Se procedió a cambiar la fuente de alimentación. Una vez sustituida, se arrancó la máquina, y... nuevamente falló. Así que, supimos que la fuente de alimentación no era el problema; el parpadeo siguió, la falla de la FM volvió a aparecer.
La tarea más laboriosa estaba por empezar: rastrear el componente que estaba haciendo corto. Por la forma en que se presentaba la falla, supusimos que era un sensor. Así que se revisó sensor por sensor, y, luego de un rato, se encontró el sensor fotoeléctrico causante del problema. Este sensor estaba roto, y al rotar el mecanismo de la máquina, ocasionaba que el sensor se aterrizara provacando un corto momentáneo, suficiente para mandar a falla la fuente de alimentación, y ésta a su vez, ocasionar que la máquina se detuviera.
Hecho el cambio del sensor, todo volvió a la normalidad.
    

martes, 13 de octubre de 2009

Expediente PLC: La Historia (1)

Comenzaba a caer la noche cuando llegamos a la fábrica. Era un atardecer como cualquier otro en estas latitudes, un clima templado, un sol que comenzaba su caída por el horizonte. Lo que no era como cualquier otra cosa, era mi nerviosismo. Con apenas un curso de Step 5 tomado hacía unas semanas, con cero experiencia en el mundo de la automatización, y con la fría compañía de mi ex-jefe, iniciaba mi camino en este ámbito del control industrial.
Nos anunciamos en la caseta de vigilancia, nos registramos y dirigimos nuestros pasos al interior de la nave junto con uno de los supervisores de mantenimiento. Al ingresar a aquella fábrica, la primera sensación que tuve fue de vértigo, era una nave inmensa, donde había infinidad de máquinas y de operadores haciendo miles de piezas por minuto, robots moviéndose automáticamente de un punto a otro con una gran exactitud y a gran velocidad, olor a aceite quemado por cada pasillo, toda la gente vistiendo el mismo uniforme, pero todos sumamente concentrados y con el semblante expresando que tenían dominado al monstruo que tenían rugiendo delante de ellos, maquinando piezas con una enorme precisión, y el ruido constante de miles de motores trabajando al mismo tiempo era sumamente molesto, al grado de resultar difícil entablar una conversación sin evitar usar el recurso de elevar el volumen de la voz.
Aquella sensación que me invadió, podría haber derivado en temor, y ese temor en... huida. Sin embargo, en cuestión de segundos tuve que realizar algunos ajustes en mis procesos mentales, y sobreponerme a esta primera impresión. La adrenalina de ese momento me acompañaría durante mucho tiempo después. Imaginé que a muchos les pasaría algo similar a mí, y que muchos optarían por buscar un trabajo de no tanta exigencia mental, y ver los toros desde la barrera. Pero eso no sería mi caso, y decidí continuar, sólo para... llevarme más sorpresas ese mismo día.
Caminamos durante varios minutos para llegar finalmente a la línea de producción donde teníamos que intervenir. Justo en ese lugar, se retiró el supervisor que nos guiaba, y procedimos a realizar nuestro cometido. "Conéctate", fue la instrucción que me dió mi jefe una vez que localizamos la CPU. Aquella era una CPU S5-95U. En ese tiempo, era considerada una maravilla de PLC, con una fuente de alimentación integrada, entradas/salidas digitales y analógicas integradas también, entradas de contador rápido, y funciones de comunicación. Todo esto, en una sóla CPU. Bueno, lo que me salía muy bien, si el mugre cable de conexión no tenía alambres desoldados, era el conectarme a las CPU's S5. Saqué mi portátil, la encendí, corrí la apliación Step 5, e hice la conexión del cable adaptador de TTY a RS-232 entre la CPU S5-95U y mi compu. Al dar , se estableció la comunicación entre el PLC y el Step 5. Todo iba bastante bien, excepto que apenas podía controlar mis pensamientos y mi sudoración.
Hecha la conexión, siguiendo el sabio consejo de mi ex-jefe, hice un respaldo de todos los programas de la CPU, incluyendo los OB's, los FB's, los PB's, los DB's. Una vez hecho este respaldo, hago una copia de este archivo, y trabajo sobre este nuevo. Hasta allí, todo lo recuerdo bien. Lo que no recuerdo es qué demonios íbamos a modificar, si un ciclo, si un tiempo, si el respaldo de un valor de proceso (número de piezas, posición, presión, etc.) en una variable, si adaptar un valor para el panel, no lo recuerdo. Bueno, supongamos que era almacenar un valor generado por el ciclo de la máquina en una DW (Data Word) del DB (Data Block 10).
Pues bien, hago la modificación en el programa que tengo en la portátil, agregando algunas líneas de programa utilizando el editor del Step 5. Esto lo hago, mientras mi ex-jefe les explica a los operadores de la línea la modificación que se va a realizar. Es una explicación breve, en palabras comunes y corrientes, sólo que esa petición convertirla a instrucciones de PLC, no resulta ser tan sencillo, y menos cuando se es principiante. Miles de acrobacias mentales hay que hacer para dar con el resultado esperado. Pones a trabajar tu mente, y te salta y asaltan ideas por doquier, sin saber cuál te ofrece la mejor opción. Todas sus ofertas parecen atractivas, pero luego de analizarlas por unos segundos, te das cuenta de que son una burrada. Cuál elijo? Cuál resuelve mi problema? Cuál es la solución más sencilla? Será sencilla, pero, cómo la traduzco al programa? Y si me tardo mucho y mi jefe se desespera? Tal vez me despida? Tengo los conocimientos necesarios para esto? No será que necesito ejercitarme primero antes de que mi jefe me mande al ruedo? Qué rayos hago aquí, tan tarde? Será mejor decirle a mi jefe que lo haga él, y la próxima lo hago yo? No! Lo voy a hacer yo, sin su ayuda. Ahora está sumergido en una amena pero superflua charla con uno de los operadores; tan despreocupado uno como el otro, mientras yo me desgasto las neuronas por darle gusto y lo hago quedar bien con los supervisores. En fin... aquí estoy. He escrito todas las instrucciones necesarias; he revisado el programa una y otra vez, y, creo que está bien. Así que... a descargarlo al PLC...
¡Foco rojo de Stop en la CPU! ¡El programa no se ejecuta! ¡La línea de producción se ha detenido! ¡Los operadores se quejan de que ya no trabaja ninguna estación!
Antes de que mi jefe deje su insulsa conversación, se dé cuenta de lo que pasa, y venga a ver qué rayos hice, en cuestión de segundos abro el programa que respaldé al llegar a la línea (el programa con el que el PLC trabaja bien), y lo descargo a la CPU. Pongo el selector de la CPU en "Stop" primeramente, y en seguida lo pongo en "Run". Foco verde de "Run" encendido.
La línea vuelve a trabajar. Y yo vuelvo a respirar.
Todos los operadores se ocupan en probar que todo trabaje correctamente. Se acerca mi jefe, y en voz baja me pregunta que qué fue lo que hice. Le dije que había escrito varias líneas de programa que, a mi ver, hacían lo que me solicitaban, y además eran correctas todas las instrucciones. Una vez que ya tenía todo listo, lo cargué a la CPU, y se fue a falla.
Me preguntó si había respaldado el programa modificado, y le dije que no, a lo que me contestó que eso era un error. Luego me preguntó si me había puesto a revisar en la CPU la causa de la falla, y también le dije que no. "Otro error", fue lo que me respondió.
Se hizo tarde en aquella ocasión, y nos retiramos de la fábrica. No volvimos a tocar el tema. No volví a hacer la modificación solicitada. Creo que nunca se hizo. Pero sí volví a la misma línea, a la misma CPU en repetidas ocasiones a realizar otros y diferentes cambios. Y la CPU no volvió a irse a "Stop". Incluso, también llegué a modificar el panel tiempo después. Hoy en día esa línea sigue con la misma CPU, trabajando como antaño. Y hoy sigo recordando ese día, el día en que me inicié en la automatización. Reflexiono en qué sería lo que escribí para que el PLC se fuera a falla. No hice ninguna función de salto. No utilicé banderas duplicadas, no direccioné entradas fuera de rango. Quizá direccioné un DB que no existía o una DW fuera de rango.
"No guardé el programa modificado", fue lo que le dije a mi jefe, para que no lo analizara y me dijera en dónde estaba la burrada que había cometido y sirviera para hacer más extenso su sermón.
Sin embargo..., sí lo guardé. Guardé el programa que modifiqué y que llevó a falla la CPU. Y lo he vuelto a revisar para encontrar el error... y no hay error!
He cargado este mismo programa en otra CPU S5-95U, y no se va a falla!
Algo raro pasa con esa CPU de esa fábrica.
Qué diferencia hay entre esa CPU y esta otra? Capacidad de memoria? Versión de la CPU? Qué está pasando?
Algo extraño sucede con estas CPU's.

Estoy investigando...

(Continuará)
    

viernes, 9 de octubre de 2009

Puertos de comunicación de las CPU's (de los PLC's) familia SLC 500

AB-SLC-001

Cuando vamos a comunicarnos con SLC-500, quizá en lo primero que solemos pensar es en que vamos a utilizar un cable de comunicación PIC (bueno, así lo conocemos, aunque el de forma completa es 1747-PIC). Esto es cierto sólo para 3 tipos de CPU's de los 5 tipos que hay. En otras CPU's, hemos de emplear un cable de comunicación RS-232, e incluso, hasta un cable tipo DH+.

Esta versatilidad de la familia SLC-500 para comunicación, puede convertirse también en un buen acertijo a la hora de querernos comunicar a la CPU. Nos llaman de una fábrica "X" (sí, a la hora que sea), y nos dicen que tienen un problema en el programa del PLC. Asumamos que, luego de un largo cuestionario, concluimos que la causa del problemas está en las intrincadas líneas del programa de la CPU. Así que le preguntamos a este señor que nos involucra en sus apuros, qué tipo de PLC es, y sólo atina a decirnos que es un SLC, es uno de los cuadrados medianos de Allen-Bradley. Es un SLC 5/02, o SLC 5/03 o cuál? Preguntamos. Y nos dice, que sí, o más bien que cree que sí, que es un SLC 5/03, pero no está seguro. Rayos!, mejor ni nos confiamos y nos armamos con todos los cables que tenemos. Y nos lanzamos a ver qué sucede con el dichoso PLC. Y cuando llegamos a la planta, resulta que es un SLC 5/01. Bueno, por lo menos, nos preparamos con todos los cables.

Se preguntarán, ahora ustedes, cuál cable es para qué CPU del SLC-500. Para contestar a esta pregunta, recurrimos primero a la siguiente tabla para saber qué tipo de puerto de comunicación trae cada CPU:

SLC 5/01 -----> DH-485 (1 puerto RJ45)

SLC 5/02 -----> DH-485 (1 puerto RJ45)

SLC 5/03 -----> DH-485 (1 puerto RJ45) y DH-485/DF1/ASCII (1 puerto DB9)

SLC 5/04 -----> DH-485/DF1/ASCII (1 puerto DB9) y DH+ (1 puerto conector DH+)

SLC 5/05 -----> DH-485/DF1/ASCII/RS-232 (1 puerto DB9) y Ethernet (1 puerto RJ45)

Una vez que definimos la CPU y a qué puerto nos vamos a comunicar, seleccionamos el tipo de cable que necesitamos, de acuerdo a la siguiente tabla:

DH-485 (Puerto RJ45) -----> 1747-UIC (con cable 1747-C13), o 1747-PIC

DH-485/DF1/ASCII (Puerto DB9) -----> 1747-UIC (con cable 1747-CP3), o 1747-CP3

DH+ -----> 1784-PCMK (con cable 1747-PCM6), o 1784-U2DHP

Ethernet -----> Cable cruzado de red (10/100Base-T Ethernet)

En la mayoría de los casos, bastará con tener el cable PIC (1747-PIC) y un cable RS-232 (1747-CP3).

Listos para conectarnos...
    

jueves, 8 de octubre de 2009

Automatización Industrial: La tecnología en constante evolución

Luego de algunos días en los que anduve bastante ocupado, vuelvo a darle continuidad a este blog.

Es cosa que pasa muy seguido cuando vives en este mundo de los PLC's. Hay días en los que todo marcha bien, que las máquinas se sienten felices trabajando, ninguna falla, y crees que ya tienes todo bajo control. Pero luego hay esos días nefastos en que todo parace confabularse para sacarte de quicio: un equipo que estuvo trabajando bien, lo apagas y ya no quiere funcionar; una máquina en una línea crítica presenta una falla recurrente, que por más que le buscas, no das con el elemento dañado; luego, por si fuera poco, es sábado por la noche y no hay forma de conseguir refacciones. Cuando esto se te junta, te olvidas de todo (incluso hasta de comer y dormir) y te enfocas todo el tiempo a encontrar la falla en la máquina. Hasta que medio funciona, te das un ligero respiro y te alejas con mucha desconfianza de dicho equipo, no sea que una vez que le des la espalda, aproveche para volverse rebelde y falle, ocultándote el momento en que se descompuso, con lo cual pierdes valiosa información para comprender lo que está pasando. Así que, regresas casi maldiciendo a la máquina y te das a la tarea detectivesca de dar con la intrincada causa del problema... hasta que lo resuelves. Ahora sí, a ir a otro equipo que ya te está esperando desde hace horas (o días) para que le quites su empecinamiento a no querer trabajar... Y este ciclo puede repetirse una vez o multiplicarse casi hasta el infinito, sin darte tiempo de hacer más nada.

De esta forma, hay días en que tranquilamente puedo dedicarme a este blog, y, en cambio, durante otros días, estoy fuera de la jugada atendiendo algún problema en alguna fábrica.

Al estar trabajando de cerca con todas esas máquinas de diversas plantas, a veces dedicándoles horas o días, te vas adentrando más en su funcionamiento, al grado de que asimilas la experiencia necesaria para aplicarla cuando vuelva a surgir la misma falla o algo similar ocurra en otro equipo. Vas aprendiendo.

Como hay gran variedad de máquinas, obviamente muchas serán completamente diferentes unas de otras. Si fueran todas iguales, qué alivio, lo que le falle a una, sabrás cómo arreglarlo en la otra; es decir, si llegas a conocer bien sólo una de ellas, ya sabrás cómo trabajan todas. En este caso, dominas una, y muy pronto podrás gozar de una vida tranquila. Por el contrario, si las máquinas son diferentes, en operación, en cableado, en control, en lo mecánico, en lo hidráulico, en comunicaciones, etc., sabrás que te llevará mucho tiempo conocer a cada una, y muchas veces no podrás aplicar lo que aprendiste de una máquina en la otra, por lo que dominar todos los equipos llevará mucho más tiempo. Lo bueno de conocer varias máquinas que son diferentes entre sí, es que aprendes más; en cambio con máquinas iguales o teniendo sólo unas dos o tres, aprendes poco, pero tus problemas son relativamente pocos.

Me sucede por lo regular que tengo que atender problemas en máquinas diferentes. Algunas son sencillas, otras son más complicadas. A veces los equipos son muy viejos, y en otras ocasiones son de última tecnología. Pero de todas las máquinas aprendes algo. No todas hacen lo mismo, ni traen los mismos controles, ni los mismo PLC's. Y aunque muchas hacen productos en serie, pareciera que ellas mismas no estuvierna hechas en serie. Por muy parecidas que sean, algunas cambian debido a que algunas funciones no se requieren para una determinada línea de producción y otras funciones sí, o el cableado eléctrico se realizó de manera relativamente diferente, o, incluso, el PLC que incorporan trae una nueva CPU o nuevas tarjetas, o simplemente, el programa ha cambiado para que la máquina trabaje más eficientemente.

En fin, todo lo que voy aprendiendo en este mundo de los PLC's lo voy plasmando en este blog. A veces andaré algo ocupado, por lo que me alejaré por unos días del mismo. Pero con seguridad regresaré a redactar lo aprendido en esos días.

Aunque tengo varios años trabajando en esto de la automatización industrial, es fácil deducir que la literatura referente a la misma no la podré abarcar en su totalidad, ya que a diario aparecen nuevas mejoras tecnológicas, nuevas tarjetas, nuevos PLC, nuevas marcas, nuevos sensores, nuevos equipos, nuevas redes de comunicación, nuevos softwares, etc. Por lo mismo, no me considero un experto en el tema, aunque con el tiempo puedo aprender más y más (a veces bajo mucha presión), y resultarme más sencillo resolver un problema en una máquina. No pretendo dar cursos de PLC's en este blog ni transcribir o redactar extensos manuales técnicos; eso está fuera del alcance de cualquier blog. Podemos aprender mucho en cursos de PLCs, lo cual algo muy recomendable para familiarizarnos con los términos que se manejan en este mundo, y nos resulte más asimilable lo que leeamos en este blog. Sin embargo, algunas veces escribiré definiciones de términos raros, o detallaré algunos conocimientos básicos necesarios para entender el manejo de los PLC's. También escribiré procedimientos paso a paso para la realización de tareas de rutina con los PLC's, tales como respaldar un programa, configurar una tarjeta, crear bloques de datos, parametrizar un variador, etc.

Finalmente mencionar que con este blog sólo trato de registrar lo que voy aprendiendo, pues a veces lo detalles se van olvidando con el paso del tiempo, o simplemente, puede suceder que alguien (o yo mismo) se enfrente a una situación similar, y con esta experiencia tendrá una orientación de cómo resolver el problema. Para mí este blog será de gran utilidad, y espero que también lo sea para quienes lo lleguen a leer.