miércoles, 27 de enero de 2010

Problema de Lentitud con mi Lap-Top

TyC-008

Por lo regular llevo a mi computadora portátil Acer a todas las plantas que visito.
Tengo una Acer modelo TravelMate con Windows XP SP2.
Esta PC la utilizo para comunicarme con los PLC's. Así que en ella tengo cargados los softwares de Siemens (Simatic Manager, MicoWin, Step5, ProTool) y Allen-Bradley (RSLogix 500, RSLogix 5000, PanelBuilder), y otras utilerías propias de estos paquetes de programación. También tengo instalados otros softwares de otros PLC's, como Telemecanique y Omron, el Norton Ghost y el Nero. Incluso, ni siquera le instalo en antivirus, ya que a veces me interfiere en algunos programas, tales como el Step5 y bloquea algunas funciones de comunicación. De cualquier forma, hago respaldos periódicos de la portátil y la pongo en red para escanearla en busca de virus.
No me atrevo a cargarle softwares más pesados, como el WinCC o el RSView, ya que esto me haría bastante lenta la máquina. En caso de requerir algún desarrollo o prueba en estos softwares, los instalo en la compu de escritorio, donde el desempeño es mucho mejor.
Como mi objetivo es ahorrar tiempo al llegar a alguna planta a resolver algún problema con un PLC, por lo regular la paso a hibernación al dejar de utilizarla. De esta manera, al oprimir el botón de encendido, rápidamente regresa desde donde me quedé, sin necesidad de esperar a que cargue el sistema operativo desde cero, que sería en el caso de apagarla completamente y luego volverla a encender.
Pero hace algunos días, me presenté en una planta para revisar un PLC. Saqué mi lap-top de su estuche, la encendí, pero no regresó del modo hibernación y se bloqueó por lo que tuve necesidad de apagarla. Al reiniciarla, me extrañó que tardara tanto en cargar Windows. Esperé cerca de 10 minutos y no terminaba. El teclado tardaba en responder al igual que el teclado. Quise abrir el Explorador de Windows, pero la espera se prolongaba demasiado. Los comentarios sarcásticos por parte del cliente no se hicieron esperar, eso sí. El clásico "tienes una PC con un procesador Lentium", o "se me hace que tiene virus tu compu", y la de "cuánta basura le cargas a tu PC; juegos, música, videos..." Por si fuera poco, la máquina tenía que entrar a producción lo antes posible, y ya había dejado pasar una decenas de minutos.
Como ya no estaba dispuesto a esperar más, con mucho trabajo logré abrir el "Administrador de tareas de Windows", dí click en la pestaña de "Rendimiento", y ví que el procesador estaba siendo usado la mayor parte del tiempo al 100%. Eso no era normal. Así que pasé a la pestaña de "Procesos", y me puse a observar cuál aplicación era la que estaba causando esta lentitud.
Allí, escondida entre varias programas que estaban cargados, pude identificar uno que ocupaba la CPU casi en su totalidad, con valores que oscilaban entre el 65% y el 98%. Esta aplicación correspondía al archivo "epm-dm.exe". Como mi prioridad era resolver un problema en el PLC, no me puse a indagar para qué rayos servía este programa, y simplemente le dí en el botón "Terminar Proceso", confirmando que tomaba el riesgo de cerrar esta aplicacion.
De forma inmediata, y casi mágica, el procesador quedó liberado, siendo utilizado sólo en 1%. Y, claro, la mejoría era notoria en la compu. Por fin pude comenzar a trabajar libremente, y con normalidad.
Una vez resuelto el problema en el PLC, y ya en la oficina, me puse a investigar este archivo conectándome a internet.
Resulta que este archivo, el "epm-dm.exe", es la aplicación "Acer EPM Device Manager", que viene preinstalada en algunos equipos portátiles Acer, y tiene funciones de administrar la energía de la computadora, cargándose al iniciar Windows. Como arranca al inicio, puede deshabilitarse utilizando "msconfig".
Pero para mayor seguridad, ya instalé un antivirus en mi portátil, y deshabilité este archivo del arranque de Windows.
Ahora mi compu trabaja perfectamente bien, y quizá le agregue más memoria, o tal vez ya sea el momento de adquirir una nueva... Pero también será Acer? Pronto lo sabremos.
    

sábado, 23 de enero de 2010

Comunicación Serial con ServoControlador TD-200 y PLC Siemens

MTS-MP-001

