Anda di halaman 1dari 40

ROBÓTICA

Experto en Control y Comunicación


Industrial

Marc Parrón García


Junio 2015
Robótica Trabajo Obligatorio

Índice de contenido
1. Memoria descriptiva .............................................................................................................. 3
1.1. Objeto del trabajo ..................................................................................................................... 3
1.2. Descripción del proyecto .......................................................................................................... 4
a) Descripción del proceso: ........................................................................................................ 4
b) Selección del robot ................................................................................................................. 6
c) Características del robot ......................................................................................................... 8
d) Layout de la instalación ......................................................................................................... 9
e) Seguridades ............................................................................................................................ 9
2. Ejecución del proyecto ......................................................................................................... 11
2.1. Objetivos y sistemas de coordenadas ..................................................................................... 11
2.2. Paletizado ............................................................................................................................... 13
a) Formas de paletizado ........................................................................................................... 13
b) Numero de capas (altura palet) ............................................................................................ 14
2.3. Entradas y salidas ................................................................................................................... 15
2.4. Condiciones iniciales de arranque: ......................................................................................... 17
2.5. Mensajes panel de operador ................................................................................................... 17
2.6. Estructura y descripción del programa ................................................................................... 19
a) Módulo MMain: ................................................................................................................... 19
b) Módulo Formato: ................................................................................................................. 20
2.7. Programa RAPID ................................................................................................................... 21
3. Innovación ........................................................................................................................... 31
3.1. Garra ....................................................................................................................................... 31
3.2. Interacción con PLC: Cambio de palet. ................................................................................. 32
a) Cronograma descarga palet lleno ......................................................................................... 33
b) Cronograma carga palet vacío ............................................................................................. 33
4. Anexos ................................................................................................................................. 34
4.1. Movimiento del manipulador IRB6400R ............................................................................... 34
4.2. Dimensiones manipulador y controlador. ............................................................................... 36
4.3. Folleto garra ABB FlexGripper-Claw .................................................................................... 38
5. Bibliografía .......................................................................................................................... 40

Página 2 de 40
Robótica Trabajo Obligatorio

1. Memoria descriptiva

1.1. Objeto del trabajo

El objeto de este trabajo consiste en la elaboración de un proyecto de célula robotizada de


paletizado de sacos de harina. El trabajo consta de:
 Memoria descriptiva del proyecto, en la que se describe el proyecto objeto del trabajo y,
concretamente:
o Proceso a robotizar.
o Elección y descripción del robot
o Layout y componentes de la célula robotizada
o Sistemas de seguridad de la célula robotizada.
o Funcionamiento de la célula de paletizado para el operador
 Ejecución del proyecto, en el que se detallará:
o Mapa de objetivos y sistemas de coordenadas.
o Secuencia de paletizado.
o Entradas y salidas del controlador del robot.
o Estructura y descripción del programa.
o Programa en lenguaje RAPID.

Así mismo, se añadirá un apartado “innovación” con la descripción de la garra del robot así como
las interacciones entre el robot y el PLC de lacélula, con las señales que componen dicha
interacción y la secuencia de descarga de palets llenos y carga de palets vacíos.

Por último, en los anexos, se incluirán fichas técnicas de los componentes principales de la célula de
paletizado.

Para la realización del trabajo se ha utilizado el software RobotStudio de ABB.

Página 3 de 40
Robótica Trabajo Obligatorio

1.2. Descripción del proyecto

a) Descripción del proceso:

Como se comentó en la descripción del objeto del trabajo, para este proyecto se ha elegido una
célula de paletizado, concretamente de sacos de harina de 15Kg.
Para poder avanzar con el trabajo, en primer lugar se deben conocer una serie de datos y
restricciones, como son:
 Medidas de los sacos.
 Medidas del palet (Europalet)
 Altura máxima de paletizado
 Carga dinámica máxima del palet.

La siguiente tabla muestra estos datos:

Medidas del Medidas Europalet (mm) Carga dinámica Altura máxima de


saco (mm) y máxima del paletizado (mm)
peso Europalet
450x300x130 1200x800x145 1000Kg 1200 (palet incluido)
15Kg 1055 (carga)

Tabla 1: Datos básicos paletizado

Para determinar la altura máxima del palet se han tenido en cuenta las siguientes consideraciones:

 La altura de los camiones se sitúa habitualmente entre 2,5 m. y 2,6 m. y hay que prever
alrededor de 15 cm. de margen para poder elevar la carga al interior del camión lo que deja
una altura útil disponible de alrededor de 2,4 m.
 La altura accesible para que las personas puedan coger los embalajes que están en lo alto de
Página 4 de 40
Robótica Trabajo Obligatorio

la carga paletizada no debe ser superior a 1,8 a 1,9 m.


 Se recomienda transportar 2 palets de 1,2 m. superpuestos que uno solo de 1,8 m. La tasa de
relleno del camión es mejor a pesar de las manipulaciones y los costes de paletización
suplementarios. Además, la altura de las instalaciones de almacenamiento de muchos
distribuidores están equipados con estanterías-paletizadoras limitan la altura a 1,35 m.
(evitar) o 1,2 m. máximo.

Fuente: http://transporteinternacional.blogspot.com.es/2006/09/palets.html (Ferreiro)

La célula de paletizado consta de:


 Transportador de entrada: Rampa de rodillo por el que llegan los sacos desde la sección de
llenado.
 Manipulador robot: Es el encargado de tomar los sacos, con una herramienta/garra montada
en su extremo, y depositarlos en los palet.
 Transportadores de palets (izquierdo y derecho): Mesas de rodillo por donde entran los
palets vacíos y salen los llenos.
 Controlador: Controlador y consola del robot.
 Resguardos fijos: Mamparas de marco metálico como elemento de protección anti intrusión.
 Barreras fotoeléctricas de seguridad (4): Dos barreras de seguridad por cada transportador
encargadas de parar la instalación si se interrumpe el haz de luz.

La siguiente imagen muestra una captura de pantalla de la celda de paletizado diseñada con
RobotStudio.

Página 5 de 40
Robótica Trabajo Obligatorio

Ilustración 1: Vista célula de paletizado

b) Selección del robot

Para la selección del robot se han tenido en cuenta los siguientes factores o limitaciones:
 Alcance y altura con eje2 perpendicular al suelo y eje 3 paralelo al suelo, formando escuadra
