Sie sind auf Seite 1von 94

KUKA System Technology

KUKA.UserTech 4.0
Für KUKA System Software 8.6 und 8.7

Stand: 13.10.2020
KST UserTech 4.0 V3
KUKA Deutschland GmbH
KUKA.UserTech 4.0

© Copyright 2020
KUKA Deutschland GmbH
Zugspitzstraße 140
D-86165 Augsburg
Deutschland

Diese Dokumentation darf – auch auszugsweise – nur mit ausdrücklicher Genehmigung der KU-
KA Deutschland GmbH vervielfältigt oder Dritten zugänglich gemacht werden.
Es können weitere, in dieser Dokumentation nicht beschriebene Funktionen in der Steuerung
lauffähig sein. Es besteht jedoch kein Anspruch auf diese Funktionen bei Neulieferung oder im
Servicefall.
Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und
Software geprüft. Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für
die vollständige Übereinstimmung keine Gewähr übernehmen. Die Angaben in dieser Druck-
schrift werden jedoch regelmäßig überprüft und notwendige Korrekturen sind in der nachfolgen-
den Auflage enthalten.
Technische Änderungen ohne Beeinflussung der Funktion vorbehalten.
KIM-PS5-DOC
Original-Dokumentation

Publikation: Pub KST UserTech 4.0 (PDF) de


PB11491

Buchstruktur: KST UserTech 4.0 V3.1


BS10539

Version: KST UserTech 4.0 V3

2/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Inhaltsverzeichnis

1 Einleitung.................................................................................................. 7
1.1 Zielgruppe.............................................................................................................. 7
1.2 Dokumentation des Industrieroboters................................................................... 7
1.3 Darstellung von Hinweisen.................................................................................... 7
1.4 Verwendete Begriffe.............................................................................................. 8
1.5 Marken................................................................................................................... 8
1.6 Lizenzen................................................................................................................. 8

2 Produktbeschreibung.............................................................................. 11
2.1 Produktbeschreibung............................................................................................. 11
2.2 Übersicht KUKA.UserTech 4.0.............................................................................. 11
2.3 Bestimmungsgemäße Verwendung und Fehlanwendung.................................... 12

3 Sicherheit.................................................................................................. 13

4 Installation................................................................................................ 15
4.1 Systemvoraussetzungen........................................................................................ 15
4.2 Installation über WorkVisual.................................................................................. 15
4.2.1 KUKA.UserTech 4.0 installieren oder updaten..................................................... 15
4.2.2 KUKA.UserTech 4.0 deinstallieren........................................................................ 16
4.3 Installation über smartHMI.................................................................................... 16
4.3.1 KUKA.UserTech 4.0 installieren oder updaten..................................................... 16
4.3.2 KUKA.UserTech 4.0 deinstallieren........................................................................ 18

5 Bedienung................................................................................................. 19
5.1 Konverter............................................................................................................... 19
5.1.1 KFD-Datei konvertieren......................................................................................... 19
5.1.2 smartHMI-Konfigurationsdatei konvertieren.......................................................... 19

6 Programmierung...................................................................................... 21
6.1 Übersicht KFDx-Syntax......................................................................................... 21
6.2 Sonderzeichen....................................................................................................... 22
6.3 Strings.................................................................................................................... 23
6.4 Parameterreferenzen............................................................................................. 24
6.5 Namenskonventionen und Schlüsselwörter.......................................................... 24
6.6 Geltungsbereiche................................................................................................... 24
6.7 Sprachdateien........................................................................................................ 25
6.8 Übersicht: Technologie programmieren................................................................ 27
6.8.1 KFDx-Datei anlegen.............................................................................................. 27
6.8.2 <Application>: Technologie definieren.................................................................. 28
6.8.3 <Param>: Parameter definieren............................................................................ 29
6.8.4 Parametertypen..................................................................................................... 31
6.8.4.1 Parameter Typ STATIC......................................................................................... 31
6.8.4.2 Parameter Typ FREE............................................................................................ 31
6.8.4.3 Parameter Typ NAME........................................................................................... 32
6.8.4.4 Parameter Typ NUMBER...................................................................................... 32
6.8.4.5 Parameter Typ REAL............................................................................................ 34
6.8.4.6 Parameter Typ LIST.............................................................................................. 35

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 3/94


KUKA.UserTech 4.0

6.8.4.7 Parameter Typ BOOL............................................................................................ 37


6.8.5 <Fold>: Fold definieren......................................................................................... 38
6.8.6 <InlineForm>: Inline-Formular definieren.............................................................. 39
6.8.6.1 Inline-Formular mit OnOpen- und OnAccept-Skript............................................. 43
6.8.7 Formatiertypen....................................................................................................... 44
6.8.7.1 Formatiertyp WYSIWYG........................................................................................ 44
6.8.7.2 Formatiertyp SUB.................................................................................................. 44
6.8.7.3 Formatiertyp DSUB............................................................................................... 45
6.8.7.4 Formatiertyp FCT.................................................................................................. 46
6.8.7.5 Formatiertyp DFCT................................................................................................ 47
6.8.7.6 Formatiertyp ASS.................................................................................................. 48
6.8.7.7 Formatiertyp ASSAGG.......................................................................................... 48
6.9 Parameterliste programmieren.............................................................................. 49
6.9.1 <Param Name="PL_">: Datensatzstruktur für Parameterliste definieren............ 50
6.9.2 <PList>: Parameterliste definieren........................................................................ 50
6.9.3 Strukturdatentyp definieren................................................................................... 51
6.9.4 Technologie MyTech.............................................................................................. 52
6.10 Statustasten programmieren................................................................................. 56
6.10.1 <StatKey>: Statustaste definieren......................................................................... 56
6.10.1.1 Bildgrößen.............................................................................................................. 60
6.10.1.2 Layout.................................................................................................................... 60
6.10.2 <StatkeyBar>: Statustastenleiste definieren......................................................... 62
6.10.3 <Set>: Statustaste oder Statustastenleiste setzen............................................... 62
6.11 Skripte programmieren.......................................................................................... 63
6.11.1 <Script>: Skript definieren..................................................................................... 63
6.11.2 <SetVar…/>: Variable setzen................................................................................ 64
6.11.3 <ShowVar…/>: Variable auslesen......................................................................... 65
6.11.4 <Redecl…/>: Variable anlegen oder überschreiben............................................. 66
6.11.5 <Do Script…/>: Skript ausführen.......................................................................... 67
6.11.5.1 Vordefinierte Skripte.............................................................................................. 67
6.11.6 <Message…/>: Meldung definieren...................................................................... 67
6.11.7 <Switch Dialog ="FALSE"…>: Variable abfragen und Skript ausführen.............. 68
6.11.7.1 OnOpen-Skript mit IsChange-Abfrage.................................................................. 69
6.11.7.2 OnOpen-Skript mit DoAlways-Abfrage.................................................................. 70
6.11.8 <Switch Dialog ="TRUE"...>: Dialog anzeigen und Skript ausführen.................. 71

7 Konfiguration............................................................................................ 73
7.1 Inline-Formulare und Statustasten in smartHMI einbinden.................................. 73
7.1.1 Menüstruktur für Inline-Formulare......................................................................... 74
7.1.2 Menüstruktur für Statustastenleisten..................................................................... 75
7.2 Inline-Formulare in WorkVisual einbinden............................................................ 76
7.3 Beispiele für das Einbinden von Technologien.................................................... 80
7.3.1 Technologie Twinkle.............................................................................................. 80
7.3.1.1 Technologie Twinkle in Menü einbinden............................................................... 81
7.3.1.2 Technologie Twinkle in Untermenü einbinden...................................................... 82
7.3.2 Technologie Glue................................................................................................... 83
7.3.2.1 Technologie Glue in Menü einbinden................................................................... 84
7.3.3 Technologie DispSet.............................................................................................. 84
7.3.3.1 Technologie DispSet in Menü einbinden.............................................................. 86

4/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

8 Archivierung............................................................................................. 89
8.1 Dateien archivieren................................................................................................ 89
8.2 Dateien wiederherstellen....................................................................................... 90

9 KUKA Service........................................................................................... 91
9.1 Support-Anfrage..................................................................................................... 91
9.2 KUKA Customer Support...................................................................................... 91

Index 93

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 5/94


KUKA.UserTech 4.0

6/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

1 Einleitung

Einleitung
1.1 Zielgruppe

Diese Dokumentation richtet sich an Benutzer mit folgenden Kenntnissen:


• Systemkenntnisse der Robotersteuerung
• Fortgeschrittene KRL-Programmierkenntnisse
• Grundkenntnisse in XML

Für den optimalen Einsatz der KUKA Produkte empfehlen wir Schulun-
gen im KUKA College. Informationen zum Schulungsprogramm sind un-
ter www.kuka.com oder direkt bei den Niederlassungen zu finden.

1.2 Dokumentation des Industrieroboters

Die Dokumentation zum Industrieroboter besteht aus folgenden Teilen:

• Dokumentation für die Robotermechanik


• Dokumentation für die Robotersteuerung
• Dokumentation für das smartPAD-2 (wenn verwendet)
• Bedien- und Programmieranleitung für die System Software
• Anleitungen zu Optionen und Zubehör
• Ersatzteilübersicht in KUKA Xpert
Jede Anleitung ist ein eigenes Dokument.

1.3 Darstellung von Hinweisen

Sicherheit

Diese Hinweise dienen der Sicherheit und müssen beachtet werden.


GEFAHR
Diese Hinweise bedeuten, dass Tod oder schwere Verletzungen sicher
oder sehr wahrscheinlich eintreten werden, wenn keine Vorsichtsmaß-
nahmen getroffen werden.

WARNUNG
Diese Hinweise bedeuten, dass Tod oder schwere Verletzungen eintre-
ten können, wenn keine Vorsichtsmaßnahmen getroffen werden.

VORSICHT
Diese Hinweise bedeuten, dass leichte Verletzungen eintreten können,
wenn keine Vorsichtsmaßnahmen getroffen werden.

HINWEIS
Diese Hinweise bedeuten, dass Sachschäden eintreten können, wenn
keine Vorsichtsmaßnahmen getroffen werden.

Diese Hinweise enthalten Verweise auf sicherheitsrelevante Informatio-


nen oder allgemeine Sicherheitsmaßnahmen.
Diese Hinweise beziehen sich nicht auf einzelne Gefahren oder einzelne
Vorsichtsmaßnahmen.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 7/94


KUKA.UserTech 4.0

Dieser Hinweis macht auf Vorgehensweisen aufmerksam, die der Vorbeu-


Einleitung

gung oder Behebung von Not- oder Störfällen dienen:


SICHERHEITSANWEISUNG
Die folgende Vorgehensweise genau einhalten!

Mit diesem Hinweis gekennzeichnete Vorgehensweisen müssen genau


eingehalten werden.

Hinweise

Diese Hinweise dienen der Arbeitserleichterung oder enthalten Verweise


auf weiterführende Informationen.
Hinweis zur Arbeitserleichterung oder Verweis auf weiterführende Infor-
mationen

1.4 Verwendete Begriffe

Begriff Beschreibung

KFD KUKA Form Description


ASCII-Dateiformat für die Definition von Technologien

KFDx KUKA Form Descriptionx


XML-Dateiformat für die Definition von Technologien

KRL KUKA Robot Language


KUKA Roboter Programmiersprache

smartHMI smart Human-Machine Interface


Bedienoberfläche auf dem smartPAD

smartPAD Programmierhandgerät für die Robotersteuerung


Das smartPAD hat alle Bedien- und Anzeigemöglichkeiten, die für
die Bedienung und Programmierung des Manipulators benötigt wer-
den.

String Kette alphanumerischer Zeichen fester oder variabler Länge

1.5 Marken

Windows ist eine Marke der Microsoft Corporation.

1.6 Lizenzen

Die KUKA Lizenzbedingungen und die Lizenzbedingungen verwendeter


Open-Source-Software sind in folgenden Ordnern zu finden:
• Auf dem Datenträger mit den Installationsdateien der KUKA Software
unter .\LICENSE
• Auf der KUKA smartHMI im Hauptmenü unter Hilfe > Info, Register-
karte Lizenzen
• Auf der Robotersteuerung unter D:\KUKA_OPT\Optionspaketname\LI-
CENSE
• In WorkVisual im Katalog Optionen im Lizenzenordner unter dem Na-
men des Optionspakets

8/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Einleitung
Weitere Informationen zu Open-Source-Lizenzen können unter folgender
Adresse angefordert werden: opensource@kuka.com

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 9/94


Einleitung KUKA.UserTech 4.0

10/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

2 Produktbeschreibung

Produktbeschreibung
2.1 Produktbeschreibung

Beschreibung

Das Optionspaket KUKA.UserTech 4.0 ermöglicht es dem Benutzer, eige-


ne Technologiepakete- und -programme zu erstellen.

Funktionen

• Definieren benutzerspezifischer Inline-Formulare


• Definieren benutzerspezifischer Meldungen
• Definieren benutzerspezifischer Statustasten, Statustastenleisen und
Schaltflächen
• Definieren benutzerspezifischer Skripte für Inline-Formulare und Sta-
tustasten
• Definieren benutzerspezifischer Folds für Inline-Formulare
• Einbinden der benutzerdefinierten Inline-Formulare, Statustasten und
Statustastenleisten in die KUKA smartHMI
• Einbinden der benutzerdefinierten Inline-Formulare in WorkVisual

2.2 Übersicht KUKA.UserTech 4.0

Die Technologien und ihre Elemente werden in KFDx-Dateien (XML-For-


mat) definiert.

Konverter

Technologien, die mit einer früheren UserTech-Version für KSS 8.1, 8.2,
8.3 oder 8.5 definiert wurden, können weiter verwendet werden. Es steht
ein Konverter zur Verfügung, der KFD-Dateien in das neue Dateiformat
konvertiert. Die zugehörigen smartHMI-Konfigurationsdateien können
ebenfalls konvertiert werden.
(>>> 5.1 "Konverter" Seite 19)

Skripte

Für Inline-Formulare und Statustasten können Skripte definiert werden.


Mithilfe dieser Skripte können folgende Aktionen ausgeführt werden:
• KRL-Variablen anlegen
• KRL-Variablen lesen und schreiben
• Zustand von Ausgängen lesen und setzen
• Zustand von Eingängen lesen und setzen
• Meldungen ausgeben
• Anwenderdialoge generieren

Parametertypen

Für Inline-Formulare können folgende Parametertypen definiert werden:


• Statische Felder ohne Benutzereingabe
• Felder mit Integer-Werten mit Bezeichner und Einheit
• Felder mit Real-Werten mit Bezeichner und Einheit
• Textfelder
• Textfelder, die den Beschränkungen von KRL-Bezeichnern unterliegen

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 11/94


Produktbeschreibung KUKA.UserTech 4.0

• Textfelder, die den Beschränkungen von KRL-Bezeichnern unterliegen


und mit Parameterlisten verbunden sind
• Listenfelder
• Checkboxen, die einen Wahrheitswert zurückliefern

Folds

Für Inline-Formulare können KRL-Makros (Folds) definiert werden, die in


das im Editor geöffnete Modul eingefügt werden können:
• Werte von Parametern können eingefügt werden
• Beim Öffnen und Schließen eines Inline-Formulars sowie beim Drü-
cken von Touch-Up können Skripte ausgeführt werden
• Einmal eingefügte Folds können wieder geöffnet und die Werte geän-
dert werden
• Das einem Inline-Formular zugeordnete Touch-Up-Skript kann bei ge-
schlossenem Fold ausgeführt werden

Sprachdateien

Ausgegebene Meldungstexte werden als Schlüssel für ein sprachabhängi-


ges Meldungssystem verwendet:
• Hierzu muss es entsprechende Einträge in einer Sprachdatei geben.
Die Daten werden in einem XML-Format in einer KXR-Datei abgelegt.
(>>> 6.7 "Sprachdateien" Seite 25)

Verzeichnisse

Unter C:\KRC\TP\UserTech\ werden die folgenden Verzeichnisse erstellt:


Verzeichnis Beschreibung
Kxr Verzeichnis für die KXR-Sprachdateien
SmartHMI Verzeichnis für die smartHMI-Konfigurationsdateien
TEMPLATE Verzeichnis für die KFDx-Dateien

Vorlagen

KUKA.UserTech 4.0 stellt Programmier- und Konfigurationsbeispiele für In-


line-Formulare und Statustasten zur Verfügung.
(>>> 7.1 "Inline-Formulare und Statustasten in smartHMI einbinden" Sei-
te 73)

2.3 Bestimmungsgemäße Verwendung und Fehlanwendung

Verwendung

KUKA.UserTech 4.0 ist eine Software zur Programmierung benutzerdefi-


nierter Inline-Formulare und Statustasten. Sie darf nur zu diesem Zweck
eingesetzt und ausschließlich unter den spezifizierten Systemvorausset-
zungen betrieben werden.

Fehlanwendung

Alle von der bestimmungsgemäßen Verwendung abweichenden Anwen-


dungen gelten als Fehlanwendung und sind unzulässig. Sie führen zum
Verlust von Gewährleistungs- und Haftungsansprüchen. Für Schäden, die
aus einer Fehlanwendung resultieren, haftet KUKA nicht.

12/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

3 Sicherheit

Sicherheit
Die Sicherheitsinformationen zum Industrieroboter sind im Kapitel "Sicher-
heit" der Bedien- und Programmieranleitung für Systemintegratoren oder
der Bedien- und Programmieranleitung für Endanwender zu finden.
Sicherheitsrelevante Informationen beachten
Die sichere Nutzung dieses Produkts erfordert die Kenntnis und Einhal-
tung grundlegender Sicherheitsmaßnahmen. Tod, schwere Verletzungen
oder Sachschäden können sonst die Folge sein.
• Das Kapitel "Sicherheit" in der Bedien- und Programmieranleitung
der KUKA System Software (KSS) muss beachtet werden.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 13/94


Sicherheit KUKA.UserTech 4.0

14/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

4 Installation

Installation
Das Optionspaket kann entweder über die smartHMI oder über WorkVisu-
al auf der Robotersteuerung installiert werden.

4.1 Systemvoraussetzungen

Hardware

• Robotersteuerung KR C4 oder KR C5

Software

Robotersteuerung KR C4:
• KUKA System Software 8.6.x
Robotersteuerung KR C5:
• KUKA System Software 8.7.x
Laptop/PC:
• WorkVisual 6.0.x
Die Nummern der erforderlichen Releases/Versionen müssen der Datei
ReleaseNotes_[…].txt entnommen werden. Die Datei befindet sich auf
dem Datenträger mit KUKA.UserTech 4.0.

4.2 Installation über WorkVisual

4.2.1 KUKA.UserTech 4.0 installieren oder updaten

Beschreibung

Das Optionspaket wird in WorkVisual installiert und dem Projekt hinzuge-


fügt. Beim Übertragen des Projekts wird das Optionspaket automatisch
auf der Robotersteuerung installiert.
Es wird empfohlen, vor dem Update einer Software alle zugehörigen
Daten zu archivieren.

Voraussetzung

• Benutzergruppe Experte
• Betriebsart T1 oder T2
• Es ist kein Programm angewählt.
• Netzwerkverbindung zur Robotersteuerung
• Optionspaket liegt als KOP-Datei vor.

Vorgehensweise

1. Das Optionspaket KUKA.UserTech 4.0 in WorkVisual installieren.


2. Das aktive Projekt von der Robotersteuerung laden.
3. Das Optionspaket KUKA.UserTech 4.0 in das Projekt einfügen.
4. Das Projekt von WorkVisual auf die Robotersteuerung übertragen und
aktivieren.
5. Auf der smartHMI wird die Sicherheitsabfrage Wollen Sie die Aktivie-
rung des Projektes […] zulassen? angezeigt. Bei der Aktivierung wird

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 15/94


KUKA.UserTech 4.0

das aktive Projekt überschrieben. Wenn kein relevantes Projekt über-


Installation

schrieben wird: Die Abfrage mit Ja bestätigen.


6. Auf der smartHMI wird eine Übersicht mit den Änderungen und eine
Sicherheitsabfrage angezeigt. Diese mit Ja beantworten. Das Options-
paket wird installiert und die Robotersteuerung führt einen Neustart
durch.

Informationen zu Abläufen in WorkVisual sind in der Dokumentation zu