En estos días he estado algo ocupado en diversas programaciones de PLC's.
Recientemente, me tocó revisar un control TDC-200 encargado de gobernar una servoválvula.
Lo interesante de esto, es que era la primera vez que me encontraba con este tipo de equipos.
Así que lo primero que hice fue buscar el manual en internet. Pasé varias horas buscando en Google, pero no encontré más que catálogos, en el mejor de los casos. En esta búsqueda me enteré de que es ya un equipo obsoleto. Pero, por suerte, a los pocos días, recibí un correo donde me enviaban el escurridizo manual en formato PDF. Me puse a estudiarlo, poniendo especial atención a la parte de la comunicación.
Aunque algunos conceptos no me quedaron muy claros debido a mi poca familiaridad con este control, me puse manos a la obra para probar la comunicación. Probando es la mejor forma de aprender. Aunque para esto, no iba a utilizar el TDC-200 que está trabajando con la máquina. Claro que no. Para salvar este obstáculo, en la fábrica me hicieron llegar tres de estos equipos que andaban esparcidos por varios rincones.
Para no ser yo el primero en dañar uno de los equipos, dejé que uno de los trabajadores de la planta lo alimentaran eléctricamente. Este paso se hizo bien. Ahora seguía yo. Tuve que hacer un cable de comunicación para tal proposito. Como el control TDC-200 lo iba a conectar a mi lap-top, necesitaba una configuración RS-232, tal como sigue:

Bloque de terminales Conector DB9
J7 del TDC-200

Pin 1 (TXD) -------------------------- Pin 2 (RXD)
Pin 4 (RXD) -------------------------- Pin 3 (TXD)
Pin 9 (GND) -------------------------- Pin 5 (GND)
Pin 4 con 6 puenteados
Pin 7 con 8 puenteados

Una vez conectado el cable de comunicación entre el TDC-200 y mi lap-top, abrí HyperTeminal y configuré una conexión tipo VT100: 9600 bps de velocidad, 8 bits datos, no paridad, un bit de parada. Establecí la comunicación y desde mi lap-top envíe el comando IPX, con el cual solicito al TDC-200 la posición del eje X. Pero... no obtuve respuesta.
Seguí intentando configurando diferentes ajustes en HyperTerminal. Pasaba el tiempo, y no conseguía comunicarme. Revisamos el cable de comunicación, dandonos continuidad y correspondencia en los pines. También probé con varios ajustes del puerto COM1 de la lap-top, en la mayoría de las veces, consideraba que andaba fuera de toda lógica.
Cansados de tanto cambio, decidimos probar con otro controlador TDC-200. Sólo que este segundo control tenía dañada la fuente de alimentación, por lo que tuvimos que reemplazarla por la del primero. Desarmamos cuidadosamente los equipos, deconectando cables y verificando componentes, por si encontrábamos alguno dañado. Una vez armado el segundo control, procedimos a alimentarlo eléctricamente y a conectarle el cable de comunicación.
Mandé mi comando IPX desde mi HyperTerminal, y... nada. Sin respuesta del controlador.
Nuevamente me puse a jugar con todo tipo de configuraciones en HyperTerminal y con el COM1. Luego de un rato de desesperados intentos de comunicación, fuimos en busca de otro controlador.
Logramos encontrar un TDC-100, el cual varía del modelo anterior porque este último controla sólo un eje, y el TDC-200 dos ejes. Pero por el lado de la comunicación todo es igual. Lo energizamos. Sin embargo, notamos que no encendía el display ni tampoco los leds de equipo energizado y de falla. Así que, a desarmar otra vez y probar con el teclado del otro TDC.
Una vez reconstruido, nos pusimos a probar. Y... tampoco respondió a mi comando IPX.
Hicimos combinaciones de tarjetas, combinaciones de configuración en Hyperterminal, horas y horas sin éxito alguno.
Por fin nos decidimos a probar directamente con un TDC-100 que estaba instalado en una máquina que en esos momentos no estaba trabajando. Por supuesto, hacer pruebas sobre un equipo en una línea de producción tiene su riesgo. No obstante, sabíamos que había respaldos de la configuración, y por lo tanto, procedimos a hacer la prueba.
Conectamos el cable de comunicación al TDC-100 y a mi lap-top. Corrí la aplicación de HyperTerminal, la configuré como VT100, y procedí a enviar mi comando IPX y... Sí!, tuve respuesta del controlador: A2.4325
Recibí la posición del eje.
Finalmente, pude comunicarme, y pude saber que los otros TDC que había probado previamente estaban dañados.
Regresé ya por la noche a casa.
Estaba listo para iniciar la siguiente etapa de esta tarea: Comunicar un Panel Siemens con el TDC.