Simulación 6 con RobotStudio ABB, Movimiento y soldadura de Piezas.
Programación de robots industriales Off-Line.
- Aprender a crear Subrutinas.
- Crear Bases.
- Usar Entradas y Salidas Digitales.
Posición, y Rotación de los objetos:
-Tomando como referencia Mundo.
Objeto | X | Y | Z | Descargar Componentes | A | B | C |
Robot Manipulación | 0 | 0 | 0 | Robot componente | 0 | 0 | 0 |
Robot Soldadura (Eje J2 a -45º) | 1000 | 0 | 0 | Robot componente | 0 | 0 | 180 |
Pieza Roja | -150 | -500 | 0 | Componente Pieza Roja | 0 | 0 | 90 |
Pieza Amarilla | 50 | -500 | 0 | Componente Pieza Amarilla | 0 | 0 | 90 |
Pieza Verde | 100 | 0 | 0 | Componente Pieza Verde | 0 | 0 | 0 |
AW Gun PSF 25 (Unida automáticamente al Robot) | - | - | - | Componente AW Gun PSF 25 | - | - | - |
SC_Ventosa | - | - | - | Componente SC_Ventosa | - | - | - |
Estación Completa (Vacía) | - | - | - | Estación Completa | - | - | - |
Loading...
RAPID Manipulador:
MODULE Module1
CONST robtarget Home:=[[386.004554105,0,581.499960942],[0.500000012,0,0.866025397,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_10:=[[49.730279581,100.440025087,149.981241653],[0,0.707106797,0.707106766,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_20:=[[49.730304056,100.439981861,49.981282345],[0,0.707106781,0.707106781,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget P10:=[[49.765724917,100.425,149.999838243],[0.000000014,0,1,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget P20:=[[49.765727717,100.425,49.999838243],[0.000000014,0,1,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_30:=[[100.000249448,49.99963386,150.000149799],[-0.000000007,0.001448531,0.999998951,0.000000004],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_40:=[[100.000212406,49.999598382,50.000149659],[-0.000000008,0.001448527,0.999998951,0.000000004],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_50:=[[249.765970148,100.425451843,150.000150551],[-0.000000005,0.489418083,0.872049276,0.000000008],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_60:=[[249.765982427,100.425428004,50.000144264],[-0.000000018,0.489418088,0.872049273,0.000000032],[-2,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_70:=[[100,250.001,150],[0,-0.275637356,0.961261696,0],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_80:=[[100,250.001,50],[0,-0.275637356,0.961261696,0],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_90:=[[449.765885214,100.424753867,150.000141196],[-0.000000027,0.20132072,0.979525379,0.000000025],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_100:=[[449.765894995,100.424798324,50.000043167],[-0.000000034,0.201320691,0.979525385,0.000000033],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_110:=[[100,450,150],[0,-0.551936985,0.833885822,0],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_120:=[[100,450,50],[0,-0.551936985,0.833885822,0],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_130:=[[113.917617582,0,581.499976926],[0.50000002,0,0.866025392,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_140:=[[-50,100,150],[0,-0.707106781,0.707106781,0],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_150:=[[-50,100,50],[0,-0.707106781,0.707106781,0],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_160:=[[-250,100,150],[0,0.874619707,-0.48480962,0],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_170:=[[-250,100,50],[0,0.874619707,-0.48480962,0],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_180:=[[-450,100,150],[0,0.979924705,-0.199367934,0],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_190:=[[-450,100,50],[0,0.979924705,-0.199367934,0],[1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_220:=[[136.004554105,-300,581.499960942],[0.500000012,0,0.866025397,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Home2:=[[113.917617582,0,581.499976926],[0.50000002,0,0.866025392,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
PROC main()
WaitDI IN_1,0;
SetDO OUT_2, 1;
SetDO OUT_1, 0;
MoveJ Home,v1000,fine,MyNewTool\WObj:=wobj0;
Secuancia_1;
WaitTime 10;
Secuencia_2;
Secuencia_3;
WaitTime 9;
Secuencia_4;
MoveJ Home,v1000,fine,MyNewTool\WObj:=wobj0;
ENDPROC
PROC coger()
SetDO OUT_2, 0;
SetDO OUT_1, 1;
WaitDI IN_1,1;
ENDPROC
PROC soltar()
SetDO OUT_1, 0;
SetDO OUT_2, 1;
WaitDI IN_1,0;
ENDPROC
PROC Secuancia_1()
MoveJ Target_10,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_20,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
coger;
MoveL Target_10,v1000,z100,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_30,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_40,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
soltar;
MoveL Target_30,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_50,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_60,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
coger;
MoveL Target_50,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_70,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_80,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
soltar;
MoveL Target_70,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_90,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_100,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
coger;
MoveL Target_90,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_110,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_120,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
soltar;
MoveL Target_110,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Home2,v500,fine,MyNewTool\WObj:=wobj0;
ENDPROC
PROC Secuencia_2()
MoveL Target_30,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_40,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
coger;
MoveL Target_30,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_140,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_150,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
soltar;
MoveL Target_140,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_70,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_80,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
coger;
MoveL Target_70,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_160,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_170,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
soltar;
MoveL Target_160,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_110,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_120,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
coger;
MoveL Target_110,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_180,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_190,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
soltar;
MoveL Target_180,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
ENDPROC
PROC Secuencia_3()
MoveL Target_140,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_150,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
coger;
MoveL Target_140,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_30,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_40,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
soltar;
MoveL Target_30,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_160,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_170,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
coger;
MoveL Target_160,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_70,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_80,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
soltar;
MoveL Target_70,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_180,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_190,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
coger;
MoveL Target_180,v500,fine,MyNewTool\WObj:=W_PIEZA_C;
MoveL Target_110,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_120,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
soltar;
MoveL Target_110,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Home2,v500,fine,MyNewTool\WObj:=wobj0;
ENDPROC
PROC Secuencia_4()
MoveL Target_30,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_40,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
coger;
MoveL Target_30,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_10,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_20,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
soltar;
MoveL Target_10,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_70,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_80,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
coger;
MoveL Target_70,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_50,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_60,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
soltar;
MoveL Target_50,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_110,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_120,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
coger;
MoveL Target_110,v500,fine,MyNewTool\WObj:=W_PIEZA_B;
MoveL Target_90,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
MoveL Target_100,v500,fine,MyNewTool\WObj:=W_PIEZA_A;
soltar;
ENDPROC
ENDMODULE
RAPID Soldador:
MODULE Module1
CONST robtarget HOME:=[[413.611385051,0,738.273644118],[0.428936943,0,0.903334433,0],[0,0,0,4],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_10:=[[198.576097689,499.61921205,79.963606194],[0.03270365,-0.175169299,0.98394468,0.00995262],[0,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_20:=[[199.999995085,500.000003781,49.999960872],[0.023035652,-0.170442296,0.985090299,0.003985676],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_30:=[[199.999999224,399.999998228,49.999957594],[0.023035724,-0.170442297,0.985090297,0.003985677],[0,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_40:=[[0.000019571,400.000013055,49.999962168],[0.023035758,-0.170442292,0.985090297,0.003985686],[0,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_50:=[[-0.000001789,499.999992836,49.999936301],[0.023035775,-0.17044229,0.985090297,0.003985685],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_60:=[[199.20910437,299.317738884,79.981692943],[0.02224914,-0.022790767,0.999444043,0.009857069],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_70:=[[200.0000012,299.999998876,49.999974287],[0.013280294,-0.008510458,0.999812191,0.01126002],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_80:=[[200.000000274,200.000002566,49.99996857],[0.01188574,0.048145564,0.99825121,0.032175374],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_90:=[[0.000007893,199.999993732,49.999906979],[0.011885807,0.048145545,0.998251211,0.032175362],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_100:=[[0.000006408,300.000000112,49.999947706],[0.011885835,0.048145525,0.998251212,0.032175341],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_110:=[[198.457043669,100.085540751,79.960290755],[0.025734696,0.108958898,0.993712106,0.001390619],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_120:=[[200.00059469,100.000166257,50.000091322],[0.025734728,0.108958898,0.993712105,0.001390616],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_130:=[[200.000265557,0.00015883,49.999826191],[0.025772198,0.16540029,0.985889716,-0.000077929],[-1,0,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_140:=[[-0.000448969,-0.000212873,49.999483865],[0.025772238,0.165400295,0.985889714,-0.000077941],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_150:=[[-0.000334187,100.000261997,49.999514596],[0.025772277,0.165400282,0.985889715,-0.000077947],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
!***********************************************************
!
! Módulo: Module1
!
! Descripción:
! <Introduzca la descripción aquí>
!
! Autor: Carlos Urrestarazu
!
! Versión: 1.0
!
!***********************************************************
!***********************************************************
!
! Procedimiento Main
!
! Este es el punto de entrada de su programa
!
!***********************************************************
PROC main()
MoveJ HOME,v1000,fine,AW_Gun\WObj:=wobj0;
WaitTime 13;
Suelda_Roja;
Suelda_Amarilla;
Suelda_Verde;
MoveJ HOME,v1000,z100,AW_Gun\WObj:=wobj0;
WaitTime 26;
Suelda_Roja;
Suelda_Amarilla;
Suelda_Verde;
MoveJ HOME,v1000,z100,AW_Gun\WObj:=wobj0;
!Añada aquí su código
ENDPROC
PROC Suelda_Roja()
MoveJ Target_10,v1000,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_20,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_30,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_40,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_50,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_20,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_10,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
ENDPROC
PROC Suelda_Amarilla()
MoveJ Target_60,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_70,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_80,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_90,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_100,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_70,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_60,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
ENDPROC
PROC Suelda_Verde()
MoveJ Target_110,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_120,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_130,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_140,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_150,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_120,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
MoveL Target_110,v500,fine,AW_Gun\WObj:=W_PIEZA_Soldar;
ENDPROC
ENDMODULE
Enlaces de Interés:
Fecha Publicación: 17/12/2020