(con todos los ejes a 0ª p.e.) : El robot debe poder paletizar la fila superior sin que el brazo
choques con los sacos de arriba. Es decir, de tener una altura superior a 1,20m más la altura
del transportador del palet más la altura de la garra. eso es, 264+1200+500=1764mm.
 Longitud brazo eje 4: El brazo en posición paralela al suelo debe ser mayor que la diagonal
del palet, eso es, mayor que el ancho del palet o sea, mayor de 800m.
 Carga máxima, que debe ser superior a la suma de peso de la herramienta (garra) más la
carga que, aunque sea de 15 Kg, se plantea que pueda paletizar sacos de 25Kg. Por tanto, si
la garra pesa 40Kg (ver Anexos), la carga máxima debe ser superior a 65Kg para el centro
de gravedad dado (0 respecto a ejes X eY y 0,3m respecto a eje Z).

Página 6 de 40
Robótica Trabajo Obligatorio

Las características consideradas para diferentes robots consultados se resumen en la siguiente tabla:

Robot Altura en Longitud Carga máx.


escuadra brazo eje 4 admisible
(z=0.3m)
IRB 2400 1329 755 20Kg

IRB 4400 1570 1020 60Kg

IRB 640 1850 1840 160Kg

IRB 6400R 1850 1175 120Kg


2.5/120

Tabla 2: Datos comparativos diferentes robots

Fuentes: http://new.abb.com/products/robotics/es/robots-industriales (ABB Robotics)Manual


Asignatura Robótica (SEAS)

Con los datos anteriores, el robot que más se adapta a esta aplicación es el ABB IRB 6400R 2.5/120.
Página 7 de 40
Robótica Trabajo Obligatorio

c) Características del robot

El ABB IRB 6400R 25 es un robot industrial de 6 ejes diseñado, específicamente, para las
industrias manufactureras que usen sistemas de automatización flexibles basados en robots
industriales.
El IRB6400R viene en diferentes versiones, con capacidad de manipulación de carga de hasta
200Kg, alcances de hasta 3m, con montaje en suelo o sobre bastidor.
Los robots para ambientes agresivos, tienen un tratamiento superficial y pintura para una excelente
protección contra la corrosión. Los conectores están diseñados para ambientes severos y los
rodamientos, engranajes y otros componentes sensibles están altamente protegidos. Su alto grado
de estanqueidad posibilita su limpieza con vapor.
El equipamiento adicional, como transformadores o bloques de válvulas, se puede montar en el
brazo superior, así como en el marco del eje 1.
El robot viene equipado con un sistema operativos llamada BaseWare OS. El BaseWare OS controla
todos los aspectos del robot , como el movimiento, el desarrollo y ejecución de las aplicaciones,
comunicaciones, etc.

En la siguiente tabla se muestran algunos datos significativos:

DATOS IRB6400R 25/120


Nº ejes: 6
Alcance: 2490mm
Capacidad de carga: 120Kg
Peso manipulador: 2060Kg
Peso controlador: 240Kg
Tipo movimiento ejes Rangos Velocidad
Eje 1: Rotación. +180º a -180º 110º/s
Eje 2: Brazo. +85º a -70º 100º/s
Eje 3: Brazo. +110º a -28º 100º/s
Eje 4: Muñeca. +300º a -300º 210º/s
Eje 5: Inclinación. +120º a -120º 150º/s
Eje 6: Giro. +300º a -300º 210º/s
Resolución: 0.1º en todos los ejes
Tabla 3: Datos significativos IRB6400R 25/120

En los anexos se encuentran adjuntos diferentes figuras y especificaciones del manual del robot.

Página 8 de 40
Robótica Trabajo Obligatorio

d) Layout de la instalación

En la Ilustración 2: Layout acotado se muestra un layout acotado de la célula de paletizado.

Ilustración 2: Layout acotado

e) Seguridades

Página 9 de 40
Robótica Trabajo Obligatorio

La célula de paletizado cuenta con los siguientes sistemas de seguridad:

 Resguardos fijos.
 Barreras fotoeléctricas.
 Pulsadores de paro de emergencia.

Los resguardos fijos protegen de la entrada de personas en más ¾ de perímetro. Sólo la zona de
transportadores de palets está sin cubrir por resguardos fijos.
Las barreras fotoeléctricas, que constan de emisor y receptor cada una de las cuatro, están situadas
en las estradas de los transportadores de palets conformando un sistema de esclusa con dos barreras
por entrada. Durante la salida de un palet lleno requiere de la deshabilitación y habilitación
automática de las barreras de seguridad conforme pasa el palet entre emisor y receptor. La
disposición en forma de esclusa con dos barreras en cada transportador impide que se pueda acceder
al interior de la célula aprovechando el paso del palet, ya que nunca estarán las dos barreras
deshabilitadas. La secuencia de carga y descarga de palets, con la correspondiente habilitación y
deshabilitación de las barreras se detalla en la sección Innovación, en el apartado 3.2 Interacción
con PLC.
El comportamiento del sistema tras la activación de las barreras de seguridad y de los pulsadores de
emergencia (excepto el de la consola del controlador) viene determinado por un relé de seguridad
del cuadro del PLC, que cortará la potencia a los motores del robot y de los transportadores. Por su
parte, e independientemente de esto, en el programa del robot, la activación de una emergencia
implicará la ejecución de las instrucciones correspondientes de paro del movimiento, para mayor
seguridad.

Ilustración 3: Diagrama activación seguridades

Página 10 de 40
Robótica Trabajo Obligatorio

2. Ejecución del proyecto

2.1. Objetivos y sistemas de coordenadas

Otro aspecto fundamental es la definición y creación de objetivos a los que llevar el robot y
coordenadas de objetos de trabajo a los que hagan referencia y que les sirven de sistema de
coordenadas. En el caso que nos ocupa, es mucho más sencillo referenciar la posición de los sacos
respecto al sistema de coordenadas del palet, que respecto al sistema de coordenadas absoluto, en
cual caso habría que crear posiciones distintas en función de si se paletiza sobre palet derecho o
izquierdo. La recogida de un saco también es más fácil de efectuar respecto al sistema de
coordenadas del objeto “transportador”, ya que sólo implica movimiento vertical sobre el mismo.

En la Ilustración 4 se muestra el mapa de objetivos (en rojo) y objetos de trabajo (en verde)

Ilustración 4: Mapa de objetivos y coordenadas


Página 11 de 40
Robótica Trabajo Obligatorio

