Sie sind auf Seite 1von 71

KUKA Robot Group

KUKA System Technology (KST)

KUKA.UserTech 2.3
For KUKA System Software (KSS) 5.x, 7.0

Issued: 26.01.2007 Version: 0.1

V0.1 26.01.200
KUKA.UserTech 2.3

© Copyright 2007
KUKA Roboter GmbH
Zugspitzstraße 140
D-86165 Augsburg
Germany

This documentation or excerpts therefrom may not be reproduced or disclosed to third parties without
the express permission of the KUKA ROBOT GROUP.
Other functions not described in this documentation may be operable in the controller. The user has no
claims to these functions, however, in the case of a replacement or service work.
We have checked the content of this documentation for conformity with the hardware and software de-
scribed. Nevertheless, discrepancies cannot be precluded, for which reason we are not able to guaran-
tee total conformity. The information in this documentation is checked on a regular basis, however, and
necessary corrections will be incorporated in the subsequent edition.
Subject to technical alterations without an effect on the function.
KIM-PS4-DOC

V0.4
2 / 71
22.03.200
6 pub de V0.1 26.01.2007 KST-AD-UserTech23 en
Contents

Contents

1 Introduction ...................................................................................................... 7
1.1 Target group ................................................................................................................... 7
1.2 Robot system documentation ......................................................................................... 7
1.3 Representation of warnings and notes ........................................................................... 7
1.4 Terms used ..................................................................................................................... 8

2 Product description ......................................................................................... 9


2.1 Overview of KUKA.UserTech ......................................................................................... 9

3 Safety ................................................................................................................ 11
4 Installation ....................................................................................................... 13
4.1 Installation for KUKA System Software (KSS) 5.4, 5.5, 7.0 ............................................ 13
4.1.1 Installing or updating KUKA.UserTech ...................................................................... 13
4.1.2 Uninstalling KUKA.UserTech ..................................................................................... 13
4.2 Installation for KUKA System Software (KSS) 5.2, 5.3 ................................................... 13
4.2.1 Installing KUKA.UserTech ......................................................................................... 13
4.2.2 Uninstalling KUKA.UserTech ..................................................................................... 14
4.2.3 Reinstalling KUKA.UserTech ..................................................................................... 14

5 Programming .................................................................................................... 15
5.1 Symbols and fonts .......................................................................................................... 15
5.2 Special characters .......................................................................................................... 15
5.3 Important terms ............................................................................................................... 16
5.3.1 Data types ................................................................................................................. 16
5.3.2 Areas of validity ......................................................................................................... 16
5.3.3 String ......................................................................................................................... 16
5.3.4 Naming conventions and keywords ........................................................................... 17
5.3.5 Parameter reference placeholder .............................................................................. 17
5.4 Overview - Programming the technology ........................................................................ 18
5.4.1 Designing the technology .......................................................................................... 18
5.4.2 Creating a KFD file .................................................................................................... 18
5.4.3 DEFTP ... ENDTP ...................................................................................................... 19
5.4.4 Generating KRL code ................................................................................................ 20
5.5 Overview - Programming inline forms ............................................................................ 20
5.5.1 Designing the inline form ........................................................................................... 21
5.5.2 DECL PARAM ........................................................................................................... 21
5.5.3 Field types - VALUE field type ................................................................................... 22
5.5.3.1 VALUE {static: } ......................................................................................................... 22
5.5.3.2 VALUE {free: } ........................................................................................................... 22
5.5.3.3 VALUE {name: } ........................................................................................................ 22
5.5.3.4 VALUE {number: } ..................................................................................................... 23
5.5.3.5 VALUE {real: } ........................................................................................................... 24
5.5.3.6 VALUE {list: } ............................................................................................................. 25
5.5.4 DECL FOLD ............................................................................................................... 27
5.5.5 DECL INLINEFORM .................................................................................................. 28
5.5.6 Formatting program code .......................................................................................... 30

V0.1 26.01.2007 KST-AD-UserTech23 en 3 / 71


KUKA.UserTech 2.3

5.5.6.1 WYSIWYG parameter ................................................................................................ 30


5.5.6.2 SUB parameter .......................................................................................................... 30
5.5.6.3 DSUB parameter ....................................................................................................... 30
5.5.6.4 FCT parameter .......................................................................................................... 31
5.5.6.5 DFCT parameter ........................................................................................................ 31
5.5.6.6 ASS parameter .......................................................................................................... 31
5.5.6.7 ASSAG parameter ..................................................................................................... 32
5.6 Overview - Programming the parameter list .................................................................. 32
5.6.1 DECL PARAM PL_ .................................................................................................... 33
5.6.2 Definition of the data type in $CONFIG.DAT ............................................................. 33
5.6.3 DECL PLIST .............................................................................................................. 34
5.6.4 Example - Inline form with parameter list ................................................................... 35
5.7 Overview - Programming status keys ............................................................................ 38
5.7.1 Designing the status keys .......................................................................................... 38
5.7.2 DECL STATKEY ........................................................................................................ 39
5.7.3 DECL STATKEYBAR ................................................................................................ 42
5.7.4 SET ............................................................................................................................ 43
5.8 Overview of KUKA.UserTech commands - Programming scripts ................................... 43
5.8.1 DEFSCRIPT ... ENDSCRIPT ..................................................................................... 44
5.8.2 SETVAR .................................................................................................................... 44
5.8.3 SHOWVAR ................................................................................................................ 45
5.8.4 REDECL .................................................................................................................... 45
5.8.5 DO ............................................................................................................................. 46
5.8.6 MESSAGE ................................................................................................................. 46
5.8.7 SWITCH ... CASE (ELSE) ... ENDSWITCH .............................................................. 46
5.8.8 SWITCH DIALOG ... CASE ... ENDSWITCH ............................................................ 47
5.8.9 Predefined scripts ...................................................................................................... 48
5.9 Calling scripts by means of actions ................................................................................ 48
5.9.1 Calling a script on opening or closing the inline form ................................................ 48
5.9.2 Calling a script on changing or creating the inline form ............................................. 49
5.9.3 Calling a script on toggling between inline forms ....................................................... 50
5.10 Refreshing the user interface .......................................................................................... 51
5.11 Refreshing KUKA.UserTech ........................................................................................... 51
5.12 Creating new menu items ............................................................................................... 52
5.12.1 Syntax of menu entries in the [SOFTKEYS] section .................................................. 52
5.12.2 Creating a new menu item with submenu .................................................................. 52
5.12.3 Examples - Integration of technologies into the user interface (KUKA.HMI) ............. 54
5.12.3.1 Integrating a technology via a new menu item .......................................................... 54
5.12.3.2 Integrating a technology via a new menu item with submenu ................................... 55
5.12.3.3 Integrating status keys into the user interface ........................................................... 56

6 Example programs ........................................................................................... 59


6.1 Technology DISP_SET ................................................................................................... 59
6.2 Technology LASER ........................................................................................................ 60

7 KUKA Service ................................................................................................... 63


7.1 Requesting support ......................................................................................................... 63
7.2 KUKA Customer Support ................................................................................................ 63

4 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


Contents

Index .................................................................................................................. 69

V0.1 26.01.2007 KST-AD-UserTech23 en 5 / 71


KUKA.UserTech 2.3

6 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


1. Introduction

1 Introduction

1.1 Target group

This documentation is aimed at users with the following knowledge and skills:
„ Advanced knowledge of the robot controller system
„ Advanced KRL programming skills
For optimal use of our products, we recommend that our customers take part
in a course of training at KUKA College. Information about the training pro-
gram can be found at www.kuka.com or can be obtained directly from our
subsidiaries.

1.2 Robot system documentation

The robot system documentation consists of the following parts:


„ Operating instructions for the robot
„ Operating instructions for the robot controller
„ Operating and programming instructions for the KUKA System Software
„ Documentation relating to options and accessories
Each of these sets of instructions is a separate document.

1.3 Representation of warnings and notes

Safety warnings Warnings marked with this pictogram are relevant to safety and must be ob-
served.

Danger!
This warning means that death, severe physical injury or substantial material
damage will occur, if no precautions are taken.

Warning!
This warning means that death, severe physical injury or substantial material
damage may occur, if no precautions are taken.

Caution!
This warning means that minor physical injuries or minor material damage
may occur, if no precautions are taken.

Notes Notes marked with this pictogram contain tips to make your work easier or ref-
erences to further information.

Tips to make your work easier or references to further information.

V0.1 26.01.2007 KST-AD-UserTech23 en 7 / 71


KUKA.UserTech 2.3

1.4 Terms used

Term Description
HMI The Human-Machine Interface (HMI) is an inter-
face which allows a human to communicate with
a machine.
KFD file File format used to describe technologies

8 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


2. Product description

2 Product description

2.1 Overview of KUKA.UserTech

KUKA.UserTech is an add-on technology package with the following func-


tions:

Functions „ Defining user-specific inline forms


„ Defining user-specific messages
„ Defining user-specific status keys, softkeys and status key bars
„ Defining user-specific KRL scripts

V0.1 26.01.2007 KST-AD-UserTech23 en 9 / 71


KUKA.UserTech 2.3

10 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


3. Safety

3 Safety

„ All persons working with the robot system must have read and understood
the robot system documentation, including the safety chapter.
„ The robot system with KUKA.UserTech must be operated in accordance
with the applicable national laws, regulations and standards.
„ All KRL programs created with KUKA.UserTech must be tested at reduced
program velocity in the operating modes T1 and T2.

V0.1 26.01.2007 KST-AD-UserTech23 en 11 / 71


KUKA.UserTech 2.3

12 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


4. Installation

4 Installation

4.1 Installation for KUKA System Software (KSS) 5.4, 5.5, 7.0

4.1.1 Installing or updating KUKA.UserTech

Precondition „ If necessary: connect USB CD/DVD drive


„ Insert CD.

It is advisable to archive all relevant data before updating or uninstalling a


software package.

Procedure 1. Select the menu sequence Setup > Install Additional Software.
2. Press the New SW softkey. Then press the Refresh softkey.
3. Select the software to be installed and press the softkey Install. Answer
the request for confirmation with Yes. The files are copied onto the hard
drive.
4. Confirm the reboot prompt with OK.
5. Reboot the robot controller. The installation is resumed and completed.

LOG file A LOG file is created under C:\KRC\ROBOTER\LOG.

4.1.2 Uninstalling KUKA.UserTech

It is advisable to archive all relevant data before updating or uninstalling a


software package.

Procedure 1. Select the menu sequence Setup > Install Additional Software. All in-
stalled additional programs are displayed.
2. Select the software to be uninstalled and press the softkey Uninstall. An-
swer the request for confirmation with Yes. Uninstallation is prepared.
3. Reboot the robot controller. Uninstallation is resumed and completed.

LOG file A LOG file is created under C:\KRC\ROBOTER\LOG.

4.2 Installation for KUKA System Software (KSS) 5.2, 5.3

4.2.1 Installing KUKA.UserTech

Precondition „ User group "Expert"


„ Windows interface (CTRL+ESC)

Procedure 1. Start the Setup program from the CD-ROM. The files are copied onto the
hard drive.
2. Confirm the reboot prompt with OK.
3. Reboot the robot controller. The installation is resumed and completed.

LOG file A LOG file is created under C:\KRC\ROBOTER\LOG.

V0.1 26.01.2007 KST-AD-UserTech23 en 13 / 71


KUKA.UserTech 2.3

4.2.2 Uninstalling KUKA.UserTech

It is advisable to archive all relevant data before updating or uninstalling a


software package.

Precondition „ KUKA.UserTech is installed.


„ User group "Expert"
„ Windows interface (CTRL+ESC)

Procedure 1. Start the Uninstall.exe program in the directory


C:\KRC_OPTION\USERTECH\UNINST. Uninstallation is prepared.
2. Confirm the reboot prompt with OK.
3. Reboot the robot controller.

LOG file A LOG file is created under C:\KRC\ROBOTER\LOG.

4.2.3 Reinstalling KUKA.UserTech

Precondition „ KUKA.UserTech has been uninstalled.


„ User group "Expert"
„ Windows interface (CTRL+ESC)

Procedure 1. Start the Reinstall.exe program in the directory


C:\KRC_OPTION\USERTECH\REINST. Setup is prepared.
2. Confirm the reboot prompt with OK.
3. Reboot the robot controller.

