Professional Documents
Culture Documents
Sintaxis KR C2 PDF
Sintaxis KR C2 PDF
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-2 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Variables and declarations
As all system variables begin with the ‘$’ sign, this sign should not
be used as the first character in user-defined names.
Declaration of variables
Variable declarations always have the following syntax:
DECL Data_Type Variable_Name
Variables must be declared before the INI line.
In order to set syntax before the INI line, the DEF line must be
activated.
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-3
Variables and declarations
Arrays
Arrays are used to group objects of the same data type to form a data
object. Syntax for declaration of an array:
DECL Data_Type Variable_Name[Number_Array_Elements]
Working with arrays: Value assignment
Variable_Name[Array_Index] = Value_Assignment
Example:
DECL INT OTTO[5] ; Declaration
OTTO[3] = 7 ; the third array element is assigned 7
Structures – STRUC
Structures in KRL:
A structure is a combination of different data types.
A structure is initialized with an aggregate.
Not all the parameters have to be specified in an aggregate.
The order of the parameters is not significant.
Working with structures: Declaration of a structure
STRUC Structure_Name Data_Type1 A, B, n, Data_Type
n …
Example of a predefined structure:
STRUC E6POS REAL X, Y, Z, A, B, C, E1, E2, E3, E4,
E5, E6, INT S, T
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-4 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Variables and declarations
Example:
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-5
Data manipulation
Data manipulation
Arithmetic operators
Operator Description
+ Addition or positive sign
- Subtraction or negative sign
* Multiplication
/ Division
Geometric operator
The geometric operator “:” performs frame linkage.
Relational operators
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-6 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Data manipulation
Logic operators
Bit operators
Priority of operators
Priority Operator
1 high NOT B_NOT
2 * /
3 + -
4 AND B_AND
5 EXOR B_EXOR
6 OR B_OR
7 low == <> < > >= <=
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-7
Motion programming
Motion programming
Coordinate systems
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-8 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Motion programming
Max.
System variables Unit Function
value
$VEL.CP m/s 3 CP velocity
*1
$VEL.ORI1 °/s 400 Swivel velocity
*1
$VEL.ORI2 °/s 400 Rotational velocity
*2
$VEL_AXIS[4]-[6] % 100 Wrist axis velocity
2
$ACC.CP m/s 10 Path acceleration
*1 2
$ACC.ORI1 °/s 1000 Swivel acceleration
*1 2
$ACC.ORI2 °/s 1000 Rotational acceleration
*2
$ACC_AXIS[4]-[6] % 100 Wrist axis acceleration
*1
Required information for $ORI_TYPE = #CONSTANT or #VAR
*2
Required information for $ORI_TYPE = #JOINT
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-9
Motion programming
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-10 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Motion programming
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-11
Program execution control
Statements Statements
Example:
IF $IN[10] == FALSE THEN
PTP HOME
ENDIF
Switch
Syntax: SWITCH Switch_Condition
CASE 1
Statements Selection 1 Statements
CASE n
Statements
DEFAULT
Statements Selection n Statements
ENDSWITCH
Jump instruction
Syntax: GOTO Marker
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-12 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Program execution control
Counting loop
Syntax: FOR Counter = Start TO End STEP Increment
Statements
ENDFOR
Example:
INT COUNTER
...
Statements
FOR COUNTER = 6 TO 1 STEP -1
$VEL_AXIS[I] = 100 Counter value
No
reached?
ENDFOR
Yes
Rejecting loop
Syntax: WHILE Condition
Statements Statements
Example:
WHILE $IN[4] == TRUE No
$OUT[2] = TRUE
PTP POS_2
ENDWHILE
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-13
Program execution control
Non-rejecting loop
Syntax: REPEAT
Statements
UNTIL Condition Statements
No
Example:
REPEAT Condition met?
$OUT[2] = TRUE
PTP POS_2
UNTIL $IN[4] == TRUE Yes
Endless loop
Syntax: LOOP
Statements
Statement 1
ENDLOOP
Statement n
Example:
DEF EXIT_PRO()
PTP HOME
LOOP ; Start endless loop
PTP POS_1
PTP POS_2
IF $IN[1] == TRUE THEN
EXIT ; Terminate when input True
ENDIF
CIRC HELP_1, POS_3
PTP POS_4
ENDLOOP ; End endless loop
PTP HOME
END
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-14 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Program execution control
Example:
WAIT FOR $IN[5] ; waits until input 5 is TRUE
WAIT FOR $OUT[5] == FALSE
Wait times
Syntax: WAIT SEC Time
Syntax: HALT
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-15
Inputs/outputs
Inputs/outputs
Binary inputs/outputs
Syntax: $OUT[No] = Value or $IN[No]
Setting outputs at the end point:
Syntax: $OUT_C[No] = Value
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-16 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Inputs/outputs
Pulse outputs
Syntax: PULSE ( $OUT[No], Value, Time )
Analog inputs/outputs
Syntax: $ANOUT[No] = Value or $ANIN[No]
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-17
Inputs/outputs
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-18 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Subprograms and functions
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-19
Interrupt programming
Interrupt programming
The interrupt declaration is an instruction. It must not, therefore,
be located in the declaration section!
A declaration may be overwritten by another at any time.
A maximum of 32 interrupts may be declared simultaneously.
A maximum of 16 interrupts may be enabled simultaneously.
Priorities 1...39 and 81...128 are available. The values 40...80 are
reserved by the system.
Priority level 1 is the highest possible priority.
Declaration of an interrupt:
Syntax: INTERRUPT DECL Priority WHEN Event DO
Subprogram
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-20 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Interrupt programming
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-21
Trigger – path-related switching actions
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-22 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Trigger – path-related switching actions
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-23
Message programming
Message programming
Syntax: DECL MSG_T Message_Name = { VALID FALSE,
RELEASE FALSE, TYP #NOTIFY, MODUL[] ” ”,
KEY[] ” ”, PARAM_TYP #VALUE, PARAM[] ” ”,
DLG_FORMAT[] ” ”, ANSWER 0 }
Element Type
Function/elements
TRUE generates message, FALSE
VALID BOOL
retains message
TRUE deletes message of TYP
RELEASE BOOL (type) #STATE and #QUIT; FALSE
allows message
#NOTIFY – Notification message
#STATE – Status message
TYP MSG_TYP
#QUIT – Ackn. message
#DIALOG – Dialog message
MODUL[] CHAR[12] Originator of the message
KEY[] CHAR[40] Displayed message text
#VALUE – customized texts
PARAM_TYP[] MSG_PRM_TYP #WORDS – ignores PARAM[]
#KEY – messages from database
Parameter can be inserted in KEY[]
PARAM[] CHAR[20] with %1. Only with PARAM_TYP of
type #VALUE.
DLG_FORMAT[] CHAR[70] Softkey labels, separated by |.
ANSWER INT Number of the softkey pressed
Examples:
DECL INT ANSWER
DECL MSG_T EMPTY_MSG
EMPTY_MSG = { MSG_T: VALID FALSE, RELEASE FALSE, TYP
#NOTIFY, MODUL[] ” ”, KEY[] ” ”, PARAM_TYP #VALUE,
PARAM[] ” ”, DLG_FORMAT[] ” ”, ANSWER 0 }
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-24 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Message programming
;----------ACKNOWLEDGEMENT MESSAGE----------
$MSG_T = EMPTY_MSG ; Reinitialization
$MSG_T.MODUL[] = ”USER” ; Text for originator
$MSG_T.KEY[] = ”No water!”
$MSG_T.PARAM_TYP = #VALUE
$MSG_T.TYP = #QUIT ; Acknowledgement message
$MSG_T.VALID = TRUE ; Trigger
WHILE $MSG_T.VALID ; Wait for acknowledgement
WAIT SEC 0.05
ENDWHILE
;----------DIALOG MESSAGE----------
$MSG_T = EMPTY_MSG ; Reinitialization
$MSG_T.MODUL[] = ”USER” ; Text for originator
$MSG_T.KEY[] = ”What part?”
$MSG_T.PARAM_TYP = #VALUE
$MSG_T.TYP = #DIALOG ; Dialog message
$MSG_T.VALID = TRUE ; Trigger
$MSG_T.DLG_FORMAT[] = ”Part x|Part y|Part z|End”
WHILE $MSG_T.VALID ; Wait for response
WAIT SEC 0.05
ENDWHILE
ANSWER = $MSG_T.ANSWER ; Number of selected key
;----------NOTIFICATION MESSAGE----------
$MSG_T = EMPTY_MSG ; Reinitialization
$MSG_T.MODUL[] = ”USER” ; Text for originator
$MSG_T.KEY[] = ”No vacuum!”
$MSG_T.PARAM_TYP = #VALUE
$MSG_T.TYP = #NOTIFY ; Notification message
$MSG_T.VALID = TRUE ; Trigger
WHILE $MSG_T.VALID
WAIT SEC 0.05
ENDWHILE
;----------Status message----------
$MSG_T = EMPTY_MSG ; Reinitialization
$MSG_T.MODUL[] = ”USER” ; Text for originator
$MSG_T.KEY[] = ”Compressed air fault!”
$MSG_T.PARAM_TYP = #VALUE
$MSG_T.TYP = #STATE ; Acknowledgement message
$MSG_T.VALID = TRUE ; Trigger
WAIT FOR $IN[8] == TRUE ; Wait until compressed air OK
$MSG_T.RELEASE = TRUE ; Delete status message
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-25
Important system variables
$AXIS_ACT
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-26 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en
Important system variables
$AXIS_INT
$MODE_OP
$NEAR_POSRET
$NEARPATHTOL
$ON_PATH
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
© Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en S-27
Important system variables
$OP_PRO
$POS_ACT
$POS_INT
$POS_RET
$VEL_ACT
KUKA Roboter GmbH, Hery-Park 3000, D-86368 Gersthofen, Tel.: +49 (0)821 4533 1906, Fax: +49 (0)821 4533 2340
S-28 © Copyright KUKA Roboter GmbH – College / Quickguide KRL V5.x 06.04.01 en