Programación 12 ABB.
Aprender Linguaxe RAPID, poderemos programar desde RobotStudio, ou desde a FlexPendant.
- Exemplo usando estas instrucións MoveL Offs & FOR; Se quere realizar o exemplo pode tomar como base a estación: Estación ABB 1 Ventosa:
MODULE Module1 CONST robtarget Target_10:=[[24.000115009,23.999900721,78.0403562],[0.70710679,0.000000031,0.707106772,-0.000000006],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; VAR num DesY := 0; VAR num AX := 0; VAR num AY := 0; VAR num AZ := 1; CONST jointtarget JointTarget_1:=[[0,0,0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; PROC main() SetDO D652_10_DO1,0; SetDO D652_10_DO2,1; FOR Z FROM 1 TO 0 DO FOR Y FROM 1 TO 0 DO FOR X FROM 1 TO 0 DO MoveJ Offs(Target_10,0,0,0),v200,fine,tool2_Ventosa\WObj:=wobj1_Base_A; Coger; MoveJ Offs(Target_10,(X*42),(Y*42),60),v200,fine,tool2_Ventosa\WObj:=wobj2_Base_B; AX := X; AY := Y; AZ := Z; Dejar; ENDFOR ENDFOR ENDFOR MoveAbsJ JointTarget_1,v200,z100,tool2_Ventosa\WObj:=wobj1_Base_A; ENDPROC PROC coger() MoveL Offs(Target_10,0,0,(-40.04)),v200,fine,tool2_Ventosa\WObj:=wobj1_Base_A; SetDO D652_10_DO2,0; SetDO D652_10_DO1,1; WaitDI D652_10_DI4, 1; MoveL Offs(Target_10,0,0,0),v200,fine,tool2_Ventosa\WObj:=wobj1_Base_A; ENDPROC PROC dejar() MoveL Offs(Target_10,(AX*42),(AY*42),(AZ*(-40.04))),v200,fine,tool2_Ventosa\WObj:=wobj2_Base_B; SetDO D652_10_DO1,0; SetDO D652_10_DO2,1; WaitDI D652_10_DI4, 0; MoveL Offs(Target_10,(AX*42),(AY*42),60),v200,fine,tool2_Ventosa\WObj:=wobj2_Base_B; ENDPROC ENDMODULE
Programación 11 V3 ABB.
Aprender Linguaxe RAPID, poderemos programar desde RobotStudio, ou desde a FlexPendant.
- Exemplo usando estas instrucións MoveL Offs, WaitTime & FOR; Se quere realizar o exemplo pode tomar como base a estación Estación PROG_11 V3 Vacía:
MODULE Module1 VAR robtarget Primera_Pos:=[[-0.222935967,0.000098037,49.999436079],[0,0,1,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; VAR num NSec := 0; VAR num NUMERO := 0; CONST jointtarget Home_Abs:=[[0,0,0,0,30,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; PROC main() Primera_Pos.trans.x := -0.222935967; Primera_Pos.trans.y := 0.000098037; Primera_Pos.trans.z := 49.999436079; TPErase; TPReadnum NUMERO, "Introduzaca un número entre 1 y 4"; MoveAbsJ Home_Abs,v1000,fine,MyTool\WObj:=W_Soldar; TEST NUMERO CASE 1: TPWrite "Soldando Derecha"; FOR NSec FROM 0 to 2 DO Soldar; Primera_Pos.trans.x := Primera_Pos.trans.x + 100; MoveL Primera_Pos,v200,fine,MyTool\WObj:=W_Soldar; ENDFOR CASE 2: TPWrite "Soldando Centro"; Primera_Pos.trans.x := Primera_Pos.trans.x + 300; FOR NSec FROM 0 to 2 DO Soldar; Primera_Pos.trans.y := Primera_Pos.trans.y + 100; MoveL Primera_Pos,v200,fine,MyTool\WObj:=W_Soldar; ENDFOR CASE 3: TPWrite "Soldando Izquierda"; Primera_Pos.trans.x := Primera_Pos.trans.x + 300; Primera_Pos.trans.y := Primera_Pos.trans.y + 300; FOR NSec FROM 0 to 2 DO Soldar; Primera_Pos.trans.x := Primera_Pos.trans.x - 100; MoveL Primera_Pos,v200,fine,MyTool\WObj:=W_Soldar; ENDFOR CASE 4: TPWrite "Soldando Derecha"; FOR NSec FROM 0 to 2 DO Soldar; Primera_Pos.trans.x := Primera_Pos.trans.x + 100; MoveL Primera_Pos,v200,fine,MyTool\WObj:=W_Soldar; ENDFOR TPWrite "Soldando Centro"; FOR NSec FROM 0 to 2 DO Soldar; Primera_Pos.trans.y := Primera_Pos.trans.y + 100; MoveL Primera_Pos,v200,fine,MyTool\WObj:=W_Soldar; ENDFOR TPWrite "Soldando Izquierda"; FOR NSec FROM 0 to 2 DO Soldar; Primera_Pos.trans.x := Primera_Pos.trans.x - 100; MoveL Primera_Pos,v200,fine,MyTool\WObj:=W_Soldar; ENDFOR ENDTEST Soldar; MoveAbsJ Home_Abs,v1000,fine,MyTool\WObj:=W_Soldar; ENDPROC PROC Soldar() MoveL RelTool(Primera_Pos,0,0,0),v200,fine,MyTool\WObj:=W_Soldar; MoveL RelTool(Primera_Pos,0,0,50),v200,fine,MyTool\WObj:=W_Soldar; WaitTime 2; MoveL RelTool(Primera_Pos,0,0,0),v200,fine,MyTool\WObj:=W_Soldar; ENDPROC ENDMODULE