Programación 6 ABB.
Aprender Linguaxe RAPID, poderemos programar desde RobotStudio, ou desde a FlexPendant.
- Control de Flujo WHILE; Bucle While, este repetirá a instrucións do seu interior mentres o valor da variable cumpra a condición programada.
- Control de Flujo WHILE; Formato da mesma:
WHILE IN1 = 1 DO !O Bucle executarase sempre que se cumpra esta condición !Instrucions a realizar mentras se cumpre a condición ENDWHILE
- Exemplo usando estas instrucións TPWrite, TPErase, IF & WHIL; Se quere realizar o exemplo pode tomar como base o exercicio Programación 4 ABB:
MODULE Module1 CONST robtarget Target_10:=[[547.330665099,0,451.64730631],[0.190808996,0,0.981627183,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_20_2:=[[580.004388386,-300.000173756,49.997538618],[0.00007062,0.000000176,-0.999999998,0.000000105],[-1,1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_20:=[[579.997326386,-300.000184257,-0.002460883],[0.00007062,0.000000176,-0.999999998,0.000000105],[-1,1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_30_2:=[[580.007086271,300.000028414,49.999940578],[0.000070808,0.000000206,-0.999999997,0.000000106],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_30:=[[580.000005471,300.000017813,-0.000058921],[0.000070808,0.000000206,-0.999999997,0.000000106],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; VAR num Contador := 1; PROC main() MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; TPErase; WHILE IN1 = 1 DO TPErase; TPWrite "Numero: " \ NUM:= Contador; TPWrite "Soldando Derecha"; Secuencia_1; TPWrite "Soldando Izquierda"; Secuencia_2; MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; Contador := Contador + 1; IF IN2 = 1 THEN !Resetar Contador Contador := 1; ENDIF ENDWHILE MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; IF IN2 = 1 THEN !Resetar Contador Contador := 1; ENDIF ENDPROC PROC Secuencia_1() MoveJ Target_20_2,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20,v1000,fine,MyTool\WObj:=wobj0; WaitTime 2; MoveJ Target_20_2,v1000,fine,MyTool\WObj:=wobj0; ENDPROC PROC Secuencia_2() MoveJ Target_30_2,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_30,v1000,fine,MyTool\WObj:=wobj0; WaitTime 2; MoveJ Target_30_2,v1000,fine,MyTool\WObj:=wobj0; ENDPROC ENDMODULE
Programación 5 ABB.
Aprender Linguaxe RAPID, poderemos programar desde RobotStudio, ou desde a FlexPendant.
- Control de Flujo FOR; Bucle For, este bucle conten unha variable que ira aumentando. Comézase nun valor de partida prefixado ata un valor final. O seu funcionamento é o seguinte: na primeira execución asígnase á variable o valor de partida, e execútase o código do seu interior. Unha vez executado volveremos ao principio deste bucle asignando así á variable o valor desta +1, ascendendo desta maneira o valor da variable en cada execución. Isto repetirase ata que a variable alcance o valor final.
- Control de Flujo FOR; Formato da mesma:
VAR num NUMERO; !Variable que usaremos para o bucle FOR FOR NUMERO FROM 1 TO 3 DO !Bucle For desde Numero = 1, ata que Numero = 3. !Instrucions a executar ENDFOR !Final FOR
- Exemplo usando estas instrucións TPWrite, TPErase & FOR; Se quere realizar o exemplo pode tomar como base o exercicio Programación 4 ABB:
MODULE Module1 CONST robtarget Target_10:=[[547.330665099,0,451.64730631],[0.190808996,0,0.981627183,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_20_2:=[[580.004388386,-300.000173756,49.997538618],[0.00007062,0.000000176,-0.999999998,0.000000105],[-1,1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_20:=[[579.997326386,-300.000184257,-0.002460883],[0.00007062,0.000000176,-0.999999998,0.000000105],[-1,1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_30_2:=[[580.007086271,300.000028414,49.999940578],[0.000070808,0.000000206,-0.999999997,0.000000106],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_30:=[[580.000005471,300.000017813,-0.000058921],[0.000070808,0.000000206,-0.999999997,0.000000106],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; VAR num NUMERO; PROC main() MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; TPErase; FOR NUMERO FROM 1 TO 3 DO TPErase; TPWrite "Numero: " \ NUM:= NUMERO; TPWrite "Soldando Derecha"; Secuencia_1; WaitTime 2; TPWrite "Soldando Izquierda"; Secuencia_2; WaitTime 2; MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; ENDFOR ENDPROC PROC Secuencia_1() MoveJ Target_20_2,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20_2,v1000,fine,MyTool\WObj:=wobj0; ENDPROC PROC Secuencia_2() MoveJ Target_30_2,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_30,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_30_2,v1000,fine,MyTool\WObj:=wobj0; ENDPROC ENDMODULE