VST EthernetKRL 22 de

Als pdf oder txt herunterladen
Als pdf oder txt herunterladen
Sie sind auf Seite 1von 81

VW System Technology KUKA Roboter GmbH

KUKA.EthernetKRL 2.2

Für VW System Software 8.2 und 8.3

Stand: 19.11.2012

Version: VST EthernetKRL 2.2 V1 de (PDF)


KUKA.EthernetKRL 2.2

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

Diese Dokumentation darf – auch auszugsweise – nur mit ausdrücklicher Genehmigung der KUKA
Roboter 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 bzw. im Servicefall.
Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Soft-
ware geprüft. Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für die voll-
ständige Übereinstimmung keine Gewähr übernehmen. Die Angaben in dieser Druckschrift werden
jedoch regelmäßig überprüft und notwendige Korrekturen sind in der nachfolgenden Auflage enthal-
ten.
Technische Änderungen ohne Beeinflussung der Funktion vorbehalten.
Original-Dokumentation
KIM-PS5-DOC

Publikation: Pub VST EthernetKRL 2.2 (PDF) de


Buchstruktur: VST EthernetKRL 2.2 V1.1
Version: VST EthernetKRL 2.2 V1 de (PDF)

2 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


Inhaltsverzeichnis

Inhaltsverzeichnis
1 Einleitung ..................................................................................................... 5
1.1 Zielgruppe .................................................................................................................. 5
1.2 Dokumentation des Industrieroboters ........................................................................ 5
1.3 Darstellung von Hinweisen ........................................................................................ 5
1.4 Verwendete Begriffe .................................................................................................. 6
1.5 Warenzeichen ............................................................................................................ 7

2 Produktbeschreibung ................................................................................. 9
2.1 Übersicht EthernetKRL .............................................................................................. 9
2.2 Konfiguration einer Ethernet-Verbindung ................................................................... 9
2.2.1 Verhalten bei Verbindungsverlust ......................................................................... 9
2.2.2 Überwachen einer Verbindung ............................................................................. 10
2.3 Datenaustausch ......................................................................................................... 10
2.4 Datenspeicherung ...................................................................................................... 11
2.5 Client-Server-Betrieb ................................................................................................. 12
2.6 Protokollarten ............................................................................................................. 12
2.7 Ereignismeldungen .................................................................................................... 13
2.8 Fehlerbehandlung ...................................................................................................... 13

3 Sicherheit ..................................................................................................... 15
4 Installation .................................................................................................... 17
4.1 Systemvoraussetzungen ............................................................................................ 17
4.2 EthernetKRL installieren oder updaten ...................................................................... 17
4.3 EthernetKRL deinstallieren ........................................................................................ 18

5 Konfiguration ............................................................................................... 19
5.1 Netzwerkverbindung über das KLI der Robotersteuerung ......................................... 19

6 Programmierung .......................................................................................... 21
6.1 Ethernet-Verbindung konfigurieren ............................................................................ 21
6.1.1 XML-Struktur für Verbindungseigenschaften ........................................................ 21
6.1.2 XML-Struktur für den Datenempfang .................................................................... 24
6.1.3 XML-Struktur für den Datenversand ..................................................................... 26
6.1.4 Konfiguration nach XPath-Schema ....................................................................... 27
6.2 Funktionen für den Datenaustausch .......................................................................... 28
6.2.1 Programmiertipps ................................................................................................. 29
6.2.2 Initialisieren und Löschen einer Verbindung ......................................................... 29
6.2.3 Öffnen und Schließen einer Verbindung ............................................................... 31
6.2.4 Senden von Daten ................................................................................................ 32
6.2.5 Auslesen von Daten .............................................................................................. 34
6.2.6 Löschen empfangener Daten ............................................................................... 35
6.2.7 EKI_STATUS – Struktur für die funktionsspezifischen Rückgabewerte ............... 36
6.2.8 Konfigurieren von Ereignismeldungen .................................................................. 37
6.2.9 Empfang vollständiger XML-Datensätze .............................................................. 38
6.2.10 Verarbeiten unvollständiger Datensätze ............................................................... 38
6.2.11 EKI_CHECK() – Funktionen auf Fehler prüfen ..................................................... 38

7 Beispiele ....................................................................................................... 41

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 3 / 81


KUKA.EthernetKRL 2.2

7.1 Beispielapplikationen ................................................................................................. 41


7.1.1 Beispielapplikationen implementieren .................................................................. 41
7.1.2 Beispielprogramm in Modul VW_USER einbinden ............................................... 42
7.1.3 Bedienoberfläche Server-Programm .................................................................... 43
7.1.4 Kommunikationsparameter im Server-Programm einstellen ................................ 45
7.2 Beispielkonfigurationen und -programme .................................................................. 46
7.2.1 Beispielkonfiguration BinaryFixed ........................................................................ 46
7.2.2 Beispielkonfiguration BinaryStream ...................................................................... 47
7.2.3 Beispielkonfiguration XmlTransmit ....................................................................... 48
7.2.4 Beispielkonfiguration XmlServer ........................................................................... 50
7.2.5 Beispielkonfiguration XmlCallback ....................................................................... 51

8 Diagnose ....................................................................................................... 55
8.1 Diagnosedaten anzeigen ........................................................................................... 55
8.2 Fehlerprotokoll (EKI-Logbuch) .................................................................................. 55
8.3 Fehlermeldungen ....................................................................................................... 55

9 Anhang ......................................................................................................... 61
9.1 Erweiterte XML-Struktur für Verbindungseigenschaften ........................................... 61
9.2 Speicher erhöhen ...................................................................................................... 61
9.3 Meldungsausgabe und Loggen von Meldungen deaktivieren ................................... 62
9.4 Befehlsreferenz ......................................................................................................... 62
9.4.1 Verbindung initialisieren, öffnen, schließen und löschen ...................................... 62
9.4.2 Daten senden ....................................................................................................... 63
9.4.3 Daten schreiben ................................................................................................... 64
9.4.4 Daten auslesen .................................................................................................... 65
9.4.5 Funktion auf Fehler prüfen ................................................................................... 69
9.4.6 Speicher löschen, sperren, entsperren und prüfen .............................................. 69

10 KUKA Service ............................................................................................... 71


10.1 Support-Anfrage ........................................................................................................ 71
10.2 KUKA Customer Support ........................................................................................... 71

Index ............................................................................................................. 79

4 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


1 Einleitung

1 Einleitung

1.1 Zielgruppe

Diese Dokumentation richtet sich an Benutzer mit folgenden Kenntnissen:


 Fortgeschrittene KRL-Programmierkenntnisse
 Fortgeschrittene Systemkenntnisse der Robotersteuerung
 Fortgeschrittene XML-Kenntnisse
 Fortgeschrittene Netzwerk-Kenntnisse

Für den optimalen Einsatz unserer Produkte empfehlen wir unseren


Kunden eine Schulung im KUKA College. Informationen zum Schu-
lungsprogramm sind unter www.kuka.com oder direkt bei den Nieder-
lassungen 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
 Bedien- und Programmieranleitung für die KUKA System Software
 Anleitungen zu Optionen und Zubehör
 Teilekatalog auf Datenträger
Jede Anleitung ist ein eigenes Dokument.

1.3 Darstellung von Hinweisen

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

Diese Hinweise bedeuten, dass Tod oder schwere Ver-


letzungen sicher oder sehr wahrscheinlich eintreten
werden, wenn keine Vorsichtsmaßnahmen getroffen werden.

Diese Hinweise bedeuten, dass Tod oder schwere Ver-


letzungen eintreten können, wenn keine Vorsichtsmaß-
nahmen getroffen werden.

Diese Hinweise bedeuten, dass leichte Verletzungen


eintreten können, wenn keine Vorsichtsmaßnahmen
getroffen werden.

Diese Hinweise bedeuten, dass Sachschäden eintreten


können, wenn keine Vorsichtsmaßnahmen getroffen
werden.

Diese Hinweise enthalten Verweise auf sicherheitsrelevante Informa-


tionen oder allgemeine Sicherheitsmaßnahmen.
Diese Hinweise beziehen sich nicht auf einzelne Gefahren oder ein-
zelne Vorsichtsmaßnahmen.

Dieser Hinweis macht auf Vorgehensweisen aufmerksam, die der Vorbeu-


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

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 5 / 81


KUKA.EthernetKRL 2.2

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 In-


formationen.

1.4 Verwendete Begriffe

Begriff Beschreibung
Datenstrom Kontinuierliche Abfolgen von Datensätzen, deren Ende
nicht im Voraus abzusehen ist. Die einzelnen Daten-
sätze sind von beliebigem, aber festem Typ. Die
Menge der Datensätze pro Zeiteinheit (Datenrate)
kann variieren. Es ist nur ein sequentieller Zugriff auf
die Daten möglich.
EKI EthernetKRL Interface
EOS End Of Stream (Endzeichenfolge)
Zeichenfolge, die das Ende eines Datensatzes kenn-
zeichnet
Ethernet Ethernet ist eine Datennetztechnologie für lokale
Datennetze (LANs). Sie ermöglicht den Datenaus-
tausch in Form von Datenrahmen zwischen den ver-
bundenen Teilnehmern.
FIFO Verfahren, nach denen ein Datenspeicher abgearbeitet
LIFO werden kann
 First In First Out: Elemente, die zuerst gespeichert
wurden, werden zuerst wieder aus dem Speicher
entnommen.
 Last In First Out: Elemente, die zuletzt gespeichert
wurden, werden zuerst wieder aus dem Speicher
entnommen.
KLI KUKA Line Interface
Linienbus zur Integration der Anlage in das Kunden-
netz
KR C KUKA Robot Controller
KR C ist die KUKA Robotersteuerung.
KRL KUKA Robot Language
KRL ist die KUKA Roboter Programmiersprache.
smartHMI smart Human-Machine Interface
KUKA smartHMI ist die Bedienoberfläche der KUKA
System Software.
Socket Software-Schnittstelle, die IP-Adressen und Port-Num-
mern miteinander verbindet

6 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


1 Einleitung

Begriff Beschreibung
TCP/IP Transmission Control Protocol
Protokoll über den Datenaustausch zwischen den Teil-
nehmern eines Netzwerks. TCP stellt einen virtuellen
Kanal zwischen 2 Endpunkten einer Netzwerkverbin-
dung her. Auf diesem Kanal können in beide Richtun-
gen Daten übertragen werden.
UDP/IP User Datagram Protocol
Verbindungsloses Protokoll über den Datenaustausch
zwischen den Teilnehmern eines Netzwerks
IP Internet Protocol
Das Internet-Protokoll hat die Aufgabe, Subnetze über
physikalische MAC-Adressen zu definieren.
XML Extensible Markup Language
Standard zur Erstellung maschinen- und menschenles-
barer Dokumente in Form einer vorgegebenen Baum-
struktur
XPath XML Path Language
Sprache, um Teile eines XML-Dokumentes zu
beschreiben und zu lesen

1.5 Warenzeichen

.NET Framework ist ein Warenzeichen der Microsoft Corporation.


Windows ist ein Warenzeichen der Microsoft Corporation.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 7 / 81


KUKA.EthernetKRL 2.2

8 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


2 Produktbeschreibung

2 Produktbeschreibung

2.1 Übersicht EthernetKRL

Funktionen EthernetKRL ist ein nachladbares Technologiepaket mit folgenden Funktio-


nen:
 Datenaustausch über die EthernetKRL-Schnittstelle
 Empfangen von XML-Daten eines externen Systems
 Senden von XML-Daten an ein externes System
 Empfangen von Binär-Daten eines externen Systems
 Senden von Binär-Daten an ein externes System

Eigenschaften  Robotersteuerung und externes System als Client oder Server


 Konfiguration von Verbindungen über XML-basierte Konfigurationsdatei
 Konfiguration von "Ereignismeldungen"
 Überwachen von Verbindungen durch einen Ping auf das externe System
 Lesen und Schreiben von Daten aus dem Submit-Interpreter
 Lesen und Schreiben von Daten aus dem Roboter-Interpreter

Kommunikation Daten werden über das TCP/IP-Protokoll übertragen. Die Verwendung des
UDP/IP-Protokolls ist möglich, wird aber nicht empfohlen (verbindungsloses
Netzwerkprotokoll, z. B. kein Erkennen von Datenverlust).
Die Kommunikationszeit ist abhängig von den in KRL programmierten Aktio-
nen und vom gesendeten Datenvolumen. Je nach Programmierweise in KRL
können bis zu 2 ms Paket-Umlaufzeit erreicht werden.

2.2 Konfiguration einer Ethernet-Verbindung

Beschreibung Die Ethernet-Verbindung wird über eine XML-Datei konfiguriert. Für jede Ver-
bindung muss im Verzeichnis C:\KRC\ROBOTER\Config\User\Com-
mon\EthernetKRL der Robotersteuerung eine Konfigurationsdatei definiert
sein. Die Konfiguration wird beim Initialisieren einer Verbindung eingelesen.
Ethernet-Verbindungen können vom Roboter- oder Submit-Interpreter ange-
legt und bedient werden. Die Kanäle sind über Kreuz verwendbar, z. B. kann
ein im Submit-Interpreter geöffneter Kanal auch vom Roboter-Interpreter be-
dient werden.
Das Löschen einer Verbindung kann an Roboter- und Submit-Interpreter-Ak-
tionen oder Systemaktionen gekoppelt sein.

2.2.1 Verhalten bei Verbindungsverlust

Beschreibung Folgende Eigenschaften und Funktionen der EKI stellen sicher, dass empfan-
gene Daten zuverlässig bearbeitet werden können:
 Bei Erreichen des Limits eines Datenspeichers wird eine Verbindung au-
tomatisch geschlossen.
 Wenn ein Fehler beim Datenempfang auftritt, wird eine Verbindung auto-
matisch geschlossen.
 Bei geschlossener Verbindung werden die Datenspeicher weiterhin aus-
gelesen.
 Bei Verbindungsverlust kann ohne Einfluss auf gespeicherte Daten die
Verbindung wiederhergestellt werden.
 Ein Verbindungsverlust kann angezeigt werden, z. B. über ein Flag.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 9 / 81


KUKA.EthernetKRL 2.2

 Zum Fehler, der zu einem Verbindungsverlust geführt hat, kann die Feh-
lermeldung auf der smartHMI ausgegeben werden.

2.2.2 Überwachen einer Verbindung

Beschreibung Eine Verbindung kann durch einen Ping auf das externe System überwacht
werden. (Element <ALIVE…/> in der Verbindungskonfiguration)
Bei erfolgreicher Verbindung kann je nach Konfiguration ein Flag oder ein
Ausgang gesetzt werden. Solange das Ping regelmäßig gesendet wird und
die Verbindung zum externen System aktiv ist, ist der Ausgang oder das Flag
gesetzt. Wenn die Verbindung zum externen System abbricht, wird der Aus-
gang oder das Flag gelöscht.

2.3 Datenaustausch

Übersicht Über EthernetKRL kann die Robotersteuerung sowohl Daten von einem exter-
nen System empfangen als auch Daten an ein externes System senden.

Abb. 2-1: Systemübersicht

Datenempfang Prinzipieller Ablauf (Rot markiert) (>>> Abb. 2-1 ):


1. Das externe System sendet Daten, die über ein Protokoll übertragen und
von der EKI empfangen werden.
2. Die Daten werden strukturiert in einem Datenspeicher abgelegt.
3. Aus einem KRL-Programm heraus wird strukturiert auf die Daten zugegrif-
fen. Mithilfe von KRL-Anweisungen werden die Daten gelesen und in KRL-
Variablen kopiert.

Datenversand Prinzipieller Ablauf (Grün markiert) (>>> Abb. 2-1 ):


1. Mithilfe von KRL-Anweisungen werden die Daten strukturiert in einen Da-
tenspeicher geschrieben.
2. Mit einer KRL-Anweisung werden die Daten aus dem Speicher gelesen.
3. EKI sendet die Daten über ein Protokoll an das externe System.

Es ist möglich Daten direkt zu versenden, ohne dass die Daten zuvor
in einem Speicher abgelegt werden.