La explicación o justificación de daca objetivo se muestra en la Tabla 4:Objetivos.

Nombre objetivo Sistema de Explicación / justificación.


coordenadas (objeto
trabajo)
Recogida WTransportador Objetivo en el que se debe posicionar la garra para
recoger un saco.
RecogidaElevado WTransportador Punto de incio y retorno antes y después de la
recogida. Cuando el robot pasa a estado Marcha,
se mueve a esta posición a la espera de un saco.
PaletI WPaletI Objetivo a partir del cual se calcularán las
posiciones de los sacos durante el paletizado.
PaletD WPaletD Objetivo a partir del cual se calcularán las
posiciones de los sacos durante el paletizado.
PaletIElevado WpaletI Objetivo elevado sobre el palet al que irá el robot
antes de depositar el saco. (punto intermedio de
trayectoria)
PaletDElevado WpaletD Objetivo elevado sobre el palet al que irá el robot
antes de depositar el saco. (punto intermedio de
trayectoria)
Aparcado Wobj0 (mundo) Objetivo cuya función es la de reposar la garra
sobre el suelo, para poder montarla, desmontarla o
efectuar labores de mantenimiento sin tener que
sujetarla al aire.
Tabla 4:Objetivos

En la Ilustración 5: Detalle TCP Garrase muestra un detalle de los sistemas de coordenadas del
robot y de la garra.

Ilustración 5: Detalle TCP Garra


Página 12 de 40
Robótica Trabajo Obligatorio

2.2. Paletizado

Unos de los aspectos más fundamentales de este proyecto son la estructura de palet terminado
(forma de y alturas) y la secuencia de paletizado.

a) Formas de paletizado

Un palet estable debe formarse por capas cuyas formas supongan superposición de elementos (en
este caso sacos). Lo contrario, supone columnas independientes de producto que pueden
desmoronarse debido a su inestabilidad.

Ilustración 6: Paletizado inestable y estable

Para nuestro proyecto, y dadas las dimensiones de los sacos (400x300x130), las diferentes alturas
irán alternando las siguientes formas:

Ilustración 7: Formas de los pisos de paletizado

Página 13 de 40
Robótica Trabajo Obligatorio

b) Numero de capas (altura palet)

El nº de capas o altura de palet vendrá determinada por las siguientes limitaciones:


 Altura máxima de palet.
 Carga dinámica máxima de palet.
Como ya se indicó en Tabla 1: Datos básicos paletizado, la altura máxima de paletizado (carga sin
palet) es de 1055mm y la carga dinámica máxima es de 1000Kg.
Con estos datos, podremos apilar hasta 8 alturas, que suman una altura global de 1040mm sin palet
(<1055mm) o 1185mm palet incluido (<1200mm).
Con esta morfología de apilado, cada palet terminado constaría de 56 sacos de harina, y dado que
cada saco es de 15Kg, la carga del palet será de 56 sacos x15Kg/saco = 840Kg (<1000Kg).

Así, el palet quedará como se muestra en la Ilustración 8: Estructura final de paletizado:

Ilustración 8: Estructura final de paletizado

Página 14 de 40
Robótica Trabajo Obligatorio

2.3. Entradas y salidas

A continuación se muestran las tablas con las entradas y salidas, con en nombre y la descripción de
cada una de ellas.

ENTRADAS
Nombre Descripción/acción
S10_CajaLista Indica la presencia de saco en el transportador de entrada. Su
activación posibilita la recogida de la caja si se encuentra en marcha.
S20_PaletIEnPos Proviene del detector de palet e indica que el palet se encuentra en su
sitio. Su activación es imprescindible para poder paletizar en dicho
palet.
S22_PaletDEnPos Proviene del detector de palet e indica que el palet se encuentra en su
sitio. Su activación es imprescindible para poder paletizar en dicho
palet.
S31_GarraAbierta Entrada proveniente del detector de garra abierta. Si la detección está
habilitada, el programa comprueba esta entrada para confirmar la
apertura de garra.
S32_GarraCerrada Entrada proveniente del detector de garra cerrada. Si la detección está
habilitada, el programa comprueba esta entrada para confirmar el cierre
de la garra.
S33_CajaEnGarra Indica la presencia de saco en la garra. Si la detección está habilitada el
programa comprueba esta entrada al recoger un saco.
S41_BarreraExtI En estado “1” indica que la barrera fotoeléctrica exterior del
transportador izquierdo está ok. Su puesta a 0 implica corte de haz de
luz (detección de intrusión).
S42_BarreraExtD En estado “1” indica que la barrera fotoeléctrica exterior del
transportador derecho está ok. Su puesta a 0 implica corte de haz de luz
(detección de intrusión).
S43_BarreraIntI En estado “1” indica que la barrera fotoeléctrica interior del
transportador izquierdo está ok. Su puesta a 0 implica corte de haz de
luz (detección de intrusión).
S44_BarreraIntD En estado “1” indica que la barrera fotoeléctrica interior del
transportador derecho está ok. Su puesta a 0 implica corte de haz de luz
(detección de intrusión).
X00_PlcOk Indica que el PLC exterior está sin errores.
X01_PaletIEnMov Señal proveniente del PLC exterior que indica que el transportador
izquierdo está en movimiento. La activación de esta señal en estado
“Palet lleno” implica la puesta a cero del contador de sacos en dicho
palet.

Página 15 de 40
Robótica Trabajo Obligatorio

X02_PaletDEnMov Señal proveniente del PLC exterior que indica que el transportador
derecho está en movimiento. La activación de esta señal en estado
“Palet lleno” implica la puesta a cero del contador de sacos en dicho
palet.
X03_SeguridOk En estado activo indica que las seguridades están ok. Su puesta a cero
implica salto de las seguridades y el consiguiente paro del robot.
Proviene del relé de seguridad.
X04_Marcha Señal proveniente del pulsador de marcha de la célula de paletizado.
Implica el arranque del sistema si las condiciones de inicio lo permiten.
X05_Paro Señal proveniente del pulsador de paro de la célula de paletizado. Su
activación porovoca un PARO EN CICLO, es decir, finaliza el ciclo
actual y el robot se mueve a la posición HOME. Si el robot se
encuentra en posición “aparcado”, implica el abandono de esta posición
para pasar a posición de reposo HOME.
X06_HabilitaPI Señal proveniente del selector de habilitación de palet izquierdo.
1=habilitado.
X07_HabilitaPD Señal proveniente del selector de habilitación de palet derecho.
1=habilitado.
X08_Aparcar Proviene del pulsador de “aparcar”. Si el robot se encuentra en estado
activo pero parado, la activación de esta señal envía el robot a la
posición aparcado, posición pensada para operaciones de
mantenimiento de la garra.
Tabla 5: Listado de entradas