WorkVisual zu finden.

LOG-Datei

Es wird eine LOG-Datei unter C:\KRC\ROBOTER\LOG erstellt.

4.2.2 KUKA.UserTech 4.0 deinstallieren

Beschreibung

Das Optionspaket kann über WorkVisual deinstalliert werden.


Es wird empfohlen, vor der Deinstallation einer Software alle zugehöri-
gen Daten zu archivieren.

Voraussetzung

• Benutzergruppe Experte
• Betriebsart T1 oder T2
• Es ist kein Programm angewählt.
• Netzwerkverbindung zur Robotersteuerung

Vorgehensweise

1. Das Projekt von der Robotersteuerung laden.


2. Das Optionspaket KUKA.UserTech 4.0 aus dem Projekt entfernen. Ein
Fenster mit Änderungen wird angezeigt.
3. Das Projekt von WorkVisual auf die Robotersteuerung übertragen und
aktivieren.
4. Die Sicherheitsabfrage auf der smartHMI Wollen Sie die Aktivierung
des Projektes […] zulassen? mit Ja bestätigen.
5. Auf der smartHMI wird eine Übersicht mit den Änderungen und eine
Sicherheitsabfrage angezeigt. Diese mit Ja beantworten. Das Options-
paket wird deinstalliert und die Robotersteuerung führt einen Neustart
durch.

Informationen zu Abläufen in WorkVisual sind in der Dokumentation zu


WorkVisual zu finden.

LOG-Datei

Es wird eine LOG-Datei unter C:\KRC\ROBOTER\LOG erstellt.

4.3 Installation über smartHMI

4.3.1 KUKA.UserTech 4.0 installieren oder updaten

Es wird empfohlen, vor dem Update einer Software alle zugehörigen


Daten zu archivieren.

16/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Voraussetzung

Installation
• Benutzerrechte: Funktionsgruppe Allgemeine Konfiguration
Mindestens jedoch Benutzergruppe Experte
• Betriebsart T1 oder T2
• Es ist kein Programm angewählt.
• USB-Stick mit dem Optionspaket (KOP-Datei)

HINWEIS
Datenverlust durch USB-Sticks von Fremdherstellern
Wenn bei Tätigkeiten an der Robotersteuerung USB-Sticks von anderen
Herstellern als KUKA verwendet werden, kann dies zu Datenverlust füh-
ren.
• Für Tätigkeiten an der Robotersteuerung, die einen USB-Stick erfor-
dern, einen KUKA-Stick verwenden.
Die KUKA-Sticks sind für den Einsatz an der Robotersteuerung vali-
diert.

Vorgehensweise

1. Den USB-Stick an der Robotersteuerung oder am smartPAD anste-


cken.
2. Im Hauptmenü Inbetriebnahme > Zusatzsoftware wählen.
3. Auf Neue Software drücken: In der Spalte Name muss der Eintrag
"KUKA.UserTech 4.0" angezeigt werden und in der Spalte Pfad das
Laufwerk E:\ oder K:\.
Wenn nicht, auf Aktualisieren drücken.
4. Wenn die genannten Einträge jetzt angezeigt werden, weiter mit
Schritt 5.
Wenn nicht, muss erst der Pfad, von dem installiert werden soll, konfi-
guriert werden:
a. Auf die Schaltfläche Konfigurieren drücken.
b. Im Bereich Installationspfade für Optionen eine Zeile markieren.
Hinweis: Wenn die Zeile bereits einen Pfad enthält, wird dieser
überschrieben.
c. Auf Pfadauswahl drücken. Die vorhandenen Laufwerke werden
angezeigt.
d. Wenn der Stick an der Robotersteuerung angesteckt ist: Auf E:\
das Verzeichnis, in dem die Software liegt, markieren.
Wenn der Stick am smartPAD angesteckt ist: K:\ statt E:\
e. Auf Speichern drücken. Der Bereich Installationspfade für Opti-
onen wird wieder angezeigt. Er enthält jetzt den neuen Pfad.
f. Die Zeile mit dem neuen Pfad markieren und nochmal auf Spei-
chern drücken.
5. Bei "KUKA.UserTech 4.0" das Häkchen setzen und auf Installieren
drücken. Den Installationshinweis mit OK bestätigen.
6. Die Sicherheitsabfrage Wollen Sie die Aktivierung des Projektes […]
zulassen? wird angezeigt. Bei der Aktivierung wird das aktive Projekt
überschrieben. Wenn kein relevantes Projekt überschrieben wird: Die
Abfrage mit Ja bestätigen.
7. Eine Übersicht mit den Änderungen und eine Sicherheitsabfrage wird
angezeigt. Diese mit Ja beantworten. Das Optionspaket wird installiert
und die Robotersteuerung führt einen Neustart durch.
8. Den Stick abziehen.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 17/94


KUKA.UserTech 4.0

LOG-Datei
Installation

Es wird eine LOG-Datei unter C:\KRC\ROBOTER\LOG erstellt.

4.3.2 KUKA.UserTech 4.0 deinstallieren

Es wird empfohlen, vor der Deinstallation einer Software alle zugehöri-


gen Daten zu archivieren.

Voraussetzung

• Benutzerrechte: Funktionsgruppe Allgemeine Konfiguration


Mindestens jedoch Benutzergruppe Experte
• Betriebsart T1 oder T2
• Es ist kein Programm angewählt.

Vorgehensweise

1. Im Hauptmenü Inbetriebnahme > Zusatzsoftware wählen.


2. Bei KUKA.UserTech 4.0 das Häkchen setzen und auf Deinstallieren
drücken. Die Sicherheitsabfrage mit Ja beantworten.
3. Die Sicherheitsabfrage Wollen Sie die Aktivierung des Projektes […]
zulassen? mit Ja bestätigen.
4. Eine Übersicht mit den Änderungen und eine Sicherheitsabfrage wird
angezeigt. Diese mit Ja beantworten. Das Optionspaket wird deinstal-
liert und die Robotersteuerung führt einen Neustart durch.

LOG-Datei

Es wird eine LOG-Datei unter C:\KRC\ROBOTER\LOG erstellt.

18/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

5 Bedienung

Bedienung
5.1 Konverter

5.1.1 KFD-Datei konvertieren

Beschreibung

Der Konverter erzeugt aus einer KFD-Datei (altes Dateiformat) eine KFDx-
Datei (neues Dateiformat).
KUKA.UserTech 4.0 erkennt, wenn eine Konvertierung erforderlich ist, und
führt diese automatisch durch:
• Beim Hochlauf der smartHMI
• Beim Öffnen eines UserTech-Inline-Formulars über das Menü
• Beim Wechseln der aktiven UserTech-Statustastenleiste

Suchpfade

Der Konverter sucht KFD-Dateien in folgenden Verzeichnissen:


• Default-Verzeichnis von UserTech: C:\KRC\TP\UserTech\TEMPLATE
• Installationsverzeichnis der Robotersteuerung: C:\KRC
• Ordnern, die in der Windows-Registrierungsdatenbank unter
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\KUKA Robo-
terGmbH\Options\KFD hinterlegt sind

LOG-Datei

Bei der Konvertierung wird die LOG-Datei UserTechConverter.log unter


C:\KRC\ROBOTER\LOG erstellt.
Werden Fehler in einer KFD-Datei festgestellt, wird zusätzlich eine Kopie
der LOG-Datei erstellt und mit Angabe von Datum und Uhrzeit gespei-
chert. Die Anzahl der Kopien ist auf 10 begrenzt. Wird diese Zahl über-
schritten, werden solange ältere Dateien gelöscht, bis nur noch 10 Kopien
im LOG-Verzeichnis liegen.

5.1.2 smartHMI-Konfigurationsdatei konvertieren

Beschreibung

Die Konvertierung der smartHMI-Konfigurationsdateien, die für die in KFD-


Dateien (altes Dateiformat) definierten Inline-Formulare und Statustasten
erstellt wurden, wird nicht automatisch ausgeführt. Diese muss manuell
gestartet werden, indem man eine Konvertierungsdatei ausführt.

Konvertierungsdatei

Verzeichnis C:\KRC\TP\UserTech\SmartHMI
Datei KukaRoboter.UserTech.KfdConverter.exe

Suchpfade

Der Konverter sucht smartHMI-Konfigurationsdateien in folgenden Ver-


zeichnissen:
• C:\KRC\USER (SmartHMI.User.config)

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 19/94


Bedienung KUKA.UserTech 4.0

• Ordnern, die in der Windows-Registrierungsdatenbank unter


HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\KUKA Robo-
terGmbH\Options\KFD hinterlegt sind

Vorgehensweise

• Auf die Datei KukaRoboter.UserTech.KfdConverter.exe doppelklicken.

20/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

6 Programmierung

Programmierung
6.1 Übersicht KFDx-Syntax

KFDx ist ein XML-Format. Wenn einzelne Attribute eines XML-Elements


nicht definiert sind, werden in der Regel die hinterlegten Default-Werte
verwendet. Diese werden in den Syntax-Beschreibungen angegeben.
Nicht definiert bedeutet:
• Attribut fehlt ganz.
• Oder Attributwert bleibt leer: ""
• Oder Attributwert enthält nur Leerzeichen: " "

Technologien
<Application>…</Application> Technologie definieren.
(>>> 6.8.2 "<Application>: Technologie definieren" Sei-
te 28)

Inline-Formulare
<Fold>…</Fold> Fold definieren.
(>>> 6.8.5 "<Fold>: Fold definieren" Seite 38)
<InlineForm>…</InlineForm> Inline-Formular definieren.
(>>> 6.8.6 "<InlineForm>: Inline-Formular definieren"
Seite 39)
<Param>…</Param> Parameter definieren.
(>>> 6.8.3 "<Param>: Parameter definieren" Seite 29)

