Entdecken Sie eBooks
Kategorien
Entdecken Sie Hörbücher
Kategorien
Entdecken Sie Zeitschriften
Kategorien
Entdecken Sie Dokumente
Kategorien
CREAD/CWRITE
Stand: 27.01.2014
© Copyright 2014
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
2 Funktionsbeschreibung .............................................................................. 7
3 Sicherheit ..................................................................................................... 9
4 Kommunikations-Kanäle ............................................................................ 11
4.1 Kommunikation über externe Module ........................................................................ 11
4.2 Kommunikation über den Kommandokanal $CMD .................................................... 11
4.3 Kommunikation über den Kommandokanal $FCT_CALL .......................................... 12
7 Beispielprogramme ..................................................................................... 53
7.1 Externes Modul: Funktion über LD_EXT_FCT aufrufen ............................................ 53
7.2 Kommandokanal $CMD: Programm starten, stoppen, abwählen ............................. 53
7.3 CREAD/CWRITE mit CAST-Anweisungen kombinieren ........................................... 53
7.4 Kommandokanal $FCT_CALL: Zeichen in Datei schreiben ...................................... 54
8 Anhang ......................................................................................................... 57
8.1 Fehler beim Schreiben in den Kommandokanal $FCT_CALL ................................... 57
Index ............................................................................................................. 67
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
CIFS Common Internet File System
Dateisystem für Datei-, Druck- und weitere Server-
Dienste in Netzwerken
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.
Header-Datei Textdatei, die Deklarationen und andere Bestandteile
des Quelltextes enthält
IP Internet Protocol
Das Internet-Protokoll hat die Aufgabe, Subnetze über
physikalische MAC-Adressen zu definieren.
KR C KUKA Robotersteuerung (KUKA Robot Controller)
KRL KUKA Roboter Programmiersprache (KUKA Robot
Language)
Little Endian Byte-Reihenfolge für die Codierung einfacher Zahlen-
werte
Im Little Endian-Format wird das niederwertigste Bit an
der ersten Stelle gespeichert.
stdio.h Header-Datei der Programmiersprache C und C++
TCP 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.
2 Funktionsbeschreibung
Funktionen CREAD und CWRITE sind flexible Anweisungen, mit denen zwischen der Ro-
botersteuerung und einer anderen Steuerung kommuniziert werden kann.
Ebenso können sie für die Kommunikation innerhalb der Robotersteuerung
genutzt werden.
CREAD liest Daten aus einem Kanal. CWRITE schreibt Daten in einen Kanal.
Mit CREAD/CWRITE kann über folgende Kanäle kommuniziert werden:
Externe Module
(>>> 4.1 "Kommunikation über externe Module" Seite 11)
Kommandokanal $CMD (nur CWRITE)
(>>> 4.2 "Kommunikation über den Kommandokanal $CMD" Seite 11)
Kommandokanal $FCT_CALL (nur CWRITE)
(>>> 4.3 "Kommunikation über den Kommandokanal $FCT_CALL" Sei-
te 12)
Beispiel Die Robotersteuerung empfängt über ein geladenes externes Modul Positi-
onsdaten von einer anderen Steuerung, z. B. von einem Kamerasystem. Mit
CREAD liest die Robotersteuerung diese Positionsdaten aus dem externen
Modul.
3 Sicherheit
Die Sicherheitsinformationen zum Industrieroboter sind im Kapitel "Sicherheit"
der Bedien- und Programmieranleitung für Systemintegratoren oder der Be-
dien- und Programmieranleitung für Endanwender zu finden.
4 Kommunikations-Kanäle
Beschreibung Externe Module sind Treiber für beliebige Schnittstellen, beispielsweise für
TCP/IP oder für Ethernet-Schnittstellen. Ein externes Modul wird immer au-
ßerhalb der Robotersteuerung als O-File realisiert und dann in die Roboter-
steuerung integriert.
Die Realisierung und Integration von externen Modulen ist nicht Be-
standteil dieser Dokumentation. Diese Dokumentation behandelt, wie
über CREAD/CWRITE mit integrierten externen Modulen kommuni-
ziert werden kann.
Externe Module können sowohl für die Kommunikation innerhalb der Roboter-
steuerung eingesetzt werden als auch für die Kommunikation mit anderen
Steuerungen.
Es gibt 2 Typen von externen Modulen:
LD_EXT_OBJ
Mit diesem Typ können über CREAD und CWRITE Daten ausgetauscht
werden.
LD_EXT_FCT
Dieser Typ enthält Funktionen. Die Funktionen werden über CWRITE auf-
gerufen. LD_EXT_FCT kann Funktionsparameter an CWRITE zurückge-
ben. (CREAD ist bei diesem Typ nicht möglich.)
Die Robotersteuerung kann mit maximal 4 externen Modulen (2 pro Typ)
gleichzeitig kommunizieren.
Konfiguration Die externen Module müssen für die Kommunikation mit CREAD/CWRITE
konfiguriert werden.
(>>> 5 "Konfiguration der externen Module" Seite 13)
Übersicht
Konfiguration Der Kommandokanal muss für die Kommunikation mit CWRITE nicht konfigu-
riert werden.
Übersicht
Beschreibung Mithilfe von CWRITE können über den Kommandokanal Operationen auf dem
Dateisystem ausgeführt werden. Beispiel: Eine Datei über den Kommandoka-
nal öffnen und ein Zeichen oder eine Zeichenkette in die Datei schreiben.
Die Dateisystem-Funktionen können sowohl aus einem Roboter-Interpreter-
Programm als auch aus einem Submit-Interpreter-Programm heraus aufgeru-
fen werden. Es ist nicht zulässig, eine Datei aus dem einem Interpreter heraus
zu öffnen und auf diese Datei anschließend aus dem anderen Interpreter he-
raus zuzugreifen, z. B. um darauf zu schreiben oder die Datei wieder zu
schließen.
Beim Aufruf einer Dateisystem-Funktion wird eine spezifische Anzahl an Pa-
rametern an diese Funktion übergeben. Jede dieser Funktionen liefert über
CWRITE einen Rückgabewert. Der Rückgabewert zeigt an, ob die Funktion
erfolgreich ausgeführt oder mit einem Fehler abgebrochen wurde. Bei einem
Fehler kann die Ursache über die zurückgegebene Fehlernummer einge-
grenzt werden.
(>>> 8.1 "Fehler beim Schreiben in den Kommandokanal $FCT_CALL" Sei-
te 57)
CREAD ist für den Kommandokanal nicht relevant.
Konfiguration Der Kommandokanal muss für die Kommunikation mit CWRITE nicht konfigu-
riert werden.
Übersicht
Parameter O_FILE[]
In die eckige Klammer müssen Pfad und Dateiname des O-Files eingetragen
werden, z. B. DRIVERS\tcpdrv.o.
O-Files liegen immer unterhalb des Verzeichnisses C:\KRC\ROBOTER. Die-
ser Teil des Pfades muss nicht angegeben werden.
OPTION (Bit 0)
Bit 0 von OPTION legt fest, was mit einem externen Modul bei CCLOSE ge-
schieht. Die Einstellung heißt "Force unload".
Wert Beschreibung
Bit 0 = 1 "Force unload" ist aktiv. CCLOSE schließt den Kanal zum
Modul, das Modul wird entladen und die Modul-Umgebung
wird zerstört.
Bit 0 = 0 "Force unload" ist nicht aktiv. CCLOSE schließt den Kanal
zum Modul. Das Modul bleibt geladen und die Modul-Um-
gebung wird nicht zerstört. Bei einem zukünftigen COPEN
muss das Modul nicht neu geladen werden.
OPTION (Bit 1)
Bit 1 von OPTION ist nur relevant für externe Module vom Typ LD_EXT_OBJ
mit inaktivem "Force unload". Die Einstellung heißt "Leave data".
Wert Beschreibung
Bit 1 = 1 "Leave data" ist aktiv. Bei CCLOSE bleiben alle empfange-
nen, aber noch nicht gelesenen Daten erhalten. Wenn der
Kanal erneut geöffnet wird, können diese Daten von
CREAD gelesen werden.
Bit 1 = 0 "Leave data" ist nicht aktiv. CCLOSE löscht alle empfange-
nen, aber noch nicht gelesenen Daten.
6 Programmierung
Syntax-Element Darstellung
KRL-Code Schriftart Courier
Großschreibung
Beispiele: GLOBAL; ANIN ON; OFFSET
Elemente, die durch pro- Kursiv
grammspezifische Anga- Groß-/Kleinschreibung
ben ersetzt werden müssen
Beispiele: Strecke; Zeit; Format
Optionale Elemente In spitzen Klammern
Beispiel: <STEP Schrittweite>
Elemente, die sich gegen- Getrennt durch das Zeichen "|"
seitig ausschließen
Beispiel: IN |OUT
6.3 CHANNEL
6.4 COPEN
Beschreibung Bevor über ein externes Modul mit CREAD/CWRITE kommuniziert werden
kann, muss der Kanal mit COPEN geöffnet werden.
Ein Kommandokanal ist immer offen und muss weder geöffnet noch geschlos-
sen werden.
Wenn ein Kanal in einem SRC-Programm geöffnet wurde, muss er wieder ge-
schlossen werden, bevor er in einem SUB-Programm geöffnet werden kann.
Umgekehrt muss ein Kanal, der in einem SUB-Programm geöffnet wurde, wie-
der geschlossen werden, bevor er in einem SRC-Programm geöffnet werden
kann.
Wenn ein Kanal, der bereits geöffnet ist, vom gleichen Interpreter erneut ge-
öffnet wird, dann wird das gleiche Handle nochmal zurückgegeben.
Die Variable Handle muss deklariert werden. Es ist sinnvoll, sie in der
Datei $CONFIG.DAT folgendermaßen zu deklarieren und zu initiali-
sieren:
INT HANDLE = 0
Durch die Deklaration in der Datei $CONFIG.DAT steht die Variable in allen
Programmen zur Verfügung.
6.5 CREAD
Beschreibung CREAD liest Daten aus einem geladenen externen Modul vom Typ
LD_EXT_OBJ.
Aus externen Modulen vom Typ LD_EXT_FCT und aus einem Kommandoka-
nal kann nicht gelesen werden.
Daten vom Typ INT müssen im Little Endian-Format vorliegen und ein
Vorzeichen haben.
Daten vom Typ REAL müssen in 32-Bit-Darstellung im Standardformat
IEEE 754 vorliegen.
Syntax CREAD (Handle, Status, Modus, TIMEOUT, OFFSET, Format, Var1 <,
…,Var10>)
Element Beschreibung
OFFSET Typ: INT
Die Stelle innerhalb des empfangenen Textstrings, an der
CREAD mit dem Lesen beginnt. Wenn von Anfang an gele-
sen werden soll, muss der Offset auf 0 gesetzt werden.
Beispiele:
OFFSET=0: CREAD beginnt an der 1. Stelle mit dem
Lesen.
OFFSET=2: CREAD beginnt an der 3. Stelle mit dem
Lesen. Die Stellen 1 und 2 bleiben unberücksichtigt.
Der Offset wird beim Lesen hochgezählt. Wenn bei einer
weiteren CREAD-Anweisung wieder an der 1. Stelle mit
dem Lesen begonnen werden soll, muss der Offset vor die-
ser Anweisung auf 0 gesetzt werden. Anderenfalls wird der
hochgezählte Offset der vorigen Anweisung übernommen.
Format Typ: CHAR-Feld
Damit die empfangenen Daten in die Variablen Var1 …
Var10 geschrieben werden können, müssen sie formatiert
werden. Für jede der Variablen muss ein Format angege-
ben werden.
(>>> 6.15 "Variable "Format"" Seite 29)
Var1 … Variablen, in die die empfangenen Daten geschrieben wer-
Var10 den. Pro Anweisung sind maximal 10 Variablen möglich.
Beschreibung Der Modus beim Lesen wird durch eine Variable vom Typ MODUS_T be-
stimmt. MODUS_T ist ein vordefinierter Aufzählungstyp:
ENUM MODUS_T SYNC, ASYNC, ABS, COND, SEQ
Für CREAD sind nur ABS und COND relevant:
Wert Beschreibung
ABS CREAD wartet solange, bis der Kanal Daten zum Lesen be-
reitstellt oder bis das Warten durch Timeout abgebrochen
wird.
COND CREAD prüft, ob Daten zum Lesen vorhanden sind:
Wenn Daten vorhanden sind, werden diese gelesen.
Wenn keine Daten vorhanden sind, wird nicht gewartet.
Die CREAD-Anweisung gilt als beendet.
COND ist sinnvoll, wenn die CREAD-Anweisung über einen
Interrupt dann ausgelöst wird, wenn Daten zum Lesen vor-
handen sind.
(>>> "Lesen mit Interrupt" Seite 18)
Lesen mit Um zu ermitteln, ob Daten zum Lesen bereitstehen, wird eine Systemvariable
Interrupt abgefragt:
$DATA_LD_EXT_OBJx für das externe Modul LD_EXT_OBJx
Wenn Daten eintreffen, wird die Systemvariable vom Kanaltreiber hochge-
zählt. Die Daten können dann mit einem Interrupt-Programm gelesen werden.
Beim Warmstart, Öffnen und Schließen eines Kanals werden die Variablen mit
0 initialisiert. Wenn die Option "Leave data" aktiviert ist, wird die Variable nicht
zurückgesetzt.
Interrupt-Programm:
DEF OBJ_INT ()
DECL MODUS_T MODE
...
INTERRUPT OFF 10
WHILE ($DATA_LD_EXT_OBJ2<>0)
...
MODE=#COND
OFFSET=0
CREAD (HANDLE,..., MODE,...)
...
ENDWHILE
INTERRUPT ON 10
END
6.6 CWRITE
Ein Aufruf von CWRITE im Trigger ist nicht möglich. CWRITE kann
stattdessen in einem Trigger-Unterprogramm verwendet werden.
Beschreibung CWRITE schreibt Daten in ein geladenes externes Modul vom Typ
LD_EXT_OBJ. In einem geladenen externen Modul vom Typ LD_EXT_FCT
ruft CWRITE eine Funktion auf.
CWRITE schreibt Anweisungen in den Kommandokanal $CMD.
CWRITE ruft über den Kommandokanal $FCT_CALL eine Funktion auf.
CWRITE löst einen Vorlaufstopp aus.
Element Beschreibung
Format Typ: CHAR-Feld
Die Variablen Var1 … Var10 müssen in einen Textstring
umgewandelt werden, damit sie in den Kanal geschrieben
werden können. Format legt das Format des zu erzeugen-
den Texts fest. Für jede der Variablen muss ein Format
angegeben werden.
(>>> 6.15 "Variable "Format"" Seite 29)
Bei externen Modulen vom Typ LD_EXT_FCT und beim
Kommandokanal $FCT_CALL: Statt eines Formats wird an
dieser Stelle der Name der aufzurufenden Funktion ange-
geben.
(>>> 6.16 "Funktionen für den Kommandokanal
$FCT_CALL" Seite 34)
Var1 … Variablen, deren Daten in den Kanal geschrieben werden.
Var10 Pro Anweisung sind maximal 10 Variablen möglich.
Bei externen Modulen vom Typ LD_EXT_FCT und beim
Kommandokanal $FCT_CALL: Die Variablen Var1 … Var10
enthalten die Übergabeparameter für die Funktion, die mit
Format aufgerufen wird.
Beschreibung Der Modus beim Schreiben wird durch eine Variable vom Typ MODUS_T be-
stimmt. MODUS_T ist ein vordefinierter Aufzählungstyp:
ENUM MODUS_T SYNC, ASYNC, ABS, COND, SEQ
Für CWRITE sind nur SYNC und ASYNC relevant:
Wert Beschreibung
SYNC Die CWRITE-Anweisung gilt als ausgeführt, wenn die Part-
nersteuerung die übermittelten Daten aus dem Empfangs-
puffer abgeholt hat.
ASYNC Beim Schreiben auf externe Module vom Typ
LD_EXT_FCT und beim Schreiben in den Kommandokanal
$FCT_CALL ist der Modus ASYNC nicht erlaubt.
Für die anderen Kanäle gilt: Die CWRITE-Anweisung gilt
als ausgeführt, wenn die Daten im Empfangspuffer der
Partnersteuerung eingetroffen sind.
Vorteil gegenüber SYNC: Das Programm läuft schneller
ab.
Nachteil gegenüber SYNC: Daten könnten verlorenge-
hen.
ABS, Wenn der Modus einen anderen Wert hat als SYNC oder
COND, SEQ ASYNC, wird defaultmäßig im Modus SYNC geschrieben.
6.7 CCLOSE
Beschreibung CCLOSE schließt den Kanal zu einem externen Modul. Ob das Modul entla-
den wird und ob zum Lesen anstehende Daten gelöscht werden, ist abhängig
von der Konfiguration.
(>>> 5 "Konfiguration der externen Module" Seite 13).
Ein Kommandokanal ist immer offen und muss weder geöffnet noch geschlos-
sen werden.
CCLOSE löst einen Vorlaufstopp aus.
6.8 CIOCTL
Element Beschreibung
String Typ: CHAR-Feld
Feld, das an das externe Modul übertragen wird. Maximal
128 Feldelemente.
Retval Typ: INT
Rückgabewert, der by reference an das externe Modul
übertragen wird. Das externe Modul kann den Wert verän-
dern.
(>>> "Rückgabewerte" Seite 22)
6.9 SREAD
Beschreibung SREAD hat eine ähnliche Funktion und Syntax wie CREAD. Im Gegensatz zu
CREAD liest SREAD jedoch nicht Daten aus einem Kanal, sondern aus einem
CHAR-Feld.
SREAD kann in Programmen mit CREAD kombiniert werden. Vorteile:
CREAD kann darauf beschränkt werden, Daten aus dem Kanal zu lesen.
Komplexere Formatierungen können von SREAD übernommen werden.
Dadurch werden die Programme flexibler.
CREAD kann maximal 10 Variablen verarbeiten. Durch die Kombination
mit mehreren SREAD-Anweisungen können die Daten von mehr als 10
Variablen gelesen werden.
Element Beschreibung
OFFSET Typ: INT
Die Stelle innerhalb des Strings, an der SREAD mit dem
Lesen beginnt. Wenn von Anfang an gelesen werden soll,
muss der Offset auf 0 gesetzt werden.
Beispiele:
OFFSET=0: SREAD beginnt an der 1. Stelle mit dem
Lesen.
OFFSET=2: SREAD beginnt an der 3. Stelle mit dem
Lesen. Die Stellen 1 und 2 bleiben unberücksichtigt.
Der Offset wird beim Lesen hochgezählt. Wenn bei einer
weiteren SREAD-Anweisung wieder an der 1. Stelle mit
dem Lesen begonnen werden soll, muss der Offset vor die-
ser Anweisung auf 0 gesetzt werden. Anderenfalls wird der
hochgezählte Offset der vorigen Anweisung übernommen.
Format Typ: CHAR-Feld
Formate, in die der String umgewandelt wird, damit er in
die Variablen Var1 … Var10 geschrieben werden kann. Für
jede der Variablen muss ein Format angegeben werden.
(>>> 6.15 "Variable "Format"" Seite 29)
Var1 … Variablen, in die der zerlegte und formatierte String
Var10 geschrieben wird. Pro Anweisung sind maximal 10 Variab-
len möglich.
6.10 SWRITE
Beschreibung SWRITE hat eine ähnliche Funktion und Syntax wie CWRITE. Im Gegensatz
zu CWRITE schreibt SWRITE jedoch nicht Daten in einen Kanal, sondern in
ein CHAR-Feld.
SWRITE kann in Programmen mit CWRITE kombiniert werden. Vorteile:
CWRITE kann darauf beschränkt werden, Daten in den Kanal zu schrei-
ben. Komplexere Formatierungen können von SWRITE übernommen
werden. Dadurch werden die Programme flexibler.
CWRITE kann maximal 10 Variablen verarbeiten. Durch die Kombination
mit mehreren SWRITE-Anweisungen können die Daten von mehr als 10
Variablen geschrieben werden.
SWRITE löst einen Vorlaufstopp aus.
Element Beschreibung
OFFSET Typ: INT
Die Stelle innerhalb des Strings, an der SWRITE mit dem
Schreiben beginnt. Wenn von Anfang an geschrieben wer-
den soll, muss der Offset auf 0 gesetzt werden.
Beispiele:
OFFSET=0: SWRITE beginnt an der 1. Stelle mit dem
Schreiben.
OFFSET=2: SWRITE beginnt an der 3. Stelle mit dem
Schreiben. Die Stellen 1 und 2 bleiben unberücksichtigt.
Der Offset wird beim Schreiben hochgezählt. Wenn bei
einer weiteren SWRITE-Anweisung wieder an der 1. Stelle
mit dem Schreiben begonnen werden soll, muss der Offset
vor dieser Anweisung auf 0 gesetzt werden. Anderenfalls
wird der hochgezählte Offset der vorigen Anweisung über-
nommen.
Format Typ: CHAR-Feld
Wandelt die Variablen Var1 … Var10 um, bevor sie in den
String geschrieben werden. Für jede der Variablen muss
ein Format angegeben werden.
(>>> 6.15 "Variable "Format"" Seite 29)
Var1 … Variablen, deren Daten in den String geschrieben werden.
Var10 Pro Anweisung sind maximal 10 Variablen möglich.
6.11 CAST_TO
Wenn der Puffer in der Datenliste deklariert wird, darf kein Initialwert
gesetzt werden! Grund: Der Initialwert wird vom aktuellen Wert über-
schrieben. Der aktuelle Wert kann bis zu 4 KB groß sein und damit
die maximal erlaubte Länge einer KRL-Zeile übersteigen.
RICHTIG: DECL CHAR mybuffer[4096]
FALSCH: DECL CHAR mybuffer[4096]=" "
Umwandlungs- Wenn mit CWRITE ein Puffer übertragen wird, der vorher mit CAST_TO er-
zeichen zeugt wurde, dann sind in der CWRITE-Anweisung nur folgende Umwand-
lungszeichen erlaubt:
r (= Rohdatenformat)
s (= Stringformat)
r hat gegenüber s folgende Vorteile:
Wenn das Zeichen 0 übertragen wird, interpretiert s dies als Ende des
Strings. Dieses Problem besteht bei r nicht.
Der Offset zählt in Bytes. Wenn CREAD die Daten mit r, also binär, liest,
kann anhand des Offsets leicht ausgerechnet werden, wieviele Werte be-
reits übertragen wurden.
6.12 CAST_FROM
Wenn der Puffer in der Datenliste deklariert wird, darf kein Initialwert
gesetzt werden! Grund: Der Initialwert wird vom aktuellen Wert über-
schrieben. Der aktuelle Wert kann bis zu 4 KB groß sein und damit
die maximal erlaubte Länge einer KRL-Zeile übersteigen.
RICHTIG: DECL CHAR mybuffer[4096]
FALSCH: DECL CHAR mybuffer[4096]=" "
Der Status einer Anweisung wird automatisch an die Variable Status zurück-
gegeben. Status ist eine Variable vom Typ STATE_T und muss deklariert wer-
den.
(>>> 6.14.1 "Strukturtyp STATE_T" Seite 27)
Die Variable Status ist Bestandteil folgender Anweisungen:
CREAD
CWRITE
CCLOSE
SREAD
SWRITE
CMD_STAT RET1 Über die Variable RET1 wird zurückgegeben, ob eine Anweisung erfolgreich
durchgeführt wurde.
(>>> 6.14.2 "Rückgabewerte für die Variable RET1" Seite 27)
INT MSG_NO Wenn während der Ausführung der Anweisung ein Fehler auftritt, enthält die
Variable MSG_NO die Fehlernummer. MSG_NO ist relevant für folgende An-
weisungen:
CREAD
CWRITE
SREAD
SWRITE
INT HITS Die Anzahl der korrekt gelesenen oder geschriebenen Formate. INT HITS ist
relevant für folgende Anweisungen:
CREAD
CWRITE
SREAD
SWRITE
INT LENGTH Die Länge der korrekt in Variablen gewandelten Bytes laut Formatangabe.
INT LENGTH ist relevant für folgende Anweisungen:
CREAD
SREAD
Beschreibung Über die Variable RET1 wird zurückgegeben, ob eine Anweisung erfolgreich
durchgeführt wurde. Die Variable RET1 ist vom Typ CMD_STAT und ist Be-
standteil des Strukturtyps STATE_T.
CMD_STAT ist ein vordefinierter Aufzählungstyp:
Wert Beschreibung
CMD_OK Nur relevant bei Lese-Modus COND:
Es wurde geprüft, ob Daten zum Lesen vorhanden sind.
Es sind jedoch keine Daten zum Lesen vorhanden.
CMD_TIMEOU Nur relevant bei Lese-Modus ABS:
T
Das Lesen wurde wegen Überschreitens der Wartezeit
abgebrochen.
DATA_END Nur relevant beim Lesen aus einem externen Modul
vom Typ LD_EXT_OBJ:
Alle Daten wurden gelesen.
CMD_ABORT Das Lesen wurde abgebrochen.
Mögliche Ursachen:
Fehlermeldung vom Kanal
Fehler beim Auslesen der Daten
Ein anderer Lese-Modus als ABS oder COND wur-
de initialisiert.
Der Lese-Modus wurde nicht initialisiert.
FMT_ERR Das angegebene Format passt nicht zum Variablentyp
der Variable Var1 … Var10.
Wert Beschreibung
DATA_OK Nur relevant für das Schreiben auf ein externes Modul
und in den Kommandokanal $FCT_CALL:
Die Anweisung wurde erfolgreich ausgeführt.
CMD_ABORT Die Anweisung wurde nicht erfolgreich ausgeführt.
CMD_SYN Nur relevant für das Schreiben in den Kommandokanal
$CMD:
Die Anweisung ist syntaktisch falsch und kann nicht
ausgeführt werden.
FMT_ERR Nur relevant für das Schreiben auf ein externes Modul
und in den Kommandokanal $CMD:
Das angegebene Format passt nicht zum Variablentyp
der Variable Var1 … Var10.
SREAD/SWRITE Folgende Werte kann RET1 für SREAD und SWRITE annehmen:
Wert Beschreibung
CMD_OK Die Anweisung wurde erfolgreich ausgeführt.
CMD_ABORT Die Anweisung wurde nicht erfolgreich ausgeführt.
FMT_ERR Das angegebene Format passt nicht zum Variablentyp
der Variable Var1 … Var10.
Wert Beschreibung
CMD_OK Die Anweisung wurde erfolgreich ausgeführt.
CMD_ABORT Die Anweisung wurde nicht erfolgreich ausgeführt.
Mögliche Ursachen:
Der Kanal ist bereits geschlossen
Das Handle ist ungültig.
Der Kanal wurde von einem anderen Prozess geöff-
net.
Element Beschreibung
W Maximale Anzahl der zu lesenden Zeichen. Optional.
Z Anzahl der zu beschreibenden Feldelemente. Optional.
U Umwandlungszeichen
(>>> 6.15.3 "Umwandlungszeichen" Seite 31)
Zeichen Beschreibung
+ Der umgewandelte Wert wird immer mit Vorzeichen darge-
stellt: positive Werte mit +, negative Werte mit -.
Wenn dieses Formatierungszeichen nicht verwendet wird,
werden positive Werte ohne Vorzeichen und negative Wer-
te mit - dargestellt.
- Der umgewandelte Wert wird links ausgerichtet.
Zeichen Beschreibung
# Im Format x wird jedem Wert, der ungleich Null ist, 0 voran-
gestellt.
In den Formaten e, f und g wird immer ein Dezimalpunkt
eingefügt.
0 Der umgewandelte Wert wird links mit Nullen aufgefüllt bis
zur Mindestweite W.
[Leerzei- Im Format d, e, f, g oder i wird dem umgewandelten Argu-
chen] ment links ein Leerzeichen vorangestellt.
* Die Formate c und r berücksichtigen Leerzeichen im Daten-
string nicht immer korrekt. Zur Vermeidung von Fehlinter-
pretationen können für die Leerzeichen eigene
Formatangaben mit dem Zeichen * verwendet werden.
Ein Format, dem dieses Zeichen vorangestellt ist, korres-
pondiert nicht mit einer Variablen Var1 … Var10, sondern mit
einem Leerzeichen im Datenstring.
Element G Genauigkeitsangabe
Format Beschreibung
r bei einem Feld Anzahl der darzustellenden Feldelemente
e, f Stellenzahl rechts vom Dezimalpunkt
g Anzahl der signifikanten Stellen
s Maximale Anzahl der dargestellten Zeichen
Andere Formate Anzahl der darzustellenden Zeichen. Umfasst der
Quellwert mehr Zeichen, wird gekürzt oder gerundet.
Element U Umwandlungszeichen
(>>> 6.15.3 "Umwandlungszeichen" Seite 31)
6.15.3 Umwandlungszeichen
Zeichen Beschreibung
c Als Argument wird ein einzelner Character erwartet, der als
ASCII-Zeichen weiterverarbeitet wird.
Bei Formaten mit dem Umwandlungszeichen c kann keine
Weite W angegeben werden.
d Ganzzahl in Dezimaldarstellung
e Exponentialschreibweise
Das Argument wird ins Format [-]m.nnnnnnE[+-]xx umge-
wandelt. Über die zweite Ziffernkette in Format wird die An-
zahl der Ziffern rechts vom Dezimalpunkt festgelegt.
f Dezimalpunktdarstellung
Ein Argument wird im Format [-]mm.nnnnnn dargestellt.
Über die zweite Ziffernkette in Format wird die Anzahl der
Ziffern rechts vom Dezimalpunkt festgelegt.
g Die Formatierung erfolgt mit %e oder %f, je nachdem, wel-
ches Format die kürzere Darstellung ermöglicht.
i Ganzzahl in Dezimaldarstellung
r Wandelt den Wert der zugehörigen Variablen nicht in
ASCII, sondern übernimmt ihn in Binärdarstellung. Beim
Format %r wird nicht geprüft, ob die Variable oder das Feld-
element initialisiert sind.
s Stellt eine Zeichenkette dar.
x Hexadezimale Schreibweise. Stellt das Argument in Basis
16 dar.
Die Verwendung der Formate ist identisch für CREAD und SREAD einerseits
und CWRITE und SWRITE andererseits.
Beschreibung Für die meisten Datentypen sind mehrere Formate erlaubt, z. B. für CHAR-
Felder "%s" und "%1.<Z>r". Welches Format gewählt werden muss, ist abhän-
gig davon, in welcher Form die Partnersteuerung die Daten versendet oder
empfangen kann.
Bei Feldern kann über die Angabe "Z" festgelegt werden, wieviele Feldele-
mente berücksichtigt werden sollen. Wenn für "Z" kein Wert angegeben wird,
werden alle Feldelemente berücksichtigt. Beim ersten nicht initialisierten Wert
wird jedoch abgebrochen. Ausnahme ist das Format r: Hier wird nicht abge-
brochen, sondern für nicht initialisierte Variablen oder Feldelemente werden
zufällige Werte ausgegeben.
Anmerkungen:
Datentyp BOOL
Jeder Wert ungleich Null wird in TRUE gewandelt.
Datentyp ENUM
Es wird geprüft, ob der Wert ein gültiger ENUM-Wert ist. Wenn nicht, wird
das Lesen abgebrochen. Die erste ENUM-Konstante hat den Wert 1.
Formatangaben für Felder
Wenn zu wenige Daten vorliegen, um den Formatangaben zu genügen (z.
B. Format "%2.5r", aber nur 7 Bytes vorhanden), dann wird für dieses For-
mat nichts gelesen und die CREAD-Anweisung abgebrochen. Die nicht
berücksichtigten Daten liegen weiterhin zum Lesen bereit.
Format %r
Es werden nur soviele Bytes gelesen, wie die Variable fassen kann. Der
Rest steht weiterhin zum Lesen bereit. Wenn ein Feld groß genug ist, aber
die Zahl der Bytes nicht ein Vielfaches der Größe eines Feldelements ist,
dann bleiben die überzähligen Bytes für das folgende Format oder die
nächste CREAD-Anweisung zum Lesen stehen.
Format INT- REAL- BOOL- ENUM- CHAR-
Feld Feld Feld Feld Feld
%s +
%1.<Z>r + + + +
%2.<Z>r + + +
%4.<Z>r + + + +
%r + + + + +
%.<Z>r + + + + +
6.15.5 Umwandlungsbeispiele
Beispiel 1 Der Wert der Integer-Variablen VI wird in dezimaler und hexadezimaler ASCII-
Darstellung übertragen. Das erste CWRITE überträgt die Zeichen 123. Das
zweite CWRITE überträgt die Zeichen 7B.
INT VI
VI=123
CWRITE(HANDLE,SW_T,MW_T,"%d",VI)
CWRITE(HANDLE,SW_T,MW_T,"%x",VI)
Beim Format "%r" wird nicht geprüft, ob die Variable oder das Feldelement in-
itialisiert sind. Für nicht initialisierte Feldelemente werden zufällige Werte
übertragen.
Beispiel 4 Die ersten fünf Feldelemente eines Feldes werden binär übertragen:
REAL VR[10]
CWRITE(HANDLE,SW_T,MW_T,"%.5r",VR[])
Beispiel 5 Alle Feldelemente bis zum ersten nicht initialisierten Element werden übertra-
gen:
CHAR VS[100]
CWRITE(HANDLE,SW_T,MW_T,"%s",VS[])
Beispiel 7 Der interne Wert der ENUM-Konstante wird in ASCII übertragen. Die entspre-
chende Zahl wird übertragen:
DECL ENUM_TYP E
CWRITE(HANDLE,SW_T,MW_T,"%d",E)
6.16.1 krl_mount()
6.16.2 krl_unmount()
6.16.3 krl_fopen()
Element Beschreibung
Handle Handle-Variable für die geöffnete Datei
Beim Öffnen der Datei wird über diese Variable ein Datei-
Handle zurückgegeben. Alle Funktionsaufrufe, die sich auf
die geöffnete Datei beziehen, müssen diese Handle-Varia-
ble verwenden.
Pufferung Puffermodus für die geöffnete Datei. Optional.
Wenn kein Puffermodus angegeben wird, gilt der Default-
Wert.
#FULL_BUFF: Beim Schreiben in die Datei wird solan-
ge in einen Puffer geschrieben bis der Puffer voll ist
oder die Funktion krl_fflush() aufgerufen wird. Dann
wird der Inhalt des Puffers in die Datei geschrieben.
Die Größe des Puffers ist abhängig vom verwendeten
CIFS.
#LINE_BUFF: Beim Schreiben in die Datei wird solan-
ge in einen Puffer geschrieben bis ein Zeilenende-Zei-
chen erkannt wird, der Puffer voll ist oder die Funktion
krl_fflush() aufgerufen wird. Dann wird der Inhalt des
Puffers in die Datei geschrieben.
#NO_BUFF: Ohne Pufferung wird direkt in die Datei ge-
schrieben.
Default: #FULL_BUFF
Modus Beschreibung
"w+" Öffnen als Textdatei für den schreibenden und lesenden
Zugriff (Verhalten siehe Modus "w")
"a+" Öffnen als Textdatei für den schreibenden und lesenden
Zugriff (Verhalten siehe Modus "a")
"rb+" Öffnen als Binärdatei für den lesenden und schreibenden
Zugriff (Verhalten siehe Modus "r")
Hinweis: Der Dateizeiger zeigt nach dem Öffnen auf den
Dateianfang. Damit beim Schreiben keine Inhalte überschrie-
ben werden, muss der Dateizeiger mithilfe der Funktion
krl_fseek() an das Dateiende gesetzt werden.
"wb+" Öffnen als Binärdatei für den schreibenden und lesenden
Zugriff (Verhalten siehe Modus "w")
"ab+" Öffnen als Binärdatei für den schreibenden und lesenden
Zugriff (Verhalten siehe Modus "a")
Beispiel 1 Die Datei ROBOTER\UserFiles\MyFile.txt wird als Textdatei für den lesenden
Zugriff geöffnet:
CWRITE($FCT_CALL, State, Mode, "krl_fopen", "MyFile.txt", "r",
FileHandle)
Beispiel 3 Die Datei MyFile.txt wird auf einem freigegebenen Netzlaufwerk als Textdatei
für den lesenden Zugriff und ohne Pufferung geöffnet. Der Mount-Punkt zum
Netzlaufwerk mit dem Namen Net1 muss zuvor über krl_mount() erzeugt wor-
den sein:
CWRITE($FCT_CALL, State, Mode, "krl_fopen", "/Net1/MyFile.txt", "r",
FileHandle, #NO_BUFF)
MSG_NO Beschreibung
-30 Ein direkter Zugriff auf das ROBOTER-Verzeichnis ist nicht
zulässig.
-31 Ungültiger absoluter Pfad
-32 Mount-Punkt nicht gefunden
-40 Öffnen der Datei ist nicht möglich, weil bereits 11 Dateien
geöffnet sind.
6.16.4 krl_fclose()
6.16.5 krl_fclose_all()
Diese Funktion steht nur für KUKA System Software 8.3 zur Verfü-
gung.
Beispiel Alle Dateien, die vom Roboter-Interpreter mit krl_open() geöffnet wurden, wer-
den geschlossen.
CWRITE($FCT_CALL, State, Mode, "krl_fclose_all", 1)
6.16.6 krl_feof()
Beispiel Das Prüfergebnis, ob das Dateiende erreicht ist, wird in die Variable "Pointer-
Pos" geschrieben:
CWRITE($FCT_CALL, State, Mode, "krl_feof", FileHandle, PointerPos)
MSG_NO Beschreibung
-12 Mindestens ein Funktionsparameter besitzt einen falschen
Datentyp.
-13 Mindestens ein Funktionsparameter ist keine Variable,
obwohl eine Variable erwartet wird.
6.16.7 krl_fflush()
Beispiel Alle Daten im Puffer werden in die vom Handle übergebene Datei geschrie-
ben:
CWRITE($FCT_CALL, State, Mode, "krl_fflush", FileHandle)
6.16.8 krl_fgetc()
Beispiel Ein einzelnes Zeichen wird aus der vom Handle übergebenen Datei gelesen
und in die Variable "SingleChar" geschrieben:
CWRITE($FCT_CALL, State, Mode, "krl_fgetc", FileHandle, SingleChar)
MSG_NO Beschreibung
-12 Mindestens ein Funktionsparameter besitzt einen falschen
Datentyp.
-13 Mindestens ein Funktionsparameter ist keine Variable,
obwohl eine Variable erwartet wird.
6.16.9 krl_fgets()
Beispiel 1 Es wird eine ganze Zeile aus der vom Handle übergebenen Datei gelesen,
maximal aber 256 Zeichen:
CWRITE($FCT_CALL, State, Mode, "krl_fgets", FileHandle, Buff[], 256,
Gelesen)
Beispiel 2 Es wird aus der vom Handle übergebenen Datei bis zum Zeichen ":" gelesen,
maximal aber 100 Zeichen:
CWRITE($FCT_CALL, State, Mode, "krl_fgets", FileHandle, Buff[], 100,
Gelesen, ":")
MSG_NO Beschreibung
-13 Mindestens ein Funktionsparameter ist keine Variable,
obwohl eine Variable erwartet wird.
-41 Ein Wert konnte nicht gelesen werden. Die Werte vor diesem
Wert wurden korrekt gelesen.
6.16.10 krl_fscanf()
Beispiel Es werden 3 Werte, die mit dem Zeichen ";" getrennt sind, aus der vom Handle
übergebenen Datei formatiert gelesen:
CWRITE($FCT_CALL, State, Mode, "krl_fscanf", FileHandle, "%s;%i;%c",
StringVar[], IntVar, CharVar)
MSG_NO Beschreibung
-13 Mindestens ein Funktionsparameter ist keine Variable,
obwohl eine Variable erwartet wird.
-14 Mindestens ein Funktionsparameter-String ist leer.
-15 Mindestens ein Funktionsparameter-String ist zu lang.
-42 Der Formatstring enthält eine unzulässige Formatanweisung.
-43 Die Anzahl der zu lesenden Werte im Formatstring entspricht
nicht der Anzahl der übergebenen Parameter.
-44 Für einen Parameter wurde eine falsche Formatierung ange-
geben.
6.16.11 krl_fputc()
Beispiel Das Zeichen "x" wird in die vom Handle übergebene Datei geschrieben:
CWRITE($FCT_CALL, State, Mode, "krl_fputc", FileHandle, "x")
6.16.12 krl_fputs()
Beispiel 1 Eine konstante Zeichenkette wird in die vom Handle übergebene Datei ge-
schrieben:
CWRITE($FCT_CALL, State, Mode, "krl_fputs", FileHandle, "write
this!")
Beispiel 2 Die in der Variablen "StringVar[]" enthaltene Zeichenkette wird in die vom
Handle übergebene Datei geschrieben:
CWRITE($FCT_CALL, State, Mode, "krl_fputs", FileHandle, StringVar[])
6.16.13 krl_fwriteln()
Beispiel Eine leere Zeile wird in die vom Handle übergebene Datei geschrieben:
CWRITE($FCT_CALL, State, Mode, "krl_fwriteln", FileHandle, " ")
6.16.14 krl_fprintf()
Beispiel Es werden 3 Werte, die mit dem Zeichen ";" getrennt sind, formatiert in die
vom Handle übergebene Datei geschrieben:
CWRITE($FCT_CALL, State, Mode, "krl_fprintf", FileHandle,
"%s;%x;%c", "Item1", 'HA0', CharVar)
6.16.15 krl_fseek()
Beispiel Der Dateizeiger in der vom Handle übergebenen Datei wird um 5 Byte zurück-
gesetzt:
CWRITE($FCT_CALL, State, Mode, "krl_fseek", FileHandle, #SEEK_CUR,
-5)
MSG_NO Beschreibung
-7 Positionierung des Dateizeigers außerhalb der Dateigrenzen
(nur relevant bei Positionier-Modus SEEK_CUR)
-10 Ungültige Anzahl an Funktionsparametern wurde übergeben.
-11 Mindestens ein Funktionsparameter besitzt einen ungültigen
Wert.
-12 Mindestens ein Funktionsparameter besitzt einen falschen
Datentyp.
6.16.16 krl_fsizeget()
Beispiel Die Größe der vom Handle übergebenen Datei wird ermittelt und in die Varia-
ble "IntVar" geschrieben:
CWRITE($FCT_CALL, State, Mode, "krl_fsizeget", FileHandle, IntVar)
6.16.17 krl_mkdir()
Beispiel 2 Ein neues Verzeichnis wird auf dem Mount "MyMount" erstellt:
CWRITE($FCT_CALL, State, Mode, "krl_mkdir", "/MyMount/NewDir")
6.16.18 krl_rename()
Beispiel 2 Das Verzeichnis "NewDir" auf dem Mount "MyMount" wird umbenannt:
CWRITE($FCT_CALL, State, Mode, "krl_rename", "/MyMount/NewDir", "/
MyMount/TestDir")
6.16.19 krl_remove()
Beispiel 2 Das Verzeichnis "NewDir" auf dem Mount "MyMount" wird gelöscht:
CWRITE($FCT_CALL, State, Mode, "krl_remove", "/MyMount/NewDir")
7 Beispielprogramme
COPEN lädt das externe Modul. CWRITE ruft die Funktion auf. CLOSE entlädt
das externe Modul.
DEF FUNCTION()
INT HANDLE
DECL CHAR STRING[30]
DECL STATE_T STAT
DECL MODUS_T MOD
COPEN(:LD_EXT_FCT1, HANDLE)
IF HANDLE <=0 THEN
ERRMSG ("Cannot open ld_ext_fct1")
ENDIF
MOD=#SYNC
STRING[]="test data for ext. mod."
CWRITE(HANDLE,STAT,MOD,"MyOwnFunction",STRING[])
IF STAT.RET<>#DATA_OK THEN
ERRMSG("Cannot send data to ld_ext_fct1")
ENDIF
CCLOSE(HANDLE,STAT)
IF STAT.RET<>#CMD_OK THEN
ERRMSG("Cannot close ld_ext_fct1")
ENDIF
END
Das Programm A6.SRC soll über den Kommandokanal $CMD gestartet, ge-
stoppt und abgewählt werden. Dazu dienen die folgenden Programmzeilen in
einer SUB-Datei.
DECL STATE_T STAT
DECL MODUS_T MODE
MODE=#SYNC
...
;select program A6()
;to start the program the START-button or
;an external start-signal is needed
IF $FLAG[1]==TRUE THEN
CWRITE($CMD,STAT,MODE,"RUN/R1/A6()")
$FLAG[1]=FALSE
ENDIF
;stop program A6()
IF $FLAG[2]==TRUE THEN
CWRITE($CMD,STAT,MODE,"STOP 1")
$FLAG[2]=FALSE
ENDIF
;cancel program A6()
IF $FLAG[3]==TRUE THEN
CWRITE($CMD,STAT,MODE,"CANCEL 1")
$FLAG[3]=FALSE
ENDIF
Beispiel 1 Die Integer-Werte 1 bis 1024 werden mit einer einzigen CWRITE-Anweisung
in den Kanal geschrieben. Dafür werden die Werte zuerst mit CAST_TO in
den Puffer BIGSTRING[] geschrieben. CWRITE schreibt den Puffer dann in
den Kanal.
Beispiel 2 Eine zweite Roboterstation empfängt die Daten aus Beispiel 1. Sie liest die
Daten aus dem Kanal und schreibt sie in den Puffer BIGSTRING_2[]. Der Puf-
fer wird dann in die Variable VAR geschrieben.
DECL CHAR BIGSTRING_2[4096]
...
INT VAR[1024]
...
OFFSET=0
CREAD(HANDLE,STAT,MODEREAD,TIMEOUT,OFFSET,"%1.4096r",BIGSTRING_2[])
...
OFFSET=0
FOR N=1 to 1024
CAST_FROM (BIGSTRING_2[],OFFSET,VAR[n])
ENDFOR
...
Über den Kommandokanal $FCT_CALL soll das Zeichen "a" in die Datei My-
Test.TXT geschrieben werden. Wenn die Datei bereits vorhanden ist, soll der
Inhalt der Datei beim Öffnen gelöscht werden.
Für jeden Funktionsaufruf mit CWRITE soll überprüft werden, ob die Funktion
erfolgreich ausgeführt oder mit einem Fehler abgebrochen wurde. Wenn ein
Fehler aufgetreten ist, kann abhängig von der Fehlerursache die dazu pas-
sende Fehlerbehandlung programmiert werden. Wenn kein Fehler aufgetre-
ten ist, soll das Zeichen geschrieben und die Datei wieder geschlossen
werden.
ELSE
; no error occured
; write a character to the file
CWrite($FCT_CALL, STAT, MODE, "krl_fputc", HANDLE, MYCHAR)
IF (STAT.RET1 == #CMD_ABORT) THEN
; error treatment
...
ENDIF
; close the file
CWRITE($FCT_CALL, STAT, MODE, "krl_fclose", HANDLE)
IF (STAT.RET1 == #CMD_ABORT) THEN
; error treatment
...
ENDIF
ENDIF
8 Anhang
9 KUKA Service
9.1 Support-Anfrage
Einleitung Diese Dokumentation bietet Informationen zu Betrieb und Bedienung und un-
terstützt Sie bei der Behebung von Störungen. Für weitere Anfragen steht Ih-
nen 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
Symbole Funktionsbeschreibung 7
$CMD 19
$CONFIG.DAT 17 H
$CUSTOM.DAT 13, 15 Handle 16, 17, 19, 21
$DATA_LD_EXT_OBJx 18 Header-Datei 6
$EXT_MOD_x 16 Hinweise 5
$FCT_CALL 19, 34 HITS, Anzahl korrekte Formate 27
A I
ABS 18 IEEE 754 17
Anhang 57 Interrupt 15, 18, 19
ASYNC 20 IP 6
B K
Begriffe, verwendete 6 Kenntnisse, benötigte 5
Beispielprogramme 53 Kommando-Interpreter 21, 22
Kommandokanal, $CMD 11
C Kommandokanal, $FCT_CALL 12
CAST_FROM 53 KR C 6
CAST_FROM 25 KRL 6
CAST_TO 24, 53 krl_fclose_all() 40
CCLOSE 20 krl_fclose() 40
CHANNEL 15 krl_feof() 41
CIFS 6 krl_fflush() 42
CIOCTL 21 krl_fgetc() 42
CMD_ABORT 28, 29 krl_fgets() 43
CMD_OK 28, 29 krl_fopen() 37
CMD_STAT, Aufzählungstyp 27 krl_fprintf() 47
CMD_SYN 28 krl_fputc() 45
CMD_TIMEOUT 28 krl_fputs() 45
COND 18 krl_fscanf() 44
COPEN 16 krl_fseek() 48
CREAD 17 krl_fsizeget() 49
CREAD, Lese-Modus 18 krl_fwriteln() 46
CWRITE 19 krl_mkdir() 49
CWRITE, Schreib-Modus 20 krl_mount() 35
krl_remove() 51
D krl_rename() 50
DATA_END 28 krl_unmount() 36
DATA_OK 28 KUKA Customer Support 59
Datentypen, CAST-Anweisungen 26
Dokumentation, Industrieroboter 5 L
LD_EXT_FCT 11, 20
E LD_EXT_OBJ 11
Einleitung 5 Leave Data, Option für externes Modul 13, 19
Ethernet 6 LENGTH, Byte-Länge 27
Ethernet-Schnittstelle 11 Little Endian 6, 17, 30
Externe Module 11, 13
M
F MODUS_T, Strukturdatentyp 18, 20
Fehlerbehandlung, $FCT_CALL 35 MSG_NO, Fehlernummer 27, 57
Fehlernummern 27, 57
FMT_ERR 28 O
Force unload, Option für externes Modul 13 O-File 11, 13
Format 29 Offset 18, 23, 24, 25, 26
Format, Variable 29
Formatierungszeichen 29 P
Funktionen 7 Programm-Interpreter 11
Programmierung 15
Programmierung, Übersicht 15
R
RET1, Rückgabewerte 27
Rückgabewerte, RET1 27
S
Schriftarten 15
Schulungen 5
Service, KUKA Roboter 59
Sicherheit 9
Sicherheitshinweise 5
SRC-Programm 16
SREAD 22
STATE_T, Strukturtyp 27
Status 27
stdio.h 6
SUB-Programm 16
Support-Anfrage 59
SWRITE 23
SYNC 20
T
TCP 6
TCP/IP 11
Timeout 17
U
Umwandlungsbeispiele 33
Umwandlungszeichen 24, 29, 31
V
Verwendete Begriffe 6
Vorlaufstopp 19, 21, 23, 24, 25
Z
Zeichen 15
Zielgruppe 5