10 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


2 Produktbeschreibung

2.4 Datenspeicherung

Beschreibung Alle empfangenen Daten werden automatisch gespeichert und stehen damit
KRL zur Verfügung. Beim Speichern werden XML- und Binär-Daten unter-
schiedlich behandelt.
Jeder Datenspeicher ist als Stapelspeicher realisiert. Die einzelnen Speicher
werden im FIFO- oder LIFO-Modus ausgelesen.

XML-Daten Die empfangenen Daten werden extrahiert und typrichtig in verschiedene


Speicher abgelegt (pro Wert ein Speicher).

Abb. 2-2: XML-Daten-Speicher

Binär-Daten Die empfangenen Daten werden nicht extrahiert oder interpretiert. Für eine
Verbindung im Binär-Modus existiert nur ein Speicher.

Abb. 2-3: Binäre Daten-Speicher

Ausleseverfahren Datenelemente werden in der Reihenfolge aus dem Speicher entnommen, in


der sie dort abgelegt wurden (FIFO). Das umgekehrte Verfahren, mit dem das
zuletzt im Speicher abgelegte Datenelement zuerst entnommen wird, ist kon-
figurierbar (LIFO).
Jedem Speicher wird ein gemeinsames Limit maximal speicherbarer Daten
zugeteilt. Wird das Limit überschritten, wird die Ethernet-Verbindung sofort
geschlossen, um den Empfang weiterer Daten zu verhindern. Die aktuell emp-
fangenen Daten werden noch gespeichert, d. h. der Speicher wird um 1 er-
höht. Die Speicher können weiter abgearbeitet werden. Die Verbindung kann
über die Funktion EKI_OPEN() wieder geöffnet werden.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 11 / 81


KUKA.EthernetKRL 2.2

Abb. 2-4: Ausleseverfahren Übersicht

2.5 Client-Server-Betrieb

Beschreibung Robotersteuerung und externes System verbinden sich als Client und Server.
Dabei kann das externe System Client oder Server sein. Die Anzahl aktiver
Verbindungen ist auf 16 beschränkt.

Abb. 2-5: Client-Server-Betrieb

Wenn die EKI als Server konfiguriert wird, kann sich nur ein einzelner Client
mit dem Server verbinden. Werden mehrere Verbindungen benötigt, sind
auch mehrere Server in der Schnittstelle anzulegen. Es ist möglich mehrere
Clients und Server gleichzeitig innerhalb der EKI zu betreiben.

2.6 Protokollarten

Beschreibung Die übertragenen Daten können in verschiedene Formate verpackt werden.


Folgende Formate werden unterstützt:
 XML-Struktur frei konfigurierbar
 Binär-Datensatz mit fester Länge
 Binär-Datensatz variabel mit Endzeichenfolge

12 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


2 Produktbeschreibung

Abb. 2-6: Protokollarten

Die beiden Binär-Varianten können nicht gleichzeitig auf einer Verbindung be-
trieben werden.
Folgende Kombinationen sind möglich:

Verbindung Vx V1 V2 V3 V4 V5
Binär fest

Binär variabel

XML

Beispiele

Abb. 2-7: Binär-Daten mit fester Länge (10 Byte)

Abb. 2-8: Binär-Daten variabel mit Endzeichenfolge

2.7 Ereignismeldungen

Beschreibung Über das Setzen eines Ausgangs oder Flags können folgende Ereignisse ge-
meldet werden:
 Verbindung ist aktiv.
 Ein einzelnes XML-Element ist an der Schnittstelle angekommen.
 Eine vollständige XML-Struktur oder ein vollständiger Binär-Datensatz ist
an der Schnittstelle angekommen.
(>>> 6.2.8 "Konfigurieren von Ereignismeldungen" Seite 37)

2.8 Fehlerbehandlung

Beschreibung Für den Datenaustausch zwischen Robotersteuerung und externem System


stellt EthernetKRL Funktionen zur Verfügung.
Jede dieser Funktionen gibt Werte zurück. Diese Rückgabewerte können im
KRL-Programm abgefragt und ausgewertet werden.
Abhängig von der Funktion werden folgende Werte zurückgegeben:
 Fehlernummer

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 13 / 81


KUKA.EthernetKRL 2.2

 Anzahl der Elemente, die sich nach dem Zugriff noch im Speicher befin-
den
 Anzahl der Elemente, die aus dem Speicher gelesen wurden
 Information, ob eine Verbindung besteht
 Zeitstempel des Datenelements, das aus dem Speicher entnommen wur-
