¿Sabes como se logra la comunicación en un sistema Robot-PLC-Scriber?, en este caso de estudio te explicaré a grandes rasgos como sucede la comunicación en un sistema compuesto por estos tres elementos.

Este es el primero de varios casos de estudio que compartiré en mi blog, espero sean de tu agrado.

Por cierto, si vas en serio y realmente te quieres convertir en todo un programado de PLC te invito a que resuelvas el reto que propongo.

Como ya lo has de saber, me gusta explicar mediante ejemplos y en esta ocasión te explicaré este proceso mediante una falla que me toco resolver hace unos días donde trataremos secuencia, escaneo y comunicación entre diferentes dispositivos.

Así que quédate conmigo y te explicaré a detalle lo que sucedió.

La celda

Para comprender mejor el problema es necesario conocer las características de la celda donde se presentó.

Esta celda cuenta con 2 Robots Fanuc de soldadura SPOT y una scriber marca Mecco cada uno.

A su vez, esta celda contiene una turntable de dos caras (A y B) donde, mientras los operadores estan trabajando en un lado, los robots estan soldando o marcando la pieza en el otro lado.

Por cuestiones de confidencialidad no puedo compartirles el CAD de la celda, así que les comparto este dibujo para ilustrar como esta distribuida la celda.

Celda dos robots y turntable

La secuencia

La secuencia de esta celda es muy estándar como se muestra a continuación.

  1. La turntable gira, posicionando el lado B en frente del operador y el lado A en dirección a los robots.
  2. El operador retira las piezas terminadas y carga otras dos piezas en el lado B y los robots inician su ciclo de soldadura.
  3. Una vez terminado el ciclo de soldadura, los robots inician el proceso de escritura en la pieza.
  4. Al haber terminado el proceso de escritura, los robots rebajan las puntas de las pistolas de soldadura (tipdress) para prepararse para el siguiente ciclo.
  5. Una vez que tanto los robots han terminado con el proceso de soldadura como el operador terminan de cargar las piezas, la turntable gira de nuevo para comenzar el siguiente ciclo.

Nota: La turntable puede girar mientras los robots están en tipdress, esto sucede cuando el operador es más rápido que los robots.

Scriber marca Mecco

La Scriber de la marca Mecco se utiliza para marcar datos en piezas normalmente metálicas a lo largo de un proceso gobernado por un PLC.

En este caso de estudio la Scriber Mecco esta montada sobre el Endeffector de ambos robots fanuc, por lo que es necesario una comunicación Robot-PLC-Scriber para funcionar adecuadamente.

A continuación te comparto un vídeo de una Scriber Mecco funcionado para que tengas una idea de a que me refiero:

https://www.youtube.com/watch?v=7ueRRvM-D3E&feature=emb_title

El problema

Ahora sí, una vez comprendido el contexto vamos a comenzar con el caso de estudio o más bien, el problema que se le presento a un servidor días atras.

Basicamente, una vez terminado de soldar, los robots iban y se posicionaban sobre la pieza en posición de marcado como deberían hacerlo, hasta aquí todo bien.

El problema es que en ocasiones el robot se retiraba inmediatamente después de alcanzar la posición sin realizar el marcado.

Esto sucedía cada dos o tres ciclos mas o menos.

Comunicación entre dispositivos

Para poder solucionar este problema es necesario comprender como se comunican estos tres dispositivos y no hay mejor manera que con una secuencia.

A continuación te explico paso a paso como sucede el proceso de marcado.

Paso 1: El robot alcanza la posición de marcado

En este paso el robot alcanza la posición de marcado una vez terminado el proceso de soldadura.

Veamos la lógica desde el lado del Robot:

codigo fanuc

En la línea 12 de este código podemos observar que el robot se mueve a la posición 3:SCRIBE e inmediatamente se corre el probrama SETCOMPLETE(4).

Veamos ahora que sucede en este último programa:

codigo fanuc

En estas líneas podemos observar que la salida 88 del robot (la cual sería una entrada del PLC) es activada.

Una vez hecho lo anterior el Robot espera a que el PLC active la entrada 88 (salida del PLC) para continuar con el siguiente movimiento.

Si recuerdas el problema y pones atención probablemente ya estas atrapando algunas pistas sobre el origen del problema, pero sigamos para recolectar un poco mas de información.

Paso 2: El PLC recibe la señal y espera a la Scriber

En este paso el PLC tiene dos secciones de código importantes, una es donde le responde al Robot y la otra es donde le solicita a la Scriber Mecco que inicie el proceso de marcado.

Veamos primero la línea de código donde el PLC le responde al Robot:

codigo plc

Como podrás observar en esta imagen, la turntable esta en la posición B y el PLC ya recibió la señal del Robot que esta en la posición de marcado con la tag R03.In.DO88 (Request Task Complete 4).

Para que el PLC le regrese al Robot la señal R03.Out.DI88 y a su vez este continué con su siguiente movimiento, es necesario que la tag R03_Mark_Complete sea activada.

Como ya te has de imaginar, esta señal se activa una vez que la Scriber termina su trabajo de marcado.

Ahora veamos las líneas de código donde el PLC le pide a la Scriber que inicie el marcado.

