Beruflich Dokumente
Kultur Dokumente
Í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
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.
Página 3 de 40
Robótica Trabajo Obligatorio
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.
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 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
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:
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
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 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
e) Seguridades
Página 9 de 40
Robótica Trabajo Obligatorio
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.
Página 10 de 40
Robótica Trabajo Obligatorio
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)
En la Ilustración 5: Detalle TCP Garrase muestra un detalle de los sistemas de coordenadas del
robot y de la garra.
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.
Para nuestro proyecto, y dadas las dimensiones de los sacos (400x300x130), las diferentes alturas
irán alternando las siguientes formas:
Página 13 de 40
Robótica Trabajo Obligatorio
Página 14 de 40
Robótica Trabajo Obligatorio
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
Para facilitar la prueba del programa, se muestra una captura de pantalla con las señales adecuadas
activadas para iniciar la marcha del robot.
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).
Página 17 de 40
Robótica Trabajo Obligatorio
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
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).
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
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
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
!
!------------------------------------------ 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
!
!-- 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
!
!-- 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
actejes:=CJointT();
ejes:=actejes.robax;
Página 24 de 40
Robótica Trabajo Obligatorio
inicio:=TRUE;
ELSE
! si no se encuentra en posición muestra mensaje
Mensaje (TxtInicio);
ENDIF
RETURN inicio;
ENDFUNC
time:=CTime();
TPWrite txt+time;
ENDPROC
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
Página 26 de 40
Robótica Trabajo Obligatorio
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
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
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
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.
Página 31 de 40
Robótica Trabajo Obligatorio
Página 32 de 40
Robótica Trabajo Obligatorio
Página 33 de 40
Robótica Trabajo Obligatorio
4. Anexos
Página 34 de 40
Robótica Trabajo Obligatorio
(ABB
Robotics Products AB)
Página 35 de 40
Robótica Trabajo Obligatorio
Página 36 de 40
Robótica Trabajo Obligatorio
Página 37 de 40
Robótica Trabajo Obligatorio
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
Página 40 de 40