Está en la página 1de 11

Robótica Industrial

TAREA N° 6: Programa robot industrial


utilizando bucles y subrutinas.

Ing. J. Jara L.
Definiciones Previas
LOOP… ENDLOOP: Bucle infinito SWITCH…CASE… ENDSWITCH:
Selección Múltiple
LOOP SWITCH Criterio de selección
PTP P1 Vel=20% PDAT1 CASE identificación1 <, identificación2,…>
WAIT time = 2 sec Bloque de instrucciones
PTP P2 Vel=20% PDAT2 <CASE identificación1 <, identificación2,…>
WAIT time 2 sec Bloque de instrucciones>
ENDLOOP <DEFAULT
Bloque de instrucciones por defecto>
ENDSWITCH
FOR … FROM … TO … DO: Bucle
finito. IF… THEN … ENDIF: Condicional,
INT i
FOR i=1 TO 5 depende de la respuesta
PTP P1 Vel=20% PDAT1 IF Condición THEN
WAIT time = 2 sec Instrucciones
PTP P2 Vel=20% PDAT2 ELSE
WAIT time = 2 sec Instrucciones
ENDFOR ENDIF
Crear Entorno

1) Robot: RB1200
2) Pieza_1: 100x100x100
3) Mesa_1: 200x200x400
Posición: (400,-100,0)
4) Mesa_2: 600x200x400
Posición: (-300,400,0)
Configurar Posición de salida y llegada
Mesa_2
y
p3
(x3, y3, z3)
+y
(0,400,0)
p2
p3 = (-200,500 ,500)
p2 = (0 ,500 ,500) 50 (x2, y2, z2)
P1 = (200 , 500 ,500) X=200 p1
50
+x (300,400,0) (x1, y1, z1)
(300, 600,0)
x
Mesa_1
Configurar Posición de salida y llegada

(x3-ofx, y3, z3)


ofx=ofx-200

(x2-ofx, y2, z2)


ofx=ofx-200

(x1-ofx, y1, z1)


(500,0,400+50) ofx=0

p3 = (-200,500 ,500)
p2 = (0 ,500 ,500)
P1 = (200 , 500 ,500)
Declaración de Variables
Definir variables:
Las variables se declaran mediante el comando VAR, se debe indicar
que el tipo de variable es numérica (num)

Para este ejemplo se declaran variables


en el eje X
ofx = Valor del Offset en el Eje X
cx = Contador en el valor de X
x
( , y, z)
Declaración de Variables
Instrucción Offset (offs): Cuando se invoca, genera un desplazamiento
en el eje indicado.
Movej: Mueve al robot mediante un movimiento de Ejes.

Offset = 0 en el eje y, 0 en el eje z

Debido a que esta instrucción se usa repetitivamente, debe utilizarse


en conjunto con una instrucción de iteración.
Instrucción Iterativa
Instrucción FOR …. ENDFOR

Contador x
cx = cx+1
cx = 0
cx = 0+1=1
cx = 1+1=2
cx = 2+1=3
Procedimiento con bucle (1 Eje)
PROC main()
SetDO startsys,1;
SetDO pinzasys,0;
ofx:= 0;
FOR cx FROM 1 TO 3 DO
WaitDI sensorsys,1;
MoveL Inicio_1,v1000,z100,MyTool\WObj:=wobj0;
MoveL Target_20,v1000,fine,MyTool\WObj:=wobj0;
SetDO pinzasys,1;
MoveL Target_10,v1000,fine,MyTool\WObj:=wobj0;
MoveJ offs(Target_30,ofx,0,0),v1000,fine,MyTool\WObj:=wobj0;
MoveJ offs(Target_40,ofx,0,0),v1000,fine,MyTool\WObj:=wobj0;
SetDO pinzasys,0;
MoveJ offs(Target_30,ofx,0,0),v1000,fine,MyTool\WObj:=wobj0;
MoveL Target_10,v1000,fine,MyTool\WObj:=wobj0;
ofx:=ofx-200;
ENDFOR

ENDPROC
Procedimiento con bucle (1 Eje)

Cuantas cajas

Separación entre cajas


Procedimiento con bucle (2 Ejes)

También podría gustarte