Simulación 6 con RobotStudio ABB, Movimiento y soldadura de Piezas.

Programación de robots industriales Off-Line.

  1. Aprender a crear Subrutinas.
  2. Crear Bases.
  3. 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