jueves, 31 de diciembre de 2009

Problema en Tecla de Función de Panel Siemens

SI-OP-001

Es un problema que se repite no obstante el paso del tiempo y el lanzamiento de nuevos paneles de mejor tecnología. Quizá la falla esté en el software de los paneles.

Resulta que hace unos días me hablaron de una planta donde me decían que no podían pasar de un modo de operación a otro. Era una máquina donde me había tocado programar el PLC, mas no el panel de operador. Se trata de un PLC S7-300 y un panel gráfico Siemens.

Llegué a la fábrica y comprobé efectivamente que la máquina no conmutaba su modo de operación, conmutación que se hacía desde la pantalla del panel. Así que decidí desempacar mi lap-top y conectarme al PLC para averiguar qué estaba ocurriendo. Una vez establecida la conexión a la CPU, me puse a monitorear los bits de cambio de modo en el PLC. Para mi sorpresa, observé que un bit que recibía del Panel se quedaba siempre activado. Lo que hice fue, simplemente, cambiar el estado de este bit, de estado lógico "1" lo puse a "0". El bit se desactivó inmediatamente. Al volver a pulsar la misma tecla desde el Panel, el bit se volvió a activar, sin embargo, al momento de soltar la tecla, el bit correspondiente quedó activado de forma permanente en el PLC. Con mi Lap-Top volví a desactivar el bit sin ningún contratiempo. Así que concluí que el problema estaba en el Panel.

Esta situación se la comenté a la persona que programó el Panel. Una vez que comprendió la situación, revisó su programa, y me mostró que la tecla que mandaba el bit al PLC y que nos ocasionaba el problema, tenía asignada la función de "Activar bit mientras tecla pulsada". Esto significaba que, mientras estuviera oprimida la tecla, iba a mantener en uno en el PLC el bit correspondiente. Extrañamente, al dejar de pulsar la tecla, el bit caprichosamente se quedaba en el estado "1".

Recordé que esta situación me había pasado hacía años (unos 5) con un Panel también Siemens. Era un panel gráfico OP 37. Este Panel me tocó programarlo a mí. Recuerdo que este equipo lo programé con el ya pasado de moda software "ProTool", versión 6.0, si mal no recuerdo. En aquella ocasión utilicé la función "Activar bit mientras tecla pulsada" y la asigné a diferentes teclas con la finalidad de arrancar y parar algunos motores. Cuando lo programé todo funcionaba perfectamente. Sin embargo, al cabo de unos meses, resultó que los motores ya no los podían operar con normalidad, ya que o se quedaban activados permanentemente, o no era posible iniciar su arranque. La razón de esta falla: Que las teclas del Panel se quedaban activadas continuamente, aunque se dejaran de pulsar, y ocasionaban que el motor se quedara siempre encendido con la tecla de arranque, o que no se pudiera arrancar, ya que la tecla de paro mandaba siempre señal al PLC. En conclusión, esta función de la tecla del Panel, que es activar el bit sólo mientras la tecla esté pulsada, no se percataba de que la tecla había sido liberada, y seguía mandando señal a la CPU. La solución fue programar en el PLC su autodesactivación luego de unos segundos, de tal manera que la señal de estas teclas se desactivara inevitablemente al cumplirse este tiempo, y con esto evitar que la tecla se quedara enclavada. Hecho esto, no tuvo más problemas el Panel.

Regresamos a nuestro problema actual. Resulta que ahora gozamos de la gran herramienta de programación de Paneles llamada "WinCC Flexible", la cual vino a sustituir al "ProTool". Sin embargo, nos encontramos que adolece de varias imperfecciones. Una de ellas es la referente a esta función de activar un bit mientras se pulsa la tecla en el Panel. Ha evolucionado el software, han salido al mercado nuevos paneles Siemens más sofisticados, pero la misma falla vuelve a repetirse. Podría pensarse que tal vez es cuestión de una mala programación. Sólo que yo programé en ProTool un panel, y otra persona programó en WinCC Flexible. Dos softwares diferentes, dos paneles diferentes, dos programadores diferentes, una misma función, una misma falla. En fin.