Parameterlisten
<Param Name="PL_">…</Param> Datensatzstruktur für Parameterliste definieren.
(>>> 6.9.1 "<Param Name="PL_">: Datensatzstruktur
für Parameterliste definieren" Seite 50)
<PList>…</PList> Parameterliste definieren.
(>>> 6.9.2 "<PList>: Parameterliste definieren" Sei-
te 50)

Statustasten
<StatKey>…</StatKey> Statustaste definieren.
(>>> 6.10.1 "<StatKey>: Statustaste definieren" Sei-
te 56)
<StatkeyBar>…</StatkeyBar> Statustastenleiste definieren.
(>>> 6.10.2 "<StatkeyBar>: Statustastenleiste definie-
ren" Seite 62)
<Set>…</Set> Statustaste oder Statustastenleiste setzen.
(>>> 6.10.3 "<Set>: Statustaste oder Statustastenleiste
setzen" Seite 62)

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 21/94


Programmierung KUKA.UserTech 4.0

Skripte
<Script>…</Script> Skript definieren.
(>>> 6.11.1 "<Script>: Skript definieren" Seite 63)
<Do Script…/> Skript ausführen.
(>>> 6.11.5 "<Do Script…/>: Skript ausführen" Sei-
te 67)
<Message…/> Meldungstext definieren.
(>>> 6.11.6 "<Message…/>: Meldung definieren" Sei-
te 67)
<Redecl…/> Variable neu anlegen oder überschreiben.
(>>> 6.11.4 "<Redecl…/>: Variable anlegen oder über-
schreiben" Seite 66)
<Set>…</Set> Statustaste oder Statustastenleiste setzen.
(>>> 6.10.3 "<Set>: Statustaste oder Statustastenleiste
setzen" Seite 62)
<SetVar…/> Variable setzen.
(>>> 6.11.2 "<SetVar…/>: Variable setzen" Seite 64)
<ShowVar…/> Variable auslesen.
(>>> 6.11.3 "<ShowVar…/>: Variable auslesen" Sei-
te 65)
<Switch Dialog ="FALSE"…> Variable abfragen und ergebnisabhängiges Skript aus-
führen.
…</Switch>
(>>> 6.11.7 "<Switch Dialog ="FALSE"…>: Variable ab-
fragen und Skript ausführen" Seite 68)
<Switch Dialog ="TRUE"…> Dialog anzeigen und antwortabhängiges Skript ausfüh-
ren.
…</Switch>
(>>> 6.11.8 "<Switch Dialog ="TRUE"...>: Dialog anzei-
gen und Skript ausführen" Seite 71)
ACCEPTINLINEFORM Vordefinierte Skripte
CANCELINLINEFORM (>>> 6.11.5.1 "Vordefinierte Skripte" Seite 67)
END
NOTHING

6.2 Sonderzeichen

Im KFDx-Format werden folgende Sonderzeichen verwendet:

22/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
Zeichen Beschreibung
/ Hebt die Sonderfunktion eines nachfolgenden Zeichens
auf. Das Zeichen "/" wird in der Zeichenkette nicht aus-
gegeben.
Beispiel:

• /%: Funktion des Zeichens "%" zur Kennzeichnung


einer Parameterreferenz ist aufgehoben.
% Kennzeichnet eine Parameterreferenz
(>>> 6.4 "Parameterreferenzen" Seite 24)
Nach der Parameterreferenz muss das Zeichen "/" oder
ein Leerzeichen eingefügt werden. Bei Verwendung des
Leerzeichens muss ein zweites Leerzeichen eingefügt
werden, wenn auf die Parameterreferenz ein weiteres
Zeichen oder ein weiterer Ausdruck folgt.
Ein Leerzeichen, das eine Parameterreferenz abschließt,
wird in der Zeichenkette nicht ausgegeben.
Beispiele:

• %INLINEFORM/
• %INLINEFORM
# Kennzeichnet eine Wertzuweisung
Beispiele:

• #%INLINEFORM
• #TOGGLE
| Kennzeichnet die Parameter, die über den Sprachschlüs-
sel einer Meldung ausgegeben werden
Beispiel:

• (>>> 6.7 "Sprachdateien" Seite 25)

6.3 Strings

Beschreibung

Im KFDx-Format gelten folgende Regeln für Strings (z. B. beim Attribut


ShortName=""):
• Folgende Zeichen sind in Strings verboten: &, ', <, >, "
• Die verbotenen Zeichen sind Funktionszeichen in XML. Wenn diese
Zeichen dennoch Teil des Strings sein sollen, müssen sie durch fol-
gende Maskierungszeichenketten ersetzt werden:

Funktionszeichen Maskierungszeichenkette
& &amp;
' &apos;
< &lt;
> &gt;
" &quot;

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 23/94


KUKA.UserTech 4.0

Beispiel
Programmierung

Die Zeichenkette "->" soll als Parametername angezeigt werden. Dazu


muss sie in der KFDx-Datei folgendermaßen angegeben werden: "-&gt;"

6.4 Parameterreferenzen

Eine Parameterreferenz besteht aus einem Prozentzeichen und dem Na-


men eines Parameters. Das Prozentzeichen bewirkt, dass der Name des
Parameters nicht als Text sondern als Wert ausgegeben wird.
Folgende Parameterreferenzen sind vordefiniert:
Name Beschreibung
%TP Name der Technologie
Erster Parameter in jedem Inline-Formular
%INLINEFORM Name des Inline-Formulars
Zweiter Parameter in jedem Inline-Formular
%MODULE Name des Programms im Navigator

6.5 Namenskonventionen und Schlüsselwörter

Namen

Im KFDx-Format gelten folgende Namenskonventionen:


• Der Name darf die Buchstaben A…Z, die Ziffern 0…9 sowie die Son-
derzeichen "_" und "$" enthalten.
• Der Name darf nicht mit einer Ziffer beginnen.
• Der Name darf kein Schlüsselwort sein.
Beispiele für Namen:
• Variablennamen
• Funktionsnamen
• Unterprogrammnamen

Die Namen aller Systemvariablen beginnen mit dem $-Zeichen. Um Ver-


wechslungen zu vermeiden, bei benutzerdefinierten Variablen den Na-
men nicht mit diesem Zeichen beginnen.

Es dürfen keine für KRL reservierten Schlüsselwörter verwendet


werden. Weitere Informationen zu den Schlüsselwörtern sind in der Be-
dien- und Programmieranleitung für Systemintegratoren zu finden.

6.6 Geltungsbereiche

Variablen und Datenobjekte gelten lokal, d. h. in einer definierten Techno-


logie, wenn sie zwischen der Anweisung <Application> … </Application>
deklariert sind.
Variablen und Datenobjekte gelten global, d. h. in allen Technologien,
wenn sie außerhalb der Anweisung <Application> … </Application> dekla-
riert sind.
Es wird empfohlen, alle globalen Variablen und Datenobjekte in einer
KFDx-Datei zusammenzufassen.

24/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
6.7 Sprachdateien

Beschreibung

Texte, die in verschiedenen Sprachen auf der KUKA smartHMI angezeigt


werden sollen, können über Schlüssel in einer KXR-Sprachdatei gespei-
chert werden. Dies sind, z. B.:
• Meldungen
‒ Bei parametrierten Ausgaben müssen die jeweiligen Parameter mit
einem vorangestellten Pipe-Symbol (senkrechter Strich) an den
Schlüssel gehängt werden.
• Beschriftungen von Schaltflächen oder Statustasten
• Menüeinträge
• Parameternamen in Inline-Formularen
KXR-Sprachdateien werden standardmäßig in folgendem Verzeichnis ge-
speichert:
• C:\KRC\TP\UserTech\Kxr
Der Benutzer kann seine eigenen KXR-Sprachdateien erzeugen und das
Modul darin beliebig benennen. Wird ein Schlüssel in den KFDx-Dateien
genutzt, muss der Name der KXR-Datei, in der der Schlüssel definiert ist,
mitangegeben werden:
• kxr_file_name#<key>
Für jede Sprache, in die übersetzt werden soll, muss der passende
Schlüssel in einer Sprachdatei angelegt sein. Der Zugriff erfolgt über das
entsprechende Sprachkürzel.
(>>> "Sprachkürzel" Seite 26)
Wenn der Zugriff auf die Sprachdatei scheitert, werden Texte nicht in der
ausgewählten Sprache, sondern der in der KFDx-Datei angegebene
Schlüssel angezeigt.

Beispiele

Beispiel eines einfachen Oberflächentexts


Im Verzeichnis C:\KRC\TP\UserTech\Kxr\ ist die Sprachdatei TestUser.kxr
angelegt.
In der Sprachdatei ist der Schlüssel "LaserKey" definiert:

<?xml version="1.0" encoding="utf-8"?>


<resources xmlns="http://www.kuka.com/schemas/kxr/2009">
<module name="Test">
<uiText key="LaserKey">
<text xml:lang="de">Laser ein </text
<text xml:lang="en">Laser on </text>
</uiText>
</module>
</resources>

In den KFDx-Dateien kann man den Schlüssel nutzen, z. B. als Parame-


ternamen, der dann übersetzt wird:

<Param Name="TestBool" ShortName="TestUser#LaserKey"


ShortCut="LS3" Enable="False">
<Value Type="BOOL" Default="True">
<False Disp="AUS"/>
<True Disp="EIN"/>
</Value>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 25/94


KUKA.UserTech 4.0

</Param>
Programmierung

Beispiel einer Meldung mit Parameter


In der KFDx-Datei wird der Parameter über das Pipe-Symbol an den Mel-
dungsschlüssel gebunden:

<Script Name="SHOW_ERROR_MESSAGE"
<Message Text="TestUser#LaserIsOnMessage|%TestBool" />
</Script>

Meldungsbeschreibung in der KXR-Datei:

<message key="LaserIsOnMessage">
<text xml:lang="de">Zustand: Laser ist an = {0} </text>
<text xml:lang="en">State: Laser is on = {0} </text>
</message>

Sprachkürzel

Sprache Sprachkürzel
Chinesisch zh
Dänisch da
Deutsch de
Englisch en
Finnisch fi
Französisch fr
Griechisch el
Italienisch it
Japanisch ja
Koreanisch ko
Niederländisch nl
Polnisch pl
Portugiesisch pt
Rumänisch ro
Russisch ru
Schwedisch sv
Slowakisch sk
Slowenisch sl
Spanisch es
Tschechisch cs
Türkisch tr
Ungarisch hu
Vietnamesisch vi

26/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
6.8 Übersicht: Technologie programmieren

Schritt Beschreibung
1 KFDx-Datei anlegen.
(>>> 6.8.1 "KFDx-Datei anlegen" Seite 27)
2 Technologie definieren.
(>>> 6.8.2 "<Application>: Technologie definieren" Sei-
te 28)
3 Parameter für Inline-Formulare und Parameterlisten defi-
nieren.
(>>> 6.8.3 "<Param>: Parameter definieren" Seite 29)
4 Parameterlisten definieren.
(>>> 6.9 "Parameterliste programmieren" Seite 49)
5 Folds für Inline-Formulare definieren.
(>>> 6.8.5 "<Fold>: Fold definieren" Seite 38)
6 Inline-Formulare definieren.
(>>> 6.8.6 "<InlineForm>: Inline-Formular definieren" Sei-
te 39)
7 Unterprogramme und Funktionen, die beim Schließen ei-
nes Inline-Formulars im Programm eingefügt werden sol-
len, global verfügbar machen.
Hinweis: Weitere Informationen zur Programmierung von
Unterprogrammen und Funktionen sind in der Bedien-
und Programmieranleitung für Systemintegratoren zu fin-
den.
8 Statustasten programmieren.
(>>> 6.10 "Statustasten programmieren" Seite 56)
9 Skripte programmieren.
(>>> 6.11 "Skripte programmieren" Seite 63)
10 Technologie in Bedienoberfläche einbinden.
(>>> 7.1 "Inline-Formulare und Statustasten in smartHMI
einbinden" Seite 73)

6.8.1 KFDx-Datei anlegen

Beschreibung

Mit KUKA.UserTech 4.0 erstellte Technologien werden in KFDx-Dateien


beschrieben und standardmäßig in folgendem Verzeichnis auf der Robo-
tersteuerung gespeichert:
• C:\KRC\TP\UserTech\TEMPLATE

• Zum Bearbeiten der KFDx-Datei kann ein beliebiger Editor verwendet


werden.
• Die KFDx-Datei muss im XML-Format gespeichert werden.
• Der Name der KFDx-Datei kann innerhalb der Konventionen des
Windows-Betriebssystems frei gewählt werden.
• Die KFDx-Datei kann eine oder mehrere Technologien beinhalten.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 27/94


Programmierung KUKA.UserTech 4.0

• Ein Technologiename darf innerhalb des Systems nur einmal vorkom-


men.
Bei komplexen Technologien wird empfohlen, die zu einer Technologie
gehörigen KFDx-Dateien strukturiert in einem eigenen Verzeichnis zu spei-
chern:
• Verzeichnis C:\KRC\TP\TPName\Template
• Für den Ordner TPName muss ein Schlüssel in der Windows-Regist-
rierungsdatenbank angelegt werden.

Vorgehensweise

1. Registrierungseditor öffnen und folgenden Pfad wählen:


• HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\KUKA Ro-
boter GmbH\Options\KFD
2. Auf den Ordner KFD rechtsklicken und im Kontextmenü Neu > Zei-
chenfolge wählen. Eine neue Zeichenfolge wird angelegt.
3. Den Namen, den der Ordner TPName erhalten soll, als Namen der
Zeichenfolge eingeben.
4. Auf die neue Zeichenfolge rechtsklicken und im Kontextmenü Än-
dern… wählen. Das Fenster Zeichenfolge bearbeiten öffnet sich.
5. Bei Wert: den neuen Schlüssel eintragen:
• %InstallationDir%\TP\TPName\Template
6. Schlüssel mit OK bestätigen.

6.8.2 <Application>: Technologie definieren

Beschreibung

Technologie definieren, für die Inline-Formulare und/oder Statustasten pro-


grammiert werden sollen.

Syntax

<Application Name="Name" SOT="Bool" SOC="Bool">


</Application>

Erläuterung der Syntax

Element Beschreibung
Name Name der Technologie
SOT Legt fest, ob die Technologie über ein Listenfeld im
Inline-Formular ausgewählt werden kann.

• True: Auswahl ist möglich.


• False: Auswahl ist nicht möglich.
Default, wenn SOT nicht definiert ist: True
SOC Legt fest, ob die Inline-Formulare einer Technologie
über ein Listenfeld im Inline-Formular ausgewählt
werden können.

• True: Auswahl ist möglich.


• False: Auswahl ist nicht möglich.
Default, wenn SOC nicht definiert ist: True

28/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Beispiel 1

Programmierung
<Application Name="MyTech">
</Application>
<Application Name="OtherTech">
</Application>

Die Technologien MyTech und OtherTech können über ein Listenfeld im


Inline-Formular ausgewählt werden.

Abb. 6-1: Listenfeld zur Auswahl der Technologie

Beispiel 2

<Application Name="MyTech" SOT="False" SOC="True">


</Application>
<Application Name="OtherTech">
</Application>

Die Technologien MyTech und OtherTech können nicht über ein Listen-
feld im Inline-Formular ausgewählt werden.

Abb. 6-2: Technologie MyTech

6.8.3 <Param>: Parameter definieren

Beschreibung

Parameter für Inline-Formular oder Parameterliste definieren.

Syntax

<Param Name="Name" ShortName="String" ShortCut="String"


Unit="String" Enable="Bool">
<Value Type="Type" />
</Param>

Erläuterung der Syntax

Element Beschreibung
Name Name des Parameters
ShortName Name, der im Inline-Formular für den Parameter an-
gezeigt wird
ShortCut Präfix, mit dem der im Inline-Formular eingestellte
Parameterwert in der Datenliste gespeichert wird
Unit Einheit, die im Inline-Formular für den Parameter an-
gezeigt wird

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 29/94


Programmierung KUKA.UserTech 4.0

Element Beschreibung
Enable Parameter im Inline-Formular aktivieren/deaktivieren

• True: Parameterwert ist editierbar.


• False: Parameterwert wird nur angezeigt und ist
nicht editierbar.
Default, wenn Enable nicht definiert ist: True
Value Type Typ des Parameters

• STATIC
(>>> 6.8.4.1 "Parameter Typ STATIC" Seite 31)
• FREE
(>>> 6.8.4.2 "Parameter Typ FREE" Seite 31)
• NAME
(>>> 6.8.4.3 "Parameter Typ NAME" Seite 32)
• NUMBER
(>>> 6.8.4.4 "Parameter Typ NUMBER" Sei-
te 32)
• REAL
(>>> 6.8.4.5 "Parameter Typ REAL" Seite 34)
• LIST
(>>> 6.8.4.6 "Parameter Typ LIST" Seite 35)
• BOOL
(>>> 6.8.4.7 "Parameter Typ BOOL" Seite 37)

Sichtbarkeit der Attribute

Wenn ein Inline-Formular gespeichert wird, sind die folgenden Attribute


abhängig vom Parametertyp im Programmcode sichtbar oder nicht sicht-
bar.
Typ SHORTNAME SHORTCUT UNIT
STATIC Nicht sichtbar Nicht sichtbar Nicht sichtbar
FREE Sichtbar Nicht sichtbar Sichtbar
NAME Sichtbar Nicht sichtbar Sichtbar
NUMBER Sichtbar Nicht sichtbar Sichtbar
REAL Sichtbar Nicht sichtbar Sichtbar
LIST Sichtbar Nicht sichtbar Nicht sichtbar
BOOL Sichtbar Nicht sichtbar Nicht sichtbar

Beispiel

<Param Name="DistValue" ShortName="Distance: " Unit="mm">


<Value Type="NUMBER" Default="50" Min="0" Max="100"
Step="2" />
</Param>

Es kann ein ganzzahliger Wert zwischen 0 und 100 eingegeben werden.


Der Parameter ist vom Typ NUMBER.

Abb. 6-3: Parameter Typ NUMBER

30/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Über die Cursor-Tasten auf der Tastatur kann der Parameterwert schritt-

Programmierung
weise um 2 erhöht oder verringert werden.

6.8.4 Parametertypen

6.8.4.1 Parameter Typ STATIC

Beschreibung

Auf dem Inline-Formular wird ein statischer Text angezeigt, der nicht edi-
tiert werden kann.

Syntax

<Value Type="STATIC" Default="String" />

Erläuterung der Syntax

Element Beschreibung
Default Text, der auf dem Inline-Formular angezeigt wird

Beispiel

<Param Name="FieldStatic">
<Value Type="STATIC" Default="Field cannot be edited" />
</Param>

Abb. 6-4: Parameter Typ STATIC

6.8.4.2 Parameter Typ FREE

Beschreibung

Im Inline-Formular wird ein Textfeld angezeigt. Der Text kann editiert wer-
den.

Syntax

<Value Type="FREE" Default="String" />

Erläuterung der Syntax

Element Beschreibung
Default Text, der standardmäßig beim ersten Öffnen des Inli-
ne-Formulars angezeigt wird
Wenn kein String definiert wird, ist das Textfeld leer.

Beispiel

<Param Name="ProgrammerName" ShortName="Programmer: ">


<Value Type="FREE" Default=" Name " />
</Param>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 31/94


Programmierung KUKA.UserTech 4.0

Abb. 6-5: Parameter Typ FREE

6.8.4.3 Parameter Typ NAME

Nur Parameter vom Typ NAME können mit einer Parameterliste ver-
knüpft werden.

Beschreibung

Im Inline-Formular wird ein Variablenname, Funktionsname oder Unterpro-


grammname angezeigt, der editiert werden kann. Die Syntax des Namens
wird überprüft.
Es dürfen keine für KRL reservierten Schlüsselwörter verwendet
werden. Weitere Informationen zu den Schlüsselwörtern sind in der Be-
dien- und Programmieranleitung für Systemintegratoren zu finden.

Syntax

<Value Type="NAME" Default="String" />

Erläuterung der Syntax

Element Beschreibung
Default Name der Variablen, der Funktion oder des Unterpro-
gramms, der standardmäßig beim ersten Öffnen des
Inline-Formulars angezeigt wird
Wenn das letzte Zeichen des Namens eine Ziffer (0…
9) ist, wird die Ziffer standardmäßig um eins hochge-
zählt, wenn das Inline-Formular neu angelegt wird.
Wird das Inline-Formular nach dem Öffnen abgebro-
chen, wird der Zähler nicht zurückgesetzt.

Beispiel

<Param Name="Welding-Point-Number" ShortName="Welding-Point-


Nr.: ">
<Value Type="Name" Default="WTP1" />
</Param>

Abb. 6-6: Parameter Typ NAME

Beim ersten Öffnen des Inline-Formulars wird standardmäßig der Name


"WPT1" angezeigt. Wird das Inline-Formular das nächste Mal angelegt,
wird die Ziffer um eins hochgezählt und der Wert "WPT2" angezeigt.

6.8.4.4 Parameter Typ NUMBER

Beschreibung

Im Inline-Formular wird ein Integer-Wert angezeigt, der editiert werden


kann.

32/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Wertebereich des Integer-Datentyps:

Programmierung
• -2³¹-1 … 2³¹-1
Beispiele:

• 1; 32; 345

Syntax

<Value Type="NUMBER" Default="Default value"


Min="Minimum value" Max="Maximum value"
Step="Increment" Autolimit="Bool" />

Erläuterung der Syntax

Element Beschreibung
Default Parameterwert, der standardmäßig beim ersten Öff-
nen des Inline-Formulars angezeigt wird
Default, wenn Default nicht definiert ist: 0
Min Minimaler Eingabewert
Default, wenn Min nicht definiert ist: -2³¹-1
Max Maximaler Eingabewert
Default, wenn Max nicht definiert ist: 2³¹-1
Step Schrittweite für die Cursor-Tasten auf der Tastatur,
über die der Parameterwert erhöht und verringert
werden kann
Default, wenn Step nicht definiert ist: 0
Autolimit Automatische Begrenzung des Parameterwerts

• True: Ein zu kleiner Wert wird automatisch auf


den minimalen Eingabewert gesetzt, ein zu gro-
ßer Wert automatisch auf den maximalen Einga-
bewert.
• False: Wird ein zu kleiner oder großer Wert ein-
gegeben, wird der Benutzer nur darauf hingewie-
sen, dass der Wert außerhalb des zulässigen Be-
reichs liegt.
Default, wenn Autolimit nicht definiert ist: True

Beispiel

Param Name="DistValue" ShortName="Distance: " Unit="mm">


<Value Type="NUMBER" Default="50" Min="0" Max="100"
Step="2" />
</Param>

Es kann ein ganzzahliger Wert zwischen 0 und 100 eingegeben werden.


Der Parameter ist vom Typ NUMBER.

Abb. 6-7: Parameter Typ NUMBER

Über die Cursor-Tasten auf der Tastatur kann der Parameterwert schritt-
weise um 2 erhöht oder verringert werden.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 33/94


KUKA.UserTech 4.0

6.8.4.5 Parameter Typ REAL


Programmierung

Beschreibung

Im Inline-Formular wird ein Real-Wert angezeigt, der editiert werden kann.


Wertebereich des Real-Datentyps:

• +1.1E-38 … +3.4E+38
Beispiele:

• 1.43; 38.50; 300.25

Syntax

<Value Type="REAL" Default="Default value"


Min="Minimum value" Max="Maximum value"
Step="Increment" Autolimit="Bool" />

Erläuterung der Syntax

Element Beschreibung
Default Parameterwert, der standardmäßig beim ersten Öff-
nen des Inline-Formulars angezeigt wird
Default, wenn Default nicht definiert ist: 0.0
Min Minimaler Eingabewert
Default, wenn Min nicht definiert ist: +1.1E-38
Max Maximaler Eingabewert
Default, wenn Max nicht definiert ist: +3.4E+38
Step Schrittweite für die Cursor-Tasten auf der Tastatur,
über die der Wert im Eingabefeld erhöht und verrin-
gert werden kann
Default, wenn Step nicht definiert ist: 0.1
Autolimit Automatische Begrenzung des Parameterwerts

• True: Ein zu kleiner Wert wird automatisch auf


den minimalen Eingabewert gesetzt, ein zu gro-
ßer Wert automatisch auf den maximalen Einga-
bewert.
• False: Wird ein zu kleiner oder großer Wert ein-
gegeben, wird der Benutzer nur darauf hingewie-
sen, dass der Wert außerhalb des zulässigen Be-
reichs liegt.
Default, wenn Autolimit nicht definiert ist: True

Beispiel

<Param Name="TimeDelay" ShortName="Delay: " Unit="sec">


<Value Type="REAL" Default="2" Min="0.5" Max="5"
Step="0.5" />
</Param>

Es kann ein Wert zwischen 0.5 und 5.0 eingegeben werden.

34/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
Abb. 6-8: Parameter Typ REAL

Über die Cursor-Tasten auf der Tastatur kann der Parameterwert schritt-
weise um 0.5 erhöht oder verringert werden.

6.8.4.6 Parameter Typ LIST

Beschreibung

Im Inline-Formular wird ein Listenfeld angezeigt. Über die Liste kann ein
Parameter ausgewählt werden. Die Parameter in der Liste können nicht
editiert werden.

Syntax

<List SelectedItem="String">
<Item Key="String" Disp="String" />
<Item Key="String" Disp="String" />
...
<Item Key="String" Disp="String" />
</List>

Erläuterung der Syntax

Element Beschreibung
SelectedItem Parameter, der standardmäßig beim ersten Öffnen
des Inline-Formulars angezeigt wird
Key Parameterwert, der verarbeitet wird
Hinweis: Für jeden Listenparameter muss ein Key
hinterlegt sein, der innerhalb der Liste eindeutig ist.
Disp Parameterwert, der angezeigt wird
Default, wenn Disp nicht definiert ist: Der angezeigte
Wert entspricht dem Wert Key.

Beispiel 1

<Param Name="FieldList" ShortName="Weave pattern:">


<List SelectedItem="Triangle">
<Item Key="Triangle" />
<Item Key="Trapezoid" />
<Item Key="Sinus" />
</List>
</Param>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 35/94


Programmierung KUKA.UserTech 4.0

Abb. 6-9: Parameter Typ LIST

Beispiel 2

<Application Name="MyTech" SOC="True">


<Param Name="FieldList" ShortName="Weave pattern:">
<List SelectedItem="Triangle">
<Item Key="1" Disp="Triangle" />
<Item Key="2" Disp="Trapezoid" />
<Item Key="3" Disp="Sinus" />
</List>
</Param>
<Fold Name="MyFold">
<Line>Model = %FieldList/</Line>
</Fold>
<InlineForm Name="MyCmd" >
<FLD Name="MyFold" />
<PRM Name="FieldList" />
</InlineForm>
</Application>

Abb. 6-10: Inline-Formular MyTech.MyCmd mit Parameter Typ LIST

Der im Listenfeld WeavePattern ausgewählte Wert Triangle entspricht


nicht dem verarbeiteten Wert. Im Fold MyFold wird der globalen Variablen
Model der Wert 3 zugewiesen.
KRL-Code im Programm:

36/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

6.8.4.7 Parameter Typ BOOL

Programmierung
Beschreibung

Im Inline-Formular wird eine Checkbox angezeigt, die aktiviert und deakti-


viert werden kann.

Syntax

<Value Type="BOOL" Default="Bool">


<True Disp="String" />
<False Disp="String" />
</Value>

Erläuterung der Syntax

Element Beschreibung
Default Wert der Checkbox, der standardmäßig beim ersten
Öffnen des Inline-Formulars angezeigt wird

• True: Checkbox ist aktiv (mit Häkchen).


• False: Checkbox ist inaktiv (ohne Häkchen).
True Disp Text, der als KRL-Code im Programm eingefügt wird,
wenn die Checkbox aktiv ist.
Wenn True Disp nicht definiert ist und die Check-
box aktiv ist, wird standardmäßig "True" als KRL-
Code im Programm eingefügt.
False Disp Text, der als KRL-Code im Programm eingefügt wird,
wenn die Checkbox inaktiv ist.
Wenn False Disp nicht definiert ist, und die Check-
box inaktiv ist, wird standardmäßig "False" als KRL-
Code im Programm eingefügt.

Beispiel

<Application Name="MyTech" SOC=True>


<Param Name="ParamList" ShortName="Val: ">
<Value Type="Name" Default="val1" />
</Param>
...
<Param Name="LaserOnOff" ShortName="Laser ">
<Value Type="BOOL" Default="True">
<True Disp="EIN" />
<False Disp="AUS" />
</Value>
</Param>
...
<Fold Name="PFold">
<Line>Model = %ParamList/</Line>
</Fold>
...
<InlineForm Name="ILF_With_ParamList" >
<FLD Name="PFold" />
<PRM Name="ParamList" />
<PRM Name="LaserOnOff" />
</InlineForm>
</Application>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 37/94


Programmierung KUKA.UserTech 4.0

Abb. 6-11: Parameter Typ BOOL (True)

KRL-Code im Programm (bei True):

Abb. 6-12: Parameter Typ BOOL (False)

KRL-Code im Programm (bei False):

6.8.5 <Fold>: Fold definieren

Beschreibung

Fold definieren.
Für Inline-Formulare können Folds definiert werden, die in das im Editor
geöffnete Modul eingefügt werden.
In den Folds keine Kontrollstrukturen, z. B. Verzweigungen und Schlei-
fen, verwenden! Diese können in angewählten Programmen nicht einge-
fügt werden.

Syntax

<Fold Name="Name">
<Line>String1<Line/>
...
<Line>StringN<Line/>
</Fold>

Erläuterung der Syntax

Element Beschreibung
Name Name des Folds
String1 Inhalt der Fold-Zeilen 1 … N
… Alle Parameterreferenzen eines Strings werden im
Programm durch die im Inline-Formular ausgewählten
StringN
Werte ersetzt.
(>>> 6.4 "Parameterreferenzen" Seite 24)

Beispiel

<Fold Name="MyFold">
<Line>Laser(#%INLINEFORM/,%DataSet/,%Pattern/)</Line>
<Line>TRIGGER WHEN PATH=%DistanceWay/ DELAY=0 DO
LASER_ON=TRUE</Line>
</Fold>

Im Inline-Formular werden folgende Werte ausgewählt:

38/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
• DataSet = DataSet6
• DistanceWay = 210
• Pattern = STEP
• INLINEFORM = ON
KRL-Code im Programm:

Laser(#ON,DataSet6,STEP)
TRIGGER WHEN PATH=210 DELAY=0 DO LASER_ON=TRUE

6.8.6 <InlineForm>: Inline-Formular definieren

Beschreibung

Inline-Formular definieren.
Einem Inline-Formular können Parameter und Folds zugeordnet werden.
Außerdem können Skripte angegeben werden, die beim Öffnen oder beim
Schließen des Inline-Formulars ausgeführt werden sollen, oder beim Drü-
cken auf Touch-Up.

Syntax

<InlineForm Name="Name" IlfType="Type"


Style="Format" Focus="Position" Spline="Bool"
OnAccept="Script" OnTouchup="Script" OnOpen="Script">
<FLD Name="NameFold1" />
...
<FLD Name="NameFoldN" />
<PRM Name="NameParam1" />
...
<PRM Name="NameParamN" />
</InlineForm>

Erläuterung der Syntax

Element Beschreibung
Name Name des Inline-Formulars
IlfType Typ des Inline-Formulars
Legt fest, ob die Folds des Inline-Formulars in einen
Fold mit Spline-Kontrollstruktur eingefügt werden kön-
nen.

• IN_SPLINE: Fold kann in einen Spline-Fold einge-


fügt werden.
• OFF_SPLINE: Fold kann nicht in einen Spline-
Fold eingefügt werden.
• ALL: Fold kann in jeden Fold eingefügt werden.
Default, wenn IlfType nicht definiert ist: OFF_SPLI-
NE

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 39/94


Programmierung KUKA.UserTech 4.0

Element Beschreibung
Style Formatierung des KRL-Codes

• WYSIWYG
(>>> 6.8.7.1 "Formatiertyp WYSIWYG" Seite 44)
• SUB
(>>> 6.8.7.2 "Formatiertyp SUB" Seite 44)
• DSUB
(>>> 6.8.7.3 "Formatiertyp DSUB" Seite 45)
• FCT
(>>> 6.8.7.4 "Formatiertyp FCT" Seite 46)
• DFCT
(>>> 6.8.7.5 "Formatiertyp DFCT" Seite 47)
• ASS
(>>> 6.8.7.6 "Formatiertyp ASS" Seite 48)
• ASSAGG
(>>> 6.8.7.7 "Formatiertyp ASSAGG" Seite 48)
Default, wenn Style nicht definiert ist: WYSIWYG
Focus Nummer des Parameters (siehe Element PRM Name),
der standardmäßig beim ersten Öffnen des Inline-For-
mulars im Fokus steht
Voraussetzung für diese Funktion:

• Inline-Formular wurde über das Menü Befehle


geöffnet.
• In der Technologie, in der das Inline-Formular de-
finiert wurde, sind SOT und SOC gleich True.
(>>> 6.8.2 "<Application>: Technologie definieren"
Seite 28)
Spline Legt fest, ob das Inline-Formular als Inline-Formular
interpretiert wird, in dem eine SPLINE-Kontrollstruktur
enthalten ist. Ob das Inline-Formular tatsächlich eine
SPLINE-Kontrollstruktur enthält, wird beim Anlegen
des Folds definiert.

• True: Interpretation als Inline-Formular mit SPLI-


NE-Kontrollstruktur
• False: Interpretation als Inline-Formular ohne
SPLINE-Kontrollstruktur
Default, wenn Spline nicht definiert ist: False
OnAccept Name des Skripts, das ausgeführt wird, wenn das In-
line-Formular mit Befehl OK geschlossen wird
(>>> 6.8.6.1 "Inline-Formular mit OnOpen- und OnAc-
cept-Skript" Seite 43)
OnTouchup Name des Skripts, das ausgeführt wird, wenn Positio-
nen mit Touch-Up im Inline-Formular übernommen
werden

40/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
Element Beschreibung
OnOpen Name des Skripts, das ausgeführt wird, wenn das In-
line-Formular mit einer der folgenden Aktionen geöff-
net wird:

• Drücken auf Ändern


• Über das Menü Befehle
(>>> 6.8.6.1 "Inline-Formular mit OnOpen- und OnAc-
cept-Skript" Seite 43)
NameFold1 Namen der Folds 1 … N, die dem Inline-Formular zu-
geordnet sind

(>>> 6.8.5 "<Fold>: Fold definieren" Seite 38)
NameFoldN
Wird dem Inline-Formular kein Fold zugeordnet, wird
sein Inhalt wie bei Style vorgegeben im Programm
eingefügt.
NameParam1 Namen der Parameter 1 … N, die dem Inline-Formu-
lar zugeordnet sind

(>>> 6.8.3 "<Param>: Parameter definieren" Seite 29)
NameParamN
Die Reihenfolge, in der die Parameter angegeben
werden, entspricht der Anzeigefolge im Inline-Formu-
lar.

Beispiel

In der Technologie LASER sind Inline-Formulare zum Ein- und Ausschal-


ten eines Lasers definiert.

1 <Application Name="LASER" SOT="True" SOC="True">


2 <Param Name="DataSet" ShortName="WeldDataSet=">
3 <Value Type="NAME" Default="DataSet1" />
4 </Param>
5 <Param Name="DistanceWay" ShortName="Distance="
Unit="mm">
6 <Value Type="NUMBER" Default="200" Min="0" Max="500"
Step="10" />
7 </Param>
8 <Param Name="DelayTime" ShortName="Delay=" Unit="ms">
9 <Value Type="REAL" Default="0.8" Min="0" Max="20.3"
Step="0.3>
10 </Param>
11 <Param Name="Pattern" ShortName="WeavePattern=">
12 <List SelectedItem="">
13 <Item Disp="" Key="PULSE" />
14 <Item Disp="" Key="STEP" />
15 <Item Disp="" Key="CONT" />
16 </List>
17 </Param>
18 <Fold Name="LasOn">
19 <Line>Laser(#ON,%DataSet/,%Pattern/)</Line>
20 <Line>TRIGGER WHEN DISTANCE=%DistanceWay/ DELAY=0 DO
LASER_ON=True</Line>
21 </Fold>
22 <Fold Name="LasOff">
23 <Line>Laser(#OFF)</Line>
24 <Line>TRIGGER WHEN DISTANCE=0 DELAY=%DelayTime/ DO
LASER_ON=FALSE</Line>
25 </Fold>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 41/94


KUKA.UserTech 4.0

26 <InlineForm Name="ON">
Programmierung

27 <FLD Name="LasOn" />


28 <PRM Name="DataSet" />
29 <PRM Name="DistanceWay" />
30 <PRM Name="Pattern" />
31 </InlineForm>
32 <InlineForm Name="OFF">
33 <FLD Name="LasOff" />
34 <PRM Name="DelayTime" />
35 </InlineForm>
36 </Application>

Zeile Beschreibung
1 … 36 Definition der Technologie LASER
2 … 4 Definition des Parameters DataSet
Typ: NAME
5 … 7 Definition des Parameters DistanceWay
Typ: NUMBER
8 … 10 Definition des Parameters DelayTime
Typ: REAL
11 … 17 Definition des Parameters Pattern
Typ: LIST
Liste der auswählbaren Parameterwerte:

• PULSE
• STEP
• CONT
18 … 21 Definition des Folds LasOn
Trigger zum Einschalten des Lasers
22 … 25 Definition des Folds LasOff
Trigger zum Ausschalten des Lasers
26 … 31 Definition des Inline-Formulars LASER.ON zum Einschalten
des Lasers
Folgender Fold ist dem Inline-Formular zugeordnet:

• LasOn
Folgende Parameter können im Inline-Formular eingestellt
werden:

• DataSet
• DistanceWay
• Pattern
32 … 35 Definition des Inline-Formulars LASER.OFF zum Ausschal-
ten des Lasers
Folgender Fold ist dem Inline-Formular zugeordnet:

• LasOff
Folgender Parameter kann im Inline-Formular eingestellt
werden:

• DelayTime

42/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Inline-Formular LASER.ON

Programmierung
Abb. 6-13: Inline-Formular LASER.ON

Inline-Formular LASER.OFF

Abb. 6-14: Inline-Formular LASER.OFF

6.8.6.1 Inline-Formular mit OnOpen- und OnAccept-Skript

Beschreibung

Ein OnOpen-Skript wird ausgeführt, wenn das Inline-Formular über das


Menü Befehle oder durch Drücken auf Ändern geöffnet wird.
Ein OnAccept-Skript wird ausgeführt, wenn das Inline-Formular mit Befehl
OK geschlossen wird.

KFDx-Datei

1 <Application Name="TestScript">
2 <Script Name="OpenTest">
3 <Message Text="Fired when ILF is opened!" />
4 </Script>
5 <Script Name="CloseTest">
6 <Message Text="Fired when ILF is closed!" />
7 <Do Script="AcceptInlineForm" />
8 </Script>
9 <Fold Name="TestFold">
10 <Line>/;only for testing OnOpen event</Line>
11 </Fold>
12 <InlineForm Name="TestIlf" OnOpen="OpenTest"
OnAccept="CloseTest">
13 <FLD Name="TestFold" />
14 </InlineForm>
15 </Application>

Zeile Beschreibung
2 … 4 Definition des OnOpen-Skripts, das beim Öffnen des Inline-
Formulars ausgeführt werden soll
5 … 7 Definition des OnAccept-Skripts, das beim Schließen des
Inline-Formulars ausgeführt werden soll
12 … 14 Definition des Inline-Formulars

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 43/94


Programmierung KUKA.UserTech 4.0

6.8.7 Formatiertypen

6.8.7.1 Formatiertyp WYSIWYG

Beschreibung

Die Formatierung des KRL-Codes entspricht genau dem Text des Inline-
Formulars.

Beispiel

<Application Name="Laser">
<Param Name="Fieldlist" ShortName="Weave pattern: ">
<List SelectedItem="Triangle">
<Item Key="Triangle" />
<Item Key="Trapezoid" />
<Item Key="Sinus" />
</List>
</Param>
<Param Name="Fieldname" ShortName="WeldDataSet: ">
<Value Type="Name" Default="DataSet1" />
</Param
<Param Name="DistanceWay" ShortName="Distance: " Unit="mm">
<Value Type="NUMBER" Default="200" Min="0" Max="500" />
</Param>
<InlineForm Name="On" >
<PRM Name="Fieldname" />
<PRM Name="DistanceWay" />
<PRM Name="Fieldlist" />
</InlineForm>
<InlineForm Name="Off" />
</Application>

Abb. 6-15: Inline-Formular Laser.On

KRL-Code im Programm:

6.8.7.2 Formatiertyp SUB

Beschreibung

Die Formatierung des KRL-Codes entspricht einem Unterprogramm-Aufruf:


• Die Parameter werden auf den Inhalt der Felder reduziert, durch Kom-
mata getrennt und von Klammern eingeschlossen.
• Der Trennpunkt zwischen Technologie- und Inline-Formular-Name wird
unterdrückt.

Beispiel

<Application Name="Laser">
<Param Name="Fieldlist" ShortName="Weave pattern: ">
<List SelectedItem="Triangle">

44/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

<Item Key="Triangle" />

Programmierung
<Item Key="Trapezoid" />
<Item Key="Sinus" />
</List>
</Param>
<Param Name="Fieldname" ShortName="WeldDataSet: ">
<Value Type="Name" Default="DataSet0" />
</Param>
<Param Name="DistanceWay" ShortName="Distance: " Unit="mm">
<Value Type="NUMBER" Default="200" Min="0" Max="500" />
</Param>
<InlineForm Name="On" Style="SUB">
<PRM Name="Fieldname" />
<PRM Name="DistanceWay" />
<PRM Name="Fieldlist" />
</InlineForm>
<InlineForm Name="Off" />
</Application>

Abb. 6-16: Inline-Formular Laser.On

KRL-Code im Programm:

6.8.7.3 Formatiertyp DSUB

Beschreibung

Die Formatierung des KRL-Codes entspricht einem Unterprogramm-Aufruf:


• Die Parameter werden auf den Inhalt der Felder reduziert, durch Kom-
mata getrennt und von Klammern eingeschlossen.
• Der Trennpunkt zwischen Technologie- und Inline-Formular-Name wird
unterdrückt.
• Parameternamen und Einheiten werden als Kommentar eingefügt.

Beispiel

<Application Name="Laser">
<Param Name="Fieldlist" ShortName="Weave pattern: ">
List SelectedItem="Triangle">
<Item Key="Triangle" />
<Item Key="Trapezoid" />
<Item Key="Sinus" />
</List>
</Param>
<Param Name="Fieldname" ShortName="WeldDataSet: ">
<Value Type="Name" Default="DataSet0" />
</Param>
<Param Name="DistanceWay" ShortName="Distance: " Unit="mm">
<Value Type="NUMBER" Default="200" Min="0" Max="500" />
</Param>
<InlineForm Name="On" Style="DSUB">

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 45/94


KUKA.UserTech 4.0

<PRM Name="Fieldname" />


Programmierung

<PRM Name="DistanceWay" />


<PRM Name="Fieldlist" />
</InlineForm>
<InlineForm Name="Off" />
</Application>

Abb. 6-17: Inline-Formular Laser.On

KRL-Code im Programm:

6.8.7.4 Formatiertyp FCT

Beschreibung

Die Formatierung des KRL-Codes entspricht einem Funktionsaufruf:


• Der Wert des ersten Parameters wird unabhängig von seinem Format
als Funktionsname verwendet.
• Die folgenden Parameter werden auf den Inhalt der Felder reduziert,
durch Kommata getrennt und von Klammern eingeschlossen.
• Der Trennpunkt zwischen Technologie- und Inline-Formular-Name wird
unterdrückt.
• Zwischen Inline-Formular-Name und Parameterliste wird ein Gleich-
heitszeichen gesetzt.

Beispiel

<Application Name="Laser">
<Param Name="Fieldlist" ShortName="Weave pattern: ">
<List SelectedItem="Triangle">
<Item Key="3" Disp="Triangle" />
<Item Key="Trapezoid" />
<Item Key="Sinus" />
</List>
</Param>
<Param Name="Fieldname" ShortName="WeldDataSet: ">
<Value Type="Name" Default="DataSet0" />
</Param>
<Param Name="DistanceWay" ShortName="Distance: " Unit="mm">
<Value Type="NUMBER" Default="200" Min="0" Max="500" />
</Param>
<InlineForm Name="On" Style="FCT">
<PRM Name="Fieldname" />
<PRM Name="DistanceWay" />
<PRM Name="Fieldlist" />
</InlineForm>
<InlineForm Name="Off" />
</Application>

46/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
Abb. 6-18: Inline-Formular Laser.On

KRL-Code im Programm:

6.8.7.5 Formatiertyp DFCT

Beschreibung

Die Formatierung des KRL-Codes entspricht einem Funktionsaufruf:


• Der Wert des ersten Parameters wird unabhängig von seinem Format
als Funktionsname verwendet.
• Die folgenden Parameter werden auf den Inhalt der Felder reduziert,
durch Kommata getrennt und von Klammern eingeschlossen.
• Der Trennpunkt zwischen Technologie- und Inline-Formular-Name wird
unterdrückt.
• Zwischen Inline-Formular-Name und Parameterliste wird ein Gleich-
heitszeichen gesetzt.
• Parameternamen und Einheiten werden als Kommentar eingefügt.

Beispiel

<Application Name="Laser">
<Param Name="Fieldlist" ShortName="Weave pattern: ">
<List SelectedItem="Triangle">
<Item Key="3" Disp="Triangle" />
<Item Key="Trapezoid" />
<Item Key="Sinus" />
</List>
</Param>
<Param Name="Fieldname" ShortName="WeldDataSet: ">
<Value Type="Name" Default="DataSet0" />
</Param>
<Param Name="DistanceWay" ShortName="Distance: " Unit="mm">
<Value Type="NUMBER" Default="200" Min="0" Max="500" />
</Param>
<InlineForm Name="On" Style="DFCT">
<PRM Name="Fieldname" />
<PRM Name="DistanceWay" />
<PRM Name="Fieldlist" />
</InlineForm>
<InlineForm Name="Off" />
</Application>

Abb. 6-19: Inline-Formular Laser.On

KRL-Code im Programm:

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 47/94


KUKA.UserTech 4.0

6.8.7.6 Formatiertyp ASS


Programmierung

Beschreibung

Die Formatierung des KRL-Codes entspricht einer Zuweisung:


• Die Parameter werden auf den Inhalt der Felder reduziert und durch
Kommata getrennt.
• Der Trennpunkt zwischen Technologie- und Inline-Formular-Name wird
unterdrückt.
• Zwischen Inline-Formular-Name und Parameterliste wird ein Gleich-
heitszeichen gesetzt.

Beispiel

<Application Name="Laser">
<Param Name="Fieldlist" ShortName="Weave pattern: ">
<List SelectedItem="Triangle">
<Item Key="3" Disp="Triangle" />
<Item Key="Trapezoid" />
<Item Key="Sinus" />
</List>
</Param>
<Param Name="Fieldname" ShortName="WeldDataSet: ">
<Value Type="Name" Default="DataSet0" />
</Param>
<Param Name="DistanceWay" ShortName="Distance: " Unit="mm">
<Value Type="NUMBER" Default="200" Min="0" Max="500" />
</Param>
<InlineForm Name="On" Style="ASS">
<PRM Name="Fieldname" />
<PRM Name="DistanceWay" />
<PRM Name="Fieldlist" />
</InlineForm>
<InlineForm Name="Off" />
</Application>

Abb. 6-20: Inline-Formular Laser.On

KRL-Code im Programm:

6.8.7.7 Formatiertyp ASSAGG

Beschreibung

Die Formatierung des KRL-Codes entspricht einer Aggregatzuweisung:


• Die Parameter werden auf den Parameternamen und den Inhalt der
Felder reduziert.
• Die Parameter werden durch Kommata getrennt und von geschweiften
Klammern eingeschlossen.
• Der Trennpunkt zwischen Technologie- und Inline-Formular-Name wird
unterdrückt.

48/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
• Zwischen Inline-Formular-Name und Parameterliste wird ein Gleich-
heitszeichen gesetzt.

Beispiel

<Application Name="SEARCH">
<Param Name="XDir" ShortName="X=" Unit="mm">
<Value Type="NUMBER" Default="1" />
</Param>
<Param Name="YDir" ShortName="Y=" Unit="mm">
<Value Type="NUMBER" Default="1" />
</Param>
<Param Name="ZDir" ShortName="Z=" Unit="mm">
<Value Type="NUMBER" Default="1" />
</Param>
<InlineForm Name="Direction" Style="ASSAGG">
<PRM Name="XDir" />
<PRM Name="YDir" />
<PRM Name="ZDir" />
</InlineForm>
</Application>

Abb. 6-21: Inline-Formular SEARCH.Direction

KRL-Code im Programm:

6.9 Parameterliste programmieren

Beschreibung

Eine Parameterliste enthält einen Datensatz mit verschiedenen Parame-


tern. Dieser Datensatz wird auf der KUKA.smartHMI in einem Optionsfens-
ter angezeigt. Die Struktur und die Eigenschaften des Datensatzes müs-
sen programmiert werden.

Übersicht

Schritt Beschreibung
1 Parameter der Parameterliste definieren.
(>>> 6.8.3 "<Param>: Parameter definieren" Seite 29)
2 Datensatzstruktur definieren.
(>>> 6.9.1 "<Param Name="PL_">: Datensatzstruktur für
Parameterliste definieren" Seite 50)
3 Strukturdatensatz und Default-Datensatz in der $con-
fig.dat definieren.
(>>> 6.9.3 "Strukturdatentyp definieren" Seite 51)
4 Parameterliste definieren und einem Parameter vom Typ
NAME zuordnen.
(>>> 6.9.2 "<PList>: Parameterliste definieren" Seite 50)

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 49/94


KUKA.UserTech 4.0

Beispiel
Programmierung

(>>> 6.9.4 "Technologie MyTech" Seite 52)

6.9.1 <Param Name="PL_">: Datensatzstruktur für Parameterliste definieren

Beschreibung

Datensatzstruktur für Parameterliste definieren.

Syntax

<Param Name="PL_Name" ShortName="String" ShortCut="String"


Unit="String" Var="String">
<Value Type="FREE" Default="_" />
</Param>

Erläuterung der Syntax

Element Beschreibung
Name="PL_Name" Name des Datensatzes
(>>> 6.9.2 "<PList>: Parameterliste definieren" Seite 50)
ShortName Name des Datensatzes, der im Optionsfenster auf der
smartHMI angezeigt wird
ShortCut Name des Strukturdatentyps des Datensatzes
(>>> 6.9.3 "Strukturdatentyp definieren" Seite 51)
Unit Präfix des Default-Datensatzes
(>>> 6.9.3 "Strukturdatentyp definieren" Seite 51)
Var Systemname des Datensatzes
<Value Type="FREE" Platzhalter für die Default-Werte des Datensatzes
Default="_" />
(>>> 6.9.3 "Strukturdatentyp definieren" Seite 51)

6.9.2 <PList>: Parameterliste definieren

Beschreibung

Parameterliste definieren und einem Parameter vom Typ NAME zuordnen.

Syntax

<PList Name="Name" Param="IlfParamName">


<Val>NameParam1</Val>
...
<Val>NameParamN</Val>
</PList>

50/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Erläuterung der Syntax

Programmierung
Element Beschreibung
Name Name des Datensatzes
(>>> 6.9.1 "<Param Name="PL_">: Datensatzstruktur
für Parameterliste definieren" Seite 50)
Param Name des Parameters im Inline-Formular, mit dem
der Datensatz verknüpft wird
Hinweis: Nur Parameter vom Typ NAME können mit
einer Parameterliste verknüpft werden.
NameParam1 Namen der Parameter 1 … N des Datensatzes
… Die Reihenfolge, in der die Parameter angegeben
werden, entspricht der Anzeigefolge im Optionsfens-
NameParamN
ter.
Layout und Wertebereich der Parameter müssen mit
<Param> definiert sein.
(>>> 6.8.3 "<Param>: Parameter definieren" Seite 29)

6.9.3 Strukturdatentyp definieren

Beschreibung

Der Strukturdatentyp eines Datensatzes und die Default-Werte des Struk-


turdatentyps müssen in der Datei $config.dat definiert werden.
Verzeichnis C:\KRC\ROBOTER\KRC\R1\SYSTEM
Datei $config.dat

• Fold USER GLOBALS


• Abschnitt "Userdefined Types" im Fold

Syntax

Strukturdatentyp:

• STRUC Name
Typ1 StrukturnameParam1,
…,
TypN StrukturnameParamN
Default-Werte:

• DECL Name PräfixDEFAULT =


{StrukturnameParam1 Default1,
…,
StrukturnameParamN DefaultN}

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 51/94


KUKA.UserTech 4.0

Erläuterung der Syntax


Programmierung

Element Beschreibung
Name Name des Strukturdatentyps
(>>> 6.9.1 "<Param Name="PL_">: Datensatz-
struktur für Parameterliste definieren" Seite 50)
Typ1 … TypN Datentypen der Parameter des Datensatzes

• INT
• REAL
• BOOL
StrukturnameParam1, Strukturnamen der Parameter des Datensatzes
…,
StrukturnameParamN
Präfix Präfix des Default-Datensatzes
(>>> 6.9.1 "<Param Name="PL_">: Datensatz-
struktur für Parameterliste definieren" Seite 50)
Defautl1 … DefaultN Default-Werte der Parameter des Datensatzes
Die Default-Werte sind frei wählbar.

6.9.4 Technologie MyTech

KFDx-Datei

1 <Application Name="MyTech" SOT="True" SOC="True">


2 <Param Name="ParamList" ShortName="Val: ">
3 <Value Type="NAME" Default="val1" />
4 </Param>
5 <Param Name="LSR_MAX_PWR" ShortName="Maximum Power"
ShortCut="MAXP" Unit="W">
6 <Value Type="NUMBER" Default="2000" Min="0"
Max="20000" Step="100" Autolimit="True" />
7 </Param>
8 <Param Name="LSR_MIN_PWR" ShortName="Minimum Power"
ShortCut="MINP" Unit="W">
9 <Value Type="NUMBER" Default="2000" Min="0"
Max="20000" Step="100" Autolimit="True" />
10 </Param>
11 <Param Name="LSR_PRG" ShortName="Laser Program"
ShortCut="PRG>
12 <Value Type="NUMBER" Default="1" Min="1" Max="79"
Step="1" Autolimit="True" />
13 </Param>
14 <Param Name="SNSR_PRG" ShortName="Sensor Program"
ShortCut="PREC">
15 <Value Type="NUMBER" Default="1" Min="0" Max="3"
Step="1" Autolimit="True" />
16 </Param>
17 <Param Name="GAS_PRESSURE" ShortName="Cutting Gas"
ShortCut="GAS" Unit="bar">
18 <Value Type="NUMBER" Default="2" Min="0" Max="8"
Step="1" Autolimit="True" />
19 </Param>
20 <Param Name="GAS_PRE_FLOW" ShortName="PRE Flow Time"
ShortCut="PRE" Unit="ms">
21 <Value Type="NUMBER" Default="0" Min="0" Max="5000"
Step="100" Autolimit="True" />

52/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

22 </Param>

Programmierung
23 <Param Name="GAS_POST_FLOW" ShortName="POST Flow Time"
ShortCut="POST" Unit="ms">
24 <Value Type="NUMBER" Default="0" Min="0" Max="5000"
Step="100" Autolimit="True" />
25 </Param>
26 <Param Name="LSR_DLY" ShortName="Piercing Time"
ShortCut="LSR" Unit="ms">
27 <Value Type="NUMBER" Default="0" Min="0" Max="5000"
Step="100" Autolimit="True" />
28 </Param>
29 <Param Name="TestBool" ShortName="Laser" ShortCut="LS3">
30 <Value Type="BOOL" Default="True">
31 <False Disp="AUS" />
32 <True Disp="EIN" />
33 </Value>
34 </Param>
35 <Param Name="PL_LsrTool" ShortName="PLTOOL"
ShortCut="LT" Unit="TOOL" Var="LSC_TOOL_TYP">
36 <Value Type="FREE" Default="_" />
37 </Param>
38 <Fold Name="MyFold">
39 <Line>/;test</Line>
40 </Fold>
41 <Fold Name="PFold">
42 <Line>/;ParamList</Line>
43 </Fold>
44 <Fold Name="SPL_FOLD">
45 <Line>/;Spline Fold</Line>
46 </Fold>
47 <PList Name="LsrTool" Param="ParamList">
48 <Val>LSR_MAX_PWR</Val>
49 <Val>LSR_MIN_PWR</Val>
50 <Val>LSR_PRG</Val>
51 <Val>SNSR_PRG</Val>
52 <Val>GAS_PRESSURE</Val>
53 <Val>GAS_PRE_FLOW</Val>
54 <Val>GAS_POST_FLOW</Val>
55 <Val>LSR_DLY</Val>
56 </PList>
57 <InlineForm Name="MyCmd">
58 <FLD Name="MyFold" />
59 </InlineForm>
60 <InlineForm Name="ILF_With_ParamList">
61 <FLD Name="PFold" />
62 <PRM Name="ParamList" />
63 <PRM Name="TESTBOOL" />
64 </InlineForm>
65 </Application>

Zeile Beschreibung
1 … 65 Definition der Technologie MyTech
2 … 4 Definition des Parameters ParamList
Typ: NAME
Über diesen Parameter wird eine Parameterliste mit einem
Laserdatensatz im Inline-Formular aufgerufen.
Hinweis: Nur Parameter vom Typ NAME können mit einer
Parameterliste verknüpft werden.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 53/94


Programmierung KUKA.UserTech 4.0

Zeile Beschreibung
5 … 28 Definition der Parameter des Laserdatensatzes
Typ: NUMBER

• LSR_MAX_PWR (Maximum Power)


• LSR_MIN_PWR (Minimum Power)
• LSR_PRG (Laser Program)
• SNSR_PRG (Sensor Program)
• GAS_PRESSURE (Cutting Gas)
• GAS_PRE_FLOW (PRE Flow Time)
• GAS_POST_FLOW (POST Flow Time)
• LSR_DLY (Piercing Time)
29 … 34 Definition des Parameters TestBool
Typ: BOOL
Checkbox zum Ein-/Ausschalten des Lasers
35 … 37 Definition der Datensatzstruktur für die Parameterliste
Der Strukturdatentyp LSC_TOOL_TYP und die Default-Wer-
te des Strukturdatentyps müssen in der $config.dat definiert
werden. Abschnitt "Userdefined Types" im Fold USER GLO-
BALS.
38 … 46 Definition der Folds
47 … 56 Definition der Parameterliste für den Laserdatensatz
48 … 55 Liste mit den Parametern des Laserdatensatzes
Die Reihenfolge der Parameter in der Liste entspricht der
Reihenfolge, in der sie im Optionsfenster angezeigt werden.
57 … 59 Definition des Inline-Formulars MyCmd
60 … 64 Definition des Inline-Formulars ILF_With_ParamList

$config.dat

Der Strukturdatentyp LSC_TOOL_TYP und die Default-Werte des Struktur-


datentyps müssen in der $config.dat definiert werden.
Abschnitt "Userdefined Types" im Fold USER GLOBALS:

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

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}

Inline-Formular

Abb. 6-22: Inline-Formular MyTech.ILF_With_ParamList

54/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
Pos. Beschreibung
1 Name der Technologie
2 Listenfeld mit den Inline-Formularen der Technologie

• MyCmd
• ILF_With_ParamList
3 Name des Laserdatensatzes
Über den Pfeil wird die Parameterliste mit dem Laserdatensatz
aufgerufen.
4 Checkbox zum Ein-/Ausschalten des Lasers

Parameterliste

Die Parameter des Laserdatensatzes werden im Optionsfenster PLTOOL


eingestellt.

Abb. 6-23: Optionsfenster PLTOOL

A Ansicht A 4 SNSR_PRG
B Ansicht B 5 GAS_PRESSURE
1 LSR_MAX_PWR 6 GAS_PRE_FLOW
2 LSR_MIN_PWR 7 GAS_POST_FLOW
3 LSR_PRG 8 LSR_DLY

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 55/94


Programmierung KUKA.UserTech 4.0

6.10 Statustasten programmieren

Beschreibung

Die 4 Statustasten auf der linken Seite des smartPAD können mit Funktio-
nen belegt werden.

Übersicht

Schritt Beschreibung
1 Statustasten definieren.
(>>> 6.10.1 "<StatKey>: Statustaste definieren" Sei-
te 56)
2 Statustastenleiste definieren.
(>>> 6.10.2 "<StatkeyBar>: Statustastenleiste definieren"
Seite 62)
3 Skripte definieren, die bei Bedienaktionen ausgeführt wer-
den sollen, z. B. Statustaste drücken, loslassen oder ge-
drückt halten.
(>>> 6.11 "Skripte programmieren" Seite 63)

6.10.1 <StatKey>: Statustaste definieren

Beschreibung

Statustaste definieren.
Nebem dem Format und dem Layout einer Statustaste kann definiert wer-
den, unter welchen Bedingungen sie aktiv sein soll, z. B. nur in einer be-
stimmten Betriebsart oder bei gedrücktem Zustimmungsschalter.
Außerdem können Skripte angegeben werden, die beim Drücken, Loslas-
sen oder Gedrückt halten der Statustaste ausgeführt werden sollen oder
wenn die Statustaste über das Hauptmenü aufgerufen wird.

Syntax

<StatKey Name="Name" Enable="Bool" UserMode="IdNumber"


Style="Format" Next="Name">
<Picture Default="String" KeyDown="String"
KeyDownMinus="String" />
<Text Top="String" Center="String" Bottom="String" />
<Needs SafetySwitch="Bool" DrivesOk="Bool"
Prostate0="Activation value" Prostate="Activation value"
ModeOp="Activation value" />
<Scripts OnKeyDown="Script" OnKeyUp="Script"
OnKeyShow="Script" OnKeyDownMinus="Script"
OnKeyUpMinus="Script" OnKeyRepeat="Script"
OnKeyRepeatMinus="Script" />
</StatKey>

Erläuterung der Syntax

<StatKey>

56/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
Element Beschreibung
Name Name der Statustaste
Enable Statustaste aktivieren/deaktivieren

• True: Statustaste ist aktiviert.


• False: Statustaste ist deaktiviert.
Default, wenn Enable nicht definiert ist: True
UserMode Kennzahl der Benutzergruppe, ab der die Statustaste
aktiv ist

• 0: In jeder Benutzergruppe aktiv


• 10: Anwender
• 20: Experte
• 30: Administrator
Default, wenn UserMode nicht definiert ist: 0
Style Format der Statustaste

• #SWITCH
Einfache Statustaste
Einer einfachen Statustaste ist eine Taste zuge-
ordnet. Die Taste übernimmt immer die PLUS-
Funktion.
• #TOGGLE
Doppelte Statustaste
Einer doppelten Statustaste sind 2 Tasten zuge-
ordnet. Die obere Taste übernimmt die PLUS-
Funktion. Die untere Taste übernimmt die MINUS-
Funktion.
Default, wenn Style nicht definiert ist: #SWITCH
Next Name der nächsten Statustaste
<Picture />
Element Beschreibung
Default Pfadangabe für die Grafik, die neben der Statustaste
auf dem Seitenrahmen der smartHMI angezeigt wird
KeyDown Pfadangabe für die Grafik, die neben der Statustaste
auf dem Seitenrahmen der smartHMI angezeigt wird,
wenn die Taste mit der PLUS-Funktion gedrückt wird
KeyDownMinus Pfadangabe für die Grafik, die neben der Statustaste
auf dem Seitenrahmen der smartHMI angezeigt wird,
wenn die Taste mit der MINUS-Funktion gedrückt
wird
(>>> 6.10.1.1 "Bildgrößen" Seite 60)
(>>> 6.10.1.2 "Layout" Seite 60)
<Text />
Element Beschreibung
Top Text, der neben der Statustaste auf dem Seitenrah-
men der smartHMI angezeigt wird (oben)
Center Text, der neben der Statustaste auf dem Seitenrah-
men der smartHMI angezeigt wird (zentriert)

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 57/94


Programmierung KUKA.UserTech 4.0

Element Beschreibung
Bottom Text, der neben der Statustaste auf dem Seitenrah-
men der smartHMI angezeigt wird (unten)
<Needs />
Element Beschreibung
SafetySwitch Statustaste mit Zustimmungsschalter aktivieren

• True: Statustaste ist aktiv, wenn der Zustim-


mungsschalter gedrückt wird.
• False: Statustaste benötigt keinen gedrückten Zu-
stimmungsschalter für Aktivierung.
DrivesOk Statustaste mit Einschalten der Antriebe aktivieren

• True: Statustaste ist aktiv, wenn Antriebe einge-


schaltet sind.
• False: Statustaste benötigt keine eingeschalteten
Antriebe für Aktivierung.
Prostate0 Statustaste ist abhängig vom Betriebszustand der
Submit-Interpreter aktiv.

• Free (2)
• Stop (4)
• Reset (8)
• End (16)
• Active (32)
Wenn die Statustaste in mehreren Betriebszuständen
aktiv sein soll, können die Werte mit dem Verket-
tungszeichen | aneinandergereiht werden, z. B. Stop|
End.
Default, wenn Prostate0 nicht definiert ist: Status-
taste ist aktiv, wenn ein Submit-Interpreter läuft (= Zu-
stand Active).
Hinweis: Ein Betriebszustand kann auch als Dezimal-
wert und mehrere Betriebszustände als addierte Dezi-
malwerte angegeben werden, z. B. Stop|End = 20 (=
4+16).

58/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
Element Beschreibung
Prostate Statustaste ist abhängig vom Betriebszustand des
Roboter-Interpreters aktiv.

• Free (2)
• Stop (4)
• Reset (8)
• End (16)
• Active (32)
Wenn die Statustaste in mehreren Betriebszuständen
aktiv sein soll, können die Werte mit dem Verket-
tungszeichen | aneinandergereiht werden, z. B. Stop|
End.
Default, wenn Prostate nicht definiert ist: Statustas-
te ist aktiv, wenn der Roboter-Interpreter nicht läuft (=
Zustand Free|Stop|Reset|End).
Hinweis: Ein Betriebszustand kann auch als Dezimal-
wert und mehrere Betriebszustände als addierte Dezi-
malwerte angegeben werden, z. B. Stop|End = 20 (=
4+16).
ModeOp Statustaste ist abhängig von der Betriebsart aktiv.

• T1 (1)
• T2 (2)
• Aut (4)
• Ext (8)
Wenn die Statustaste in mehreren Betriebsarten aktiv
sein soll, können die Werte mit dem Verkettungszei-
chen | aneinandergereiht werden, z. B. T1|T2.
Default, wenn ModeOp nicht definiert ist: Statustaste
ist in T1, T2 und AUT aktiv (= Zustand T1|T2|AUT).
Hinweis: Eine Betriebsart kann auch als Dezimalwert
und mehrere Betriebsarten als addierte Dezimalwerte
angegeben werden, z. B. T1|T2 = 3 (= 1+2).
<Scripts />
Element Beschreibung
OnKeyDown Name des Skripts, das ausgeführt wird, wenn die
Taste mit der PLUS-Funktion gedrückt wird
OnKeyUp Name des Skripts, das ausgeführt wird, wenn die
Taste mit der PLUS-Funktion losgelassen wird
OnKeyShow Name des Skripts, das ausgeführt wird, wenn die
Taste über das Hauptmenü aufgerufen wird
OnKeyDown Name des Skripts, das ausgeführt wird, wenn die
Minus Taste mit der MINUS-Funktion gedrückt wird
OnKeyUpMinus Name des Skripts, das ausgeführt wird, wenn die
Taste mit der MINUS-Funktion losgelassen wird
OnKeyRepeat Name des Skripts, das ausgeführt wird, wenn die
Taste mit der PLUS-Funktion länger gedrückt wird
Das Skript wird bis zum Loslassen der Taste wieder-
holt ausgelöst. Die Zeitabstände werden dabei immer
geringer.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 59/94


Programmierung KUKA.UserTech 4.0

Element Beschreibung
OnKeyRepeat Name des Skripts, das ausgeführt wird, wenn die
Minus Taste mit der MINUS-Funktion länger gedrückt wird
Das Skript wird bis zum Loslassen der Taste wieder-
holt ausgelöst. Die Zeitabstände werden dabei immer
geringer.

6.10.1.1 Bildgrößen

Für die Grafiken können Icons (*.ICO), Bitmaps (*.BMP) oder portable
Netzwerkgrafiken (*.PNG) verwendet werden. Empfohlen wird die Verwen-
dung von Icons.
Folgende Bildgrößen werden benötigt:

• 32 x 32 Pixel für einfache Statustaste (#SWITCH)


• 32 x 96 Pixel für doppelte Statustaste (#TOGGLE)

6.10.1.2 Layout

Um die Grafiken neben den Statustasten auf der smartHMI optimal anzu-
zeigen, sind die hier beschriebenen Vorgaben zu beachten.

Einfache Statustaste (#SWITCH)

Die Grafik muss in einem 32 x 32 Pixel großen Rahmen zentriert werden.

Abb. 6-24: Einfache Statustaste - Grafik zentrieren

Abb. 6-25: Einfache Statustaste - Layout Beispiel

1 Grafik mit weißem Hintergrund


2 Grafik mit transparentem oder gegrautem Hintergrund

60/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Doppelte Statustaste (#TOGGLE)

Programmierung
Eine Grafik von 32 x 96 Pixel wird in 3 gleich hohe Blöcke à 32 x 32 Pi-
xel zerlegt. Auf der smartHMI werden diese Blöcke getrennt voneinander
angezeigt. Die Grafik, die in einem Block zur Anzeige kommen soll, muss
jeweils zentriert werden.

Abb. 6-26: Doppelte Statustaste - Grafik zentrieren

1 Grafik oben 3 Grafik unten


2 Grafik mittig (optional)

Abb. 6-27: Doppelte Statustaste - Layout Beispiel

1 Grafik mit weißem Hintergrund


2 Grafik mit transparentem oder gegrautem Hintergrund

Hintergrundfarbe

Wenn die verwendete Grafik eine Hintergrundfarbe besitzt, die von der
Farbe der smartHMI abweicht, ist diese auf der smartHMI sichtbar.
Soll nur das verwendete Symbol auf der smartHMI zu sehen sein und
nicht die umgebende Fläche, gibt es je nach Dateityp folgende Möglichkei-
ten:
• Grafik vom Typ *.ICO oder *.PNG:
Bereiche, die das Symbol umgeben, als transparente Bereiche definie-
ren.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 61/94


Programmierung KUKA.UserTech 4.0

• Grafik vom Typ *.BMP:


Fläche, die das Symbol umgibt, in der Farbe der smartHMI grau ein-
färben:
‒ Grau in RGB: R:160, G:165, B:170

6.10.2 <StatkeyBar>: Statustastenleiste definieren

Beschreibung

Statustastenleiste definieren.
Eine Statustastenleiste kann bis zu 4 Statustasten enthalten.

Syntax

<StatkeyBar Name="Name">
<SK Name="Name1" Pos="Number" />
...
<SK Name="Name4" Pos="Number" />
</StatkeyBar>

Erläuterung der Syntax

Element Beschreibung
Name Name der Statustastenleiste
Hinweis: Der Name der Statustastenleiste muss über
alle Technologien hinweg eindeutig sein.
Name1 Namen der Statustasten 1 … 4
… (>>> 6.10.1 "<StatKey>: Statustaste definieren" Sei-
te 56)
Name4
Wenn Pos für keine der Statustasten definiert ist, ent-
spricht die Reihenfolge, in der die Statustasten hier
angegeben werden, der Anzeigefolge (von oben nach
unten).
Pos Position der Statustaste

• 1 … 4
Ist z. B. für die als Erste angegebene Statustaste
Pos=3 definiert, wird sie der 3. Statustaste von oben
zugeordnet. Angenommen für die nächste Statustaste
ist Pos nicht definiert, wird diese auf den nächsten
freien Platz gelegt beginnend mit der ersten Status-
taste von oben.

6.10.3 <Set>: Statustaste oder Statustastenleiste setzen

Beschreibung

Statustaste oder Statustastenleiste setzen.


Eine Statustaste oder Statustastenleiste kann z. B. gesetzt werden, um
nachträglich die Grafik oder den Text zu ändern, der neben der Statustas-
te auf dem Seitenrahmen der smartHMI angezeigt wird.

62/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Der Befehl kann innerhalb und außerhalb von Skripten verwendet werden.

Programmierung
Innerhalb von Skripten sind Platzhalter erlaubt, die ihre Wertzuweisung vor
der Ausführung des Skripts erhalten haben, z. B. %INLINEFORM.

Syntax

Statustaste setzen:
<Set Name="Name" Enable="Bool" UserMode="IdNumber"
Style="Format" Next="Name">
<Picture Default="String" KeyDown="String"
KeyDownMinus="String" />
<Text Top="String" Center="String" Bottom="String" />
<Needs SafetySwitch="Bool" DrivesOk="Bool"
Prostate0="Activation value" Prostate="Activation value"
ModeOp="Activation value" />
<Scripts OnKeyDown="Script" OnKeyUp="Script"
OnKeyShow="Script" OnKeyDownMinus="Script"
OnKeyUpMinus="Script" OnKeyRepeat="Script"
OnKeyRepeatMinus="Script" />
</Set>
Statustastenleiste setzen:
<Set Name="Name">
<SK Name="Name1" />
...
<SK Name="Name4" />
</Set>

Erläuterung der Syntax

Element Beschreibung
Name Name der Statustaste oder Statustastenleiste, die ge-
setzt werden soll
Nach dem Setzen des Namens können alle Attribute
der Statustaste oder Statustastenleiste neu definiert
werden.
(>>> 6.10.1 "<StatKey>: Statustaste definieren" Sei-
te 56)
(>>> 6.10.2 "<StatkeyBar>: Statustastenleiste definie-
ren" Seite 62)

6.11 Skripte programmieren

6.11.1 <Script>: Skript definieren

Skripte dürfen nicht geschachtelt werden.

Beschreibung

Skript definieren.
Für Inline-Formulare und Statustasten können Skripte definiert werden.
Mithilfe dieser Skripte können folgende Aktionen ausgeführt werden:
• KRL-Variablen anlegen

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 63/94


Programmierung KUKA.UserTech 4.0

• KRL-Variablen lesen und schreiben


• Zustand von Ausgängen lesen und setzen
• Zustand von Eingängen lesen und setzen
• Meldungen ausgeben
• Anwenderdialoge generieren

Syntax

<Script Name="Name">
Actions
</Script>

Erläuterung der Syntax

Element Beschreibung
Name Name des Skripts, das aufgerufen werden soll
Actions Aktionen, die mit dem Skript ausgeführt werden sol-
len
(>>> 6.11.2 "<SetVar…/>: Variable setzen" Seite 64)
(>>> 6.11.3 "<ShowVar…/>: Variable auslesen" Sei-
te 65)
(>>> 6.11.4 "<Redecl…/>: Variable anlegen oder
überschreiben" Seite 66)
(>>> 6.11.5 "<Do Script…/>: Skript ausführen" Sei-
te 67)
(>>> 6.11.6 "<Message…/>: Meldung definieren" Sei-
te 67)
(>>> 6.11.7 "<Switch Dialog ="FALSE"…>: Variable
abfragen und Skript ausführen" Seite 68)
(>>> 6.11.8 "<Switch Dialog ="TRUE"...>: Dialog an-
zeigen und Skript ausführen" Seite 71)

6.11.2 <SetVar…/>: Variable setzen

Beschreibung

Variable setzen.
Innerhalb eines Skripts kann der Wert einer Variablen geändert werden.

Syntax

<SetVar Fullpath="String" Value="String" />

64/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Erläuterung der Syntax

Programmierung
Element Beschreibung
Fullpath Name der Variablen, die gesetzt werden soll
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird als Variablen-
name mit Pfadangabe interpretiert.
Value Wert der Variablen, die gesetzt werden soll
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird als Zielwert
interpretiert.

Beispiel

<Application Name="MyTech">
<Script Name="Example">
<SetVar Fullpath="$OUT[20]" Value="True" />
</Script>
</Application>

Nach Ausführen des Skripts gilt:


• $OUT[20]==True

6.11.3 <ShowVar…/>: Variable auslesen

Beschreibung

Variable auslesen.
Innerhalb eines Skripts kann der Wert einer Variablen ausgelesen werden.

Syntax

<ShowVar Fullpath="String" Param="Name" />

Erläuterung der Syntax

Element Beschreibung
Fullpath Name der Variablen, die ausgelesen werden soll
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird als Variablen-
name mit Pfadangabe interpretiert.
Param Name des Parameters, in den der ausgelesene Wert
geschrieben werden soll

Beispiel

<Application Name="MyTech">
<Param Name="MyParam">
<Value Type="FREE" Default=""/>
</Param>
<Script Name="Example">
<ShowVar Fullpath="$MODE_OP" Param="MyParam" />
<Message Text="$MODE_OP=%MyParam/" />
</Script>
</Application>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 65/94


KUKA.UserTech 4.0

Nach Ausführen des Skripts bei einem angewählten Programm in der Be-
Programmierung

triebsart T1 wird im Meldungsfenster folgende Meldung ausgegeben:


• $MODE_OP=#T1

6.11.4 <Redecl…/>: Variable anlegen oder überschreiben

Beschreibung

Variable anlegen oder überschreiben.


Innerhalb eines Skripts kann eine lokale oder globale Variable neu ange-
legt oder überschrieben werden.

Syntax

<Redecl Global="Bool" Path="String" Declaration="String" />

Erläuterung der Syntax

Element Beschreibung
Global Geltungsbereich der Variablen

• True: Variable ist global gültig.


Globale Variablen werden in die Datei Glo-
bal_Points.Dat geschrieben.
• False: Variable ist nur lokal gültig.
Default, wenn Global nicht definiert ist: False
Path Pfadname der Variablen
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird als Variablen-
name mit Pfadangabe interpretiert.
Declaration Deklaration der Variablen
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird als Zielwert
interpretiert.

Beispiel

In einem Skript wird eine Achsposition deklariert.

<Script Name="Example">
<Redecl Path="%MODULE/" Declaration=
"DECL AXIS AnyPoint = {A1 09, A2 -90, A3 90, A4 0, A5 0,
A6 0}" />
</Script>

Wird das Skript in einem Programm ausgeführt, wird die Deklaraton in die
Datenliste des Programms geschrieben.

DEFDAT TEST
EXTERNAL DECLARATIONS
DECL AXIS AnyPoint={A1 9.00000, A2 -90.00000, A3 90.00000,
A4 0.0, A5 0.0, A6 0.0}
ENDDAT

66/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Programmierung
6.11.5 <Do Script…/>: Skript ausführen

Beschreibung

Skript ausführen.

Syntax

<Do Script="Name" />

Erläuterung der Syntax

Element Beschreibung
Script Name des Skripts, das ausgeführt werden soll
(>>> 6.11.1 "<Script>: Skript definieren" Seite 63)

6.11.5.1 Vordefinierte Skripte

Name Beschreibung
ACCEPTINLINEFORM Nur verwendbar bei OnAccept-Skripten
Das Inline-Formular wird geschlossen und die geänderten Pa-
rameter werden übernommen.
(>>> 6.8.6 "<InlineForm>: Inline-Formular definieren" Seite 39)
CANCELINLINEFORM Nur verwendbar bei OnAccept-Skripten
Das Inline-Formular wird geschlossen und die geänderten Pa-
rameter werden nicht übernommen.
(>>> 6.8.6 "<InlineForm>: Inline-Formular definieren" Seite 39)
END Das laufende Skript wird abgebrochen.
NOTHING Platzhalter für Skript

6.11.6 <Message…/>: Meldung definieren

Beschreibung

Meldung definieren.
Innerhalb eines Skripts kann eine Meldung definiert werden, die im Mel-
dungsfenster der KUKA smartHMI angezeigt wird.

Syntax

<Message Text="String" />

Erläuterung der Syntax

Element Beschreibung
Text Meldung, die angezeigt werden soll
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird in der
Sprachdatei mit den zu übersetzenden Texten als
Schlüssel verwendet.
(>>> 6.7 "Sprachdateien" Seite 25)

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 67/94


KUKA.UserTech 4.0

Beispiel
Programmierung

<Application Name="MyTech">
<Param Name="MyParam">
<Value Type="FREE" Default=""/>
</Param>
<Script Name="Example">
<ShowVar Fullpath="$MODE_OP" Param="MyParam" />
<Message Text="$MODE_OP=%MyParam/" />
</Script>
</Application>

Nach Ausführen des Skripts bei einem angewählten Programm in der Be-
triebsart T1 wird im Meldungsfenster folgende Meldung ausgegeben:
• $MODE_OP=#T1

6.11.7 <Switch Dialog ="FALSE"…>: Variable abfragen und Skript ausführen

Beschreibung

Variable abfragen und Skript ausführen.


Ruft eines von mehreren möglichen Skripten auf, abhängig von der Abfra-
ge einer Variablen. Die Case-Zeile, deren Ergebnis mit der Variablen über-
einstimmt, wird ausgewählt.
Wenn das zugehörige Skript ausgeführt ist, wird das Programm fortge-
setzt.
Wenn kein Ergebnis mit der Variablen übereinstimmt, wird die Else-Zeile
ausgewählt. Ist diese nicht vorhanden oder kein Skript definiert, wird kein
Skript ausgeführt und das Programm fortgesetzt.
<Switch Dialog>-Anweisungen dürfen nicht verschachtelt werden.

Syntax

<Switch Dialog="FALSE" Condition="String">


<Case Value="String1" Do="Script1" />
...
<Case Value="StringN" Do="ScriptN" />
<Else Do="ScriptElse" />
</Switch>

68/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Erläuterung der Syntax

Programmierung
Element Beschreibung
Condition Name der Variablen, die abgefragt wird
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird als Variablen-
name mit Pfadangabe interpretiert.
Bei einer Switch-Anweisung in einem OnOpen-Skript
können folgende Schlüsselwörter verwendet werden:

• IsChange
Abhängig davon, wie das Inline-Formular geöffnet
wird, können verschiedene Skripte ausgeführt
werden:
‒ Case Value="True":
Das hier angegebene Skript wird ausgeführt,
wenn das Inline-Formular durch Drücken auf
Ändern geöffnet wurde.
‒ Case Value="False":
Das hier angegebene Skript wird ausgeführt,
wenn das Inline-Formular über das Menü Be-
fehle geöffnet wurde.
• DoAlways
Bei Case Value="True" wird das OnOpen-Skript
auch ausgeführt, wenn zwischen 2 UserTech-Inli-
ne-Formularen umgeschaltet wird.
String1 Ergebnis der Abfrage (Fall 1 … N)
… Alle Parameterreferenzen eines Strings werden im
Programm durch die im Inline-Formular ausgewählten
StringN
Werte ersetzt.
Script1 Name des Skripts, das ausgeführt werden soll, wenn
Fall 1 … N eintritt

ScriptN
ScriptElse Name des Skripts, das ausgeführt werden soll, wenn
keiner der Fälle 1 … N eintritt

Beispiele

(>>> 6.11.7.1 "OnOpen-Skript mit IsChange-Abfrage" Seite 69)


(>>> 6.11.7.2 "OnOpen-Skript mit DoAlways-Abfrage" Seite 70)

6.11.7.1 OnOpen-Skript mit IsChange-Abfrage

Beschreibung

In einem OnOpen-Skript kann mithilfe einer Switch-Anweisung mit Is-


Change abgefragt werden, ob das Inline-Formular über das Menü Befehle
oder durch Drücken auf Ändern geöffnet wurde. Je nach Ergebnis der
Abfrage kann das eine oder andere Skript aufgerufen werden.

KFDx-Datei

1 <Application Name="TestScript">
2 <Script Name="ChangeTest">

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 69/94


KUKA.UserTech 4.0

3 <Message Text="Fired only when ILF is changed!" />


Programmierung

4 </Script>
5 <Script Name="CreateTest">
6 <Message Text="Fired only when ILF is created!" />
7 </Script>
8 <Script Name="OpenTest">
9 <Switch Dialog="FALSE" Condition="IsChange">
10 <Case Value="True" Do="ChangeTest" />
11 <Case Value="False" Do="CreateTest" />
12 </Script>
13 <Script Name="CloseTest">
14 <Message Text="Fired when ILF is closed!" />
15 <Do Script="AcceptInlineForm" />
16 </Script>
17 <Fold Name="TestFold">
18 <Line>/;only for testing OnOpen event</Line>
19 </Fold>
20 <InlineForm Name="TestIlf" OnOpen="OpenTest"
OnAccept="CloseTest">
21 <FLD Name="TestFold" />
22 </InlineForm>
23 </Application>

Zeile Beschreibung
2 … 7 Definition der Skripte für die IsChange-Abfrage, die abhän-
gig vom Ergebnis der Abfrage ausgeführt werden sollen
8 … 12 Definition des OnOpen-Skripts mit der IsChange-Abfrage,
das beim Öffnen des Inline-Formulars ausgeführt werden
soll

• Case Value="True":
Das hier angegebene Skript wird ausgeführt, wenn das
Inline-Formular durch Drücken auf Ändern geöffnet wur-
de.
• Case Value="False":
Das hier angegebene Skript wird ausgeführt, wenn das
Inline-Formular über das Menü Befehle geöffnet wurde.
13 … 16 Definition des OnAccept-Skripts, das beim Schließen des
Inline-Formulars ausgeführt werden soll
20 … 22 Definition des Inline-Formulars

6.11.7.2 OnOpen-Skript mit DoAlways-Abfrage

Beschreibung

Standardmäßig wird ein OnOpen-Skript nur ausgeführt, wenn das Inline-


Formular durch Drücken auf Ändern oder über das Menü Befehle geöff-
net wird.
In einem OnOpen-Skript kann mithilfe einer Switch-Anweisung mit DoAl-
ways ein Skript aufgerufen werden, das auch ausgeführt wird, wenn zwi-
schen 2 UserTech-Inline-Formularen umgeschaltet wird.

KFDx-Datei

1 <Application Name="TestScript">
2 <Script Name="Script1">
3 <Message Text="Fired only once!" />

70/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

4 </Script>

Programmierung
5 <Script Name="AllOverScript">
6 <Message Text="Fired always!" />
7 </Script>
8 <Script Name="Script2">
9 <Switch Dialog="FALSE" Condition="DoAlways">
10 <Case Value="True" Do="AllOverScript" />
11 </Script>
12 <Fold Name="TestFold">
13 <Line>/;only for testing OnOpen event</Line>
14 </Fold>
15 <InlineForm Name="TestIlf1" OnOpen="TestScript1">
16 <FLD Name="TestFold" />
17 </InlineForm>
18 <InlineForm Name="TestIlf2" OnOpen="TestScript2">
19 <FLD Name="TestFold" />
20 </InlineForm>
21 </Application>

Zeile Beschreibung
2 … 4 Definition des OnOpen-Skripts, das ausgeführt werden soll,
wenn ein Inline-Formular durch Drücken auf Ändern oder
über das Menü Befehle geöffnet wird
5 … 7 Definition des Skripts für die DoAlways-Abfrage
8 … 12 Definition des OnOpen-Skripts mit der DoAlways-Abfrage,
das bei jedem Öffnen eines Inline-Formulars ausgeführt
werden soll.
15 … 20 Definition der Inline-Formulare

6.11.8 <Switch Dialog ="TRUE"...>: Dialog anzeigen und Skript ausführen

Beschreibung

Dialog anzeigen und Skript ausführen.


Ermöglicht einen Dialog zwischen Programm und Benutzer. Der Dialog
wird in einem eigenen Fenster angezeigt. Der Benutzer antwortet über
Schaltflächen, die definierte Skripte aufrufen. Die Antworten und zugehöri-
gen Skripte werden in den Case-Zeilen definiert.
Wenn das ausgewählte Skript ausgeführt ist, wird das Programm fortge-
setzt.
<Switch Dialog>-Anweisungen dürfen nicht verschachtelt werden.

Syntax

<Switch Dialog="TRUE" Condition="String">


<Case Value="String1" Do="Script1" />
...
<Case Value="StringN" Do="Script7" />
</Switch>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 71/94


KUKA.UserTech 4.0

Erläuterung der Syntax


Programmierung

Element Beschreibung
Condition Meldungstext, der im Dialog angezeigt wird
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird in der
Sprachdatei mit den zu übersetzenden Texten als
Schlüssel verwendet.
(>>> 6.7 "Sprachdateien" Seite 25)
String1 Antworten 1 … 7, die auf den Schaltflächen im
Dialog angezeigt werden

Wenn kein String definiert ist, wird keine Schaltfläche
String7
angezeigt.
Die Parameterreferenzen im String werden durch die
aktuellen Werte ersetzt. Der String wird in der
Sprachdatei mit den zu übersetzenden Texten als
Schlüssel verwendet.
(>>> 6.7 "Sprachdateien" Seite 25)
Script1 Namen der Skripte 1 … 7, die je nach Antwort aus-
geführt werden

Script7

72/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

7 Konfiguration

Konfiguration
7.1 Inline-Formulare und Statustasten in smartHMI einbinden

Beschreibung

Die benutzerdefinierten Inline-Formulare und Statustasten einer Technolo-


gie müssen jeweils in einer vorgegebenen Konfigurationsdatei bekanntge-
macht werden, damit sie über die Menüs auf der smartHMI aufgerufen
werden können.
• Inline-Formulare werden im Menü Befehle aufgerufen:
CommandMenu in der Konfigurationsdatei
• Statustasten werden im Hauptmenü aufgerufen:
‒ Konfiguration > Statustasten
MainMenu in der Konfigurationsdatei

Vorlagen

Es stehen Programmier- und Konfigurationsbeispiele zur Verfügung, die


als Vorlage verwendet werden können.
Programmierbeispiele:
Verzeichnis C:\KRC\TP\UserTech\TEMPLATE
Dateien MyTech.kfdx
Programmierbeispiel für Inline-Formulare

• Technologie: MyTech
• Inline-Formulare: MyCmd und Ilf_With_ParamList
(>>> 6.9.4 "Technologie MyTech" Seite 52)
TestStat.kfdx
Programmierbeispiel für Statustasten

• Technologie: StatkeyTest
• Statustastenleiste: Test
Konfigurationsdateien:
Verzeichnis C:\KRC\TP\UserTech\SmartHMI
Dateien SmartHMI.exe.UserTech.InlineForms.config
Mit Konfigurationsbeispiel für Inline-Formulare auf der
smartHMI
(>>> 7.1.1 "Menüstruktur für Inline-Formulare" Sei-
te 74)
SmartHMI.exe.UserTech.KeyBar.config
Mit Konfigurationsbeispiel für Statustasten auf der
smartHMI
(>>> 7.1.2 "Menüstruktur für Statustastenleisten" Sei-
te 75)

Beispiele

• (>>> 7.3.1 "Technologie Twinkle" Seite 80)


• (>>> 7.3.2 "Technologie Glue" Seite 83)

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 73/94


Konfiguration KUKA.UserTech 4.0

• (>>> 7.3.3 "Technologie DispSet" Seite 84)

7.1.1 Menüstruktur für Inline-Formulare

Die Menüstruktur für den Aufruf von Inline-Formularen ist vorgegeben. Die
variablen Werte im Beispiel sind hervorgehoben.

1 <KukaRoboter.SmartHMI.Menu type="KukaRoboter.SmartHMI.…">
2 <!-- Menue tree of UserTech InlineForms -->
3 <MenuRoot SystemName="CommandMenu">
4 <MenuFolder DisplayName="UserTechILFs#UserTech" MergeOrder="902">
5 <MenuItem DisplayName="UserTechILFs#MyCmd" MergeOrder="110">
6 <CommandCall Target="LegacyLoader.InvokeModuleProc">
7 <Argument Name="PlugInName">INLINEFORM</Argument>
8 <Argument Name="ProcID">2011</Argument>
9 <Argument Name="ParamList">Kuka.UserTech;MYTECH;MyCmd</Argument>
10 </CommandCall>
11 </MenuItem>
12 <MenuItem DisplayName="UserTechILFs#Ilf_With_ParamList" MergeOrder="120">
13 ...
14 </MenuItem>
15 </MenuFolder>
16 </MenuRoot>
17 </KukaRoboter.SmartHMI.Menu>

Zeile Beschreibung
3, 16 Das Element MenuRoot legt das Menü fest, in dem das In-
line-Formular aufgerufen wird.
CommandMenu = Menü Befehle
4, 15 Das Element MenuFolder fügt einen Menüpunkt in das
Menü Befehle ein, hier den Menüpunkt UserTech.
Attribute:

• DisplayName
Name des Menüpunkts im Menü
Der Name kann als Schlüssel in der Sprachdatei User-
TechILFs.kxr verwendet werden.
• MergeOrder
Position des Menüpunkts im Menü
5, 11 Das Element MenuItem fügt einen Menüpunkt in das Menü
Befehle > UserTech ein, hier den Menüpunkt MyCmd.
Attribute:

• DisplayName
Name des Menüpunkts im Menü.
Der Name kann als Schlüssel in der Sprachdatei User-
TechILFs.kxr verwendet werden.
• MergeOrder
Position des Menüpunkts im Menü
Mit MenuItem eingefügte Menüpunkte müssen mit einer
Funktion belegt sein.
6, 10 Das Element CommandCall ruft die Funktion des Menü-
punkts auf, hier das Inline-Formular MyCmd.

74/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Konfiguration
Zeile Beschreibung
7 … 9 Der Funktionsaufruf für ein Inline-Formular enthält folgende
Argument-Elemente:

• PlugInName
Name des Funktionsmoduls:
‒ INLINEFORM
• ProcID
Nummer des Funktionsmoduls:
‒ 2011
• ParamList
Parameter des Funktionsmoduls:
‒ Kuka.UserTech
‒ MYTECH: Der in der KFDx-Datei definierte Name
der Technologie, in der das Inline-Formular definiert
ist
‒ MyCmd: Der in der KFDx-Datei definierte Name des
Inline-Formulars
12, 14 Das MenuItem-Element fügt einen weiteren Menüpunkt in
das Menü Befehle > UserTech ein, hier den Menüpunkt
Ilf_With_ParamList.
Attribute:

• DisplayName
Name des Menüpunkts im Menü
Der Name kann als Schlüssel in der Sprachdatei User-
TechILFs.kxr verwendet werden.
• MergeOrder
Position des Menüpunkts im Menü

Wenn ein Untermenü in ein bereits vorhandenes Menü eingebunden


wird, muss der Display-Name genau mit dem vorhandenen Display-Na-
men übereinstimmen. Stimmen die Namen nicht überein, wird ein neuer
Menüpunkt erzeugt.

7.1.2 Menüstruktur für Statustastenleisten

Die Menüstruktur für den Aufruf einer Statustastenleiste ist vorgegeben.


Die variablen Werte im Beispiel sind hervorgehoben.

1 <KukaRoboter.SmartHMI.Menu type="KukaRoboter.SmartHMI.…">
2 <MenuRoot SystemName="MainMenu">
3 <MenuFolder SystemName="Config">
4 <MenuFolder SystemName="ConfigStatKeys">
5 <MenuFolder DisplayName="UserTech">
6 <MenuItem DisplayName="Test" MergeOrder="100">
7 <CommandCall Target="UserkeyBarManager.OpenUserkeyBar"
Right="OperationTP">
8 <Argument
Name="UserkeyBarRepository">KukaRoboter.UserTech.StatKeys.ViewModels.Userkey
BarRepository</Argument>
9 <Argument Name="UserkeyBarID">Test</Argument>
10 </CommandCall>
11 </MenuItem>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 75/94


KUKA.UserTech 4.0

12 </MenuFolder>
Konfiguration

13 </MenuFolder>
14 </MenuFolder>
15 </MenuRoot>
16 </KukaRoboter.SmartHMI.Menu>

Zeile Beschreibung
2, 15 Das Element MenuRoot legt das Menü fest, in dem die
Statustastenleiste aufgerufen wird.
MainMenu = Hauptmenü
3, 14 Die beiden MenuFolder-Elemente bilden das Menü im
4, 13 Hauptmenü ab, in dem die Statustastenleiste aufgerufen
wird.

• Konfiguration > Statustasten


5, 12 Dieses MenuFolder-Element fügt einen Menüpunkt in das
Menü Konfiguration > Statustasten ein, hier den Menü-
punkt UserTech.
Attribute:

• DisplayName
Name des Menüpunkts im Menü
6, 11 Das Element MenuItem fügt einen Menüpunkt in das Menü
Konfiguration > Statustasten > UserTech ein, hier den
Menüpunkt Test.
Attribute:

• DisplayName
Name des Menüpunkts im Menü.
• MergeOrder
Position des Menüpunkts im Menü
Mit MenuItem eingefügte Menüpunkte müssen mit einer
Funktion belegt sein
7, 10 Das Element CommandCall ruft die Funktion des Menü-
punkts auf, hier die Statustastenleiste Test.
9 Mit UserkeyBarID wird der in der KFDx-Datei definierte
Name der Statustastenleiste angegeben, die aufgerufen
werden soll, hier die Statustastenleiste Test.

Wenn ein Untermenü in ein bereits vorhandenes Menü eingebunden


wird, muss der Display-Name genau mit dem vorhandenen Display-Na-
men übereinstimmen. Stimmen die Namen nicht überein, wird ein neuer
Menüpunkt erzeugt.

7.2 Inline-Formulare in WorkVisual einbinden

Beschreibung

Die benutzerdefinierten Inline-Formulare einer Technologie können im


KRL-Editor von WorkVisual aufgerufen und in das geöffnete Programm
eingefügt werden. Dazu müssen die Inline-Formulare in einer vorgegebe-
nen Konfigurationsdatei bekanntgemacht werden.

76/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Vorlagen

Konfiguration
Es stehen ein Programmier- und Konfigurationsbeispiel zur Verfügung, die
als Vorlage verwendet werden können.
Programmierbeispiel:
Verzeichnis C:\ProgramData\KUKA Roboter GmbH\WorkVisual
\6.0\OptionPackages\UserTech\WorkVisual
Datei MyTech.kfdx
Programmierbeispiel für Inline-Formulare

• Technologie: MyTech
• Inline-Formulare: MyCmd und Ilf_With_ParamList
(>>> 6.9.4 "Technologie MyTech" Seite 52)
Konfigurationsdatei:
Verzeichnis C:\ProgramData\KUKA Roboter GmbH\WorkVisual
\6.0\OptionPackages\UserTech\WorkVisual
Datei WorkVisual.exe.UserTech.InlineForms.config
Mit Konfigurationsbeispiel für Inline-Formulare in
WorkVisual
(>>> "Konfigurationsdatei" Seite 78)

Voraussetzung

Die benutzerdefinierten Inline-Formulare können nur unter folgender Vo-


raussetzung in WorkVisual aufgerufen werden:
• KUKA.UserTech ist in WorkVisual installiert.
• KUKA.UserTech ist als Option im Projekt eingefügt.

Vorgehensweise

Inline-Formular in KRL-Editor einfügen:


1. Cursor in die Zeile setzen, in der das Inline-Formular eingefügt werden
soll. Ein Button wird eingeblendet.

Abb. 7-1: Inline-Formular einfügen

1 Button zum Einfügen von Inline-Formularen

2. Auf den Button klicken oder STRG + Eingabe-Taste drücken. Das


Kontextmenü mit den verfügbaren Inline-Formularen wird angezeigt.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 77/94


Konfiguration KUKA.UserTech 4.0

Abb. 7-2: Kontextmenü im KRL-Editor

3. Das gewünschte Inline-Formular wählen, z. B. das Inline-Formular


UserTech > MyCmd.

Abb. 7-3: Inline-Formular im KRL-Editor

Konfigurationsdatei

Um Inline-Formulare in WorkVisual verfügbar zu machen, muss der Ab-


schnitt <KukaRoboter.InlineFormCommands…> in der Konfigurationsdatei
bearbeitet und in dem vorgegebenen Verzeichnis gespeichert werden.
Im Folgenden werden die zu definierenden Attribute anhand des mitgelie-
ferten Konfigurationsbeispiels beschrieben.

1 <?xml version="1.0" encoding="utf-8"?>


2 <configuration>
3 <configSections>
4 ...
5 </configSections>
6
7 <KukaRoboter.InlineFormCommands
type="KukaRoboter.Technology.InlineFormCommand, KukaRoboter.Technology">
8 <InlineFormCommand DisplayName="UserTechyILFs#UserTech">
9 <InlineFormCommand Provider="Kuka.UserTech" DisplayName="MenuBar#MyCmd"
Command="MYTECH" Variant="MyCmd"/>
10 <InlineFormCommand Provider="Kuka.UserTech"
DisplayName="MenuBar#Ilf_With_ParamList" Command="MYTECH"
Variant="ILF_With_ParamList"/>
11 </InlineFormCommand>
12 </KukaRoboter.InlineFormCommands>
13 ...
14 </configuration>

78/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Konfiguration
Zeile Beschreibung
8 Neuer Menüpunkt im Kontextmenü, hier UserTech
9 Neuer Untermenüpunkt im Kontextmenü, hier MyCmd
Attribute:

• Provider=Kuka.UserTech
Name des Optionspakets, das das Inline-Formular be-
reitstellt; ist immer Kuka.UserTech
• DisplayName="Menubar#MyCmd"
Name des Untermenüpunkts im Kontextmenü
• Command="MYTECH"
Der in der KFDx-Datei definierte Name der Technologie,
in der das Inline-Formular definiert ist
• Variant="MyCmd"
Der in der KFDx-Datei definierte Name des Inline-For-
mulars
10 Neuer Untermenüpunkt im Kontextmenü, hier Ilf_With_Pa-
ramList
Attribute:

• Provider=Kuka.UserTech
Name des Optionspakets, das das Inline-Formular be-
reitstellt; ist immer Kuka.UserTech
• DisplayName="Menubar#Ilf_With_ParamList"
Name des Untermenüpunkts im Kontextmenü
• Command="MYTECH"
Der in der KFDx-Datei definierte Name der Technologie,
in der das Inline-Formular definiert ist
• Variant="Ilf_With_ParamList"
Der in der KFDx-Datei definierte Name des Inline-For-
mulars

Gruppieren

Durch eine Verschachtelung von <InlineFormCommand>-Zeilen können


UserTech-Befehle im Kontextmenü gruppiert werden. Hier ein Beispiel:

1 <KukaRoboter.InlineFormCommands
type="KukaRoboter.Technology.InlineFormCommand, KukaRoboter.Technology">
2 <InlineFormCommand DisplayName="UserTechILFs#UserTech"
3 <InlineFormCommand Provider="Kuka.UserTech" DisplayName="MenuBar#MyCmd"
Command="MYTECH" Variant="MyCmd"/>
4 <InlineFormCommand Provider="Kuka.UserTech"
DisplayName="MenuBar#Ilf_With_ParamList" Command="MYTECH"
Variant="ILF_With_ParamList"/>
5
6 <InlineFormCommand DisplayName="testSubMenue">
7 <InlineFormCommand Provider="Kuka.UserTech" DisplayName="SubMyCmd"
Command="MYTECH" Variant="MyCmd"/>
8 <InlineFormCommand Provider="Kuka.UserTech"
DisplayName="SubMyCmdwithParamList" Command="MYTECH"
Variant="ILF_With_ParamList"/>
9 </InlineFormCommand>
10
11 </InlineFormCommand>
12 </KukaRoboter.InlineFormCommands>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 79/94


KUKA.UserTech 4.0

Das UserTech-Menü wurde um das Untermenü testSubMenue erweitert.


Konfiguration

Abb. 7-4: Erweitertes Kontextmenü im KRL-Editor

Einschränkungen

Bei Inline-Formularen, die auch Skripte benützen, muss beachtet werden,


dass Laufzeitvariablen in WorkVisual nicht oder nur mit "falschen" Dummy-
Werten verfügbar sind.
Wenn z. B. im Inline-Formular die aktuelle Position $POS_ACT mithilfe ei-
nes Skripts mit einer anderen Position verglichen werden soll, wird dies in
WorkVisual immer falsche Werte ergeben. $POS_ACT ist in WorkVisual
immer gleich, d. h. eine Position, die ein Roboter sicher nie erreichen
kann. So wird sichergestellt, dass Punkte mit dieser Position mit dem
smartPAD geteacht werden.

7.3 Beispiele für das Einbinden von Technologien

7.3.1 Technologie Twinkle

KFDx-Datei

1 <Application Name="Twinkle" SOT="True" SOC="True">


2 <Fold Name="One">
3 <Line>/Twinkle once</Line>
4 <Line>$OUT[5]=True</Line>
5 <Line>WAIT SEC 1.5</Line>
6 <Line>$OUT[5]=FALSE</Line>
7 <Line>WAIT SEC 1.5</Line>
8 </Fold>
9 <Fold Name="Two">
10 <Line>/Twinkle twice</Line>
11 <Line>$OUT[5]=True</Line>
12 <Line>WAIT SEC 1.5</Line>
13 <Line>$OUT[5]=FALSE</Line>
14 <Line>WAIT SEC 1.5</Line>
15 <Line>$OUT[5]=True</Line>
16 <Line>WAIT SEC 1.5</Line>
17 <Line>$OUT[5]=FALSE</Line>
18 <Line>WAIT SEC 1.5</Line>
19 </Fold>
20 <InlineForm Name="once">
21 <FLD Name="one" />

80/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

22 </InlineForm>

Konfiguration
23 <InlineForm Name="twice">
24 <FLD Name="two" />
25 </InlineForm>
26 <InlineForm Name="triple">
27 <FLD Name="one" />
28 <FLD Name="two" />
29 </InlineForm>
30 </Application>

Zeile Beschreibung
1 … 30 Definition der Technologie Twinkle
2 … 8 Definition des Folds One
9 … 19 Definition des Folds Two
Trigger zum Ausschalten des Lasers
20 … 22 Definition des Inline-Formulars Twinkle.once
Folgender Fold ist dem Inline-Formular zugeordnet:

• One
23 … 25 Definition des Inline-Formulars Twinkle.twice
Folgender Fold ist dem Inline-Formular zugeordnet:

• Two
26 … 29 Definition des Inline-Formulars Twinkle.triple
Folgende Folds sind dem Inline-Formular zugeordnet:

• One
• Two

Inline-Formular Twinkle.twice

Abb. 7-5: Inline-Formular Twinkle.twice

7.3.1.1 Technologie Twinkle in Menü einbinden

Beschreibung

Der Menüpunkt BlinkTech wird im Menü Befehle > UserTech an der drit-
ten Position eingefügt und ruft das Inline-Formular Twinkle.twice auf.

Abb. 7-6: Inline-Formular Twinkle.twice

Konfigurationsdatei

<KukaRoboter.SmartHMI.Menu type="KukaRoboter.SmartHMI.…">
<!-- Menue tree of UserTech InlineForms -->
<MenuRoot SystemName="CommandMenu">
<MenuFolder DisplayName="UserTechILFs#UserTech"
MergeOrder="902">
<MenuItem DisplayName="UserTechILFs#MyCmd"
MergeOrder="110">

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 81/94


KUKA.UserTech 4.0

<CommandCall Target="LegacyLoader.InvokeModuleProc">
Konfiguration

<Argument Name="PlugInName">INLINEFORM</Argument>
<Argument Name="ProcID">2011</Argument>
<Argument Name="ParamList">Kuka.UserTech;MYTECH;MyCmd</
Argument>
</CommandCall>
</MenuItem>
<MenuItem DisplayName="UserTechILFs#Ilf_With_ParamList"
MergeOrder="120">
...
</MenuItem>
<MenuItem DisplayName="UserTechILFs#BlinkTech"
MergeOrder="130">
<CommandCall Target="LegacyLoader.InvokeModuleProc">
<Argument Name="PlugInName">INLINEFORM</Argument>
<Argument Name="ProcID">2011</Argument>
<Argument Name="ParamList">Kuka.UserTech;Twinkle;twice</
Argument>
</CommandCall>
</MenuItem>
</MenuFolder>
</MenuRoot>
</KukaRoboter.SmartHMI.Menu>

7.3.1.2 Technologie Twinkle in Untermenü einbinden

Beschreibung

Der Menüpunkt BlinkTech wird im Menü Befehle > UserTech an der


zweiten Position eingefügt. Das Untermenü von BlinkTech enthält die Me-
nüpunkte One, Two und Three.
• Der Menüpunkt One ruft das Inline-Formular Twinkle.once auf.
• Der Menüpunkt Two ruft das Inline-Formular Twinkle.twice auf.
• Der Menüpunkt Three ruft das Inline-Formular Twinkle.triple auf.

Konfigurationsdatei

<KukaRoboter.SmartHMI.Menu type="KukaRoboter.SmartHMI.…">
<!-- Menue tree of UserTech InlineForms -->
<MenuRoot SystemName="CommandMenu">
<MenuFolder DisplayName="UserTechILFs#UserTech"
MergeOrder="902">
<MenuItem DisplayName="UserTechILFs#MyCmd"
MergeOrder="110">
<CommandCall Target="LegacyLoader.InvokeModuleProc">
<Argument Name="PlugInName">INLINEFORM</Argument>
<Argument Name="ProcID">2011</Argument>
<Argument Name="ParamList">Kuka.UserTech;MYTECH;MyCmd</
Argument>
</CommandCall>
</MenuItem>
</MenuFolder>
<MenuFolder DisplayName="UserTechILFs#BlinkTech"
MergeOrder="903">
<MenuItem DisplayName="UserTechILFs#One" MergeOrder="110">
<CommandCall Target="LegacyLoader.InvokeModuleProc">
<Argument Name="PlugInName">INLINEFORM</Argument>
<Argument Name="ProcID">2011</Argument>
<Argument Name="ParamList">Kuka.UserTech;Twinkle;once</
Argument>

82/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

</CommandCall>

Konfiguration
</MenuItem>
<MenuItem DisplayName="UserTechILFs#Two" MergeOrder="120">
<CommandCall Target="LegacyLoader.InvokeModuleProc">
<Argument Name="PlugInName">INLINEFORM</Argument>
<Argument Name="ProcID">2011</Argument>
<Argument Name="ParamList">Kuka.UserTech;Twinkle;twice</
Argument>
</CommandCall>
</MenuItem>
<MenuItem DisplayName="UserTechILFs#Three"
MergeOrder="130">
<CommandCall Target="LegacyLoader.InvokeModuleProc">
<Argument Name="PlugInName">INLINEFORM</Argument>
<Argument Name="ProcID">2011</Argument>
<Argument
Name="ParamList">Kuka.UserTech;Twinkle;triple</Argument>
</CommandCall>
</MenuItem>
</MenuFolder>
</MenuRoot>
</KukaRoboter.SmartHMI.Menu>

7.3.2 Technologie Glue

KFDx-Datei

1 <Application Name="Glue">
2 <StatKey Name="Key4">
3 <Picture Default="C:\KRC\TP\USERTECH\TEMPLATE\PICTURES
\Rinse1.BMP" />
4 <Text Top="Rinse" Bottom="On" />
5 <Needs Prostate0="Free|Stop|Reset|End|Active" />
6 </StatKey>
7 <Script Name="ScriptKeyUp">
8 <SetVar Fullpath="$OUT[2]" Value="False" />
9 <Set Name="Key4">
10 <Picture Default="C:\KRC\TP\USERTECH\TEMPLATE\PICTURES
\Rins12.BMP" />
11 <Text Bottom="On" />
12 </Set>
13 </Script>
14 <Script Name="ScriptKeyDown">
15 <SetVar Fullpath="$OUT[2]" Value="True" />
16 <Set Name="Key4">
17 <Picture Default="C:\KRC\TP\USERTECH\TEMPLATE\PICTURES
\Rinse2.BMP" />
18 <Text Bottom="Off" />
19 </Set>
20 </Script>
21 <Set Name="Key4">
22 <Scripts OnKeyDown="ScriptKeyDown"
OnKeyUp="ScriptKeyUp" />
23 </Set>
24 <StatkeyBar Name="Bar4">
25 <SK Name="Key4" Pos="4" />
26 </StatkeyBar>
27 </Application>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 83/94


Konfiguration KUKA.UserTech 4.0

Zeile Beschreibung
1 … 27 Definition der Technologie
2 … 6 Definition der Statustaste
5 Die Statustaste ist unabhängig von den Betriebszuständen
der Submit-Interpreter immer aktiv.
7 … 13 Definition des Skripts, das ausgeführt werden soll, wenn die
Statustaste losgelassen wird
14 … 20 Definition des Skripts, das ausgeführt werden soll, wenn die
Statustaste gedrückt wird
21 … 23 Setzen der Statustaste
24 … 26 Definition der Statustastenleiste
Die Statustastenleiste besteht aus einer einzigen Statustas-
te. Die Statustaste befindet sich an der vierten Position (=
letzte Statustaste von oben).

7.3.2.1 Technologie Glue in Menü einbinden

Beschreibung

Der Menüpunkt Rinse wird im Hauptmenü Konfiguration > Statustasten


an der ersten Position eingefügt und ruft die Statustastenleiste der Tech-
nologie auf.

Konfigurationsdatei

1 <KukaRoboter.SmartHMI.Menu type="KukaRoboter.SmartHMI.…">
2 <MenuRoot SystemName="MainMenu">
3 <MenuFolder SystemName="Config">
4 <MenuFolder SystemName="ConfigStatKeys">
5 <MenuItem DisplayName="Rinse" MergeOrder="100">
6 <CommandCall
Target="UserkeyBarManager.OpenUserkeyBar"
Right="OperationTP">
7 <Argument
Name="UserkeyBarRepository">KukaRoboter.UserTech.StatKeys.
ViewModels.UserkeyBarRepository</Argument>
8 <Argument Name="UserkeyBarID">Bar4</Argument>
9 </CommandCall>
10 </MenuItem>
11 </MenuFolder>
12 </MenuFolder>
13 </MenuRoot>
14 </KukaRoboter.SmartHMI.Menu>

7.3.3 Technologie DispSet

KFDx-Datei

1 <Application Name="DispSet">
2 <Param Name="Bright">
3 <Value Type="NUMBER" Min="" Max="" />
4 </Param>
5 <Param Name="Cont">
6 <Value Type="NUMBER" Min="" Max="" />
7 </Param>

84/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

8 <Param Name="Temp">

Konfiguration
9 <Value Type="NUMBER" Min="" Max="" />
10 </Param>
11 <Script Name="BrightHigh">
12 <ShowVar Fullpath="$PHGBRIGHT" Param="Bright" />
13 <SetVar Fullpath="$PHGBRIGHT" Value"%Bright +1" />
14 <ShowVar Fullpath="$PHGBRIGHT" Param="Bright" />
15 <ShowVar Fullpath="$PHGCONT" Param="Cont" />
16 <ShowVar Fullpath="$PHGTEMP" Param="Temp" />
17 <Message Text="Brightness Level: %Bright Contrast
Level: %Cont Display Temperature: %Temp °C" />
18 </Script>
19 <Script Name="BrightLow">
20 <ShowVar Fullpath="$PHGBRIGHT" Param="Bright" />
21 <SetVar Fullpath="$PHGBRIGHT" Value"%Bright -1" />
22 <ShowVar Fullpath="$PHGBRIGHT" Param="Bright" />
23 <ShowVar Fullpath="$PHGCONT" Param="Cont" />
24 <ShowVar Fullpath="$PHGTEMP" Param="Temp" />
25 <Message Text="Brightness Level: %Bright Contrast
Level: %Cont Display Temperature: %Temp °C" />
26 </Script>
27 <Script Name="ContHigh">
28 <ShowVar Fullpath="$PHGCONT" Param="Cont" />
29 <SetVar Fullpath="$PHGCONT" Value"%Cont +1" />
30 <ShowVar Fullpath="$PHGCONT" Param="Cont" />
31 <ShowVar Fullpath="$PHGBRIGHT" Param="Bright" />
32 <ShowVar Fullpath="$PHGTEMP" Param="Temp" />
33 <Message Text="Brightness Level: %Bright Contrast
Level: %Cont Display Temperature: %Temp °C" />
34 </Script>
35 <Script Name="ContLow">
36 <ShowVar Fullpath="$PHGCONT" Param="Cont" />
37 <SetVar Fullpath="$PHGCONT" Value"%Cont -1" />
38 <ShowVar Fullpath="$PHGCONT" Param="Cont" />
39 <ShowVar Fullpath="$PHGBRIGHT" Param="Bright" />
40 <ShowVar Fullpath="$PHGTEMP" Param="Temp" />
41 <Message Text="Brightness Level: %Bright Contrast
Level: %Cont Display Temperature: %Temp °C" />
42 </Script>
43 <StatKey Name="Brightness" Enable="True" UserMode="10"
Style="#TOGGLE">
44 <Picture Default="C:\KRC\TP\USERTECH\TEMPLATE\PICTURES
\PHGBRIGHT.BMP" />
45 <Scripts OnKeyDown="BrightHigh"
OnKeyDownMinus="BrightLow" />
46 </StatKey>
47 <StatKey Name="Contrast" Enable="True" UserMode="10"
Style="#TOGGLE">
48 <Picture Default="C:\KRC\TP\USERTECH\TEMPLATE\PICTURES
\PHGCONT.BMP" />
49 <Scripts OnKeyDown="ContHigh"
OnKeyDownMinus="ContLow" />
50 </StatKey>
51 <StatkeyBar Name="Bar">
52 <SK Name="Brightness" Pos="1" />
53 <SK Name="Contrast" Pos="3" />
54 </StatkeyBar>
55 </Application>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 85/94


Konfiguration KUKA.UserTech 4.0

Zeile Beschreibung
1 … 27 Definition der Technologie
2 … 10 Definition der Parameter, die in den Skripten verwendet
werden
11 … 18 Definition des Skripts "BrightHigh"
Bei Aufruf des Skripts wird der Wert der Systemvariablen
$PHGBRIGHT um 1 erhöht.
19 … 26 Definition des Skripts "BrightLow"
Bei Aufruf des Skripts wird der Wert der Systemvariablen
$PHGBRIGHT um 1 verringert.
27 … 34 Definition des Skripts "ContHigh"
Bei Aufruf des Skripts wird der Wert der Systemvariablen
$PHGCONT um 1 erhöht.
35 … 42 Definition des Skripts "ContLow"
Bei Aufruf des Skripts wird der Wert der Systemvariablen
$PHGCONT um 1 verringert.
43 … 46 Definition der Statustaste "Brightness"
Mit der doppelten Statustaste kann die Helligkeit eingestellt
werden.

• Beim Drücken der Taste mit der PLUS-Funktion wird


das Skript "BrightHigh" aufgerufen.
• Beim Drücken der Taste mit der MINUS-Funktion wird
das Skript "BrightLow" aufgerufen.
47 … 50 Deklaration Statustaste "Contrast"
Mit der doppelten Statustaste kann der Kontrast eingestellt
werden.

• Beim Drücken der Taste mit der PLUS-Funktion wird


das Skript "ContHigh" aufgerufen.
• Beim Drücken der Taste mit der MINUS-Funktion wird
das Skript "ContLow" aufgerufen.
51 … 54 Definition der Statustastenleiste "Bar"
Die Statustastenleiste besteht aus den beiden doppelten
Statustasten.

7.3.3.1 Technologie DispSet in Menü einbinden

Beschreibung

Der Menüpunkt Display wird im Hauptmenü Konfiguration > Statustas-


ten an der zweiten Position eingefügt und ruft die Statustastenleiste der
Technologie auf.

Konfigurationsdatei

1 <KukaRoboter.SmartHMI.Menu type="KukaRoboter.SmartHMI.…">
2 <MenuRoot SystemName="MainMenu">
3 <MenuFolder SystemName="Config">
4 <MenuFolder SystemName="ConfigStatKeys">
5 <MenuItem DisplayName="Rinse" MergeOrder="100">

86/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

6 <CommandCall

Konfiguration
Target="UserkeyBarManager.OpenUserkeyBar"
Right="OperationTP">
7 <Argument
Name="UserkeyBarRepository">KukaRoboter.UserTech.StatKeys.
ViewModels.UserkeyBarRepository</Argument>
8 <Argument Name="UserkeyBarID">Bar4</Argument>
9 </CommandCall>
10 </MenuItem>
11 <MenuItem DisplayName="Display" MergeOrder="200">
12 <CommandCall
Target="UserkeyBarManager.OpenUserkeyBar"
Right="OperationTP">
13 <Argument
Name="UserkeyBarRepository">KukaRoboter.UserTech.StatKeys.
ViewModels.UserkeyBarRepository</Argument>
14 <Argument Name="UserkeyBarID">Bar</Argument>
15 </CommandCall>
16 </MenuItem>
17 </MenuFolder>
18 </MenuFolder>
19 </MenuRoot>
20 </KukaRoboter.SmartHMI.Menu>

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 87/94


Konfiguration KUKA.UserTech 4.0

88/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

8 Archivierung

Archivierung
Zielorte

Auf folgende Zielorte kann archiviert werden:


• USB-Stick am smartPAD oder an der Robotersteuerung
• Netzwerk

Weitere Informationen zur Archivierung sind in der Bedien- und Pro-


grammieranleitung der KUKA System Software (KSS) zu finden.

8.1 Dateien archivieren

Beschreibung

Die unter C:\KRC\TP\UserTech\ liegenden technologiespezifischen Ver-


zeichnisse können archiviert werden:
Verzeichnis Beschreibung
Kxr Verzeichnis für die KXR-Sprachdateien
SmartHMI Verzeichnis für die smartHMI-Konfigurationsdateien
TEMPLATE Verzeichnis für die KFDx-Dateien

Voraussetzung

Wenn auf einen USB-Stick archiviert werden soll:


• Benutzerrechte: Funktionsgruppe Archivieren auf USB-Laufwerke
• Ein USB-Stick ist angeschlossen.
Der Stick kann am smartPAD oder an der Robotersteuerung ange-
schlossen werden.

HINWEIS
Es muss ein nicht-bootfähiger USB-Stick verwendet werden.
Es wird empfohlen, einen nicht-bootfähigen KUKA-Stick zu verwenden.
Wenn ein Stick eines anderen Herstellers verwendet wird, können Daten
verloren gehen.

Wenn auf einen Netzwerkpfad archiviert werden soll:


• Benutzerrechte: Funktionsgruppe Archivieren auf Netzwerk
• Der Netzwerkpfad, auf den archiviert werden soll, ist konfiguriert.

Vorgehensweise

1. Im Hauptmenü Datei > Archivieren > USB (KCP) oder USB


(Schrank) oder Netzwerk wählen und dann den Menüpunkt Alles
wählen.
Wenn über den Menüpunkt Alles archiviert wird und bereits ein Ar-
chiv vorhanden ist, wird dieses überschrieben.

2. Die Sicherheitsabfrage mit Ja bestätigen. Das Archiv wird erstellt.


Im Meldungsfenster wird angezeigt, wenn die Archivierung abgeschlos-
sen ist.
3. Wenn auf einen USB-Stick archiviert wurde: Der Stick kann jetzt abge-
zogen werden.

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 89/94


Archivierung KUKA.UserTech 4.0

8.2 Dateien wiederherstellen

VORSICHT
Verletzungsgefahr durch Archiv aus anderer KSS-Version
In die KSS dürfen ausschließlich Archive aus derselben KSS-Version
geladen werden, z. B.:
• In die KSS 8.6 nur Archive der KSS 8.6
• In die KSS 8.7 nur Archive der KSS 8.7
Wenn andere Archive geladen werden, können als Folgen auftreten:
• Fehlermeldungen
• Robotersteuerung ist nicht lauffähig.
• Personen- und Sachschäden

Beschreibung

Wenn die archivierten Dateien nicht die gleiche Version haben wie die im
System vorhandenen Dateien, wird beim Wiederherstellen eine Fehlermel-
dung ausgegeben.
Wenn die Version der archivierten Technologien nicht mit der installierten
Version übereinstimmt, wird ebenfalls eine Fehlermeldung ausgegeben.

Voraussetzung

• Benutzerrechte: Funktionsgruppe Wiederherstellen


• Wenn von USB-Stick wiederhergestellt werden soll: Ein USB-Stick mit
dem Archiv ist angeschlossen.
Der Stick kann am smartPAD oder an der Robotersteuerung ange-
schlossen werden.

HINWEIS
Es muss ein nicht-bootfähiger USB-Stick verwendet werden.
Es wird empfohlen, einen nicht-bootfähigen KUKA-Stick zu verwenden.
Wenn ein Stick eines anderen Herstellers verwendet wird, können Daten
verloren gehen.

Vorgehensweise

1. Im Hauptmenü Datei > Wiederherstellen > USB (KCP) oder USB


(Schrank) oder Netzwerk wählen und dann den Menüpunkt Alles
wählen.
2. Die Sicherheitsabfrage mit Ja bestätigen. Die archivierten Dateien wer-
den auf der Robotersteuerung wiederhergestellt.
Eine Meldung zeigt an, wenn die Wiederherstellung abgeschlossen ist.
3. Wenn von USB-Stick wiederhergestellt wurde: Der Stick kann jetzt ab-
gezogen werden.
4. Die Robotersteuerung neu starten.

90/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

9 KUKA Service

KUKA Service
9.1 Support-Anfrage

Einleitung

Diese Dokumentation bietet Informationen zu Betrieb und Bedienung und


unterstützt Sie bei der Behebung von Störungen. Für weitere Anfragen
steht Ihnen die lokale Niederlassung zur Verfügung.

Informationen

Zur Abwicklung einer Anfrage werden folgende Informationen benö-


tigt:
• Problembeschreibung inkl. Angaben zu Dauer und Häufigkeit der Stö-
rung
• Möglichst umfassende Informationen zu den Hardware- und Software-
Komponenten des Gesamtsystems
Die folgende Liste gibt Anhaltspunkte, welche Informationen häufig re-
levant sind:
‒ Typ und Seriennummer der Kinematik, z. B. des Manipulators
‒ Typ und Seriennummer der Steuerung
‒ Typ und Seriennummer der Energiezuführung
‒ Bezeichnung und Version der System Software
‒ Bezeichnungen und Versionen weiterer/anderer Software-Kompo-
nenten oder Modifikationen
‒ Diagnosepaket KRCDiag
Für KUKA Sunrise zusätzlich: Vorhandene Projekte inklusive Appli-
kationen
Für Versionen der KUKA System Software älter als V8: Archiv der
Software (KRCDiag steht hier noch nicht zur Verfügung.)
‒ Vorhandene Applikation
‒ Vorhandene Zusatzachsen

9.2 KUKA Customer Support

Die Kontaktdaten der lokalen Niederlassungen finden Sie unter:


www.kuka.com/customer-service-contacts

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 91/94


KUKA Service KUKA.UserTech 4.0

92/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020


KUKA.UserTech 4.0

Index K
#SWITCH........................................................57 Kenntnisse, benötigt......................................... 7
#TOGGLE....................................................... 57 KFD...................................................................8
$...................................................................... 24 KFD-Datei, konvertieren................................. 19
$config.dat................................................ 49, 51 KFDx................................................................. 8
KFDx-Datei, anlegen...................................... 27
KFDx, Syntax Übersicht................................. 21
A Konfiguration...................................................73
Archivierung.................................................... 89 Konverter.................................................. 11, 19
ASS.................................................................48 KRL................................................................... 8
ASSAGG.........................................................48 KUKA Customer Support............................... 91
KUKA Service.................................................91

B
Bedienung.......................................................19 L
Begriffe, verwendet...........................................8 Layout............................................................. 60
Bestimmungsgemäße Verwendung................12 Lizenzen............................................................8
Bildgrößen.......................................................60

M
D Marken.............................................................. 8
Datensatzstruktur, für Parameterliste...... 21, 50 Meldung, definieren........................................ 67
Deinstallieren Meldungstext, definieren................................ 22
über smartHMI...........................................18
über WorkVisual........................................ 16
DFCT.............................................................. 47 N
Dokumentation, Industrieroboter...................... 7 Namenskonventionen..................................... 24
DSUB.............................................................. 45

O
E Open-Source.....................................................8
Einleitung.......................................................... 7

P
F Parameter, definieren...............................21, 29
FCT................................................................. 46 Parameterliste, definieren........................ 21, 50
Fehlanwendung.............................................. 12 Parameterliste, programmieren...................... 49
Fold, definieren........................................ 21, 38 Parameterreferenz.......................................... 23
Formatiertypen................................................44 Parameterreferenzen...................................... 24
Parametertypen.............................................. 31
Produktbeschreibung...................................... 11
G Programmierung............................................. 21
Geltungsbereiche............................................24

S
H Schlüsselwörter...............................................24
Hinweise........................................................... 7 Schulungen....................................................... 7
Sicherheit........................................................ 13
Sicherheitshinweise.......................................... 7
Skript, ausführen...................................... 22, 67
I Skript, definieren...................................... 22, 63
Inline-Formular, definieren....................... 21, 39 Skripte, programmieren.................................. 63
Inline-Formulare, in smartHMI einbinden...... 73 Skripte, vordefiniert.........................................67
Inline-Formulare, in WorkVisual einbinden.... 76 smartHMI.......................................................... 8
Installation.......................................................15 smartHMI-Konfigurationsdatei, konvertieren.. 19
über smartHMI...........................................16 smartPAD..........................................................8
über WorkVisual........................................ 15 Sonderzeichen................................................ 22
Sprachdateien.......................................... 12, 25

KST UserTech 4.0 V3 | Stand: 13.10.2020 www.kuka.com | 93/94


KUKA.UserTech 4.0

Statustaste, definieren............................. 21, 56


Statustaste, setzen............................ 21, 22, 62
Statustasten, in smartHMI einbinden.............73
Statustasten, programmieren......................... 56
Statustastenleiste, definieren................... 21, 62
Statustastenleiste, setzen..................21, 22, 62
String.................................................................8
Strings.............................................................23
Strukturdatentyp, definieren........................... 51
SUB.................................................................44
Support-Anfrage..............................................91
Systemvoraussetzungen.................................15
Hardware................................................... 15
Software.....................................................15

T
Technologie, definieren............................ 21, 28
Technologie, programmieren.......................... 27

U
Übersicht, KFDx-Syntax................................. 21
Update, über smartHMI..................................16
Update, über WorkVisual............................... 15

V
Variable, anlegen............................................66
Variable, auslesen....................................22, 65
Variable, neu anlegen.................................... 22
Variable, setzen........................................22, 64
Variable, überschreiben........................... 22, 66
Verwendete Begriffe......................................... 8
Vorlagen............................................. 12, 73, 77

W
WYSIWYG...................................................... 44

Z
Zielgruppe......................................................... 7

94/94 | www.kuka.com KST UserTech 4.0 V3 | Stand: 13.10.2020

Das könnte Ihnen auch gefallen