VST EthernetKRL 22 de
VST EthernetKRL 22 de
VST EthernetKRL 22 de
KUKA.EthernetKRL 2.2
Stand: 19.11.2012
© 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
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
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
Index ............................................................................................................. 79
1 Einleitung
1.1 Zielgruppe
Sicherheit Diese Hinweise dienen der Sicherheit und müssen beachtet werden.
Hinweise Diese Hinweise dienen der Arbeitserleichterung oder enthalten Verweise auf
weiterführende Informationen.
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
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
2 Produktbeschreibung
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.
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.
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.
Zum Fehler, der zu einem Verbindungsverlust geführt hat, kann die Feh-
lermeldung auf der smartHMI ausgegeben werden.
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.
Es ist möglich Daten direkt zu versenden, ohne dass die Daten zuvor
in einem Speicher abgelegt werden.
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.
Binär-Daten Die empfangenen Daten werden nicht extrahiert oder interpretiert. Für eine
Verbindung im Binär-Modus existiert nur ein Speicher.
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.
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
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
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
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.
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.
4 Installation
4.1 Systemvoraussetzungen
5 Konfiguration
Beschreibung Für den Datenaustausch über Ethernet muss eine Netzwerkverbindung über
das KLI der Robotersteuerung hergestellt werden.
6 Programmierung
Ü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.
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)
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.
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>
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>:
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>
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>
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>
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
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[])
6.2.1 Programmiertipps
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)
Konfiguration
"Program"
Bei dieser Konfiguration wird eine Verbindung nach folgenden Aktionen ge-
löscht.
Programm zurücksetzen.
Programm abwählen.
E/As rekonfigurieren.
Konfiguration
"Submit"
Bei dieser Konfiguration wird eine Verbindung nach folgenden Aktionen ge-
löscht.
Submit-Interpreter abwählen.
E/As rekonfigurieren.
Konfiguration
"System"
Bei dieser Konfiguration wird eine Verbindung nach folgenden Aktionen ge-
löscht.
E/As rekonfigurieren.
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.
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[…].
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.
Programmierung:
DECL EKI_STATUS RET
RET=EKI_Send("Channel_1","Robot")
Gesendete XML-Struktur:
<Robot>
<ActPos X="1000.12"></ActPos>
<Status>12345678</Status>
</Robot>
Programmierung:
DECL EKI_STATUS RET
RET=EKI_Send("Channel_1","Robot/ActPos")
Gesendete XML-Struktur:
<Robot>
<ActPos X="1000.12"></ActPos>
</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"
Programmierung:
DECL EKI_STATUS RET
CHAR Bytes[64]
Bytes[]="Stream ends with:"
RET=EKI_Send("Channel_1",Bytes[])
Gesendete Daten:
"Stream ends with:AB"
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.
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
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)
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[])
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")
Syntax GLOBAL STRUC EKI_STATUS INT Buff, Read, Msg_No, BOOL Con-
nected, INT Counter
Rückgabewerte Abhängig von der Funktion werden folgende Elemente der Struktur
EKI_STATUS beschrieben:
EKI_Open()
EKI_Close()
EKI_Clear()
EKI_Send()
EKI_Set…()
EKI_Get…()
EKI_ClearBuffer()
EKI_Unock()
EKI_CheckBuffer()
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
$OUT[23] ist gesetzt, solange die Verbindung zum externen System aktiv ist.
Wenn die Verbindung nicht mehr aktiv ist, wird $OUT[23] zurückgesetzt.
Ereignis-Flag
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
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")
...
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.
7 Beispiele
7.1 Beispielapplikationen
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
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
...
Zeile Beschreibung
24 … 26 Bedingung für den Aufruf des Unterprogramms BinaryFixed():
PAR1=12345
38 … 61 Unterprogramm BinaryFixed()
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
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)
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.
Beschreibung
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
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
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>
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.
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.
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>
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.
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>
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.
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.
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>
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.
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.
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>
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.
<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>
8 Diagnose
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.
9 Anhang
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
<EthernetKRL>
<Interface>
<MemSize>1048576</MemSize>
...
</EthernetKRL>
9.4 Befehlsreferenz
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")
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")
RET = EKI_Lock(CHAR[])
Funktion Sperrt das Verarbeiten empfangener Daten, d. h. die
Daten können nicht mehr im Speicher abgelegt wer-
den.
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)
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.
Verfügbarkeit Der KUKA Customer Support ist in vielen Ländern verfügbar. Bei Fragen ste-
hen wir gerne zur Verfügung!
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
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