El problema no ha sido eliminado por Siemens. Así que hay que evitar usar esa función en los paneles, y, adicionalmente, asegurar desde programa en el PLC, de desactivar bits que se activen desde Panel cuando éstos no tengan que durar tanto activados, como es el caso de la función "Activar bit mientras tecla pulsada".

Finalmente, corregimos la falla de este Panel desactivando los bits luego de cierto tiempo de estar activos.

Así que, a tener cuidado con la función "Activar bit mientras tecla pulsada". Espero no les ocurra nada parecido.
    

sábado, 19 de diciembre de 2009

Carga de Programa a CPU S5-135U desde Memory Card

S5-135-001

Una vez más nos encontramos con estos PLC's "dinosaurios". Suelen ser un dolor de cabeza en muchas empresas, ya que son equipos de control bastante viejos y obsoletos. El sólo verlos, desalienta a cualquiera a meterles mano, dadas las dificultades que implican. Sin embargo, los encontramos todavía en muchas máquinas y en muchos procesos industriales. No es fácil deshacerse de ellos. En la mayoría de los casos, no queda más que familiarizarse con estos equipos.

En varias ocasiones, me han preguntado cómo cargarle el programa a una CPU S5-135U desde una tarjeta de memoria. El problema surge cuando, por causas todavía no aclaradas, la memoria RAM de la CPU pierde el programa, incluso teniendo batería de respaldo. Una vez que se borra el programa de la RAM, es necesario cargarlo, ya sea a través de conexión con PC o a través de una Memory Card.

Aquí describiremos el procedimiento de hacer la carga del programa con la ayuda de una Memory Card. Como requisitos previos, es necesario contar con un programa en la Memory Card. Si esta tarjeta ya cuenta con programa, entonces la colocamos en la CPU en la ranura correspondiente. A continuación, ubicamos los selectores de "Run-Stop" y de "Overall Reset".

1. Mantener el selector en la posición de "Overall Reset", sin soltarlo
2. Al mismo tiempo, accionamos el selector de "Run-Stop" a la posición de "Stop"
3. Enseguida lo colocamos en la posición de "Run"
4. Finalmente, volvemos a colocar el selector en la posición de "Stop", y soltamos sólo hasta este momento el selector de "Overall Reset"

Si todo salió bien, el led de "Stop" se encenderá de forma permanente, sin intermitencia.

Es importante resaltar que con este procedimiento borramos todo lo contenido en la memoria de la CPU, si es que hubiera algo.

Lo interesante de este procedimiento es que, una vez que finalizamos este borrado total de la CPU, el sistema operativo se encarga de transferir la información de la Memory Card a la memoria RAM. Así que ya tenemos cargado nuestro programa en la CPU directamente de un cartucho de memoria. Si la carga se realizó correctamente, podemos realizar el arranque del sistema, colocando el selector de "Run-Stop" en la posición de "Run".

Listo, el led de "Run" luce de color verde de forma permanente.
    

martes, 1 de diciembre de 2009

Cómo Grabar los Bloques de Datos en FM-354

SI-300-005

La primera vez que me tocó programar una tarjeta FM-354, carecía de muchos conocimientos básicos en torno a esta tarjeta. Además, partía desde cero y tenía que programarla en un lapso de cinco días para una máquina cuya función era colocar botes de producto en sus cajas.

Ya antes había programado simodrives Siemens conectados a un PLC S7-300 a través de una red Profibus. En base a este conocimiento, la primera pregunta que tenía que resolver era la de si aceptaba el reto de programar la FM-354 en menos de cinco días. No era un reto fácil. No conocía nada acerca de la FM-354. Tenía unos cuantos días para hacer la programación. Y, la pregunta que más estrés me causaba era la de si funcionaría la máquina, no importando cuántos días pasaran. Había que buscar la manera de hacer compatibles las señales enviadas al servo-drive y corroborar que el encoder fuera el adecuado para la FM. Si desde este punto notábamos alguna incongruencia, tendríamos poco tiempo para reaccionar. Bueno, de cualquier modo acepté la responsabilidad y la misión era que tenía que funcionar a como diera lugar, haciendo esto en un tiempo no mayor de cinco días... de lo contrario... la palabra fracaso aparecería en el escenario, con todas la consecuencias que ello trae: incumplimiento con el cliente, producción retrasada, costos operacionales que se saldrían del presupuesto, llamadas de atención interminables de los gerentes de planta para indagarnos por qué no funciona la máquina, cuánto tiempo más necesitaríamos, e, incluso, en el peor de los casos, cancelación del proyecto y ser puestos en la lista negra de las empresas no aptas para realizar este tipo de desarrollos.