de
(>>> 6.2.7 "EKI_STATUS – Struktur für die funktionsspezifischen Rückgabe-
werte" Seite 36)
Zu jedem Fehler wird eine Meldung auf der smartHMI und im EKI-Logbuch
ausgegeben. Die automatische Ausgabe von Meldungen kann deaktiviert
werden.

14 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


3 Sicherheit

3 Sicherheit
Diese Dokumentation enthält Sicherheitshinweise, die sich spezifisch auf die
hier beschriebene Software beziehen.
Die grundlegenden Sicherheitsinformationen zum Industrieroboter sind im Ka-
pitel "Sicherheit" der Bedien- und Programmieranleitung für Systemintegrato-
ren oder der Bedien- und Programmieranleitung für Endanwender zu finden.

Das Kapitel "Sicherheit" in der Bedien- und Programmieranleitung


muss beachtet werden. Tod von Personen, schwere Verletzungen
oder erhebliche Sachschäden können sonst die Folge sein.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 15 / 81


KUKA.EthernetKRL 2.2

16 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


4 Installation

4 Installation

4.1 Systemvoraussetzungen

Hardware  Robotersteuerung VKR C4


 Externes System

Software  VW System Software 8.2 oder 8.3

4.2 EthernetKRL installieren oder updaten

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


Daten zu archivieren.

Vorbereitung  Die Software von der CD auf einen USB-Stick kopieren.


Die Software muss so auf den Stick kopiert werden, dass die Datei Se-
tup.exe in der obersten Ebene liegt. (Also nicht in einem Ordner.)

Empfehlung: Immer KUKA-Sticks verwenden. Wenn


Sticks von anderen Herstellern verwendet werden, kön-
nen Daten verloren gehen.

Voraussetzung  Benutzergruppe Experte

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


2. Im Hauptmenü Inbetriebnahme > Zusatzsoftware wählen.
3. Auf Neue Software drücken: In der Spalte Name muss der Eintrag Ether-
netKRL 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 das Laufwerk, von dem installiert werden soll, kon-
figuriert werden:
 Auf die Schaltfläche Konfiguration drücken. Ein neues Fenster öffnet
sich.
 Im Bereich Installationspfade für Optionen eine Zeile markieren.
Hinweis: Wenn die Zeile bereits einen Pfad enthält, wird dieser über-
schrieben.
 Auf Pfadauswahl drücken. Die vorhandenen Laufwerke werden an-
gezeigt.
 E:\ markieren. (Wenn Stick an der Robotersteuerung gesteckt.)
Oder K:\ markieren. (Wenn Stick am smartPAD gesteckt.)
 Speichern drücken. Das Fenster schließt sich wieder.
Das Laufwerk muss nur einmal konfiguriert werden und bleibt für weitere
Installationen gespeichert.
5. Den Eintrag EthernetKRL markieren und auf Installieren drücken. Die Si-
cherheitsabfrage mit Ja beantworten.
6. Die Aufforderung zum Neustart mit OK bestätigen.
7. Den Stick abziehen.
8. Die Robotersteuerung neu starten.

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

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 17 / 81


KUKA.EthernetKRL 2.2

4.3 EthernetKRL deinstallieren

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


rigen Daten zu archivieren.

Voraussetzung  Benutzergruppe Experte

Vorgehensweise 1. Im Hauptmenü Inbetriebnahme > Zusatzsoftware wählen. Alle installier-


ten Zusatzprogramme werden angezeigt.
2. Den Eintrag EthernetKRL markieren und auf Deinstallieren drücken. Si-
cherheitsabfrage mit Ja beantworten. Die Deinstallation wird vorbereitet.
3. Die Robotersteuerung neu starten. Die Deinstallation wird fortgesetzt und
abgeschlossen.

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

18 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


5 Konfiguration

5 Konfiguration

5.1 Netzwerkverbindung über das KLI der Robotersteuerung

Beschreibung Für den Datenaustausch über Ethernet muss eine Netzwerkverbindung über
das KLI der Robotersteuerung hergestellt werden.

Detaillierte Informationen zur Netzwerk-Konfiguration über das KUKA


Line Interface (KLI) der Robotersteuerung sind in der Bedien- und
Programmieranleitung für Systemintegratoren zu finden.

Das Ethernet-Kabel kann entweder am PROFINET-Switch Cu oder direkt am


Steuerungs-PC angeschlossen werden.

Weitere Informationen zur Schnittstelle PROFINET-Switch Cu sind in


der Betriebs- oder Montageanleitung der Robotersteuerung zu fin-
den.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 19 / 81


KUKA.EthernetKRL 2.2

20 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

6 Programmierung

6.1 Ethernet-Verbindung konfigurieren

Übersicht Eine Ethernet-Verbindung wird über eine XML-Datei konfiguriert. Für jede
Verbindung muss im Verzeichnis C:\KRC\ROBOTER\Config\User\Com-
mon\EthernetKRL der Robotersteuerung eine Konfigurationsdatei definiert
sein.

XML-Dateien sind "case sensitive". Die Groß-/Kleinschreibung muss


beachtet werden!

Der Name der XML-Datei ist gleichzeitig der Zugriffschlüssel in KRL.


Beispiel: …\EXT.XML —> EKI_INIT("EXT")
<ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL></EXTERNAL>
<INTERNAL></INTERNAL>
</CONFIGURATION>
<RECEIVE>
<ELEMENTS></ELEMENTS>
</RECEIVE>
<SEND>
<ELEMENTS></ELEMENTS>
</SEND>
</ETHERNETKRL>

Abschnitt Beschreibung
<CONFIGURATION> Konfiguration der Verbindungsparameter
zwischen externem System und Schnitt-

stelle
</CONFIGURATION>
(>>> 6.1.1 "XML-Struktur für Verbindungs-
eigenschaften" Seite 21)
<RECEIVE> Konfiguration der Empfangsstruktur, die
von der Robotersteuerung empfangen wird

(>>> 6.1.2 "XML-Struktur für den Daten-
</RECEIVE>
empfang" Seite 24)
<SEND> Konfiguration der Sendestruktur, die von
der Robotersteuerung gesendet wird

(>>> 6.1.3 "XML-Struktur für den Daten-
</SEND>
versand" Seite 26)

6.1.1 XML-Struktur für Verbindungseigenschaften

Beschreibung Im Abschnitt <EXTERNAL> … </EXTERNAL> werden die Einstellungen für


das externe System definiert:

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 21 / 81


KUKA.EthernetKRL 2.2

Element Beschreibung
TYPE Legt fest, ob das externe System als Server oder als
Client mit der Schnittstelle kommuniziert (optional)
 Server: Externes System ist ein Server.
 Client: Externes System ist ein Client.
Default-Wert: Server
IP IP-Adresse des externen Systems, wenn dieses als
Server definiert ist (TYPE = Server)
Wenn TYPE = Client, wird die IP-Adresse ignoriert.
PORT Port-Nummer des externen Systems, wenn dieses als
Server definiert ist (TYPE = Server)
 1 … 65 534
Wenn TYPE = Client, wird die Port-Nummer ignoriert.

Im Abschnitt <INTERNAL> … </INTERNAL> werden die Einstellungen für die


Schnittstelle definiert:

Element Attribut Beschreibung


ENVIRONMENT ——— Löschen der Verbindung an Aktionen koppeln
(optional)
 Program: Löschen nach Aktionen des Ro-
boter-Interpreters
 Programm zurücksetzen.
 Programm abwählen.
 E/As rekonfigurieren.
 Submit: Löschen nach Aktionen des Sub-
mit-Interpreters
 Submit-Interpreter abwählen.
 E/As rekonfigurieren.
 System: Löschen nach Systemaktionen
 E/As rekonfigurieren.
Default-Wert: Program
BUFFERING Mode Verfahren, nach dem alle Datenspeicher abge-
arbeitet werden (optional)
 FIFO: First In First Out
 LIFO: Last In First Out
Default-Wert: FIFO
Limit Maximale Anzahl an Datenelementen, die ein
Datenspeicher aufnehmen kann (optional)
 1 … 512
Default-Wert: 16
BUFFSIZE Limit Maximale Anzahl an Bytes, die empfangen
werden können, ohne dass sie interpretiert
werden (optional)
 1 … 65 534 Bytes
Default-Wert: 16 384 Bytes

22 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

Element Attribut Beschreibung


TIMEOUT Connect Zeit, nach der der Versuch eine Verbindung
aufzubauen abgebrochen wird (optional)
Einheit: ms
 0 … 65 534 ms
Default-Wert: 2 000 ms
ALIVE Set_Out Setzen eines Ausgangs oder eines Flags bei
Set_Flag erfolgreicher Verbindung (optional)
Nummer des Ausgangs:
 1 … 4 096
Nummer des Flags:
 1 … 1 025
Solange eine Verbindung zum externen Sys-
tem aktiv ist, ist der Ausgang oder das Flag
gesetzt. Wenn die Verbindung zum externen
System abbricht, wird der Ausgang oder das
Flag gelöscht.
Ping Intervall für das Senden eines Pings, um die
Verbindung zum externen System zu überwa-
chen (optional)
 1 … 65 534 s
IP ——— IP-Adresse der EKI, wenn diese als Server
definiert ist (EXTERNAL/TYPE = Client)
Wenn EXTERNAL/TYPE = Server, wird die IP-
Adresse ignoriert.
PORT ——— Port-Nummer der EKI, wenn diese als Server
definiert ist (EXTERNAL/TYPE = Client)
 54 600 … 54 615
Wenn EXTERNAL/TYPE = Server, wird die
Port-Nummer ignoriert.
PROTOCOL ——— Übertragungsprotokoll (optional)
 TCP
 UPD
Default-Wert: TCP
Es wird empfohlen, immer das TCP/IP-Proto-
koll zu verwenden.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 23 / 81


KUKA.EthernetKRL 2.2

Element Attribut Beschreibung


Messages Display Meldungsausgabe auf smartHMI deaktivieren
(optional).
 error: Meldungsausgabe ist aktiv.
 disabled: Meldungsausgabe ist deaktiviert.
Default-Wert: error
Logging Schreiben von Meldungen in EKI-Logbuch
deaktivieren (optional).
 warning: Warnmeldungen und Fehlermel-
dungen werden geloggt.
 error: Nur Fehlermeldungen werden ge-
loggt.
 disabled: Logging ist deaktiviert.
Default-Wert: error
(>>> 9.3 "Meldungsausgabe und Loggen von Meldungen deaktivieren"
Seite 62)

Beispiel <CONFIGURATION>
<EXTERNAL>
<IP>172.1.10.5</IP>
<PORT>60000</PORT>
<TYPE>Server</TYPE>
</EXTERNAL>
<INTERNAL>
<ENVIRONMENT>Program</ENVIRONMENT>
<BUFFERING Mode="FIFO" Limit="10"/>
<BUFFSIZE Limit="16384"/>
<TIMEOUT Connect="60000"/>
<ALIVE Set_Out="666" Ping="200"/>
<IP>192.1.10.20</IP>
<PORT>54600</PORT>
<PROTOCOL>TCP</PROTOCOL>
<Messages Display="disabled" Logging="error"/>
</INTERNAL>
</CONFIGURATION>

6.1.2 XML-Struktur für den Datenempfang

Beschreibung Die Konfiguration ist abhängig davon, ob XML-Daten oder Binär-Daten emp-
fangen werden.
 Für den Empfang von XML-Daten muss eine XML-Struktur definiert wer-
den: <XML> … </XML>
 Für den Empfang von Binär-Daten müssen Rohdaten definiert werden:
<RAW> … </RAW>
Attribute in den Elementen der XML-Struktur <XML> … </XML>:

24 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

Element Attribut Beschreibung


ELEMENT Tag Name des Elements
Hier wird die XML-Struktur für den Datenemp-
fang definiert (XPath).
(>>> 6.1.4 "Konfiguration nach XPath-
Schema" Seite 27)
ELEMENT Type Datentyp des Elements
 STRING
 REAL
 INT
 BOOL
 FRAME
Hinweis: Optional, wenn das Tag nur für Ereig-
nismeldungen verwendet wird. In diesem Fall
wird kein Speicherplatz für das Element reser-
viert.
Beispiel für Ereignis-Flag: <ELEMENT
Tag="Ext" Set_Flag="56"/>
ELEMENT Set_Out Setzen eines Ausgangs oder eines Flags,
Set_Flag wenn das Element empfangen wurde (optio-
nal)
Nummer des Ausgangs:
 1 … 4 096
Nummer des Flags:
 1 … 1 025
ELEMENT Mode Verfahren, nach dem ein Datensatz im Daten-
speicher abgearbeitet wird
 FIFO: First In First Out
 LIFO: Last In First Out
Nur relevant, wenn einzelne Datensätze
anders behandelt werden sollen wie unter
BUFFERING für die Schnittstelle konfiguriert.

Attribute für das Element in den Rohdaten <RAW> … </RAW>:

Element Attribut Beschreibung


ELEMENT Tag Name des Elements
ELEMENT Type Datentyp des Elements
 BYTE: Binär-Datensatz mit fester Länge
 STREAM: Binär-Datensatz variabel mit
Endzeichenfolge
ELEMENT Set_Out Setzen eines Ausgangs oder eines Flags,
Set_Flag wenn das Element empfangen wurde (optio-
nal)
Nummer des Ausgangs:
 1 … 4 096
Nummer des Flags:
 1 … 1 025

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 25 / 81


KUKA.EthernetKRL 2.2

Element Attribut Beschreibung


ELEMENT EOS Endzeichenfolge einer elementaren Informa-
tion (nur relevant, wenn TYPE = STREAM)
 ASCII-Kodierung: 1 … 32 Zeichen
 Alternatives Ende wird durch das Zeichen
"Ι" getrennt.
Beispiele:
 <ELEMENT … EOS="123,134,21"/>
 <ELEMENT … EOS="123,134,21Ι13,10"/>
ELEMENT Size Feste Größe der Information, wenn TYPE =
BYTE
 1 … 3 600 Bytes
Maximale Größe der Information, wenn TYPE
= STREAM
 1 … 3 600 Bytes

Beispiele <RECEIVE>
<XML>
<ELEMENT Tag="Ext/Str" Type="STRING"/>
<ELEMENT Tag="Ext/Pos/XPos" Type="REAL" Mode="LIFO"/>
<ELEMENT Tag="Ext/Pos/YPos" Type="REAL"/>
<ELEMENT Tag="Ext/Pos/ZPos" Type="REAL"/>
<ELEMENT Tag="Ext/Temp/Cpu" Type="REAL" Set_Out="1"/>
<ELEMENT Tag="Ext/Temp/Fan" Type="REAL" Set_Flag="14"/>
<ELEMENT Tag="Ext/Integer/AState" Type="INT"/>
<ELEMENT Tag="Ext/Integer/BState" Type="INT"/>
<ELEMENT Tag="Ext/Boolean/CState" Type="BOOL"/>
<ELEMENT Tag="Ext/Frames/Frame1" Type="FRAME"/>
<ELEMENT Tag="Ext/Attributes/@A1" Type="STRING"/>
<ELEMENT Tag="Ext/Attributes/@A2" Type="INT"/>
<ELEMENT Tag="Ext" Set_Flag="56"/>
</XML>
</RECEIVE>

<RECEIVE>
<RAW>
<ELEMENT Tag="RawData" Type="BYTE" Size="1408"
Set_Flag="14"/>
</RAW>
</RECEIVE>

<RECEIVE>
<RAW>
<ELEMENT Tag="MyStream" Type="STREAM" EOS="123,134,21"
Size="836" Set_Flag="14"/>
</RAW>
</RECEIVE>

6.1.3 XML-Struktur für den Datenversand

Beschreibung Die Konfiguration ist abhängig davon, ob XML-Daten oder Binär-Daten gesen-
det werden.
 Für das Senden von XML-Daten muss eine XML-Struktur definiert wer-
den: <XML> … </XML>

Die XML-Struktur wird beim Senden in der Reihenfolge angelegt, in


der sie konfiguriert ist.

26 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

 Das Senden von Binär-Daten wird direkt in der KRL-Programmierung re-


alisiert. Es muss keine Konfiguration angegeben werden.
Attribut in den Elementen der XML-Struktur <XML> … </XML>:

Attribut Beschreibung
Tag Name des Elements
Hier wird die XML-Struktur für den Datenversand defi-
niert (XPath).

Beispiel <SEND>
<XML>
<ELEMENT Tag="Robot/Data/ActPos/@X"/>
<ELEMENT Tag="Robot/Data/ActPos/@Y"/>
<ELEMENT Tag="Robot/Data/ActPos/@Z"/>
<ELEMENT Tag="Robot/Data/ActPos/@A"/>
<ELEMENT Tag="Robot/Data/ActPos/@B"/>
<ELEMENT Tag="Robot/Data/ActPos/@C"/>
<ELEMENT Tag="Robot/Status"/>
<ELEMENT Tag="Robot/Mode"/>
<ELEMENT Tag="Robot/Complex/Tickcount"/>
<ELEMENT Tag="Robot/RobotType/Robot/Type"/>
</XML>
</SEND>

6.1.4 Konfiguration nach XPath-Schema

Bescheibung Wenn XML verwendet wird um Daten auszutauschen, ist es notwendig, dass
die ausgetauschten XML-Dokumente nach demselben Schema aufgebaut
sind. Zum Beschreiben und Lesen der XML-Dokumente verwendet Ethernet-
KRL das XPath-Schema.
Nach XPath sind folgende Fälle zu unterscheiden:
 Beschreiben und Lesen von Elementen
 Beschreiben und Lesen von Attributen

Element-Schreib-  Gespeichertes XML-Dokument für den Datenversand:


weise <Robot>
<Mode>...</Mode>
<RobotLamp>
<GrenLamp>
<LightOn>...</LightOn>
</GrenLamp>
</RobotLamp>
</Robot>

 Konfigurierte XML-Struktur für den Datenversand:


<SEND>
<XML>
<ELEMENT Tag="Robot/Mode" />
<ELEMENT Tag="Robot/RobotLamp/GrenLamp/LightOn" />
</XML>
<SEND />

Attribut-Schreib-  Gespeichertes XML-Dokument für den Datenversand:


weise <Robot>
<Data>
<ActPos X="...">
</ActPos>
<LastPos A="..." B="..." C="..." X="..." Y="..." Z="...">
</LastPos>
</Data>
</Robot>

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 27 / 81


KUKA.EthernetKRL 2.2

 Konfigurierte XML-Struktur für den Datenversand:


<SEND>
<XML>
<ELEMENT Tag="Robot/Data/LastPos/@X" />
<ELEMENT Tag="Robot/Data/LastPos/@Y" />
...
<ELEMENT Tag="Robot/Data/ActPos/@X" />
</XML>
<SEND />

6.2 Funktionen für den Datenaustausch

Übersicht Für den Datenaustausch zwischen Robotersteuerung und externem System


stellt EthernetKRL Funktionen zur Verfügung.
Die genaue Beschreibung der Funktionen ist im Anhang zu finden.
(>>> 9.4 "Befehlsreferenz" Seite 62)

Verbindung initialisieren, öffnen, schließen und löschen


EKI_STATUS = EKI_Init(CHAR[])
EKI_STATUS = EKI_Open(CHAR[])
EKI_STATUS = EKI_Close(CHAR[])
EKI_STATUS = EKI_Clear(CHAR[])

Daten senden
EKI_STATUS = EKI_Send(CHAR[], CHAR[])

Daten schreiben
EKI_STATUS = EKI_SetReal(CHAR[], CHAR[], REAL)
EKI_STATUS = EKI_SetInt(CHAR[], CHAR[], INTEGER)
EKI_STATUS = EKI_SetBool(CHAR[], CHAR[], BOOL)
EKI_STATUS = EKI_SetFrame(CHAR[], CHAR[], FRAME)
EKI_STATUS = EKI_SetString(CHAR[], CHAR[], CHAR[])

Daten auslesen
EKI_STATUS = EKI_GetBool(CHAR[], CHAR[], BOOL)
EKI_STATUS = EKI_GetBoolArray(CHAR[], CHAR[], BOOL[])
EKI_STATUS = EKI_GetInt(CHAR[], CHAR[], Int)
EKI_STATUS = EKI_GetIntArray(CHAR[], CHAR[], Int[])
EKI_STATUS = EKI_GetReal(CHAR[], CHAR[], Real)
EKI_STATUS = EKI_GetRealArray(CHAR[], CHAR[], Real[])
EKI_STATUS = EKI_GetString(CHAR[], CHAR[], CHAR[])
EKI_STATUS = EKI_GetFrame(CHAR[], CHAR[], FRAME)
EKI_STATUS = EKI_GetFrameArray(CHAR[], CHAR[], FRAME[])

Funktion auf Fehler prüfen


EKI_CHECK(EKI_STATUS, EKrlMsgType, CHAR[])

Speicher löschen, sperren, entsperren und prüfen


EKI_STATUS = EKI_ClearBuffer(CHAR[], CHAR[])
EKI_STATUS = EKI_Lock(CHAR[])
EKI_STATUS = EKI_Unlock(CHAR[])
EKI_STATUS = EKI_CheckBuffer(CHAR[], CHAR[])

28 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

6.2.1 Programmiertipps

Es wird empfohlen, den Datenaustausch über die Ethernet KRL-


Schnittstelle ausschließlich im VW_USER zu programmieren und die
Ethernet KRL-Funktionen nicht in Folgen zu verwenden.

 Wenn eine Verbindung im Submit-Interpreter angelegt wird, sind folgende


Punkte zu beachten:
 In der Verbindungskonfiguration muss über das Element <ENVIRON-
MENT> angegeben werden, dass es sich um einen Submit-Kanal
handelt.
 Ein im Submit-Interpreter geöffneter Kanal kann auch vom Roboter-In-
terpreter angesprochen werden.
 Wird der Submit-Interpreter abgewählt, wird die Verbindung per Kon-
figuration automatisch gelöscht.

EKI-Anweisungen werden im Vorlauf ausgeführt!

 Wenn eine EKI-Anweisung im Hauptlauf ausgeführt werden soll, müssen


Anweisungen verwendet werden, die einen Vorlaufstopp auslösen, z. B.
WAIT SEC.
 Da jeder Zugriff auf die Schnittstelle Zeit kostet, wird empfohlen große Da-
tenmengen mit den Feld-Zugriffsfunktionen EKI_Get…Array() abzurufen.
 EthernetKRL kann über EKI_Get…Array() auf maximal 512 Feld-Elemen-
te zugreifen. Es ist möglich in KRL ein größeres Feld anzulegen, z. B. my-
Frame[1000], es können aber immer nur maximal 512 Elemente gelesen
werden.
 Es gibt verschiedene Möglichkeiten auf Daten zu warten:
 Über das Setzen eines Flags oder eines Ausgangs kann angezeigt
werden, dass ein bestimmtes Datenelement oder ein vollständiger Da-
tensatz empfangen wurde (Element Set_Flag oder Set_Out in der
XML-Struktur für den Datenempfang).
Beispiel: Interrupt des KRL-Programms über WAIT FOR $FLAG[x]
(>>> 7.2.5 "Beispielkonfiguration XmlCallback" Seite 51)
 Über die Funktion EKI_CheckBuffer() kann zyklisch abgefragt werden,
ob neue Datenelemente im Speicher vorhanden sind.

6.2.2 Initialisieren und Löschen einer Verbindung

Beschreibung Eine Verbindung muss mit der Funktion EKI_Init() angelegt und initialisiert
werden. Die in der Funktion angegebene Verbindungskonfiguration wird dabei
eingelesen. Eine Verbindung kann sowohl im Roboter- als auch im Submit-In-
terpreter angelegt werden.
Eine Verbindung kann im Roboter- oder Submit-Interpreter über die Funktion
EKI_Clear() wieder gelöscht werden. Zusätzlich kann das Löschen einer Ver-
bindung an Roboter- und Submit-Interpreter-Aktionen oder Systemaktionen
gekoppelt sein. (Konfigurierbar über das Element <ENVIRONMENT> in der
Verbindungskonfiguration)

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 29 / 81


KUKA.EthernetKRL 2.2

Konfiguration
"Program"

Abb. 6-1: Verbindungskonfiguration "Program"

Bei dieser Konfiguration wird eine Verbindung nach folgenden Aktionen ge-
löscht.
 Programm zurücksetzen.
 Programm abwählen.
 E/As rekonfigurieren.

Beim Rekonfigurieren der E/As wird der Treiber neu geladen, d. h.


alle Initialisierungen werden gelöscht.

Konfiguration
"Submit"

Abb. 6-2: Verbindungskonfiguration "Submit"

Bei dieser Konfiguration wird eine Verbindung nach folgenden Aktionen ge-
löscht.
 Submit-Interpreter abwählen.
 E/As rekonfigurieren.

Beim Rekonfigurieren der E/As wird der Treiber neu geladen, d. h.


alle Initialisierungen werden gelöscht.

30 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

Konfiguration
"System"

Abb. 6-3: Verbindungskonfiguration "System"

Bei dieser Konfiguration wird eine Verbindung nach folgenden Aktionen ge-
löscht.
 E/As rekonfigurieren.

Beim Rekonfigurieren der E/As wird der Treiber neu geladen, d. h.


alle Initialisierungen werden gelöscht.

6.2.3 Öffnen und Schließen einer Verbindung

Beschreibung Die Verbindung zum externen System wird über ein KRL-Programm herge-
stellt. Die meisten KRL-Programme sind wie folgt aufgebaut:
1 DEF Connection()
...
2 RET=EKI_Init("Connection")
3 RET=EKI_Open("Connection")
...
4 Write data, send data or get received data
...
5 RET=EKI_Close("Connection")
6 RET=EKI_Clear("Connection")
...
7 END

Zeile Beschreibung
2 EKI_Init() initialisiert den Kanal, über den sich die Schnittstelle
mit dem externen System verbindet.
3 EKI_Open() öffnet den Kanal.
4 KRL-Anweisungen, um Daten in den Speicher zu schreiben,
Daten zu senden oder auf empfangene Daten zuzugreifen
5 EKI_Close() schließt den Kanal.
6 EKI_Clear () löscht den Kanal.

Bei der Programmierung ist zu beachten, ob die Schnittstelle als Server oder
als Client konfiguriert ist.

Server-Betrieb Wenn das externe System als Client konfiguriert ist, versetzt EKI_Open() die
Schnittstelle (= Server) in einen Abhörzustand. Der Server wartet auf die Ver-
bindungsanfrage eines Clients, ohne dass der Programmablauf unterbrochen
wird. Wenn in der Konfigurationsdatei das Element <TIMEOUT Connect="…"/
> nicht beschrieben wird, wartet der Server solange bis ein Client eine Verbin-
dung anfordert.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 31 / 81


KUKA.EthernetKRL 2.2

Eine Verbindungsanfrage durch einen Client wird durch Zugriff auf die Schnitt-
stelle oder durch eine Ereignismeldung signalisiert, z. B. über das Element
<ALIVE SET_OUT="…"/>.
Wenn der Programmablauf unterbrochen werden soll solange der Server die
Verbindungsanfrage erwartet, muss ein Ereignis-Flag oder -Ausgang pro-
grammiert werden, z. B. WAIT FOR $OUT[…].

Es wird empfohlen, EKI_Close() im Server-Betrieb nicht zu verwen-


den. Im Server-Betrieb wird der Kanal vom externen Client aus ge-
schlossen.

Client-Betrieb Wenn das externe System als Server konfiguriert ist, unterbricht EKI_Open()
den Programmablauf bis die Verbindung zum externen System aktiv ist.
EKI_Close() schließt die Verbindung zum externen Server.

6.2.4 Senden von Daten

Beschreibung Je nach Konfiguration und Programmierung können folgende Daten mit


EKI_Send() gesendet werden:
 Vollständige XML-Struktur
 Partielle XML-Struktur
 XML-Daten direkt als Zeichenkette
 Binär-Datensatz mit Endzeichenfolge (EOS) direkt als Zeichenkette
 Binär-Datensatz fester Länge direkt als Zeichenkette
Binär-Datensätze fester Länge müssen im KRL-Programm mit
CAST_TO() eingelesen werden. Es sind nur Daten vom Typ REAL
(4 Bytes) lesbar, kein Double.

Detaillierte Informationen zum Befehl CAST_TO() sind in der Doku-


mentation CREAD/CWRITE zu finden.

Beispiel XML- Senden der vollständigen XML-Struktur


Daten  Gespeicherte XML-Struktur für den Datenversand:
<Robot>
<ActPos X="1000.12"></ActPos>
<Status>12345678</Status>
</Robot>

 Programmierung:
DECL EKI_STATUS RET
RET=EKI_Send("Channel_1","Robot")

 Gesendete XML-Struktur:
<Robot>
<ActPos X="1000.12"></ActPos>
<Status>12345678</Status>
</Robot>

Senden eines Teils der XML-Struktur


 Gespeicherte XML-Struktur für den Datenversand (wird beim direkten
Senden nicht verwendet):
<Robot>
<ActPos X="1000.12"></ActPos>
<Status>12345678</Status>
</Robot>

32 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

 Programmierung:
DECL EKI_STATUS RET
RET=EKI_Send("Channel_1","Robot/ActPos")

 Gesendete XML-Struktur:
<Robot>
<ActPos X="1000.12"></ActPos>
</Robot>

Direktes Senden der XML-Daten als Zeichenkette


 Gespeicherte XML-Struktur für den Datenversand:
<Robot>
<ActPos X="1000.12"></ActPos>
<Status>12345678</Status>
</Robot>

 Programmierung:
DECL EKI_STATUS RET
RET=EKI_Send("Channel_1","<POS><XPOS>1</XPOS></POS>")

 Gesendete Zeichenkette:
<POS><XPOS>1</XPOS></POS>

Beispiel Binär- Direktes Senden eines Binär-Datensatzes fester Länge (10 Byte)
Daten  Konfigurierte Rohdaten:
<RAW>
<ELEMENT Tag="Buffer" Type="BYTE" Size="10" />
</RAW>

 Programmierung:
DECL EKI_STATUS RET
CHAR Bytes[10]
OFFSET=0
CAST_TO(Bytes[],OFFSET,91984754,913434.2,TRUE,"X")
RET=EKI_Send("Channel_1",Bytes[])

 Gesendete Daten:
"r?{ ? _I X"

Direktes Senden eines Binär-Datensatzes mit Endzeichenfolge


 Konfigurierte Rohdaten:
<RAW>
<ELEMENT Tag="Buffer" Type="STREAM" EOS="65,66" />
</RAW>

 Programmierung:
DECL EKI_STATUS RET
CHAR Bytes[64]
Bytes[]="Stream ends with:"
RET=EKI_Send("Channel_1",Bytes[])

 Gesendete Daten:
"Stream ends with:AB"

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 33 / 81


KUKA.EthernetKRL 2.2

6.2.5 Auslesen von Daten

Zum Auslesen von Daten müssen die zugehörigen KRL-Variablen in-


itialisiert sein, z. B. durch die Zuweisung von Werten.

Beschreibung Beim Speichern und Auslesen der Daten werden XML- und Binär-Daten un-
terschiedlich behandelt:
 XML-Daten werden von der EKI extrahiert und typrichtig in verschiedene
Speicher abgelegt. Es ist möglich auf jeden gespeicherten Wert einzeln
zuzugreifen.
Um XML-Daten auszulesen können alle Zugriffsfunktionen EKI_Get…()
verwendet werden.
 Binär-Datensätze werden von der EKI nicht interpretiert und als Ganzes in
einem Speicher abgelegt.
Um einen Binär-Datensatz aus einem Speicher zu lesen muss die Zu-
griffsfunktion EKI_GetString() verwendet werden. Binär-Datensätze wer-
den als Zeichenfolgen aus dem Speicher gelesen.
Binär-Datensätze fester Länge müssen im KRL-Programm mit
CAST_FROM() wieder in einzelne Variablen aufgeteilt werden.

Detaillierte Informationen zum Befehl CAST_FROM() sind in der Do-


kumentation CREAD/CWRITE zu finden.

Beispiel XML- Gespeicherte XML-Struktur für den Datenempfang:


Daten
<Sensor>
<Message>Example message</Message>
<Status>
<IsActive>1</IsActive>
</Status>
</Sensor>

Programmierung:
; Declaration
INT i
DECL EKI_STATUS RET
CHAR valueChar[256]
BOOL valueBOOL

; Initialization
FOR i=(1) TO (256)
valueChar[i]=0
ENDFOR
valueBOOL=FALSE

RET=EKI_GetString("Channel_1","Sensor/Message",valueChar[])
RET=EKI_GetBool("Channel_1","Sensor/Status/IsActive",valueBOOL)

Empfangene Daten:
valueChar[] "Example message"
valueBOOL[] TRUE

Beispiel Binär- Auslesen eines Binär-Datensatzes fester Länge (10 Byte)


Daten  Konfigurierte Rohdaten:
<RAW>
<ELEMENT Tag="Buffer" Type="BYTE" Size="10" />
</RAW>

34 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

 Programmierung:
; Declaration
INT i
INT OFFSET
DECL EKI_STATUS RET
CHAR Bytes[10]
INT valueInt
REAL valueReal
BOOL valueBool
CHAR valueChar[1]

; Initialization
FOR i=(1) TO (10)
Bytes[i]=0
ENDFOR
OFFSET=0
valueInt=0
valueBool=FALSE
valueReal=0
valueChar[1]=0

RET=EKI_GetString("Channel_1","Buffer",Bytes[])
OFFSET=0
CAST_FROM(Bytes[],OFFSET,valueReal,valueInt,valueChar[],valueBool)

Auslesen eines Binär-Datensatzes mit Endzeichenfolge


 Konfigurierte Rohdaten:
<RAW>
<ELEMENT Tag="Buffer" Type="STREAM" EOS="13,10" />
</RAW>

 Programmierung:
; Declaration
INT i
DECL EKI_STATUS RET
CHAR Bytes[64]

; Initialization
FOR i=(1) TO (64)
Bytes[i]=0
ENDFOR

RET=EKI_GetString("Channel_1","Buffer",Bytes[])

6.2.6 Löschen empfangener Daten

Beschreibung Beim Löschen empfangener Daten sind folgende Fälle zu unterscheiden:


 Löschen über EKI_Clear(): Die Ethernet-Verbindung wird beendet und
alle Speicher, die die Verbindung verwendet, werden gelöscht.
 Löschen über EKI_ClearBuffer(): Löscht empfangene noch nicht abgeru-
fene Daten aus einem Speicher oder aus allen Speichern.

XML-Daten werden von der EKI extrahiert und typrichtig in verschie-


dene Speicher abgelegt. Beim Löschen einzelner Speicher muss si-
chergestellt sein, dass keine zusammengehörigen Daten
verlorengehen.

Beispiele  Die Position des zu löschenden Speichers wird in XPATH angegeben. Alle
Elemente nach <Root><Activ><Flag>... werden gelöscht.
EKI_STATUS RET
RET = EKI_ClearBuffer("Channel_1","Root/Activ/Flag")

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 35 / 81


KUKA.EthernetKRL 2.2

 Alle Speicher des Elements <Root>…</Root> werden gelöscht.


EKI_STATUS RET
RET = EKI_ClearBuffer("Channel_1","Root")

6.2.7 EKI_STATUS – Struktur für die funktionsspezifischen Rückgabewerte

Beschreibung Jede EthernetKRL-Funktion gibt funktionsspezifische Werte zurück.


EKI_STATUS ist die globale Strukturvariable, in die diese Werte geschrieben
werden.

Syntax GLOBAL STRUC EKI_STATUS INT Buff, Read, Msg_No, BOOL Con-
nected, INT Counter

Erläuterung der Element Beschreibung


Syntax Buff Anzahl der Elemente, die sich nach dem Zugriff noch
im Speicher befinden
Read Anzahl der Elemente, die aus dem Speicher gelesen
wurden
Msg_No Fehlernummer des Fehlers, der beim Aufruf einer
Funktion oder beim Datenempfang aufgetreten ist
Wenn die automatische Meldungsausgabe deaktiviert
wurde, kann mit EKI_CHECK() die Fehlernummer aus-
gelesen und die Fehlermeldung auf der smartHMI aus-
gegeben werden.
Connected Gibt an, ob eine Verbindung besteht
 TRUE = Verbindung vorhanden
 FALSE = Verbindung unterbrochen
Counter Zeitstempel für empfangene Datenpakete
Im Speicher eintreffende Datenpakete werden fortlau-
fend nummeriert, und zwar in der Reihenfolge, in der
sie im Speicher abgelegt werden.
Wenn einzelne Daten gelesen werden, wird das Struk-
turelement Counter mit dem Zeitstempel des Datenpa-
kets belegt, aus dem das Datenelement stammt.
(>>> 6.2.10 "Verarbeiten unvollständiger Datensätze"
Seite 38)

Rückgabewerte Abhängig von der Funktion werden folgende Elemente der Struktur
EKI_STATUS beschrieben:

Funktion Buff Read Msg_No Connected Counter


EKI_Init()

EKI_Open()

EKI_Close()

EKI_Clear()

EKI_Send()

EKI_Set…()

EKI_Get…()

EKI_ClearBuffer()

36 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

Funktion Buff Read Msg_No Connected Counter


EKI_Lock()

EKI_Unock()

EKI_CheckBuffer()

6.2.8 Konfigurieren von Ereignismeldungen

Beschreibung Über das Setzen eines Ausgangs oder Flags können folgende Ereignisse ge-
meldet werden:
 Verbindung ist aktiv.
 Ein einzelnes XML-Element ist an der Schnittstelle angekommen.
 Eine vollständige XML-Struktur oder ein vollständiger Binär-Datensatz ist
an der Schnittstelle angekommen.

Ereignis-
Ausgang

Abb. 6-4: Ereignis-Ausgang (Verbindung aktiv)

$OUT[23] ist gesetzt, solange die Verbindung zum externen System aktiv ist.
Wenn die Verbindung nicht mehr aktiv ist, wird $OUT[23] zurückgesetzt.

Die Verbindung kann nur mit der Funktion EKI_OPEN() wiederherge-


stellt werden.

Ereignis-Flag

Abb. 6-5: Ereignis-Flag (Vollständige XML-Struktur)

Die XML-Struktur <XY /> enthält die Datenelemente "XY/@x" und "XY/@z".
$FLAG[1] wird gesetzt, da die vollständige XML-Struktur an der Schnittstelle
angekommen ist. $FLAG[2] wird gesetzt, da das Element "x" in "XY" enthalten
ist. $FLAG[3] wird nicht gesetzt, da das Element "y" nicht übermittelt wurde.

Beispiel

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 37 / 81


KUKA.EthernetKRL 2.2

6.2.9 Empfang vollständiger XML-Datensätze

Beschreibung Die Zugriffsfunktionen EKI_Get...() sind solange gesperrt bis alle Daten eines
XML-Datensatzes im Speicher liegen.
Wenn LIFO konfiguriert ist und 2 oder mehr XML-Datensätze direkt hinterein-
ander an der Schnittstelle ankommen, ist nicht mehr sichergestellt, dass ein
Datensatz zusammenhängend aus dem Speicher geholt wird. Es kann z. B.
vorkommen, dass die Daten des zweiten Datensatzes bereits im Speicher ab-
gelegt werden, obwohl der erste Datensatz noch nicht vollständig abgearbei-
tet ist. Da im LIFO-Betrieb immer zuerst auf die zuletzt gespeicherten Daten
zugegriffen wird, ist der in KRL verfügbare Datensatz inkonsistent.
Um die Fragmentierung von Datensätzen im LIFO-Betrieb zu verhindern,
muss die Verarbeitung neu empfangener Daten gesperrt werden bis alle zu-
sammengehörigen Daten aus dem Speicher geholt wurden.

Beispiel ...
RET=EKI_Lock("MyChannel")
RET=EKI_Get...()
RET=EKI_Get...()
...
RET=EKI_Get...()
RET=EKI_Unlock("MyChannel")
...

6.2.10 Verarbeiten unvollständiger Datensätze

Es kann vorkommen, dass ein externes System unvollständige Datensätze


sendet. Einzelne XML-Elemente sind entweder leer oder fehlen ganz, so dass
in einer Speicherschicht Daten aus verschiedenen Datenpaketen liegen.
Wenn die Datensätze zusammenhängend in KRL vorhanden sein müssen,
kann das Strukturelement Counter der Variablen EKI_STATUS benutzt wer-
den. Bei der Verwendung von EKI_Get…Array-Funktionen werden zeitlich
nicht zusammenhängende Daten daran erkannt, dass Counter = 0 zurückge-
geben wird.

6.2.11 EKI_CHECK() – Funktionen auf Fehler prüfen

Beschreibung EthernetKRL gibt bei jedem Fehler eine Meldung auf der smartHMI aus. Die
automatische Ausgabe von Meldungen kann deaktiviert werden.
(>>> 9.3 "Meldungsausgabe und Loggen von Meldungen deaktivieren" Sei-
te 62)
Wenn die automatische Meldungsausgabe deaktiviert worden ist, wird emp-
fohlen mit EKI_CHECK() zu prüfen, ob beim Ausführen einer EthernetKRL-
Funktion ein Fehler aufgetreten ist:
 Die Fehlernummer wird ausgelesen und die zugehörige Meldung auf der
smartHMI ausgegeben.
 Wird in EKI_CHECK() ein Kanalname angegeben, wird beim Datenemp-
fang abgefragt, ob Fehler vorliegen.
(>>> 9.4.5 "Funktion auf Fehler prüfen" Seite 69)
Bei jedem Aufruf von EKI_CHECK() wird das Programm KRC:\R1\TP\Ether-
netKRL\EthernetKRL_USER.SRC aufgerufen. In diesem Programm können
benutzerspezifische Fehlerreaktionen programmiert werden.

Beispiel Eine Verbindung wird immer geschlossen, wenn ein Fehler im Empfang auf-
tritt. Als Fehlerstrategie kann für den Fall, dass die Ethernet-Verbindung ab-
bricht, ein Interrupt programmiert werden.

38 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


6 Programmierung

 In der Konfigurationsdatei XmlTransmit.XML ist definiert, dass bei erfolg-


reicher Verbindung FLAG[1] gesetzt wird. Bei Verbindungsverlust wird
FLAG[1] zurückgesetzt.
<ALIVE Set_Flag="1"/>

 Im KRL-Programm wird der Interrupt deklariert und eingeschaltet. Wird


FLAG[1] zurückgesetzt, wird das Interrupt-Programm ausgeführt.
;FOLD Define callback
INTERRUPT DECL 89 WHEN $FLAG[1]==FALSE DO CON_ERR()
INTERRUPT ON 89
;ENDFOLD

 Im Interrupt-Programm wird mit EKI_CHECK() abgefragt, was für ein Feh-


ler aufgetreten ist, und dann die Verbindung wieder geöffnet.
DEF CON_ERR()
DECL EKI_STATUS RET
RET={Buff 0,Read 0, Msg_no 0, Connected false}
EKI_CHECK(RET,#Quit,"XmlTransmit")
EKI_OPEN("XmlTransmit")
END

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 39 / 81


KUKA.EthernetKRL 2.2

40 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


7 Beispiele

7 Beispiele

7.1 Beispielapplikationen

Übersicht EthernetKRL beinhaltet Beispielapplikationen, mit denen eine Kommunikation


zwischen einem Server-Programm und der Robotersteuerung hergestellt wer-
den kann. Die Software befindet sich auf der ausgelieferten CD im Verzeichnis
DOC\Example.
Die Software besteht aus folgenden Komponenten:

Komponente Ordner
Server-Programm EthernetKRL_Server.exe ...\Application
Beispielprogramme in KRL ...\Program
 BinaryFixed.src
 BinaryStream.src
 XmlCallback.src
 XmlServer.src
 XmlTransmit.src
Beispielkonfigurationen in XML ...\Config
 BinaryFixed.xml
 BinaryStream.xml
 XmlCallBack.xml
 XmlServer.xml
 XmlTransmit.xml
 XmlFullConfig.xml

7.1.1 Beispielapplikationen implementieren

Voraussetzung Externes System:


 Windows-Betriebssystem mit installiertem .NET-Framework 3.5 oder hö-
her
Robotersteuerung:
 Benutzergruppe Experte
 Betriebsart T1 oder T2

Vorgehensweise 1. Server-Programm auf externes System kopieren.


2. Die SRC-Dateien in das Modul VW_USER einbinden.
(>>> 7.1.2 "Beispielprogramm in Modul VW_USER einbinden" Seite 42)
3. Die XML-Dateien in das Verzeichnis C:\KRC\ROBOTER\Con-
fig\User\Common\EthernetKRL der Robotersteuerung kopieren.
4. Server-Programm auf dem externen System starten.
(>>> 7.1.3 "Bedienoberfläche Server-Programm" Seite 43)
5. Menü-Button drücken. Das Fenster Communication Properties öffnet
sich.
(>>> 7.1.4 "Kommunikationsparameter im Server-Programm einstellen"
Seite 45)
6. Nur wenn am externen System mehrere Netzwerk-Schnittstellen zur Ver-
fügung stehen: Nummer des Netzwerkadapters (= Netzwerkkarten-Index)
eingeben, der zur Kommunikation mit der Robotersteuerung genutzt wird.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 41 / 81


KUKA.EthernetKRL 2.2

7. Fenster Communication Properties schließen und Start-Button drücken.


Die zur Kommunikation verfügbare IP-Adresse wird im Meldungsfenster
angezeigt.
8. Angezeigte IP-Adresse des externen Systems in der gewünschten XML-
Datei einstellen.

7.1.2 Beispielprogramm in Modul VW_USER einbinden

Voraussetzung  Benutzergruppe Experte


 Betriebsart T1 oder T2

Vorgehensweise 1. Neues Programm (Folge) anlegen.


2. In der Punkt-SPS der PTP-Bewegung vor Folgenstart den VW_USER auf-
rufen.
3. Im Inline-Formular VW User für das gewünschte Beispielprogramm einen
Parameter definieren, der an das Modul VW_USER übergeben wird.
4. Im Unterprogramm USER_MAIN() der Datei VW_USR_R.SRC das Bei-
spielprogramm über eine IF-Anweisung aufrufen, wenn der definierte Pa-
rameter übergeben wird.
5. Am Ende der Datei VW_USR_R.SRC das Beispielprogramm als Unter-
programm einfügen.

Beispiel Im Programm FOLGE1.SRC wird der VW_USER aufgerufen und der Parame-
ter X=12345 an das Modul VW_USER übergeben.
1 DEF FOLGE1()
2 PTP VB=100% VE=0% ACC=100% RobWzg=0 Base=0 SPSTrig=0[1/100s] P
3 1: VW USER X=12345 [mm] P2= 1 P3=1 P4=1 P5=1 P6=1 P7=EIN
4 Warte auf Folgenstart
...

Im Unterprogramm USER_MAIN() der Datei VW_USR_R.SRC wird überprüft,


ob der Parameter X=12345 (= PAR1) übergeben wurde. Wenn dies der Fall
ist, wird das Unterprogramm BinaryFixed() aufgerufen.

42 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


7 Beispiele

1 DEF VW_USR_R(USER_CMD :IN,CMD_SEL :IN, PARA1 :IN,PARA2 :IN,PARA3


:IN,PARA4 :IN,PARA5 :IN,PARA6 :IN,PARA7 :IN )
...
19 DEF USER_MAIN (CMD_SEL :IN,PAR1 :IN,PAR2 :IN, PAR3
:IN,PAR4 :IN,PAR5 :IN,PAR6 :IN,PAR7 :IN)
20 ;Aufruf im Hauptlauf
21 INT CMD_SEL,PAR1,PAR2,PAR3,PAR4,PAR5,PAR6
22 BOOL PAR7
23
24 IF PAR1 == 12345 THEN
25 BinaryFixed()
26 ENDIF
27
28 END
...
32 DEF USER_MAKRO (CMD_SEL :IN,PAR1 :IN,PAR2 :IN, PAR3
:IN,PAR4 :IN,PAR5 :IN,PAR6 :IN,PAR7 :IN)
33 ;Aufruf im Vorlauf
34 INT CMD_SEL,PAR1,PAR2,PAR3,PAR4,PAR5,PAR6
35 BOOL PAR7
36 END
37
38 DEF BinaryFixed( )
39 Declaration
40 INI
41 Initialize sample data
42
43 RET=EKI_Init("BinaryFixed")
44 RET=EKI_Open("BinaryFixed")
45 EKI_CHECK(RET,#QUIT)
46
47 OFFSET=0
48 CAST_TO(Bytes[],OFFSET,34.425,674345,"R",TRUE)
49
50 RET = EKI_Send("BinaryFixed",Bytes[])
51
52 WAIT FOR $FLAG[1]
53 RET=EKI_GetString("BinaryFixed","Buffer",Bytes[])
54 $FLAG[1]=FALSE
55
56 OFFSET=0
57 CAST_FROM(Bytes[],OFFSET,valueReal,valueInt,
valueChar[],valueBool)
58
59 RET=EKI_Close("BinaryFixed")
60 RET=EKI_Clear("BinaryFixed")
61 END

Zeile Beschreibung
24 … 26 Bedingung für den Aufruf des Unterprogramms BinaryFixed():
PAR1=12345
38 … 61 Unterprogramm BinaryFixed()

7.1.3 Bedienoberfläche Server-Programm

Beschreibung Das Server-Programm ermöglicht es, die Kommunikation zwischen einem ex-
ternen System und der Robotersteuerung zu testen, indem eine stabile Ver-
bindung zur Robotersteuerung hergestellt wird.
Das Server-Programm enthält folgende Funktionalitäten:
 Senden und Empfangen von Daten (automatisch oder manuell)
 Anzeige der empfangenen Daten
 Anzeige der gesendeten Daten

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 43 / 81


KUKA.EthernetKRL 2.2

Abb. 7-1: Server-Programm Bedienoberfläche

Pos. Beschreibung
1 Meldungsfenster
2 Anzeige der eingestellten Kommunikationsparameter
(>>> 7.1.4 "Kommunikationsparameter im Server-Programm ein-
stellen" Seite 45)
 P: Port-Nummer
 E: Beispieldaten
 Xml: XML-Daten
 BinaryFixed: Binär-Daten mit fester Länge
 BinaryStream: Binär-Datenstrom variabel mit Endzei-
chenfolge
 A: Kommunikationsmodus
 Autoreply: Der Server beantwortet jedes empfangene Da-
tenpaket automatisch.
 Manual: Nur manueller Datenempfang oder Datenversand
3 Stopp-Button
Die Kommunikation mit der Robotersteuerung wird beendet und
der Server wird zurückgesetzt.
4 Start-Button
Der Datenaustausch zwischen Server-Programm und Roboter-
steuerung wird ausgewertet. Die erste eingehende Verbindungs-
anfrage wird gebunden und als Kommunikationsadapter benutzt.
5 Menü-Button zum Einstellen der Kommunikationsparameter
(>>> 7.1.4 "Kommunikationsparameter im Server-Programm ein-
stellen" Seite 45)

44 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


7 Beispiele

Pos. Beschreibung
6 Anzeigeoptionen
 Pfeil zeigt nach links: Die empfangenen Daten werden ange-
zeigt. (Default)
 Pfeil zeigt nach rechts: Die gesendeten Daten werden ange-
zeigt.
7 Button für den manuellen Datenempfang
8 Button für den manuellen Datenversand
9 Anzeigefenster
Je nach eingestellter Anzeigeoption werden die gesendeten oder
die empfangenen Daten angezeigt.

7.1.4 Kommunikationsparameter im Server-Programm einstellen

Vorgehensweise 1. Im Server-Programm auf den Menü-Button klicken.


Das Fenster Communication Properties öffnet sich.
2. Kommunikationsparameter einstellen.
3. Fenster schließen.

Beschreibung

Abb. 7-2: Fenster Communication Properties

Element Beschreibung
Example Beispieldaten auswählen.
 Xml: XML-Daten
 BinaryFixed: Binär-Daten mit fester Länge
 BinaryStream: Binär-Datenstrom variabel mit End-
zeichenfolge
Default-Wert: xml
Autoresponder Kommunikationsmodus auswählen.
 Autoreply: Der Server beantwortet jedes empfan-
gene Datenpaket automatisch.
 Manual: Nur manueller Datenempfang oder Daten-
versand
Default-Wert: Autoreply

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 45 / 81


KUKA.EthernetKRL 2.2

Element Beschreibung
Portnumber Port-Nummer der Socket-Verbindung eingeben.
An diesem Port erwartet das externe System die Ver-
bindungsanfrage der Robotersteuerung. Es muss eine
freie Nummer gewählt werden, die nicht als Standard-
dienst belegt ist.
Default-Wert: 59152
Network inter- Nummer des Netzwerkadapters eingeben.
face card index
Nur relevant, wenn das externe System mehrere Netz-
werkkarten benutzt, z. B. WLAN und LAN.
Default-Wert: 0

7.2 Beispielkonfigurationen und -programme

7.2.1 Beispielkonfiguration BinaryFixed

Zur Kommunikation mit der Robotersteuerung müssen im Server-


Programm die passenden Beispieldaten eingestellt sein, hier Binary-
Fixed.

Die EKI ist als Client konfiguriert. Über die Verbindung können nur Binär-Da-
tensätze mit einer festen Länge von 10 Bytes und dem Element-Namen "Buf-
fer" empfangen werden. Das Server-Programm sendet einen Datensatz.
Wenn die Schnittstelle externe Daten empfangen hat, wird $FLAG[1] gesetzt.

XML-Datei <ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<IP>x.x.x.x</IP>
<PORT>59152</PORT>
</EXTERNAL>
</CONFIGURATION>
<RECEIVE>
<RAW>
<ELEMENT Tag="Buffer" Type="BYTE" Set_Flag="1" Size="10" />
</RAW>
</RECEIVE>
<SEND />
</ETHERNETKRL>

Binär-Datensätze fester Länge müssen im KRL-Programm mit CAST_TO()


und CAST_FROM() ein- und ausgelesen werden. Es sind nur Daten vom Typ
REAL (4 Bytes) lesbar, kein Double.

Detaillierte Informationen zu den Befehlen CAST_TO() und


CAST_FROM() sind in der Dokumentation CREAD/CWRITE zu fin-
den.

46 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


7 Beispiele

Programm 1 DEF BinaryFixed( )


2 Declaration
3 INI
4 Initialize sample data
5
6 RET=EKI_Init("BinaryFixed")
7 RET=EKI_Open("BinaryFixed")
8
9 OFFSET=0
10 CAST_TO(Bytes[],OFFSET,34.425,674345,"R",TRUE)
11
12 RET = EKI_Send("BinaryFixed",Bytes[])
13
14 WAIT FOR $FLAG[1]
15 RET=EKI_GetString("BinaryFixed","Buffer",Bytes[])
16 $FLAG[1]=FALSE
17
18 OFFSET=0
19 CAST_FROM(Bytes[],OFFSET,valueReal,valueInt,
valueChar[],valueBool)
20
21
22 RET=EKI_Close("BinaryFixed")
23 RET=EKI_Clear("BinaryFixed")
24 END

Zeile Beschreibung
4 Initialisieren der KRL-Variablen durch Zuweisung von Werten
6 EKI_Init() initialisiert den Kanal, über den sich die Schnittstelle
mit dem externen System verbindet.
7 EKI_Open() öffnet den Kanal und verbindet sich mit dem Ser-
ver.
9, 10 CAST_TO schreibt die Werte in das CHAR-Feld Bytes[].
12 EKI_Send() sendet das CHAR-Feld Bytes[] an das externe
System.
14 … 16 $FLAG[1] signalisiert den Empfang des konfigurierten Daten-
elements.
EKI_GetString greift auf den Speicher zu und kopiert die Da-
ten in das CHAR-Feld Bytes[].
$FLAG[1] wird wieder zurückgesetzt.
18, 19 CAST_FROM liest die im CHAR-Feld Bytes[] enthaltenen
Werte aus und kopiert sie typgerecht in die angegebenen Va-
riablen.
22 EKI_Close() schließt den Kanal.
23 EKI_Clear () löscht den Kanal.

7.2.2 Beispielkonfiguration BinaryStream

Zur Kommunikation mit der Robotersteuerung müssen im Server-


Programm die passenden Beispieldaten eingestellt sein, hier Bina-
ryStream.

Die EKI ist als Client konfiguriert. Über die Verbindung können nur Binär-Da-
tensätze mit einer Länge von maximal 64 Bytes und dem Element-Namen
"Buffer" empfangen werden. Das Ende des Binär-Datensatzes muss mit der
Endzeichenfolge CR, LF gekennzeichnet seien. Wenn die Schnittstelle dieses
Element empfangen hat, wird $FLAG[1] gesetzt.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 47 / 81


KUKA.EthernetKRL 2.2

XML-Datei <ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<IP>x.x.x.x</IP>
<PORT>59152</PORT>
</EXTERNAL>
</CONFIGURATION>
<RECEIVE>
<RAW>
<ELEMENT Tag="Buffer" Type="STREAM" Set_Flag="1"
Size="64" EOS="13,10" />
</RAW>
</RECEIVE>
<SEND />
</ETHERNETKRL>

Programm 1 DEF BinaryStream( )


2 Declaration
3 INI
4 Initialize sample data
5
6 RET=EKI_Init("BinaryStream")
7 RET=EKI_Open("BinaryStream")
8
9 Bytes[]="Stream ends with CR,LF"
10
11 RET = EKI_Send("BinaryStream",Bytes[])
12
13 WAIT FOR $FLAG[1]
14 RET=EKI_GetString("BinaryStream","Buffer",Bytes[])
15 $FLAG[1]=FALSE
16
17 RET=EKI_Close("BinaryStream")
18 RET=EKI_Clear("BinaryStream")
19
20 END

Zeile Beschreibung
4 Initialisieren der KRL-Variablen durch Zuweisung von Werten
6 EKI_Init() initialisiert den Kanal, über den sich die Schnittstelle
mit dem externen System verbindet.
7 EKI_Open() öffnet den Kanal und verbindet sich mit dem Ser-
ver.
9 Das CHAR-Feld Bytes[] wird mit Daten beschrieben.
11 EKI_Send() sendet das CHAR-Feld Bytes[] an das externe
System.
13 … 15 $FLAG[1] signalisiert den Empfang des konfigurierten Daten-
elements.
EKI_GetString liest die Zeichenfolge im CHAR-Feld Bytes[]
aus dem Speicher.
$FLAG[1] wird wieder zurückgesetzt.
17 EKI_Close() schließt den Kanal.
18 EKI_Clear() löscht den Kanal.

7.2.3 Beispielkonfiguration XmlTransmit

Zur Kommunikation mit der Robotersteuerung müssen im Server-


Programm die passenden Beispieldaten eingestellt sein, hier Xml.

48 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


7 Beispiele

Die EKI ist als Client konfiguriert. Es werden Roboterdaten gesendet und nach
einer Wartezeit von 1 sec die empfangenen Sensordaten aus dem Speicher
gelesen.

XML-Datei <ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<IP>x.x.x.x</IP>
<PORT>59152</PORT>
</EXTERNAL>
</CONFIGURATION>
<RECEIVE>
<XML>
<ELEMENT Tag="Sensor/Message" Type="STRING" />
<ELEMENT Tag="Sensor/Positions/Current/@X" Type="REAL" />
<ELEMENT Tag="Sensor/Positions/Before/X" Type="REAL" />
<ELEMENT Tag="Sensor/Nmb" Type="INT" />
<ELEMENT Tag="Sensor/Status/IsActive" Type="BOOL" />
<ELEMENT Tag="Sensor/Read/xyzabc" Type="FRAME" />
<ELEMENT Tag="Sensor/Show/@error" Type="BOOL" />
<ELEMENT Tag="Sensor/Show/@temp" Type="INT" />
<ELEMENT Tag="Sensor/Show" Type="STRING" />
<ELEMENT Tag="Sensor/Free" Type="INT" />
</XML>
</RECEIVE>
<SEND>
<XML>
<ELEMENT Tag="Robot/Data/LastPos/@X" />
<ELEMENT Tag="Robot/Data/LastPos/@Y" />
<ELEMENT Tag="Robot/Data/LastPos/@Z" />
<ELEMENT Tag="Robot/Data/LastPos/@A" />
<ELEMENT Tag="Robot/Data/LastPos/@B" />
<ELEMENT Tag="Robot/Data/LastPos/@C" />
<ELEMENT Tag="Robot/Data/ActPos/@X" />
<ELEMENT Tag="Robot/Status" />
<ELEMENT Tag="Robot/Mode" />
<ELEMENT Tag="Robot/RobotLamp/GrenLamp/LightOn" />
</XML>
<SEND />
</ETHERNETKRL>

Programm 1 DEF XmlTransmit( )


2 Declaration
3 Communicated data
4 INI
5 Initialize sample data
6
7 RET=EKI_Init("XmlTransmit")
8 RET=EKI_Open("XmlTransmit")
9
10 Write data to connection
11 Send data to external program
12 Get received sensor data
13
14 RET=EKI_Close("XmlTransmit")
15 RET=EKI_Clear("XmlTransmit")
16
17 END

Zeile Beschreibung
5 Initialisieren der KRL-Variablen durch Zuweisung von Werten
7 EKI_Init() initialisiert den Kanal, über den sich die Schnittstelle
mit dem externen System verbindet.
8 EKI_Open() öffnet den Kanal und verbindet sich mit dem ex-
ternen System.
10 Schreibt Daten in das gespeicherte XML-Dokument für den
Datenversand.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 49 / 81


KUKA.EthernetKRL 2.2

Zeile Beschreibung
11 Sendet das beschriebene XML-Dokument an das externe
System.
12 Liest die empfangenen Sensordaten aus dem Speicher.
14 EKI_Close() schließt den Kanal.
15 EKI_Clear () löscht den Kanal.

7.2.4 Beispielkonfiguration XmlServer

Wenn die Schnittstelle als Server konfiguriert ist, kann das Server-
Programm auf dem externen System nicht verwendet werden. Ein
einfacher Client kann mit Windows Hyperterminal realisiert werden.

Die EKI ist als Server konfiguriert. Solange eine Verbindung zum externen
System besteht, ist $FLAG[1] gesetzt.

XML-Datei <ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<TYPE>Client</TYPE>
</EXTERNAL>
<INTERNAL>
<IP>x.x.x.x</IP>
<PORT>54600</PORT>
<ALIVE Set_Flag="1" />
</INTERNAL>
</CONFIGURATION>
<RECEIVE>
<XML>
<ELEMENT Tag="Sensor/A" Type="BOOL" />
</XML>
</RECEIVE>
<SEND>
<XML>
<ELEMENT Tag="Robot/B" />
</XML>
</SEND>
</ETHERNETKRL>

Programm 1 DEF XmlServer( )


2 Declaration
3 INI
4
5 RET=EKI_Init("XmlServer")
6 RET=EKI_Open("XmlServer")
7
8 ; wait until server is conntected
9 wait for $FLAG[1]
10 ; wait until server is deconnected
11 wait for $FLAG[1]==FALSE
12
13 RET=EKI_Clear("XmlServer")
14 END

Zeile Beschreibung
5 EKI_Init() initialisiert den Kanal, über den sich das externe
System mit der Schnittstelle verbindet.
6 EKI_Open() öffnet den Kanal.
9 Wenn sich der externe Client erfolgreich mit dem Server ver-
bunden hat, wird $FLAG[1] gesetzt.

50 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


7 Beispiele

Zeile Beschreibung
11 Da die Schnittstelle als Server konfiguriert ist, erwartet die Ro-
botersteuerung, dass der Kanal vom externen Client ge-
schlossen wird. Wenn dies der Fall ist, wird $FLAG[1]
gelöscht.
13 EKI_Clear () löscht den Kanal.

7.2.5 Beispielkonfiguration XmlCallback

Zur Kommunikation mit der Robotersteuerung müssen im Server-


Programm die passenden Beispieldaten eingestellt sein, hier Xml.

Die EKI ist als Client konfiguriert. Es werden Roboterdaten gesendet, Sensor-
daten empfangen und dann auf $FLAG[1] gewartet. $FLAG[1] signalisiert,
dass die Sensordaten ausgelesen wurden.
In der XML-Datei ist konfiguriert, dass $FLAG[998] gesetzt wird, wenn die
Schnittstelle alle Sensordaten empfangen hat. Dieses Flag löst einen Interrupt
im Programm aus. Durch die Konfiguration des Tags "Sensor" als Ereignis-
Tag wird sichergestellt, dass die Sensordaten erst abgeholt werden, wenn alle
Daten in den Speichern liegen.
Wenn die Sensordaten ausgelesen sind, wird $FLAG[998] wieder zurückge-
setzt und $FLAG[1] gesetzt.

XML-Datei <ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<IP>x.x.x.x</IP>
<PORT>59152</PORT>
</EXTERNAL>
</CONFIGURATION>
<RECEIVE>
<XML>
<ELEMENT Tag="Sensor/Message" Type="STRING" />
<ELEMENT Tag="Sensor/Positions/Current/@X" Type="REAL" />
<ELEMENT Tag="Sensor/Positions/Before/X" Type="REAL" />
<ELEMENT Tag="Sensor/Nmb" Type="INT" />
<ELEMENT Tag="Sensor/Status/IsActive" Type="BOOL" />
<ELEMENT Tag="Sensor/Read/xyzabc" Type="FRAME" />
<ELEMENT Tag="Sensor/Show/@error" Type="BOOL" />
<ELEMENT Tag="Sensor/Show/@temp" Type="INT" />
<ELEMENT Tag="Sensor/Show" Type="STRING" />
<ELEMENT Tag="Sensor/Free" Type="INT" Set_Out="998" />
<ELEMENT Tag="Sensor" Set_Flag="998" />
</XML>
</RECEIVE>
<SEND>
<XML>
<ELEMENT Tag="Robot/Data/LastPos/@X" />
<ELEMENT Tag="Robot/Data/LastPos/@Y" />
<ELEMENT Tag="Robot/Data/LastPos/@Z" />
<ELEMENT Tag="Robot/Data/LastPos/@A" />
<ELEMENT Tag="Robot/Data/LastPos/@B" />
<ELEMENT Tag="Robot/Data/LastPos/@C" />
<ELEMENT Tag="Robot/Data/ActPos/@X" />
<ELEMENT Tag="Robot/Status" />
<ELEMENT Tag="Robot/Mode" />
<ELEMENT Tag="Robot/RobotLamp/GrenLamp/LightOn" />
</XML>
<SEND />
</ETHERNETKRL>

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 51 / 81


KUKA.EthernetKRL 2.2

Programm 1 DEF XmlCallBack( )


2 Declaration
3 Communicated data
4 INI
5 Define callback
6
7 RET=EKI_Init("XmlCallBack")
8 RET=EKI_Open("XmlCallBack")
9
10 Write data to connection
11 RET = EKI_Send("XmlCallBack","Robot")
12
13 ;wait until data read
14 WAIT FOR $FLAG[1]
15
16 RET=EKI_Close("XmlCallBack")
17 RET=EKI_Clear("XmlCallBack")
18 END
19
20 DEF GET_DATA()
21 Declaration
22 Initialize sample data
23 Get received sensor data
24 Signal read

Zeile Beschreibung
5 Deklaration und Einschalten des Interrupts
7 EKI_Init() initialisiert den Kanal, über den sich die Schnittstelle
mit dem externen System verbindet.
8 EKI_Open() öffnet den Kanal.
10 Schreibt Daten in das gespeicherte XML-Dokument für den
Datenversand.
11 Sendet die Daten.
14 Wartet auf $FLAG[1].
Das Ereignis-Flag meldet, dass alle Daten gelesen wurden.
16 EKI_Close() schließt den Kanal.
17 EKI_Clear () löscht den Kanal.
20 … 24 Initialisieren der KRL-Variablen durch Zuweisung von Werten
und Auslesen der Daten
Wenn alle Daten gelesen sind, wird $FLAG[1] gesetzt.

Datenversand Das XML-Dokument wird vom KRL-Programm mit Roboterdaten beschrieben


und über die EKI an das externe System gesendet.
<Robot>
<Data>
<LastPos X="..." Y="..." Z="..." A="..." B="..." C="...">
</LastPos>
<ActPos X="1000.12">
</ActPos>
</Data>
<Status>12345678</Status>
<Mode>ConnectSensor</Mode>
<RobotLamp>
<GrenLamp>
<LightOn>1</LightOn>
</GrenLamp
</RobotLamp>
</Robot>

Datenempfang Das XML-Dokument wird vom Server-Programm mit Sensordaten beschrie-


ben und von der EKI empfangen.

52 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


7 Beispiele

<Sensor>
<Message>Example message</Message>
<Positions>
<Current X="4645.2" />
<Before>
<X>0.9842</X>
</Before>
</Positions>
<Nmb>8</Nmb>
<Status>
<IsActive>1</IsActive>
</Status>
<Read>
<xyzabc X="210.3" Y="825.3" Z="234.3" A="84.2" B="12.3"
C="43.5" />
</Read>
<Show error="0" temp="9929">Taginfo in attributes</Show>
<Free>2912</Free>
</Sensor>

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 53 / 81


KUKA.EthernetKRL 2.2

54 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


8 Diagnose

8 Diagnose

8.1 Diagnosedaten anzeigen

Vorgehensweise 1. Im Hauptmenü Diagnose > Diagnosemonitor wählen.


2. Im Feld Modul das Modul EKI (EthernetKRL) auswählen.

Beschreibung Name Beschreibung


Gesamtspeicher Insgesamt verfügbarer Speicher (Bytes)
Verbrauchter Spei- Benutzer Speicher (Bytes)
cher
Verbindungen Robo- Anzahl der vom Roboter-Interpreter initialisierten
terprogramm Verbindungen
Verbindungen Sub- Anzahl der vom Submit-Interpreter initialisierten
mitprogramm Verbindungen
Verbindungen Sys- Anzahl der vom System initialisierten Verbindun-
tem gen
Ethernet Verbindun- Anzahl offener Verbindungen
gen
Verarbeitungszeit Maximale Zeit, die benötigt wird, um empfan-
gene Daten zu bearbeiten (Aktualisierung alle
5 sec)
Warnmeldungen Anzahl der Warnmeldungen
Fehlermeldungen Anzahl der Fehlermeldungen

Die Warn- und Fehlermeldungen werden auch dann gezählt, wenn


die automatische Meldungsausgabe und das Loggen von Meldungen
deaktiviert wurde.

8.2 Fehlerprotokoll (EKI-Logbuch)

Alle Fehlermeldungen der Schnittstelle werden in einer LOG-Datei unter


C:\KRC\ROBOTER\LOG\EthernetKRL protokolliert.

8.3 Fehlermeldungen

Wenn beim Aufruf einer Funktion oder beim Datenempfang ein Fehler aufge-
treten ist, gibt EthernetKRL die Fehlernummer zurück. Den Fehlernummern ist
ein Meldungstext zugeordnet, der auf der smartHMI angezeigt wird. Ist die au-
tomatische Ausgabe von Meldungen deaktiviert, kann über EKI_CHECK() die
Meldung weiterhin auf der smartHMI angezeigt werden.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 55 / 81


KUKA.EthernetKRL 2.2

Nr. Meldungstext Ursache Abhilfe


1 Unbekannter Fehler Dem Fehler wurde keine KUKA Roboter GmbH kon-
Meldung zugewiesen. taktieren und Logbuch mit
den Details zum Fehler zur
Verfügung stellen.
(>>> 10 "KUKA Service"
Seite 71)
2 Der Systemspeicher ist Der für EthernetKRL reser- Programmierweise in KRL
verbraucht vierte Speicher ist vollstän- und Konfiguration der
dig belegt. Es können Ethernet-Verbindung über-
keine weiteren Elemente prüfen.
gespeichert werden.
Wenn keine andere Pro-
grammierung oder Konfi-
guration möglich ist, kann
nach Rücksprache mit der
KUKA Roboter GmbH der
Speicher erhöht werden.
(>>> 9.2 "Speicher erhö-
hen" Seite 61)
3 Zugriff auf Datei fehlge- Eine Datei konnte nicht Überprüfen, ob die Datei
schlagen gefunden werden oder ist vorhanden ist oder ob die
nicht lesbar. Datei sich öffnen lässt.
4 Angeforderte Funktion Software-Fehler: Die ver- KUKA Roboter GmbH kon-
nicht implementiert wendete EthernetKRL- taktieren und Logbuch mit
Funktion ist nicht imple- den Details zum Fehler zur
mentiert. Verfügung stellen.
(>>> 10 "KUKA Service"
Seite 71)
5 Fehler bei Erstellen des Die Verbindung wurde KUKA Roboter GmbH kon-
XML Parsers nicht initialisiert, da der taktieren und Logbuch mit
systeminterne Parser nicht den Details zum Fehler zur
aktiviert werden konnte. Verfügung stellen.
(>>> 10 "KUKA Service"
Seite 71)
6 Interpretieren der Konfigu- Fehler beim Lesen der Konfiguration der Ethernet-
ration fehlgeschlagen Verbindungskonfiguration Verbindung überprüfen.
7 Schreiben der Daten zum Fehler beim Beschreiben Konfiguration der Sende-
Senden fehlgeschlagen der XML-Struktur für den struktur überprüfen.
Datenversand
8 Neues Element konnte Fehler beim Anlegen der KUKA Roboter GmbH kon-
nicht angelegt werden Datenspeichers taktieren und Logbuch mit
den Details zum Fehler zur
Verfügung stellen.
(>>> 10 "KUKA Service"
Seite 71)
9 Verbindung nicht vorhan- Wegen fehlender Initialisie- Ethernet-Verbindung mit
den rung ist kein Zugriff auf die EKI_Init() initialisieren.
Verbindung möglich.
10 Ethernet ist getrennt Es ist keine Ethernet-Ver- Ethernet-Verbindung mit
bindung vorhanden. EKI_Open() öffnen.
11 Ethernetverbindung zu Ethernet-Verbindung ist Funktion EKI_Open() nicht
externem System bereits bereits vorhanden. aufrufen, wenn Ethernet-
vorhanden Verbindung bereits vorhan-
den ist.

56 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


8 Diagnose

Nr. Meldungstext Ursache Abhilfe


12 Erstellen des Servers fehl- Eine Ethernet-Verbindung, Konfiguration der Verbin-
geschlagen die als Server konfiguriert dungsparameter überprü-
ist, konnte nicht erstellt fen. (Elemente IP, PORT)
werden.
13 Ethernetparameter konn- Fehler beim Initialisieren Konfiguration der Verbin-
ten nicht initialisiert werden der Ethernet-Verbindung dungsparameter überprü-
fen. (Elemente IP, PORT)
14 Ethernetverbindung zu Keine Ethernet-Verbin- Ethernet-Verbindung her-
externem System konnte dung: stellen:
nicht hergestellt werden
 Hardware-Fehler, z. B.  Hardware überprüfen.
Netzwerkkabel, Switch,  Software des externen
externes System Systems überprüfen.
 Software-Fehler (exter-  Konfiguration der Ver-
nes System) bindungsparameter
 Fehler bei der Verbin- überprüfen. (Elemente
dungskonfiguration IP, PORT)
15 Zugriff auf leeren Emp- Keine Datenelemente im Im KRL-Programm den
fangsspeicher Speicher bei Zugriff mit Rückgabewert der Funk-
EKI_Get…() tion EKI_Get…() auswer-
ten, um nicht auf leere
Speicher zuzugreifen. (Ele-
ment "Buff")
(>>> 6.2.7 "EKI_STATUS
– Struktur für die funktions-
spezifischen Rückgabe-
werte" Seite 36)
16 Element konnte nicht Ein in der Zugriffsfunktion  Name des Datenele-
gefunden werden EKI_Get…() angegebe- ments und seine
nes Datenelement kann Schreibweise im KRL-
nicht gefunden werden. Programm überprüfen.
 Konfiguration der Emp-
fangsstruktur überprü-
fen.
17 Zusammenstellen der  Senden von XML-Da-  Senden von XML-Da-
Daten zum Senden fehlge- ten: Fehler beim Be- ten: Konfiguration der
schlagen schreiben des XML- Sendestruktur überprü-
Dokumentes für den fen.
Datenversand  Senden von Binär-Da-
 Senden von Binär-Da- ten: Funktion
ten: Fehler beim Über- EKI_Send() im KRL-
prüfen der zu Programm überprüfen.
sendenden Binär-Da-
ten
18 Senden von Daten fehlge- Keine Ethernet-Verbin- Ethernet-Verbindung her-
schlagen dung: stellen:
 Hardware-Fehler, z. B.  Hardware überprüfen.
Netzwerkkabel, Switch,  Software des externen
externes System Systems überprüfen.
 Software-Fehler (exter-
nes System)
19 Keine Daten zum Senden In einer Funktion Funktion EKI_Send() im
vorhanden EKI_Send() sind die zu KRL-Programm überprü-
sendenden Daten nicht fen.
angegeben.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 57 / 81


KUKA.EthernetKRL 2.2

Nr. Meldungstext Ursache Abhilfe


20 Datentypen passen nicht Es wurde versucht ein Ele- Datentyp des Elements in
zusammen ment zu lesen, das zu der Konfiguration der Emp-
einem anderen Datentyp fangsstruktur überprüfen.
gehört.
ODER
Im KRL-Programm den
Datentyp verwenden, der
in der Konfiguration der
Empfangsstruktur definiert
ist.
21 Mit maximaler Datenhal- Beim Einlesen der Konfi- Konfiguration der Ethernet-
tung Systemspeicher nicht guration wurde festgestellt, Verbindung überprüfen
ausreichend dass der Systemspeicher und so anpassen, dass
nicht ausreicht. weniger Speicher ver-
braucht wird.
Wenn keine andere Konfi-
guration möglich ist, kann
nach Rücksprache mit der
KUKA Roboter GmbH der
Speicher erhöht werden.
(>>> 9.2 "Speicher erhö-
hen" Seite 61)
22 Fehler bei Lesen der Konfi- Beim Einlesen der Konfi- XML-Struktur in der Konfi-
guration. XML Fehler. guration wurde ein Fehler gurationsdatei überprüfen.
in der XML-Struktur festge-
stellt.
24 Bindung an interne Para- Die Ethernet-Verbindung, In der Konfiguration der
meter (Port,IP) fehlge- d. h. die Schnittstelle, ist Verbindungsparameter die
schlagen als Server konfiguriert. Die richtige IP-Adresse und
in der Konfiguration ange- Port-Nummer verwenden.
gebene IP-Adresse und (Elemente IP, PORT)
Port-Nummer des exter-
nen Systems stehen nicht
zur Verfügung.
25 Interner Softwarefehler Interner Software-Fehler KUKA Roboter GmbH kon-
taktieren und Logbuch mit
den Details zum Fehler zur
Verfügung stellen.
(>>> 10 "KUKA Service"
Seite 71)
26 Das FRAME-Feld ist nicht ini- Ein Feld vom Typ FRAME Feld vom Typ FRAME initi-
tialisiert wurde nicht initialisiert. alisieren (Wert zuweisen).
27 Das KRL CHAR[] Feld ist zu Ein Feld vom Typ CHAR ist Anzahl der Feld-Elemente
klein. zu klein. erhöhen.
512 Ethernetverbindung Keine Ethernet-Verbin- Ethernet-Verbindung wie-
gestört dung: derherstellen:
 Hardware-Fehler, z. B.  Hardware überprüfen.
Netzwerkkabel, Switch,  Software des externen
externes System Systems überprüfen.
 Software-Fehler (exter-
nes System)
768 Ping meldet kein Kontakt Das externe System ant- Externes System überprü-
wortet nicht mehr auf das fen.
gesendete Ping. Die Ver-
bindung ist abgebrochen.

58 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


8 Diagnose

Nr. Meldungstext Ursache Abhilfe


1024 Fehler bei Lesen empfan- Ein vom externen System Das vom externen System
gener XML-Daten empfangenes XML-Doku- gesendete XML-Doku-
ment entspricht nicht dem ment überprüfen.
XPath-Schema.
1280 Grenze speicherbarer Ele- Der Datenspeicher ist mit Im KRL-Programm den
mente erreicht der maximalen Anzahl an Rückgabewert der Funk-
Datenelementen belegt. tion EKI_Get…() auswer-
Die Ethernet-Verbindung ten, um das Verarbeiten
wird geschlossen. empfangener Daten zu
sperren. (Element "Buff")
(>>> 6.2.7 "EKI_STATUS
– Struktur für die funktions-
spezifischen Rückgabe-
werte" Seite 36)
ODER
Datenspeicher erhöhen.
(Element BUFFERING in
der Verbindungskonfigura-
tion)
1536 Empfangene Zeichenkette Programmierfehler auf Die vom externen System
zu lang externem System: Eine gesendeten Daten über-
vom externen System prüfen.
empfangene Zeichenfolge
überschreitet die maximal
zulässige Länge. (Maxi-
mal 3 600 Zeichen)
1792 Limit Empfangsspeicher Der Datenspeicher ist mit Datenspeicher erhöhen.
erreicht der maximalen Anzahl an (Element BUFFSIZE in der
Bytes belegt. Die Ethernet- Verbindungskonfiguration)
Verbindung wird geschlos-
sen.
2048 Server Zeitgrenze erreicht Server wartet auf einen Externes System überprü-
Anruf. fen.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 59 / 81


KUKA.EthernetKRL 2.2

60 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


9 Anhang

9 Anhang

9.1 Erweiterte XML-Struktur für Verbindungseigenschaften

Die erweiterte XML-Struktur darf nur nach Rücksprache mit der


KUKA Roboter GmbH verwendet werden. (>>> 10 "KUKA Service"
Seite 71)

Beschreibung Im Abschnitt <INTERNAL> … </INTERNAL> der Konfigurationsdatei können


weitere Schnittstellen-Eigenschaften konfiguriert werden:

Element Attribut Beschreibung


TIMEOUT Receive Zeit, nach der der Versuch Daten zu empfan-
gen abgebrochen wird (optional)
 0 … 65 534 ms
Default-Wert: 0 ms
Send Zeit, nach der der Versuch Daten zu senden
abgebrochen wird (optional)
 0 … 65 534 ms
Default-Wert: 0 ms
BUFFSIZE Receive Größe des verwendeten Sockets beim Daten-
empfang (optional)
 1 … 65 534 Bytes
Default-Wert: Vom System vorgegeben
Send Größe des verwendeten Sockets beim Daten-
versand (optional)
 1 … 65 534 Bytes
Default-Wert: Vom System vorgegeben

9.2 Speicher erhöhen

Der Speicher darf nur nach Rücksprache mit der KUKA Roboter
GmbH erhöht werden. (>>> 10 "KUKA Service" Seite 71)

Beschreibung Wenn der zur Verfügung stehende Speicher nicht ausreicht, wird empfohlen
die Programmierweise in KRL und die Konfiguration zu überprüfen.
 Überprüfen, ob eine Verbindung so konfiguriert ist , dass der Speicher voll-
ständig mit empfangenen Daten belegt wird.
 Überprüfen, ob mehrere Verbindungen mit hohem Datenaufkommen defi-
niert und aktiviert sind.

Voraussetzung  Windows-Ebene

Vorgehensweise 1. Datei C:\KRC\ROBOTER\Config\User\Common\EthernetKRL.XML öff-


nen.
2. Im Abschnitt <EthernetKRL> im Element <MemSize> die gewünschte
Speicherkapazität in Byte eintragen.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 61 / 81


KUKA.EthernetKRL 2.2

<EthernetKRL>
<Interface>
<MemSize>1048576</MemSize>
...
</EthernetKRL>

3. Änderung speichern und Datei schließen.

9.3 Meldungsausgabe und Loggen von Meldungen deaktivieren

Beschreibung In folgenden Fällen wird empfohlen, die automatische Meldungsausgabe auf


der smartHMI zu deaktivieren:
 Es treten Laufzeitfehler auf.
 Die EKI wird im Submit-Interpreter verwendet.
Wenn die automatische Meldungsanausgabe deaktiviert ist, werden default-
mäßig weiterhin alle Fehlermeldungen protokolliert. Wenn diese Fehler oder
Warnungen bewusst ignoriert werden sollen, z. B. weil das Loggen der Mel-
dungen zu einer hohen Systembelastung und -verlangsamung führt, kann die-
ser Mechanismus ebenfalls deaktiviert werden.

Voraussetzung  Benutzergruppe Experte

Vorgehensweise 1. Im Verzeichnis C:\KRC\ROBOTER\Config\User\Common\EthernetKRL


der Robotersteuerung die Konfigurationsdatei der Ethernet-Verbindung
öffnen.
2. Im Abschnitt <INTERNAL> … </INTERNAL> der XML-Datei folgende Zei-
le eintragen:
<Messages Display="disabled" Logging="disabled"/>

3. Änderung speichern und Datei schließen.

Wenn die automatische Meldungsausgabe deaktiviert ist, kann die


Funktion EKI_CHECK() verwendet werden, um einzelne EKI-Anwei-
sungen auf Fehler zu überprüfen.

9.4 Befehlsreferenz

9.4.1 Verbindung initialisieren, öffnen, schließen und löschen

RET = EKI_Init(CHAR[])
Funktion Initialisiert einen Kanal für die Ethernet-Kommunika-
tion
Folgende Aktionen werden ausgeführt:
 Einlesen der Konfiguration
 Erstellen der Datenspeicher
 Vorbereiten der Ethernet-Verbindung
Parameter Typ: CHAR
Name des Kanals
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_Init("Channel_1")

62 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


9 Anhang

RET = EKI_Open(CHAR[])
Funktion Öffnet einen initialisierten Kanal
Wenn die EthernetKRL-Schnittstelle als Client konfi-
guriert ist, verbindet sich die Schnittstelle mit dem
Server.
Wenn die EthernetKRL-Schnittstelle als Server konfi-
guriert ist, wartet die Schnittstelle auf die Verbindung.
Parameter Typ: CHAR
Name des Kanals
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_Open("Channel_1")

RET = EKI_Close(CHAR[])
Funktion Schließt einen geöffneten Kanal
Parameter Typ: CHAR
Name des Kanals
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_Close("Channel_1")

RET = EKI_Clear(CHAR[])
Funktion Löscht einen Kanal und beendet die Verbindung.
Parameter Typ: CHAR
Name des Kanals
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_Clear("Channel_1")

9.4.2 Daten senden

RET = EKI_Send(CHAR[], CHAR[])


Funktion Sendet eine XML-Struktur oder Rohdaten
(>>> 6.2.4 "Senden von Daten" Seite 32)
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur oder Name
des Elements in den Rohdaten
Wenn die Position oder das Element nicht gefunden
wird, sendet die Funktion die hier enthaltene Informa-
tion
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 63 / 81


KUKA.EthernetKRL 2.2

RET = EKI_Send(CHAR[], CHAR[])


Beispiel 1 RET = EKI_Send("Channel_1", "Root/Test")
Beispiel 2 RET = EKI_Send("Channel_1", MyBytes[])

9.4.3 Daten schreiben

RET = EKI_SetReal(CHAR[], CHAR[], REAL)


Funktion Schreibt einen Gleitkommawert in einen Speicher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: REAL
Wert, der in den Speicher geschrieben wird
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_SetReal("Channel_1", "Root/Number",
1.234)

RET = EKI_SetInt(CHAR[], CHAR[], INTEGER)


Funktion Schreibt einen ganzzahligen Wert in einen Speicher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: INT
Wert, der in den Speicher geschrieben wird
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_SetInt("Channel_1", "Root/List", 67234)

RET = EKI_SetBool(CHAR[], CHAR[], BOOL)


Funktion Schreibt einen booleschen Wert in einen Speicher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: BOOL
Wert, der in den Speicher geschrieben wird
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_SetBool("Channel_1", "Root/Activ", true)

64 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


9 Anhang

RET = EKI_SetFrame(CHAR[], CHAR[], FRAME)


Funktion Schreibt einen Wert vom Typ FRAME in einen Spei-
cher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: FRAME
Wert, der in den Speicher geschrieben wird
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET= EKI_SetFrame("Channel_1", "Root/BASE", {X
0.0, Y 0.0, Z 0.0, A 0.0, B 0.0, C 0.0})

RET = EKI_SetString(CHAR[], CHAR[], CHAR[])


Funktion Schreibt eine Zeichenfolge in einen Speicher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: CHAR
Zeichenfolge, die in den Speicher geschrieben wird
Maximale Zeichen-Anzahl:
 3 600
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_SetString("Channel_1", "Root/Message",
"Hello")

9.4.4 Daten auslesen

RET = EKI_GetBool(CHAR[], CHAR[], BOOL)


Funktion Liest einen booleschen Wert aus einem Speicher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: BOOL
Wert, der aus dem Speicher gelesen wird
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_GetBool("Channel_1", "Root/Activ",
MyBool)

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 65 / 81


KUKA.EthernetKRL 2.2

RET = EKI_GetBoolArray(CHAR[], CHAR[], BOOL[])


Funktion Liest einen booleschen Wert aus einem Speicher und
kopiert den Wert in das vom KRL-Programm überge-
bene Feld
Es werden so lange Werte gelesen bis das Feld voll
ist oder kein Element mehr vorhanden ist.
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: BOOL
Feld, das aus dem Speicher gelesen wird
Maximale Anzahl lesbarer Feld-Elemente:
 512
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_GetBoolArray("Channel_1", "Root/Activ",
MyBool[])

RET = EKI_GetInt(CHAR[], CHAR[], Int)


Funktion Liest einen ganzzahligen Wert aus einem Speicher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: INT
Wert, der aus dem Speicher gelesen wird
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_GetInt("Channel_1", "Root/Numbers/
One", MyInteger)

RET = EKI_GetIntArray(CHAR[], CHAR[], Int[])


Funktion Liest einen ganzzahligen Wert aus einem Speicher
und kopiert den Wert in das vom KRL-Programm
übergebene Feld
Es werden so lange Werte gelesen bis das Feld voll
ist oder kein Element mehr vorhanden ist.
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: INT
Feld, das aus dem Speicher gelesen wird
Maximale Anzahl lesbarer Feld-Elemente:
 512

66 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


9 Anhang

RET = EKI_GetIntArray(CHAR[], CHAR[], Int[])


RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_GetIntArray("Channel_1", "Root/Numbers/
One", MyInteger[])

RET = EKI_GetReal(CHAR[], CHAR[], Real)


Funktion Liest einen Gleitkommawert aus einem Speicher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: REAL
Wert, der aus dem Speicher gelesen wird
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_GetReal("Channel_1", "Root/Position",
MyReal)

RET = EKI_GetRealArray(CHAR[], CHAR[], Real[])


Funktion Liest einen Gleitkommawert aus einem Speicher und
kopiert den Wert in das vom KRL-Programm überge-
bene Feld
Es werden so lange Werte gelesen bis das Feld voll
ist oder kein Element mehr vorhanden ist.
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: REAL
Feld, das aus dem Speicher gelesen wird
Maximale Anzahl lesbarer Feld-Elemente:
 512
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_GetRealArray("Channel_1", "Root/Posi-
tion", MyReal[])

RET = EKI_GetString(CHAR[], CHAR[], CHAR[])


Funktion Liest eine Zeichenfolge aus einem Speicher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur oder Name
des Elements in den Rohdaten

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 67 / 81


KUKA.EthernetKRL 2.2

RET = EKI_GetString(CHAR[], CHAR[], CHAR[])


Parameter 3 Typ: CHAR
Zeichenfolge, die aus dem Speicher gelesen wird
Maximale Zeichen-Anzahl:
 3 600
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
XML-Beispiel RET = EKI_GetString("Channel_1", "Root/Message",
MyChars[])
Binär-Beispiel RET = EKI_GetString("Channel_1", "Streams", MyS-
tream[])

RET = EKI_GetFrame(CHAR[], CHAR[], FRAME)


Funktion Liest einen Wert vom Typ FRAME aus einem Spei-
cher
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: FRAME
Wert, der aus dem Speicher gelesen wird
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_GetFrame("Channel_1", "Root/TCP",
MyFrame)

RET = EKI_GetFrameArray(CHAR[], CHAR[], FRAME[])


Funktion Liest einen Wert vom Typ FRAME aus einem Spei-
cher und kopiert den Wert in das vom KRL-Programm
übergebene Feld
Es werden so lange Werte gelesen bis das Feld voll
ist oder kein Element mehr vorhanden ist.
Parameter 1 Typ: CHAR
Name des geöffneten Kanals
Parameter 2 Typ: CHAR
Name der Position in der XML-Struktur
Parameter 3 Typ: FRAME
Feld, das aus dem Speicher gelesen wird
Maximale Anzahl lesbarer Feld-Elemente:
 512
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_GetFrameArray("Channel_1", "Root/
TCP", MyFrame[])

68 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


9 Anhang

9.4.5 Funktion auf Fehler prüfen

EKI_CHECK( EKI_STATUS, EKrlMsgType, CHAR[])


Funktion Prüft, ob beim Ausführen einer EthernetKRL-Funktion
ein Fehler aufgetreten ist:
 Die Fehlernummer wird ausgelesen und die zuge-
hörige Meldung auf der smartHMI ausgegeben.
(Parameter 1)
 Optional: Wird der Kanalname angegeben, wird
beim Datenempfang abgefragt, ob Fehler vorlie-
gen (Parameter 3)
Parameter 1 EKI_STATUS
Rückgabewerte der geprüften Funktion
(>>> "Rückgabewerte" Seite 36)
Parameter 2 Typ: ENUM
Meldungstyp, der auf der smartHMI ausgegeben wird:
 #NOTIFY: Hinweismeldung
 #STATE: Zustandsmeldung
 #QUIT: Quittiermeldung
 #WAITING: Wartemeldung
Parameter 3 Typ: CHAR
(optional)
Name des geöffneten Kanals
Beispiel 1 EKI_CHECK(RET,#QUIT)
Beispiel 2 EKI_CHECK(RET,#NOTIFY,"MyChannelName")

9.4.6 Speicher löschen, sperren, entsperren und prüfen

RET = EKI_ClearBuffer(CHAR[], CHAR[])


Funktion Löscht empfangene noch nicht abgerufene Daten aus
einem Speicher
Parameter 1 Typ: CHAR
Name des Kanals
Parameter 2 Typ: CHAR
Position des Speichers oder alle Speicher
(>>> 6.2.6 "Löschen empfangener Daten" Seite 35)
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel 1 RET = EKI_ClearBuffer("Channel_1", "Root/Activ/
Flag")
Beispiel 2 RET = EKI_ClearBuffer("Channel_1", "Root")

RET = EKI_Lock(CHAR[])
Funktion Sperrt das Verarbeiten empfangener Daten, d. h. die
Daten können nicht mehr im Speicher abgelegt wer-
den.

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 69 / 81


KUKA.EthernetKRL 2.2

RET = EKI_Lock(CHAR[])
Parameter Typ: CHAR
Name des Kanals
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)

RET = EKI_Unlock(CHAR[])
Funktion Entsperrt das Verarbeiten empfangener Daten, d. h.
die Daten werden wieder im Speicher abgelegt.
Parameter Typ: CHAR
Name des Kanals
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)

RET = EKI_CheckBuffer(CHAR[], CHAR[])


Funktion Prüft wieviele Daten sich noch im Speicher befinden.
Der Speicher wird nicht verändert.
Zusätzlich wird der Zeitstempel des Datenelements
zurückgegeben, das als nächstes zur Entnahme aus
dem Speicher bereitsteht.
Parameter 1 Typ: CHAR
Name des Kanals
Parameter 2 Typ: CHAR
Position des Speichers
RET Typ: EKI_STATUS
Rückgabewerte der Funktion (>>> "Rückgabewerte"
Seite 36)
Beispiel RET = EKI_CheckBuffer("Channel_1", "Root/Activ/
Flag")

70 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


10 KUKA Service

10 KUKA Service

10.1 Support-Anfrage

Einleitung Die Dokumentation der KUKA Roboter GmbH bietet Informationen zu Betrieb
und Bedienung und unterstützt Sie bei der Behebung von Störungen. Für wei-
tere Anfragen steht Ihnen die lokale Niederlassung zur Verfügung.

Informationen Zur Abwicklung einer Anfrage werden folgende Informationen benötigt:


 Typ und Seriennummer des Roboters
 Typ und Seriennummer der Steuerung
 Typ und Seriennummer der Lineareinheit (optional)
 Version der VW System Software
 Optionale Software oder Modifikationen
 Archiv der Software
Für VW System Software V8: Statt eines herkömmlichen Archivs das spe-
zielle Datenpaket für die Fehleranalyse erzeugen (über KrcDiag).
 Vorhandene Applikation
 Vorhandene Zusatzachsen (optional)
 Problembeschreibung, Dauer und Häufigkeit der Störung

10.2 KUKA Customer Support

Verfügbarkeit Der KUKA Customer Support ist in vielen Ländern verfügbar. Bei Fragen ste-
hen wir gerne zur Verfügung!

Argentinien Ruben Costantini S.A. (Agentur)


Luis Angel Huergo 13 20
Parque Industrial
2400 San Francisco (CBA)
Argentinien
Tel. +54 3564 421033
Fax +54 3564 428877
ventas@costantini-sa.com

Australien Headland Machinery Pty. Ltd.


Victoria (Head Office & Showroom)
95 Highbury Road
Burwood
Victoria 31 25
Australien
Tel. +61 3 9244-3500
Fax +61 3 9244-3501
vic@headland.com.au
www.headland.com.au

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 71 / 81


KUKA.EthernetKRL 2.2

Belgien KUKA Automatisering + Robots N.V.


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

Brasilien KUKA Roboter do Brasil Ltda.


Travessa Claudio Armando, nº 171
Bloco 5 - Galpões 51/52
Bairro Assunção
CEP 09861-7630 São Bernardo do Campo - SP
Brasilien
Tel. +55 11 4942-8299
Fax +55 11 2201-7883
info@kuka-roboter.com.br
www.kuka-roboter.com.br

Chile Robotec S.A. (Agency)


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

China KUKA Robotics China Co.,Ltd.


Songjiang Industrial Zone
No. 388 Minshen Road
201612 Shanghai
China
Tel. +86 21 6787-1888
Fax +86 21 6787-1803
www.kuka-robotics.cn

Deutschland KUKA Roboter GmbH


Zugspitzstr. 140
86165 Augsburg
Deutschland
Tel. +49 821 797-4000
Fax +49 821 797-1616
info@kuka-roboter.de
www.kuka-roboter.de

72 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


10 KUKA Service

Frankreich KUKA Automatisme + Robotique SAS


Techvallée
6, Avenue du Parc
91140 Villebon S/Yvette
Frankreich
Tel. +33 1 6931660-0
Fax +33 1 6931660-1
commercial@kuka.fr
www.kuka.fr

Indien KUKA Robotics India Pvt. Ltd.


Office Number-7, German Centre,
Level 12, Building No. - 9B
DLF Cyber City Phase III
122 002 Gurgaon
Haryana
Indien
Tel. +91 124 4635774
Fax +91 124 4635773
info@kuka.in
www.kuka.in

Italien KUKA Roboter Italia S.p.A.


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

Japan KUKA Robotics Japan K.K.


YBP Technical Center
134 Godo-cho, Hodogaya-ku
Yokohama, Kanagawa
240 0005
Japan
Tel. +81 45 744 7691
Fax +81 45 744 7696
info@kuka.co.jp

Kanada KUKA Robotics Canada Ltd.


6710 Maritz Drive - Unit 4
Mississauga
L5W 0A1
Ontario
Kanada
Tel. +1 905 670-8600
Fax +1 905 670-8604
info@kukarobotics.com
www.kuka-robotics.com/canada

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 73 / 81


KUKA.EthernetKRL 2.2

Korea KUKA Robotics Korea Co. Ltd.


RIT Center 306, Gyeonggi Technopark
1271-11 Sa 3-dong, Sangnok-gu
Ansan City, Gyeonggi Do
426-901
Korea
Tel. +82 31 501-1451
Fax +82 31 501-1461
info@kukakorea.com

Malaysia KUKA Robot Automation Sdn Bhd


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

Mexiko KUKA de México S. de R.L. de C.V.


Progreso #8
Col. Centro Industrial Puente de Vigas
Tlalnepantla de Baz
54020 Estado de México
Mexiko
Tel. +52 55 5203-8407
Fax +52 55 5203-8148
info@kuka.com.mx
www.kuka-robotics.com/mexico

Norwegen KUKA Sveiseanlegg + Roboter


Sentrumsvegen 5
2867 Hov
Norwegen
Tel. +47 61 18 91 30
Fax +47 61 18 62 00
info@kuka.no

Österreich KUKA Roboter Austria GmbH


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

74 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


10 KUKA Service

Polen KUKA Roboter Austria GmbH


Spółka z ograniczoną odpowiedzialnością
Oddział w Polsce
Ul. Porcelanowa 10
40-246 Katowice
Polen
Tel. +48 327 30 32 13 or -14
Fax +48 327 30 32 26
ServicePL@kuka-roboter.de

Portugal KUKA Sistemas de Automatización S.A.


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

Russland OOO KUKA Robotics Rus


Webnaja ul. 8A
107143 Moskau
Russland
Tel. +7 495 781-31-20
Fax +7 495 781-31-19
kuka-robotics.ru

Schweden KUKA Svetsanläggningar + Robotar AB


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

Schweiz KUKA Roboter Schweiz AG


Industriestr. 9
5432 Neuenhof
Schweiz
Tel. +41 44 74490-90
Fax +41 44 74490-91
info@kuka-roboter.ch
www.kuka-roboter.ch

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 75 / 81


KUKA.EthernetKRL 2.2

Spanien KUKA Robots IBÉRICA, S.A.


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

Südafrika Jendamark Automation LTD (Agentur)


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

Taiwan KUKA Robot Automation Taiwan Co., Ltd.


No. 249 Pujong Road
Jungli City, Taoyuan County 320
Taiwan, R. O. C.
Tel. +886 3 4331988
Fax +886 3 4331948
info@kuka.com.tw
www.kuka.com.tw

Thailand KUKA Robot Automation (M)SdnBhd


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

Tschechien KUKA Roboter Austria GmbH


Organisation Tschechien und Slowakei
Sezemická 2757/2
193 00 Praha
Horní Počernice
Tschechische Republik
Tel. +420 22 62 12 27 2
Fax +420 22 62 12 27 0
support@kuka.cz

76 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


10 KUKA Service

Ungarn KUKA Robotics Hungaria Kft.


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

USA KUKA Robotics Corporation


51870 Shelby Parkway
Shelby Township
48315-1787
Michigan
USA
Tel. +1 866 873-5852
Fax +1 866 329-5852
info@kukarobotics.com
www.kukarobotics.com

Vereinigtes König- KUKA Automation + Robotics


reich Hereward Rise
Halesowen
B62 8AN
Vereinigtes Königreich
Tel. +44 121 585-0800
Fax +44 121 585-0900
sales@kuka.co.uk

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 77 / 81


KUKA.EthernetKRL 2.2

78 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


Index

Index
A EOS 6
Anhang 61 Ereignismeldungen 13, 37
Ethernet 6
B Ethernet-Verbindung, Konfiguration 9, 21
Befehlsreferenz 62 Ethernet, Schnittstellen 19
Begriffe, verwendet 6 EthernetKRL_Server.exe 41
Beispielapplikationen 41 EthernetKRL, Übersicht 9
Beispielapplikationen, implementieren 41
Beispiele 41 F
Beispielkonfigurationen 46 Fehlerbehandlung 13
Beispielprogramme 46 Fehlermeldungen 55
Fehlerprotokoll 55
C Fehlerreaktion, programmieren 38
CAST_FROM() 34, 46 FIFO 6, 11
CAST_TO() 32, 46 Fragmentierung 38
Client-Betrieb 12, 32 Funktionen 9
Funktionen, Übersicht 28
D
Datenaustausch 10 H
Datenspeicherung 11 Hardware 17
Datenstrom 6 Hinweise 5
Defragmentierung 38
Deinstallieren, EthernetKRL 18 I
Diagnose 55 Installation 17
Diagnosedaten, anzeigen 55 Installieren, EthernetKRL 17
Diagnosemonitor (Menüpunkt) 55 IP 7
Dokumentation, Industrieroboter 5
K
E Kenntnisse, benötigt 5
Eigenschaften 9 KLI 6, 19
Einleitung 5 Kommunikation 9
EKI 6 Konfiguration 19
EKI_CHECK() 36, 38, 69 Konfiguration, Ethernet-Verbindung 9, 21
EKI_CheckBuffer() 29, 70 KR C 6
EKI_Clear() 35, 63 KRL 6
EKI_ClearBuffer() 35, 69 KRL-Programm, Beispiele 41
EKI_Close() 32, 63 KUKA Customer Support 71
EKI_GetBool() 65
EKI_GetBoolArray() 66 L
EKI_GetFrame() 68 LIFO 6, 11, 38
EKI_GetFrameArray() 68 Logbuch 55
EKI_GetInt() 66
EKI_GetIntArray() 66 M
EKI_GetReal() 67 Meldungen, deaktivieren 62
EKI_GetRealArray() 67
EKI_GetString() 34, 67 N
EKI_Init() 29, 62 Netzwerkverbindung 19
EKI_Lock() 69
EKI_Open() 31, 32, 63 P
EKI_Send() 32, 63 Ping 10
EKI_SetBool() 64 Produktbeschreibung 9
EKI_SetFrame() 65 Programmiertipps 29
EKI_SetInt() 64 Programmierung 21
EKI_SetReal() 64 Protokollarten 12
EKI_SetString() 65
EKI_STATUS 36 S
EKI_Unlock() 70 Schulungen 5
Endzeichenfolge 6 Server-Betrieb 12, 31

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 79 / 81


KUKA.EthernetKRL 2.2

Server-Programm 41
Server-Programm, Bedienoberfläche 43
Server-Programm, Kommunikationsparameter
einstellen 45
Service, KUKA Roboter 71
Sicherheit 15
Sicherheitshinweise 5
smartHMI 6
Socket 6
Software 17
Speicher, erhöhen 61
Support-Anfrage 71
Systemvoraussetzungen 17

T
TCP/IP 7

U
UDP/IP 7
Updaten, EthernetKRL 17

Ü
Übersicht, EthernetKRL 9
Übersicht, Funktionen 28
Überwachen, Verbindung 10

V
Verbindung, überwachen 10
Verbindungsverlust 9
Verwendete Begriffe 6
VW_USER, Beispielprogramm einbinden 42

W
Warenzeichen 7

X
XML 7
XML-Datei, Beispiele 41
XPath 7, 25, 27

Z
Zeitstempel 36
Zielgruppe 5

80 / 81 Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF)


KUKA.EthernetKRL 2.2

Stand: 19.11.2012 Version: VST EthernetKRL 2.2 V1 de (PDF) 81 / 81

Das könnte Ihnen auch gefallen