Prévia do material em texto
Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina Engenharia Mecatrônica RELATÓRIO DA PROGRAMAÇÃO ABB RAPID – FANUC KAREL COM SOFTWARE ROBODK Marcos Rodrigues Butignol Florianópolis, 15 de maio de 2017 2 1. Descrever todos os dados da instrução de movimentação MoveL Figura 1: Movimentação linear de aresta de um cubo; 1 MoveL P50,v100,fine,MyTool\WObj:=Work1; 2 CONST robtarget P50:=[[300,300,0], [0,- 0.70710678,0.707106782,0], [0,0,- 2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; 3 TASK PERS wobjdata Work1:=[FALSE,TRUE,"",[[885,-125,600], [1,0,0,0]],[[0,0,0],[1,0,0,0]]]; 4 PERS tooldata MyTool:=[TRUE,[[31.792631019,0,229.638935148], [0.945518576,0,0.325568154,0]],[1,[0,0,1],[1,0,0,0],0,0,0]]; Instrução 1: MoveL A instrução MoveL indica uma movimentação linear da ponta da ferramenta. P50 indica qual o ponto final da instrução (o ponto inicial é a posição atual), v100 indica a 3 velocidade (em mm/s), fine indica a precisão da movimentação (sem tolerância) e MyTool indica qual ferramenta vai ser utilizada. Utiliza-se, para isso, a referência Work1. Instrução 2: CONST robtarget P50 Esta instrução define o ponto P50. Ele está nas coordenadas cartesianas (em milímetros) 300 x, 300 y e 0 z, seu quatérnio é dado por (0,-0.70710678, 0.70710678,0), sua configuração, isto é, a posição em que cada eixo do braço está posicionada, é (0,0,-2,0) e, por último, não há componentes externos. Instrução 3: TASK PERS wobjdata Work1 Aqui é definido a referência do Work1. A posição dele está em (milímetros) 885 x, -125 y e 600 z. A referência é dada pelo zero peça do cubo. Instrução 4: PERS tooldata MyTool Define-se aqui as propriedades da ferramenta, como qual o tipo utilizado e onde está seu ponto de trabalho. 2. Programação no ROBODK Utilizando o software ROBODK, fez-se as instruções descritas acima primeiramente num manipulador ABB e, em seguida, em um manipulador Fanuc Karel. Em seguida fez-se a simulação dos movimentos e escreveu-se o programa de ambos os robôs. 2.1 Programação no ROBODK – ABB 4 Figura 2: Robô ABB e sua movimentação; O robô utilizado da ABB foi o IRB1600-6/1.45, com uma ferramenta de Spindle. A movimentação seguiu-se da maneira que foi indicado, adicionando um Home para a execução do ciclo. Figura 3: Robô ABB e sua sequência; 5 Inicialmente define-se o Workobject e os pontos de movimentação. Como já dito, criou-se um ponto Home e dois pontos extras, chamados p50 e p60, responsáveis pelo início e fim de movimentação, respectivamente. Em seguida, criou-se uma rotina “Prog1”, onde definiu-se os parâmetros de velocidade, referências e tipos de movimentação, lineares e de juntas. Ao fim, gerou-se a simulação e o programa da rotina. 2.2 Programação no ROBODK – Fanuc Karel Apesar de serem manipuladores de diferentes empresas, o método de programação é o mesmo. O robô utilizado foi o Fanuc M-710iC/70. As imagens demonstram o mesmo ciclo. Figura 4: Robô Fanuc e sua sequência; 6 Figura 5: Robô ABB e sua sequência; 3. Detalhes da programação gerada Com a sequência e as configurações definidas anteriormente, gerou-se o programa para a execução de ciclo na central de processamento. As programações completas do manipulador da ABB e no manipulador da Fanuc geradas pelo software são dadas no final do trabalho. A seguir, irá ser mostrado os pontos principais da programação. 7 3.1 Configurações – Workobject 5: PR[9,1]=32.000 ; 6: PR[9,2]=0.000 ; 7: PR[9,3]=260.000 ; 8: PR[9,4]=0.000 ; 9: PR[9,5]=39.000 ; 10: PR[9,6]=0.000 ; Os três primeiros dados são a descrição da origem do workobject, eixos X, Y e Z respectivamente em relação à origem, em milímetros, e os três últimos o ângulo em que o workobject está, dados pela configuração RPY (Roll, pitch e yaw, respectivamente). 3.2 Configurações – Ferramenta 11: UTOOL[9]=PR[9] ; 12: UTOOL_NUM=9 ; 13: PR[9,1]=885.000 ; 14: PR[9,2]=-125.000 ; 15: PR[9,3]=600.000 ; 16: PR[9,4]=0.000 ; 17: PR[9,5]=0.000 ; 18: PR[9,6]=0.000 ; Em seguida o programa descreve qual tipo de ferramenta é utilizado, bem como, a partir da linha 13 até a 15, suas três coordenadas e, a partir da linha 16, angulação em relação ao eixo de manipulação, com eixos XYZ e angulação RPY. 3.3 Configurações – Velocidade e precisão 19: UFRAME[9]=PR[9] ; 20: UFRAME_NUM=9 ; 21:J P[1] 2% CNT0 ; 22:J P[2] 2% FINE ; 23:L P[3] 100mm/sec FINE ; 24:J P[4] 2% CNT0 ; O programa configura quais serão a velocidade a serem utilizadas na movimentação, 100mm/s, e a precisão, variando de zoneamento zero (z0) ou totalmente preciso (fine). 3.3 Configurações – Pontos e movimentação 8 P[1]{ GP1: UF : 9, UT : 9, J1= 10.859 deg, J2= 16.451 deg, J3= -1.874 deg, J4= 10.356 deg, J5= -54.530 deg, J6= -12.937 deg }; P[2]{ GP1: UF : 9, UT : 9, J1= -0.225 deg, J2= 40.363 deg, J3= -26.165 deg, J4= 39.849 deg, J5= 79.152 deg, J6= -99.217 deg }; P[3]{ GP1: UF : 9, UT : 9, CONFIG : 'F U T, 0, 0, 0', X = 300.000 mm, Y = 400.000 mm, Z = 0.000 mm, W = 180.000 deg, P = 0.000 deg, R = -90.000 deg }; P[4]{ GP1: UF : 9, UT : 9, J1= 10.859 deg, J2= 16.451 deg, J3= -1.874 deg, J4= 10.356 deg, J5= -54.530 deg, J6= -12.937 deg }; Por fim, tendo tudo configurado, o programa finaliza com a localização dos pontos a serem trabalhados bem como a sua movimentação em cada um deles, descrevendo a posição de cada junta. 9 ANEXO Programação gerada no ABB IRB1600-6/1.45: /PROG Prog1 /ATTR OWNER = MNEDITOR; COMMENT = "RoboDK sequence"; PROG_SIZE = 0; CREATE = DATE 31-12-14 TIME 12:00:00; MODIFIED = DATE 31-12-14 TIME 12:00:00; FILE_NAME = ; VERSION = 0; LINE_COUNT = 24; MEMORY_SIZE = 0; PROTECT = READ_WRITE; TCD: STACK_SIZE = 0, TASK_PRIORITY = 50, TIME_SLICE = 0, BUSY_LAMP_OFF = 0, ABORT_REQUEST = 0, PAUSE_REQUEST = 0; DEFAULT_GROUP = 1,*,*,*,*; CONTROL_CODE = 00000000 00000000; /MN 1: ! Program generated by RoboDK 3.1.3 f ; 2: ! or ABB IRB 1600-6/1.45 on 15/05/201 ; 3: ! 7 21:39:05 ; 4: ! Using nominal kinematics. ; 5: PR[9,1]=32.000 ; 6: PR[9,2]=0.000 ; 7: PR[9,3]=260.000 ; 8: PR[9,4]=0.000 ; 9: PR[9,5]=39.000 ; 10: PR[9,6]=0.000 ; 11: UTOOL[9]=PR[9] ; 12: UTOOL_NUM=9 ; 13: PR[9,1]=885.000 ; 14: PR[9,2]=-125.000 ; 15: PR[9,3]=600.000 ; 16: PR[9,4]=0.000 ; 17: PR[9,5]=0.000 ; 18: PR[9,6]=0.000 ; 19: UFRAME[9]=PR[9] ; 20: UFRAME_NUM=9 ; 21:J P[1] 2% CNT0 ; 22:J P[2] 2% FINE ; 23:L P[3] 100mm/sec FINE ; 24:J P[4] 2% CNT0 ; /POS P[1]{ GP1: UF : 9, UT : 9, J1= 10.859 deg, J2= 16.451 deg, J3= -1.874 deg, J4= 10.356 deg, J5= -54.530 deg, J6= -12.937 deg }; P[2]{ GP1: UF : 9, UT : 9, J1= -0.225 deg, J2= 40.363 deg, J3= -26.165 deg, J4= 39.849 deg, J5= 79.152 deg, J6= -99.217 deg }; P[3]{ GP1: UF : 9, UT : 9, CONFIG : 'F U T, 0, 0, 0', X = 300.000 mm, Y = 400.000 mm, Z = 0.000 mm, W = 180.000 deg, P = 0.000 deg, R = -90.000 deg }; P[4]{ GP1: UF : 9, UT : 9, J1= 10.859 deg, J2= 16.451 deg, J3= -1.874 deg, J4= 10.356 deg, J5= -54.530 deg, J6= -12.937 deg }; /END 10 ANEXO Programação gerada no Fanuc M-710iC/70: /PROG PROG1 /ATTR OWNER = MNEDITOR;COMMENT = "RoboDK sequence"; PROG_SIZE = 0; CREATE = DATE 15-05-17 TIME 22:00:37; MODIFIED = DATE 15-05-17 TIME 22:00:37; FILE_NAME = ; VERSION = 0; LINE_COUNT = 21; MEMORY_SIZE = 0; PROTECT = READ_WRITE; TCD: STACK_SIZE = 0, TASK_PRIORITY = 50, TIME_SLICE = 0, BUSY_LAMP_OFF = 0, ABORT_REQUEST = 0, PAUSE_REQUEST = 0; DEFAULT_GROUP = 1,*,*,*,*,*,*; CONTROL_CODE = 00000000 00000000; /MN 1: UTOOL_NUM=1; 2: UFRAME_NUM=1; 3: PR[10,1]=500.000 ; 4: PR[10,2]=0.000 ; 5: PR[10,3]=400.000 ; 6: PR[10,4]=0.000 ; 7: PR[10,5]=0.000 ; 8: PR[10,6]=0.000 ; 9: UFRAME[1]=PR[10] ; 10: PR[10,1]=-32.000 ; 11: PR[10,2]=0.000 ; 12: PR[10,3]=260.000 ; 13: PR[10,4]=0.000 ; 14: PR[10,5]=39.000 ; 15: PR[10,6]=180.000 ; 16: UTOOL[1]=PR[10] ; 17: R[10]=100 ; 18:J P[1] 50% CNT0 ; 19:L P[2] R[10]mm/sec FINE ; 20:L P[3] R[10]mm/sec FINE ; 21:J P[4] 50% CNT0 ; /POS P[1]{ GP1: UF : 1, UT : 1, CONFIG : 'F U T, 0, -1, -1', X = 200.000 mm, Y = 0.000 mm, Z = 400.000 mm, W = 180.000 deg, P = 0.000 deg, R = -180.000 deg }; P[2]{ GP1: UF : 1, UT : 1, CONFIG : 'F U T, 0, 0, 0', X = 300.000 mm, Y = 300.000 mm, Z = 0.000 mm, W = 180.000 deg, P = 0.000 deg, R = 90.000 deg }; P[3]{ GP1: UF : 1, UT : 1, CONFIG : 'N D B, 0, 0, 0', X = 300.000 mm, Y = 400.000 mm, Z = 0.000 mm, W = 180.000 deg, P = 0.000 deg, R = 90.000 deg }; P[4]{ GP1: UF : 1, UT : 1, CONFIG : 'F U T, 0, -1, -1', X = 200.000 mm, Y = 0.000 mm, Z = 400.000 mm, W = 180.000 deg, P = 0.000 deg, R = -180.000 deg }; /END