KUKA Programming KRL Examples
This page contains source code for programs written for the KUKA robots in the KRL language, a proprietary scripting language developed by KUKA.
Basic Program that moves robot in a rectangle
;Any line that has a semicolon in front of it is a comment and isn't read by the machine ;Define the name of the program DEF ExampleProgramName() ;these are some set up variables you don't have to worry about right now GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) $APO.CDIS = 0.5000 BAS (#INITMOV,0) BAS (#VEL_PTP,20) BAS (#ACC_PTP,20) $advance=5 ;Defines the coordinates of the tool attached to the robot, relative to the flange $TOOL={X 0, Y 0, Z 0, A 0, B 0, C 0} ;Defines the Origin of the base, where all the consequtive commands are relative to $BASE={X -75, Y -1638, Z 492, A 0, B 0, C 0} ;Set speed in meters/second $VEL.CP=0.3 ;First we must tell the program what the initial axis position should be PTP {A1 90, A2 -75, A3 100, A4 169, A5 -60, A6 -150, E1 0, E2 180, E3 0, E4 0, E5 0, E6 0} ;Finally, we give it a series of LIN commands to trace out a square in space ;E1 and E2 are the external axis LIN {X 0, Y 0, Z 400, A 0, B 0, C 180, E1 0, E2 180} C_DIS LIN {X 0, Y 300, Z 400, A 0, B 0, C 180, E1 0, E2 180} C_DIS LIN {X 300, Y 300, Z 400, A 0, B 0, C 180, E1 0, E2 180} C_DIS LIN {X 300, Y 0, Z 400, A 0, B 0, C 180, E1 0, E2 180} C_DIS LIN {X 0, Y 0, Z 400, A 90, B 0, C 180, E1 0, E2 180} C_DIS END
Basic For Loop
DEF MAIN_PROG() DECL INT ROW, COL ROW = 1 COL = 1 PTP HOME FOR ROW = 1 TO 3 FOR COL = 1 TO 2 PTP P01 PTP P02 TASK01() ;CALLS SUBPROGRAM ENDFOR ENDFOR ;--------------------------------------------- ;START OF SUBPROGRAM DEF TASK01() PTP P03 PTP P04 END
Interrupts
&ACCESS RVO &REL 9 &PARAM EDITMASK = * &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe DEF Interrup_TEST( ) INI PTP HOME Vel= 100 % LOOP PTP OverStartFasatura Vel=100 % INTERRUPT WITH BRAKE DECL 21 WHEN i1_InterruptOn == TRUE DO OnInterrupt() INTERRUPT ON 21 LIN StartFasatura Vel=2 m/s LIN EndFasatura Vel=0.5 m/s INTERRUPT OFF HALT ENDLOOP OnInterrupt() PTP HOME Vel= 100 % END DEF OnInterrupt() INTERRUPT OFF HALT LIN StartFasatura Vel=2 m/s WAIT SEC 1 INTERRUPT WITH BRAKE DECL 21 WHEN i1_InterruptOn == TRUE DO OnInterrupt() INTERRUPT ON 21 RESUME END
Welcome to the University Wiki Service! Please use your IID (yourEID@eid.utexas.edu) when prompted for your email address during login or click here to enter your EID. If you are experiencing any issues loading content on pages, please try these steps to clear your browser cache.