SALIDAS
Nombre Descripción/acción
Y00_RobotOk Salida que indica al PLC exterior que el robot no tiene ninguna
anomalía.
Y01_PaletILleno Salida hacia PLC que indica que el palet izquierdo está lleno, para que
el PLC proceda a su retirada.
Y02_PaletDLleno Salida hacia PLC que indica que el palet derecho está lleno, para que el
PLC proceda a su retirada.
Y03_EnMarcha Indica al PLC y resto de la instalación que el robot se encuentra en
marcha, para poder conectar balizas, avisadores etc.
Z31_AbrirGarra Salida hacia la bobina de apertura de la electroválvula de la garra.
Z32_CerrarGarra Salida hacia la bobina de cierre de la electroválvula de la garra.
Z33_SubirDetCaja Salida para poder conectar a un pallador de producto (si no se quiere
usar fotocélula)
Tabla 6: Listado de salidas.

Página 16 de 40
Robótica Trabajo Obligatorio

2.4. Condiciones iniciales de arranque:

Para facilitar la prueba del programa, se muestra una captura de pantalla con las señales adecuadas
activadas para iniciar la marcha del robot.

Ilustración 9: Condiciones iniciales E/S 17-32

Ilustración 10: Condiciones de inicio E/S 1-16

2.5. Mensajes panel de operador

Como toda interfaz hombre-máquina que se preste, la consola del controlador mostrará todos los
acontecimientos de interés que vayan sucediendo durante la ejecución del programa. Los mensajes
se mostrarán con registro de tiempo (hora, minuto, segundo).

Los mensajes programados son:


 Barrera exterior izquierda activada.
 Barrera exterior derecha activada.
 Barrera interior izquierda activada.
 Barrera interior derecha activada.
 PLC exterior no listo.
 EMERGENCIA ACTIVADA.
 Orden marcha.
 Orden de paro.
 Palet izquierdo lleno.
 Palet derecho lleno.
 Palet izquierdo retirado.

Página 17 de 40
Robótica Trabajo Obligatorio

 Palet derecho retirado.


 Robot no se encuentra en posición de inicio
 Orden de aparcar.

La muestra una captura de pantalla en la que se han provocado diferentes eventos para que sean
mostrados por pantalla.

Página 18 de 40
Robótica Trabajo Obligatorio

2.6. Estructura y descripción del programa

Para este proyecto se han implementado 2 módulos de programa que son los siguientes:
 MMain: Módulo de programa que contiene los datos, funciones y procedimientos que
componen el funcionamiento del robot de paletizado, incluyendo el procedimiento “main”,
donde se implementa la secuencia de funcionamiento estructural.
 Formato: Módulo que contiene un procedimiento que carga los datos de posiciones y
orientaciones de cada saco en el palet así como una función que determina la configuración
de ejes en función del cuadrante de trabajo de los ejes 1, 3 y 5 (este último no se ve alterado
por la posición y orientación de los sacos en el palet).

Ilustración 11: Estructura del programa

a) Módulo MMain:

Tal como se explicó, el módulo de programa MMain contienen, además del procedimiento main, las
rutinas y datos de usuario que configuran la estructura del funcionamiento del robot. Las rutina que
lo componen son:
 HabilitaInt: Procedimiento que habilita y conecta las interrupciones con sus señales de inicio
y sus procedimientos TRAP.
 TRAPEmergencia: Define el comportamiento tras la desactivación de la señal "Seguridades
Ok".
 TRAPPlc: Define el comportamiento tras la desactivación de la señal de entrada PLC OK.
 TRAPAparcar: Define comportamiento tras recibir orden de Aparcar Robot.
 TRAPParo: Define comportamiento tras recibir orden de Paro.
 TRAPMarcha: Define comportamiento tras recibir orden de Marcha.
 TRAPResetPI: Define comportamiento tras recibir señal de movimiento palet izquierdo.
 TRAPResetPD: Define comportamiento tras recibir señal de movimiento palet derecho.
Página 19 de 40
Robótica Trabajo Obligatorio

 CompruebaInicio: Función que comprueba que el robot se encuentre en las inmediaciones


de la posición de inicio.
 PaletIListo: Función que determina si el palet Izquierdo está listo para usarse.
 PaletDListo: Función que determina si el palet Izquierdo está listo para usarse.
 Mensaje: Concatena el string con el mensaje a escribir con la hora actual del sistema para
ser mostrado en el “log” de la consola..
 CompPreparado: Comprueba que se cumplan todas las condiciones para poder arrancar
robot.
 AbreGarra: Procedimiento que ejecuta las instrucciones de apertura de la garra.
 CierraGarra: Procedimiento que ejecuta las instrucciones de cierre de la garra.
 PaletizaCaja: Procedimiento que inicia el paletizado de un saco.
 EligePalet: Determina el palet al que se va a descargar la caja.
 RecojeCaja: Contiene los movimientos de recogida de un saco del transportador.
 PaletizaI: Procedimiento para paletizar sobre el palet izquierdo.
 PaletizaD: Procedimiento para paletizar sobre el palet derecho.
 Main: Procdimiento principal. Ejecuta la secuencia de funcionamiento (diagrama de flujo
principal).

b) Módulo Formato:
Como ya se dijo, este módulo contiene las rutinas involucradas en determinar la posición y
orientación de cada saco en el palet:
 Formato: Procedimiento que carga los valores de posiciones y orientaciones de los sacos.
 CConfEjes: Función que retorna la configuración de los ejes 1, 3 y 5 en función de la
posición en la que debe colocarse el saco.

Página 20 de 40
Robótica Trabajo Obligatorio

2.7. Programa RAPID