LOG file A LOG file is created under C:\KRC\ROBOTER\LOG.

14 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

5 Programming

5.1 Symbols and fonts

The following symbols and fonts are used in syntax descriptions:

Description Example
KRL code: GLOBAL; ANIN ON;
OFFSET
„ Courier font
„ Upper-case characters
Elements that must be replaced by program-spe- Distance; Time; Format
cific entries:
„ Upper- and lower-case characters
„ Italics
Optional elements: < ... >
„ In angle brackets
Elements that are mutually exclusive: IN |OUT
„ Separated by the "|" symbol

5.2 Special characters

Character Description Example


; Designates a comment ;This is a comment
_ A statement in KRL must be decl _
contained in one continuous
int _
program line.
number
"_" is used to continue a pro-
gram line despite an interven- corresponds to: decl
ing line break. There must be a int number
space between the preceding
program line and the "_" char-
acter.
/ Cancels the special function of „ /%: Function of the
a subsequent character. The "%" character for
character "/" itself is sup- designating a pa-
pressed in the resultant charac- rameter reference
ter string. placeholder is can-
celed
„ /;: Function of the
";" character for
designating a com-
ment is canceled

V0.1 26.01.2007 KST-AD-UserTech23 en 15 / 71


KUKA.UserTech 2.3

Character Description Example