Con el reto encima, lo primero que hice fue conseguirme el manual de la FM-354 a través de internet. En este manual, como en la gran mayoría de los manuales, se habla de forma elemental de las funciones de la FM. En base a la experiencia previa con PLC's Siemens, se puede ir trazando la ruta a seguir para programar la tarjeta. Gracias al manual me pude dar cuenta de que esta tarjeta nos ayuda a controlar servo-motores para realizar tareas de posicionamiento, que era una función que tendría que realizar la máquina.

Una de los primeros conocimientos que tuve que adquirir para despejarme dudas sobre si tendría obstáculos desde un inicio, fue acerca del hardware de la tarjeta: qué señales digitales maneja, dónde colocar la tarjeta en el rack del PLC, qué tipos de encoder son compatibles y cómo conectarlos, y cómo enviar las señales de control desde la FM-354 al servo-drive. Aparentemente, contábamos con el encoder adecuado, y la señal para el set-point de velocidad resultó ser también la indicada para el servo-drive (señal de voltaje, de -10V...0...+10V).

Superada la etapa del hardware, y con los componentes montados y conectados, lo siguiente por realizar era sumergirse en el manual y desentrañar la forma en cómo programar la FM-354. En base a esto, lo primero que tuvimos que realizar fue instalar el software de esta tarjeta, el cual, como requisito previo, se instala sobre el Step 7. Yo lo instalé sobre la versión 5.4. Una vez instalado el software, bajé el hardware de mi PLC conectándome a través del puerto MPI de la CPU con mi PC-Adapter y mi Lap-Top Acer.

Con el proyecto en mi compu, abro el "Hardware Configuration" y allí hago click en la FM-354. Emerge una nueva pantalla donde puedo modificar los parámetros de la tarjeta directamente. Una vez que los modifico, puedo hacer click en transferir bloques de datos a la FM. Si no hay errores en la parametrización, la carga se realiza con éxito, de lo contrario nos aparece un mensaje indicándonos que hubo una falla en la transferencia y que hemos de corregir el error. Parece un proceso sencillo, sin embargo, nos llegamos a encontrar con un problema relativamente extraño, y, que al recurrir al manual de la FM-354, no indica nada al respecto.

Nos sucedió en varias ocasiones que hacíamos modificaciones a la tarjeta, se transferían los bloques de datos a la misma, todo realizado correctamente, sin embargo, cuando apagábamos el PLC, nos ocurría que la FM no guardaba las modificaciones, y teníamos que volver a cambiar los valores. Varias veces nos sucedió esto, sin encontrar nada claro en el manual para solucionar este problema. Finalmente, tras probar de diferentes formas, encontramos el procedimiento que nos permitió guardar los bloques de datos en la FM sin que ésta los llegara a perder tras desenergizar el PLC.

El procedimiento que nos funcionó fue el siguiente:

1. Conectados al PLC por el puerto MPI, abrimos la aplicación de la FM-354
2. Modificamos los parámetros que necesitamos de la tarjeta
3. El selector de la CPU lo colocamos en la posición de "Stop"
4. Transferimos los bloques de datos a la FM
5. Desenergizamos la FM únicamente por unos segundos y la volvemos a energizar
6. Al volver a energizar la FM, la CPU nos indica una falla con el led "SF"
7. Finalmente, colocamos el selector de la CPU en "Run"

Hecho esto, reiniciamos la comunicación con la FM y revisamos los parámetros. Al revisarlos, notamos que los cambios se conservaron. Y, por último, apagamos el tablero completamente. Energizamos. Nos comunicamos con la FM nuevamente, y, al verificar los datos de la FM, notamos que no se perdieron las modificaciones, y que la FM conservó los cambios luego de haber sido desenergizada.

Finalmente, comentar que, aunque fue un trabajo maratónico, la máquina quedó finalmente trabajando en el lapso acordado, quedando sólo con detalles menores que fueron eventualmente corregidos.