MODULE MMain
!-----------------------------------------------------------------------------
-------------------------------------------
!
! MODULO MMAIN
!
! Contiene los datos e instracciones de la estructura del programa de paleti-
zado
!-----------------------------------------------------------------------------
-------------------------------------------
!---------------------------------------------- DECLARACION OBJETOS DE TRABAJO
----------------------------------------
PERS wobjdata Transporta-
dor:=[FALSE,TRUE,"",[[1310,0,760],[0.707107,0,0,0.707107]],[[0,0,0],[1,0,0,0]]];
PERS tooldata tGarra1:=[TRUE,[[5.35936E-05,-5.23099E-
06,500],[0,0.707107,0.707107,0]],[60,[0,0,250],[1,0,0,0],0,0,0]];
PERS wobjdata
WTransportador:=[FALSE,TRUE,"",[[1310,0,760],[0.707107,0,0,0.707107]],[[0,0,0],[
1,0,0,0]]];
PERS wobjdata WPaletD:=[FALSE,TRUE,"",[[600,-
1700,264],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
PERS wobjdata
WPaletI:=[FALSE,TRUE,"",[[600,900,264],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
!-------------------------------------------------- DECLARACION OBJETIVOS ----
----------------------------------------
CONST robtarget Recogi-
da:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget RecogidaEleva-
do:=[[0,0,800],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Home:=[[1765,-5.65919E-05,1468.78],[0.683013,-0.183013,-
0.183013,0.683013],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Aparcado:=[[1500,-
1000,0],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget PreAparcado:=[[1500,-
1000,1000],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget PaletDEleva-
do:=[[0,900,1200],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Pa-
letD:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget PaletIEleva-
do:=[[0,0,1200],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Pale-
tI:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
!---------------------------------------------- DECLARACION DE INTERRUPCIONES
-----------------------------------------
VAR intnum IntMarcha;
VAR intnum IntParo;
VAR intnum IntEmergencia;
VAR intnum IntAparcar;
VAR intnum IntResetPI;
VAR intnum IntResetPD;
VAR intnum IntPlc;
!------------------------------------------------- DECLARACION DE VARIABLES --
-----------------------------------------
VAR bool Preparado:=FALSE;
VAR bool Marcha:=FALSE;
VAR bool Paro:=FALSE;
Página 21 de 40
Robótica Trabajo Obligatorio

VAR bool Aparcar:=FALSE;


VAR bool PosAparcado:=FALSE;
VAR num PActual:=0;
VAR bool PaletILleno:=FALSE;
VAR bool PaletDLleno:=FALSE;
!------------------------------------------------- DEFINICION MENSAJES -------
-----------------------------------------
VAR string TxtBarreraEI:="Barrera exterior izquierda activada.";
VAR string TxtBarreraED:="Barrera exterior derecha activada.";
VAR string TxtBarreraII:="Barrera interior izquierda activada.";
VAR string TxtBarreraID:="Barrera interior derecha activada.";
VAR string TxtPlc:="PLC exterior no listo.";
VAR string TxtEmergencia:="EMERGENCIA ACTIVADA.";
VAR string TxtMarcha:="Orden marcha.";
VAR string TxtParo:="Orden de paro.";
VAR string TxtPILleno:="Palet izquierdo lleno.";
VAR string TxtPDLleno:="Palet derecho lleno.";
VAR string TxtPIRetirado:="Palet izquierdo retirado.";
VAR string TxtPDRetirado:="Palet derecho retirado.";
VAR string TxtInicio:="Robot no se encuentra en posición de inicio";
VAR string TxtAparcar:="Orden de aparcar.";
!------------------------------------------------- DECLARACION DE CONSTANTES -
-----------------------------------------
!
!TEIMPOS DE ESPERA PARA DETECCION DE APERTURA Y CIERRE DE GARRA Y DE PRESENCIA
DE SACO EN GARRA
CONST num TDETGARRA:=10;
CONST num TDETSACO:=10;
!
!----------- CONSTANTE QUE ANULA DETECTORES DE APERTURA Y CIERRE DE GARRA Y
DETECCIÓN DE SACO PARA MARCHA EN VACÍO -------------
! TRUE: DETECCIÓN HABILITADA
! FALSE: DETECCIÓN DESHABILITADA
CONST bool DETECCION:=FALSE;

!
!------------------------------------------ PROCEDIMIENTO HABILITA INTERRUP-
CIONES --------------------------------------
!Procedimiento que habilita y conecta las insterrupciones con sus señales de
inicio y sus procedimientos TRAP
!
PROC HabilitaInt()
IDelete IntEmergencia;
CONNECT IntEmergencia WITH TRAPEmergencia;
ISignalDI X03_SeguridOk,0,IntEmergencia;
IDelete IntMarcha;
CONNECT IntMarcha WITH TRAPMarcha;
ISignalDI X04_Marcha,1,IntMarcha;
IDelete IntParo;
CONNECT IntParo WITH TRAPParo;
ISignalDI X05_Paro,1,IntParo;
IDelete IntAparcar;
CONNECT IntAparcar WITH TRAPAparcar;
ISignalDI X08_Aparcar,1,IntAparcar;
IDelete IntResetPI;
CONNECT IntResetPI WITH TRAPResetPI;
ISignalDI X01_PaletIEnMov,1,IntResetPI;
IDelete IntResetPD;
CONNECT IntResetPD WITH TRAPResetPD;
ISignalDI X02_PaletDEnMov,1,IntResetPD;

Página 22 de 40
Robótica Trabajo Obligatorio

IDelete IntPlc;
CONNECT IntPlc WITH TRAPPlc;
ISignalDI X00_PlcOk,0,IntPlc;
ENDPROC

!--------------------------------------------------- PROCEDIMIENTOS TRAP -----


-----------------------------------------
!
!-- TRAP EMERGENCIA:
! Define el comportamiento tras la desactivación de la señal "Seguridades Ok"
TRAP TRAPEmergencia
Preparado:=FALSE;
Marcha:=FALSE;
Reset Y03_EnMarcha;
!-- Muestra texos de emergencia y posibles causas
Mensaje (TxtEmergencia);
IF S41_BarreraExtI=0 Mensaje (TxtBarreraEI);
IF S42_BarreraExtD=0 Mensaje (TxtBarreraED);
IF S43_BarreraIntI=0 Mensaje (TxtBarreraII);
IF S44_BarreraIntD=0 Mensaje (TxtBarreraID);
!-- Detiene movimiento.
StopMove;
!-- No inicia movimiento hasta que desaparezca condición de Emergencia
WaitUntil X03_SeguridOk=1;
StartMove;
ENDTRAP

!
!-- TRAP PLC
! Define el comportamiento tras la descativación de la señal de entrada PLC OK
!
TRAP TRAPPlc
! Envía orden de paro y mustra mensaje
Marcha:=FALSE;
Paro:=TRUE;
Mensaje (TxtPlc);
ENDTRAP

!
!-- TRAP APARCAR
! Define comportameinto tras recibir orden de Aparcar Robot
!
TRAP TRAPAparcar
! Si el robot no está en marcha, está en posición de inicio y no aprcado,
aparca robot y muestra mensaje
IF CompruebaInicio() AND PosAparcado=FALSE AND Marcha=FALSE THEN
PosAparcado:=TRUE;
Mensaje (TxtAparcar);
MoveL PreAparcado,v1000,z200,tGarra1;
MoveL Aparcado,v1000,fine,tGarra1;
ENDIF
ENDTRAP

!
!-- TRAP PARO
! Define comportameinto tras recibir orden de Paro
!
TRAP TRAPParo
! Si estaba aparcado o en marcha, devuelve robot a posición inicio y muestra
mensaje

Página 23 de 40
Robótica Trabajo Obligatorio

IF Paro=FALSE AND (Marcha OR PosAparcado) Mensaje (TxtParo);


Paro:=TRUE;
Marcha:=FALSE;
IF PosAparcado THEN
PosAparcado:=FALSE;
MoveJ PreAparcado,v1000,z200,tGarra1;
MoveL Home,v1000,fine,tGarra1;
ENDIF
ENDTRAP

!
!-- TRAP MARCHA
! Define comportameinto tras recibir orden de Marcha
!
TRAP TRAPMarcha
! Si se cumnplen las condiciones de inicio y no estaba previamente en marcha,
! pone robot en marcha y muestra mensaje
IF Preparado AND Marcha=FALSE AND CompruebaInicio() THEN
Marcha:=TRUE;
Mensaje (TxtMarcha);
ENDIF
ENDTRAP

!
!-- TRAP RESET PI
! Define comportameinto tras recibir señal de movimiento palet izquierdo
!
TRAP TRAPResetPI
! Rearma estado de palet lleno y rearma contador
Mensaje (TxtPIRetirado);
Reset Y01_PaletILleno;
PaletILleno:=FALSE;
contadorI:=0;
ENDTRAP

!
!-- TRAP RESET PD
! Define comportameinto tras recibir señal de movimiento palet derecho
!
TRAP TRAPResetPD
! Rearma estado de palet lleno y rearma contador
Mensaje (TxtPDRetirado);
Reset Y02_PaletDLleno;
PaletDLleno:=FALSE;
contadorD:=0;
ENDTRAP

!------------------------------------------------ FUNCION COMPRUEBA INICIO ---


--------------------------------------
! Comprueba que el robot se encuentre en las inmediaciones de la posición de
inicio:
! Ejes 1,2,3,4 y 6 entre -10 y 10 grados y eje 5 entre 50 y 70 grados
!
FUNC bool CompruebaInicio()
VAR bool inicio:=TRUE;
VAR jointtarget actejes;
VAR robjoint ejes;

actejes:=CJointT();
ejes:=actejes.robax;

Página 24 de 40
Robótica Trabajo Obligatorio

IF ejes.rax_1>=-10 AND ejes.rax_1<=10 AND ejes.rax_2>=-10 AND ejes.rax_2<=10


AND ejes.rax_3>=-10 AND ejes.rax_3<=10 AND ejes.rax_4>=-10 AND ejes.rax_4<=10
AND ejes.rax_5>=50 AND ejes.rax_5<=70 AND ejes.rax_6>=-10 AND ejes.rax_6<=10
THEN

inicio:=TRUE;
ELSE
! si no se encuentra en posición muestra mensaje
Mensaje (TxtInicio);
ENDIF
RETURN inicio;
ENDFUNC

!------------------------------------------------ FUNCION PaletIListo --------


---------------------------------
! Determina si el palet Izquierdo está listo para usarse
FUNC bool PaletIListo()
IF X06_HabilitaPI=1 AND PaletILleno=FALSE AND X01_PaletIEnMov=0 AND
S20_PaletIEnPos=1 THEN
RETURN TRUE;
ELSE
RETURN FALSE;
ENDIF
ENDFUNC

!------------------------------------------------ FUNCION PaletDListo --------


---------------------------------
! Determina si el palet derecho está listo para usarse
FUNC bool PaletDListo()
IF X07_HabilitaPD=1 AND PaletDLleno=FALSE AND X02_PaletDEnMov=0 AND
S22_PaletDEnPos=1 THEN
RETURN TRUE;
ELSE
RETURN FALSE;
ENDIF
ENDFUNC

!------------------------------------------------------- PROCEDIMIENTO MENSAJE


--------------------------------------------
! Contaena el string con el mensaje a escribir con la hora actual del sistema
PROC Mensaje(
string txt)

VAR string time;

time:=CTime();
TPWrite txt+time;
ENDPROC

!------------------------------------------------ PROCEDIMIENTO COMPRUEBA PRE-


PARADO -----------------------------------------
PROC CompPreparado()
! Comprueba que se cumplan todas las condiciones para poder arrancar robot
IF S41_BarreraExtI=1 AND S42_BarreraExtD=1 AND S43_BarreraIntI=1 AND
S44_BarreraIntD=1 AND X00_PlcOk=1 Preparado:=TRUE;
ENDPROC

!------------------------------------------------ PROCEDIMIENTO ABRE GARRA ---


------------------------------------------
PROC AbreGarra()

Página 25 de 40
Robótica Trabajo Obligatorio

Reset Z32_CerrarGarra;
Set Z31_AbrirGarra;
IF DETECCION WaitDI S31_GarraAbierta,TDETGARRA;
!si está la detección habilitada comprueba apertura
ENDPROC

!------------------------------------------------ PROCEDIMIENTO CIERRA GARRA -


--------------------------------------------
PROC CierraGarra()
Reset Z31_AbrirGarra;
Set Z32_CerrarGarra;
IF DETECCION WaitDI S32_GarraCerrada,TDETGARRA;
!si está la detección habilitada comprueba cierre
ENDPROC

!------------------------------------------------ PROCEDIMIENTO PALETIZA CAJA


------------------------------------------
PROC PaletizaCaja()
!-- Elije el palet al que dejará la caja
ElijePalet;
!-- Si hay algún palet listo, recoje caja y sigue con el procedimiento
TEST PActual
CASE 1:
PaletizaI;
CASE 2:
PaletizaD;
ENDTEST
ENDPROC

!------------------------------------------------ PROCEDIMIENTO ELIJE PALET --


----------------------------------------
! Determina el palet al que se va a descargar la caja (0 = ninguno, 1= iz-
quierdo, 2= derecho)
PROC ElijePalet()
IF PaletIListo() AND PActual<>2 THEN
PActual:=1;
ELSEIF PaletDListo() THEN
PActual:=2;
ELSE
PActual:=0;
ENDIF
ENDPROC

!------------------------------------------------- PROCEDIMIENTO REGOGE CAJA -


------------------------------------------
PROC RecogeCaja()
! Recoje saco del transportador
AbreGarra;
ConfJ\Off;
ConfL\Off;
MoveJ Recogida,v2000,fine,tGarra1\WObj:=Transportador;
CierraGarra;
MoveJ RecogidaElevado,v2000,fine,tGarra1\WObj:=Transportador;
!si está la detección habilitada comprueba presencia de saco
IF DETECCION WaitDI S33_CajaEnGarra,TDETSACO;
ENDPROC

!-------------------------------------------------- PROCEDIMIENTO PALETIZA I -


--------------------------------------------
PROC PaletizaI()

Página 26 de 40
Robótica Trabajo Obligatorio

! Procedimiento para paletizar sobre el palet izquierdo


VAR robtarget PosDescarga;

RecogeCaja;
Incr contadorI;
!--Determina posición a paletizar
!
! Carga conf ejex externos
PosDescarga.extax:=PaletI.extax;
!
! Carga posicion XYZ del siguiente saco
PosDescarga.trans:=posicion{contadorI};
PosDescarga.trans.z:=PosDescarga.trans.z+HDESCARGA;
!
! Carga orientación a partir del ángulo de eje Z
PosDescarga.rot:=OrientZYX(orientacion{contadorI},0,0);
!
! Determina robconf (confdata)
PosDescar-
ga.robconf:=CConfEjes(1,posicion{contadorI}.x,orientacion{contadorI});
!
! Posiciona saco
MoveL PaletIElevado,v2000,z200,tGarra1\WObj:=WPaletI;
MoveL PosDescarga,v2000,fine,tGarra1\WObj:=WPaletI;
! Abre garra
AbreGarra;
! Sube
PosDescarga.trans.z:=PaletIElevado.trans.z;
MoveL PosDescarga,v2000,z200,tGarra1\WObj:=WPaletI;
! Si era el último saco avisa de palet lleno al PLC y muestra mensaje
IF contadorI>=NSACOS THEN
PaletILleno:=TRUE;
Set Y01_PaletILleno;
Mensaje (TxtPILleno);
ENDIF
MoveL RecogidaElevado,v2000,z200,tGarra1\WObj:=Transportador;
ENDPROC

!--------------------------------------------------- PROCEDIMIENTO PALETIZA D


---------------------------------------------
PROC PaletizaD()
! Procedimiento para paletizar sobre el palet derecho
VAR robtarget PosDescarga;

RecogeCaja;
Incr contadorD;
!--Determina posición a paletizar
!
! Carga conf ejex externos
PosDescarga.extax:=PaletD.extax;
!
! Carga posicion XYZ del siguiente saco
PosDescarga.trans:=posicion{contadorD};
PosDescarga.trans.z:=PosDescarga.trans.z+HDESCARGA;
!
! Carga orientación a partir del ángulo de eje Z
PosDescarga.rot:=OrientZYX(orientacion{contadorD},0,0);
!
! Determina robconf (confdata)

Página 27 de 40
Robótica Trabajo Obligatorio

PosDescar-
ga.robconf:=CConfEjes(1,posicion{contadorD}.x,orientacion{contadorD});
!
! Posiciona saco
MoveL PaletDElevado,v2000,z200,tGarra1\WObj:=WPaletD;
MoveL PosDescarga,v2000,fine,tGarra1\WObj:=WPaletD;
! Abre garra
AbreGarra;
!Sube
PosDescarga.trans.z:=PaletDElevado.trans.z;
MoveL PosDescarga,v2000,z200,tGarra1\WObj:=WPaletD;
! Si era el último saco avisa de palet lleno al PLC y muestra mensaje
IF contadorD>=NSACOS THEN
PaletDLleno:=TRUE;
Set Y02_PaletDLleno;
Mensaje (TxtPDLleno);
ENDIF
MoveL RecogidaElevado,v2000,fine,tGarra1\WObj:=Transportador;
ENDPROC

!---------------------------------------------------- PROCEMINIENTO MAIN -----


-------------------------------------------
PROC main()
!-- Habilita interrupciones
HabilitaInt;
!-- Carga datos posiciones de paletizado
EstructuraPalet;
!-- Espera hasta Preparado = TRUE
WHILE Preparado=FALSE DO
CompPreparado;
ENDWHILE
!-- Ejecuta mientras Preparado
WHILE Preparado DO
!-- Si se ha pulsado PARO mueve hacia HOME
IF Paro THEN
MoveL Home,v2000,fine,tGarra1;
Reset Y03_EnMarcha;
Paro:=FALSE;
ENDIF
!-- Espera hasta Marcha=True
WaitUntil Marcha;
Set Y03_EnMarcha;
MoveJ RecogidaElevado,v1000,fine,tGarra1\WObj:=Transportador;
!-- Espera hasta presencia de caja
WaitUntil S10_CajaLista=1 OR Paro;
!-- Paletiza caja
IF Marcha PaletizaCaja;
ENDWHILE
ENDPROC
ENDMODULE

MODULE Formato
CONST num NSACOS:=56;
CONST num HDESCARGA:=150;
VAR pos posicion{NSACOS};
VAR num orientacion{NSACOS};
PERS num contadorI:=0;
PERS num contadorD:=0;

Página 28 de 40
Robótica Trabajo Obligatorio

!--------------------------------------------------------- FUNCION CCONFEJES -


--------------------------------------
! Calcula la configuración de ejes en función del palet la orientación y posi-
cion del saco a paletizar
FUNC confdata CConfEjes(
num palet,
num posX,
num orientZ)

VAR confdata cfg;

TEST palet
CASE 1:
TEST orientZ
CASE 0:
IF posX>=-600 THEN
cfg:=[0,0,1,0];
ELSE
cfg:=[1,0,2,0];
ENDIF
CASE 90:
IF posX>=-600 THEN
cfg:=[0,0,0,0];
ELSE
cfg:=[1,0,1,0];
ENDIF
ENDTEST
CASE 2:
TEST orientZ
CASE 0:
IF posX>=-600 THEN
cfg:=[-1,0,0,0];
ELSE
cfg:=[-2,0,-1,0];
ENDIF
CASE 90:
IF posX>=-600 THEN
cfg:=[-1,0,-1,0];
ELSE
cfg:=[-2,0,-2,0];
ENDIF
ENDTEST
ENDTEST
RETURN cfg;
ENDFUNC

PROC EstructuraPalet()
!-------------------------------------- ESTRUCTURA DEL PALET --------------
---------------------------
!-- POSICIONES
! FILA 1 (orden A)
posicion{1}:=[-1050,200,0];
posicion{2}:=[-1000,650,0];
posicion{3}:=[-750,200,0];
posicion{4}:=[-600,650,0];
posicion{5}:=[-450,200,0];
posicion{6}:=[-200,650,0];
posicion{7}:=[-150,200,0];
! FILA 2 (orden B)
posicion{8}:=[-1000,150,130];

Página 29 de 40
Robótica Trabajo Obligatorio

posicion{9}:=[-1050,600,130];
posicion{10}:=[-600,150,130];
posicion{11}:=[-750,600,130];
posicion{12}:=[-450,600,130];
posicion{13}:=[-200,150,130];
posicion{14}:=[-150,600,130];
! FILA 3 (orden A)
posicion{15}:=[-1050,200,260];
posicion{16}:=[-1000,650,260];
posicion{17}:=[-750,200,260];
posicion{18}:=[-600,650,260];
posicion{19}:=[-450,200,260];
posicion{20}:=[-200,650,260];
posicion{21}:=[-150,200,260];
! FILA 4 (orden B)
posicion{22}:=[-1000,150,390];
posicion{23}:=[-1050,600,390];
posicion{24}:=[-600,150,390];
posicion{25}:=[-750,600,390];
posicion{26}:=[-450,600,390];
posicion{27}:=[-200,150,390];
posicion{28}:=[-150,600,390];
! FILA 5 (orden A)
posicion{29}:=[-1050,200,520];
posicion{30}:=[-1000,650,520];
posicion{31}:=[-750,200,520];
posicion{32}:=[-600,650,520];
posicion{33}:=[-450,200,520];
posicion{34}:=[-200,650,520];
posicion{35}:=[-150,200,520];
! FILA 6 (orden B)
posicion{36}:=[-1000,150,650];
posicion{37}:=[-1050,600,650];
posicion{38}:=[-600,150,650];
posicion{39}:=[-750,600,650];
posicion{40}:=[-450,600,650];
posicion{41}:=[-200,150,650];
posicion{42}:=[-150,600,650];
! FILA 7 (orden A)
posicion{43}:=[-1050,200,780];
posicion{44}:=[-1000,650,780];
posicion{45}:=[-750,200,780];
posicion{46}:=[-600,650,780];
posicion{47}:=[-450,200,780];
posicion{48}:=[-200,650,780];
posicion{49}:=[-150,200,780];
! FILA 8 (orden B)
posicion{50}:=[-1000,150,910];
posicion{51}:=[-1050,600,910];
posicion{52}:=[-600,150,910];
posicion{53}:=[-750,600,910];
posicion{54}:=[-450,600,910];
posicion{55}:=[-200,150,910];
posicion{56}:=[-150,600,910];
!-- ORIENTACIONES
orienta-
cion:=[0,90,0,90,0,90,0,90,0,90,0,0,90,0,0,90,0,90,0,90,0,90,0,90,0,0,90,0,0,90,
0,90,0,90,0,90,0,90,0,0,90,0,0,90,0,90,0,90,0,90,0,90,0,0,90,0];
ENDPROC
ENDMODULE

Página 30 de 40
Robótica Trabajo Obligatorio

3. Innovación

3.1. Garra

Para la realización de este proyecto se ha elegido una garra fabricada por ABB para operaciones de
paletizado de sacos, concretamente la ABB FlexGripper-Claw.

Para conectar esta garra al robot necesitamos las siguientes señales:


 Apertura de garra.
 Cierre de garra.
 Detector apertura
 Detector de cierre
 Detector de producto
 Subida de detector de producto
Estas señales ya están prevista en nuestro proyecto, como se puede comprobar en 2.3 Entradas y
salidas.

Ilustración 12: ABB FlexGripper-Claw

Como no se ha podido conseguir un modelo CAD 3D de esta garra, se ha modelado un modelo


simplificado con Google SketchUp, mostrado en la Ilustración 13: Modelo simplificado de la garra
que se ha convertido al formato de RobotStudio y creado como herramienta.

Página 31 de 40
Robótica Trabajo Obligatorio

Ilustración 13: Modelo simplificado de la garra

3.2. Interacción con PLC: Cambio de palet.

Cuando un palet se ha completado, el robot activa la señal Y01_PaletILleno o Y02_PaletDLleno (en


función de si se trata del palet izquierdo o derecho), quedando en manos del PLC externo el proceso
de cambio de palet.

Ilustración 14: Detalle transportador derecho

Los procesos de carga y descarga se muestran en los siguientes diagramas de tiempos.

Página 32 de 40
Robótica Trabajo Obligatorio

a) Cronograma descarga palet lleno

Ilustración 15: Cronograma descarga palet

b) Cronograma carga palet vacío

Ilustración 16: Cronograma carga palet

Página 33 de 40
Robótica Trabajo Obligatorio

4. Anexos

4.1. Movimiento del manipulador IRB6400R

Página 34 de 40
Robótica Trabajo Obligatorio

(ABB
Robotics Products AB)

Página 35 de 40
Robótica Trabajo Obligatorio

4.2. Dimensiones manipulador y controlador.

Página 36 de 40
Robótica Trabajo Obligatorio

Página 37 de 40
Robótica Trabajo Obligatorio

4.3. Folleto garra ABB FlexGripper-Claw

Página 38 de 40
Robótica Trabajo Obligatorio

Página 39 de 40
Robótica Trabajo Obligatorio

5. Bibliografía
 ABB Robotics. (s.f.). Obtenido de http://new.abb.com/products/robotics/es/robots-
industriales

 ABB Robotics Products AB. Product Specification IRB 6400R .

 Ferreiro, S. (s.f.). Transporte Internacional. Obtenido de


 http://transporteinternacional.blogspot.com.es/2006/09/palets.html

 SEAS. Manual Asignatura Robótica.

Página 40 de 40