% Designates a parameter refer- „ %INLINEFORM
ence placeholder „ %INLINEFORM/
(>>> 5.3.5 "Parameter refer-
ence placeholder" page 17)
The "/" character or a space
must be inserted after the
parameter reference place-
holder. If a space is used, a
second space must be inserted
if a further character or expres-
sion follows after the parameter
reference placeholder.
A space used to terminate a
parameter reference place-
holder is suppressed in the
resultant character string.
# Designates a value assignment #%INLINEFORM
(>>> 5.5.4 "DECL
FOLD" page 27)

5.3 Important terms

5.3.1 Data types

The following simple data types are predefined in the KSS:

Data type Keyword Meaning Range of Example


values
Integer INT Integer -2³¹-1 ... 2³¹- 32
1
Real REAL Floating- +1.1E-38 ... 1.43
point +3.4E+38
number
Boolean BOOL Logic state TRUE, TRUE
FALSE
Character CHAR Character ASCII char- "A"
acter

5.3.2 Areas of validity

Variables and data objects have local validity, i.e. only in a particular technol-
ogy, if they are declared between the DEFTP and ENDTP statements.
If variables and data objects are to have global validity, i.e. in all technologies,
they must be declared outside the DEFTP and ENDTP statements.

5.3.3 String

This term designates a string of alphanumeric characters.


„ Strings in KRL must not contain any commas.
„ Strings in KRL must not contain any line breaks, i.e. they must be con-
tained within one line.

16 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

„ Strings in KRL are always enclosed in double quotation marks, e.g. "This
is a string".
„ If the quotation mark should be part of the string, its meaning as a special
character must be canceled using the "/" character, e.g. "The character /"".

5.3.4 Naming conventions and keywords

Names Examples of names in KRL: variable names, program names, point names
„ Names in KRL can have a maximum length of 24 characters.
„ Names in KRL can consist of letters (A-Z), numbers (0-9) and the signs "_"
and "$".
„ Names in KRL must not begin with a number.
„ Names in KRL must not be keywords.

The names of all system variables begin with the "$" sign. To avoid confu-
sion, do not begin the names of user-defined variables with this sign.

Keywords Keywords are sequences of letters having a fixed meaning. They must not be
used in programs in any way other than with this meaning. No distinction is
made between uppercase and lowercase letters. A keyword remains valid ir-
respective of the way in which it is written.
Example: The sequence of letters CASE is an integral part of the KRL syntax
SWITCH … CASE (ELSE) … ENDSWITCH. For this reason, CASE must not
be used in any other way, e.g. as a variable name.

The use of keywords reserved for KRL is not permitted. Further information
is contained in the Operating and Programming Instructions for System Inte-
grators.

5.3.5 Parameter reference placeholder

An expression consisting of a percent sign and a parameter name is referred


to as a parameter reference placeholder.
The percent sign causes the name of the parameter to be output not a text but
as as a value.
Predefined parameter reference placeholders:

Parameter reference
Description
placeholder
%TP Name of the technology
First parameter in every inline form
%INLINEFORM Name of the inline form
Second parameter in every inline form
%MODULE Name of the application program currently
loaded in the editor.

V0.1 26.01.2007 KST-AD-UserTech23 en 17 / 71


KUKA.UserTech 2.3

5.4 Overview - Programming the technology

Overview Step Description


1 Design the technology.
(>>> 5.4.1 "Designing the technology" page 18)
2 Give the technology a name and create a KFD file.
(>>> 5.4.2 "Creating a KFD file" page 18)
3 Define the technology.
(>>> 5.4.3 "DEFTP ... ENDTP" page 19)
4 Generate KRL code.
(>>> 5.4.4 "Generating KRL code" page 20)
5 Program inline forms.
(>>> 5.5 "Overview - Programming inline forms" page 20)
6 Program status keys.
(>>> 5.7 "Overview - Programming status keys" page 38)
7 Integrate the technology into the graphical user interface.
(>>> 5.12 "Creating new menu items" page 52)
8 Reinitialize the KUKA.HMI.
(>>> 5.10 "Refreshing the user interface" page 51)
9 Program scripts.
(>>> 5.8 "Overview of KUKA.UserTech commands - Pro-
gramming scripts" page 43)
10 Reinitialize KUKA.UserTech.
(>>> 5.11 "Refreshing KUKA.UserTech" page 51)

5.4.1 Designing the technology

„ Define the structure of the inline forms.


„ Define the program lines (folds) that are to be inserted.
„ Define the individual parameters in the inline form and their respective
ranges of values.
„ Plan the assignment of the status keys (>>> 5.7.1 "Designing the status
keys" page 38).
„ Design scripts to be called by particular actions, e.g. on opening an inline
form or on pressing the Enter key, the softkey Touch Up, or a status key.

5.4.2 Creating a KFD file

Description Technologies created with KUKA.UserTech are described and saved as KFD
files.
„ Any editor can be used to edit the KFD file.
„ The KFD file must be saved in ASCII format.
„ The name of the KFD file can be freely chosen within the conventions of
the Windows XP operating system.
„ The KFD file can contain one or more technologies. The name of a tech-
nology may, however, only appear once within a given file.
KFD files are saved by default in the directory C:\KRC\TP\USERTECH\TEM-
PLATE.

18 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

With complex technologies it is recommended that all the KFD files belonging
to a single technology are saved in the directory C:\KRC\TP\TPName\TEM-
PLATE. TPName must first be created in this path by adding a key in the Win-
dows registry file.

Procedure 1. Open the registry editor.


2. Go to the branch \HKEY_Local_Machine\Software\KUKARoboterGm-
bH\Options\KFD.
3. Create a new folder:
Right-click and select the menu sequence New > Key > String.
4. Give the folder the name TPName.
5. Place the cursor on the folder, right-click and select the menu item
Change: The Edit String window is opened.
6. Under "Value", enter the new key:
%InstallationDir%\TP\TPName\Template
7. Confirm the entry by pressing the OK softkey.

5.4.3 DEFTP ... ENDTP

Description Defining a technology

Syntax DEFTP Name <= {<SOC Bool,>


<SOT Bool>}>
ENDTP

Explanation of the Element Description


syntax DEFTP Name of the technology
SOC Specifies whether it is possible to select technology
commands via a list box
„ TRUE: Selection is possible
Default, if nothing is entered for SOC
„ FALSE: Selection is not possible
SOT Specifies whether it is possible to select the technology
via a list box
„ TRUE: Selection is possible
Default, if nothing is entered for SOT
„ FALSE: Selection is not possible
ENDTP End of the definition

Example 1 DEFTP MyTech


ENDTP
DEFTP OtherTech
ENDTP

The following inline form is generated:

The status key can be used to switch between the technologies MYTECH and
OTHERTECH.

V0.1 26.01.2007 KST-AD-UserTech23 en 19 / 71


KUKA.UserTech 2.3

Example 2 DEFTP MyTech = {SOT FALSE}


ENDTP
DEFTP OtherTech
ENDTP

The following inline form is generated:

It is not possible to switch between the technologies MYTECH and OTH-


ERTECH using a list box. They must be integrated into the user interface by
means of menu entries in the file MenueKeyUser.INI in the directory
C:\KRC\ROBOTER\INIT (>>> 5.12 "Creating new menu items" page 52).

5.4.4 Generating KRL code

Description Subprograms or functions which are also to be inserted in selected programs


on closing an inline form must be defined globally.

Procedure 1. Go to the directory R1\TP\ and create an SRC file.


2. In the SRC file, define the subprograms or functions with the associated
transfer parameters.

5.5 Overview - Programming inline forms

Overview Step Description


1 Design the inline form.
(>>> 5.5.1 "Designing the inline form" page 21)
2 Define the parameters.
(>>> 5.5.2 "DECL PARAM" page 21)
3 Define parameter lists.
(>>> 5.6 "Overview - Programming the parameter list"
page 32)
4 Prepare the scripts.
(>>> 5.8.1 "DEFSCRIPT ... ENDSCRIPT" page 44)
5 Create folds.
(>>> 5.5.4 "DECL FOLD" page 27)
6 Define the inline form.
(>>> 5.5.5 "DECL INLINEFORM" page 28)
7 Reinitialize the KUKA.HMI.
(>>> 5.10 "Refreshing the user interface" page 51)
8 Program the scripts.
(>>> 5.8 "Overview of KUKA.UserTech commands - Pro-
gramming scripts" page 43)
9 Reinitialize KUKA.UserTech.
(>>> 5.11 "Refreshing KUKA.UserTech" page 51)

20 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

5.5.1 Designing the inline form

„ Define the structure of the inline forms, e.g. number, type and layout of the
input boxes.
„ Define the program lines (folds) that are to be inserted.
„ Define the individual parameters in the inline form and their respective
ranges of values.
„ Design scripts to be called by particular actions, e.g. on opening and clos-
ing the inline form.

5.5.2 DECL PARAM

Description Defining an input box in the inline form

Syntax DECL PARAM Name =


{<SHORTNAME[]"String",>
<SHORTCUT[]"String",>
<UNIT[]"String",>
<ENABLE[]Bool,>
<USERMODE[]Bool,>
VALUE Field_type}

Explanation of the Element Description


syntax DECL PARAM Name of the input box
SHORTNAME[] Text appearing before the input box
SHORTCUT[] Text appearing on the status key
If no text is entered here, the text specified under
SHORTNAME[ ] appears on the status key.
UNIT[] Text appearing after the input box
ENABLE[] TRUE: Input box is activated.
FALSE: Input box is deactivated.
USERMODE[] USERMODE[ ] is not implemented.
VALUE Type of the input box
(>>> 5.5.3 "Field types - VALUE field type" page 22)

Example (>>> 5.5.3.4 "VALUE {number: }" page 23)


decl param field_num ={ _
shortname[] "Distance: ", _
shortcut[] "DIST", _
unit[] "mm", _
value _
{number: min 0, max 100, step 2, default 50,}}

The following input box is generated:

A value from 0 to 100 can be displayed.


The value can be increased or decreased in steps of 2 using the status key.

V0.1 26.01.2007 KST-AD-UserTech23 en 21 / 71


KUKA.UserTech 2.3

5.5.3 Field types - VALUE field type

5.5.3.1 VALUE {static: }

Description A text field is displayed in the inline form, which cannot be edited by the user.

Syntax {STATIC: DEFAULT[]"String"}

Explanation of the Element Description


syntax DEFAULT[] Text displayed in the inline form

Example decl param field_sta ={value _


{static: default[] "This can’t be changed"}}

The following text field appears in the inline form:

5.5.3.2 VALUE {free: }

Description A text is displayed in the input box, which can be edited by the user.

Syntax {FREE: <DEFAULT[]"String">}

Explanation of the Element Description


syntax DEFAULT[] Text displayed in the input box
If no text is specified, the input box remains blank.

Example decl param field_fre ={ _


shortname[] "Programmer: ", value _
{free: default[] " Alfred E. Neumann "}}

The following input box is generated:

5.5.3.3 VALUE {name: }

Description A valid variable name, function name or subprogram name is displayed in the
input box, which can be edited by the user. The syntax is checked.

The use of keywords reserved for KRL is not permitted.

Syntax {Name: DEFAULT[] "Name"}

22 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Explanation of the Element Description


syntax DEFAULT[] Name of the variable, function or subprogram displayed in
the input box
If the last character of the variable, function or subprogram
is a number between 0 and 9, this can be increased or
decreased using the status key.

Example decl param field_nam ={ _


shortname[] "Welding-point-nr.: ", _
shortcut[] "WPT", value _
{name: default[] "WPT1"}}

The following input box is generated:

The following status key is generated:

5.5.3.4 VALUE {number: }

Description An integer value is displayed in the input box, which can be edited by the user
via the status key or the numeric keypad.

Syntax {NUMBER: <MIN Minimum_value,>


<MAX Maximum_value,>
<STEP Increment,>
<DEFAULT Default_value,>
<AUTOLIMIT Bool,>

Explanation of the Element Description


syntax MIN Type: INT
Minimum output value
MAX Type: INT
Maximum output value
STEP Type: INT
Increment by which the output value is increased or
decreased via the status key
Default value: 1

V0.1 26.01.2007 KST-AD-UserTech23 en 23 / 71


KUKA.UserTech 2.3

Element Description
DEFAULT Type: INT
Default value entered in the input box on opening the
inline form
Default value: 0
AUTOLIMIT Default value: TRUE
A value that is too large or too small is automatically set
to the minimum or maximum output value.
„ Value < minimum value:
Value is set to minimum value.
„ Value > maximum value:
Value is set to maximum value.

Example decl param field_num ={ _


shortname[] "Distance: ", _
shortcut[] "DIST", _
unit[] "mm", _
value _
{number: min 0, max 100, step 2, default 50,}}

The following input box is generated:

A value from 0 to 100 can be displayed.


The value can be increased or decreased in steps of 2 using the status key.

5.5.3.5 VALUE {real: }

Description A floating-point value is displayed in the input box, which can be edited by the
user via the status key or the numeric keypad.

Syntax {NUMBER: <MIN Minimum_value,>


<MAX Maximum_value,>
<STEP Increment,>
<DEFAULT Default_value,>
<AUTOLIMIT Bool,>

Explanation of the Element Description


syntax MIN Type: REAL
Minimum output value
MAX Type: REAL
Maximum output value

24 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Element Description
STEP Type: REAL
Increment by which the output value is increased or
decreased via the status key
Default value: 0.1
DEFAULT Type: REAL
Default value entered in the input box on opening the
inline form
Default value: 0
AUTOLIMIT Default value: TRUE
A value that is too large or too small is automatically set
to the minimum or maximum output value.
„ Value < minimum value:
Value is set to minimum value.
„ Value > maximum value:
Value is set to maximum value.

Example decl param field_rea ={ _


shortname[] "Delay: ", _
shortcut[] "DELAY", _
unit[] "secs", _
value _
{real: min 0.5, max 5,step 0.5, default 2}}

The following input box is generated:

A value from 0.5 to 5 can be displayed.


The value can be increased or decreased in steps of 0.5 using the status key.

5.5.3.6 VALUE {list: }

Description List entries are displayed in the input box, which cannot be edited by the user.
The list entries are selected using the status key or the cursor keys.

Syntax {LIST: <DEFAULT[] "String",>|<POS Number,>


ITEM[1] List_entry1,
<ITEM[2] List_entry2,>
< ...,>
<ITEM[n] List_entryN>}

V0.1 26.01.2007 KST-AD-UserTech23 en 25 / 71


KUKA.UserTech 2.3

Explanation of the Element Description


syntax DEFAULT[] Default list entry entered in the input box on opening
the inline form
This list entry must correspond to one of the list entries
defined below.
POS Type: INT
Number [n] of the default list entry entered in the input
box on opening the inline form
ITEM[1] List entries [1] to [n]
... Complete syntax of the list entries:
ITEM[n] „ {ITEM: VALUE[] "StringX" <, DISP[]
"StringN">}
DISP[ ] can be used to distinguish between the dis-
played value and the value actually processed.
„ VALUE[]: This value is processed.
„ DISP[]: This value is displayed.
Default: DISP[] = VALUE[]

Example 1 decl param field_lis ={ _


shortname[] "Weave pattern: ", _
shortcut[] "PATT", value _
{list: pos 1, _
item[1] _
{item: value[] "Triangle"}, _
item[2] _
{item: value[] "Trapezoid"}, _
item[3] _
{item: value[] "Sinus"}}}

The following input box is generated:

Default: Triangle
The status key can be used to switch between the list entries.

Example 2 deftp MyTech={SOC true}


decl param field_lis ={ _
shortname[] "Weave pattern: ", _
shortcut[] "PATT", _
value {list: _
item[1] {item: value[] "3", disp[] "Triangle"}, _
item[2] {item: value[] "Trapezoid"}, _
item[3] {item: value[] "Sinus"}}}
decl fold MyFold[1]
MyFold[1]= "Hugo=%field_lis"
decl InlineForm MyCmd={ FOLD[1] MyFold , param[1] field_lis}
endtp

The following inline form is generated:

26 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Resulting program text:


1 DEF test( )
2 INI
3
4 MyTech.MyCmd Weave patttern: Triangle
5 Hugo=3
6
7 END

The value "Triangle" displayed in the list box is not the value actually proc-
essed. In the fold, the global variable "Hugo" is assigned the value 3.

5.5.4 DECL FOLD

Description Creating a fold


Folds make programs more transparent. Folds are used to hide sections of the
program. The hidden program sections are processed during program execu-
tion in exactly the same way as visible program sections.

Syntax DECL FOLD NAME [n]


NAME [1] = "String1",
...,
<NAME [n] = "StringN">

Explanation of the Element Description


syntax NAME Name of the fold
[n] Number of lines in the fold
String1 Contents of the fold
... All parameter reference placeholders in the string are
StringN replaced by the values entered in the inline form.

Example DECL FOLD MyFold[2]


MyFold[1]="Laser(#%INLINEFORM/,%DataSet/,%Pattern/)"
MyFold[2]="TRIGGER WHEN PATH=%DistanceWay/ DELAY=0 DO _
LASER_ON=TRUE"

The following values are entered in the inline form:


„ DataSet = "DataSet6"
„ DistanceWay = 210
„ Pattern = "STEP"
„ Inlineform = "ON"
Resulting program code:
Laser(#ON,DataSet6,STEP)
TRIGGER WHEN PATH=210 DELAY=0 DO LASER_ON=TRUE

V0.1 26.01.2007 KST-AD-UserTech23 en 27 / 71


KUKA.UserTech 2.3

5.5.5 DECL INLINEFORM

Description Definition of an inline form

Syntax DECL INLINEFORM Name =


{<FOCUS Cursor_position,>
<FOLD[1]Name_of_Fold1,> <...,> <FOLD[n] Name_of_FoldN,>
<PARAM[1]Name_of_Param1,> <...,> <PARAM[n]Name_of_ParamN,>
<SPLINE Bool,>
<ILF_TYPE IN_SPLINE|OFF_SPLINE|ALL,>
<STYLE WYSIWYG|SUB|DSUB|FCT|DFCT|ASS|ASSAG,>
<ONACCEPT Script,>
<ONTOUCHUP Script,>
<ONOPEN Script>}

Explanation of the Element Description


syntax DECL INLINE- Name of the inline form
FORM
FOCUS Type: INT
Number of the input box in which the cursor is placed
by default on opening the inline form
This function is only available under the following con-
ditions:
„ The inline form was called via a menu item
„ The following settings were made in the definition of
the technology under which the inline form was de-
clared:
„ SOT: FALSE
„ SOC: FALSE
(>>> 5.4.3 "DEFTP ... ENDTP" page 19)
FOLD[1] The names of the folds assigned to the inline form
,... (>>> 5.5.4 "DECL FOLD" page 27)
FOLD[n] If no fold is assigned to the inline form, its contents will
be inserted into the program in accordance with the
setting made under STYLE.
PARAM[1] The names of the input boxes appearing in the inline
form
,...
(>>> 5.5.2 "DECL PARAM" page 21)
PARAM[n]

28 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Element Description
SPLINE Only relevant for KSS 5.x from 5.5
Specifies whether the inline form of technology pack-
ages is interpreted as an inline form containing a
SPLINE control structure. Whether the inline form actu-
ally contains a SPLINE control structure is specified in
the definition of the fold contents (>>> 5.5.4 "DECL
FOLD" page 27).
„ TRUE: Interpretation as inline form with SPLINE
control structure
„ FALSE: Interpretation as inline form without
SPLINE control structure
Default, if nothing is specified for SPLINE or an
invalid value is assigned
ILF_TYPE Only relevant for KSS 5.x from 5.5
Specifies whether the fold of the inline form can be
inserted into a fold with SPLINE control structure
Possible settings:
„ IN_SPLINE: Fold can be inserted into a SPLINE
fold.
„ OFF_SPLINE: Fold cannot be inserted into a
SPLINE fold.
Default, if nothing is specified for ILF_TYPE or an
invalid value is assigned
„ ALL: Fold can be inserted into any fold.
STYLE Formatting of the inserted program code
Possible settings:
„ WYSIWYG (default setting)
(>>> 5.5.6.1 "WYSIWYG parameter" page 30)
„ SUB (>>> 5.5.6.2 "SUB parameter" page 30)
„ DSUB (>>> 5.5.6.3 "DSUB parameter" page 30)
„ FCT (>>> 5.5.6.4 "FCT parameter" page 31)
„ DFCT (>>> 5.5.6.5 "DFCT parameter" page 31)
„ ASS (>>> 5.5.6.6 "ASS parameter" page 31)
„ ASSAG (>>> 5.5.6.7 "ASSAG parameter"
page 32)
ONACCEPT Name of the script which is run on pressing the Enter
key or the softkey Cmd Ok
(>>> 5.9.1 "Calling a script on opening or closing the
inline form" page 48)
ONTOUCHUP Name of the script which is run on pressing the softkey
Touch Up
ONOPEN Name of the script which is run on opening the inline
form
(>>> 5.9.1 "Calling a script on opening or closing the
inline form" page 48)

V0.1 26.01.2007 KST-AD-UserTech23 en 29 / 71


KUKA.UserTech 2.3

5.5.6 Formatting program code

5.5.6.1 WYSIWYG parameter

Description The formatting of the inserted code corresponds exactly to the text of the inline
form.

Example

Fig. 5-1: Inline form LASER.ON (example 1)

Resulting program code:


LASER.ON Schweissdatensatz=DataSet1, Distance=200mm,
WeavePattern=PULSE

5.5.6.2 SUB parameter

Description The formatting of the inserted code corresponds to a subprogram call.


„ The parameters are reduced to the contents of the input boxes, separated
by commas and contained within brackets.
„ The dot separating the name of the technology and the name of the inline
form is suppressed.

Example

Fig. 5-2: Inline form LASER.ON (example 2)

Resulting program code:


LASERON(DataSet1,200,PULSE)

5.5.6.3 DSUB parameter

Description The formatting of the inserted code corresponds to a subprogram call.


„ The parameters are reduced to the contents of the input boxes, separated
by commas and contained within brackets.
„ The dot separating the name of the technology and the name of the inline
form is suppressed.
„ A parameter description is tagged on as a comment.

Example

Fig. 5-3: Inline form LASER.ON (example 2)

Resulting program code:


LASERON(DataSet1,200,PULSE) ;Schweissdatensatz,Distance,
WeavePattern

30 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

5.5.6.4 FCT parameter

Description The formatting of the inserted code corresponds to a function call.


„ Irrespective of its format, the value of the first box is presented as a fixed
text and used as the name of the function.
„ The other parameters are reduced to the contents of the input boxes, sep-
arated by commas and contained within brackets.
„ The dot separating the name of the technology and the name of the inline
form is suppressed.
„ An equals sign is inserted between the inline form name and the parame-
ter list.

Example

Fig. 5-4: Inline form LASER.ON (example 3)

Resulting program code:


LASERON=DataSet1(200,PULSE)

5.5.6.5 DFCT parameter

Description The formatting of the inserted code corresponds to a function call.


„ Irrespective of its format, the value of the first box is presented as a fixed
text and used as the name of the function.
„ The other parameters are reduced to the contents of the input boxes, sep-
arated by commas and contained within brackets.
„ The dot separating the name of the technology and the name of the inline
form is suppressed.
„ An equals sign is inserted between the inline form name and the parame-
ter list.
„ A parameter description is tagged on as a comment.

Example

Fig. 5-5: Inline form LASER.ON (example 3)

Resulting program code:


LASERON=DataSet1(200,PULSE) ;Distance[mm],WeavePattern

5.5.6.6 ASS parameter

Description The formatting of the inserted code corresponds to an assignment.


„ The parameters are reduced to the contents of the input boxes and sepa-
rated by commas.
„ The dot separating the name of the technology and the name of the inline
form is suppressed.
„ An equals sign is inserted between the inline form name and the parame-
ter list.

V0.1 26.01.2007 KST-AD-UserTech23 en 31 / 71


KUKA.UserTech 2.3

Example

Fig. 5-6: Inline form LASER.ON (example 4)

Resulting program code:


LASERON=DataSet1,200,PULSE

5.5.6.7 ASSAG parameter

Description The formatting of the inserted code corresponds to an aggregate assignment.


„ The parameters are reduced to the string defined under SHORTNAME[ ],
together with the contents of the input boxes.
„ The parameters thus reduced are separated by commas and enclosed in
braces.
„ The dot separating the name of the technology and the name of the inline
form is suppressed.
„ An equals sign is inserted between the inline form name and the parame-
ter list.

Example DEFTP SEARCH

DECL PARAM XDir={Shortname[] "X=", Value {Number: },Unit[] "mm"}


DECL PARAM YDir={Shortname[] "Y=", Value {Number: },Unit[] "mm"}
DECL PARAM ZDir={Shortname[] "Z=", Value {Number: },Unit[] "mm"}

DECL InlineForm Direction={PARAM[1] XDir ,PARAM[2] YDir,PARAM[3]


ZDir,STYLE ASSAGG}

ENDTP

Fig. 5-7: Inline form SEARCH.Direction

Resulting program code:


SEARCHDirection={X 8,Y 44,Z 3}

5.6 Overview - Programming the parameter list

Description An input box in the inline form can be assigned to a parameter list
(>>> 5.5.3.3 "VALUE {name: }" page 22).
The properties of the parameter list must be programmed.

Overview Step Description


1 Define the parameters of the parameter list.
(>>> 5.5.2 "DECL PARAM" page 21)
2 Define the structure of the data set.
(>>> 5.6.1 "DECL PARAM PL_" page 33)

32 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Step Description
3 Store the structure data set and default data set in $CON-
FIG.DAT.
(>>> 5.6.2 "Definition of the data type in $CONFIG.DAT"
page 33)
4 Define the parameter list and assign it to the input box.
(>>> 5.6.3 "DECL PLIST" page 34)

Example (>>> 5.6.4 "Example - Inline form with parameter list" page 35)

5.6.1 DECL PARAM PL_

Description Every parameter list contains a data set. DECL PARAM PL_ is used to define
the structure of the data set.

Syntax DECL PARAM PL_Name =


{<SHORTNAME[]"String",>
VAR[]"Data_type",
SHORTCUT[]"Prefix",
UNIT[]"System_name",
VALUE {FREE: DEFAULT[] "_"}}

Explanation of the Element Description


syntax DECL PARAM PL_ Name of the data set
SHORTNAME[] Name of the data set appearing in the option
window
VAR[] Structure data type of the data set
The structure data type is defined in $CON-
FIG.DAT.
(>>> 5.6.2 "Definition of the data type in $CON-
FIG.DAT" page 33)
SHORTCUT[] Prefix of the default data set
The default values of the structure data type are
defined in $CONFIG.DAT.
(>>> 5.6.2 "Definition of the data type in $CON-
FIG.DAT" page 33)
UNIT[] System name / internal identifier of the data set
VALUE {FREE: Placeholder for default values of the data set
DEFAULT[] "_"}

5.6.2 Definition of the data type in $CONFIG.DAT

Description The file is located in the directory C:\KRC\ROBOTER\KRC\R1\SYSTEM.


The following definitions must be stored there:
„ Structure data type of the data set
„ Default values of the structure data type

V0.1 26.01.2007 KST-AD-UserTech23 en 33 / 71


KUKA.UserTech 2.3

Syntax „ STRUC Data_type


Data_type1 Name_of_parameter1,
...,
Data_typeN Name_of_parameterN
„ DECL Data_type PrefixDEFAULT=
{Name_of_parameter1 Default1,
...,
Name_of_parameterN DefaultN}

Explanation of the Element Description


syntax STRUC „ Structure name of the data type
(>>> 5.6.1 "DECL PARAM PL_" page 33)
„ Data types of parameters [1] to [n] of the data set:
„ INT
„ REAL
„ BOOL
DECL Structure name of the data type
(>>> 5.6.1 "DECL PARAM PL_" page 33)
Prefix Prefix of the default data set
(>>> 5.6.1 "DECL PARAM PL_" page 33)
PrefixDEFAULT Default values [1] to [n] of the data type
The default values are freely selectable.

5.6.3 DECL PLIST

Description Defining the parameter list

Syntax DECL PLIST Name_of_data_set[n] -> Assignment to input box in inline form
Name_of_data_set[1] = Name_of_parameter1
...
Name_of_data_set[n] = Name_of_parameterN

Explanation of the Element Description


syntax DECL PLIST Name of the data set
(>>> 5.6.1 "DECL PARAM PL_" page 33)
[n] Number of parameters
-> Name of the input box in the inline form to which
the data set is linked
Name_of_data_set[1] Names of parameters [1] to [n] of the data set
... These parameters (layout and range of values)
Name_of_data_set[n] must be defined beforehand in DECL PARAM.

34 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

5.6.4 Example - Inline form with parameter list

Example

Fig. 5-8: Inline form with parameter list

Item Description Permissible values


1 Inline form selection Existing inline forms
„ MyCmd
„ ILF_With_ParamList
2 Input box of type VALUE {name: } Valid KRL variables
(>>> 5.5.3.3 "VALUE {name: }" (>>> 5.3.4 "Naming con-
page 22) ventions and keywords"
page 17)
Behind the value VAL1 lies a laser
data set. Its parameters are set in
the PLTOOL option window.

Fig. 5-9: Option window PLTOOL 1/2

Item Program line


1 5-7
2 8 - 10
3 11 - 13
4 14 - 16

V0.1 26.01.2007 KST-AD-UserTech23 en 35 / 71


KUKA.UserTech 2.3

Fig. 5-10: Option window PLTOOL 2/2

Item Program line


5 17 - 19
6 20 - 22
7 23 - 25
8 24 - 28

36 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Program 1 DEFTP MyTech


2 Decl PARAM ParamList = {SHORTNAME[] "Val: ", _
3 VALUE {Name: DEFAULT[] "val1"}}
4
5 Decl PARAM LSR_MAX_PWR = {SHORTNAME[] "Maximum Power", _
6 VALUE {NUMBER:MIN 0, MAX 20000, STEP 100, AUTOLIMIT TRUE, _
7 DEFAULT 2000}, UNIT[] "W", SHORTCUT[] "MAXP" }
8 Decl PARAM LSR_MIN_PWR = {SHORTNAME[] "Minimum Power", _
9 VALUE {NUMBER:MIN 0, MAX 20000, STEP 100 , AUTOLIMIT TRUE, _
10 DEFAULT 2000}, UNIT[] "W", SHORTCUT[] "MINP" }
11 Decl PARAM LSR_PRG = {SHORTNAME[] "Laser Program", _
12 VALUE {NUMBER:MIN 1, MAX 79,STEP 1, AUTOLIMIT TRUE, _
13 DEFAULT 1}, SHORTCUT[] "PRG"}
14 Decl PARAM SNSR_PRG = {SHORTNAME[] "Sensor Program", _
15 VALUE {NUMBER:MIN 0, MAX 3,STEP 1, AUTOLIMIT TRUE, _
16 DEFAULT 1}, SHORTCUT[] "PREC"}
17 Decl PARAM GAS_PRESSURE = {SHORTNAME[] "Cutting Gas", _
18 VALUE {NUMBER:MIN 0, MAX 8, STEP 1 , AUTOLIMIT TRUE, _
19 DEFAULT 2}, UNIT[] "bar", SHORTCUT[] "GAS" }
20 Decl PARAM GAS_PRE_FLOW = {SHORTNAME[] "PRE Flow Time", _
21 VALUE {NUMBER:MIN 0, MAX 5000, STEP 100 , AUTOLIMIT TRUE, _
22 DEFAULT 0}, UNIT[] "ms", SHORTCUT[] "PRE" }
23 Decl PARAM GAS_POST_FLOW = {SHORTNAME[] "POST Flow Time", _
24 VALUE {NUMBER:MIN 0, MAX 5000, STEP 100 , AUTOLIMIT TRUE, _
25 DEFAULT 0}, UNIT[] "ms", SHORTCUT[] "POST" }
26 Decl PARAM LSR_DLY = {SHORTNAME[] "Piercing Time", _
27 VALUE {NUMBER:MIN 0, MAX 5000, STEP 100 , AUTOLIMIT TRUE, _
28 DEFAULT 0}, UNIT[] "ms", SHORTCUT[] "LSR" }
29
30 Decl PARAM PL_LsrTool = {SHORTNAME[] "PLTOOL", _
31 VAR[] "LSC_TOOL_TYP", _
32 SHORTCUT[] "LT", UNIT[] "TOOL", _
33 Value {FREE: DEFAULT[] "_"}}
34
35 DECL FOLD MyFold[1]
36 MyFold[1]= ";test"
37 DECL FOLD PFold[1]
38 PFold[1]= ";ParamList"
39
40 DECL PLIST LsrTool[8] -> ParamList
41 LsrTool[1] = LSR_MAX_PWR
42 LsrTool[2] = LSR_MIN_PWR
43 LsrTool[3] = LSR_PRG
44 LsrTool[4] = SNSR_PRG
45 LsrTool[5] = GAS_PRESSURE
46 LsrTool[6] = GAS_PRE_FLOW
47 LsrTool[7] = GAS_POST_FLOW
48 LsrTool[8] = LSR_DLY
49
50 Decl InlineForm MyCmd = { FOLD[1] MyFold }
51 Decl InlineForm ILF_With_ParamList = FOLD[1] PFold, _
52 PARAM[1] ParamList}
53 ENDTP

Line Description
1, 53 Definition of the technology MyTech
2-3 Definition of the input box "ParamList" in the inline form
5 - 28 Definition of the parameters in the PLTOOL option window
30 - 33 Definition of the structure of the data set
The data type "LSC_TOOL_TYP" of the data set and its default
values are defined in $CONFIG.DAT.
35 - 38 Definition of the folds
40 - 48 Definition of the parameter list
The assignment "-> ParamList" links the parameter list to the
input box in the inline form.
50 - 52 Definition of the inline forms

V0.1 26.01.2007 KST-AD-UserTech23 en 37 / 71


KUKA.UserTech 2.3

$CONFIG.DAT „ Definition of the data type "LSC_TOOL_TYP":


STRUC LSC_TOOL_TYP _
INT LSR_MAX_PWR,INT LSR_MIN_PWR,INT LSR_Prg, _
REAL SNSR_Prg,INT SNSR_State,REAL GAS_Pressure, _
INT LSR_Dly,INT GAS_Pre_Flow,INT GAS_Post_Flow

„ Definition of the default values "LSC_TOOL_TYP":


DECL LSC_TOOL_TYP LTDEFAULT= _
{LSR_MAX_PWR 500,LSR_MIN_PWR 50,LSR_Prg 1, _
SNSR_Prg 1.0,SNSR_State 0,GAS_Pressure 1.0, _
LSR_Dly 100,GAS_Pre_Flow 0,GAS_Post_Flow 0}

5.7 Overview - Programming status keys

Overview Step Description


1 Design the status keys.
(>>> 5.7.1 "Designing the status keys" page 38)
2 Prepare the scripts.
(>>> 5.8.1 "DEFSCRIPT ... ENDSCRIPT" page 44)
3 Define the status keys.
(>>> 5.7.2 "DECL STATKEY" page 39)
4 Define the status key bar.
(>>> 5.7.3 "DECL STATKEYBAR" page 42)
5 Reinitialize the KUKA.HMI.
(>>> 5.10 "Refreshing the user interface" page 51)
7 Program the scripts.
(>>> 5.8 "Overview of KUKA.UserTech commands - Pro-
gramming scripts" page 43)
8 Reinitialize KUKA.UserTech.
(>>> 5.11 "Refreshing KUKA.UserTech" page 51)

5.7.1 Designing the status keys

KUKA.UserTech enables the user to assign functions to the 4 lower right-hand


status keys on the KCP.

38 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Fig. 5-11: Assignment of KCP status keys

„ Define the assignment of the status keys.


„ Define the layout of the status keys.
„ Define the size of the status keys.
„ Define the conditions for activating the status keys.
„ Design scripts to be called by particular actions, e.g. on pressing a status
key.

5.7.2 DECL STATKEY

Description Defining a status key

Syntax DECL STATKEY Name =


{<TOPTEXT[] "String",>
<CENTERTEXT[] "String",>
<BOTTOMTEXT[] "String",>
<PICTURE[] "String",>
<KEYDOWN_PICTURE[] "String",>
<KEYDOWNMINUS_PICTURE[] "String",>
<ENABLE Bool,>
<NEED_SAFETYSWITCH Bool,>
<NEED_DRIVESOK Bool,>
<NEED_PROSTATEO Value1,>
<NEED_PROSTATE Value2,>
<NEED_MODEOP Value3,>
<USERMODE Identification_number,>
<STYLE #SWITCH|#TOGGLE,>
<ONKEYDOWN Script,>

V0.1 26.01.2007 KST-AD-UserTech23 en 39 / 71


KUKA.UserTech 2.3

<ONKEYUP Script,>
<ONKEYSHOW Script,>
<ONKEYDOWNMINUS Script,>
<ONKEYUPMINUS Script,>
<ONKEYREPEAT Script,>
<ONKEYREPEATMINUS Script,>
<NEXT Name>}

Explanation of the Definition of the status key


syntax
Element Description
DECL STATKEY Name of the status key

Layout of the status key

Element Description
TOPTEXT[] Text displayed centered in the upper part of
the status key
CENTERTEXT[] Text displayed centered in the middle part of
the status key
BOTTOMTEXT[] Text displayed centered in the lower part of
the status key
PICTURE[] Path of the graphic appearing on the status
key
KEYDOWN_PICTURE[] Path of the graphic displayed on the status
key when "+" is pressed
If no path is given here, the graphic specified
under PICTURE[ ] is displayed.
KEYDOWNMINUS_PICTUR Path of the graphic displayed on the status
E[] key when "-" is pressed
If no path is given here, the graphic specified
under PICTURE[ ] is displayed.
STYLE „ #SWITCH (default):
Simple status key
„ #TOGGLE:
Double status key
The upper KCP key assigned to the status
key performs the "-" function, and the low-
er KCP key performs the "-" function.

For the graphics, icons (*.ico) or bitmaps (*.bmp) can be used. The use of
icons is recommended.
The following image sizes are required:
„ 34 x 48 pixels for a simple status key
„ 34 x 128 pixels for a double status key

40 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Activating the status key

Element Description
ENABLE TRUE: Status key is activated.
FALSE: Status key is deactivated.
NEED_SAFETYSWITCH TRUE: Status key is activated on pressing
the enabling switch.
FALSE: Default
NEED_DRIVESOK TRUE: Status key is activated on switching
on the drives.
FALSE: Default
NEED_PROSTATEO Type: INT
Activation of the status key is dependent on
the operating state of the Submit interpreter.
Default value = 32: Status key is only availa-
ble when the Submit interpreter is running.
NEED_PROSTATE Type: INT
Activation of the status key is dependent on
the operating state of the robot interpreter.
Default value = 30: Status key is only acti-
vated when the Start key is released.
NEED_MODEOP Type: INT
Activation of the status key is dependent on
the operating mode selected.
Default value = 7: Status key is available in
the operating modes T1, T2 and Automatic.
USERMODE Type: INT
Identification number of the lowest user group
for which the status key is activated.
Default value = 0: Status key is available for
every user group.

To calculate the values for the options NEED_PROSTATEO,


NEED_PROSTATE and NEED_MODEOP, the bit number is raised to the
power of 2.
„ NEED_PROSTATEO

Operating Binary value


Bit number Decimal value
mode (default value)
ACTIVE 5 1 32
END 4 0
RESET 3 0
STOP 2 0
FREE 1 0
UNKNOWN 0 0

„ NEED_PROSTATE

V0.1 26.01.2007 KST-AD-UserTech23 en 41 / 71


KUKA.UserTech 2.3

Operating Binary value


Bit number Decimal value
mode (default value)
ACTIVE 5 0 30
END 4 1
RESET 3 1
STOP 2 1
FREE 1 1
UNKNOWN 0 0

„ NEED_MODEOP

Operating Binary value


Bit number Decimal value
mode (default value)
EXTERNAL 3 0 7
AUTOMATIC 2 1
T1 mode 1 1
T2 mode 0 1

Calling scripts

Element Description
ONKEYDOWN Name of the script which is run on pressing "+"
ONKEYUP Name of the script which is run on releasing "+"
ONKEYSHOW Name of the script which is run on displaying the
status key
ONKEYDOWNMINUS Name of the script which is run on pressing "-"
ONKEYUPMINUS Name of the script which is run on releasing "-"
ONKEYREPEAT Name of the script which is run on holding down
"+"
The script is repeatedly triggered until the key is
released. The interval between repetitions
becomes shorter and shorter.
ONKEYREPEATMINUS Name of the script which is run on holding down
"-"
The script is repeatedly triggered until the key is
released. The interval between repetitions
becomes shorter and shorter.

Definition of the next status key

Element Description
NEXT Name of the next status key to be defined

5.7.3 DECL STATKEYBAR

Description Defining a status key bar

Syntax DECL STATKEYBAR Name =


{<STATKEY[1] Name1 ,>
<STATKEY[2] Name2,>
<STATKEY[3] Name3,>

42 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

<STATKEY[4] Name4,> }

Explanation of the Element Description


syntax DECL STATKEYBAR Name of the status key bar
STATKEY[1] Name of the 4 status keys in the status key bar
, ...
STATKEY[4]

5.7.4 SET

Description „ Reassigning a status key that has already been declared


„ Reassigning a status key bar that has already been declared
The SET statement can be used within or outside scripts. When used within
scripts, placeholders which received their value assignment before execution
of the script (e.g. %INLINEFORM) can also be used.

Syntax SET Name =

Explanation of the Element Description


syntax SET „ Name of the status key already declared
The remaining syntax is identical to the syntax fol-
lowing "DECL STATKEY Name =".
(>>> 5.7.2 "DECL STATKEY" page 39)
„ Name of the status key bar already declared
The remaining syntax is identical to the syntax fol-
lowing "DECL STATKEYBAR Name =".
(>>> 5.7.3 "DECL STATKEYBAR" page 42)

5.8 Overview of KUKA.UserTech commands - Programming scripts

Overview
Commands
DEFSCRIPT (>>> 5.8.1 "DEFSCRIPT ... ENDSCRIPT"
page 44)
...
ENDSCRIPT
SETVAR (>>> 5.8.2 "SETVAR" page 44)
SHOWVAR (>>> 5.8.3 "SHOWVAR" page 45)
REDECL (>>> 5.8.4 "REDECL" page 45)
DO (>>> 5.8.5 "DO" page 46)
SET (>>> 5.7.4 "SET" page 43)
MESSAGE (>>> 5.8.6 "MESSAGE" page 46)
SWITCH (>>> 5.8.7 "SWITCH ... CASE (ELSE) ... ENDS-
WITCH" page 46)

CASE(ELSE)
...
ENDSWITCH

V0.1 26.01.2007 KST-AD-UserTech23 en 43 / 71


KUKA.UserTech 2.3

Commands
SWITCH DIALOG (>>> 5.8.8 "SWITCH DIALOG ... CASE ...
ENDSWITCH" page 47)

CASE

ENDSWITCH
ACCEPTINLINE- (>>> 5.8.9 "Predefined scripts" page 48)
FORM
CANCELINLINE-
FORM
END
NOTHING

5.8.1 DEFSCRIPT ... ENDSCRIPT

Description Defining a script

Syntax DEFSCRIPT Name


...
ENDSCRIPT

Explanation of the Element Description


syntax DEFSCRIPT Name of the script
ENDSCRIPT End of the script definition

Scripts must not be nested.

5.8.2 SETVAR

Description Setting a variable in the kernel system

Syntax SETVAR (FULLPATH[]"String", VALUE[]"String")

Explanation of the Element Description


syntax FULLPATH Name of the variable
All parameter reference placeholders in the character
string are replaced by their current values. The result-
ing character string is interpreted as a variable name
with path specification.
VALUE Value of the variable
All parameter reference placeholders in the character
string are replaced by their current values. The result-
ing character string is interpreted as a target value.

Example DEFTP MyTech


DEFSCRIPT Beispiel
SETVAR(FULLPATH[] "$OUT[20]", VALUE[] "TRUE")
ENDSCRIPT
ENDTP

44 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

After running the script, the following applies:


„ $OUT[20]==TRUE

5.8.3 SHOWVAR

Description Reading a variable from the kernel system

Syntax SHOWVAR (FULLPATH[]"String", PARAM Name)

Explanation of the Element Description


syntax FULLPATH Name of the variable to be read
All parameter reference placeholders in the character
string are replaced by their current values. The resulting
character string is interpreted as a variable name with path
specification.
PARAM Name of the parameter into which the read value is written.

Example DEFTP MyTech


DECL PARAM MyParam ={VALUE {FREE: DEFAULT[]""}}
DEFSCRIPT Beispiel
SHOWVAR(FULLPATH[] "MODE_OP", PARAM MyParam)VALUE[] "TRUE")
MESSAGE "$MODE_OP=%MyParam"
ENDSCRIPT
ENDTP

After running the script with the program "Test.src" selected in T1 mode, the
following message is displayed in the message window:
„ $MODE_OP=#T1

5.8.4 REDECL

Description Creating or overwriting a variable in the kernel system

Syntax REDECL (PATH[]"String", DECLARATION[]"String")

Explanation of the Element Description


syntax PATH[] Path name of the new variable
All parameter reference placeholders in the character
string are replaced by their current values. The result-
ing character string is interpreted as a variable name
with path specification.
DECLARA- Declaration of the new variable
TION[]
All parameter reference placeholders in the character
string are replaced by their current values. The result-
ing character string is interpreted as a target value.

Example DEFTP MyTech


DEFSCRIPT Beispiel
REDECL(PATH[] "%MODULE/", DECLARATION[] "DECL AXIS HOME= _
{A1 09, A2-90, A3 90, A4 0, A5 0, A6 0}")
ENDSCRIPT
ENDTP

After running the script with the program "Test.src" selected, the variable
"HOME" is created in the file "Test.dat".

V0.1 26.01.2007 KST-AD-UserTech23 en 45 / 71


KUKA.UserTech 2.3

1 DEFDAT TEST
2 EXTERNAL DECLARATIONS
3 DECL AXIS HOME={A1 5.5, A2 -95.5, A3 95.5, A4 5.5, A5 5.5, A6 5.5}
4 ENDDAT

5.8.5 DO

Description Calling a script

Syntax DO Name

Explanation of the Element Description


syntax DO Name of the script to be called

5.8.6 MESSAGE

Description Definition of a one-line message which is displayed in the message window

Syntax MESSAGE "String"

Explanation of the Element Description


syntax MESSAGE Message to be displayed
All parameter reference placeholders in the character
string are replaced by their current values.

The character string is used as a key for the language database.


In order to be able to access this database, it must contain a module with the
name of the technology package in which the script was defined.
In the case of global scripts, the module KUKATPUSERGlobal is accessed.
If access to the language database fails, the key itself is displayed in the mes-
sage window. The name of the technology which contains the script currently
being executed is displayed in the column "Source".
In the case of parameterized outputs, the parameters must be tagged on to the
key, separated by the characters "/|".

5.8.7 SWITCH ... CASE (ELSE) ... ENDSWITCH

Description Calls one of several possible scripts, depending on the polling of a variable.
The CASE line whose result corresponds to the variable is selected.
Once the associated script has been executed, the program is resumed after
ENDSWITCH.
If there is no result corresponding to the variable, the CASE ELSE line is se-
lected. If this is not present, or no associated script has been defined, no script
is executed and the program is resumed after ENDSWITCH.

SWITCH ... CASE (ELSE) ... ENDSWITCH blocks must not be nested.

Syntax SWITCH "PollString"


CASE "ResultString1" DO Script1
<CASE "ResultString2" DO Script2>

46 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

<...>
<CASE ELSE ScriptN>
ENDSWITCH

Explanation of the Element Description


syntax SWITCH Name of the variable to be polled
All parameter reference placeholders in the character
string are replaced by their current values. The result-
ing character string is interpreted as a variable name
with path specification.
Instead of a variable name, the following keywords
can be used:
„ ISCHANGE
Polls whether a new inline form has been inserted
or an existing inline form changed.
Range of values: TRUE, FALSE
(>>> 5.9.2 "Calling a script on changing or creat-
ing the inline form" page 49)
„ DOALWAYS
Polls whether toggling between 2 inline forms has
occurred.
Range of values: TRUE, FALSE
(>>> 5.9.3 "Calling a script on toggling between
inline forms" page 50)
CASE ... DO Result of polling; name of the script to be executed
All parameter reference placeholders in the character
string are replaced by their current values. The result-
ing character string is interpreted as a variable name
with path specification.
CASE ELSE Name of the script to be executed if none of the
defined results occur

5.8.8 SWITCH DIALOG ... CASE ... ENDSWITCH

Description Enables a dialog between the program and the user. A dialog text is output in
the message window. The user answers via the softkeys, which call the asso-
ciated script.
Once the script has been executed, the program is resumed after ENDS-
WITCH.
2 to 7 CASE lines must be programmed. These correspond to the softkeys,
proceeding from right to left.

Syntax SWITCH DIALOG "QuestionString"


CASE "AnswerString1" DO Script1
<CASE "AnswerString2" DO Script2>
< ... >
CASE "AnswerString7" DO Script7
ENDSWITCH

V0.1 26.01.2007 KST-AD-UserTech23 en 47 / 71


KUKA.UserTech 2.3

SWITCH DIALOG ... CASE ... ENDSWITCH blocks must not be nested.

Explanation of the Element Description


syntax SWITCH DIALOG Question displayed in the message window.
All parameter reference placeholders in the character
string are replaced by their current values. The char-
acter string is used as a key for the language data-
base.
CASE Answer displayed on the softkey
Omitting the answer string generates a blank softkey.
All parameter reference placeholders in the character
string are replaced by their current values. The char-
acter string is used as a key for the language data-
base.
DO Name of the script which is run on pressing the
softkey

The messages and softkey texts are saved in the currently selected language
via language database keys. In order to be able to access this database, it
must contain a module with the name of the technology package in which the
script was defined.
In the case of global scripts, the module KUKATPUSERGlobal is accessed.
In the case of softkeys, the corresponding key must be created in the database
for each language. If access to the language database fails, the messages or
the individual softkeys cannot be displayed in the selected language.
In the case of parameterized outputs, the parameters must be tagged on to the
key, separated by the characters "/|". The translated text and the parameters
are then combined in the language database.

5.8.9 Predefined scripts

Command Function
ACCEPTINLINE- „ The open inline form is closed.
FORM „ The changed parameters are applied.
CANCELINLINE- „ The open inline form is closed.
FORM „ The changed parameters are not applied.
END The currently running script is aborted.
NOTHING Functions as a placeholder for a script

5.9 Calling scripts by means of actions

When defining inline forms, it is possible to specify the names of scripts which
are to be called in the event of particular actions.

5.9.1 Calling a script on opening or closing the inline form

Description The script "op_test" defines the message "Fired when ILF is opened". The
keyword ONOPEN (>>> 5.5.5 "DECL INLINEFORM" page 28) in the defini-
tion of the inline form causes this message to be displayed in the message
window when the inline form is opened.

48 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

The script "cl_test" defines the message "Fired when ILF is closed". The key-
word ONACCEPT (>>> 5.5.5 "DECL INLINEFORM" page 28) in the definition
of the inline form causes this message to be displayed in the message window
when the inline form is closed.

Program DEFTP test

;---------------------
;------ Scripts -----
;---------------------

DEFSCRIPT op_test
MESSAGE "Fired when ILF is opened!"
ENDSCRIPT

DEFSCRIPT cl_test
MESSAGE "Fired when ILF is closed!"
DO ACCEPTINLINEFORM
ENDSCRIPT

;---------------------
;------ FOLDs -----
;---------------------

DECL FOLD TestFold[1]


TestFold[1]="/;only for testing ONOPEN-event"

;---------------------
;------ INLINEFORMs -----
;---------------------

DECL INLINEFORM TestILF={FOLD[1] TestFold, ONOPEN op_test, ONACCEPT


cl_test}

ENDTP

5.9.2 Calling a script on changing or creating the inline form

Description By default, the ONOPEN event is always triggered on opening an inline form
by means of the CHANGE command.
If a certain script is to be started only if a new inline form is inserted or if an
existing inline form is modified, this can be done using the SWITCH CASE
statement and the keyword ISCHANGE.

V0.1 26.01.2007 KST-AD-UserTech23 en 49 / 71


KUKA.UserTech 2.3

Program DEFTP test

;---------------------
;------ Scripts -----
;---------------------

DEFSCRIPT ch_test
MESSAGE "Fired only when ILF is changed!"
ENDSCRIPT

DEFSCRIPT new_test
MESSAGE "Fired only when ILF is created!"
ENDSCRIPT

DEFSCRIPT op_test
SWITCH "ISCHANGE"

CASE "TRUE" DO ch_test

CASE "FALSE" DO new_test


ENDSWITCH
ENDSCRIPT

DEFSCRIPT cl_test
MESSAGE "Fired when ILF is closed!"
DO ACCEPTINLINEFORM
ENDSCRIPT

;---------------------
;------ FOLDs -----
;---------------------

DECL FOLD TestFold[1]


TestFold[1]="/;only for testing ONOPEN-event"

;---------------------
;------ INLINEFORMs -----
;---------------------

DECL INLINEFORM TestILF={FOLD[1] TestFold, ONOPEN op_test, ONACCEPT


cl_test}

ENDTP

5.9.3 Calling a script on toggling between inline forms

Description The ONOPEN event is triggered by default on toggling between inline forms
within a technology.
If a certain script is to be started every time the user toggles between inline
forms, this can be done using the SWITCH CASE statement and the keyword
DOALWAYS.

50 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Program DEFTP test

;---------------------
;------ Scripts -----
;---------------------

DEFSCRIPT test_1
MESSAGE "Fired only once!"
ENDSCRIPT

DEFSCRIPT al_test
MESSAGE "Fired always!"
ENDSCRIPT

DEFSCRIPT test_2
SWITCH "DOALWAYS"

CASE "TRUE" DO al_test


ENDSWITCH
ENDSCRIPT

;---------------------
;------ FOLDs -----
;---------------------

DECL FOLD TestFold[1]


TestFold[1]="/;only for testing ONOPEN-event"

;---------------------
;------ INLINEFORMs -----
;---------------------

DECL INLINEFORM TestILF_1={FOLD[1] TestFold, ONOPEN test_1}


DECL INLINEFORM TestILF_2={FOLD[1] TestFold, ONOPEN test_2}

ENDTP

5.10 Refreshing the user interface

Description This function can be used to refresh the user interface, e.g. to display status
keys created by the user.
The graphical user interface is reinitialized without rebooting the system. The
progress of the reinitialization is indicated in the message window.

Precondition „ Expert user group

Procedure „ Select the menu sequence Configure > Tools > Reinit > BOF Reinitial-
ization.

5.11 Refreshing KUKA.UserTech

Description This function allows KUKA.UserTech to be refreshed while the robot controller
is running, e.g. in order to activate changes to the definition of inline forms.
UserTech is reinitialized without rebooting the system. The progress of the
reinitialization is indicated in the message window.

Precondition „ Expert user group

Procedure „ Select the menu sequence Configure > Tools > Reinit > UserTech Rein-
itialization.

V0.1 26.01.2007 KST-AD-UserTech23 en 51 / 71


KUKA.UserTech 2.3

5.12 Creating new menu items

New menu items and submenus can be integrated into the user interface by
means of entries in the file MenueKeyUser.INI in the directory C:\KRC\RO-
BOTER\INIT. Furthermore, the technologies created with KUKA.UserTech
can be linked to the menu items.

5.12.1 Syntax of menu entries in the [SOFTKEYS] section

Syntax SkName = DbKey, ProcId, ProcName, ProcParam, NextlineType, NextLineId,


UserLevel

Explanation of the Element Description


syntax SkName Softkey indentifier: Programmer's system name
DbKey Language database key
Procld Function number of the function module
„ 2010 for inline forms
„ 11 for status keys or status key bar
ProcName Name of the function module
„ INLINEFORM for inline forms
„ USERSTATKEYBAROCX for status keys or status
key bars
ProcParam Parameters of the function module
The complete syntax of the function module is:
„ KUKATPUSER; Tech_Name; Command

Tech_Name
Name of the technology in which the function module is
defined

Command
Name of the function module displayed by default
NextLineType Type of next line:
„ Default: If nothing is specified, no line follows.
„ NOLINE: No line follows.
„ POPUP: A submenu follows.
Nextlineld Name of the following submenu
UserLevel Identification number of the lowest user group for which
the function module is available
Identification numbers of the predefined user groups:
„ 10: User
„ 20: Expert
„ 30: Administrator

5.12.2 Creating a new menu item with submenu

Precondition The following elements of the new techology must be programmed:


„ Inline forms (>>> 5.5.5 "DECL INLINEFORM" page 28)
„ Status key bars (>>> 5.7.3 "DECL STATKEYBAR" page 42)

52 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

„ Status keys (>>> 5.7.2 "DECL STATKEY" page 39)

Procedure 1. In the file MenueKeyUser.INI, go to the section [SOFTKEYS] and define


the menu item.
Menu_Item_Name = Menu_Item_Label, , , ,POPUP,List_Menu_Options

Element Description
Menu_Item_Name System name of the menu item
Menu_Item_Label Name of the menu item appearing in the
menu
POPUP Optional. The keyword causes a submenu to
be opened on selecting the menu item.
List_Menu_Options List of the menu options in the submenu
Only relevant if POPUP is used.

2. In the file MenueKeyUser.INI, go to the section [#MENU] and define the


menu options in the submenu.
List_Menu_Options = Option_1, Option_2, Option_3

Element Description
Option_1 Menu option appearing in position 1 in the submenu
Option_2 Menu option appearing in position 2 in the submenu
Option_3 Menu option appearing in position 3 in the submenu

It is advisable to define a maximum of 10 menu options, in order to be able


call them with the numeric keypad.
3. In the file MenueKeyUser.INI, go to the section [MOVE] and specify the
menu and the position in which the new menu item is to appear.
„ Insert menu item in the Technology menu:
Menu_Item_Name = ,MENU#mTechnology,Position_Number

„ Insert menu item in the Status keys menu item:


Menu_Item_Name = ,MENU#mTechstatuskeys,Position_Number

Element Description
Position_Number Integer value specifying the position of the
new menu item in the menu.
The value 0 stands for the 1st position.

4. In the file MenueKeyUser.INI, go to the section [SOFTKEYS] and link the


menu options to the technology.
„ Call the inline form:
Option_1 = Menu_Option_Label,2010,INLINEFORM,KUKATPUSER; _
Tech_Name.Inlineform_Name

„ Call the status key bar:


Option_1 = Menu_Option_Label,11,USERSTATKEYBAROCX, _
KUKATPUSER;Tech_Name.Statkeybar_Name

„ Call the status key:


Option_1 = Menu_Option_Label,11,USERSTATKEYBAROCX, _
KUKATPUSER;Tech_Name.Statkey_Name

V0.1 26.01.2007 KST-AD-UserTech23 en 53 / 71


KUKA.UserTech 2.3

Element Description
Menu_Option_Label Name of the menu item in the submenu, used
to call the technology
Tech_Name Name of the technology in which the inline
form, status key bar or status key is defined
Inlineform_Name Name of the inline form called by the menu
item
Statkeybar_Name Name of the status key bar called by the
menu item
Statkey_Name Name of the status key called by the menu
item

5. Save and close the file MenueKeyUser.INI.


6. Reinitialize the KUKA.HMI (>>> 5.10 "Refreshing the user interface"
page 51).

5.12.3 Examples - Integration of technologies into the user interface (KUKA.HMI)

5.12.3.1 Integrating a technology via a new menu item

Program DEFTP TWINKLE

decl fold one[5]


one[1]="/;twinkle once"
one[2]="$out[5]=true"
one[3]="wait sec 1.5"
one[4]="$out[5]=false"
one[5]="wait sec 1.5"

decl fold two[9]


two[1]="/;twinkle twice"
two[2]="$out[5]=true"
two[3]="wait sec 1.5"
two[4]="$out[5]=false"
two[5]="wait sec 1.5"
two[6]="$out[5]=true"
two[7]="wait sec 1.5"
two[8]="$out[5]=false"
two[9]="wait sec 1.5"

decl inlineform once = {fold[1] one}


decl inlineform twice = {fold[1] two}
decl inlineform triple = {fold[1] one, fold[2] two}

ENDTP

Description The technology TWINKLE defines 3 inline forms. The command "twice" is to
appear by default when the menu item BLINKTech is selected.

Fig. 5-12: Inline form Twinkle.twice

The menu item BLINKTech is to be integrated into the user interface in the 2nd
position of the Technology menu.

Procedure 1. In the file MenueKeyUser.INI, go to the section [SOFTKEYS] and define


the menu item BLINKTech.
Flash_Light = BLINKTech,,INLINEFORM,KUKATPUSER;TWINKLE.twice,,,20

54 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

Element Description
Flash_Light System name of the menu item
BLINKTech Name of the menu item appearing in the Technol-
ogy menu
twice Command appearing in the inline form when the
menu item BLINKTech is selected.
20 Identification number of the lowest user group for
which the inline form is available

2. In the file MenueKeyUser.INI, go to the section [MOVE] and define the po-
sition of the menu item BLINKTech in the Technology menu.
Flash_Light = ,MENU#mTechnology,1

3. Save and close the file MenueKeyUser.INI.


4. Reinitialize the KUKA.HMI (>>> 5.10 "Refreshing the user interface"
page 51).

5.12.3.2 Integrating a technology via a new menu item with submenu

Description On selecting the menu item BLINKTech, a submenu with the menu items one,
two and three is to open, with which the 3 inline forms of the technology
TWINKLE can be called individually.
On selecting the menu sequence Technology > BLINKTech > three, the
command "triple" is to appear in the inline form.

Fig. 5-13: Inline form Twinkle.triple

The menu item BLINKTech is to be integrated into the user interface in the 7th
position of the Technology menu.

Procedure 1. In the file MenueKeyUser.INI, go to the section [SOFTKEYS] and define


the menu item BLINKTech.
Flash_Light = BLINKTech, , , ,POPUP,List_Menu_Options

2. In the file MenueKeyUser.INI, go to the section [#MENU] and define the


menu options in the submenu.
List_Menu_Options = Option_1, Option_2, Option_3

3. In the file MenueKeyUser.INI, go to the section [MOVE] and define the po-
sition of the menu item BLINKTech in the Technology menu.
Flash_Light = ,MENU#mTechnology,6

4. In the file MenueKeyUser.INI, go to the section [SOFTKEYS] and link the


menu options to the inline forms.
Option_1 = one,2010,INLINEFORM,KUKATPUSER;TWINKLE.once
Option_2 = two,2010,INLINEFORM,KUKATPUSER;TWINKLE.twice
Option_3 = three,2010,INLINEFORM,KUKATPUSER;TWINKLE.triple

Element Description
once Command appearing in the inline form when the
menu item one is selected.

V0.1 26.01.2007 KST-AD-UserTech23 en 55 / 71


KUKA.UserTech 2.3

Element Description
twice Command appearing in the inline form when the
menu item two is selected.
three Command appearing in the inline form when the
menu item three is selected.

5. Save and close the file MenueKeyUser.INI.


6. Reinitialize the KUKA.HMI (>>> 5.10 "Refreshing the user interface"
page 51).

5.12.3.3 Integrating status keys into the user interface

Program Deftp RINSE_GLUE

Decl statkey key4={TopText[] "Rinse",BottomText[] "ON", _


picture[] "C:\KRC\TP\USERTECH\TEMPLATE\PICTURES\Rinse1.bmp", _
need_prostate0 63 }

DefScript sc_KeyUp
SetVar(fullpath[] "$OUT[2]", Value[] "FALSE")
Set Key4={Picture[] "C:\KRC\TP\USERTECH\TEMPLATE\ _
PICTURES\Rinse1.bmp",
BottomText[] "ON" }
EndScript

DefScript sc_KeyDown
SetVar(fullpath[] "$OUT[2]", Value[] "TRUE")
Set Key4={Picture[] "C:\KRC\TP\USERTECH\TEMPLATE\ _
PICTURES\Rinse2.bmp",
BottomText[] "OFF" }
EndScript

Set key4={OnKeyDown sc_KeyDown, OnKeyUp sc_KeyUp}

Decl statkeybar bar4


Set bar4 ={statkey[4] key4}

Endtp

Description The technology RINSE_GLUE defines the status key [4], with which the scripts
"sc_KeyUp" and "sc_KeyDown" can be called.
The status key is to appear on the user interface on selecting the menu se-
quence Configure > Status keys > RINSE.
The menu item RINSE is to be integrated in the 1st position of the menu item
Status keys in the Configure menu.

Procedure 1. In the file MenueKeyUser.INI, go to the section [SOFTKEYS] and define


the menu item RINSE.
Userstat4 = RINSE,11,USERSTATKEYBAROCX,KUKATPUSER;RINSE_GLUE.bar4

Element Description
Userstat4 System name of the menu item
RINSE Name of the menu item appearing on selection of
the menu item Status keys
bar4 Name of the status key bar called by the menu item
RINSE

2. In the file MenueKeyUser.INI, go to the section [MOVE] and define the po-
sition of the menu item RINSE in the menu item Status keys.
userstat4 = ,MENU#mTechstatuskeys,0

56 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


5. Programming

3. Save and close the file MenueKeyUser.INI.


4. Reinitialize the KUKA.HMI (>>> 5.10 "Refreshing the user interface"
page 51).

V0.1 26.01.2007 KST-AD-UserTech23 en 57 / 71


KUKA.UserTech 2.3

58 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


6. Example programs

6 Example programs

6.1 Technology DISP_SET

Program The technology DISP_SET makes it possible to set the brightness and con-
trast on the KCP display via the status keys [1] and [3] in the status key bar. In
order to do this, the system variables '$PHGBRIGHT' and '$PHGCONT' have
been altered.
1 DEFTP disp_set
2 DECL PARAM bright = {VALUE {NUMBER:}}
3 DECL PARAM cont = {VALUE {NUMBER:}}
4 DECL PARAM temp = {VALUE {NUMBER:}}
5 DEFSCRIPT bright_hi
6 SHOWVAR(FULLPATH[] "$PHGBRIGHT", PARAM bright)
7 SETVAR(FULLPATH[] "$PHGBRIGHT", VALUE[] "%bright +1")
8 SHOWVAR(FULLPATH[] "$PHGBRIGHT", PARAM bright)
9 SHOWVAR(FULLPATH[] "$PHGCONT", PARAM cont)
10 SHOWVAR(FULLPATH[] "$PHGTEMP", PARAM temp)
11 MESSAGE "brightness level: %bright contrast level: _
12 %cont display temperature: %temp °C"
13 Endscript
14 DEFSCRIPT bright_lo
15 SHOWVAR(FULLPATH[] "$PHGBRIGHT", PARAM bright)
16 SETVAR(FULLPATH[] "$PHGBRIGHT", VALUE[] "%bright -1")
17 SHOWVAR(FULLPATH[] "$PHGBRIGHT", PARAM bright)
18 SHOWVAR(FULLPATH[] "$PHGCONT", PARAM cont)
19 SHOWVAR(FULLPATH[] "$PHGTEMP", PARAM temp)
20 MESSAGE "brightness level: %bright contrast level: _
21 %cont display temperature: %temp °C"
22 Endscript
23 DEFSCRIPT cont_hi
24 SHOWVAR(FULLPATH[] "$PHGCONT", PARAM cont)
25 SETVAR(FULLPATH[] "$PHGCONT", VALUE[] "%cont +1")
26 SHOWVAR(FULLPATH[] "$PHGCONT", PARAM cont)
27 SHOWVAR(FULLPATH[] "$PHGBRIGHT", PARAM bright)
28 SHOWVAR(FULLPATH[] "$PHGTEMP", PARAM temp)
29 MESSAGE "brightness level: %bright contrast level: _
30 %cont display temperature: %temp °C"
31 Endscript
32 DEFSCRIPT cont_lo
33 SHOWVAR(FULLPATH[] "$PHGCONT", PARAM cont)
34 SETVAR(FULLPATH[] "$PHGCONT", VALUE[] "%cont -1")
35 SHOWVAR(FULLPATH[] "$PHGCONT", PARAM cont)
36 SHOWVAR(FULLPATH[] "$PHGBRIGHT", PARAM bright)
37 SHOWVAR(FULLPATH[] "$PHGTEMP", PARAM temp)
38 MESSAGE "brightness level: %bright contrast level: _
39 %cont display temperature: %temp °C"
40 Endscript
41 DECL STATKEY brightness = {PICTURE[] "C:\KRC\TP\USERTECH _
42 TEMPLATE\PICTURES\phgbright.bmp",_
43 ENABLE TRUE, _
44 USERMODE 10, _
45 STYLE #TOGGLE, _
46 ONKEYDOWN bright_hi, _
47 ONKEYDOWNMINUS bright_lo}
48 DECL STATKEY contrast = {PICTURE[] "C:\KRC\TP\USERTECH _
49 TEMPLATE\PICTURES\phgcont.bmp", _
50 ENABLE TRUE, _
51 USERMODE 10, _
52 STYLE #TOGGLE, _
53 ONKEYDOWN cont_hi, _
54 ONKEYDOWNMINUS cont_lo}
55 DECL STATKEYBAR bar = {STATKEY[1] brightness, _
56 STATKEY[3] contrast}
57 ENDTP

V0.1 26.01.2007 KST-AD-UserTech23 en 59 / 71


KUKA.UserTech 2.3

Line Description
1, 57 Definition of the technology DISP_SET
2-4 Definition of the parameters required for programming the
scripts
5 - 40 Definition of the scripts executed on ONKEYDOWN and
ONKEYDOWNMINUS.
41 - 47 Definition of the status key used for setting the brightness
48 - 54 Definition of the status key used for setting the contrast
55 - 56 Definition of the status key bar; assignment of the functions to
the status keys

MenueKeyUser.INI The technology DISP_SET is called via the menu sequence Configure > Sta-
tus keys > Display.
„ Entries in the section [SOFTKEYS]:
DISPSET = Display,11,USERSTATKEYBAROCX,KUKATPUSER;disp_set.bar

„ Entries in the section [MOVE]:


DISPSET = ,MENU#mTechstatuskeys,0

6.2 Technology LASER

Description The technology LASER defines the inline forms LASER.ON and LASER.OFF.
The inline form LASER.ON consists of the input boxes "Schweissdatensatz"
(welding data set), "Distance" and "WeavePattern":

Fig. 6-1: Inline form LASER.ON

The inline form LASER.OFF consists of the input box "DelayTime".

60 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


6. Example programs

Program 1 DEFTP LASER


2 DECL PARAM DataSet={SHORTNAME[] "Schweissdatensatz=", _
3 VALUE {NAME: DEFAULT[] "DataSet1"}, SHORTCUT[] "DATA"}
4 DECL PARAM DistanceWay={SHORTNAME[] "Distance=", _
5 VALUE {NUMBER: DEFAULT 200, MIN 0, MAX 500, STEP 10}, _
6 SHORTCUT[] "DIST", UNIT[] "mm")
7 DECL PARAM DelayTime={SHORTNAME[] "Delay=", _
8 VALUE {REAL:DEFAULT 0.8, MIN 0, MAX 20.3, STEP 0.3}, _
9 UNIT[] "ms",
10 SHORTCUT[] "DLY"}
11 DECL PARAM Pattern={SHORTNAME[] "WeavePattern=", _
12 VALUE {LIST: _
13 ITEM[1] {ITEM: VALUE[] "PULSE"}, _
14 ITEM[2] {ITEM: VALUE[] "STEP"}, _
15 ITEM[3] {ITEM: VALUE[] "CONT"}},
16 SHORTCUT[] "WPTN"}
17 DECL FOLD LasOn[2]
18 LasOn[1]="Laser(#ON,%DataSet/,%Pattern/)"
19 LasOn[2]="TRIGGER WHEN DISTANCE=%DistanceWay _
20 /DELAY=0 DO LASER_ON=TRUE"
21 DECL FOLD LasOff[2]
22 LasOff[1]="Laser(#OFF)"
23 LasOff[2]="TRIGGER WHEN DISTANCE=0 _
24 /DELAY=%DelayTime/ DO LASER_ON=FALSE"
25 DECL InlineForm On={PARAM[1] DataSet, PARAM[2] _
26 DistanceWay, PARAM[3] Pattern, FOLD[1] LasOn}
27 DECL InlineForm Off={PARAM[1] DelayTime, FOLD[1] LasOff}
28 ENDTP

Line Description
1, 28 Definition of the technology LASER
2 - 16 Definition of the input boxes
17 - 20 Definition of the fold for the inline form LASER.ON
21 - 24 Definition of the fold for the inline form LASER.OFF
25 -26 Definition of the inline form LASER.ON
27 Definition of the inline form LASER.OFF

V0.1 26.01.2007 KST-AD-UserTech23 en 61 / 71


KUKA.UserTech 2.3

62 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


7. KUKA Service

7 KUKA Service

7.1 Requesting support

Introduction The KUKA Robot Group documentation offers information on operation and
provides assistance with troubleshooting. For further assistance, please con-
tact your local KUKA subsidiary.

Faults leading to production downtime are to be reported to the local KUKA


subsidiary within one hour of their occurrence.

Information The following information is required for processing a support request:


„ Model and serial number of the robot
„ Model and serial number of the controller
„ Model and serial number of the linear unit (if applicable)
„ Version of the KUKA System Software
„ Optional software or modifications
„ Archive of the software
„ Application used
„ Any external axes used
„ Description of the problem, duration and frequency of the fault

7.2 KUKA Customer Support

Availability KUKA Customer Support is available in many countries. Please do not hesi-
tate to contact us if you have any questions.
Argentina Ruben Costantini S.A. (Agency)
Luis Angel Huergo 13 20
Parque Industrial
2400 San Francisco (CBA)
Argentina
Tel. +54 3564 421033
Fax +54 3564 428877
ventas@costantini-sa.com

Australia Marand Precision Engineering Pty. Ltd. (Agency)


153 Keys Road
Moorabbin
Victoria 31 89
Australia
Tel. +61 3 8552-0600
Fax +61 3 8552-0605
robotics@marand.com.au

V0.1 26.01.2007 KST-AD-UserTech23 en 63 / 71


KUKA.UserTech 2.3

Austria KUKA Roboter GmbH


Vertriebsbüro Österreich
Regensburger Strasse 9/1
4020 Linz
Austria
Tel. +43 732 784752
Fax +43 732 793880
office@kuka-roboter.at
www.kuka-roboter.at

Belgium KUKA Automatisering + Robots N.V.


Centrum Zuid 1031
3530 Houthalen
Belgium
Tel. +32 11 516160
Fax +32 11 526794
info@kuka.be
www.kuka.be

Brazil KUKA Roboter do Brasil Ltda.


Avenida Franz Liszt, 80
Parque Novo Mundo
Jd. Guançã
CEP 02151 900 São Paulo
SP Brazil
Tel. +55 11 69844900
Fax +55 11 62017883
info@kuka-roboter.com.br

Chile Robotec S.A. (Agency)


Santiago de Chile
Chile
Tel. +56 2 331-5951
Fax +56 2 331-5952
robotec@robotec.cl
www.robotec.cl

China KUKA Flexible Manufacturing Equipment (Shanghai) Co., Ltd.


Shanghai Qingpu Industrial Zone
No. 502 Tianying Rd.
201712 Shanghai
P.R. China
Tel. +86 21 5922-8652
Fax +86 21 5922-8538
Franz.Poeckl@kuka-sha.com.cn
www.kuka.cn

64 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


7. KUKA Service

France KUKA Automatisme + Robotique SAS


Techvallée
6 Avenue du Parc
91140 Villebon s/Yvette
France
Tel. +33 1 6931-6600
Fax +33 1 6931-6601
commercial@kuka.fr
www.kuka.fr

Germany KUKA Roboter GmbH


Blücherstr. 144
86165 Augsburg
Germany
Tel. +49 821 797-4000
Fax +49 821 797-1616
info@kuka-roboter.de
www.kuka-roboter.de

Hungary KUKA Robotics Hungaria Kft.


Fö út 140
2335 Taksony
Hungary
Tel. +36 24 501609
Fax +36 24 477031
info@kuka-robotics.hu

India KUKA Robotics, Private Limited


621 Galleria Towers
DLF Phase IV
122 002 Gurgaon
Haryana
India
Tel. +91 124 4148574
info@kuka.in
www.kuka.in

Italy KUKA Roboter Italia S.p.A.


Via Pavia 9/a - int.6
10098 Rivoli (TO)
Italy
Tel. +39 011 959-5013
Fax +39 011 959-5141
kuka@kuka.it
www.kuka.it

V0.1 26.01.2007 KST-AD-UserTech23 en 65 / 71


KUKA.UserTech 2.3

Korea KUKA Robot Automation Korea Co. Ltd.


4 Ba 806 Sihwa Ind. Complex
Sung-Gok Dong, Ansan City
Kyunggi Do
425-110
Korea
Tel. +82 31 496-9937 or -9938
Fax +82 31 496-9939
info@kukakorea.com

Malaysia KUKA Robot Automation Sdn Bhd


South East Asia Regional Office
No. 24, Jalan TPP 1/10
Taman Industri Puchong
47100 Puchong
Selangor
Malaysia
Tel. +60 3 8061-0613 or -0614
Fax +60 3 8061-7386
info@kuka.com.my

Mexico KUKA de Mexico S. de R.L. de C.V.


Rio San Joaquin #339, Local 5
Colonia Pensil Sur
C.P. 11490 Mexico D.F.
Mexico
Tel. +52 55 5203-8407
Fax +52 55 5203-8148
info@kuka.com.mx

Norway KUKA Sveiseanlegg + Roboter


Bryggeveien 9
2821 Gjövik
Norway
Tel. +47 61 133422
Fax +47 61 186200
geir.ulsrud@kuka.no

Portugal KUKA Sistemas de Automatización S.A.


Rua do Alto da Guerra n° 50
Armazém 04
2910 011 Setúbal
Portugal
Tel. +351 265 729780
Fax +351 265 729782
kuka@mail.telepac.pt

66 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


7. KUKA Service

Russia KUKA-VAZ Engineering


Jushnoje Chaussee, 36 VAZ, PTO
445633 Togliatti
Russia
Tel. +7 8482 391249 or 370564
Fax +7 8482 736730
Y.Klychkov@VAZ.RU

South Africa Jendamark Automation LTD (Agency)


76a York Road
North End
6000 Port Elizabeth
South Africa
Tel. +27 41 391 4700
Fax +27 41 373 3869
www.jendamark.co.za

Spain KUKA Sistemas de Automatización S.A.


Pol. Industrial
Torrent de la Pastera
Carrer del Bages s/n
08800 Vilanova i la Geltrú (Barcelona)
Spain
Tel. +34 93 814-2353
Fax +34 93 814-2950
Comercial@kuka-e.com
www.kuka-e.com

Sweden KUKA Svetsanläggningar + Robotar AB


A. Odhners gata 15
421 30 Västra Frölunda
Sweden
Tel. +46 31 7266-200
Fax +46 31 7266-201
info@kuka.se

Switzerland KUKA Roboter Schweiz AG


Riedstr. 7
8953 Dietikon
Switzerland
Tel. +41 44 74490-90
Fax +41 44 74490-91
info@kuka-roboter.ch
www.kuka-roboter.ch

V0.1 26.01.2007 KST-AD-UserTech23 en 67 / 71


KUKA.UserTech 2.3

Taiwan KUKA Robot Automation Taiwan Co. Ltd.


136, Section 2, Huanjung E. Road
Jungli City, Taoyuan
Taiwan 320
Tel. +886 3 4371902
Fax +886 3 2830023
info@kuka.com.tw
www.kuka.com.tw

Thailand KUKA Robot Automation (M)SdnBhd


Thailand Office
c/o Maccall System Co. Ltd.
49/9-10 Soi Kingkaew 30 Kingkaew Road
Tt. Rachatheva, A. Bangpli
Samutprakarn
10540 Thailand
Tel. +66 2 7502737
Fax +66 2 6612355
atika@ji-net.com
www.kuka-roboter.de

UK KUKA Automation + Robotics


Hereward Rise
Halesowen
B62 8AN
UK
Tel. +44 121 585-0800
Fax +44 121 585-0900
sales@kuka.co.uk

USA KUKA Robotics Corp.


22500 Key Drive
Clinton Township
48036 Michigan
USA
Tel. +1 866 8735852
Fax +1 586 5692087
info@kukarobotics.com
www.kukarobotics.com

68 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


Index

Index
Symbols KUKA Customer Support 63
$ 17 KUKA.UserTech, commands 43
$CONFIG.DAT 33 KUKA.UserTech, refreshing 51

A M
Areas of validity 16 Menu entries, syntax 52
ASS parameter 31 Menu item with submenu, creating 52
ASSAG parameter 32 Menu items, creating 52
MESSAGE 46
B
BOF Reinitialization (menu item) 51 N
Names 17
D Notes 7
Data types 16
DECL FOLD 27 O
DECL INLINEFORM 28 Overview, KUKA.UserTech 9
DECL PARAM 21
DECL PARAM PL_ 33 P
DECL PLIST 34 Parameter reference placeholder 17
DECL STATKEY 39 Product description 9
DECL STATKEYBAR 42 Program code, formatting 30
DEFSCRIPT ... ENDSCRIPT 44 Programming 15
DEFTP ... ENDTP 19 Programming, inline forms 20
Design, inline form 21 Programming, parameter list 32
Design, status keys 38 Programming, scripts 43
Design, technology 18 Programming, status keys 38
DFCT parameter 31 Programming, technology 18
DO 46
Documentation, robot system 7 R
DSUB parameter 30 REDECL 45
Reinstalling KUKA.UserTech 14
E
Example program, DISP_SET 59 S
Example program, LASER 60 Safety 11
Example program, parameter list 35 Safety warnings 7
Script, called on changing the inline form 49
F Script, called on opening/closing the inline form 48
FCT parameter 31 Script, called on toggling between inline forms 50
Field types, VALUE field type 22 Scripts, predefined 48
Fonts 15 Service, KUKA Roboter 63
Formatting, program code 30 SET 43
SETVAR 44
H SHOWVAR 45
HMI 8 Special characters 15
String 16
I SUB parameter 30
Installation 13 Support request 63
Installation, KSS 5.2, 5.3 13 SWITCH ... CASE (ELSE) ... ENDSWITCH 46
Installation, KSS 5.4, 5.5, 7.0 13 SWITCH DIALOG ... CASE ... ENDSWITCH 47
Installation, KUKA.UserTech 13 Symbols 15
Introduction 7
T
K Target group 7
Keywords 17 Technology, integration into user interface 54
KFD file 8 Terms 8
KFD file, creation 18 Terms used 8
KRL code, generating 20 Terms, important 16

V0.1 26.01.2007 KST-AD-UserTech23 en 69 / 71


KUKA.UserTech 2.3

U
Uninstalling KUKA.UserTech 13, 14
Update, KUKA.UserTech 13
User interface, refreshing 51

V
VALUE field type 22
VALUE free 22
VALUE list 25
VALUE name 22
VALUE number 23
VALUE real 24
VALUE static 22

W
Warnings 7
WYSIWYG parameter 30

70 / 71 V0.1 26.01.2007 KST-AD-UserTech23 en


V0.1 26.01.2007 KST-AD-UserTech23 en 71 / 71

Das könnte Ihnen auch gefallen