codigo plc

Aquí podemos observar una lógica de secuencia, donde la tag nState_DotPeen es el que contiene la posición actual de la misma.

A su vez la tag R03_Dot_Peen_Input.Marker_Command indica el comando que se le esta enviando a la Scriber y la tag R03_Dot_Peen_Output.Marker_State nos indica el estado actual de la Scriber.

En este caso el comando 200 indica inicio del marcado y el estado 209 nos indica que la Scriber ha terminado su trabajo.

Una vez que obtenemos este 209 es cuando la tag R03_Mark_Complete es activada, misma que habíamos comentado es la que le dará el permiso para continuar al robot mediante la salida R03.Out.DI88.

El análisis

Muy bien, ya tenemos suficiente información para lograr algunas conclusiones lógicas.

Como vimos al inicio de la secuencia, el robot espera la señal del PLC que a su vez espera la señal del Scriber para continuar con el trabajo.

La primer conclusión es que el Robot No tiene comunicación directa con la Scriber, solo a travez del PLC.

La segunda conclusión es que, al no tener esta comunicación, si el PLC le manda la señal al Robot antes de tiempo, este continuará con su siguiente tarea sin importar si la pieza se ha marcado o no.

Con esta última conclusión podemos inferir que la tag clave en este problema es R03_Mark_Complete y se debe investigar como funciona.

Ya vimos cuando se enciende y parece funcionar correctamente, pero ¿que hay de cuando se apaga?, es posible que en ocasiones no se apague antes de finalizar el ciclo.

Lo anterior podría ocasionar que la señal R03.Out.DI88 se active inmediatamente después de que el Robot la haya solicitado.

Después de revisar varios ciclos en vivo y poner especial atención en esta tag, me di cuenta que efectivamente en ocasiones no se apaga, así que me puse a analizar la lógica OTU de la misma.

codigo plc

Cómo podrás observar esta tag se apaga cuando el robot esta en Home y el programa que esta corriendo es igual a 0.

Aquí algo anda mal y aunque es complicado llegar a una conclusión con la información expuesta hasta ahora y sin hacer pruebas, te aconsejo que pienses en algunas hipótesis antes de continuar leyendo.

Solución del problema

El problema esta en que en ocasiones el programa que esta corriendo nunca se vuelve 0, por lo que las condiciones no se cumplen.

Analicemos esta situación con una secuencia:

  1. El robot empieza a soldar e inicia el programa 20 (soldadura en el lado A).
  2. Una vez terminado el proceso de soldadura el robot empieza a marcar la pieza. Este proceso esta dentro del programa 20.
  3. Cuando termina de marcar la pieza el operador ya terminó de cargar el otro lado, por lo que empieza a girar.
  4. Una vez terminado de marcar y llegado a home, inmediatamente se inicia el tipdress, pasando del programa 20 (soldadura en el lado A) a 0 (sin programa) y después a 2 (tipdress).
  5. Una vez terminado el tipdress y como la turntable ya esta en posición, el robot empieza con el programa de soldadura; del programa 2 (tipdress) se pasa al 0 (sin programa) y después al 21 (soldadura en el lado B).

Si has puesto atención te debes estar preguntado ¿por que no se apaga si estoy viendo que el programa se vuelve 0 en dos ocasiones durante la secuencia antes explicada?

La respuesta esta en uno de los problemas mas complicados de encontrar cuando eres un programador novato (creeme, me pegue de topes en mas de una ocasión) “La comunicación entre dispositivos vs escaneo”.

Como lo mencioné en la secuencia antes explicada el robot pasa de 20 a 0 y después a 2, sii, en el robot, pero en ocasiones el PLC no alcanza a captar esos cambios del robot y se pierden en el retardo de las comunicaciones.

Si estos cambios se realizarán dentro del PLC con tags internas no habría problema, siempre alcanzaríamos a leer ese 0, pero al intervenir un retardo ya no aplica.

Para resolver este problema solo tuve que eliminar ese EQU y el problema ya no volvió a suceder.

Conclusiones

Como podrás observar este problema implica el conocimiento de la comunicación entre tres diferentes dispositivos, por lo que es importante dominar hasta cierto punto cada uno de ellos.

Por ejemplo, en el caso de los robots, yo no me considero un experto, pero tengo la habilidad de leer sus programas, por lo que puedo solucionar este tipo de problemas.

En tu caso te recomiendo que hagas lo mismo, si quieres ser un buen programador deberías desarrollar la habilidad para interpretar programas de robots al igual que lo haces con los PLC.

Por cierto, ¿te gustaría suscribirte a mi Programa Premium con un 75% de descuento?, Se el primero en enviar la solución del siguiente reto a [email protected] y obtén este descuento.

El reto es muy sencillo, solo tienes que explicarme por que la tag _gam.2 esta apagada en la siguiente lógica:

codigo plc

Como ayuda te recomiendo los artículos Instrucción OTE, XIC y XIO y Instrucción OTL y OTU.

Un saludo compañero y no olvides compartir y comentar, esto me ayuda a continuar compartiendo contigo esta valiosa información de forma gratuita.

 

Deja una respuesta