You are on page 1of 6

1.

Pick and Place Robot (KR 16-2 KS):


DEF MAIN_PROG()
INT ROW
INI
PTP HOME Vel=100% DEFAULT
WAIT FOR $IN[33]= =TRUE ; Receive signal ON from PLC
WAIT SEC 2
PTP P1 CONT Vel=0.2m/s PDAT1 Tool[1] Base[1]
PICK_CUPS()
PTP P2 CONT Vel=0.2m/s CPDAT1 Tool[1] Base[1]
ENDIF
PLACE_CUPS()
PTP {A4 0}

; Rotate Axis 4 to original position

PTP HOME Vel=100% DEFAULT


$OUT[34]= =TRUE

; Send signal to PLC

WAIT SEC 2
$OUT[34]= =FALSE
END

; Turn off signal to PLC

DEF PICK_CUPS
INI
LIN_REL {-Z 300}
WAIT SEC 2
$OUT[33]= =TRUE
LIN_REL {Z 300}

; Turn on solenoid valve

END
DEF PLACE_CUPS
INI
LIN_REL {-Z ROW*400}
WAIT SEC 2
$OUT[33]= =FALSE
LIN_REL {Z ROW*400}

; Turn off solenoid valve

END

2. Palletizing Robot (KR 16-2 KS):


DEF Main_PROG()
INT HOR_DiS, VER_DIS, POST, ROW
INI
HOR_DIS = 0
PTP HOME Vel=100% DEFAULT

FOR ROW = 1 TO 4
FOR POST = 1 TO 12
WAIT FOR $IN[33]==TRUE ;Get signal ON from PLC
WAIT SEC 2
PTP P1 CONT Vel=0.2m/s PDAT1 Tool[1] Base[1]
PICK_CARTON()
PTP P2 CONT Vel=0.2m/s CPDAT1 Tool[1] Base[1]
IF ROW=1
IF POST>=1 AND POST<=3 THEN
LIN_REL {X 560}
LIN_REL {Y 735}
LIN_REL {-X HOR_DIS}
HOR_DIS = HOR_DIS + 280
IF POST=3 THEN
HOR_DIS=0
ENDIF
ENDIF
IF POST>=4 AND POST<=6 THEN

LIN_REL {X 560}
LIN_REL {Y 630}
LIN_REL {-X HOR_DIS}
HORI_DIS = HOR_DIS + 280
IF POST=6 THEN
HOR_DIS=0
ENDIF
ENDIF
IF POST>=7 AND POST<=9 THEN
LIN_REL {X 560}
LIN_REL {Y 420}
LIN_REL {-X HOR_DIS}
HOR_DIS = HOR_DIS + 280
IF POST=9 THEN
HOR_DIS=0
ENDIF
ENDIF
IF POST>=10 AND POST<=12 THEN
LIN_REL {X 560}
LIN_REL {Y 210}
LIN_REL {-X HORI_DIS}
HOR_DIS = HOR_DIS + 280

IF POST=12 THEN
HOR_DIS=0
ENDIF
ENDIF

PLACE_CARTON()
PTP {A4 0}

; Rotate Axis 4 to original position

PTP HOME Vel=100% DEFAULT


ENDFOR
POST = 1
ENDFOR
ROW = 1
$OUT[33]=TRUE ; Output signal "kuka_palletEnd" to PLC for end of palletizing
WAIT SEC 5;Wait time for whole pallet to pass through the pallet sensor
$OUT[33]=False
END
DEF PICK_CARTON()
INI

; Output signal "OFF" is reset

LIN_REL {-Z 300}


WAIT SEC 2
$OUT[34]==TRUE

; Output signal to start gripping

LIN_REL {z 300}
END

DEF PLACE_CARTON()
INI
VER_DIS = ROW*500
LIN_REL {-z VER_DIS}
WAIT SEC 2
$OUT[34]==False
LIN_REL {z VER_DIS}
END

; Output signal to release gripper

You might also like