VKR C...
Inhalt Programmierhandbuch
KUKA Interleaf
Teil 2: Programmierhandbuch
Konfiguration
Programmierung Experte
Applikationen
Anhang
VKR C...
Konfiguration
1 System konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1 Ein/Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Zange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Binäre E/A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.3 Automatik Extern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1.4 E/A Treiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 SUBMIT Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Handverfahren (Override) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1 Programmoverride--Schritte (POV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.2 Handoverride--Schritte (HOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.3 Mausposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.4 Mauskonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Benutzergruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 Setze Werkzeug/Basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6 Ein/Ausschaltoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6.1 Kaltstart erzwingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6.2 Ausschalten PowerOff Wartezeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7 Extras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.1 Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.2 Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7.3 Arbeitsraumüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.7.3.1 Kartesische Arbeitsraumüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7.3.2 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.7.3.3 Achsspezifische Arbeitsraumüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.7.3.4 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.7.4 BOF Reinitialisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.7.5 Analyse Rekonfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.7.6 Plugin Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.7.7 Aktionsplaner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.8 Rückwärtsfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
1.9 ASCII--Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
1.10 Archivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.10.1 Archivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.10.2 Wiederherstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3 Automatik Extern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.1 Schnittstelle konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.1.1 Eingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.1.1.1 Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.2 Schnittstellenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2.1 Folgennummer--Vorgabe und Folgennummer--Spiegelung . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2.2 Automatik--Extern--Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2.2.1 Bereit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2.2.2 RK23 -- Programmierbetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2.2.3 RK8 -- Single--Step--Betrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2.2.4 RK9 -- Automatikbetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2.2.5 RK100 -- Freigabe Stellglieder Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2.2.6 WPROZ -- Warte Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.2.7 WSLAV -- Warte Slave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.2.8 LPKT -- letzter Punkt erreicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.2.9 PF0 -- Grundstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.2.10 SAK -- Satzkoinzidenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.3 Automatik--Extern--Eingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.3.1 SRB -- Start Folge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.3.2 ANTEIN -- Antriebe Ein in Betriebsart “Automatik Extern” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.4 Überwachung der Grundstellung in P0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3 Ablaufbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.3.1 Positionsüberwachung nach Anlagenhochlauf oder Spannungsausfall . . . . . . . . . . . . . . . . . 79
3.3.2 Positionsüberwachung bei Programmunterbrechung ohne Spannungsausfall . . . . . . . . . . . 80
3.4 Signalverläufe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.4.1 Automatischer Anlagen--Hochlauf (Roboter steht in P0 einer Folge) . . . . . . . . . . . . . . . . . . . 81
3.4.2 Anlagen--Hochlauf (Roboter steht nicht in P0 einer Folge) . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.4.3 Roboter wird nach Programm--Stop von Hand verfahren / Wiederanlauf . . . . . . . . . . . . . . . 83
3.5 Standardisierung der Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1 System konfigurieren
Dieses Kapitel befaßt sich mit der Konfiguration des Systems. Dazu stehen Ihnen die Menüs
[ Datei ] und [ Konfig. ] zur Verfügung.
Konfiguration Ein--/Ausgänge Zange
Binäre E/A
Automatik Extern
E/A--Treiber
(1) Steht nicht in der Benutzergruppe “Anwender” zur Verfügung, wenn “UG15” installiert ist.
(2) Steht nur bei installierter Benutzergruppe “UG15” zur Auswahl.
Maschinendaten
Archivieren Diskette Alles Konfigurationsd.
Netz Anwendungen E/A--Langtexte
Logbuch Systemdaten Treiber
Aktuelle Aus- Log--Daten
wahl
Folgen
UPs
Wiederherstellen Diskette Alles Makros
Netz Anwendungen VW--User
Umbenennen
Aktuelle Aus- Systemdaten
Diskette formatieren wahl Maschinendaten
Eigenschaften Konfigurationsd.
Filter E/A--Langtexte
Treiber
In der folgenden Tabelle finden Sie eine Aufstellung der in diesem Kapitel aufgeführten Funk-
tionen:
Menü “Datei”
Archivieren
Systemdaten Sichern von Maschinendaten, Konfigurationsdaten, Lang-
texten und Treiber auf Diskette bzw. das Netzwerk.
Wiederherstellen
Systemdaten Zurückschreiben von Maschinendaten, Konfigurationsda-
ten, Langtexten und Treiber von Diskette bzw. dem Netzlauf-
werk.
*1 Nicht in der Benutzergruppe “Anwender” verfügbar
1.1 Ein/Ausgänge
Unter dem Menüpunkt [ Ein/Ausgänge ] werden Konfigurationsmöglichkeiten für Zangen,
binäre Ausgaben, Automatik Extern sowie E/A--Treiber angeboten.
Softkey Bedeutung
Schließen Schließt das jeweilige Zustandsfenster.
1.1.1 Zange
Nach Anwahl von [ Konfigurieren › Ein--/Ausgänge › Zange ] wird das Dialogfenster zur Kon-
figuration der Zange geöffnet.
Zur Auswahl stehen folgende Zangentypen: Keine Zange, Statisches Ventil, Pulsventil, Sta-
tisches Ventil mit IBS, Pulsventil mit IBS, Servozange (Option), E/A--Servozange.
Die Anzahl der verwendbaren Ein-- und Ausgänge hängt von der verwendeten Hardware ab.
Jedem Eingabefeld kann eine Funktions-- und Belegungsbezeichnung zugewiesen werden.
Es sind max. 20 Zeichen erlaubt. Die Texte “ZANGEn_AUF” und “ZANGEn_ZU” werden als
Tooltip angezeigt.
Wird in den Feldern für Interbus--Segmentnummer und Interbus--Teilnehmernummer eine
Null eingetragen, dann wird bei dieser Konfiguration ein aktives, alternatives Bussegment
abgekoppelt.
Die Anzahl der zur Verfügung stehenden Zangen (z. B. Servozange) ist von der Installation
abhängig. Eine Servozange wird über die Zusatzachsen gesteuert. Die entsprechenden
Statuskeys öffnen oder schließen die Zange.
Wenn Sie Einträge in den Funktions-- und Belegungsbezeichnung der Ausgänge vorneh-
men, werden diese Bezeichnungen automatisch in die Felder der Eingänge übernommen.
Sollen sich die Eingangs-- und Ausgangsbezeichnungen unterscheiden, müssen Sie die
Bezeichnungsfelder der Eingänge direkt anwählen und ändern.
Keine Zange
Es ist keine Zange konfiguriert.
ZANGEn_AUF
ZANGEn_ZU
ZANGEn_AUF
ZANGEn_ZU
Servozange
Ist nur verfügbar, wenn bei der Installation die Option “Installiere Servo--Zange” ausgewählt
wurde.
4 5 6
Weitere Informationen zur Konfiguration und Bedienung der Servozange finden Sie im
Kapitel [Applikationen].
E/A--Servorzange
Die Zange besitzt eine eigene Steuerung und wird über eine der Zusatzachsen geöffnet oder
geschlossen.
1
2
3 4 5
(1) Zangennummer sowie Zangentyp.
(2) Legt die Funktion fest, die auf dem entsprechenden Ausgang liegen soll.
(3) Bedingung wahr oder unwahr.
(4) Bedingung Ein/Aus, Eingang, Ausgang, Merker, Flag, Timer--Flag oder Sensor--Flag.
(5) Nummer von Ein--/Ausgang, Merker, Flag, Timer--Flag oder Sensor--Flag.
Abb. 8 Konfiguration E/A--Servozange
Auf beiden Ausgängen liegt das Signal “FALSE” an. Betätigen des Statuskeys schaltet das
Signal am jeweiligen Ausgang auf “TRUE”. Das Signal liegt solange an, wie der Statuskey
gedrückt wird.
ZANGEn_AUF
ZANGEn_ZU
Softkey Bedeutung
Vorherig Wechselt zur nächst niedrigeren Zangennummer.
Weiter Wechselt zur nächst höheren Zangennummer oder zum nächst
höheren Zangentyp.
Ändern Speichert die Werte im Zustandsfenster.
Schließen Schließt das betreffende Zustandsfenster.
In den Feldern des Formulars geben Sie für jede Binärausgabe das Startbit (1 ... 1024), die
Länge (1 ... 16) und die Parität (EVEN/ODD) an.
Beachte: Nutzbreite=4 Parität
1 2 3 4 5 6 7 8
bin1
Gesamtbreite = 5
Die eingetragenen Werte werden mit “OK” übernommen oder mit “Abbrechen” verworfen.
Softkey Bedeutung
Tab+ Schaltet zwischen den Ein-- und Ausgängen um.
Anzeige Öffnet das Fenster [ Anzeige › Ein--/Ausgänge › Binäre E/A ].
Konfig. Öffnet das Fenster [ Konfiguration › Ein--/Ausgänge › Binäre
E/A ].
Ändern Speichert die Werte im Zustandsfenster.
OK Übernimmt den engegebenen Wert.
..Abbrechen Übernimmt den eingegebenen Wert nicht.
Schließen Schließt das Dialogfenster.
Weitere Informationen zur Konfiguration der Automatik Extern Schnittstelle finden Sie
im Hauptkapitel [Konfiguration], Kapitel [Automatik Extern].
2 3
Abb. 11 E/A--Treiber--Konfiguration
Mit den Cursor--Tasten [ " ] bzw. [ # ] kann der gewünschte Treiber bzw. die Aktion ausge-
wählt werden.
Die Cursor--Tasten [ z ] bzw.[ ! ] dienen zum Wechsel zwischen der Treiberliste und der
Aktionsliste.
Die Softkeys [ Neuinst. ], [ Iosys ] und [ Deinstall ] stehen nicht innerhalb der Benutzer-
gruppe “Anwender” zur Verfügung.
Softkey Bedeutung
Neuinst. Diese Funktion öffnet ein neues Zustandsfenster zur Installation
von zusätzlichen Treibern. Bereits eingerichtete Treiber werden
nicht aufglistet.
Iosys Lädt die Datei “IOSYS.INI”zur Bearbeitung in den Editor.
Zurück Öffnet wieder das Hauptfenster der E/A--Konfiguration.
Installieren Richtet den ausgewählten Treiber ein.
Schließen Beendet die Konfiguration der E/A--Treiber.
Rekonfig. Alle E/A--Treiber werden rekonfiguriert. Dazu darf kein Programm
angewählt sein. Während die Funktion ausgeführt wird, stehen
die Funktionen in der Softkeyleiste nicht zur Verfügung.
Info Weitere Informationen erhalten Sie über den Softkey “Info”, der
die Datei “IOSYS.LOG” schreibgeschützt in den Editor lädt.
Deinstall. Der ausgewählte Treiber wird deinstalliert und der Eintrag aus
der Treiberliste entfernt.
Wechseln *1 Der Fokus wird abwechselnd in die Treiber-- oder Aktionsliste
gesetzt.
Reset Es findet ein Reset des ausgewählten Treibers statt.
OK *1 Es wird die Aktion ausgeführt, auf welcher sich der Fokus befin-
det. Folgende Aktionen sind möglich:
Datei in den Editor laden.
Datei schreibgeschützt in den Editor laden.
Festgelegtes Programm ausführen.
*1 Befindetsich der Fokus in der Aktionsliste, stehen die Softkeys [ Deinstall ] und [ Re-
set ] nicht zur Verfügung. Sie werden durch [ Wechseln ] und [ OK ] ersetzt.
1.3.3 Mausposition
Wird der Roboter mit Hilfe der Space--Mouse im Roboter--Koordinatensystem bewegt, kann
der Bediener seinen eigenen Standort der Steuerung bekannt geben.
1.3.4 Mauskonfiguration
Hier können Sie die Freiheitsgrade und die dominante Achse der Space--Mouse einstellen.
1.4 Benutzergruppe
Zur Erhöhung der Systemsicherheit können Funktionen der Robotersteuerung bzw. deren
Programmierung für bestimmte Benutzergruppen gesperrt werden. Zu diesem Zweck kann
der Zugang zu Funktionen derart eingeschränkt werden, daß es nur innerhalb bestimmter
Benutzergruppen möglich ist, Zugriff darauf zu erhalten. Der Zugang wird dann durch ein
Paßwort oder eine Schlüssel--CD ermöglicht.
Die Software der (V)KRC--Steuerung unterscheidet standardmäßig zwischen dem Anwen-
der, und dem Experten. Die Benutzergruppe “UG15” ist optional verfügbar und bietet Funk-
tionen, die zwischen “Anwender” und “Experte” angesiedelt sind.
Mit dem Befehl [ Konfiguration › Benutzergruppe ] öffnet sich ein Zustandsfenster, in dem
die aktuelle Benutzergruppe angezeigt wird.
Zum Installieren bzw. Deinstallieren der Benutzergruppe “UG15” steht die Option [ Inbe-
triebn. › Zusatzsoftware installieren ] zur Verfügung.
Durch Drücken des Softkeys [ Experte ] wird geprüft, ob sich die Schlüssel--CD im Laufwerk
befindet. Ist das der Fall, schaltet das System anschließend auf die Expertenebene um. An-
dernfalls wird eine Fehlermeldung im Zustandsfenster ausgegeben.
Auf der Expertenebene steht Ihnen der gesamte KRL--Befehlsumfang (KUKA Robot Lan-
guage) zur Verfügung. Die Syntaxbeschreibung zur KRL--Programmierung finden Sie in
der Dokumentation [KRL Reference Guide].
Weitere Informationen über die verfügbaren Menüs der Benutzergruppe “UG15” finden Sie
im Bedienhandbuch im Hauptkapitel [Bedienung], Kapitel [Menüstruktur].
Softkey Bedeutung
Anwender Der Anwender benötigt keine Syntaxkenntnisse, da er menüge-
führt Programme erstellt. Bei Neustart des Systems ist standard-
mäßig die Anwenderebene angewählt.
Experte Der Experte kann darüber hinaus in der Roboterprogrammier-
sprache KRL (KUKA Robot Language) programmieren sowie
System-- bzw. Initialisierungsdateien editieren. KRL ist eine
Hochsprache, die PASCAL--ähnlich und somit auch für die Pro-
grammierung von komplexen Aufgaben geeignet ist.
UG15 Reichen die Funktionen der Benutzergruppe “Anwender” nicht
aus, kann auf die Benutzergruppe “UG15” gewechselt werden,
falls diese installiert ist. Hierzu ist die Eingabe eines Kennwortes
erforderlich.
OK Geben das Kennwort für die Benutzergruppe ein. Achten Sie auf
korrekte Groß--/Kleinschreibung von Kennwörtern. Betätigen Sie
anschließend den Softkey “OK”.
Abbrechen Sie können die Funktion jederzeit verlassen. Die Benutzergruppe
wird in diesem Fall nicht gewechselt.
1
2
Softkey Bedeutung
Ext. Werkz. Wählt ein externes Werkzeug aus.
Werkz. Wählt ein am Roboter montiertes Werkzeug aus.
OK Übernimmt die eingestellten Werte. Wurde der Wertebereich in
einem der Eingabefelder überschritten, eine nicht definierte Num-
mer eines Werkzeugs, einer Basis oder einen externen Kinematik
gewählt, wird eine entsprechende Fehlermeldungausgegeben.
Abbrechen Schließt das Zustandsfenster, ohne die eingestellten Werte zu
übernehmen.
1.6 Ein/Ausschaltoptionen
Hier können Kaltstart und PowerOff--Wartezeit gesetzt werden.
Konfiguration Ein--/Ausgänge
SUBMIT Interpreter
Handverfahren
Benutzergruppe
Aktuelle(s) Werkzeug/Basis
Ein--/Ausschaltoptionen Kaltstart erzwingen
Extras Aus. PowerOff Wartezeit
Rückwärtsfahren
Der Menübefehl [ Kaltstart erzwingen ] ist nicht selbsthaltend, d. h. er muß für jeden
gewünschten Kaltstart neu aktiviert werden.
Bei einem Warmstart hingegen, den die Steuerung auch selbständig nach einem Span-
nungsausfall durchführt, kann das vorher angewählte Roboterprogramm fortgesetzt wer-
den. Der Zustand des Grundsystems wie Programme, Satzzeiger, Variableninhalte und Aus-
gänge werden komplett wiederhergestellt. Der Spannungsausfall kann z. B. durch Ausfall
der Stromversorgung oder durch Betätigen des Hauptschalters im laufenden Programm er-
zeugt worden sein.
Stellt die Steuerung nach dem Wiederanlauf einen Systemfehler oder geänderte Daten fest,
wird ein automatischer Kaltstart erzwungen.
1.7 Extras
Unter diesem Menüpunkt sind weitere Optionen zusammengefaßt, die im Anschluß genauer
beschrieben werden.
Konfiguration Ein--/Ausgänge
SUBMIT Interpreter Sprache
Handverfahren Editor Detailansicht
Benutzergruppe Arbeitsraumüberwachung Zeilenumbruch
Aktuelle(s) Werkzeug/Basis BOF reinitialisieren
Ein--/Ausschaltoptionen Analyse rekonfigurieren
Extras PlugIn Konfiguration Überbrücken
Rückwärtsfahren Aktionsplaner Konfiguration
1.7.1 Sprache
Stellt die Sprache der Bedienoberfläche um.
Abb. 16 Sprachauswahl
Softkey Bedeutung
OK Übernimmt die Auswahl und schließt das Zustandsfenster. An-
schließend wird nach kurzer Wartezeit die Bedienoberfläche in
der gewünschten Landessprache angezeigt.
Übernehmen Übernimmt die Auswahl und schaltet die Bedienoberfläche auf
die gewünschte Landessprache um. Das Zustandsfenster bleibt
geöffnet.
Abbrechen Schließt das Zustandsfenster ohne Änderung der Bedienoberflä-
che.
Werden nach Umschaltung der Sprache Zeichen auf der Bedienoberfläche falsch darge-
stellt, ist auch die Sprache des Betriebssystems entsprechend umzustellen.
1.7.2 Editor
Detailansicht (ASCII)
Diese Funktion steht nur innerhalb der Benutzergruppe “Experte” zur Verfügung und ist ein
Hilfsmittel, um die Informationsmenge auf der Bedienoberfläche möglichst gering zu halten.
“Detailansicht” ist standardmäßig deaktiviert.
Ist die Funktion “Detailansicht” ausgeschaltet, werden beispielsweise alle Texte in einer
FOLD--Zeile unterdrückt, welche nach den Zeichen “;%” geschrieben werden. Diese Informa-
tionen werden aber zur Anzeige eines Inline--Formulars benötigt.
Eingeschaltet zeigt die Funktion Informationen an, die normalerweise unsichtbar bleiben.
Zeilenumbruch
Hiermit können Sie im Programmfenster den Zeilenumbruch wahlweise ein-- bzw. ausschal-
ten.
Kann die Zeile aufgrund ihrer Länge nicht auf einmal im Programmfenster angezeigt werden,
können Sie den Inhalt des Programmfensters mit [ ← ] und [ → ] verschieben.
Standardmäßig ist der Zeilenumbruch eingeschaltet, wobei im Programmfenster alle In-
formationen angezeigt werden. Ist die Zeile für das Programmfenster zu lang, wird sie an
einer entsprechenden Stelle umgebrochen.
Der umgebrochene Teil der Zeile besitzt keine Zeilennummer und wird stattdessen mit einem
Pfeil markiert.
1.7.3 Arbeitsraumüberwachung
Bis zu acht kubische bzw. achsspezifische Arbeitsräume können automatisch überwacht
werden. Diese Arbeitsräume dürfen sich auch überlappen, um komplexere Formen zu bil-
den. Wird einer dieser definierten Arbeitsräume verletzt, setzt die Steuerung einen vorher
zugewiesenen Ausgang. Das bereitgestellte Ausgangssignal kann dann vom KRL--Pro-
gramm oder von einem externen Leitrechner weiterverarbeitet werden. Der Roboter kann
hierbei auch angehalten und eine Fehlermeldung ausgegeben werden.
Je nach Geschwindigkeit des Roboters kann dessen Bremsweg variieren und der Roboter
bis zum Stillstand noch in den Arbeitsraum hinein bzw. aus ihm heraus gelangen! Sorgen
Sie aus diesem Grund für entsprechende Abstände zwischen den Arbeitsräumen und den
zulässigen bzw. nicht zulässigen Bereichen!
Softkey Bedeutung
Signal Öffnet das Zustandsfenster für die Definition der Signale. Jedem
Arbeitsraum wird ein Ausgang zugewiesen. Bei Verletzung eines
Arbeitsraumes wird der zuvor festgelegte Ausgang gesetzt.
Kartesisch Öffnet das Zustandsfenster für die Definition der kubischen Ar-
beitsräume.
Achsspez. Öffnet das Zustandsfenster für die Definition der achsspezifi-
schen Arbeitsräume.
Übernehmen Die Änderungen werden mit diesem Softkey übernommen.
Schließen Beendet das Konfigurationsmenü. Sämtliche Veränderungen,
welche nicht mit [ Übernehmen ] gesichert wurden, gehen verlo-
ren.
Konfiguration
Die Definition von kubischen Arbeitsräumen erfolgt über mehrere Zustandsfenster auf Ex-
pertenebene. Rufen Sie hierzu den Befehl [ Konfig. › Extras › Arbeitsraumüberwachung
› Konfiguration ] auf.
2
(1) Die linke Spalte zeigt die Signale der kartesischen Arbeitsraum--Überwachung an.
(2) Soll bei Verletzen eines Arbeitsraumes kein Ausgang gesetzt werden, ist das entsprechende
Signal auf “FALSE” zu setzen.
Die KRL--Signalvereinbarungen, welche die jeweiligen Ausgänge festlegen, sind in den Ma-
schinendaten festgelegt:
...
SIGNAL $WORKSTATE1 $OUT[984]
SIGNAL $WORKSTATE2 $OUT[985]
SIGNAL $WORKSTATE3 $OUT[986]
SIGNAL $WORKSTATE4 $OUT[987]
SIGNAL $WORKSTATE5 FALSE
SIGNAL $WORKSTATE6 FALSE
SIGNAL $WORKSTATE7 FALSE
SIGNAL $WORKSTATE8 FALSE
...
Wurde das zugehörige Signal eines Arbeitsraumes auf “FALSE” rangiert, kann durch die
Komponente “$WORKSPACE[n].STATE” abgelesen werden, ob dieser Arbeitsraum ver-
letzt ist oder nicht.
Über den Softkey [ Kartesisch ] gelangen Sie zum Zustandsfenster für die Definition der ku-
bischen Arbeitsräume.
Wird in den Modi “INSIDE_STOP” oder “OUTSIDE_STOP” ein Arbeitsraum verletzt, kann
der Roboter erst dann wieder verfahren werden, wenn die betreffende Arbeitsraumüber-
wachung ausgeschaltet oder überbrückt wird.
Ist ”$TOOL” ungültig und mindestens ein Arbeitsraum aktiv, so erscheint die Zustandsmel-
dung 112
“$TOOL ungültig: Keine Arbeitsraumüberwachung möglich” im Meldungsfenster.
Bereits gesetzte Ausgänge werden zurückgesetzt und eventuell anstehende Meldungen ge-
löscht.
Arbeitsräume können auch in *.SRC--Dateien definiert, bzw. ein-- und ausgeschaltet wer-
den. Die dort angegebenen Werte werden automatisch in die Datei “$CUSTOM.DAT” ein-
getragen und stehen beim nächsten Hochlauf der Steuerung wieder zur Verfügung.
Auch über die Korrektur von Variablen können die Einstellungen von Arbeitsräumen verän-
dert werden.
Wird die Arbeitsraumüberwachung dann überbrückt, wird diese Meldung durch die Zu-
standsmeldung 115:
“Arbeitsraum Nr. n freifahren”
ersetzt. Nach dem Verlassen des verletzten Arbeitsraumes wird diese Meldung gelöscht.
1.7.3.2 Beispiele
Es soll ein kubischer Arbeitsraum mit 200 mm Kantenlänge überwacht werden. Sein Mittel-
punkt soll bei X=500mm, Y=500mm und Z=1000mm liegen. Die Winkel A, B und C besitzen
den Wert “0”.
Z[mm] 200 U
1000
500
Y[mm]
500
500 X[mm]
$WORLD
Der Ursprung des Arbeitsraums (Frame “U”) bezüglich des Weltkoordinatensystems wird in
der Variablenzuweisung folgendermaßen definiert:
$WORKSPACE[n]={X 500, Y 500, Z 1000, A 0, B 0, C 0, X1 100,
Y1 100, Z1 100, X2 -100, Y2 -100, Z2 -100, MODE #INSIDE,
STATE FALSE}
Die Lage und Orientierung des Arbeitsraumes ist durch den Frame “U” festgelegt. Seine
Größe wird über zwei gegenüberliegende Punkte bezüglich des Ursprungs “U” definiert.
200
P1
Z1
X1 = 100mm
Y1 = 100mm
Y1
Z1 = 100mm
X1
X2 = --100mm
Y2 = --100mm
X2 Z2 = --100mm
U
Y2
Z2
Z
Y
P2 X
$WORLD
Die Punkte “P1” und “P2” finden sich in der Parameterzeile an folgender Stelle wieder:
$WORKSPACE[1]={X 500, Y 500, Z 1000, A 0, B 0, C 0, X1 100,
Y1 100, Z1 100, X2 -100, Y2 -100, Z2 -100, MODE #INSIDE,
STATE FALSE}
Die Kantenlängen des Quaders errechnen sich aus den Beträgen von jX1--X2j, jY1--Y2j und
jZ1--Z2j.
Der zugeordnete Ausgang soll gesetzt werden, sobald sich der Bezugspunkt von Werkzeug,
bzw. Werkstück innerhalb des Arbeitsraumes befindet. Hierzu dient der vorletzte Eintrag im
Zustandsfenster bzw. dem KRL--Befehl.
$WORKSPACE[n]={X 500, Y 500, Z 1000, A 0, B 0, C 0, X1 100,
Y1 100, Z1 100, X2 -100, Y2 -100, Z2 -100, MODE #INSIDE,
STATE FALSE}
Liegt der Punkt “P2” auf dem Ursprung des Arbeitsraumes, brauchen nur die Koordinaten
von “P1” ermittelt zu werden.
P1
X1 = 200mm
Z1 Y1 = 200mm
Z1 = 200mm
Y1
X1
P2 U
Z
X
$WORLD
Befindet sich der Bezugspunkt von Werkzeug bzw. Werkstück außerhalb des Arbeitsraums,
soll der zugeordnete Ausgang gesetzt werden. Gleichzeitig soll der Roboter stoppen und
eine Fehlermeldung ausgeben.
Es handelt sich hier um den gleichen Arbeitsraum, wie im vorhergehenden Beispiel. Auch
die Lage sowie Orientierung sind identisch, aber der Ursprungspunkt liegt auf einem der
Eckpunkte des Quaders.
Hat eines der Punktkoordinatenpaare “X1” und “X2”, “Y1” und “Y2” oder “Z1” und “Z2” glei-
che Vorzeichen, liegt der Ursprung “U” außerhalb des Arbeitsraumes.
P1
Z1
P2 Y1
Z2
Y2 U
X2 X1
Z
X1 = 100mm X2 = --100mm
Y Y1 = 260mm Y2 = 60mm
X Z1 = 220mm Z2 = 20mm
$WORLD
Hier soll der zugeordnete Ausgang gesetzt werden, wenn sich der Bezugspunkt von Werk-
zeug bzw. Werkstück außerhalb des Arbeitsraumes befindet. Der Roboter wird hierbei nicht
angehalten.
In diesem Beispiel besitzt der Arbeitsraum die Abmessungen x=300mm, y=250mm und
z=450mm. Gegenüber dem Weltkoordinatensystem ist er über die Y--Achse um 30 Grad
verdreht. Der Ursprung “U” liegt nicht im Zentrum des Quaders.
P1
X2
Y2 Z1
U X1
Z2 Y1
X1 = 250mm
Y1 = 150mm
P2 Z1 = 200mm
X2 = --50mm
Y2 = --100mm
Z2 = --250mm
Z
X
$WORLD
Der zugeordnete Ausgang soll wieder gesetzt werden, wenn sich der Bezugspunkt von
Werkzeug, bzw. Werkstück innerhalb des Arbeitsraumes befindet. Gleichzeitig soll der Ro-
boter stoppen und eine Fehlermeldung ausgeben.
Die entsprechende Anweisung lautet:
WORKSPACE[4] = {X 500, Y 500, Z 2000, A 0, B 30, C 0, X1 250,
Y1 150, Z1 200, X2 -50, Y2 -100, Z2 -250, MODE #INSIDE_STOP,
STATE FALSE}
Funktionsweise
Für bestimmte Anlagen ist es sinnvoll, den Arbeitsbereich des Roboters weiter einzuschrän-
ken, um Beschädigungen am Gerät oder der Peripherie zu vermeiden. Dies trifft im besonde-
ren auf folgende Robotertypen zu:
Abb. 23 Robotertypen
Der maximal mögliche Aktionsbereich eines Roboters wird durch die Softwareendschalter
begrenzt, deren Werte vom jeweiligen Robotertyp abhängen. Das im Beispiel verwendete
Modell kann mit Achse 1 maximal ¦160 Grad verfahren.
--160° +160°
A2 A1
Abb. 26 Einschränkung der Achse 1 in Abhängigkeit von Achse 2
Befindet sich Achse 2 im schraffierten Bereich, darf Achse 1 ihren schraffierten Bereich nicht
verlassen.
Für jede zu überwachende Achse müssen die erforderlichen Mindest-- und Maximalwerte
angegeben werden.
Bestimmte Maschinen werden von KUKA mit festgelegten Werten für die achsspezifische
Arbeitsraumüberwachung ausgeliefert. Diese Werte dürfen nicht verändert werden, da
ansonsten das Robotersystem beschädigt werden kann.
Berücksichtigen Sie bei der Werteingabe auch die vorhandenen Werkzeuge bzw. Werk-
stücke, um Beschädigungen zu vermeiden.
Konfiguration
Die Definition von Arbeitsräumen erfolgt über mehrere Zustandsfenster auf Expertenebene
mit dem Befehl [ Konfig. › Extras › Arbeitsraumüberwachung › Konfiguration ].
2
(1) Die rechte Spalte zeigt die Signale der achsspezifischen Arbeitsraum--Überwachung an.
(2) Soll bei Verletzen eines Arbeitsraumes kein Ausgang gesetzt werden, ist das entsprechende
Signal auf “FALSE” zu setzen.
Abb. 27 Signale der Arbeitsraum--Überwachung
Die KRL--Signalvereinbarungen, welche die jeweiligen Ausgänge festlegen, sind in den Ma-
schinendaten festgelegt:
....
SIGNAL $AXWORKSTATE1 $OUT[969]
SIGNAL $AXWORKSTATE2 $OUT[970]
SIGNAL $AXWORKSTATE3 $OUT[971]
SIGNAL $AXWORKSTATE4 $OUT[972]
SIGNAL $AXWORKSTATE5 FALSE
SIGNAL $AXWORKSTATE6 FALSE
SIGNAL $AXWORKSTATE7 FALSE
SIGNAL $AXWORKSTATE8 FALSE
...
Wurde das zugehörige Signal eines Arbeitsraumes auf “FALSE” rangiert, kann durch die
Komponente “$AXWORKSPACE[n].STATE” abgelesen werden, ob dieser Arbeitsraum
verletzt ist oder nicht.
Stehen in den Min/Max--Feldern einer Achse die Standardwerte “0.00”, wird diese Achse
unabhängig von der Mode--Einstellung nicht überprüft. Dies gilt sowohl für die Standard-
achsen (A1...A6) als auch Zusatzachsen (E1...E6).
Wird in den Modi “INSIDE_STOP” oder “OUTSIDE_STOP” ein Arbeitsraum verletzt, kann
der Roboter erst dann wieder verfahren werden, wenn die betreffende Arbeitsraumüber-
wachung ausgeschaltet oder überbrückt wird.
Überbrücken
Das “Überbrücken” der Arbeitsraumüberwachung ist über den Befehl [ Konfig. › Extras › Ar-
beitsraumüberwachung › Überbrücken ] möglich.
Diese Funktion ermöglicht es, den Roboter aus dem verletzten Arbeitsraum wieder her-
auszufahren.
1.7.3.4 Beispiel
In diesem Beispiel wird ein Arbeitsbereich definiert, innerhalb dessen sich der Roboter bewe-
gen darf. Dieser Bereich soll wie folgt aussehen:
Ober-- bzw unterhalb der schraffierten Bereiche sind die Einstellungen der Software--End-
schalter gültig.
Soll ein Bereich angegeben werden, welcher aus mehreren Arbeitsräumen zusammenge-
setzt wird, ist es sinnvoll die nicht zulässigen Bereiche zu definieren und diese mit dem
MODE “#INSIDESTOP” zu sperren. Andernfalls wird die Überwachung aktiviert, sobald
einer der definierten Arbeitsräume verlassen wird.
Arbeitsraum 1 + 2
Die Achse 1 eines Konsolroboters soll eingeschränkt werden, sobald sich Achse 2 im Be-
reich zwischen +20 und +35 Grad befindet.
--45° +45°
+20°
+35°
A2 A1
Abb. 30 Achse 1 in Abhängigkeit von Achse 2 einschränken
Hierzu werden für die erste Achse insgesamt 2 Bereiche definiert, in welche der Roboter
nicht hineinfahren darf.
--45° +45°
1 2
--160° +160°
(1) In den Arbeitsraum Nr. 1 darf der Roboter nicht hineinfahren, solange sich Achse 2 im Bereich
zwischen 20 und 35 Grad befindet.
(2) In den Arbeitsraum Nr. 2 darf der Roboter nicht hineinfahren, solange sich Achse 2 im Bereich
zwischen 20 und 35 Grad befindet.
Signal
(1) Der jeweilige Ausgang wird entsprechend des eingestellten MODE gesetzt.
Achs--Spez.
Der erste Arbeitsraum wird wie folgt definiert:
Der daraus resultierende, für den Roboter zulässige Bereich sieht ohne Berücksichtigung
der anderen Achsen in etwa folgendermaßen aus:
Im nächsten Schritt wird ein weiterer Bereich definiert, in welchem sich der Roboter bewegen
darf.
Arbeitsraum 3 + 4
Die Achse 1 soll etwas weniger eingeschränkt werden, solange sich Achse 2 im Bereich zwi-
schen 0 und +20 Grad befindet.
0°
+20°
A2
--95°
--95° +95°
A1
Auch in diesem Fall zerfällt der zulässige Bereich von Achse 1 unter Berücksichtigung der
Software--Endschalter in zwei verschiedene Bereiche, in welche der Roboter nicht hineinfah-
ren darf.
--95° +95°
1 2
--160° +160°
(1) In den Arbeitsraum Nr. 3 darf der Roboter nicht hineinfahren, solange sich Achse 2 im Bereich
zwischen 0 und 20 Grad befindet.
(2) In den Arbeitsraum Nr. 4 darf der Roboter nicht hineinfahren, solange sich Achse 2 im Bereich
zwischen 0 und 20 Grad befindet.
Signal
Die den Arbeitsräumen zugeordneten Ausgänge sind in der Datei “KRC\ Steu\ Mada\ $Ma-
chine.dat” hinterlegt und werden normalerweise über die Bedienoberfläche projektiert.
...
SIGNAL $AXWORKSTATE1 $OUT[969]
SIGNAL $AXWORKSTATE2 $OUT[970]
SIGNAL $AXWORKSTATE3 $OUT[971]
SIGNAL $AXWORKSTATE4 $OUT[972]
SIGNAL $AXWORKSTATE5 FALSE
SIGNAL $AXWORKSTATE6 FALSE
SIGNAL $AXWORKSTATE7 FALSE
SIGNAL $AXWORKSTATE8 FALSE
...
Achs--Spez.
Der dritte Arbeitsraum wird wie folgt definiert:
2 4
5
(1) Ausgewähltes Plugin. (4) Plugin ist deaktiviert.
(2) PlugIn--Status. (5) Plugin kann nicht deaktiviert oder gelöscht werden.
(3) Plugin ist aktiviert.
Abb. 42 Liste der Plugin--Konfiguration
Wird ein Plugin--Modul deaktiviert, erfolgt die Ausgabe einer entsprechenden Meldung.
In der Softkeyleiste stehen die folgenden Funktionen zur Verfügung:
Softkey Bedeutung
Anzeige Zeigt das Fenster des ausgewählten Plugin--Moduls an.
Entfernen Löscht das ausgewählte Plugin aus der Liste. Nicht alle Plugin--
Module können gelöscht werden. Gelöschte Plugin--Module kön-
nen mittels “Hinzufügen” wieder in die Liste aufgenommen wer-
den.
Hinzufügen Öffnet ein Auswahlfenster zur Auswahl eines Plugin--Moduls, das
in die Liste aufgenommen werden soll.
Attribute Öffnet ein Fenster zur Einstellung der Attribute des ausgewählten
Plugin--Moduls.
Liste Übernimmt die Einstellungen und schaltet auf das Listen--Fenster
der Plugin--Module um.
OK Übernimmt die Einstellungen und schließt das Fenster.
Attribut Bedeutung
Name Bezeichnung in der Liste.
Typ *1 Typ des Plugin--Moduls.
Pfad *1 Pfad und Dateiname.
Aufgabe *1 Zweck des Plugin--Moduls.
Primär
Plazierung Position des jeweiligen Fensters:
Left: Im Bereich des Programmfensters.
Right: Im Bereich der Zustandsfenster.
Bottom: Im Bereich der Meldungsfenster.
Free: Frei positionierbar.
Anzeige Art Anzeigegröße des Fensters:
Normal:
FullWidth: Gesamte Breite der Anzeige.
FullHeight: Gesamte Höhe der Anzeige.
FullSize: Gesamte Breite und Höhe der Anzeige.
Hidden: Unsichtbar.
Ladetyp Bestimmt zu welchem Zeitpunkt das Plugin geladen wird:
OnStart: Beim Start der VSS.
OnDemand: Beim ersten Aufruf des jeweilgen Kommandos
(z. B. [ Anzeige > Binäre E/A ]).
Disabled: Deaktiviert.
Entfernbar Das Plugin--Modul kann gelöscht werden.
Kommandozeile Gibt weitere Optionen an:
Kein Menü:
Keine Softkeys:
Nicht Links:
Nicht Rechts:
Kein Status:
*1 Nicht editierbar.
1.7.7 Aktionsplaner
Der Befehl [ Konfiguration › Extras › Aktionsplaner ] dient zum Ausführen bestimmter Aktio-
nen, die nach einem Zeitplan oder bei Eintreffen einer bestimmten Bedingung gestartet wer-
den.
(1) Auswahl geplanter und bedingter Aktionen. (2) Konfiguration der betreffenden Aktion.
Abb. 43 Aktionsplaner
Softkey Bedeutung
Aktual. Aktualisiert die Anzeige des Aktionsplaners.
Tab+ Bewegt den Fokus auf das nächste Element.
Übernehmen Übernimmt die Änderungen.
Schließen Schließt den Aktionsplaner. Nicht gesicherte Änderungen gehen
verloren.
Zeitgesteuerte Aktionen
Die Aktion kann an einem bestimmten Tag zu einer bestimmten Uhrzeit gestartet werden.
Wahlweise ist die Angabe eines Wiederholungsintervalls möglich. In den Betriebsarten “T1”
und “T2” erfolgt ein Abgleich zwischen Grundsystem und Festplatte alle 5 Minuten.
Um die Lebensdauer der Festplatte nicht unnötig zu verringern, sollten die Zeitin-
tervalle beim Abgleich zwischen Grundsystem und Festplatte nicht zu klein ge-
wählt werden.
Bedingte Aktionen
Die Aktion wird ausgeführt, sobald eine bestimmte Bedingung erfüllt ist. Beim Umschalten
der Betriebsart erfolgt ein Abgleich zwischen Grundsystem und Festplatte.
1.8 Rückwärtsfahren
Die Einstellungen für das Rückwärtsfahren werden über den Befehl [ Konfiguration > Rück-
wärtsfahren ] aufgerufen.
Punkte
2
30.
Merker
3
5.
Softkey Bedeutung
Default Stellt die Anzahl der Punkte und der aufgezeichneten Merker auf
einen Standardwert ein.
OK Übernimmt die eingestellten Werte.
Abbrechen Die Werte werden nicht übernommen und die Konfiguration wird
abgebrochen.
1.9 ASCII--Konfiguration
Dieser Befehl dient zum Einstellen der ASCII--Schnittstelle.
1 Activ
2 .
Cart
3 .
4 Axis
(1) Setzt bei jedem Aufzeichnungsstart den unter (2) angegebenen Ausgang auf “TRUE”. Bei Auf-
zeichnungsende wird der Ausgang auf “FALSE” gesetzt. Zwischen dem Bewegungsende und
dem Aufzeichnungsende ist eine Verzögerung von mehreren Ipo--Takten möglich.
(2) Digitaler Ausgang, der bei Aufzeichnungsstart oder Aufzeichnungsende entsprechend gesetzt
wird. Ein Ändern des Ausgangs ist nur möglich, wenn (1) aktiviert ist.
(3) Sichert die Aufzeichnung in den Dateien “RECORDn.IBG” und “R_ISTWn.IBG”. Die Istposition
wird in kartesischem Format aufgezeichnet. Eine bereits bestehende Datei wird überschrieben.
(4) Sichert die Aufzeichnung in den Dateien “RECORDn.IBG” und “R_ACHSWn.IBG”. Die Sollposi-
tion wird in achsspezifischem Format aufgezeichnet. Eine bereits bestehende Datei wird über-
schrieben.
Änderungen an der Konfiguration wirken sich nicht auf eine bereits laufende Aufzeichnung
aus.
Softkey Bedeutung
Anzeige Zeigt das Zustandsfenster [ Anzeige > Sensordaten ] an.
OK Übernimmt die eingestellten Werte. Ist die Sensorsynchronisation
aktiv, erfolgt eine Überprüfung des projektierten Ausgangs auf
Gültigkeit.
Abbrechen Die Werte werden nicht übernommen und die Konfiguration wird
abgebrochen.
1.10 Archivieren
Mit dieser Funktion werden bestimmte Einträge auf Diskette archiviert bzw. wiederherge-
stellt.
1.10.1 Archivieren
1.10.2 Wiederherstellen
Anzeige Ein--/Ausgänge
Istposition
Merker
Flags
Zähler
Timer
ProcParam Einzeln Anzeigen
Variable Übersicht Konfiguration
Diagnose “ConfigMon.ini” bearb.
Anzeige aktualisieren
Fenster
2.1.1 Anzeigen
2.1.2 Konfiguration
Nach Aufruf dieses Befehls wird das entsprechende Zustandsfenster angezeigt. Hier kön-
nen Variablen zu verschiedenen Gruppe zusammengefaßt werden.
1 2 3 4
5 6
7 8
(1) Der Status gibt an, ob eine Variable ständig aktualisiert wird. Pro Gruppe dürfen bis zu 12 Varia-
blen ständig überwacht werden.
(2) Beschreibung der Variablen.
(3) Der vom System verwendete Variablenname.
(4) Der Befehl [ Variablen > Übersicht > Anzeigen ] zeigt an dieser Stelle den Wert der jeweiligen
Variablen an.
(5) Aktuelle Variablengruppe.
(6) Weitere zur Verfügung stehende Variablengruppen.
(7) Werte für die Spaltenbreite und Zeilenhöhe der Variablen.
(8) Die Benutzergruppe, ab der die Variablengruppe editierbar oder sichtbar ist.
Die Spaltenbreite bzw. Zeilenhöhe kann auch direkt mit einer am System angeschlosse-
nen PC--Maus verändert werden. Dazu bewegen Sie den Mauszeiger auf die Trennlinie
in die Titelzeile bzw. --spalte, halten die linke Maustaste gedrückt und ziehen die Linie auf
die gewünschte Position.
Spalte Bedeutung
Anzeige Ruft die Variablenübersicht auf.
Tab+ Wählt die nächste zur Verfügung stehende Variablengruppe an.
Wechseln Bewegt den Fokus im Zustandsfenster auf das jeweils nächste
zur Verfügung stehende Feld.
Einfügen Ermöglicht das Hinzufügen von neuen Gruppen bzw. Zeilen. Die
folgenden Optionen stehen zur Verfügung:
G. davor Fügt eine neue Gruppe vor der aktuellen ein.
G. dahinter Fügt eine neue Gruppe hinter der aktuellen ein.
Z. davor Fügt eine neue Zeile vor der markierten ein.
Z. darunter Fügt eine neue Zeile unter der markierten ein.
Abbrechen Es wird keine Gruppe oder Zeile eingefügt.
Löschen Ermöglicht das Entfernen von einzelnen Zeilen oder einer
Gruppe. Nach drücken des Softkeys stehen die folgenden Optio-
nen zur Verfügung:
Zeile: Die aktuelle Zeile wird gelöscht.
Gruppe: Die aktuelle Gruppe wird entfernt.
Abbrechen: Die Aktion wird abgebrochen.
OK Mit [ OK ] werden die Änderungen übernommen und das Zu-
standsfenster geschlossen.
Abbrechen Die Aktion wird beendet und das Zustandsfenster geschlossen.
Gruppe hinzufügen
Die Softkeys [ G. davor ] und [ G. dahinter ] öffnen ein neues Dialogfenster.
1
2
3
(1) Bezeichnung der Gruppe, welche als Reiter angezeigt wird (maximal 25 Zeichen).
(2) Benutzergruppe, ab der diese Variablengruppe editiert werden kann.
(3) Benutzergruppe, ab der diese Variablengruppe sichtbar ist.
Zeile einfügen
Die Softkeys [ Z. davor] und [ Z. darunter ] fügen eine neue Zeile ein, die anschließend mit
den entsprechenden Werten (Bezeichnungen, Variablen, usw.) gefüllt werden kann.
Softkey Bedeutung
Schließen Übernimmt die Änderungen und schließt das Programmfenster.
NAVIGATOR Dieser Softkey holt den Navigator in den Vordergrund.
2.2 Trockenlauf
Der Trockenlauf wird über die Datei “C:\KRC\ROBOTER\INIT\PROGRESS.INI” im Abschnitt [FEA-
TURES] aktiviert.
; PROGRESS.INI
...
[FEATURES]
...
DRY_RUN = 0 ; Bit0 -> Assignment to $CycFlag in KBE
; Bit1 -> Anout ON/OFF in KBE
; Bit2 -> IO-Zero and -Restore, ...
...
2.3 5 Home--Positionen
Ab der Softwareversion 2.3 kann der Anwender zusätzlich zur Home--Position weitere 5 Ho-
me--Positionen definieren. Insgesamt stehen dann 6 verschiedene Positionen zur Auswahl.
Analog zur bisherigen Home--Position “$H_POS”, bei deren Erreichen die Variable
“$IN_HOME” auf “TRUE” gesetzt wird, werden für die Positionen “$AXIS_HOME[1]” ...
“$AXIS_HOME[5]” jeweils die Variablen “$IN_HOME1” ... “$IN_HOME5” auf “TRUE” ge-
setzt.
Wie bei “$H_POS” gilt auch bei den 5 zusätzlichen Home--Positionen das durch die Variable
“$H_POS_TOL” definierte Toleranzband. Befinden sich alle Achsen innerhalb dieses Tole-
ranzfensters, wird der zugehörige Ausgang gesetzt.
Diese Datei befindet sich standardmäßig im Verzeichnis “C:\ KRC\ Roboter\ KRC\
Steu\ MaDa”.
Achsen, die in den Momentenbetrieb geschaltet sind, können nicht in Abhängigkeit mit
anderen Achsen gefahren werden.
Bei Abschalten des Momentenbetriebes fährt die Achse von der aktuellen Position auf die
nächste Position im Programm.
Roboter greift Bauteil. Teil wird aus der Form ge- Teil wird vom Roboter über-
löst. Der Ausstoßhub wird nommen und aus dem Be-
durch Drehung des Robo- reich der Druckguß--
ters um Achse 1 abgefan- maschine heraus gefahren.
gen.
G Der Roboter greift das noch in einer der Formhälften sitzende Bauteil.
G Das Lösen des Teiles aus der Form geschieht durch einen hydraulischen Ausstoßer.
G Der Hub des Ausstoßers kann in der kurzen Zeit, in der dieser erfolgt, nicht meßtech-
nisch erfaßt und von der Robotersteuerung ausgewertet werden.
G Durch den Momentenbetrieb der Achse 1 gibt der Roboter bei entsprechender Anord-
nung nach, so daß der Ausstoßhub durch eine Drehung um Achse 1 abgefangen wird
und keine schädlichen Belastungen auf den Roboter wirken.
Eine schräg in den Raum wirkende Ausstoßbewegung, die eine programmierte Bahn unter
Einbeziehung mehrerer Achsen für den Momentenbetrieb erfordern würde, ist nicht um-
setzbar.
Wird jedoch der Roboter so angeordnet, daß die Bodenflanschfläche parallel zur Ebene
der Ausstoßbewegung liegt, beispielsweise durch schräge Montage des Roboters, ist Mo-
mentenbetrieb der Achse 1 möglich.
Die Schräglage des Roboters ist nur innerhalb bestimmter Grenzen zulässig.
Siehe hierzu Abschnitt 2.4.1.
Durch entsprechendes Einstellen der negativen und positiven Grenze des Dreh-
zahlreglerausganges kann erreicht werden, daß der Roboter das aus der Schwer-
kraft resultierende Moment ausgleicht, ja sogar am Teil zieht und sich ohne Ge-
genkraft vom Ausstoßer wegdrücken läßt.
2.4.2 Funktionsweise
Mit der Systemvariablen “$CURR_RED[x,x]” kann die Begrenzung des Drehzahlregler--
Ausgangs verändert werden. Für die positive sowie die negative Grenze ist jeweils ein Index
vorhanden. Die Aktivierung der jeweiligen Achse geschieht im Bitfeld “$TORQUE_AXIS”.
Durch Manipulation der Drehzahlreglergrenze ist definierbar, daß die Achse entweder weich
ist oder mit einer definierten Kraft drückt.
Wird der Momentenbetrieb für eine Achse aktiviert, sind die Überwachungen “Stellgröße”,
“Stillstand”, “Positionierzeit” und “Motor blockiert” für diese Achse abgeschaltet. Dabei wird
nur noch die Istgeschwindigkeit dieser Achse überwacht. In der Betriebsart “Test 1” darf die
Geschwindigkeit nicht höher sein als
$RED_T1 * $VEL_ACT_MA
In der Betriebsart Test 2 und Automatik kann die Überwachungsgrenze mit der Variablen
“$TORQ_VEL[]” im Programm beeinflußt werden. Dabei sind Geschwindigkeiten bis 150%
zulässig.
Wird der Momentenbetrieb abgeschaltet, fährt die Achse von der aktuellen Position zur
nächsten Position im Programm weiter. Ein Beschreiben der Variablen “$TORQUE_AXIS”
löst einen Vorlaufstop aus.
Bei Beladung der Achse mit einer höheren Last als zulässig, sowie bei falscher Ein-
stellung der Stromgrenze, sackt der Roboterarm nach unten durch!
Achse 2 sollte wegen des Druckausgleichs und da sie in senkrechter Stellung das
geringste Moment hat, niemals weich geschaltet werden. Die Gefahr, daß die Achse
nach unten durchsackt, ist sehr groß!
REAL $CURR_RED[12,2]
Strombegrenzung der Achsen 1 bis 12 in Prozent vom maximal Strom (0% bis +100%).
Dabei ist Index 1 die positive und Index 2 die negative Grenze. Diese Grenzen sind Absolut--
werte zwischen 0% und 100%.
Die Strombegrenzung birgt die Gefahr, daß die Achse nicht mehr das erforderli-
che Moment zum Halten, Bremsen oder Fahren aufbringen kann. Dadurch kön-
nen Menschen und Maschinen gefährdet werden!
Eine Begrenzung des Stroms darf nur im Zusammenhang mit “$TORQUE_AXIS”
verwendet werden.
INT $TORQUE_AXIS
Dies ist ein Bitfeld für die momentenbetriebene Roboterachsen A1 bis A6 sowie die externen
Achsen E1 -- E6.
Das Setzen eines Bits für die entsprechende Achse schaltet diese Achse in den Momenten-
betrieb. Die Überwachungsfunktionen für diese Achse werden abgeschaltet.
REAL $TORQ_VEL[12]
Geschwindigkeitsgrenze in Prozent von der maximalen Geschwindigkeit zur Überwachung
der momentenbetriebenen Achse.
Um sicherzustellen, daß im Falle eines Defektes oder Fehlers in der Hardware oder ein
Durchsacken der Achse erkannt wird, findet eine Überwachung der Geschwindigkeit statt.
Mittels der Variablen “$TORQ_VEL” kann im Programm die maximal zulässige Geschwindig-
keit in den Betriebsarten T2 und Automatik eingestellt werden.
Für die Betriebsart T1 gilt die Geschwindigkeit, welche in den Maschinendaten eingestellt
ist. Bei Überschreitung dieser Geschwindigkeit werden die Antriebe abgeschaltet und eine
entsprechende Fehlermeldung ausgegeben.
2.5 Kollisionsüberwachung
2.5.1 Funktion
Falls der Roboter mit einem Bauteil kollidiert oder mit seinem Werkzeug an einem Bauteil
hängen bleibt, reagiert der Lage-- und Drehzahlregler entsprechend. Die Sollmomente der
beteiligten Achsen werden automatisch erhöht. Abhängig vom Anwendungsfall kann der Ro-
boter den Widerstand überwinden und seine Bewegung fortsetzen. Hierbei können Werk-
zeug bzw. Bauteil beschädigt werden.
Der Anwender kann sowohl die Momentengrenzen als auch die Ansprechzeit konfigurieren.
Über eine KRL--Variable wird ein Bereich (ein sogenannter “Überwachungsschlauch”) um
das jeweilige Moment gelegt. Verläßt das Moment diesen Überwachungsschlauch, wird
nach der angegebenen Ansprechzeit eine bahntreue Stopreaktion ausgelöst und eine ent-
sprechende Meldung im Meldungsfenster ausgegeben.
Im Normalfall ist die Überwachung ausgeschaltet, der Standardwert des Überwachungs-
schlauchs beträgt 200%. Für einzelne Bewegungen oder Programmteile kann die Überwa-
chung nun sensibler eingestellt werden.
Bei einem Reset, einer Satzanwahl und einer Programmabwahl werden die eingestellten
Grenzen auf den Standardwert aus der Custom.dat zurückgesetzt.
2.5.2 Konfigurieren
Um die Kollisionsüberwachung verwenden zu können, muß auch die Beschleunigungsan-
passung eingeschaltet sein. Dies ist der Fall, wenn die Variable “$ADAP_ACC” den Wert
“#STEP1” besitzt. Sie finden diese Variable in der Datei “C:\KRC\Robo-
ter\KRC\R1\MaDa\$ROBCOR.DAT”:
...
DECL ADAP_ACC $ADAP_ACC=#STEP1 ; BESCHLEUNIGUNGSANPASSUNG
...
Die Lastdaten sind für die Kollisionsüberwachung korrekt zu ermitteln. Außerdem muß der
Überwachungsschlauch an den jeweiligen Anwendungsfall angepaßt werden.
Die Ansprechzeit der Überwachung kann mit der Variablen “$TORQMON_TIME” in [ms] ein-
gestellt werden. Diese Variable befindet sich in der Datei “C:\KRC\Robo-
ter\KRC\Steu\MaDa\$CUSTOM.DAT”:
...
REAL $TORQMON_TIME=0.0 ;ZEIT FUER FAHRMOMENTENUEBERWACHUNG
...
Die Größe des Überwachungsschlauchs wird durch folgende Variablen in der Datei
“C:\KRC\Roboter\KRC\MaDa\$CUSTOM.DAT” vorgegeben:
G Standardwerte des Überwachungsschlauchs für den Programmbetrieb in Prozent
...
$TORQMON_DEF[1]=200
$TORQMON_DEF[2]=200
$TORQMON_DEF[3]=200
$TORQMON_DEF[4]=200
$TORQMON_DEF[5]=200
$TORQMON_DEF[6]=200
...
G Standardwerte des Überwachungsschlauchs für den Kommandobetrieb in Prozent
...
$TORQMON_COM_DEF[1]=200
$TORQMON_COM_DEF[2]=200
$TORQMON_COM_DEF[3]=200
$TORQMON_COM_DEF[4]=200
$TORQMON_COM_DEF[5]=200
$TORQMON_COM_DEF[6]=200
...
Die Breite des Toleranzbandes ergibt sich aus dem maximalen Moment in [Nm] multipliziert
mit der Prozentsatz von “$TORQMON_...”.
Vor einem Bewegungssatz bzw. Bewegungsabschnitts setzen Sie die Variable mit Hilfe
der Variablenkorrektur [ Anzeige > Variable > Einzeln ] auf “0”.
Nun führen Sie den Bewegungssatz aus und lesen die Variable erneut aus. Der ausgege-
bene Wert entspricht der aufgetretenen maximalen Momentabweichung.
Setzen Sie nun den Überwachungsschlauch auf den Wert von “$TORQ_DIFF[ ]” zuzüglich
einer Sicherheit von 5--10%.
Der Variable “$TORQ_DIFF[ ]” kann nur der Wert “0” zugewiesen werden.
2.6 Überwachung
2.6.1 Außenlüfter Steuerschrank
Um die Lebensdauer des Außenlüfters zu verlängern, sowie dessen Stromaufnahme und
Geräuschentwicklung zu reduzieren, kann der Außenlüfter der (V)KR C2--Steuerung stan-
dardmäßig abgeschaltet werden. Verschiedene Temperaturwerte im Inneren des Steuer-
schranks werden ständig überwacht. Überschreitet einer dieser Temperaturen einen be-
stimmten Wert, wird der Außenlüfter für eine bestimmte Zeitdauer eingeschaltet.
2.6.2 PC--Lüfter
Diese Funktion überprüft im Rechnerteil des Steuerschranks (V)KR C2 die Drehzahlen des
Lüfters auf zwei Werte.
G Unterschreitet die Drehzahl des Lüfters den ersten Wert, erfolgt die Ausgabe einer nicht
quittierbaren Meldung im Meldungsfenster.
G Wird der zweite Wert unterschritten, erfolgt ebenfalls die Ausgabe einer Fehlermeldung
und der Roboter wird gestoppt.
Über die Variablenkorrektur können Sie die aktuelle Drehzahl des Lüfters abfragen, indem
Sie in die Eingabezeile die Variable “$PC_FANSPEED” eingeben. Wurde die Überwachung
deaktiviert, erfolgt die Anzeige von “--1”. Wird ein Office--PC verwendet oder ist keine MFC2
vorhanden, wird “--2” ausgegeben.
2.6.4 Motorkabelüberwachung
Für bestimmte Robotertypen an der “(V)KR C2”--Steuerung sind zusätzliche Motorkabel für die
Achsen 1 ... 3 erforderlich. Mit einem Eintrag in der Datei “C:\KRC\Roboter\KRC\R1\MaDa\$ma-
chine.dat” wird die Überwachungsfunktion eingeschaltet (TRUE) bzw. ausgeschaltet (FALSE).
BOOL $CABLE2_MON=FALSE
Ist die Funktion aktiviert, und die erforderlichen sind Kabel nicht angeschlossen, erfolgt die
Ausgabe einer nicht quittierbaren Meldung im Meldungsfenster.
3 Automatik Extern
Bei verketteten Produktionsstraßen ist es nötig, Roboterprozesse von zentraler Stelle aus
starten zu können. Über die Schnittstelle “Automatik Extern” kann ein Leitrechner mit der
Robotersteuerung kommunizieren und verschiedene Roboterprozesse auslösen. Ebenso
kann die Robotersteuerung Informationen über Betriebszustände und Störmeldungen an
den Leitrechner übermitteln.
Bei der (V)KR C... wird dies alles durch den automatischen Anlagenanlauf, das technologie--
spezifische Organisationsprogramm CELL.SRC realisiert.
1 2 3 4
(1) Eine Funktionsbeschreibung der jeweiligen Variablen oder des betreffenden Ein--/Ausgangs.
(2) Als Typ kommt eine Variable (gelb) oder ein Ein--/Ausgang (grün) vor.
(3) Der Variablenname des entsprechenden Ein--/Ausgangs.
(4) Der Wert des Ein--/Ausgnags oder die Kanalnummer.
Erklärungen zu den Ein--bzw. Ausgängen für Automatik Extern finden Sie im Abschnitt 3.2.
Bewegen Sie den Fokus (die dunkelblaue Markierung) mit den Cursor--Tasten [ ↓ ] bzw. [ ↑ ]
auf das gewünschte Feld. Anschließend geben Sie über das Nummernfeld die Schnittstel-
lennummer an, auf die das Signal gelegt werden soll.
3.1.1 Eingänge
Dieses Zustandsfenster zeigt die Eingänge der Automatik--Extern Schnittstelle an.
Softkey Bedeutung
Anzeige Entspricht der Funktion [ Anzeige > Ein--/Ausgänge > Automatik
Extern ].
Ausgänge Schaltet auf das entsprechende Zustandsfenster um.
Bearb. Verändert den Wert des Eingangs oder der Kanalnummer.
OK Prüft den geänderten Wert auf Gültigkeit und über-
nimmt ihn, wenn die Eingabe zulässig ist.
Abbrechen Verwirft die Änderung.
Schließen Schließt das Zustandsfenster.
3.1.1.1 Ausgänge
Dieses Zustandsfenster zeigt die Ausgänge der Automatik--Extern Schnittstelle an.
Softkey Bedeutung
Anzeige Entspricht der Funktion [ Anzeige > Ein--/Ausgänge > Automatik
Extern ].
Eingänge Schaltet auf das Zustandsfenster für die Eingänge der Automa-
tik--Extern Schnittstelle um.
Bearb. Mit diesem Softkey kann der Wert des Ausgangs bzw. die Kanal-
nummer verändert werden.
OK Prüft den geänderten Wert auf Gültigkeit und über-
nimmt ihn, wenn die Eingabe zulässig ist.
Abbrechen Verwirft die Änderung.
Schließen Schließt das Zustandsfenster.
3.2 Schnittstellenbeschreibung
3.2.1 Folgennummer--Vorgabe und Folgennummer--Spiegelung
Das Darstellungsformat der Folgennummer ist über die Variable P_TYPE einzustellen.
Es werden folgende Darstellungsformate angeboten:
G P_TYPE = 0 vorzeichenloser, binär--kodierter Integerwert ohne Paritäts--
überprüfung
G P_TYPE = 1 1 aus n
Innerhalb des Adressraumes der (V)KR C... wird die Folgennummer ab dem Eingang gele-
sen, der mit der Variablen P_FBIT konfiguriert wird.
Die Anzahl der Folgennummer--Bits wird mit der Variablen P_LEN konfiguriert.
Die Spiegelung der Folgennummer erfolgt innerhalb des Adressraumes der (V)KR C... ab
dem Ausgang, der mit der Variablen R_FBIT konfiguriert wird. Es wird dabei immer die Fol-
gennummer gespiegelt, welche die übergeordnete Steuerung vorgibt. Wird von der BMS
(Betriebsmittelsteuerung) eine Folgennummer vorgegeben, die nicht dem konfigurierten
Übertragungsformat entspricht oder zu der kein entsprechendes Folgenprogramm vorhan-
den ist, spiegelt die (V)KR C... den Wert 0.
Eintrag im Konfigurationsmenü:
P_TYPE = 1 ; Folgenvorgabe: 1 aus n
P_FBIT = 129 ; Folgennummer beginnt mit Eingang 129
R_FBIT = 129 ; Spiegelung der Folgennummer ab Ausgang 129
P_LEN = 8 ; Länge der Folgennummer 8 Bit
3.2.2 Automatik--Extern--Ausgänge
3.2.2.1 Bereit
Mit dem Ausgang (BEREIT = 1) meldet die (V)KR C... der BMS, daß sie betriebsbereit ist.
Tritt ein Fehler in der Robotersteuerung auf, der eine Bedienhandlung am (V)KCP erfordert,
so meldet die (V)KR C... den Fehlerzustand (BEREIT = 0) an die BMS. Es wird eine entspre-
chende Fehlermeldung am (V)KCP ausgegeben:
BEREIT = 0
G unzulässige Betriebsart
G INTERBUS--Master--Fehler
G Passiver Stop am (V)KCP
G interner Fehlerzustand (Bedienhandlung am (V)KCP erforderlich)
BEREIT = 1 (keine internen Fehlerzustände)
G im NOT--AUS--Zustand
G bei geöffnetem Schutzgitter
G Antriebe nicht bereit
G SAK--Fahrt in der Betriebsart Single--Step erforderlich
G kein anderer interner Fehlerzustand
3.2.3 Automatik--Extern--Eingänge
3.2.3.1 SRB -- Start Folge
Mit dem pegelgesteuerten Eingang (SRB = 1) startet die BMS die aktuelle Folge. Dieses Sig-
nal muß von der BMS nicht zurückgesetzt werden. Es kann vielmehr auch dauerhaft über
mehrere Folgen hinweg auf “1” bleiben.
3.3 Ablaufbeschreibung
Im automatischen Anlagenhochlauf wird die aktuelle Roboterposition mit dem zuletzt gespei-
cherten P0 verglichen. Steht der Roboter innerhalb des Positionierfensters um P0 wird der
Ausgang (PF0 = 1) gesetzt.
Während der normalen Programmbearbeitung wird nach Erreichen des Punktes P0 der Aus-
gang (PF0 = 1) (Nullpunkt der Folge erreicht) gesetzt und die Punkt--SPS dieses Punktes
ausgeführt. Danach wartet die Robotersteuerung auf den Folgenstart (SRB = 1).
Überträgt die BMS eine gültige Folgennummer FLG1...8 (Folgennummer <> 0 und Folgen-
programm in der Steuerung fehlerfrei vorhanden), so spiegelt die (V)KR C... die aktuelle Fol-
gennummer (RFLG1...8 = 1) und fährt den Punkt P0 dieser Folge an. Ist die angewählte
Folge nicht vorhanden oder die Folgennummer falsch kodiert, so spiegelt die Robotersteue-
rung (RFLG1...8 = 0) und wartet auf eine gültige Folgennummer.
Erkennt die Steuerung während dieser Zeit einen Folgenwechsel, so fährt der Roboter den
Punkt P0 der neuen Folge an. Ist P0 der neuen Folge identisch mit P0 der alten Folge so
bleibt (PF0 = 1), anderenfalls wird während der Bewegung (PF0 = 0) gesetzt.
Nach Erreichen des neuen Punktes P0 wird der Ausgang (PF0 = 1) (Nullpunkt der Folge er-
reicht) gesetzt und die Punkt--SPS dieses Punktes ausgeführt.
Erst wenn die BMS den Folgenstart (SRB = 1) setzt, wird die aktuelle Folge abgearbeitet und
die Maschinelle Sicherheit (Online--Fahrbedingung) überwacht. Erkennt die Steuerung
(SRB = 1), so setzt sie PF0 zurück. Daraufhin kann die BMS den Folgenstart (SRB = 0 )
setzen. Dieses Signal muß von der BMS nicht zurückgesetzt werden. Es kann vielmehr auch
dauerhaft über mehrere Folgen hinweg auf “1” bleiben.
Hat der Roboter den letzten Punkt seiner Folge erreicht, setzt die Steuerung den Ausgang
(LPKT = 1). Die Online--Fahrbedingung wird ab diesem Zeitpunkt nicht mehr überwacht. Die
BMS quittiert diese Meldung, indem sie die Folgennummer (FLG1...8 = 0) setzt. Daraufhin
spiegelt die Robotersteuerung (RFLG1..8 = 0), setzt den Ausgang (LPKT = 0) und fährt den
Nullpunkt der zuletzt bearbeiteten Folge an.
Nach Erreichen des Punktes wird der Ausgang (PF0 = 1) gesetzt und die Punkt--SPS dieses
Punktes ausgeführt. Danach wartet die Robotersteuerung auf eine neue Folgennummer
oder einen erneuten Folgenstart (SRB = 1).
Das Signal ANTEIN darf in der Betriebsart Automatik Extern (RK9 = 1) nur dann auf “1”
gesetzt werden, wenn (PF0 = 1) oder (SAK = 1).
In der Betriebsart “Automatik Extern” startet der Roboter die Programmbearbeitung mit
Hauptschalter “EIN”, falls er sich in P0 der gespeicherten Folge befindet und das Signal
(ANTEIN = 1) wird.
In der Betriebsart “Automatik Extern” wird keine explizite SAK--Fahrt durchgeführt! Mit
(ANTEIN = 1) kann die BMS den Roboter auch dann starten, wenn (SAK = 0)!
3.4
Signal--
3.4.1
Steuerungs-- Antriebe EIN Folgen-- Folgen-- Folgen-- Anfahren Folgen-- letzter Pkt. Folgen-- Folgen--
bezeichnung Hochlauf Prog.--Start Vorgabe<>0 Spiegelung Start von P1 Bearbeiten erreicht Vorgabe = 0 Spiegelung
Signalverläufe
FLG1...FLG8
RFLG1...RFLG8
VKRC/KonfigurationR5.4 11.05.00 de
Automatik Extern (Fortsetzung)
BEREIT
RK9
RK100
LPKT
PF0
SAK
SRB
kann auf 0 zurückgesetzt werden
ANTEIN
Automatischer Anlagen--Hochlauf (Roboter steht in P0 einer Folge)
MSICH
Folgenbearbeitung
81 von 84
3.4.2
82 von 84
Signal-- Steuerungs-- Umschalten SAK--Fahrt in Umschalten Antriebe EIN Folgen--Vor- Folgen-- Folgen-- Anfahren Folgen--
bezeichnung Hochlauf Single Step Single Step Automatik Prog. Start gabe <>0 Siegelung Start von P1 Bearbeitung
FLG1...FLG8
RFLG1...RFLG8
BEREIT
RK9
RK100
LPKT
PF0
SAK
Anlagen--Hochlauf (Roboter steht nicht in P0 einer Folge)
SRB
ANTEIN
MSICH
Folgenbearbeitung
Konfiguration
VKRC/KonfigurationR5.4 11.05.00 de
3
3.4.3
Signal-- Folgen-- Prog.--Stop NOT--AUS Umschalten Hand-- Roboter nicht SAK--Fahrt in Umschalten Antriebe EIN Folgen--
bezeichnung Bearbeitung z.B. NOT--AUS entriegelt Single Step verfahren auf Bahn Single Step Automatik prog.--Start Bearbeitung
FLG1...FLG8
RFLG1...RFLG8
VKRC/KonfigurationR5.4 11.05.00 de
Automatik Extern (Fortsetzung)
BEREIT
RK9
RK100
LPKT
PF0
SAK
SRB
ANTEIN
Roboter wird nach Programm--Stop von Hand verfahren / Wiederanlauf
83 von 84
Konfiguration
Zahlen E
E/A Treiber, 12
5 Home--Positionen, 61
Editor, 20
Ein/Ausgänge, 7
A Ein/Ausschaltoptionen, 18
Ablaufbeschreibung, 79 Einschränkungen, 63
Achse mit definiertem Moment, 66 Experte, 16
Allgemein, 63 Extras, 19
Alternatives Bussegment, 8
Analyse Rekonfigurieren, 49 F
Anlagen--Hochlauf, 82
Fokus, 73
Anlagenhochlauf oder Spannungsausfall, 79
Folgennummer--Spiegelung, 75
Ansprechzeit, 69 Folgennummer--Vorgabe, 75
ANTEIN, 77 Freigabe Stellglieder Start, 76
Antriebe Ein, 77
Anwender, 16
G
Arbeitsraumüberwachung, 22
ASCII, 20 Grundstellung, 77
ASCII--Konfiguration, 53
Ausschalten PowerOff Wartezeit, 18 H
Index -- i
Index
Handachsen, 66 P_TYPE, 75
Handachsgetriebe, 63 Parität, 11
Handoverride, 15 PC--Lüfter, 72
Handverfahren, 15 PF0, 77
Hardwarewarnung, 72 Positionsüberwachung, 79, 80
Hilfe, 52 POV, 15
HOV, 15 Programmierbetrieb, 76
Programmoverride, 15
Programmunterbrechung ohne Spannungsaus-
I fall, 80
INSIDE_STOP, 25, 36 Projektierbarer Ausgang für Hardwarewarnung,
INT $TORQUE_AXIS, 68 72
Interbus--Segmentnummer, 7
Interbus--Teilnehmernummer, 7 R
R_FBIT, 75
K REAL $CURR_ACT[12], 68
REAL $CURR_RED[12,2], 68
Kaltstart erzwingen, 18
Risiken, 63
Kein Momentenbetrieb möglich, 63
RK100, 76
Kollisionsüberwachung, 69
RK23, 76
KRL, 16
RK8, 76
RK9, 76
L Rückwirkungsgrad, 63, 66
Länge, 11
Leitrechner, 73 S
Letzter Punkt erreicht, 77 SAK, 77
LPKT, 77 Satzkoinzidenz, 77
Schnittstelle konfigurieren, 73
M Schnittstellenbeschreibung, 75
Schräglage des Roboters, 64
Momentenbetrieb, 63
Signalverläufe, 81
Momentenbetrieb möglich, 63
Single--Step--Betrieb, 76
Momentengrenzen, 69
Sprache, 19
Motorkabelüberwachung, 72
SPS.SUB, 77
SRB, 77
N Standardisierung der Schnittstelle, 84
nach Programm--Stop von Hand verfahren, 83 Start Folge, 77
NOT--AUS, 76 Startbit, 11
SUBMIT Interpreter, 14
System konfigurieren, 5
O
OUTSIDE_STOP, 25, 36 U
Override, 15
Überbrücken der Arbeitsraumüberwachung, 26
Überwachung der Grundstellung in P0, 78
P Überwachungsschlauch, 69
P_FBIT, 75
P_LEN, 75 V
Index -- ii
Index
W
Wandmontage, 63
Warte Prozess, 77
Warte Slave, 77
Weichschaltung Achse 1, 65
WAIT FOR $IN[], 65
Weichschaltung Achse 3, 66
WPROZ, 77
WSLAV, 77
Z
Zange, 7
Zangentyp, 7, 9
Zeilenumbruch, 21
Index -- iii
2 Prog. Experte
SOFTWARE
VKR C...
Programmierung Experte
1 Allgemeines zu KRL--Programmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Aufbau und Struktur von Programmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Bedienoberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Dateikonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.3 Dateistruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.4 Programm editieren, kompilieren und binden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Verstecken von Programmteilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.1 FOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.1.1 Beispielprogramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Programmablaufart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 Auswahl der Programmablaufart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Wechsel der Programmablaufart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 Richtlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.1 Punkt wird mit falschem BASIS--Koordinatensystem angefahren . . . . . . . . . . . . . . . . . . . . . 18
1.5.2 Doppeldeklarationen vermeiden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Bewegungsprogrammierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1 Verwendung verschiedener Koordinatensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.1 Achsspezifisches Koordinatensystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.2 Kartesisches Koordinatensystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 Punkt--zu--Punkt Bewegungen (PTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2.1 Allgemein (Synchron--PTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2.2 Höheres Fahrprofil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.2.3 Bewegungsbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.2.3.1 Mechanische Grundstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.2.3.2 Satzkoinzidenz -- SAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.2.3.3 Status (S) und Turn (T) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.2.3.4 Singularitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3 Bahnbewegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3.1 Geschwindigkeit und Beschleunigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3.2 Orientierungsführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.3.2.1 Konstante und variable Orientierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.3.2.2 Raumbezogene Orientierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.3.2.3 Bahnbezogene Orientierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.3.3 Linearbewegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.3.4 Kreisbewegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.3.4.1 Kreiswinkel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.4 Rechnervorlauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.4.1 Anzahl der Bewegungssätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.4.2 Anweisungen und Variablen die einen automatischen Vorlaufstop auslösen . . . . . . . . . . . . 92
3.4.3 Befehle die einen Vorlaufstop verhindern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.4.3.1 Voreinstellungen von $ADVANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.5 Überschleifbewegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.5.1 Überschleifkontur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.5.2 PTP--PTP--Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.5.3 LIN--LIN--Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.5.4 CIRC--CIRC--Überschleifen und CIRC--LIN--Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.5.5 PTP--Bahnüberschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.5.6 Werkzeugwechsel beim Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4 Programmablaufkontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.1 Programmverzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.1.1 Sprunganweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.1.2 Bedingte Verzweigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.1.3 Verteiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4.2 Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.2.1 Zählschleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.2.2 Abweisende Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.2.3 Nicht abweisende Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4.2.4 Endlosschleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.2.5 Vorzeitige Beendigung von Schleifendurchläufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3 Warteanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.3.1 Warten auf ein Ereignis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.3.2 Wartezeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.4 Anhalten des Programms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.5 Quittieren von Meldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7 Interrupt--Behandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.1 Deklaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.1.1 Gültigkeitsbereich eines Interrupts abhängig vom Deklarationsort . . . . . . . . . . . . . . . . . . . . . 149
7.2 Aktivieren von Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.2.1 Nützliche Systemvariablen bei der Interrupt--Behandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.3 Laufende Bewegungen anhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.4 Abbrechen von Interrupt--Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.4.1 Schnelles Messen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9 Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.1 Lokale Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.2 Globale Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Datei Bedeutung
CELL.SRC Programm zur Steuerung von Robotern über eine zentrale SPS.
Folge... Anwenderprogramm.
Datei Bedeutung
$MACHINE.DAT Systemdatenliste mit Systemvariablen zur Anpassung von Steue-
rung und Roboter
$ROBCOR.DAT Systemdatenliste mit Daten für das Dynamikmodell des Roboters
.. .servo Maschinenspezifische Servodateien.
MACHINE.UPG Upgrade--Dateien
ROBCOR.UPG
MACHINE.UST Wegen Kompatibilität zu Vorgängerversionen vorhanden.
ROBCOR.UST
Datei Bedeutung
MAKROSAW.SRC Programm für die Satzanwahl.
MAKROSG.SRC Programm für die Servozange.
MAKROSPS.SRC Programm für die freilaufende SPS.
MAKROSTEP.SRC Ermöglicht Abläufe in Form einer Schrittkette zu programmieren.
MAKROTRIG- Stellt 8 vordefinierte Trigger zur Verfügung, die auf boole’sche
GER.SRC Operanden reagieren.
Datei Bedeutung
$CONFIG.DAT Systemdatenliste mit allgemeinen Konfigurationsdaten.
BAS.SRC Basis--Paket zum Initialisieren etc.
IBGN.SRC Programm für die ASCII--Schnittstelle.
PROCPARAM.DAT Datei für Prozessparameter.
SELECT.DAT Verteilungsprogramme für die Ausführung von Makros, UPs usw.
SELECT.SRC
SPS.SUB Submitfile.
VW.SRC Standard--Routinen VW.
VW_SERVO
VW_SPS
WEAV_DEF.SRC Programm für Pendelbewegungen.
Datei Bedeutung
VW_USER.SRC Wegen Kompatibilität zu Vorgängerversionen vorhanden.*2
VW_USER.DAT
VW_USR_R.SRC Bausteine für die Expertenprogrammierung
VW_USR_R.DAT
VW_USR_S.SRC
VW_USR_S.DAT
*2 Möglichst nicht benutzen!
1.1.2 Dateikonzept
Ein KRL--Modul kann aus SRC-- und DAT--File bestehen.
Das “SRC”--File ist die Datei mit dem eigentlichen Programmcode. Dabei gibt es die Varian-
ten DEF und DEFFCT (mit Rückgabewert). Das “DAT”--File enthält dagegen die spezifi-
schen Programmdaten. Diese Teilung beruht auf dem Dateikonzept von KRL: Das Pro-
gramm (SRC) beinhaltet neben dem Bearbeitungsablauf verschiedene Aktionen, die der
Industrieroboter ausführen soll. Dies können bestimmte Bewegungsabläufe sein, das Öff-
nen oder Schließen eines Greiferwerkzeugs, bis hin zu komplexen Abläufen, wie beispiels-
weise die Steuerung einer Schweißzange unter Berücksichtigung der Randbedingungen.
Zum Testen von großen Programmen ist es hilfreich bzw. erforderlich, Teilaufgaben einzeln
zum Ablauf bringen zu können. Hierzu werden einzelne Teilaufgaben auf Unterprogramme
verteilt, welche vom entsprechenden Modul aus aufgerufen werden. Das in KRL realisierte
Dateikonzept wird den speziellen Bedürfnissen der Roboterprogrammierung gerecht.
1.1.3 Dateistruktur
Eine Datei ist die Einheit, welche der Programmierer erstellt und entspricht damit einer Datei
auf der Festplatte oder im Speicher (RAM). Jedes Programm in KRL kann aus einem oder
mehreren Dateien (Modulen) bestehen. Einfache Programme umfassen genau ein Modul.
Komplexere Aufgaben löst man besser mit einem Programm, das aus mehreren Modulen
besteht.
Detaillierte Informationen über Unterprogramme und Funktionen finden Sie im Kapitel [Un-
terprogramme und Funktionen]
Der innere Aufbau einer KRL--Datei besteht aus Vereinbarungsteil, Anweisungsteil sowie
bis zu 255 lokalen Unterprogrammen und Funktionen.
DEF
Der Modulname ohne Erweiterung ist zugleich der Name des Hauptprogramms und wird
deshalb in der Vereinbarung mit “DEF“ angeführt. Der Name kann aus maximal 24 Zeichen
bestehen und darf kein Schlüsselwort sein (siehe Kapitel [Variablen und Vereinbarun-
gen]). Jede Datei beginnt mit der Vereinbarung “DEF” und endet mit “END”.
DEF NAME(X1:IN)
Vereinbarungen
Anweisungen
END
Vereinbarung
Im Vereinbarungsteil eines SRC--Files werden die Laufzeitdaten des jeweiligen Programms
vereinbart. Jedes Haupt-- und Unterprogramm kann seinen eigenen Vereinbarungsteil ha-
ben. Die erste Anweisung beendet den Vereinbarungsteil, weitere Vereinbarungen sind ab
diesem Zeitpunkt nicht mehr zulässig. Im SRC--File können Deklarationen und Initialisierung
nicht gleichzeitig erfolgen.
Anweisung
Die Anweisungen eines Programms werden zur Laufzeit vom Interpreter ausgeführt.
Programm/Datenliste
Ein Roboterprogramm kann aus einer Programmdatei alleine oder aus einer Programmdatei
mit zugehöriger Datenliste bestehen. Datenliste und Datei werden über den gemeinsamen
Modul--Namen als zusammengehörig gekennzeichnet. Die Namen unterscheiden sich nur
in der Eweiterung, z.B.:
Datei: PROG1.SRC
Datenliste: PROG1.DAT
Submitdatei
Neben den Roboterdateien (SRC) gibt es auch Submitdateien. Submitdateien enthalten Pro-
grammanweisungen (keine Bewegungsbefehle) und können z.B. zur zyklischen Überwa-
chung (Greifer, etc.) genutzt werden. Submitdateien arbeiten parallel zum Betrieb des Robo-
ters und werden vom Submit--Interpreter ausgeführt. Zur Kennzeichnung erhalten
Submitdateien die Erweiterung “.SUB”.
Haupt-- und Unterprogramme eines Moduls können auf alle Daten der zugehörigen Daten-
liste zugreifen. Initialisierungen in Datenlisten sind nur mittels Konstanten erlaubt und wer-
den direkt hinter der Deklaration notiert, z.B.:
DECL INT A=1
Binder
Beim Anwählen werden alle benötigten Dateien und Datenlisten zu einem Programm zu-
sammengebunden. Beim Binden wird überprüft, ob alle Module vorhanden, analysiert und
fehlerfrei sind. Außerdem überprüft der Binder bei einer Parameterübergabe die Typverträg-
lichkeit zwischen den Übergabeparametern. Treten beim Binden Fehler auf, wird die betrof-
fene Datei entsprechend gekennzeichnet.
Template
Beim Erstellen von Programmen mittels [ Neu ] wird ein Rumpfprogramm (liegt in der Datei
“C:\KRC\Roboter\TEMPLATE\vorgabe.src” bzw. “C:\KRC\Roboter\TEMPLATE\vorga-
be.dat”) auf den neuen Namen kopiert.
Selbstverständlich können Sie jedes KRL--Programm aber auch mittels eines ganz norma-
len Text--Editors schreiben und dann über Kopieren und Einfügen in den Systemspeicher la-
den. In diesem Fall müssen Sie allerdings selbst darauf achten, daß alle notwendigen Initiali-
sierungen (z.B. Achsgeschwindigkeiten) vorgenommen werden.
DEF PROG1()
Initialisierungsteil
$VEL_AXIS[5]=100
$VEL_AXIS[6]=100
FOR J=1 TO 5
PTP {A1 45}
PTP {A2 -70,A3 50}
PTP {A1 0,A2 -90,A3 90}
ENDFOR
1.2.1 FOLD
“Folds” sind standardmäßig “geschlossen” und können nur auf der Expertenebene “geöffnet”
werden. Sie enthalten Informationen die für den Anwender auf der KUKA--Bedienoberfläche
(KUKA--Bof) unsichtbar sind. Auf der Expertenebene haben Sie die Möglichkeit einen KRL--
Block für den Anwender unsichtbar zu machen. Hierfür werden die betreffenden Vereinba-
rungen oder Anweisungen durch die Bezeichnungen ;FOLD und ;ENDFOLD eingeschlos-
sen.
Von der Sequenz
⋮
;FOLD RESET OUT
FOR I=1 TO 16
$OUT[I]=FALSE
ENDFOR
;ENDFOLD
⋮
sind auf der Bedienoberfläche nur die Worte RESET OUT zu sehen.
1.2.1.1 Beispielprogramm
DEF FOLDS()
;FOLD INITIALISATION
;---------- Initialisierung ---------
INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 ) ;Initialisierung von Geschwindigkeiten,
;Beschleunigungen, $BASE, $TOOL, etc.
FOR I=1 TO 16
$OUT[I]=FALSE
ENDFOR
HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0}
;ENDFOLD
END
Im geschlossenen FOLD ist nur der Ausdruck nach dem Schlüsselwort FOLD sichtbar. Im
geöffneten FOLD sind dagegen alle Anweisungen und Vereinbarungen zu sehen.
FOLD ist lediglich ein Anweisung für den Editor. Der Compiler interpretiert die FOLD--
Anweisungen aufgrund des vorangestellten Semikolons als normalen Kommentar.
Erst wenn alle FOLDs geöffnet sind und “Detail ein/aus (ASCII--Mode)” eingeschaltet
ist, sind dem Programmierer alle vorhandenen Programmzeilen verfügbar. Die Darstel-
lung auf der Bedienoberfläche entspricht dann der Darstellung in einem normalen Tex-
teditor.
1.3 Programmablaufart
1.3.1 Auswahl der Programmablaufart
Die Programmablaufart legt fest, ob die Programmbearbeitung
G ohne Programmstop,
G schrittweise oder
G satzweise
erfolgen soll. In nachfolgender Tabelle sind alle Programmablaufarten beschrieben.
Ablaufart Beschreibung
#GO
Alle Anweisungen werden im Programm ohne Stopp bis zum Pro-
grammende bearbeitet.
Abb. 1 Programmablaufarten
Die Programmablaufarten GO, MSTEP und ISTEP können am (V)KCP über einen Status-
key oder die Variable “$PRO_MODE” angewählt werden. PSTEP und CSTEP hingegen
sind nur über die Variable “$PRO_MODE” einstellbar.
Rufen Sie hierzu die Variablenkorrektur mittels [ Anzeige > Variable > Einzeln ] auf.
...STEP--GO--Umschaltung
Bei dem Wechsel der Programmablaufart von “#...STEP” nach “#GO” wird keine Satzanwahl
durchgeführt, daher ist eine SAK--Fahrt nicht notwendig. Bei Erreichen des nächsten Bewe-
gungssatzes erfolgt die Umschaltung auf “#GO”. Die Start--Taste braucht in diesem Fall nicht
erneut gedrückt zu werden.
Der Interpreter wird nicht zurückgesetzt, da dieser erst den folgenden Bewegungssatz er-
reicht hat. Ein Löschen des Hauptlaufs ist unnötig, da in der Betriebsart “#...STEP” nur der
jeweils aktuelle Bewegungssatz im Puffer steht.
GO--...STEP--Umschaltung
Bei einem Wechsel der Programmablaufart von “#GO” nach “#...STEP” fährt der Roboter
bis zum nächsten Genauhalt bzw. bis der Vorlauf komplett abgearbeitet worden ist. Bei ei-
nem Bewegungssatz mit Überschleif wird mindestens der noch folgende Bewegungssatz
abgearbeitet. Weitere Überschleifbereiche werden nicht mehr abgefahren, außer der Ziel-
punkt ist ein durch Satzanwahl nicht erreichbarer Punkt.
Durch Drücken der Start--Taste wird eine Satzanwahl auf den dem Hauptlaufsatz folgenden
Bewegungssatz durchgeführt. Anschließend wird in die Programmablaufart “#...STEP” um-
geschaltet. Ist eine Satzanwahl an dieser Stelle nicht möglich, wird eine entsprechende Zu-
standsmeldung ausgegeben. Der Hauptlauf inklusive Überschleif wird in diesem Fall fortge-
setzt, bis eine Satzanwahl möglich ist.
Der Interpreter wird am Ende des Bewegungssatzes zurückgesetzt. Die bereits im Vorlauf
geplanten Bewegungssätze werden aus dem Puffer gelöscht.
Spezialfall Interrupt:
1 DEF FOLGE3()
2 INT I
3 INTERRUPT DECLARE 5 WHEN $IN[10]==TRUE DO FOLGE4()
4 PTP
5 PTP
=> 6 LIN Hauptlauf
7 INTERRUPT ON
8 LIN
9 INTERRUPT OFF
10 PTP
11 END
12
13 DEF FOLGE4()
14 $OUT[12]=TRUE
=> 15 BRAKE Vorlauf
16 $OUT[52]=FALSE
16 END
Beim Umschalten der Programmablaufart befindet sich der Vorlaufzeiger innerhalb eines In-
terrupt--Unterprogramms. In diesem Fall arbeitet der Vorlauf das Interrupt--Unterprogramm
schrittweise in der Programmablaufart “#...STEP” ab, bevor der Hauptlauf fortgesetzt wird.
Spezialfall CIRC--Anweisung:
Der aktuelle CIRC--Bewegungssatz wird beendet, bevor auf die Programmablaufart
“#...STEP” umgeschaltet wird.
1.4 Kommentare
Kommentare sind ein wichtiger Bestandteil jedes Computerprogramms. Dadurch können
Sie Ihr Programm übersichtlich und auch für andere verständlich machen. Die Bearbeitungs-
geschwindigkeit des Programmes wird durch Kommentare nicht beeinflußt.
Kommentare können Sie an jeder Stelle eines Programmes einfügen. Sie werden stets mit
einem Strichpunkt “;” eingeleitet und reichen bis zum Zeilenende, z. B.:
…
PTP ;Bewegung zum Ausgangspunkt
…
;--- Ausgaenge zuruecksetzen ---
FOR I = 1 TO 16
$OUT[I] = FALSE
ENDFOR
…
1.5 Richtlinien
Mögliche Fehlerquellen können durch Einhalten bestimmter Richtlinien weitgehend vermie-
den werden.
Abhilfe
G Bewegungssätze mittels Inline--Formular programmieren, damit die Information für das
BASIS--Koordinatensystem gesetzt werden.
G Bewegungssätze und BASIS--Anweisung gemeinsam in ein FOLD integrieren.
Abhilfe:
G Die Variablendeklarationen in den Systemdateien sollten logisch aufgebaut sein, damit
sie später leicht wiedergefunden werden. So gehören Maschinendaten in 〈 \ $MACHI-
NE.DAT 〉, Benutzeroptionen in 〈 \ $OPTION.DAT 〉, usw. Doppeldeklarationen können so
leichter vermieden werden.
2.1.1 Namen
Eine Variable wird im Programm durch einen Namen dargestellt, wobei die Bezeichnung des
Namens in gewissen Grenzen frei wählbar ist.
Namen in KRL
G dürfen maximal 24 Zeichen lang sein,
G dürfen Buchstaben (A--Z), Ziffern (0--9) sowie die Zeichen ’_’ und ’$’ enthalten,
G dürfen nicht mit Ziffern beginnen,
G dürfen keine Schlüsselwörter sein.
Da alle Systemvariablen mit dem ’$’--Zeichen beginnen, sollten Sie dieses Zeichen
nicht als erstes Zeichen in selbstdefinierten Namen verwenden.
2.2 Datenobjekte
Unter Datenobjekten sind benennbare Speichereinheiten eines bestimmten Datentyps zu
verstehen. Die Speichereinheiten können dabei aus unterschiedlich vielen Speicherzellen
(Bytes, Worte, etc.) bestehen. Wird ein solches Datenobjekt vom Programmierer unter ei-
nem Namen vereinbart, erhält man eine Variable. Die Variable belegt nun eine oder mehrere
Speicherzellen, in denen Daten durch das Programm geschrieben und gelesen werden kön-
nen. Durch die symbolische Benennung der Speicherzellen mit frei wählbaren Namen wird
die Programmierung einfacher und übersichtlicher, das Programm besser lesbar.
Zur Klärung des Begriffs Datentyp folgendes Beispiel: In einer Speicherzelle mit 8 Bit befinde
sich die Bitkombination
00110101
Wie ist diese Bitkombination zu interpretieren? Handelt es sich um die binäre Darstellung der
Zahl 53 oder um das ASCII--Zeichen “5”, was mit dem gleichen Bitmuster dargestellt wird?
Datentyp
Zur eindeutigen Beantwortung dieser Frage fehlt noch eine wichtige Information, nämlich die
Angabe des Datentyps eines Datenobjekts. Im obigen Fall könnte das beispielsweise der
Typ “ganze Zahl” (INTEGER) oder “Zeichen” (CHARACTER) sein.
Neben diesem computertechnischen Grund für die Einführung von Datentypen, ist die Ver-
wendung von Datentypen auch benutzerfreundlicher, da man mit genau den Typen arbeiten
kann, die für die spezielle Anwendung besonders gut geeignet sind.
Bei der Deklaration von Variablen und Feldern eines vordefinierten Datentyps kann das
Schlüsselwort DECL entfallen. Neben den einfachen Datentypen INT, REAL, CHAR
und BOOL sind unter anderem die Strukturdatentypen POS, E6POS, FRAME, AXIS und
E6AXIS vordefiniert.
Für Variablen (keine Felder !) des Datentyps POS kann die Deklaration komplett entfal-
len. Der Datentyp POS gilt als Standarddatentyp für Variablen.
Unverzichtbar ist das Schlüsselwort DECL bei der Vereinbarung frei definierbarer
Struktur-- oder Aufzählungstypen.
Weitere Informationen finden Sie unter “Einfachen Datentypen”, “Strukturen” und “Auf-
zählungstypen”.
Initialisierung
Nach der Vereinbarung einer Variablen ist deren Wert zunächst auf ungültig gesetzt, da er
sonst von der zufälligen Speicherbelegung abhängen würde. Um mit der Variablen arbeiten
zu können, muß sie daher mit einem bestimmten Wert vorbelegt werden. Diese 1. Wertzu-
weisung an eine Variable nennt man Initialisierung.
Bei der Erstellung neuer Dateien über den Softkey “Neu” auf der KUKA--Bedienoberflä-
che wird automatisch auch eine INI--Sequenz erzeugt. Die Vereinbarung von Variablen
muß stets vor dieser Sequenz erfolgen.
Eine Wertzuweisung an eine Variable ist eine Anweisung und darf daher grundsätzlich nicht
im Vereinbarungsteil stehen. Die Initialisierung kann aber jederzeit im Anweisungsteil erfol-
gen. Alle vereinbarten Variablen sollten jedoch zweckmäßigerweise in einem Initialisierungs-
abschnitt direkt nach dem Deklarationsteil initialisiert werden.
Nur in Datenlisten ist es zulässig, Variablen direkt in der Deklarationszeile zu initialisieren.
DEF NAME()
END
2.2.2.1 Integer--Variable
Der Datentyp Integer ist eine Teilmenge aus der Menge der ganzen Zahlen. Eine Teilmenge
kann es deshalb nur sein, weil kein Rechner die theoretisch unendliche Menge der ganzen
Zahlen darstellen kann. Die in der (V)KR C... für Integer--Typen vorgesehenen 32 Bit erge-
ben daher 231 ganze Zahlen plus Vorzeichen. Die Zahl 0 wird dabei zu den positiven Zahlen
gezählt.
Mit
NUMMER = -23456
wird der Variablen NUMMER der Wert -23456 zugewiesen.
Weisen Sie einer INTEGER--Variablen einen REAL--Wert zu, so wird der Wert nach den all-
gemeinen Regeln gerundet (x.0 bis x.49 abrunden, x.5 bis x.99 aufrunden). Durch die Anwei-
sung
NUMMER = 45.78
erhält die INTEGER--Variable NUMMER den Wert 46.
Die Zahl 90 können Sie also in KRL auf drei verschiedene Arten einer Integervariablen zuwei-
sen:
INTZAHL = 90 ;Dezimalsystem
INTZAHL = ’B1011010’ ;Binaersystem
INTZAHL = ’H5A’ ;Hexadezimalsystem
Die Umrechnung von Binärzahlen in das Dezimalsystem gestaltet sich wie folgt:
1 0 1 1 0 1 0
= 1S26+0S25+1S24+1S23+0S22+1S21+0S20= 90
26 25 24 23 22 21 20
Zum Transfer von Zahlen aus dem Hexadezimalsystem in das Dezimalsystem gehen Sie
folgendermaßen vor:
5 A
=5S161+10S160=90
161 160
2.2.2.3 Real--Variable
Bei dem Begriff der Gleikommadarstellung handelt es sich um die Aufteilung einer Zahl in
Mantisse und Exponent und deren Darstellung in normierter Form. So wird z.B.
5.3 als 0.53000000 E+01
-100 als -0.10000000 E+03
0.0513 als 0.51300000 E-01
dargestellt.
Beim Rechnen mit Realwerten muß wegen der begrenzten Anzahl der Gleitkommastellen
und der damit einhergehenden Ungenauigkeit beachtet werden, daß die gewohnten algebra-
ischen Gesetze nicht mehr in allen Fällen gültig sind. So gilt beispielsweise in der Algebra:
1⋅3 = 1
3
Läßt man dies einen Computer nachrechnen, so kann sich ergeben, daß das Ergebnis nur
0.99999999 E+00 ist. Ein logischer Vergleich dieser Zahl mit der Zahl 1 ergäbe den Wert
FALSE. Für praktische Anwendungen im Roboterbereich reicht diese Genauigkeit jedoch
im allgemeinen aus, wenn man beachtet, daß der logische Test auf Gleichheit bei Realgrö-
ßen nur innerhalb eines kleinen Toleranzbereichs sinnvoll durchgeführt werden kann.
Zulässige Zuweisungen an Real--Variablen sind z.B.:
REALZAHL1 = -13.653
REALZAHL2 = 10
REALZAHL3 = 34.56 E-12
2.2.2.5 Character--Variable
Character--Variablen können genau 1 Zeichen aus dem ASCII--Zeichensatz darstellen. Bei
der Zuweisung eines ASCII--Zeichens zu einer CHAR--Variablen muß das zugewiesene Zei-
chen in Anführungszeichen (”) eingeschlossen sein:
ZEICHEN1 = “G”
ZEICHEN2 = “?”
2.2.3 Felder
Unter Feldern versteht man die Zusammenfassung von Objekten gleichen Datentyps zu ei-
nem Datenobjekt, wobei die einzelnen Komponenten eines Feldes über Indizes angespro-
chen werden können.
DECL INT OTTO[7]
2.2.3.1 Feldindex
Durch die Vereinbarung können Sie z.B. 7 verschiedene Integer--Zahlen in dem Feld
OTTO[] ablegen. Auf jede einzelne Komponente des Feldes können Sie durch Angabe des
zugehörigen Index zugreifen (erster Index ist immer die 1):
OTTO[1] = 5 ; dem 1. Element wird die Zahl 5 zugewiesen
OTTO[2] = 10 ; dem 2. Element wird die Zahl 10 zugewiesen
OTTO[3] = 15 ; dem 3. Element wird die Zahl 15 zugewiesen
OTTO[4] = 20 ; dem 4. Element wird die Zahl 20 zugewiesen
OTTO[5] = 25 ; dem 5. Element wird die Zahl 25 zugewiesen
OTTO[6] = 30 ; dem 6. Element wird die Zahl 30 zugewiesen
OTTO[7] = 35 ; dem 7. Element wird die Zahl 35 zugewiesen
Anschaulich kann man sich das Feld mit dem Namen OTTO[] als Regal mit 7 Fächern vor-
stellen. Die Fächerbelegung würde nach den vorangegangenen Zuweisungen nun so ausse-
hen:
5 10 15 20 25 30 35
Sollen nun alle Elemente eines Feldes mit der gleichen Zahl, z.B. 0, initialisiert werden, so
müssen Sie nicht jede Zuweisung explizit programmieren, sondern Sie können die Vorbeset-
zung mit Hilfe einer Schleife und einer Zählvariablen “automatisieren”:
FOR I = 1 TO 7
OTTO[I] = 0
ENDFOR
Die Zählvariable ist in diesem Fall die Integervariable I. Sie muß vor der Verwendung
als Integer deklariert worden sein.
G Der Datentyp eines Feldes ist beliebig. Somit können die einzelnen Elemente
wiederum aus zusammengesetzten Datentypen bestehen (z.B. Feld aus Feldern).
G Für den Index sind nur Integer--Datentypen zulässig.
G Neben Konstanten und Variablen sind auch arithmetische Ausdrücke für den Index
zulässig.
G Der Index zählt immer ab 1.
Die Zählvariablen sind hier Reihe und Spalte. Sie müssen vor der Verwendung als Inte-
ger deklariert worden sein.
I[3] = 0
FOR SPALTE = 1 TO 5
FOR REIHE = 1 TO 4
I[3] = I[3] + 1
MATRIX[SPALTE,REIHE] = I[3]
ENDFOR
ENDFOR
Mit der Programmsequenz werden die Elemente der Matrix mit einem Wert entsprechend
der Reihenfolge ihrer Belegung besetzt. Man erhält daher folgende Matrixbelegung:
Ebene 1
Reihe 1
Reihe 2
1
Reihe 3 5
2 9
6 13
Reihe 4 10 17
3
7 14
4 11 18
8 15
12 19
Spalte 1
16
Spalte 2
20
Spalte 3
Spalte 4
Spalte 5
Die Zählvariablen sind hier Reihe,Spalte und Ebene. Sie müssen vor der Verwendung
als Integer deklariert worden sein.
FOR EBENE = 1 TO 3
FOR SPALTE = 1 TO 5
FOR REIHE = 1 TO 4
FELD_3D[EBENE,SPALTE,REIHE] = FALSE
ENDFOR
ENDFOR
ENDFOR
Ebene 3
Ebene 2
41
Ebene 1 45
42 49
21 46 53
Reihe 1 25 50 57
22 29 54
Reihe 2 26 33 58
1
5 30 37 55
Reihe 3 34 59
2 9
6 13 38 56
Reihe 4 10 17 35 60
3
7 14 39
4 11 18 36
8 15 40
12 19
Spalte 1
16
Spalte 2
20
Spalte 3
Spalte 4
Spalte 5
2.2.4 Zeichenketten
Mit dem Datentyp CHAR können Sie, wie beschrieben, nur einzelne Zeichen abspeichern.
Zur Verwendung ganzer Zeichenketten, also z.B. von Wörtern, definiert man einfach ein ein-
dimensionales Feld vom Typ CHAR:
DECL CHAR NAME[8]
Sie können jetzt wie bisher üblich jedes einzelne Element des Feldes NAME[] ansprechen,
z.B.:
NAME[3] = “G”
A B C D E F G
2.2.5 Strukturen
Sollen verschiedene Datentypen zusammengefaßt werden, dann ist das Feld ungeeignet
und man muß auf die allgemeinere Form des Verbundes zurückgreifen. Mit der Vereinba-
rungsanweisung STRUC können unterschiedliche Datentypen, die zuvor definiert wurden
bzw. vordefinierte Datentypen sind, zu einem neuen Verbunddatentyp zusammengefaßt
werden. Insbesondere können auch andere Verbunde und Felder Bestandteil eines Verbun-
des sein.
Typisches Beispiel für die Verwendung von Verbunden ist der Standarddatentyp POS. Er be-
steht aus 6 REAL--Werten und 2 INT--Werten und wird in der Datei $OPERATE.SRC folgen-
dermaßen definiert:
STRUC POS REAL X, Y, Z, A, B, C, INT S, T
Verwenden Sie jetzt z.B. eine Variable POSITION vom Strukturdatentyp POS ( POS
braucht nicht definiert zu werden, da POS der Standarddatentyp ist). Die Variable POSITION
muß zuerst folgendermaßen deklariert werden:
DECL POS POSITION
2.2.5.1 Punkt--Separator
Sie können die Elemente einzeln mit Hilfe des Punkt--Seperators besetzen.
POSITION.X = 34.4
POSITION.Y = -23.2
POSITION.Z = 100.0
POSITION.A = 90
POSITION.B = 29.5
POSITION.C = 3.5
POSITION.S = 2
POSITION.T = 6
2.2.5.2 Aggregat
Sie können die Elemente auch gemeinsam mittels eines sogenannten Aggregates besetzen.
POSITION={X 34.4,Y -23.2,Z 100.0,A 90,B 29.5,C 3.5,S 2,T 6}
Für Aggregate gelten folgende Bestimmungen:
S Die Werte eines Aggregats können einfache Konstanten oder selbst Aggregate sein.
S In einem Aggregat müssen nicht sämtliche Komponenten der Struktur angegeben
werden.
S Die Komponenten brauchen nicht in der Reihenfolge angegeben zu werden, in der
diese definiert wurden.
S Jede Komponente darf in einem Aggregat nur einmal enthalten sein.
S Bei Feldern aus Strukturen beschreibt ein Aggregat den Wert eines einzelnen Felde-
lementes.
S Am Anfang eines Aggregates kann -- durch Doppelpunkt abgetrennt -- der Name
des Strukturtyps angegeben sein.
Das Vorgehen beim Erstellen eigener Strukturvariablen sei an folgendem Beispiel erläutert:
In ein Unterprogramm zum Lichtbogenschweißen soll in einer Variablen S_PARA folgende
Information übergeben werden:
REAL V_DRAHT Drahtgeschwindigkeit
INT KENNL Kennlinie 0…100%
BOOL LIBO mit/ohne Lichtbogen (für Simulation)
Die Variable S_PARA muß aus 3 Elementen unterschiedlichen Datentyps bestehen. Zu-
nächst muß ein neuer Datentyp definiert werden, der diese Forderungen erfüllt:
STRUC SCHWEISSTYP REAL V_DRAHT, INT KENNL, BOOL LIBO
Hiermit ist ein neuer Datentyp mit der Bezeichnung SCHWEISSTYP entstanden (SCHWEIS-
STYP ist keine Variable!). SCHWEISSTYP besteht aus den 3 Komponenten
V_DRAHT,KENNL und LIBO. Nun können Sie eine beliebige Variable des neuen Datentyps
deklarieren, z.B.:
DECL SCHWEISSTYP S_PARA
Damit haben Sie eine Variable S_PARA des Datentyps SCHWEISSTYP geschaffen. Die ein-
zelnen Elemente lassen sich -- wie schon beschrieben -- mit Hilfe des Punkt--Separators oder
des Aggregats ansprechen:
S_PARA.V_DRAHT = 10.2
S_PARA.KENNL = 66
S_PARA.LIBO = TRUE
oder
S_PARA = {V_DRAHT 10.2,KENNL 50, LIBO TRUE}
Mit den Komponenten E1…E6 in der Struktur E6POS können wieder Zusatzachsen ange-
sprochen werden.
2.2.5.4 Geometrische Datentypen
Die Typen AXIS, E6AXIS, POS, E6POS und FRAME nennt man auch geometrische Daten-
typen, da der Programmierer mit ihnen auf einfache Weise geometrische Beziehungen be-
schreiben kann.
2.2.6 Aufzählungstypen
Ein Aufzählungsdatentyp ist ein Datentyp, der sich aus einer begrenzten Menge von Kon-
stanten zusammensetzt. Die Konstanten sind frei definierbare Namen und können vom Be-
nutzer festgelegt werden. Eine Variable dieses Datentyps (Aufzählungsvariable) kann nur
den Wert einer dieser Konstanten annehmen.
Zur Erläuterung diene die Systemvariable $MODE_OP. In ihr wird abgespeichert welche Be-
triebsart gerade angewählt ist. Zur Auswahl stehen die Betriebsarten T1, T2, AUT und EX.
Man könnte nun $MODE_OP als Integervariable deklarieren, jeder Betriebsart eine Zahl zu-
ordnen und diese dann in $MODE_OP abspeichern. Dies wäre jedoch sehr unübersichtlich.
2.2.6.1 Vereinbarung von Aufzählungstypen -- ENUM
Eine weitaus elegantere Lösung bietet der Aufzählungstyp. In der Datei $OPERATE.SRC
wurde dazu ein Aufzählungsdatentyp mit dem Namen MODE_OP generiert:
ENUM MODE_OP T1, T2, AUT, EX, INVALID
Der Befehl zur Vereinbarung von Aufzählungstypen lautet also ENUM. Variablen des Aufzäh-
lungstyps MODE_OP können nur die Werte T1, T2, AUT, EX oder INVALID annehmen. Die
Variablenvereinbarung erfolgt wieder mit dem Schlüsselwort DECL:
DECL MODE_OP $MODE_OP
Die Aufzählungsvariable $MODE_OP können Sie nun durch normale Zuweisung mit einem
der vier Werte des Datentyps MODE_OP belegen. Zur Unterscheidung von einfachen Kon-
stanten wird den selbstdefinierten Aufzählungskonstanten bei Initialisierungen oder Abfra-
gen ein “#”--Zeichen vorangestellt, z.B.:
$MODE_OP = #T1
Mit ENUM können Sie sich nun beliebig viele selbstdefinierte Aufzählungsdatentypen erzeu-
gen.
R1\ STEU\
MADA\ $CONFIG.DAT
$MACHINE.DAT
MADA\
$ROBCOR.DAT
$CUSTOM.DAT
SYSTEM\
$MACHINE.DAT
$CONFIG.DAT $OPTION.DAT
Die Deklaration in einer Datenliste sowie die Wertzuweisung in einer SRC--Datei kann fol-
gendermaßen erfolgen:
FOLGE3.DAT
DEFDAT FOLGE3 PUBLIC
GLOBAL INT Cab
FOLD External Declarations;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
ENDDAT
FOLGE5.SRC
DEF FOLGE5( )
FOLD PTP HOME Vel= 100 % DEFAULT,% {PE},MKUKATPBASIS,%CMOVE,...
Cab = 5
FOLD PTP HOME Vel= 100 % DEFAULT,% {PE},MKUKATPBASIS,%CMOVE,...
END
Nach dem Ändern einer Struktur, eines Aufzählungstyps oder einer Variablen in einer Daten-
liste erfolgt eine Gesamtanalyse über alle Module. Zu diesem Zweck wird der Submit--Inter-
preter zunächst abgewählt, die Analyse durchgeführt und der Submit--Interpreter anschlie-
ßend wieder angewählt.
Bei der Programmierung von Strukturen und Typen müssen bestimmte Richtlinien einge-
halten werden, die der KRL--Compiler nicht überprüft. Diese Richtlinien sind für eine ein-
wandfreien Funktion unbedingt einzuhalten.
Beispiele
Systemdatei
Auf den Aufzählungstyp “MeinTyp” soll von allen Modulen aus zugegriffen werden.
=> Den Aufzählungstyp in eine Systemdatei (z. B. “$Config.dat”) einfügen.
“MeinTyp” steht nun systemweit zur Verfügung.
Variablenimport
Die Variable “MeineVar” ist lokal in der Datei “ABC.DAT” definiert. Auf diese Variable soll von
der Datei “BCD.SRC” aus zugegriffen werden können.
=> Die Variable “MeineVar” mittels IMPORT in “BSC.DAT” einbinden.
Damit kann auf “MeineVar” von “ABC.DAT” und “BSC.DAT” aus zugegriffen werden.
Programmzeilen
GLOBAL INT gloint = 1
GLOBAL E6POS gloe6pos Zulässig
Das Schlüsselwort “Global” sollte nicht unbedarft eingesetzt werden, da dies zu Unüber-
sichtlichkeit und nicht mehr lösbaren Modulabhängigkeiten führen kann.
Richtlinien:
G So lokal als möglich, so global wie nötig programmieren. Abhängigkeiten möglichst ein-
fach halten, um die Übersichtlichkeit zu erhöhen.
G Jede Struktur, jeder Aufzählungstyp und jede Variable darf systemweit nur einmal glo-
bal existieren.
G Jede Struktur, jedem Aufzählungstyp und jeder Variable sollte zum leichteren Unter-
scheiden ein eindeutiger Präfix vorangestellt werden.
G Globale Strukturen, Aufzählungstypen und Variablen dürfen nicht von den Standard--
typen der Systemdatei “$CONFIG.DAT” oder anderen Datenlisten abhängig sein, und um-
gekehrt.
G Globale Strukturen dürfen nur auf einfachen und vordefinierten Datentypen beruhen.
Sonst sind nur Datentypen erlaubt, die vorher mit dem Schlüsselwort “Global” definiert
wurden.
G Alle Module, die jeweils auf die gleichen globalen Strukturen, Typen und Variablen
zugreifen (Modulgruppe), sollten in einem eigenen Unterverzeichnis untergebracht
sein.
G Für jede Modulgruppe ist nur eine einzige globale Datenliste zulässig. Alle globalen
Strukturen, Aufzählungstypen und Variablen der Modulgruppe sind in dieser Datenli-
ste definiert. Abhängigkeiten zu anderen Datenlisten oder Systemdateien sind nicht
erlaubt.
G Eine globale Datenliste muß in der DEFDAT--Zeile mit dem Attribut “PUBLIC” gekenn-
zeichnet sein.
G Globale Datenlisten dürfen nicht miteinander verflochten sein und die Abhängigkeiten
dürfen nur in eine Richtung laufen. Daher müssen Datentypen und Variablen gegebe-
nenfalls mehrfach (mit jeweils eindeutigem Namen) definiert werden.
Fehlersuche
Die meisten Fehlerursachen können leicht eingegrenzt werden.
G Wird die Systemdatei “$CONFIG.DAT” fehlerhaft angezeigt, ist die Fehlerliste entspre-
chend auszuwerten. Liegt kein Syntaxfehler vor, können globale Abhängigkeiten den
Fehler verursacht haben. Diese Abhängigkeiten müssen aufgelöst werden.
G Die Fehlermeldung “1421” (statt “1326”) ist ein Fehler, der bei der Analyse eines Moduls
aufgrund eines unbekannten Typs ausgegeben wird. Dies deutet auf Abhängigkeiten
von globalen Typen hin.
G Treten Fehlermeldungen durch eine Datei auf, die nachweislich in Ordnung ist, beruht
eine gloable Variable möglicherweise auf einem lokalen Datentyp. Solche Fehler kön-
nen auch durch mehrfache oder zirkuläre Abhängigkeiten ausgelöst werden.
Die Programmierung ist in diesen Fällen entsprechend den Richtlinien zu ändern.
G Erscheinen Fehler in Modulen nur sporadisch nach dem Hochlauf, deutet dies auf ver-
flochtene Abhängigkeiten hin. Auch in diesem Fall ist die Programmierung entspre-
chend den Richtlinien zu ändern.
Fehler, die ihre Ursache in einer falschen GLOBAL--Verwendung haben, können aufgrund
der gewünschten Flexibilität nicht vom System überwacht oder eingeschränkt werden.
Sind beispielsweise Systemdateien von einem falsch geschriebenen globalen Datentyp
abhängig, können alle Module als fehlerhaft gekennzeichnet werden. Dabei kann das Sy-
stem in einen nicht mehr benutzbaren Zustand übergehen.
2.4 Datenmanipulation
Zur Manipulation der verschiedenen Datenobjekte gibt es eine Fülle von Operatoren und
Funktionen, mit deren Hilfe Formeln aufgebaut werden können. Die Mächtigkeit einer Robo-
terprogrammiersprache hängt gleichermaßen von den zugelassenen Datenobjekten und
deren Manipulationsmöglichkeiten ab.
2.4.1 Operatoren
Unter Operatoren sind die üblichen mathematischen Operatoren zu verstehen im Gegen-
satz zu Funktionen wie beispielsweise SIN(30), welche den Sinus des Winkels 30_ liefert.
In der Operation 5+7 bezeichnet man demnach 5 und 7 als Operanden und + als Operator.
Bei jeder Operation prüft der Compiler die Zulässigkeit der Operanden. So ist beispielsweise
7 -- 3 als Subtraktion zweier Integerzahlen eine zulässige Operation, 5 + “A” als Addition ei-
nes Integerwertes zu einem Zeichen eine ungültige Operation.
Bei manchen Operationen, wie 5 + 7.1, also der Addition von Integer-- mit Realwerten wird
eine Typanpassung vorgenommen und der Integerwert 5 in den Realwert 5.0 umgewandelt.
Auf diese Problematik wird bei der Besprechung der einzelnen Operatoren noch näher ein-
gegangen.
2.4.1.1 Arithmetische Operatoren
Arithmetische Operatoren betreffen die Datentypen INTEGER und REAL. Alle 4 Grundre-
chenarten sind in KRL zulässig .
Operator Beschreibung
+ Addition oder positives Vorzeichen
-- Subtraktion oder negatives Vorzeichen
* Multiplikation
/ Division
Das Ergebnis einer arithmetischen Operation ist nur dann INT, wenn beide Operanden vom
Typ INTEGER sind. Ist das Ergebnis einer Integerdivision nicht ganzzahlig, so wird die Nach-
kommastelle abgeschnitten. Wenn mindestens einer der beiden Operanden REAL ist, dann
ist auch das Ergebnis vom Typ REAL.
DEF ARITH()
END
Frameverknüpfung
Der geometrische Operator wird in KRL durch einen Doppelpunkt “:” symbolisiert. Er führt
zwischen den Datentypen FRAME und POS eine Frameverknüpfung durch.
Die Verknüpfung zweier Frames ist die übliche Transformation von Koordinatensystemen.
Daher wirkt sich die Verknüpfung einer FRAME-- mit einer POS--Struktur nur auf das Frame
innerhalb der POS--Struktur aus. Die Komponenten S und T bleiben von der Transformation
unberührt und müssen daher auch nicht mit einem Wert besetzt sein. Die Werte X, Y, Z, A,
B und C müssen jedoch sowohl bei POS--Operanden als auch bei FRAME--Operanden immer
mit einem Wert besetzt sein.
Eine Frameverknüpfung wird von links nach rechts ausgewertet. Das Ergebnis hat immer
den Datentyp des am weitesten rechts stehenden Operanden.
Wenn der linke Operand den Datentyp POS hat, dann findet eine Typanpassung statt.
Die durch die POS--Struktur angegebene Position wird in ein Frame umgewandelt. Das
heißt, das System ermittelt das Werkzeug--Frame zu dieser Position.
Die Wirkungsweise des geometrischen Operators sei an einem einfachen Beispiel erläutert:
In einem Raum steht ein Tisch. Das RAUM--Koordinatensystem sei als festes Koordinatensy-
stem in der linken vorderen Ecke des Raumes definiert.
Der Tisch steht parallel zu den Wänden des Raumes. Die linke vordere Ecke des Tisches
liegt genau 600 mm von der vorderen Wand und 450 mm von der linken Wand des Raumes
entfernt. Der Tisch ist 800 mm hoch.
Auf dem Tisch steht ein quaderförmiges Werkstück. Das WERKSTUECK--Koordinatensystem
legen Sie wie gezeigt in eine Ecke des Werkstücks. Um das Teil später zweckmäßig handha-
ben zu können, zeigt die Z--Achse des WERKSTUECK--Koordinatensystems nach unten. Das
Werkstück ist bezüglich der Z--Achse des TISCH--Koordinatensystems um 40_ gedreht. Die
Position des WERKSTUECK--Koordinatensystems bezogen auf das TISCH--Koordinatensy-
stem ist X=80 mm, Y = 110 mm und Z = 55 mm.
Basis=Tisch:Werkstück
ZR
XB
YR YB
ZB
Basis
Werkstück
ZT YT
XT
Tisch
XR
Nur in diesem speziellen Fall ergeben sich die Komponenten von BASIS als Addition der
Komponenten von TISCH und WERKSTUECK. Dies liegt daran, daß das TISCH--Koordina-
tensystem nicht bezüglich des RAUM--Koordinatensystems verdreht ist.
Im allgemeinen ist jedoch eine einfache Addition der Komponenten nicht möglich!
Eine Frameverknüpfung ist auch nicht kommutativ, das heißt, durch Vertauschen von Be-
zugsframe und Zielframe wird sich normalerweise auch das Ergebnis ändern!
Zur Anwendung des geometrischen Operators ein weiteres Beispiel: Verschiedene Koordi-
natensysteme und Verknüpfungen von Koordinatensystemen werden darin angefahren. Zur
Verdeutlichung von Orientierungsänderungen verfährt die Werkzeugspitze in jedem Koordi-
natensystem zunächst ein Stück in X--Richtung, dann ein Stück in Y--Richtung und schließ-
lich ein Stück in Z--Richtung.
DEF GEOM_OP ( );
2.4.1.3 Vergleichsoperatoren
Mit den aufgeführten Vergleichsoperatoren können logische Ausdrücke gebildet werden.
Das Ergebnis eines Vergleichs ist daher immer vom Datentyp BOOL, da ein Vergleich immer
nur wahr (TRUE) oder falsch (FALSE) sein kann.
Tab. 13 Vergleichsoperatoren
Der Test auf Gleichheit oder Ungleichheit ist bei Realwerten nur bedingt sinnvoll, da durch
Rundungsfehler bei Berechnung der zu vergleichenden Werte algebraisch identische For-
meln ungleiche Werte liefern können.
S Kombinationen von Operanden aus INT, REAL, und CHAR sind möglich.
S Ein ENUM--Typ darf nur mit dem selben ENUM--Typ verglichen werden.
S Ein BOOL--Typ darf nur mit einem BOOL--Typ verglichen werden.
Der Vergleich von Zahlenwerten (INT, REAL) und Zeichenwerten (CHAR) ist deshalb mög-
lich, weil jedem ASCII--Zeichen ein ASCII--Code zugeordnet ist. Dieser Code ist eine Zahl,
die die Reihenfolge der Zeichen im Zeichensatz bestimmt.
Die einzelnen Konstanten eines Aufzählungstyps werden bei ihrer Deklaration in der Reihen-
folge ihres Auftretens durchnummeriert. Die Vergleichsoperatoren beziehen sich auf diese
Nummern.
Neben einfachen sind auch mehrfache Vergleiche zulässig. Dazu einige Beispiele:
…
BOOL A,B
…
B = 10 < 3 ;B=FALSE
A = 10/3 == 3 ;A=TRUE
B = ((B == A) <> (10.00001 >= 10)) == TRUE ;B=TRUE
A = “F” < “Z” ;A=TRUE
…
Die Operanden einer logischen Verknüpfung müssen vom Typ BOOL sein, das Ergebnis ist
ebenfalls immer vom Typ BOOL. Die möglichen Ergebnisse der jeweiligen Verknüpfungen in
Abhängigkeit vom Wert der Operanden sind wie folgt dargestellt.
2.4.1.5 Bit--Operatoren
Mit Hilfe der Bit--Operatoren lassen sich ganze Zahlen miteinander verknüpfen, indem man
die einzelnen Bits der Zahlen logisch miteinander verknüpft. Die Bit--Operatoren verknüpfen
einzelne Bits genauso wie die logischen Operatoren zwei boolsche Werte, wenn man den
Bit--Wert 1 als TRUE und den Wert 0 als FALSE ansieht.
Eine bitweise UND--Verknüpfung der Zahlen 5 und 12 ergibt somit z.B. die Zahl 4, eine bit-
weise ODER--Verknüpfung die Zahl 13 und eine bitweise exklusiv ODER--Verknüpfung die
Zahl 9:
0 1 0 1 = 5
1 1 0 0 = 12
AND 0 1 0 0 = 4
OR 1 1 0 1 = 13
EXOR 1 0 0 1 = 9
Bei der bitweisen Invertierung werden nicht alle Bits einfach umgedreht. Stattdessen wird
bei Verwendung von B_NOT zum Operanden 1 dazu addiert und das Vorzeichen gekippt,
z.B:
B_NOT 10 = -11
B_NOT -10 = 9
Bit--Operatoren werden beispielsweise eingesetzt, um digitale Ein--/Ausgangssignale mit-
einander zu verknüpfen.
Priorität Operator
1 NOT B_NOT
2 * /
3 + -
4 AND B_AND
5 EXOR B_EXOR
6 OR B_OR
7 == <> < > >= <=
Grundsätzlich gilt:
G Geklammerte Ausdrücke werden zuerst bearbeitet.
G Bei ungeklammerten Ausdrücken wird in der Reihenfolge der Priorität ausgewertet.
G Verknüpfungen mit Operatoren gleicher Priorität werden von links nach rechts aus-
geführt.
Beispiele:
…
INT A,B
BOOL E,F
…
A = 4
B = 7
E = TRUE
F = FALSE
…
E = NOT E OR F AND NOT (-3 + A * 2 > B) ;E=FALSE
A = 4 + 5 * 3 - B_NOT B / 2 ;A=23
B = 7 B_EXOR 3 B_OR 4 B_EXOR 3 B_AND 5 ;B=5
F = TRUE == (5 >= B) AND NOT F ;F=TRUE
…
2.4.2.1 Betrag
Die Funktion ABS(X) berechnet den Betrag des Wertes X, z. B.:
B = -3.4
A = 5 * ABS(B) ;A=17.0
2.4.2.2 Wurzel
SQRT(X) errechnet die Quadratwurzel aus der Zahl X, z. B.:
A = SQRT(16.0801) ;A=4.01
2.4.2.5 Arcussinus
Für den Arcussinus, die Umkehrfunktion zu SIN(X), ist keine Standardfunktion vordefiniert.
Aufgrund der Beziehung SIN(X) = COS(90_--X) können sie aber auch diesen sehr leicht be-
rechnen:
A = SIN(60) ;A=0.8660254
B = 90-ACOS(A) ;B=60
2.4.2.6 Arcustangens
Der Tangens eines Winkels ist definiert als Gegenkathete (Y) dividiert durch Ankathete (X)
im rechtwinkligen Dreieck. Hat man die Länge der beiden Katheten, kann man also den Win-
kel zwischen Ankathete und Hypotenuse mit dem Arcustangens berechnen.
Betrachtet man jetzt einen Vollkreis, so ist es entscheidend, welches Vorzeichen die Kompo-
nenten X und Y haben. Würde man nur den Quotienten berücksichtigen, so könnten mit dem
Arcustangens nur Winkel zwischen 0_ und 180_ berechnet werden. Dies ist auch bei allen
üblichen Taschenrechnern der Fall: Der Arcustangens von positiven Werten ergibt einen
Winkel zwischen 0_ und 90_, der Arcustangens von negativen Werten einen Winkel zwi-
schen 90_ und 180_.
Durch die explizite Angabe von X und Y ist durch deren Vorzeichen eindeutig der Quadrant
festgelegt, in dem der Winkel liegt. Sie können daher auch Winkel in den Quadranten III und
IV berechnen. Deshalb sind zur Berechnung des Arcustangens in der Funktion
ATAN2(Y,X) auch diese beiden Angaben notwendig, z.B.:
A = ATAN2(0.5,0.5) ;A=45
B = ATAN2(0.5,-0.5) ;B=135
C = ATAN2(-0.5,-0.5) ;C=225
D = ATAN2(-0.5,0.5) ;D=315
II I
X=COS(α)
Y=SIN(α)
α
0
III IV
Eine Auflistung aller vordefinierter Variablen finden Sie in der eigenständigen Dokumenta-
tion Systemvariablen.
Systemvariablen sind vollständig in das Variablenkonzept von KRL integriert. Sie besitzen
einen entsprechenden Datentyp und können von Ihnen wie jede andere Variable im Pro-
gramm gelesen und geschrieben werden, wenn es nicht Einschränkungen wegen der Art der
Daten gibt. Die aktuelle Roboterposition kann z.B. nur gelesen, nicht geschrieben werden.
Solche Einschränkungen werden von der Steuerung geprüft.
Soweit es sicherheitstechnisch möglich ist, verfügen Sie sogar über den schreibenden Zu-
griff auf Systemdaten. Damit eröffnen sich viele Möglichkeiten für die Diagnose, da vom KCP
und vom Programmiersystem eine Vielzahl von Systemdaten geladen oder beeinflußt wer-
den können.
Nützliche Systemvariablen mit Schreibzugriff sind zum Beispiel $TIMER[] und $FLAG[].
2.5.1 Timer
Die 10 Timervariablen $TIMER[1]…$TIMER[10] dienen zum Messen von zeitlichen Ab-
läufen und können somit als “Stoppuhr“ eingesetzt werden. Das Starten und Stoppen des
Meßvorganges erfolgt mit den Systemvariablen $TIMER_STOP[1]…$TIMER_STOP[10]:
$TIMER_STOP[4] = FALSE startet beispielsweise den Timer 4,
$TIMER_STOP[4] = TRUE stoppt den Timer 4 wieder. Über eine normale Wertzuweisung
kann die betreffende Timervariable jederzeit zurückgesetzt werden, z.B.: $TIMER[4] = 0
Wechselt der Wert einer Timervariablen von Minus nach Plus, so wird ein zugehöriges Flag
auf TRUE gesetzt (Timer--Out--Bedingung), z. B.: $TIMER_FLAG[4] = TRUE
Allgemein sind die Namen der vordefinierten Variablen so gewählt, daß man sie sich leicht
einprägen kann. Sie beginnen alle mit einem $--Zeichen und bestehen dann aus einer sinn-
vollen englischen Abkürzung. Da sie wie gewöhnliche Variablen behandelt werden, müssen
Sie sich keine außergewöhnlichen Befehle oder ausgefallene Optionen merken.
Ein Teil der vordefinierten Variablen bezieht sich auf die gesamte Steuerung (V)KR C... (z.B.
$ALARM_STOP für die Definition des Ausgangs für das Not--Aus--Signal zur SPS). Andere
sind dagegen nur für den Roboter von Bedeutung (z.B. $BASE für das Basiskoordinatensy-
stem).
Neben den Datenlisten, die Sie bei der Programmierung erstellen, gibt es auf der (V)KR C...
noch Datenlisten, die von KUKA definiert sind und die mit der Steuerungssoftware ausgelie-
fert werden. Diese Datenlisten heißen vordefinierte Datenlisten und beinhalten hauptsäch-
lich die vordefinierten Variablen.
Die vordefinierten Datenlisten können Sie weder löschen noch selbst erzeugen. Sie werden
bei der Installation der Software erzeugt und sind dann immer vorhanden. Auch die Namen
der vordefinierten Datenlisten beginnen wie die Namen der vordefinierte Daten mit einem
$--Zeichen.
Auf der (V)KR C... gibt es folgende vordefinierte Datenlisten:
G $OPERATE.SRC
bildet aus Implemetierungsgründen die einzige Ausnahme. Hier handelt es sich näm-
lich um eine vordefinierte Programmdatei und nicht um eine vordefinierte Datenliste.
Programmdateien sind in KRL programmierte Einheiten. In ihnen sind, wie in Datenli-
sten, auch Variablen definiert. In der $OPERATE.SRC sind nur vordefinierte steue-
rungsspezifische und roboterspezifische Variablen enthalten. Steuerungsspezifische
Daten sind vor allem die aktuellen Einstellungen für Bediengeräte und Kommandoum-
gebung, während als roboterspezifische Daten vor allem Programm-- und Roboterzu-
standsdaten vorkommen. Sie können keine neuen Variablen erstellen oder vorhandene
Variablen löschen.
Es gibt keine Möglichkeit sich die $OPERATE.SRC anzeigen zu lassen oder zu editie-
ren. Sie ist im Grundsystem verankert.
G $MACHINE.DAT
ist eine vordefinierte Datenliste mit ausschließlich vordefinierten Systemvariablen. Mit
den Maschinendaten wird die Steuerung an den angeschlossenen Roboter angepaßt
(Takte, Kinematik, Regelparameter, etc.). Sie können keine neuen Variablen erstellen
oder vorhandene Variablen löschen.
Beispiele:
$NUM_AX Anzahl der Roboterachsen
G $CONFIG.DAT
ist eine von KUKA vordefinierte Datenliste, die aber keine vordefinierten Systemvaria-
blen enthält. Es können darin Variablen, Strukturen, Kanäle und Signale definiert wer-
den, die längere Zeit gültig sind und für viele Programme von übergeordneter Bedeu-
tung sind.
Die Datenliste ist in folgende Blöcke untergliedert:
-- BAS
-- AUTOEXT
-- V KRC 1
-- USER
3 Bewegungsprogrammierung
Zu den wichtigsten Aufgaben einer Robotersteuerung gehört die Bewegung des Roboters.
Der Programmierer steuert dabei die Bewegungen des Industrieroboters mit Hilfe von spe-
ziellen Bewegungsanweisungen. Diese bilden auch das Hauptmerkmal, das die Roboter-
sprachen von herkömmlichen Programmiersprachen für Computer, wie C oder Pascal, un-
terscheidet.
Bewegungsanweisungen
Je nach Steuerungsart lassen sich diese Bewegungsanweisungen in Befehle für einfache
Punkt--zu--Punkt Bewegungen und in Befehle für Bahnbewegungen unterteilen. Während
bei Bahnbewegungen der Endeffektor (z.B. Greifer oder Werkzeug) eine geometrisch genau
definierte Bahn im Raum beschreibt (Gerade oder Kreisbogen) ist die Bewegungsbahn bei
Punkt--zu--Punkt Bewegungen von der Kinematik des Roboters abhängig und daher nicht
genau vorhersehbar. Beiden Bewegungsarten ist gemeinsam, daß die Programmierung von
der aktuellen Position in eine neue Position erfolgt. Deshalb ist in einer Bewegungsanwei-
sung im allgemeinen nur die Angabe der Zielposition notwendig (Ausnahme: Kreisbewegun-
gen).
Die Koordinaten von Positionen können entweder textuell durch Eingabe von Zahlenwerten
spezifiziert werden oder durch Anfahren mit dem Roboter und Abspeichern der Ist--Werte
(Teachen). Dabei besteht jeweils die Möglichkeit, die Angaben auf verschiedene Koordina-
tensysteme zu beziehen.
Weitere Bewegungseigenschaften wie Geschwindigkeiten und Beschleunigungen sowie die
Orientierungsführung können mittels Systemvariablen eingestellt werden. Das Überschlei-
fen von Zwischenpunkten wird mittels optionaler Parameter in der Bewegungsanweisung in-
itiiert. Zum Überschleifen muß ein Rechnervorlauf eingestellt sein.
Die Beschreibung einer achsspezifischen Stellung erfolgt in der (V)KR C... durch den vorde-
finierten Strukturtyp AXIS, dessen Komponenten je nach Achstyp die Bedeutung von Win-
keln oder Längen hat.
Koordinatentransformation
Da der Mensch als Programmierer in kartesischen Koordinaten denkt, ist das Programmie-
ren im achsspezifischen Koordinatensystem meist sehr unpraktisch. Die Steuerung bietet
daher mehrere kartesische Koordinatensysteme zur Programmierung an, deren Koordina-
ten vor der Bewegungsausführung automatisch in das achsspezifische System transfor-
miert werden.
X, Y, Z, A, B, C (, S, T)
Abb. 13 Koordinatentransformation
Z1
Y1
X1 X
Um jeden Punkt im Raum mit beliebiger Orientierung anfahren zu können, sind neben den
drei translatorischen Werten noch drei rotatorische Angaben notwendig:
Die in der (V)KR C... mit A, B und C bezeichneten Winkel beschreiben Drehungen um die
Koordinatenachsen Z, Y und X. Dabei ist die Reihenfolge der Rotationen einzuhalten:
1. Drehung um die Z--Achse um den Winkel A
2. Drehung um die neue Y--Achse um den Winkel B
3. Drehung um die neue X--Achse um den Winkel C
Diese Drehreihenfolge entspricht den aus der Luftfahrt bekannten roll--pitch--yaw--Winkeln
(Rollen--Nicken--Gieren). Der Winkel C entspricht dabei dem Rollen, Winkel B dem Nicken
und Winkel A dem Gieren.
A B C
Z’ Y’
Z B
A Y ’’
Z ’’
Y X’ Y’’’
Z’’’
X
C X’’ X’’’
Abb. 15 Rotatorische Beschreibung der Orientierung eines Punktes
Mit den Translationen X, Y und Z sowie den Rotationen A, B und C läßt sich somit die Lage
und Orientierung eines Punktes im Raum eindeutig beschreiben. In der (V)KR C... erfolgt
dies mit der vordefinierten Struktur FRAME.
Bei Bahnbewegungen ist die Angabe von FRAME--Koordinaten immer eindeutig und ausrei-
chend. Beim Punkt--zu--Punkt--Verfahren kann jedoch bei bestimmten Roboterkinematiken
(z.B. 6--achsiger Knickarm) ein und derselbe Punkt (Lage und Orientierung) im Raum mit
mehreren Achsstellungen angefahren werden. Mit den beiden weiteren Angaben S und T
kann diese Mehrdeutigkeit behoben werden. In der (V)KR C... ist für ein um S und T erweiter-
tes Frame die Struktur POS vorgesehen.
y
z
1
z x
z y
2 x
y
z
y x
3
4 x
Welt--Koordinatensystem
Das Weltkoordinatensystem ist ein ortsfestes (= bewegt sich bei einer Roboterbewegung
nicht mit) Koordinatensystem, das als Ursprungskoordinatensystem für eine Roboterzelle
dient. Es stellt somit das Bezugssystem sowohl für das Robotersystem als auch für die Zel-
lenperipherie dar.
Roboter--Koordinatensystem
Dieses Koordinatensystem befindet sich im Roboterfuß und dient als Bezugskoordinatensy-
stem für den mechanischen Roboteraufbau. Es bezieht sich selbst wieder auf das Weltkoor-
dinatensystem und ist bei Auslieferung mit ihm identisch. Mit $ROBROOT kann somit eine
Verschiebung des Roboters zu $WORLD definiert werden.
Dadurch kann der Roboter innerhalb der Zelle verschoben werden, ohne daß die Koordina-
ten des Roboterprogramms geändert werden müssen.
Werkzeug--Koordinatensystem
Das Werkzeug--Koordinatensystem hat seinen Ursprung in der Werkzeugspitze. Die Orien-
tierung ist dabei so gewählt, daß seine X--Achse mit der Werkzeugachse identisch ist und
aus dem Werkzeug heraus zeigt. Bei einer Bewegung der Werkzeugspitze wird das Werk-
zeugkoordinatensystem mitbewegt.
X
Z
Basis--Koordinatensystem
Das Basis--Koordinatensystem wird als Bezugssystem für die Beschreibung der Lage des
Werkstücks herangezogen. Die Programmierung des Roboters erfolgt im Basiskoordinaten-
system. Es hat als Bezugskoordinatensystem das Welt--Koordinatensystem. Bei Ausliefe-
rung ist $BASE=$WORLD.
Das Basis--Koordinatensystem ist in der (V)KR C... immer ortsfest. Durch eine Veränderung
von $BASE können z.B. mehrere gleiche Werkstücke an verschiedenen Orten mit demsel-
ben Programm bearbeitet werden.
Basisbezogene Interpolation
Bei der Interpolation der Bewegungsbahn berechnet die Robotersteuerung im Normalfall
(feststehendes Werkstück, Werkzeug am Roboterflansch) die aktuelle Position
($POS_ACT) bezogen auf das $BASE-Koordinatensystem.
z
$TOOL
y
z
x
$POS_ACT
y
$BASE x
x
$ROBROOT
z y
$WORLD x
Feststehendes Werkzeug
In der industriellen Praxis geht man jedoch immer mehr dazu über, das Werkzeug (z.B.
Schweißbrenner) fest im Raum zu verankern und das Werkstück selbst mittels eines geei-
gneten Greifers am feststehenden Werkzeug entlang zu führen.
Da Werkstück und Werkzeug die Position getauscht haben, enthält die Systemvariable
$TOOL nun das Basiskoordinatensystem und $BASE das Werkzeugkoordinatensystem.
Greiferbezogene Interpolation
Die Bewegung soll aber weiterhin bezüglich des Werkstücks erfolgen, weshalb die Interpola-
tion der Bewegungsbahn jetzt im $TOOL--Koordinatensystem berechnet werden muß. Mit
der Systemvariable $IPO_MODE können Sie deshalb die Interpolationsart definieren. Die
Programmzeile
$IPO_MODE = #TCP
ermöglicht eine greiferbezogene Interpolation im $TOOL--Koordinatensystem. Die aktuelle
Position $POS_ACT wird nun also bezüglich $TOOL berechnet. Mit
$IPO_MODE = #BASE
setzen Sie die Interpolationsart wieder zurück auf die basisbezogene Interpolation für den
Normalfall. Dies ist auch die Standardeinstellung beim Steuerungshochlauf.
$TOOL y
x
z z
$POS_ACT
z y
x
$BASE
x
$ROBROOT
z y
$WORLD x
3.2.3 Bewegungsbefehle
Das folgende Programmbeispiel PTP_AXIS.SRC stellt prinzipiell das kleinste lauffähige
KRL--Programm dar:
END
Werden bei der Angabe der Achskoordinaten einzelne Komponenten weggelassen, so ver-
fährt der Roboter nur die angegebenen Achsen, die anderen verändern ihre Lage nicht. Mit
PTP {A3 45}
wird also z.B. nur die Achse 3 auf 45_ gebracht. Zu beachten ist, daß es sich bei den Winkel-
angaben in der PTP--Anweisung um absolute Werte handelt. Der Roboter dreht die Achse
also nicht um 45_ weiter, sondern verfährt auf die absolute 45_--Lage der Achse.
Zum relativen Verfahren dient die Anweisung PTP_REL. Um z.B. die Achsen 1 und 4 um je
35_ zu verdrehen, programmieren Sie:
PTP_REL {A1 35,A4 35}
A3 = 0_
PTP {A3 45}
A3 = 90_
Beim relativen Verfahren ist zu beachten, daß eine während der Ausführung gestoppte Be-
wegung nicht wieder problemlos fortgesetzt werden kann. Die Steuerung kann nach einem
Neustart und erneuter Satzanwahl bzw. Wechsel der Programmlaufart den bereits zurück-
gelegten Weg nicht berücksichtigen und wird die programmierte Relativdistanz wieder
komplett abfahren, was schließlich zu einem falschen Endpunkt führt.
DEF PTP_POS()
PTP {POS:X 1025,Y 0,Z 1480,A 0,B 90,C 0,S ’B 010’,T ’B 000010’}
END
Zu beachten ist, daß bei Zielpunktangabe in kartesischen Koordinaten neben den Ge-
schwindigkeits-- und Beschleunigungsangaben auch zwingend das Basiskoordinatensy-
stem und das Werkzeugkoordinatensystem definiert sein müssen.
Zum relativen Verfahren des Roboters verwendet man wieder den PTP_REL--Befehl. Mit
PTP_REL {Z 180, B -90}
kann man demnach den Roboter wieder in seine ursprünglich Position zurückbringen. Zu
beachten ist, daß Relativbewegungen nach Unterbrechung nicht erneut angewählt werden
dürfen.
ZBASE
Y BASE
200
150
100
50
150 200
X BASE
50 100
Bei kartesischen Koordinaten ist es möglich, eine Frameverknüpfung mittels des geometri-
schen Operators direkt in der Bewegungsanweisung durchzuführen. Dadurch kann man
z.B. eine Verschiebung zum Basiskoordinatensystem initiieren, ohne die Variable $BASE
zu ändern. Man kann sich damit also beliebig viele eigene Basen (max. 16) für die Pro-
grammierung definieren.
Die Basisverschiebung mit Hilfe des Doppelpunkt--Operators hat außerdem einen ent-
scheidenden Vorteil gegenüber einer Neubesetzung von $BASE:
Die Verschiebung erfolgt im Bewegungssatz, während eine $BASE--Besetzung irgend-
wann vor dem Bewegungssatz erfolgen muß. Dadurch ist auch bei Programmstop und
nachfolgender Satzanwahl immer die richtige Basis für die Bewegung angewählt.
Aus diesem Grund sollten, wenn möglich, $BASE und $TOOL nur einmal, z.B. im Initialisie-
rungsteil des Programms, besetzt werden. Weitere Verschiebungen können dann mit dem
geometrischen Operator vorgenommen werden.
Bei einem TouchUp mit dem standardmäßig ausgelieferten Basis--Paket werden für jeden
Punkt automatisch $BASE und $TOOL in der Datenliste abgelegt.
DEF FR_VERS ( )
Turn
Die Erweiterung einer kartesischen Positionsangabe um die Turn--Angabe ermöglicht es
auch Achswinkel, die größer +180_ bzw. kleiner --180_ sind, ohne besondere Verfahrstrate-
gie (z.B. Zwischenpunkte) anfahren zu können. Die einzelnen Bits bestimmen bei rotatori-
schen Achsen das Vorzeichen des Achswertes in folgender Form:
Bit x = 0: Winkel der Achse x ≥ 0_
Bit x = 1: Winkel der Achse x < 0_
Also bedeutet eine Angabe T ’B 10011’, daß die Winkel der Achsen 1, 2 und 5 negativ sind,
die Winkel der Achsen 3, 4 und 6 dagegen positiv (alle höherwertigen 0--Bits können wegge-
lassen werden).
Status
Mit dem Status S werden Mehrdeutigkeiten in der Achsstellung gehandelt. S ist daher ab-
hängig von der jeweiligen Roboterkinematik.
A5
A3
A2
A5
A4 A6
Anschaulich kann man sich den Grund--/Überkopfbereich kartesisch vorstellen. Dazu wer-
den folgende Begriffe definiert:
Handwurzelpunkt: Schnittpunkt der Handachsen
A1--Koordinatensystem: Steht die Achse 1 auf 0_, ist es mit dem $ROBROOT--Koordina-
tensystem identisch. Bei Werten ungleich 0_ wird es mit der
Achse 1 mitbewegt.
Damit läßt sich der Grund--/Überkopfbereich wie folgt definieren:
G Ist der x--Wert des Handwurzelpunktes, ausgedrückt im A1--Koordinatensystem, posi-
tiv, befindet sich der Roboter im Grundbereich.
G Ist der x--Wert des Handwurzelpunktes, ausgedrückt im A1--Koordinatensystem, nega-
tiv, befindet sich der Roboter im Überkopfbereich.
Bit 1 gibt die Armstellung an. Das Setzen des Bits ist abhängig vom jeweiligen Robotertyp.
Bei Robotern, deren Achsen 3 und 4 sich schneiden, gilt: Bit 1 hat den Wert 0, wenn die
Achse 3 < 0_ ist, ansonsten ist Bit 1 = 1. Bei Robotern mit einem Offset zwischen Achse 3
und 4, ist die Winkellage, in der sich der Wert von Bit 1 ändert, von der Größe dieses Offsets
abhängig.
Offset
Die Auswirkungen der Status--Bits auf die Roboterkonfiguration sind wie folgt dargestellt.
Derselbe Punkt im Raum wurde mit vier unterschiedlichen Roboterstellungen angefahren.
In der ersten Stellung befindet sich der Roboter in Grundstellung, Achse 5 hat einen Wert
von ca. 45_, Achse 3 ca. 80_.
Von Stellung 2 nach 3 ändert sich nun die Armkonfiguration. Achse 3 dreht auf eine Winkel-
lage von ca. --50_, das Status--Bit 1 nimmt den Wert 0 an.
In der vierten Stellung befindet sich der Roboter schließlich in der Überkopfposition. Dazu
wurde insbesondere Achse 1 um 180_ gedreht. Status--Bit 0 wird zu 1.
3.2.3.4 Singularitäten
Die KUKA--Standardkinematik unterscheidet 3 verschiedene singuläre Stellungen. Hierzu
gehören die Überkopf--Singularität, die Strecklage sowie die Handachsensingularität. Eine
Singularität ist unter anderem dadurch gekennzeichnet, daß eine Rückwärtstransformation
(Umrechnung kartesischer Koordinaten in achsspezifische Werte) trotz vorgegebenem Sta-
tus und Turn nicht eindeutig möglich ist. Kleine kartesische Änderungen in unmittelbarer Nä-
her einer Singularität führen zu großen Achswinkeländerungen.
Überkopf--Singularität (α1--Stellung)
Hier liegt der Handwurzelpunkt, dessen Position im Schnittpunkt der Achsen A 4, A 5 und
A 6 liegt, auf der Achse 1.
(1) Handwurzelpunkt.
Abb. 25 Überkopf--Singularität
Die Position von Achse 1 ist durch die Rückwärtstransformation nicht eindeutig bestimmbar
und kann daher beliebige Werte annehmen.
Liegt der Zielpunkt eines PTP--Bewegungssatzes in der Überkopf--Singularität, bietet die
Steuerung folgende Möglichkeiten:
G Die Achse 1 wird bei der PTP--Bewegung auf “0”--Grad verfahren (Standardeinstel-
lung);
G Der Achswinkel für Achse 1 bleibt für den Start-- sowie Zielpunkt gleich.
Hierzu steht die Systemvariable “$SINGUL_POS[1]” zur Verfügung, die durch Editieren der
Maschinendaten geändert werden kann.
Strecklage (α2--Stellung)
Die Verlängerung der Strecke A 2--A 3 schneidet den Handwurzelpunkt.
(1) Handwurzelpunkt.
Abb. 26 Strecklage
Hier befindet sich der Roboter am Rand seines Arbeitsbereichs. Die Rückwärtstransforma-
tion liefert zwar eindeutige Achswinkel, aber kleine kartesische Geschwindigkeiten haben
große Achsgeschwindigkeiten der Achsen 2 und 3 zur Folge.
Handachsensingularität (α5--Stellung)
In diesem Fall liegen die Achsen 4 und 6 parallel zueinander. Die Stellung beider Achsen ist
durch eine Rückwärtstransformation nicht eindeutig bestimmbar, da es beliebig viele Achs-
stellungen für A 4 und A 6 gibt, deren Achswinkelsummen identisch sind.
¦0,01812_
(1) Handwurzelpunkt.
Abb. 27 Handachsen--Singularität
In Ausnahmefällen kann es vorkommen, daß ein Punkt außerhalb des Bereichs der Singu-
larität nicht exakt mit den gleichen Achswinkeln angefahren werden kann, wie er ursprüng-
lich geteacht worden ist.
Liegt der (kartesische) Zielpunkt einer PTP--Bewegung in einer Singularität, hängt das Ver-
halten der Steuerung von der eingestellten Betriebsart ab:
G Wird der Zielpunkt im Handbetrieb “T1” per Satzanwahl angewählt oder im Single--
Step--Betrieb angefahren, erfolgt die Ausgabe einer entsprechenden Hinweismel-
dung. In diesem Fall kann der Punkt soweit korrigiert werden, daß er nicht mehr in
einer Singularität liegt;
G Im Hand-- oder Automatikbetrieb “T2” bzw. “Ext” wird der Zielpunkt nicht angefah-
ren, sondern es erfolgt eine Stopreaktion. Eine entsprechende Quittungsmeldung
wird ausgegeben.
3.3 Bahnbewegungen
3.3.1 Geschwindigkeit und Beschleunigung
Im Gegensatz zu PTP--Bewegungen sind bei Bahnbewegungen nicht nur Start-- und Zielpo-
sition vorgegeben. Es wird zusätzlich gefordert, daß die Werkzeugspitze des Roboters sich
auf einer linearen oder kreisförmigen Bahn zwischen diesen Punkten bewegt.
Deshalb beziehen sich die anzugebenden Geschwindigkeiten und Beschleunigungen nun
nicht mehr auf die einzelnen Achsen, sondern auf die Bewegung des TCP. Die Werkzeug-
spitze wird dadurch mit genau definierter Geschwindigkeit bewegt. Die Geschwindigkeiten
und Beschleunigungen müssen für die Translation, den Schwenkwinkel und den Drehwinkel
programmiert werden. Die folgende Tabelle gibt einen Überblick über die zu programmieren-
den Systemvariablen und deren Einheit.
Auch die Geschwindigkeiten und Beschleunigungen für die Bahnbewegungen werden bei
Aufruf der Initialisierungssequenz des Basis--Pakets mit den in den Maschinendaten bzw.
in $CONFIG.DAT definierten Maximalwerten vorbesetzt.
Der Roboter wird angehalten, sobald einer der zulässigen Werte für Geschwindigkeit oder
Beschleunigung überschritten wird. Dieser Fall kann beispielsweise eintreten, wenn eine
Roboterbewegung nahe der Handsingularität (gestreckte Handachsen--Lage) erfolgt.
Die Handsingularität wird erreicht, wenn die Achsen A 4 und A 6 parallel zueinander ste-
hen.
Abb. 28 Handsingularität
Es besteht die Möglichkeit über die Systemvariable $CP_VEL_TYPE die Achsvorschübe und
somit die Beschleunigung und die Geschwindigkeit zu reduzieren, um ein Ansprechen der
Überwachungsgrenzen (Stoppreaktion) zu vermeiden. Als Defaulteinstellung ist die Variable
mit #CONSTANT belegt, d.h. die Reduzierung ist im Programmbetrieb nicht aktiv. Möchte
man diese Funktion in der Betriebsart T1 verwenden, setzt man #VAR_T1 (in T1 werden
niedrigere Achsgeschwindigkeiten und --beschleunigungen verwendet) und in allen Be-
triebsarten #VAR_ALL. Im Handbetrieb ist die Reduzierung immer aktiv.
Mit der Systemvariable $CPVELREDMELD erreicht man in beiden Testbetriebsarten eine Mel-
dung, falls die Bahngeschwindigkeit reduziert wird. Dazu muß die Variable für eine Meldung
mit “1” belegt werden.
3.3.2 Orientierungsführung
Kann die programmierte Geschwindigkeit in der Nähe einer Singularität nicht eingehalten
werden, sollten Sie für den betreffenden Bewegungssatz als $ORI_TYPE die Option
“#JOINT” verwenden.
Der Wert “#VAR” wird auch bei der Initialisierung mittels BAS(#INITMOV,0) gesetzt.
$ORI_TYPE = #JOINT
Während der Bahnbewegung wird die Orientierung des Werkzeugs kontinuierlich von der
Anfangs-- zur Endposition geändert. Dies geschieht durch lineare Überführung der Hand--
achswinkel. Die Problematik der Handsingularität kann mit dieser Option vermieden werden,
da keine Orientierungsführung durch Drehen und Schwenken um die Werkzeugstoßrichtung
stattfindet.
Zum Zeitpunkt der Bahnplanung müssen Base-- und Toolframe für Start-- und Zielpunkt
(wie auch bei PTP--Bewegungen) bekannt sein, da diese für die Positionsberechnung der
Handachsen benötigt werden.
Ändern sich die Base-- oder Toolframe--Positionen während der Ausführung, darf
ORI_TYPE = #JOINT nicht verwendet werden. So ist z. B. mit dieser Orientierungsfüh-
rung kein Conveyor--Betrieb möglich.
Für die Definition des Staus ist, anders als in den Orientierungsarten “#Constant” und
“’#Var”, nicht der Handwurzelpunkt (Schnittpunkt der Handachsen), sondern der TCP
(Werkzeug--Bezugspunkt) maßgebend.
Im Ausnahmefall ist es möglich, daß einige Zielpositionen mit der Orientierungsart “#JOINT”
nicht angefahren werden können. Dieser Fall tritt ein, wenn bei der Berechnung des Ziel-
punkts ein Statuswechsel auftreten würde. Ein Statuswechsel findet statt, wenn der TCP den
Bereich, deren Grenze durch die verlängerte Strecke der Achsen A2--A3 symbolisiert wird,
wechselt. Aus diesem Grund wird der Roboter zu Beginn des Hauptlaufs angehalten und
eine entsprechende Meldung im Meldungsfenster ausgegeben. Wählen Sie in diesem Fall
eine andere Orientierungsart (z.B. “#VAR”).
In den Abbildungen wird ein Punkt im Raum mit gleichen kartesischen Koordinaten, jedoch
unterschiedlichem Status angefahren. Hier sind die Handachswinkel in beiden Abbildungen
absolut identisch, aber die Orientierung des TCP ist unterschiedlich
Bei Kreisbewegungen kann zusätzlich zu konstanter (#CONST) und variabler (#VAR) Orien-
tierung noch zwischen raum-- und bahnbezogener Orientierung gewählt werden. Hierzu
dient die Variable “$CIRC_TYPE”.
Die Variable “$CIRC_TYPE” ist bedeutungslos, wenn mit “$ORI_TYPE = #JOINT” eine
lineare Überführung der Handachswinkel stattfindet.
Variabel raumbezogen
$CIRC_TYPE = #BASE; $ORI_TYPE = #VAR / #JOINT
Eine raumbezogene Orientierungsänderung ($ORI_TYPE=#VAR) zwischen Start-- und Ziel-
position wird wieder durch Überlagerung von Schwenk-- und Drehbewegungen ausgeführt.
In diesem Fall allerdings relativ zum Basiskoordinatensystem.
Das bahnbegleitende Dreibein setzt sich aus dem Kreistangentenvektor t, dem Normalen-
vektor n und dem Binormalenvektor b zusammen. Die Werkzeugorientierung wird mit dem
bahnbegleitenden Dreibein auf dem Kreissegment nachgeführt. Bezogen auf das bahnbeg-
leitende Dreibein ergibt sich für die Werkzeugpositionen keine Orientierungsänderung. Dies
ist unter anderem eine wichtige Anforderung beim Lichtbogenschweißen.
Im gezeigten Beispiel wird die Werkzeugorientierung relativ zum bahnbegleitenden Dreibein
während der Bewegung vom Start-- zum Zielpunkt nicht verändert ($ORI_TYPE=#CONST).
Variabel bahnbezogen
$CIRC_TYPE = #PATH; $ORI_TYPE = #VAR / #JOINT
Wünscht man eine bahnbezogene Orientierungsänderung zwischen Start-- und Zielposition
($ORI_TYPE=#VAR), so wird diese relativ zum bahnbegleitenden Dreibein durch überlager-
tes Drehen und Schwenken ausgeführt. Die Orientierungsführung im bahnbegleitenden
Dreibein ist bei Kreisbewegungen also vollkommen analog zur Orientierungsführung bei Li-
nearbewegungen.
3.3.3 Linearbewegungen
Bei einer Linearbewegung berechnet die (V)KR C... eine Gerade von der aktuellen Position
(im Programm ist dies der letzte programmierte Punkt) zu der Position, die im Bewegungsbe-
fehl angegeben wurde.
Um die Werkzeugspitze entlang einer Geraden zu bewegen, werden Zwischenpunkte im Ab-
stand von einem Interpolationstakt (IPO--Takt, z. Zeit 12 ms) berechnet und diese abgefah-
ren.
Die Programmierung einer Linearbewegung erfolgt durch die Schlüsselworte LIN oder
LIN_REL in Verbindung mit der Zielpunktangabe, also analog zur PTP--Programmierung.
Für lineare Bewegungen wird die Zielposition kartesisch angegeben. Es sind also nur die Da-
tentypen FRAME oder POS zulässig.
Bei Linearbewegungen muß der Winkelstatus des Endpunktes gleich dem des
Anfangspunktes sein. Eine Angabe von Status und Turn in einem Zielpunkt
des Datentyps POS wird daher ignoriert. Deshalb muß vor der ersten LIN--An-
weisung bereits eine PTP--Bewegung mit vollständiger Koordinatenangabe
programmiert sein (z.B. HOME--Fahrt).
DEF LIN_BEW ()
3.3.4 Kreisbewegungen
Zur eindeutigen Definition eines Kreises bzw. Kreisbogens im Raum benötigt man 3 Punkte,
die voneinander verschieden sind und sich nicht auf einer Gerade befinden.
Der Anfangspunkt einer Kreisbewegung ist wie bei PTP oder LIN wieder durch die aktuelle
Position gegeben.
Zum Programmieren einer Kreisbewegung mit den Anweisungen CIRC bzw. CIRC_REL
muß deshalb neben dem Zielpunkt auch ein Hilfspunkt definiert werden. Bei der Berechnung
der Bewegungsbahn durch die Steuerung werden vom Hilfspunkt nur die translatorischen
Komponenten (X, Y, Z) ausgewertet. Die Orientierung der Werkzeugspitze ändert sich also
je nach Orientierungsführung kontinuierlich vom Start-- zum Zielpunkt oder bleibt konstant.
3.3.4.1 Kreiswinkel
Zusätzlich zu Hilfs-- und Zielposition kann noch ein Kreiswinkel mit der Option CA (Circular
Angle) programmiert werden. Die Geometrie des Kreisbogens wird dabei nach wie vor
durch Start--, Hilfs-- und Zielpunkt festgelegt. Die tatsächlich anzufahrende Zielposition auf
dem Kreisbogen wird jedoch über den programmierten Kreiswinkel festgelegt. Dies ist vor
allem zum Nachprogrammieren der Zielposition -- ohne Änderung der Kreisgeometrie --
hilfreich.
Der abzufahrende Kreisbogen kann entsprechend dem Kreiswinkel verlängert oder verkürzt
werden. Die programmierte Zielorientierung wird dann im tatsächlichen Zielpunkt erreicht.
Über das Vorzeichen des Kreiswinkels kann der Drehsinn, d. h. die Richtung in der der Kreis-
bogen abgefahren werden soll, festgelegt werden:
G CA > 0_ im programmierten Sinn (Startpunkt → Hilfspunkt → Ziel-
punkt)
G CA < 0_ entgegen dem programmierten Sinn (Startpunkt → Zielpunkt → Hilf-
spunkt)
Der Wert des Kreiswinkels ist nicht begrenzt. Insbesondere können auch Vollkreise (> 360_)
programmiert werden.
CA > 0° CA < 0°
2
× 2
×
CA = 235° 3
× ×3
4
CA = --235°
1
1
Relativangaben für Hilfs-- und Zielposition (CIRC_REL) beziehen sich jeweils auf die Startpo-
sition. Achsspezifische Positionsangaben sind wie bei LIN--Bewegungen nicht zulässig.
Ebenso müssen $BASE und $TOOL vor Ausführung einer Kreisbewegung vollständig zuge-
wiesen sein.
DEF CIRC_BEW ( )
$ORI_TYPE=#VAR
LIN {A 100} ; Umorientierung des TCP
; relative Kreisbewegung
CIRC_REL {X -50,Y 50},{X 0,Y 100}
PTP HOME
END
3.4 Rechnervorlauf
Ein ganz wesentliches Leistungsmerkmal eines Industrieroboters ist die Schnelligkeit, mit
der er seine Arbeiten erledigen kann. Neben der Dynamik des Roboters ist hierfür auch die
Effektivität der Bearbeitung des Anwenderprogramms, das neben den Bewegungen auch
aus arithmetischen und die Peripherie steuernden Anweisungen besteht, von entscheiden-
der Bedeutung.
Eine schnellere Programmbearbeitung kann
G durch die Verringerung der Bewegungsdauer und
G durch die Verkürzung der Stillstandszeit zwischen den Bewegungen erreicht werden.
Bei vorgegebenen Randbedingungen, wie maximalen Achsgeschwindigkeiten und --be-
schleunigungen, wird erstes durch das zeitoptimale Überschleifen von Bewegungen er-
reicht.
Die Rechnergeschwindigkeit hat direkten Einfluß auf die Abarbeitung der VSS. Dies gilt
besonders für den Rechnervorlauf: Je schneller das verwendete Rechnerteil in der Steue-
rung, um so größer ist die Berechnugsgeschwindigkeit und damit die Anzahl der im Vorlauf
berechneten Bewegungssätze.
Die Stillstandszeit zwischen den Bewegungen kann verkürzt werden, wenn man die aufwen-
digen Arithmetik-- und Logik--Anweisungen zwischen den Bewegungssätzen während der
Roboterbewegung abarbeitet, d.h. im Vorlauf bearbeitet (die Anweisungen “laufen” der Be-
wegung “vor”).
(1) Hauptlaufzeiger.
(2) Vorlaufzeiger (nicht sichtbar) bei $ADVANCE=1.
Im obigen Programmausschnitt ist der Vorlauf auf 1 gesetzt und der Hauptlaufzeiger befindet
sich in Zeile 16 (d.h. die LIN--Bewegung wird gerade ausgeführt). Ein Rechnervorlauf von
1 bedeutet nun, daß die Anweisungen von Zeile 16 bis 22 sowie Zeile 26 parallel zur Bewe-
gungsausführung bereits komplett abgearbeitet wurden die Bewegungsdaten für die PTP--
Bewegungen in Zeile 24 fertig aufbereitet sind und für Zeile 28 gerade aufbereitet werden.
Das heißt aber auch, daß selbst bei einem Vorlauf von 0 immer noch die nächste Bewe-
gungssequenz im Vorlauf aufbereitet werden kann.
Ob der in $ADVANCE vorgegebene Vorlauf allerdings auch tatsächlich erreicht wird, hängt
von der zeitlichen Belastung des Prozessors in der Steuerung ab. Die Belastung ist zum
Beispiel besonders groß, wenn viele kurze Bewegungssätze programmiert worden sind.
Aus Sicherheitsgründen lösen Anweisungen und Daten, die die Peripherie beeinflussen
(z.B. Ein--/Ausgabeanweisungen), einen Vorlaufstop aus.
Wollen Sie dagegen an einer bestimmten Stelle den Vorlauf stoppen, ohne dazu die
Systemvariable $ADVANCE ändern zu müssen, so können Sie sich mit einem kleinen
Trick behelfen: Programmieren Sie an dieser Stelle einfach eine Wartezeit von 0 Se-
kunden. Die Anweisung “WAIT SEC 0” löst dann einen automatischen Vorlaufstop
aus, bewirkt aber sonst nichts.
3.5 Überschleifbewegungen
Um Kollisionen des Roboters mit Objekten innerhalb seines Arbeitsraumes zu vermeiden,
ist es häufig notwendig, einen Bewegungsvorgang durch mehrere Einzelsätze vorzugeben
um so die Hindernisse zu umfahren.
Da es nicht notwendig ist, die Zwischenpunkte in einem zeitraubenden Positioniervorgang
exakt anzufahren, kann man in einem definierbaren Abstand zum Zielpunkt des Einzelsat-
zes damit beginnen, in den nächsten Bewegungssatz zu überschleifen. Damit erhält man
möglichst schnell ausgeführte Bewegungsfolgen mit abgerundeten Bahnen.
3.5.1 Überschleifkontur
Die Überschleifkontur wird dazu automatisch von der Steuerung generiert. Der Programmie-
rer hat nur Einfluß auf den Beginn und das Ende des Überschleifens. Zur Berechnung des
Überschleifsatzes benötigt die Steuerung die Daten des Anfangspunktes, des Überschleif-
punktes und des Zielpunktes.
3.5.2 PTP--PTP--Überschleifen
Zum PTP--Überschleifen berechnet die Steuerung die axial zu verfahrenden Distanzen im
Überschleifbereich und plant für jede Achse Geschwindigkeitsprofile, die tangentiale Über-
gänge von den Einzelsätzen zur Überschleifkontur sicherstellen.
Überschleifbeginn PTP--PTP
Das Überschleifen wird begonnen, wenn die letzte (= führende) Achse einen bestimmten
Winkel zum Überschleifpunkt unterschreitet. In den Maschinendaten ist für jede Achse ein
Winkel vordefiniert:
$APO_DIS_PTP[1] = 90
$APO_DIS_PTP[6] = 90
Im Programm läßt sich durch $APO.CPTP der Beginn des Überschleifens als Prozentsatz
von diesen Maximalwerten angeben. Zum Beispiel:
$APO.CPTP = 50
In diesem Fall wird also das Überschleifen begonnen, wenn die erste Achse einen Restwin-
kel von 45_ (50% von 90_) zum Überschleifpunkt zurückzulegen hat. Das Überschleifende
erfolgt genau dann, wenn die erste Achse einen Winkel von 45_ vom Überschleifpunkt ver-
fahren ist.
Grundsätzlich kann das Überschleifen nicht über die Satzmitte erfolgen! In diesem Fall wird
das System selbständig auf die Satzmitte begrenzen.
Schlüsselwort
Das Überschleifen eines Punktes wird im PTP--Befehl durch Anhängen des Schlüsselwortes
C_PTP angezeigt:
PTP PUNKT4 C_PTP
Auch der PTP--Überschleifsatz wird zeitoptimal ausgeführt, d. h. während überschliffen wird,
fährt stets mindestens eine Achse mit dem programmierten Grenzwert für Beschleunigung
oder Geschwindigkeit. Gleichzeitig wird für jede Achse sichergestellt, daß die zulässigen
Getriebe-- und Motorenmomente nicht überschritten werden.
Aus folgendem Beispiel können Sie die Wirkung der Überschleifanweisung und der Varia-
blen $APO.CPTP ersehen. Die abgefahrene Bahn ist in der x--y--Ebene dargestellt. Insbe-
sondere ist darin auch ersichtlich, daß bei PTP--Bewegungen der TCP nicht auf einer Gera-
den zwischen den Zielpunkten verfahren wird.
DEF UEBERPTP ( )
PTP {POS:X 1159.08,Y -232.06,Z 716.38,A 171.85,B 67.32,C 162.65,S 2,T 10}
PTP {POS:X 1109.41,Y -0.51,Z 715,A 95.44,B 73.45,C 70.95,S 2,T 10}
PTP {POS:X 1209.5,Y 381.09,Z 715,A -141.91,B 82.41,C -159.41,S 2,T 11}
PTP HOME
END
x
x=1296,61
y=133,41
x=1246,93
y=--98,86
x=1209,5
y=381,09
x=1159,08
y=--232,06
x=1109,41
y=--0,51
x=988,45
y=238,53
Da die Bahn einer PTP--Bewegung im allgemeinen weder eine Gerade ist, noch in einer
Raumebene liegt, kann man sie streng genommen eigentlich nicht darstellen. Trotz der
Tatsache, daß der z--Wert aller Punkte des Beispiels gleich ist, liegt nicht jeder Punkt der
Bewegungsbahn in der Ebene z=715 mm. Die abgebildete Bahn ist also lediglich eine Pro-
jektion der wirklichen Bahn in die x--y--Ebene.
3.5.3 LIN--LIN--Überschleifen
Zur kontinuierlichen Bewegung entlang komplexer Bahnen besteht die Forderung, auch zwi-
schen linearen Einzelsätzen zu überschleifen. Die unterschiedlichen Orientierungsbewe-
gungen in den LIN--Sätzen müssen dabei ebenso stufenlos ineinander überführt werden.
Als Überschleifkontur berechnet die Steuerung eine parabelförmige Bahn. Bei dieser
Konturform wird der Bahnverlauf der Einzelsätze bei bester Nutzung der Beschleuni-
gungsreserven im Überschleifbereich sehr gut angenähert.
Überschleifbeginn LIN--LIN
Zur Festlegung des Überschleifbeginns stehen drei vordefinierte Variablen bereit:
Distanzkriterium
Der Variablen $APO.CDIS kann eine translatorische Distanz zugewiesen werden. Wird das
Überschleifen auf diese Variable getriggert, verläßt die Steuerung die Einzelsatzkontur ge-
nau dann, wenn die Entfernung zum Zielpunkt den Wert in $APO.CDIS unterschreitet.
Orientierungskriterium
Der Variablen $APO.CORI kann eine Orientierungsdistanz zugewiesen werden. Die Einzel-
satzkontur wird in diesem Fall genau dann verlassen, wenn der dominierende Orientierungs-
winkel (Schwenken oder Drehen der Werkzeuglängsachse) die in $APO.CORI festgelegte
Distanz zum programmierten Überschleifpunkt unterschreitet.
Geschwindigkeitskriterium
Der Variablen $APO.CVEL kann ein Prozentwert zugewiesen werden. Dieser Wert gibt an,
bei wieviel Prozent der programmierten Geschwindigkeit ($VEL.CP) der Überschleifvor-
gang in der Abbremsphase des Einzelsatzes begonnen wird. Dabei wird jene Komponente
aus Translation, Schwenken und Drehen ausgewertet, die bei der Bewegung den program-
mierten Geschwindigkeitswert erreicht bzw. ihm am nächsten kommt.
Je größer die Werte in $APO.CDIS, $APO.CORI oder $APO.CVEL sind, desto früher wird
mit dem Überschleifen begonnen.
Schlüsselworte
Das Überschleifen wird durch Hinzufügen eines der Schlüsselworte C_DIS, C_ORI oder
C_VEL zur LIN-- oder LIN_REL--Anweisung aktiviert.
DEF UEBERLIN ( )
PTP HOME
END
LIN--LIN--Überschleifen x
x=1296,61
y=133,41
x=1246,93
y=--98,86
x=1209,5
y=381,09
x=1159,08
y=--232,06
x=1109,41
y=--0,51
x=988,45
y=238,53
Die Position, bei der die Überschleifkontur in den nachfolgenden LIN--Satz mündet, wird
von der Steuerung automatisch berechnet. Falls $ACC und $VEL für beide Einzelsätze
identisch sind und die Satzlängen ausreichen, ist die Überschleifparabel symmetrisch zur
Winkelhalbierenden zwischen den beiden Einzelsätzen. Bei kurzen Einzelsätzen wird der
Überschleifbeginn auf die halbe Satzlänge begrenzt, um Kollisionen mit einem eventuell
vorangehenden Überschleifen auszuschließen. Die Geschwindigkeit wird dabei derart re-
duziert, daß ein gegebenenfalls nachfolgender Genauhalt immer eingehalten werden
kann.
Die Übergänge zwischen Einzelsätzen und Überschleifkontur sind stetig und verlaufen tan-
gential. Das gewährleistet einen “weichen”, mechanikschonenden Übergang, da die Ge-
schwindigkeitskomponenten stets stetig sind.
Die von der Steuerung generierte Kontur im Überschleifbereich ist unabhängig von Over-
ride--Änderungen, die zu jedem beliebigen Zeitpunkt der Bewegung zulässig sind.
Eine Programmunterbrechung, wie NOT--AUS, Stop oder Interrupt, kann bei $AD-
VANCE=1 nach erfolgtem Start zu Verlust des Überschleifkriteriums führen. Der Robo-
ter fährt dann den nächsten Raumpunkt als Genauhalt an. Durch Vergrößerung des
Vorlaufs kann diesem Verhalten entgegen gewirkt werden (in der Initialisierungsse-
quenz INI wird $ADVANCE=3 gesetzt).
DEF UEBERCIR ( )
;--------- Deklarationsteil ---------
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME
;---------- Initialisierung ---------
BAS (#INITMOV,0 ) ;Initialisierung von Geschwindigkeiten,
;Beschleunigungen, $BASE, $TOOL, etc.
HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}
;------------- Hauptteil ------------
PTP HOME ; SAK-Fahrt
PTP {POS: X 980,Y -238,Z 718,A 133,B 66,C 146,S 6,T 50}
$ORI_TYPE=#CONST
CIRC {X 982,Y -221,Z 718,A 50,B 60,C 0},{X 1061,Y -118,Z 718,A
-162,B 60,C 177}, CA 150 C_ORI
$OUT[3]=TRUE
; relative Kreisbewegungen
; Ueberschleifen nach dem Geschwindigkeitskriterium
$APO.CVEL=50
CIRC_REL {X -50,Y 50},{X 0,Y 100} C_VEL
PTP HOME
END
CIRC--CIRC Überschleifen x
x=890
y=--238
150°
x=892,05
∆y=100 ∆y=100 y=67,25
∆y=100
x=867
y=--192
Wegen der Forderung nach tangentialen Übergängen kann beim Überschleifen mit
CIRC--Sätzen im allgemeinen keine symmetrische Überschleifkontur berechnet werden.
Die Überschleifbahn besteht daher aus zwei Parabelsegmenten, die tangential ineinan-
der übergehen und die gleichzeitig tangential in die Einzelsätze einmünden.
LIN--CIRC Überschleifen
Überschleif--Ende
Überschleif--Start
3.5.5 PTP--Bahnüberschleifen
Es besteht die Möglichkeit, achsspezifische PTP-- und kartesische Bahn--Bewegungssätze
zu überschleifen. Die PTP--Bewegung bietet folgende Vorteile:
G Sie ist grundsätzlich schneller als ihr kartesisches Gegenstück, insbesondere in der
Nähe singulärer Stellungen.
G Sie ermöglicht im Gegensatz zur kartesischen Interpolation einen Konfigurationswech-
sel, z.B. einen Übergang vom Grund-- in den Überkopfbereich oder ein Durchschwen-
ken durch die gestreckte Handstellung.
Die genaue Bahn einer PTP--Bewegung kann nicht vorherbestimmt werden, da der Ro-
boter den für ihn schnellsten Weg benutzt. Hierbei wird die Bahn ein wenig von einigen
Faktoren (wie z.B. der Verfahrgeschwindigkeit) beeinflußt.
Die Vorteile der achsspezifischen Interpolation können erst dann voll ausgeschöpft werden,
wenn ein kontinuierlicher Übergang zwischen achsspezifischen und kartesischen Sätzen
möglich ist, denn bei einem Genauhalt geht die anderweitig gewonnene Zeit zum großen Teil
wieder verloren.
Die Programmierung des PTP--Bahnüberschleifens erfolgt vollkommen analog zu den bis-
her vorgestellten Verfahren. Der Überschleifbereich wird wie folgt festgelegt:
PTP → Bahnüberschleifen
Der Beginn des Überschleifens wird durch das PTP--Kriterium $APO.CPTP in gewohnter
Weise (s. 3.5.2) ermittelt. Für den nachfolgenden Bahnbewegungssatz kann explizit ein
Überschleifkriterium (C_DIS, C_ORI, C_VEL), das den Eintritt in den CP--Satz festlegt,
angegeben werden.
Dies geschieht durch die Anweisungsfolge:
PTP PUNKT1 C_PTP C_DIS
LIN PUNKT2
Fehlt im PTP--Satz eine Angabe für das im CP--Satz gewünschte Überschleifkriterium, so
wird C_DIS als Default--Wert für die Ermittlung des Eintritts in den CP--Satz herangezogen.
Bsp.:
Ist eine genaue Bahn notwendig, z.B. eine CP--Bewegung parallel zum Tisch, so ist beim
Verlassen dieser Bahn mit der Kombination CP--PTP beim Überschleifen Vorsicht geboten.
Gleiches gilt für eine PTP--CP--Bewegung um auf diese Bahn zu gelangen.
P3
Programm:
CP--PTP
...
LIN P1
LIN P2 C_DIS
PTP P3 P1 P2
Tisch
...
Hier entsteht das Problem, daß die Überschleifbewegung nicht voraussehbar ist. Eine Kolli-
sion mit dem Tisch wäre denkbar.
Um dem oben entstandenen Problem entgegenzutreten und einen Genauhalt zu vermeiden,
muß eine weitere CP--Bewegung (P2_HILF) eingefügt werden.
Programm: CP--CP--PTP P3
...
LIN P1
LIN P2 C_DIS P2_HILF
LIN P2_HILF C_DIS
PTP P3
P1
...
P2
Tisch
Bahn → PTP--Überschleifen
Für den CP--Satz zählt das programmierte Überschleifkriterium, für den PTP--Satz wird auf
$APO.CPTP zurückgegriffen.
Eine Anweisungsfolge könnte also so aussehen:
CIRC HILF PUNKT1 C_VEL
PTP PUNKT2
Das CP--PTP--Überschleifen kann nur garantiert werden, wenn keine der Roboterachsen
im Bahnsatz mehr als 180_ dreht und der Status S nicht wechselt, da diese Stellungsände-
rungen bei der Planung der Überschleifkontur nicht vorhersehbar sind. Tritt ein solcher
Konfigurationswechsel im Bahnsatz vor dem Überschleifen auf (Änderung von S oder T),
wird der Bahnsatz wie ein Einzelsatz zum programmierten Zielpunkt zu Ende gefahren und
die quittierbare Fehlermeldung “Überschleifen CP/PTP nicht durchführbar” ausgegeben.
Der Anwender sollte dann den CP--Satz in mehrere Einzelsätze zerlegen, so daß der Ein-
zelsatz vor dem CP--PTP--Überschleifen hinreichend kurz ist, um einen Wechsel von S
oder T in allen Roboterachsen ausschließen zu können.
DEF UEBERB_P ( )
$APO.CDIS=25
LIN {X 1183.15,Y -52.64,Z 716,A 79.11,B 68.13,C 79.73} C_DIS
CIRC {POS: X 1134,Y 53.63,Z 716},{X 1019.21,Y 124.02,Z 716,A
79.11,B 68.12,C 79.73}
PTP HOME
END
x=1209,74
y=--153,44
x=1183,15
y=--52,64
x=1108,78 x=1134
y=267,16 y=53,63
HP
x=1087,47
y=218,67
HP
x=1037,81
x=1019,31 x=1019,21 y=--117,83
y=306,71 y=124,02
Beispiel
In diesem Beispiel ist es erwünscht, daß am Anfang der Überschleifbewegung von P1
zu P2 das Werkzeug TOOL_DATA1[1] gegen TOOL_DATA[2] ausgetauscht wird.
$TOOL=TOOL_DATA[1]
PTP P0_TOOL1; Punkt wird mit dem Werkzeug TOOL_DATA[1] geteacht
LIN P1_TOOL1 C_DIS; Punkt wird mit dem Werkzeug TOOL_DATA[1] geteacht
$TOOL=TOOL_DATA[2]
LIN P2_TOOL2; Punkt wird mit dem Werkzeug TOOL_DATA[2] geteacht
TOOL2
Flansch
TOOL1 TOOL1
Überschleifbeginn1
P2_TOOL2
P0_TOOL1 P1_TOOL1
TOOL2
Überschleifende 2
P1_TOOL2
P0_TOOL2
Überschleifbeginn2
Der Werkzeugwechsel findet in diesem Beispiel beim Überschleifen statt. D.h. die kartesi-
sche Position springt beim Eintritt in den Zwischensatz von Überschleifbeginn1 auf Über-
schleifbeginn2, die Achswinkel sowie die kartesische Position und Geschwindigkeit des Flan-
sches werden während der gesamten Bewegung stetig geführt. Der Sprung in der
kartesischen TCP--Position wird erst während der Bewegung von Überschleifende2 nach
P2_TOOL2 abgebaut, so daß die Bahn nicht auf der räumlichen linearen Verbindung von
P1_TOOL1 nach P2_TOOL2 verläuft, sondern auf einem Teil der mit Genauhalt programmier-
ten Bahn für TOOL2.
Beim Teachen von kartesischen Koordinaten wird immer das derzeit im System gültige
Basiskoordinatensystem ($BASE) als Bezugssystem zugrunde gelegt. Versichern Sie
sich daher, daß beim Teachen immer das für die spätere Bewegung verwendete Basis-
koordinatensystem eingestellt ist.
Die (V)KR C... erlaubt noch eine weitere Variante des Teachens:
Programmieren Sie eine Bewegungsanweisung mit einer Variablen, die Sie NICHT im
Vereinbarungsteil deklarieren, z.B.:
PTP STARTPUNKT
Nach Drücken der Softkeys “Ändern” und “Var” werden Sie nun aufgefordert die gewünschte
Struktur auszuwählen. Ist dies geschehen, wird in der zugehörigen Datenliste automatisch
eine Variable STARTPUNKT deklariert und mit den aktuellen Ist--Koordinaten bezüglich des
aktuellen $BASE besetzt, z.B.:
DECL FRAME STARTPUNKT={X 15.2,Y 2.46,Z 20.5,A -35.5,B 9.0,C 16.87}
Ist die Datenliste nicht angelegt worden, erscheint eine Fehlermeldung.
Sofern Sie eine Bewegungsanweisung über die Inline--Formulare angelegt haben, kön-
nen Sie die über das Formular geteachten Punkte später auch in einer KRL--Bewe-
gungsanweisung verwenden:
Die Punkte werden in der dazugehörigen Datenliste mit dem im Formular angegebenen
Namen und vorangestelltem X abgelegt (daher sind für Punktnamen in Inline--Formula-
ren auch höchstens 11 statt 12 Zeichen zulässig).
Sie können den Punkt P7 im Inline--Formular
Befindet sich der Punkt, dessen Koordinaten übernommen werden sollen, in einer Singula-
rität, wird eine entsprechende Hinweismeldung ausgegeben. Der betreffende Punkt muß
in diesem Fall anders geteacht werden.
4 Programmablaufkontrolle
4.1 Programmverzweigungen
4.1.1 Sprunganweisung
Die einfachste Form der Programmverzweigung ist die der unbedingten Sprunganweisung.
Sie wird ohne eine bestimmte Bedingung zu reflektieren auf jeden Fall ausgeführt.
Durch die Anweisung GOTO MERKER springt der Programmzeiger an die Position MERKER.
Die Position muß allerdings mit
MERKER:
auch irgendwo im Programm definiert sein. Die Sprunganweisung selber läßt keine Rück-
schlüsse auf die damit erzeugte Programmstruktur zu. Deshalb sollte der Name der Sprung-
marke möglichst so gewählt werden, daß die damit hervorgerufene Sprungaktion etwas ver-
ständlicher wird. So ist es z.B. ein Unterschied, ob man schreibt
GOTO MARKE_1
oder
GOTO KLEBERSTOP
Ein Beispiel für GOTO finden Sie unter “Nicht abweisende Schleifen”
IF Ausführbedingung THEN
Anweisungen
ELSE
Anweisungen
ENDIF
Die Ausführbedingung ist ein boolscher Ausdruck. Abhängig von dem Wert der Aus-
führbedingung wird entweder der erste (THEN--Block) oder der zweite Anweisungsblock
(ELSE--Block) ausgeführt. Der ELSE--Block ist optional und kann daher auch fehlen. Falls die
Ausführbedingung=FALSE ist, wird keine Anweisung ausgeführt und hinter dem ENDIF
weitergearbeitet.
Es sind beliebig viele Anweisungen zulässig. Die Anweisungen können insbesondere auch
weitere IF--Anweisungen sein. Eine Schachtelung von IF--Blöcken ist also möglich. Jede
IF--Anweisung muß jedoch mit einem eigenen ENDIF abgeschlossen werden.
In der folgenden Programmsequenz wird, sofern Eingang 10 auf FALSE ist, die HOME--Posi-
tion angefahren. Ist Eingang 10 gesetzt, dann wird, wenn der Wert von Variable A größer als
der von B ist, zunächst Ausgang 1 gesetzt und Punkt 1 angefahren. Unabhängig von A und
B wird auf jeden Fall bei ungesetztem Eingang 1 die Variable A um 1 erhöht und dann die
HOME--Position angefahren:
…
INT A,B
…
IF $IN[10]==FALSE THEN
PTP HOME
ELSE
IF A>B THEN
$OUT[1]=TRUE
LIN PUNKT1
ENDIF
A=A+1
PTP HOME
ENDIF
…
4.1.3 Verteiler
Liegen mehr als 2 Alternativen vor, kann dies entweder mit einer geschachtelten IF--Kon-
struktion oder -- wesentlich komfortabler -- mit dem Verteiler SWITCH programmiert werden.
Die SWITCH--Anweisung ist eine Auswahlanweisung für verschiedene Programmzweige.
Ein Auswahlkriterium wird vor der SWITCH--Anweisung mit einem bestimmten Wert belegt.
Stimmt dieser Wert mit einer Blockkennung überein, so wird der entsprechende Programm-
zweig abgearbeitet und das Programm springt ohne Berücksichtigung der folgenden Block-
kennungen zur ENDSWITCH--Anweisung vor. Stimmt keine Blockkennung mit dem Auswahl-
kriterium überein, so wird, falls vorhanden, ein DEFAULT--Block abgearbeitet. Anderenfalls
wird mit der Anweisung nach der ENDSWITCH--Anweisung fortgefahren.
Es ist zulässig, einem Programmzweig mehrere Blockkennungen zuzuordnen. Umgekehrt
ist es nicht sinnvoll eine Blockkennung mehrmals zu verwenden, da immer nur der erste Pro-
grammzweig mit der entsprechenden Kennung berücksichtigt wird.
Zulässige Datentypen des Auswahlkriteriums sind INT, CHAR und ENUM. Der Datentyp von
Auswahlkriterium und Blockkennung muß übereinstimmen.
Die DEFAULT--Anweisung kann fehlen, darf aber innerhalb einer SWITCH--Anweisung nur
einmal vorkommen.
Mit der SWITCH--Anweisung können Sie somit zum Beispiel in Abhängigkeit von einer Pro-
grammnummer verschiedene Unterprogramme aufrufen. Die Programmnummer könnte
beispielsweise von der SPS an die digitalen Eingänge der (V)KR C... angelegt werden. Da-
durch steht sie als Auswahlkriterium in Form eines Integer--Wertes zur Verfügung.
DEF MAIN()
…
SIGNAL PROG_NR $IN[1] TO $IN[4]
;In die INT-Variable PROG_NR wird von der SPS
;jetzt die gewuenschte Programmnummer abgelegt
…
SWITCH PROG_NR
CASE 1 ;wenn PROG_NR=1
TEIL_1()
CASE 2 ;wenn PROG_NR=2
TEIL_2()
TEIL_2A()
CASE 3,4,5 ;wenn PROG_NR=3, 4 oder 5
$OUT[3]=TRUE
TEIL_345()
DEFAULT ;wenn PROG_NR<>1,2,3,4 oder 5
ERROR_UP()
ENDSWITCH
…
END
In ähnlicher Weise ist das standardmäßig auf der Steuerung vorhandene CELL--Pro-
gramm (CELL.SRC) aufgebaut.
4.2 Schleifen
Die nächste Grundstruktur zur Programmablaufkontrolle sind die Schleifen, die bis zum Ein-
tritt einer bestimmten Bedingung die wiederholte Abarbeitung einer oder mehrerer Anwei-
sungen beinhalten. Schleifen werden nach der Form der Bedingung und der Stelle der Ab-
frage auf Fortsetzung unterschieden.
Ein Sprung von außen in einen Schleifenkörper ist nicht erlaubt und wird von der
Steuerung abgelehnt (Fehlermeldung).
4.2.1 Zählschleife
Zählschleifen werden so lange ausgeführt, bis eine Zählvariable entweder durch Hoch-- oder
Runterzählen einen bestimmten Endwert über-- oder unterschreitet. In KRL steht dafür die
FOR--Anweisung zur Verfügung. Mit
DEF FOR_PROG()
…
INT I,J
INT FELD[10,6]
…
FOR I=1 TO 6
$VEL_AXIS[I] = 100 ;alle Achsgeschwindigkeiten auf 100%
ENDFOR
…
FOR I=1 TO 9 STEP 2
FOR J=6 TO 1 STEP -1
FELD[I,J] = I*2 + J*J
FELD[I+1,J] = I*2 + I*J
ENDFOR
ENDFOR
;I hat jetzt den Wert 11, J den Wert 0
…
END
WHILE Ausführbedingung
Anweisungen
ENDWHILE
Die Ausführbedingung ist ein logischer Ausdruck, der eine boolsche Variable, ein bool-
scher Funktionsaufruf oder eine Verknüpfung mit einem boolschen Ergebnis sein kann.
Der Anweisungsblock wird ausgeführt, wenn die logische Bedingung den Wert TRUE hat,
d.h. die Ausführbedingung erfüllt ist. Wenn die logische Bedingung den Wert FALSE hat, wird
das Programm mit der nächsten Anweisung hinter ENDWHILE fortgesetzt. Jede WHILE--An-
weisung muß deshalb durch eine ENDWHILE--Anweisung beendet werden.
DEF WHILE_PR()
…
INT X,W
…
WHILE $IN[4] == TRUE ;Durchlauf solange Eingang 4 gesetzt ist
PTP PALETTE
$OUT[2] = TRUE
PTP POS_2
$OUT[2] = FALSE
PTP HOME
ENDWHILE
…
X = 1
W = 1
WHILE W < 5; ;Durchlauf solange W kleiner 5 ist
X = X * W
W = W + 1
ENDWHILE
;W ist jetzt 5
… ;X ist jetzt 1S2S3S4 = 24
W = 100
WHILE W < 100 ;Durchlauf solange W kleiner 100 ist
$OUT[15] = TRUE
W = W + 1
ENDWHILE
… ;Schleife wird nie durchlaufen, W bleibt 100
END
DEF REPEAT_P()
…
INT W
…
REPEAT
PTP PALETTE
$OUT[2]=TRUE
PTP POS_2
$OUT[2]=FALSE
PTP HOME
UNTIL $IN[4] == TRUE ;Durchlauf bis Eingang 4 gesetzt wird
…
X = 1
W = 1
REPEAT
X = X * W
W = W + 1
UNTIL W == 4 ;Durchlauf bis W gleich 4 wird
;W ist jetzt 4
… ;X ist jetzt 1S2S3S4 = 24
W = 100
REPEAT
$OUT[15] = TRUE
W = W + 1
UNTIL W > 100 ;Durchlauf bis W groesser 100 wird
… ;mindestens 1 Schleifendurchlauf, d.h.
;W ist jetzt 101, Ausgang 15 ist gesetzt
END
Mit WHILE und REPEAT haben Sie nun ein sehr mächtiges Werkzeug zur strukturierten Pro-
grammierung an der Hand, mit dem Sie die meisten GOTO--Anweisungen ersetzen können.
Die Anweisungsfolge
…
X = 0
G = 0
MERKER:
X = X + G
G = G + 1
IF G > 100 THEN
GOTO FERTIG
ENDIF
GOTO MERKER:
FERTIG:
…
läßt sich beispielsweise mit REPEAT sehr viel eleganter verwirklichen:
…
X = 0
G = 0
REPEAT
X = X + G
G = G + 1
UNTIL G > 100
…
4.2.4 Endlosschleife
Mit der LOOP--Anweisung lassen sich Endlosschleifen programmieren:
LOOP
Anweisungen
ENDLOOP
Die wiederholte Ausführung des Anweisungsblocks läßt sich nur mittels der EXIT--Anwei-
sung beenden.
DEF EXIT_PRO()
PTP HOME
LOOP ;Start der Endlosschleife
PTP POS_1
LIN POS_2
IF $IN[1] == TRUE THEN
EXIT ;Abbruch, wenn Eingang 1 gesetzt
ENDIF
CIRC HELP_1,POS_3
PTP POS_4
ENDLOOP ;Ende der Endlosschleife
PTP HOME
END
4.3 Warteanweisungen
Mit der WAIT--Anweisung können Sie das Anhalten des Programms bis zum Eintritt einer
bestimmten Situation bewirken. Man unterscheidet zwischen dem Warten auf das Eintreten
eines bestimmten Ereignisses und dem Einlegen von Wartezeiten.
Der Compiler erkennt nicht, wenn der Ausdruck durch eine fehlerhafte Formulierung nie
den Wert TRUE annehmen kann. In diesem Fall wird der Programmablauf endlos angehal-
ten, weil der Interpreter auf eine unerfüllbare Bedingung wartet.
4.3.2 Wartezeiten
Die WAIT SEC--Anweisung dient zum Programmieren von Wartezeiten in Sekunden:
WAIT SEC Zeit
Zeit ist ein arithmetischer REAL--Ausdruck, mit dem Sie die Anzahl der Sekunden angeben,
für die der Programmlauf unterbrochen werden soll. Ist der Wert negativ, so wird nicht gewar-
tet.
Beispiele:
WAIT SEC 17.542
WAIT SEC ZEIT*4+1
Sonderfall:
In einer Interrupt--Routine wird der Programmlauf durch eine HALT--Anweisung erst nach
vollständiger Abarbeitung des Vorlaufs angehalten.
DEF AUTO_QUIT()
INT M
DECL STOPMESS MLD ;vordefinierte Strukturtyp fuer Stopmeldungen
IF $STOPMESS AND $EXT THEN ;Stopmeldung und Betriebsart prüfen
M=MBX_REC($STOPMB_ID,MLD) ;aktuellen Zustand in MLD einlegen
IF M==0 THEN ;Ueberpruefen, ob Quittierung erfolgen
darf
IF ((MLD.GRO==2) AND (MLD.STATE==1)) THEN
CONFIRM MLD.CONFNO ;Quittierung dieser Meldung
ENDIF
ENDIF
ENDIF
END
5 Ein-- /Ausgabeanweisungen
5.1 Allgemeines
Die (V)KR C... kennt 4096 Eingänge und 4096 Ausgänge. Im KUKA--Standardsteuer-
schrank stehen dem Anwender am Stecker X11 (MFC--Baugruppe) folgende Eingänge und
Ausgänge zur Verfügung:
Eingänge 1 …16
Ausgänge 1 …16 (mit max. 100 mA belastbar; 100% Gleichzeitigkeit)
Ausgänge 17 …20 (mit max. 2 A belastbar; 100% Gleichzeitigkeit)
Optional können weitere Ein--/Ausgänge z. B. über Feldbusse projektiert werden.
Eingänge können gelesen, Ausgänge gelesen und geschrieben werden. Sie werden über
die Systemvariablen $IN[Nr] bzw. $OUT[Nr] angesprochen. Nicht benutzte Ausgänge
können als Merker benutzt werden.
Die Ein--/Ausgänge der MFC--Baugruppe können in der Datei “IOSYS.INI” auf andere Be-
reiche umrangiert werden.
Die Anweisungsfolgen
BOOL SCHALTER
⋮
SCHALTER = $IN[6]
IF SCHALTER == FALSE THEN
⋮
ENDIF
und
IF $IN[6] == FALSE THEN
⋮
ENDIF
haben somit die gleiche Bedeutung.
In der (V)KR C... ist es weiterhin möglich, einzelnen Ein-- oder Ausgängen Namen zuzuwei-
sen. Hierzu dient die Signalvereinbarung. Sie muß wie alle Vereinbarungen im Vereinba-
rungsteil des Programms stehen. Man kann also auch
SIGNAL SCHALTER $IN[6]
⋮
IF SCHALTER == FALSE THEN
⋮
ENDIF
programmieren. Die Variable Schalter wird intern wieder als BOOL deklariert.
Systemeingänge und --ausgänge können ebenfalls mit $IN und $OUT angesprochen
werden. Systemausgänge sind allerdings schreibgeschützt.
Eingang 1025 ist immer TRUE, Eingang 1026 ist immer FALSE. Diese Eingänge werden
z. B. in den Maschinendaten als “Dummy”--Variablen benutzt. Eine mehrfache Nutzung ist
zulässig.
DEF BINSIG ( )
;--------- Deklarationsteil ---------
EXT BAS (BAS_COMMAND:IN,REAL:IN )
DECL AXIS HOME
SIGNAL ABBRUCH $IN[16]
SIGNAL LINKS $OUT[13]
SIGNAL MITTE $OUT[14]
SIGNAL RECHTS $OUT[15]
;---------- Initialisierung ---------
BAS (#INITMOV,0 ) ;Initialisierung von Geschwindigkeiten,
;Beschleunigungen, $BASE, $TOOL, etc.
HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}
Durch das Setzen der Eingänge 1, 2 oder 3 kann der Roboter in drei verschiedene Stellungen
verfahren werden. Ist der Roboter in der gewünschten Position angekommen, so wird dies
durch Setzen der entsprechenden Ausgänge 13, 14 oder 15 angezeigt.
Da diese Ausgänge also immer die aktuelle Stellung des Roboters anzeigen, kann mit der
Abfrage
IF $IN[1] AND NOT $OUT[13] THEN
⋮
ENDIF
auch verhindert werden, daß der Roboter bei jedem Durchlauf der While--Schleife erneut
versucht, auf die bereits eingenomme Position zu verfahren. Der Roboter verfährt also nur,
wenn ein Eingang gesetzt ist (d. h. Anweisung zum Verfahren in gewünschte Position) und
der zugehörige Ausgang nicht gesetzt ist (d. h. Roboter ist noch nicht in dieser Position).
Durch Setzen des Eingangs 16 wird die While--Schleife und somit das Programm beendet.
Systemausgänge können auf “FALSE” gesetzt werden, damit der entsprechende Ausgang
nicht als belegt gekennzeichnet wird, z. B.:
SIGNAL $RC_RDY1 FALSE
Wenn man die Ausgänge 13 bis 15 von Beispiel 6.1 damit zu einer Variablen POSITION
zusammenfaßt, ergibt sich folgendes modifizierte Programm:
DEF BINSIG_D ( )
ENDWHILE
PTP HOME
END
5.4 Impulsausgänge
Mit der PULSE--Anweisung können einzelne Ausgänge für eine bestimmte Dauer gesetzt
oder rückgesetzt werden. Die Anweisung
PULSE($OUT[4],TRUE,0.7)
setzt beispielsweise Ausgang 4 für eine Zeit von 0.7 Sekunden auf High--Pegel. Der Impuls
kann dabei parallel zum Roboterprogramm ablaufen (der Interpreter wird dabei nicht ange-
halten).
Anstatt der direkten Angabe des Ausgangs mit $OUT[Nr] kann auch eine Signalvariable
stehen.
Die realisierbaren Impulszeiten liegen zwischen 0.012 und 231 Sekunden. Das Raster
beträgt 0.1 Sekunden. Die Steuerung rundet alle Werte auf ein Zehntel.
In diesem Programm finden Sie einige Beispiele zur Anwendung der PULSE--Anweisung:
DEF PULSIG ( )
FOR I=1 TO 16
$OUT[I]=FALSE ;alle Ausgaenge auf LOW setzen
ENDFOR
FOR I=1 TO 4
PULSE ($OUT[I],TRUE,1) ;nacheinander die Ausgaenge 1-4
WAIT SEC 1 ;fuer 1s auf High
ENDFOR
PTP HOME
CONTINUE ;Vorlaufstop verhindern fuer Ausgang 15
PULSE ($OUT[15],TRUE,3) ;Impuls kommt direkt (im
Vorlauf)
;auf Ausgang 15
PULSE ($OUT[16],TRUE,3) ;Impuls kommt erst nach HOME-Fahrt
END ;und steht noch nach END an
Beachten Sie in diesen Beispielen genau, ab wann die programmierten Impulse an den Aus-
gängen anliegen: Grundsätzlich führt die PULSE--Anweisung immer zu einem Stop des
Rechnervorlaufs. Der Impuls liegt also erst nach Bewegungsbeendigung an.
Der zyklisch aktualisierte Ausdruck, der für die Berechnung des Analog--Ausgabewertes an-
gegeben werden muß, darf eine gewisse Komplexität nicht überschreiten. Die zulässige
Syntax ist deshalb eingeschränkt und an der Technologie orientiert. Die vollständige Syntax
lautet
ANOUT ON Signalname = Faktor * Regelglied 〈± Offset〉 〈DELAY=t〉 〈MI-
NIMUM=U1〉 〈MAXIMUM=U2〉
für das Starten der zyklischen Analogausgabe, bzw.
ANOUT OFF Signalname
für das Beenden.
Die Bedeutung der einzelnen Argumente ist in der Tabelle ersichtlich.
Die optionalen Parameter “Minimum” und “Maximum” stehen nicht in den Inline--Formula-
ren zur Verfügung, da diese ausschließlich für die Technologie “Kleben” verwendet wer-
den.
In diesem Beispiel wurde sowohl ein Minimum-- als auch ein Maximum--Wert definiert. Die
entsprechenden Einträge lauten “MINIMUM=0.3” und “MAXIMUM=0.95”.
10 000
Maximum
8 000
Analogspannung [mV]
UDraht [mV]
6 000
4 000
Minimum
2 000
UStandard [mV]
Bahngeschwindigkeit [mm/s]
Zu beachten ist, daß zur gleichen Zeit höchstens 3 ANIN ON -- Anweisungen aktiv sein
dürfen. Es ist zulässig in beiden Anweisungen auf die selbe Analogschnittstelle zuzug-
reifen, oder die gleiche Variable zu beschreiben.
Die vollständige Syntax zum zyklische Lesen eines Analogeinganges lautet:
ANIN ON Wert = Faktor * Signalname 〈± Offset〉
Das Beenden der zyklischen Überwachung wird mit
ANIN OFF Signalname
eingeleitet. Die Bedeutung der Argumente entnehmen Sie aus der Tabelle.
Im nachfolgenden Beispiel sind die Anweisungen zur Analogein-- und ausgabe illustriert. Mit
Hilfe der Systemvariablen $TECHIN[1] und einem an einem Analogeingang angeschlosse-
nen Bahnfolgesensor kann so z. B. eine Bahnkorrektur während der Bewegung vorgenom-
men werden. Die Variable $VEL_ACT, die stets die aktuelle Bahngeschwindigkeit enthält,
kann mit entsprechenden Faktoren gewichtet zu einer geschwindigkeitsproportionalen Ana-
logausgabe benutzt werden, um die Klebermenge beim Kleberauftrag zu steuern.
DEF ANSIG ( )
FOR I=1 TO 16
$ANOUT[I]=0 ;alle Ausgaenge auf 0V setzen
ENDFOR
;geschwindigkeitsproportionale Analogausgabe;Systemvariable
$VEL_ACT enthält die aktuelle Bahngeschwindigkeit
ANOUT ON KLEBER = 0.5 * $VEL_ACT + 0.2 DELAY = -0.12
LIN POS2
CIRC HILFSPOS,POS3
ANOUT OFF KLEBER
ANIN OFF KORREKTUR
PTP POS4
ENDIF
PTP HOME
END
Während verschiedene Digitaleingänge auf den selben Eingang zugreifen können, dür-
fen die Strobe--Signale NICHT den selben Ausgang beschreiben.
Der Wertebereich von $DIGIN1…$DIGIN6 hängt von der definierten Bit--Länge sowie von
der Vorzeicheninterpretation (#SIGNED oder #UNSIGNED) ab:
12 Bit mit Vorzeichen (#SIGNED) Wertebereich: --2048…2047
12 Bit ohne Vorzeichen (#UNSIGNED) Wertebereich: 0…4095
Die Digitaleingänge können entweder statisch durch eine gewöhnliche Wertzuweisung gele-
sen werden:
INT ZAHL
⋮
ZAHL = $DIGIN2
oder aber zyklisch mit einer DIGIN--Anweisung:
INT ZAHL
⋮
DIGIN ON ZAHL = FAKTOR * $DIGIN2 + OFFSET
⋮
DIGIN OFF $DIGIN2
Zur gleichen Zeit sind 2 DIGIN ON -- Anweisungen zulässig, wobei beide den gleichen Digi-
taleingang lesen können. In der DIGIN ON -- Anweisung kann auch auf analoge Eingangssi-
gnale zugegriffen werden (z. B. als FAKTOR). Die Syntax ist völlig analog zur ANIN ON--An-
weisung:
DIGIN ON Wert = Faktor * Signalname 〈± Offset〉
DIGIN OFF Signalname
6.1 Vereinbarung
Ein Unterprogramm oder eine Funktion ist ein separater Programmteil mit Programmkopf,
Vereinbarungsteil und Anweisungsteil, der von beliebigen Stellen im Hauptprogramm aufge-
rufen werden kann. Nach Abarbeitung des Unterprogramms oder der Funktion erfolgt ein
Rücksprung an den nächsten Befehl nach dem Aufruf des Unterprogramms.
Jedes Programm wird zum Unterprogramm, sobald es von einem anderen Programm
(Hauptprogramm, Unterprogramm oder einer Funktion) aus aufgerufen wird.
Von einem Unterprogramm bzw. einer Funktion aus können weitere Unterprogramm und/
oder Funktionen aufgerufen werden. Die hierbei zulässige Schachtelungstiefe ist 19.
Darüber hinaus erfolgt eine Fehlermeldung. Der rekursive Aufruf von Unterprogrammen
oder Funktionen ist erlaubt. Das heißt, ein Unterprogramm oder eine Funktion kann sich
selbst wieder aufrufen.
DEF--Vereinbarung
Alle Unterprogramme werden genau wie die Hauptprogramme mit der DEF--Vereinbarung
plus Namen deklariert und mit “END” abgeschlossen.
PROG.SRC
DEFFCT
Im Gegensatz zu einem Unterprogramm liefert eine Funktion einen Rückgabewert. Eine
Funktion beginnt mit dem Schlüsselwort “DEFFCT”. Der Datentyp des Rückgabewertes wird
direkt hinter dem Schlüsselwort “DEFFCT” angegeben. Der Rückgabewert selbst wird mit-
tels “RETURN” übergeben. Mit dem Schlüsselwort “ENDFCT” wird die Funktion beendet.
PROG.SRC
PROG.SRC
DEF Prog( )
... ;Hauptprogramm
END
DEF LOC_UP()
... ;Lokales Unterprogramm
END
DEFFCT INT LOC_FUN()
... ;Lokale Funktion
ENDFCT
Lokale Unterprogramme und Funktionen sind nur dem Modul bekannt, in dem sie sich befin-
den. Ein Hauptprogramm kann daher nicht auf lokale Unterprogramme oder Funktionen ei-
nes anderen Hauptprogramms zugreifen.
In lokalen Unterprogrammen bzw. Funktionen sind alle in der Datenliste des Hauptpro-
gramms deklarierten Variablen bekannt. Variablen die im Hauptprogramm (SRC--File) dekla-
riert wurden sind sogenannte “Runtime Variablen” und dürfen nur im Hauptprogramm ver-
wendet werden. Ein Versuch diese Variablen im Unterprogramm zu verwenden führt zu einer
entsprechenden Fehlermeldung.
Der Name von lokalen Unterprogrammen/Funktionen darf maximal 24 Zeichen lang sein.
Mit dem Schlüsselwort “Global” können die Unterprogramme und Funktionen anderen Mo-
dulen zur Verfügung gestellt werden.
Programmierung über das Schlüsselwort “GLOBAL” sollte nur dann eingesetzt werden,
wenn es sich nicht vermeiden läßt. Hier kann ein Fehler im schlimmsten Fall das System
unbrauchbar machen.
PROG.SRC
DEF Prog( )
... ;Hauptprogramm
END
GLOBAL DEF GLOB_UP()
... ;Globales Unterprogramm
END
GLOBAL DEFFCT INT LOC_FUN()
... ;Globale Funktion
ENDFCT
Dateien mit globalen Unterprogrammen oder Funktionen werden vom KRL--Compiler zur
Bindeliste des angewählten Moduls hinzugefügt. Die Bindeliste enthält Verweise zu allen Da-
teien, die zum Ausführen des angewählten Moduls erforderlich sind. Sie ist eine interne Ver-
waltungstabelle, die nicht eingesehen oder bearbeitet werden kann.
Eine fehlerhafte Datei, die als Verweis in der Bindeliste existiert, erzeugt bei dem Versuch
einer Programmanwahl einen Bindelistenfehler. Das betreffende Modul ist solange nicht an-
wählbar, wie es in der Fehlerliste angezeigt wird und muß im Editor bearbeitet werden.
Dateien mit globalen Unterprogrammen oder Funktionen werden grundsätzlich in die Binde-
liste hinzugefügt. Entsteht hier ein Bindefehler durch einen Fehler im globalen Unterpro-
gramm oder einer globalen Funktion, kann dies die Anwahl aller Dateien auf der Steuerung
verhindern.
PROG.SRC PROG_1.SRC
DEF Prog( )
INT A DEF Prog_1( )
A = LOCALFUN() ...
LOCAL() END
PROG_3()
PROG_1()
...
END
PROG_2FUN.SRC
DEF LOCAL() ;Lokales UP
DEFFCT INT Prog_2FUN( )
INT G,H
INT Sample
...
Prog_1()
G = PROG_2FUN()
Prog_3()
H = 5 + LOCALFUN()
RETURN Sample
END
END
DEFFCT INT LOCALFUN() ;Lokale
INT IntVar ;Funktion
IntVar = 25
RETURN (IntVar)
ENDFCT PROG_3.SRC
GLOBAL DEF STARTUP() ;Lokales UP DEF Prog_3( )
... ...
STARTUP()
END ...
END
Richtlinien:
G Alle Dateien mit globalen Unterprogrammen oder globalen Funktionen müssen fehler-
frei sein.
G Globale Unterprogramme und Funktionen müssen eine andere Bezeichnung als das
Hauptprogramm besitzen, in dem sie stehen.
In Abb. 51 ist der Unterschied zwischen den beiden Methoden aufgezeigt. Während die Va-
riable X bei “Call by value” im Hauptprogramm aufgrund der getrennten Speicherbereiche
unverändert bleibt, wird sie bei “Call by reference” durch die Variable ZAHL in der Funktion
überschrieben.
X Call by value
15 GLOBAL DEFFCT INT QUA-
15 DRAT(ZAHL:IN)
15 ZAHL INT ZAHL
225 ZAHL=ZAHL*ZAHL
225 RETURN(ZAHL)
DEF PROG() ENDFCT
INT X,Y,E
…
X=5*3
⇒ X=15
Y=QUADRAT(X) ;Y=225 Y= 225
E=Y/X E=15
…
END
15
225
X,ZAHL Call by reference
15
⇒ X=225
Y= 225
E=1
“Call by value” wird im Unterprogramm-- oder Funktionskopf durch das Schlüsselwort IN hin-
ter jeder Variablen in der Parameterliste angegeben. “Call by reference” erhält man durch
Angabe von OUT. OUT ist auch die Default--Einstellung. Beispiel:
DEF RECHNE(X:OUT,Y:IN,Z:IN,B)
Ist das aufzurufende Unterprogramm oder die Funktion global, so muß bei der Extern--Ver-
einbarung im Hauptprogramm angegeben werden, welchen Datentyp die jeweiligen Varia-
blen haben und welcher Übergabemechanismus verwendet werden soll. OUT ist wieder die
Default--Einstellung. Beispiel:
EXTFCT REAL FUNKT1(REAL:IN,BOOL:OUT,REAL,CHAR:IN)
Die Verwendung von IN und OUT soll mit folgendem Beispiel verdeutlicht werden. Das Unter-
programm und die Funktion seien global.
DEF PROG()
RECHNE (INT:OUT,INT:IN,INT:IN)
FUNKT1(REAL:IN,REAL:OUT,REAL:OUT,REAL:IN,REAL:OUT)
INT A,B,C
REAL D,E,F,G,H,X
A = 1
B = 2
C = 3
D = 1
E = 2
F = 3
G = 4
H = 5
RECHNE (A,B,C)
;A ist nun 11
;B bleibt 2
;C bleibt 3
X = FUNKT1(H,D,E,F,G)
;D ist nun 3
;E ist nun 8
;F bleibt 3
;G ist nun 24
;H bleibt 5
;X ist nun 15
END
DEF RECHNE(X1:OUT,X2:IN,X3:IN) ;globales UP
INT X1,X2,X3
X1=X1+10
X2=X2+10
X3=X3+10
END
DEFFCT REAL FUNKT1(X1:IN,X2:OUT,X3:OUT,X4:IN,X5:OUT);globale Fkt.
REAL X1,X2,X3,X4,X5
X1 = X1*2
X2 = X2*3
X3 = X3*4
X4 = X4*5
X5 = X5*6
RETURN(X4)
ENDFCT
Bei der Übergabe eines Feldes muß das Feld im Unterprogramm oder der Funktion ebenfalls
neu deklariert werden, jedoch ohne Index. Dazu folgendes Beispiel, indem die Werte eines
Feldes X[] verdoppelt werden (die Funktion ist global):
DEF ARRAY ( )
EXT BAS (BAS_COMMAND:IN,REAL:IN)
INT X[5] ;Feldvereinbarung
INT I
BAS (#INITMOV,0)
FOR I=1 TO 5
X[I]=I ;array X[] initialisieren
ENDFOR ;X[1]=1,X[2]=2,X[3]=3,X[4]=4,x[5]=5
Bei der Übergabe von mehrdimensionalen Felder werden ebenfalls keine Indizes angege-
ben, allerdings muß die Dimension des Feldes durch Angabe von Kommas spezifiziert wer-
den, Beispiele:
A[,] für zweidimensionale Felder
A[,,] für dreidimensionale Felder
7 Interrupt-- Behandlung
Beim Einsatz von Robotern in komplexen Fertigungsanlangen besteht die Notwendigkeit,
daß der Roboter auf bestimmte externe oder interne Ereignisse gezielt und sofort reagieren
kann und parallel zum Roboterprozeß Aktionen ausgeführt werden können. Das heißt, ein
laufendes Roboterprogramm muß unterbrochen und ein Unterbrechungsprogramm bzw.
--funktion gestartet werden. Nach Abarbeitung des Unterbrechungsprogramms soll, wenn
nichts weiteres vereinbart ist, das unterbrochene Roboterprogramm wieder fortgesetzt wer-
den.
Dieses gezielte Unterbrechen bzw. Starten eines Programms wird durch die Interrupt--An-
weisung ermöglicht. Damit hat der Anwender die Möglichkeit, per Programm auf ein Ereignis
zu reagieren, welches zeitlich nicht synchron zum Programmablauf auftritt.
Interrupts können von
G Geräten, wie Sensoren, Peripherieeinheiten, etc.,
G Fehlermeldungen
G dem Anwender oder durch
G Sicherheitsschaltungen
ausgelöst werden. Beispielsweise kann nach Drücken des Not--Aus--Schalters eine Inter-
rupt--Routine aufgerufen werden, die bestimmte Ausgangssignale zurücksetzt.
7.1 Deklaration
Bevor ein Interrupt aktiviert werden kann, müssen zunächst einmal die möglichen Unterbre-
chungsursachen und die jeweilige Reaktion des Systems darauf definiert werden.
Dies geschieht mit der Interrupt--Deklaration, bei der sie jeder Unterbrechung eine Priorität,
ein Ereignis und die aufzurufende Interrupt--Routine zuordnen müssen. Die vollständige
Syntax lautet:
INTERRUPT DECL Priorität WHEN Ereignis DO Anweisung
Zur Bedeutung der Argumente:
Die Anweisung
INTERRUPT DECL 4 WHEN $IN[3]==TRUE DO UP1()
deklariert z.B. einen Interrupt der Priorität 4, der das Unterprogramm UP1() aufruft sobald
der Eingang 3 auf High geht.
Die Interrupt--Deklaration ist eine Anweisung. Sie darf daher nicht im Vereinbarungsteil
stehen!
Ein Interrupt wird erst ab der Programmebene erkannt, in der er deklariert ist. In darüber lie-
genden Programmebenen wird der Interrupt trotz Aktivierung nicht erkannt. Das heißt, ein
in einem Unterprogramm deklarierter Interrupt, ist im Hauptprogramm nicht bekannt.
Wird der Interrupt hingegen als GLOBAL vereinbart so kann er in einem beliebigen Unterpro-
gramm deklariert werden und verliert seine Gültigkeit beim Verlassen dieser Ebene nicht .
GLOBAL INTERRUPT DECL 4 WHEN $IN[3]==TRUE DO UP1()
Hauptprogramm
DEF MAIN()
⋮
INTERRUPT DECL 1 …
INTERRUPT DECL 3 … Unterprogramm
⋮
UP()
DEF UP()
⋮
⋮
END
GLOBAL INTERRUPT DECL 23
…
INTERRUPT DECL 2 …
⋮
END
Gültigkeit Interrupt 1, 3, 23
Gültigkeit Interrupt 2, 23
Aus Rechenzeitgründen dürfen zur gleichen Zeit nur 16 Interrupts eingeschaltet sein.
Dies ist insbesondere bei der globalen Aktivierung aller Interrupts zu beachten.
Interrupt ausschalten
In gleicher Weise wie das Einschalten funktioniert auch das Ausschalten einzelner oder aller
Interrupts:
INTERRUPT OFF 4
oder
INTERRUPT OFF
Prioritäten
Bei gleichzeitigem Auftreten von Interrupts wird erst der Interrupt höchster Priorität bearbei-
tet, dann die Interrupts niederer Priorität. Die Prioritätsstufe 1 hat dabei die höchste Priorität,
Stufe 128 die niedrigste.
Bei Erkennen eines Ereignisses wird die aktuelle Ist--Position des Roboters gespeichert und
die Interrupt--Routine aufgerufen. Der aufgetretene Interrupt sowie alle Interrupts niederer
Priorität werden für die gesamte Dauer der Abarbeitung gesperrt. Bei der Rückkehr aus dem
Interruptprogramm wird die genannte implizite Sperre, auch für den aktuellen Interrupt, wie-
der aufgehoben.
Der Interrupt kann nun also bei erneutem Auftreten (auch während des Interruptprogramms)
wieder abgearbeitet werden. Soll dies verhindert werden, so muß der Interrupt explizit vor
dem Rücksprung gesperrt oder ausgeschaltet werden.
Ein Interrupt kann nach dem ersten Befehl im Interruptprogramm durch Interrupts höherer
Priorität unterbrochen werden. Im ersten Befehl hat der Programmierer somit die Möglich-
keit, dies durch Sperren/Ausschalten eines oder aller Interrupts zu verhindern. Schaltet sich
ein Interrupt im Interruptprogramm selbst ab, so wird dieses natürlich zu Ende abgearbeitet.
Nach Beendigung eines höher prioren Interrupts wird das unterbrochene Interruptprogramm
an der Stelle fortgesetzt, an der es unterbrochen wurde.
Sonderfälle:
S Interrupts auf die Systemvariablen $ALARM_STOP und $STOPMESS werden auch im
Fehlerfall bearbeitet, das heißt, trotz Roboterstop laufen die Interruptanweisungen ab
(keine Bewegungen).
S Während eines Bedienstopps kann jeder deklarierte und aktivierte Interrupt erkannt
werden. Nach einem erneuten Start werden die aufgetretenen Interrupts ihrer Priori-
tät entsprechend abgearbeitet (falls sie freigegeben sind) und anschließend wird das
Programm fortgesetzt.
Eine laufende Roboterbewegung wird beim Aufruf eines Interruptprogramms nicht abgebro-
chen. Während das Interruptprogramm bearbeitet wird, werden noch alle im unterbrochenen
Programm aufbereiteten Bewegungen abgefahren. Wenn das Interruptprogramm während
dieser Zeit komplett abgearbeitet ist, wird das unterbrochene Programm ohne Bewegungs-
stillstand, d.h. ohne Verlängerung der Bearbeitungszeit, fortgesetzt. Ist dagegen die Inter-
ruptaktion noch nicht beendet, bleibt der Roboter stehen bis nach dem Rücksprung die näch-
ste Bewegung aufbereitet und fortgesetzt wird.
Befinden sich im Interruptprogramm selbst Bewegungsanweisungen, so hält das Interrupt-
programm solange auf der ersten Bewegungsanweisung an bis der Vorlauf des Hauptpro-
gramm abgearbeitet ist.
Den Einsatz von Interruptanweisungen und die Verwendung der speziellen Systemvariablen
soll das folgende Beispiel erläutern. Hierin werden während einer Linearbewegung ständig
zwei Sensoren (an den Eingängen 1 und 2) überwacht. Sobald ein Sensor ein Teil detektiert
(auf High geht), wird ein Interruptunterprogramm aufgerufen, indem die Position des Teiles
gespeichert wird und als Anzeige ein entsprechender Ausgang gesetzt wird. Die Roboterbe-
wegung wird dabei nicht unterbrochen. Danach werden die erkannten Teile nochmals ange-
fahren.
DEF INTERRUP ( )
PTP HOME
FOR I=1 TO 2
IF $OUT[I] THEN
LIN TEIL[I] ; erkanntes Teil anfahren
$OUT[I]=FALSE
PTP HOME
ENDIF
ENDFOR
END
Die Positionen …_BACK und …_FOR sind bei Überschleifbewegungen davon abhängig wo
sich der Hauptlauf befindet.
$POS_RET
$POS_INT
$AXIS_RET P2
$AXIS_INT
$POS_FOR
$AXIS_FOR
P1 P3
$POS_BACK $POS_ACT
$AXIS_BACK $AXIS_ACT
P2
$POS_INT $POS_RET
$AXIS_INT $AXIS_RET
$POS_FOR
$AXIS_FOR
$POS_BACK $POS_ACT
$AXIS_BACK $AXIS_ACT
P1 P3
Die BRAKE -- Anweisung darf nur in einem Interruptprogramm stehen. In anderen Pro-
grammen führt sie zu einem Fehlerstop.
Die BRAKE--Anweisung muß nicht direkt nach dem Aufruf, sondern kann an beliebiger Stelle
im Interruptprogramm erfolgen. Ihre Wirkung hängt davon ab, ob zum Zeitpunkt ihrer Abar-
beitung noch eine Bewegung des unterbrochenen Programms ausgeführt wird. Wenn der
Roboter steht, hat die Anweisung keine Auswirkung. Eine noch laufende Bewegung des un-
terbrochenen Programms wird mit dem programmierten Bremsmodus angehalten. Der
BRAKE--Befehl ersetzt allerdings nicht die HALT--Anweisung, wenn der Programmlauf ange-
halten werden soll. Die Bearbeitung des Interruptprogramms wird erst nach erfolgtem Still-
stand des Roboters mit der darauffolgenden Anweisung fortgesetzt.
Wie die BRAKE--Anweisung, ist auch RESUME nur in einem Interruptprogramm zulässig.
Zum Zeitpunkt der RESUME--Anweisung darf der Vorlaufzeiger nicht in der Ebene ste-
hen, in der der Interrupt deklariert wurde, sondern mindestens eine Ebene tiefer.
Da die Suchstrecke mit RESUME abgebrochen werden soll, muß die Suchbewegung in einem
Unterprogramm programmiert werden. Dies geschieht im folgenden Beispiel in MOVEP(),
das Interruptunterprogramm heißt IR_PROG().
Wichtig ist, daß in Unterprogrammen, die mit RESUME abgebrochen werden sollen, vor der
letzten Zeile der Vorlauf angehalten wird. Nur dann ist gewährleistet, daß der Vorlaufzeiger
bei RESUME nicht in der Ebene steht, in welcher der Interrupt deklariert wurde. In MOVEP()
wurde dies mit der $ADVANCE=0 Zuweisung realisiert.
Im Interruptprogramm selbst wird -- sobald 4 Teile durch einen Sensor an Eingang 1 erkannt
sind -- die Suchbewegung mittels BRAKE angehalten, und schließlich mit der RESUME--An-
weisung abgebrochen (da neben IR_PROG() auch MOVEP() beendet wird). Ohne die
BRAKE--Anweisung würde zunächst noch die Suchbewegung im Vorlauf abgearbeitet wer-
den.
Nach RESUME wird das Hauptprogramm mit der Anweisung nach dem Unterprogrammauf-
ruf, also $ADVANCE=3 (Vorlauf zurückstellen), fortgesetzt.
In dem Beispiel, als “Schnelles Messen” bezeichnete Suchaktion werden die Eingänge im
Interpolationstakt (z.Z. 12ms) abgefragt. Dabei besteht eine maximale Ungenauigkeit von
ca. 12ms mal Bahngeschwindigkeit.
Wenn die Gefahr besteht, daß ein Interrupt fälschlicherweise durch empfindliche Sen-
sorik zweimal ausgelöst wird (“Tastenprellen”), so können Sie dies durch Ausschalten
des Interrupts in der ersten Zeile des Interruptprogramms verhindern. Allerdings kann
dann auch ein tatsächlich auftretender Interrupt während der Interruptverarbeitung nicht
mehr erkannt werden. Vor dem Rücksprung muß der Interrupt -- wenn er weiter aktiv
sein soll -- wieder eingeschaltet werden.
Falls, wie in obigem Beispiel, eine Bewegung mit RESUME abgebrochen wird, sollte die
nachfolgende Bewegung keine CIRC--Bewegung sein, da der Anfangspunkt jedes mal
ein anderer ist (⇒ unterschiedliche Kreise).
DEF SEARCH ( )
;--------- Deklarationsteil ---------
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME
POS POSITION[4] ;POS-Feld mit 4 Elementen
;---------- Initialisierung ---------
INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3 ;standardmaessige Fehlerbehandlung
BAS (#INITMOV,0 ) ;Initialisierung von Geschwindigkeiten,
;Beschleunigungen, $BASE, $TOOL, etc.
HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0}
INTERRUPT DECL 11 WHEN $IN[1] DO IR_PROG ( )
I[1]=0 ;vordefinierten Zaehler auf 0 setzen
;------------- Hauptteil ------------
PTP HOME ;SAK-Fahrt
INTERRUPT ON 11
MOVEP ( ) ;Abfahren der Suchstrecke
$ADVANCE=3 ;Vorlauf zurueckstellen
INTERRUPT OFF 11
GRIP ( )
PTP HOME
END
;-------- Unterprogramm ------------
DEF MOVEP ( ) ;Unterprogramm zum Abfahren der Suchstrecke
PTP {X 1232,Y -263,Z 1000,A 0,B 67,C -90}
LIN {X 1232,Y 608,Z 1000,A 0,B 67,C -90}
$ADVANCE=0 ;Vorlauf anhalten
END ;
;------ Interruptprogramm ---------
DEF IR_PROG ( ) ;Teileposition speichern
;INTERRUPT OFF 11
I[1]=I[1]+1
POSITION[I[1]]=$POS_INT ;Abspeichern der Position
IF I[1]==4 THEN ;4 Teile werden erkannt
BRAKE ;Anhalten der Bewegung
RESUME ;Abbrechen von IR_PROG & MOVE
ENDIF
;INTERRUPT ON 11
END
;-------- Unterprogramm ------------l
--
PUNKT3
1
Abb. 55 Schaltbereiche und mögliche Verzögerungswerte, wenn Start-- und Zielpunkt
Genauhaltpunkte sind.
1a
-- 1
1b
PUNKT3 PUNKT4
+
Abb. 56 Schaltbereiche und mögliche Verzögerungswerte, wenn Startpunkt ein Genau-
haltpunkt und Zielpunkt ein Überschleifpunkt ist.
0
+
1a
-- 1
1b
PUNKT3 PUNKT4
+
0
+
--
1
PUNKT3
Abb. 58 Schaltbereiche und mögliche Verzögerungswerte, wenn Startpunkt ein Über-
schleifpunkt und Zielpunkt ein Genauhaltpunkt ist.
±X 0 -- X --
±X X -- 2 +
PUNKT5
-- 2
-- PATH=0
+
DELAY--Angabe
PUNKT3 PUNKT4
+ PATH--Angabe
Xmm
Abb. 59 Schaltbereiche und mögliche Verzögerungswerte, wenn Start-- und Zielpunkt
Genauhaltpunkte sind.
0a --
+ 0 PATH Schaltbereich DELAY
PUNKT2
±X 0a -- X --
±X X -- 2 +
--Xmm
--
-- + 2
DELAY bei pos. PATH
DELAY bei neg. PATH
PUNKT3 PUNKT4
+ PATH--Angabe
+Xmm
Abb. 60 Schaltbereiche und mögliche Verzögerungswerte, wenn Startpunkt ein Genau-
haltpunkt und Zielpunkt ein Überschleifpunkt ist.
Sonderfälle:
G SAK--Fahrt
Wird eine Satzanwahl auf eine Bahnbewegung durchgeführt, so findet diese als SAK--
Fahrt statt. Da bei dieser SAK--Fahrt der Startpunkt beliebig ist, kann er kein sinnvoller
Startpunkt für eine Entfernungsangabe sein. Sind vor einer solchen Bewegung also
TRIGGER--Befehle mit PATH--Angabe programmiert, und findet eine Satzanwahl auf
diese Befehle statt, so werden diese alle am Zielpunkt ausgeführt.
G Überschleifen nicht möglich
Ist ein Überschleifen nicht möglich, so findet an dieser Stelle eine Genauhaltbewegung
statt. Diese wird in diesem Zusammenhang jedoch wie eine Überschleifbewegung be-
handelt. Im weiteren Verlauf auf der Bahn liegende Schaltaktionen bleiben gespeichert
und werden an entsprechender Stelle ausgelöst. Allerdings werden sie in der Regel
nicht mehr exakt stimmen, da sich jetzt eine andere Bahn und somit eine andere Bahn-
länge ergibt.Schaltaktionen, die durch einen negativen PATH--Wert auf die erste Hälfte
des Überschleifbereichs gelegt wurden, können jetzt frühestens am Überschleifpunkt
ausgelöst werden:
⋮
LIN P1 C_DIS
TRIGGER WHEN PATH=-120 DELAY=0 DO UNTERPRG1() PRIO=-1
TRIGGER WHEN PATH=-70 DELAY=0 DO $OUT[2]=TRUE
LIN P2 C_DIS
⋮
Im obigen Beispiel soll die Entfernung zwischen Start-- und Zielpunkt 100 mm betragen.
Kann bei P1 überschliffen werden, so wird der Unterprogrammaufruf UP1() 20 mm vor
dem Erreichen des Bahnpunktes, der dem Überschleifpunkt P1 am nächsten ist, aus-
geführt. Das Setzen von Ausgang 2 wird 30 mm nach diesem Bahnpunkt ausge-
führt.Konnte die Überschleifbewegung bei P1 nicht ausgeführt werden, so läuft die
Bahn durch den Punkt P1, in dem auch positioniert wird. Der Unterprogrammaufruf UN-
TERPRG1() wird jetzt unmittelbar nach dem Verlassen von P1 ausgeführt, das Setzen
von Ausgang 2 erfolgt in 30 mm Abstand von P1.
G Abbrechen einer Bewegung
Wird eine Bewegung z.B. durch Satzanwahl oder Reset abgebrochen und nicht mehr
zu Ende geführt, so werden wie bei der DISTANCE--Angabe die noch nicht ausgeführ-
ten Schaltaktionen auch nicht mehr ausgeführt, sondern gelöscht.
G Wegbezogenen TRIGGER --Anweisung für eine PTP --Bewegung
Wird eine TRIGGER --Anweisung mit Wegangabe zu einer PTP --Bewegung program-
miert, so wird dies vom Interpreter bei der Ausführung abgelehnt.
G PTP--Bahnüberschleifen
Wird eine TRIGGER --Anweisung, zu einer Bewegung programmiert, deren Startpunkt
ein PTP--Bahn--Überschleifpunkt ist, so kann -- da jetzt der ganze Überschleifbereich
noch PTP gefahren wird -- die Schaltaktion frühestens am Ende dieses Überschleifbe-
reichs stattfinden.
Bei einem Bahn--PTP--Überschleifbereich werden alle noch aktiven TRIGGER --Anwei-
sung, die bis dahin nicht geschaltet haben, am Anfangspunkt des Überschleifbereichs
ausgelöst. Denn ab hier wird dann PTP gefahren und es ist keine Bahnzuordnung mehr
möglich.
Im nächsten Beispiel sind sowohl Schaltaktionen mit DISTANCE--Angabe als auch mit
PATH--Angabe programmiert. Die einzelnen Schaltpunkte und die Bewegungsbahn sind dar-
gestellt.
DEF TRIG ( )
;--------- Deklarationsteil ---------
EXT BAS (BAS_COMMAND :IN,REAL :IN)
DECL AXIS HOME
INT I
SIGNAL KLEBER $OUT[3]
;---------- Initialisierung ---------
INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 ) ;Initialisierung von Geschwindigkeiten,
;Beschleunigungen, $BASE, $TOOL, etc.
$APO.CDIS=35 ;Überschleifdistanz festlegen
HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0}
POS0={POS: X 1564,Y -114,Z 713,A 128,B 85,C 22,S 6,T 50}
POS1={X 1383,Y -14,Z 713,A 128,B 85,C 22}
POS2={X 1383,Y 200,Z 713,A 128,B 85,C 22}
POS3={X 1527,Y 200,Z 713,A 128,B 85,C 22}
POS4={X 1527,Y 352,Z 713,A 128,B 85,C 22}
FOR I=1 TO 16
$OUT[I]=FALSE
ENDFOR
;------------- Hauptteil ------------
PTP HOME ;SAK-Fahrt
PTP POS0
TRIGGER WHEN DISTANCE=0 DELAY=40 DO $OUT[1]=TRUE
TRIGGER WHEN PATH=-30 DELAY=0 DO UNTERPRG1(2) PRIO=-1
LIN POS1
TRIGGER WHEN DISTANCE=1 DELAY=-50 DO KLEBER=TRUE
TRIGGER WHEN PATH=180 DELAY=55 DO PULSE($OUT[4],TRUE,0.9)
TRIGGER WHEN PATH=0 DELAY=40 DO $OUT[6]=TRUE
LIN POS2 C_DIS
TRIGGER WHEN DISTANCE=0 DELAY=40 DO PULSE ($OUT[5],TRUE,1.4 )
TRIGGER WHEN PATH=-20 DELAY=-15 DO $OUT[8]
LIN POS3 C_DIS
TRIGGER WHEN DISTANCE=1 DELAY=-15 DO UNTERPRG1 (7 ) PRIO= -1
LIN POS4
PTP HOME
END
DEF UP1 (NR :IN )
INT NR
IF $IN[1]==TRUE THEN
$OUT[NR]=TRUE
ENDIF
END
$OUT[2] 2’E
$OUT[5]
3’B
180
8
$OUT[1] $OUT[8]
20
POS 0 $OUT[4] $OUT[7]
3’
3’E
POS 3
POS 4
9 Datenlisten
9.1 Lokale Datenlisten
Datenlisten dienen dazu, programmspezifische oder auch übergeordnete Vereinbarungen
bereitzustellen. Hierzu gehören auch die Punktinformationen, z.B. Koordinaten:
G Zu jeder SRC--Datei kann eine Datenliste erstellt werden. Diese trägt den selben Na-
men wie die SRC--Datei und endet mit der Erweiterung “.DAT”.
G Die Datenliste ist lokal, obwohl sie eine eigene Datei ist.
G In einer Datenliste dürfen nur Deklarationen und Initialisierungen stehen.
G Es kann in einer Zeile deklariert und initialisiert werden.
G Es werden keine Systemvariablen akzeptiert.
Die Vereinbarung von Datenlisten erfolgt analog zu Vereinbarung von SRC--Dateien: Die De-
klaration wird mit dem Schlüsselwort DEFDAT und dem Programmnamen eingeleitet und
mit dem Schlüsselwort ENDDAT abgeschlossen.
Die Initialisierung von Variablen erfolgt durch eine Wertzuweisung an die betreffende Varia-
ble direkt in der Deklarationszeile.
PROG_1.SRC PROG_1.DAT
DEF PROG_1 ( )
… DEFDAT PROG_1
HALT OTTO ist anfangs “0” INT OTTO = 0
… ENDDAT
OTTO = 25
…
HALT
END
DEFDAT PROG_1
Nach Ausführung des INT OTTO = 25
Programms ist OTTO = ENDDAT
25
Durch Deklaration und Initialisierung in der Datenliste entfällt diese im Hauptprogramm. Wird
der Variablen OTTO im Hauptprogramm ein neuer Wert zugewiesen, so wird dieser auch in
der Datenliste eingetragen und bleibt permanent gespeichert.
Nach Steuerung AUS/EIN wird also mit dem “neuen” Wert gearbeitet. Dies ist unerläßlich
für Online--Korrektur oder andere Programmkorrekturen.
Soll ein Hauptprogramm immer mit dem selben Wert starten, so muß man die entspre-
chende Variable im Hauptprogramm mit dem gewünschten Wert vorbesetzen.
In Datenlisten dürfen folgende Vereinbarungen stehen:
G Externvereinbarungen für Unterprogramme und Funktionen, die in der SRC--Datei be-
nutzt werden.
G Importvereinbarungen für importierte Variablen.
G Deklarationen und Initialisierungen von Variablen, die in der SRC--Datei benutzt wer-
den.
G Vereinbarungen von Signal-- und Kanalnamen, die in der SRC--Datei benutzt werden.
G Deklarationen von Daten-- und Aufzählungstypen (Struc, Enum), die in der Datenliste
oder in der SRC--Datei benutzt werden.
PROG_1.SRC PROG_1.DAT
DEF PROG_1 ( )
… DEFDAT PROG_1 PUBLIC
HALT INT OTTO = 0
… ENDDAT
OTTO = 25
…
END
PROG_2.SRC
DEF PROG_2 ( )
IMPORT INT OTTO_2 IS /R1/PROG_1..OTTO
…
…
END
G Die Variable wird als “Globale Variable” deklariert z.B. DECL GLOBAL INT OTTO =
0 und ist jedem fremden Hauptprogramm ohne Importbefehl zugänglich.
Wenn eine globale Variable deklariert wurde ist es nicht möglich in einem fremden
Hauptprogramm den Namen der Variable zu ändern.
PROG_1.SRC PROG_1.DAT
DEF PROG_1 ( )
… DEFDAT PROG_1 PUBLIC
HALT DECL GLOBAL INT OTTO = 0
… ENDDAT
OTTO = 25
…
END
PROG_2.SRC
DEF PROG_2 ( )
…
…
END
Die Deklaration einer globalen Variable ist nur in Datenlisten zulässig, wird sie in SRC--
oder SUB--Files verwendet, erfolgt eine Fehlermeldung.
Weitere Informationen zur $CONFIG.DAT finden Sie im Kapitel [Variablen und Verein-
barungen], Abschnitt [Systemvariablen und Systemdateien].
10.1 VW_USR_R
Der Baustein VW_USR_R wird in den Roboter--Interpreter eingebunden und besitzt fol-
gende Unterprogramme:
Wenn ein USER--Befehl in der Punkt--SPS programmiert wurde, erfolgen beim Programm-
ablauf insgesamt 3 Aufrufe der Datei “VW_USR_R.SRC”. Diese Aufrufe erfolgen im KRL--
Kode und werden unter folgenden Bedingungen ausgeführt:
10.2 VW_USR_S
Der Baustein VW_USR_S wird in den Submit--Interpreter eingebunden und besitzt folgende
Unterprogramme:
Um den korrekten Ablauf des VW_USR_S Bausteins zu gewährleisten, dürfen keine An-
weisungen verwendet werden, welche die zyklische Abarbeitung des Submit--Interpreters
behindern können. Dazu zählen beispielsweise “Halt” und “Wait”.
Bei Syntaxfehlern in der Datei WV_USER.INI läßt sich das Inline--Formular nicht öffnen.
Vordefinierte Zeichenfolgen
Einer Nummer im Eingabefeld des Inline--Formulars wird eine bestimmte Zeichenfolge zuge-
ordnet. Für jede Zeichenfolge ist eine entsprechende Definition erforderlich.
[Hauptgruppe0]
Titel = Sample
Name = 1
[P1]
Visible = TRUE
Num1= Value-- 10
Num2= Value-- 15
[P2]
...
Im Inline--Formular die entsprechenden Einstellungen vornehmen.
1 2 3
Variable Zeichenfolgen
Die Eingabe einer Nummer im Inline--Formular erzeugt eine Zeichenfolge mit identischer
Zahl. Zu diesem Zweck wird der Platzhalter *n verwendet.
[Hauptgruppe0]
Titel = Sample
Name = 1
[P1]
Visible = TRUE
Num*n= Value-- *n
[P2]
...
1 2 3
Die Anzeige einer Zeichenfolge in Form einer Zuweisung ist ebenfalls möglich. Auch hier
wird der Platzhalter *n verwendet.
[Hauptgruppe0]
Titel = Sample
Name = 1
[P1]
Visible = TRUE
Num*n= X=*n [mm]
[P2]
...
Sample P1= 8 [Sample_1 X=8 [mm]]
(1) Hauptgruppen
(2) Untergruppen
(3) Parameter 1
(4) Auswahlliste für Parameter 1 ( num, i, bin, t, ana, anain, binin und p)
(5) Auswahlliste für Parameter 1 (vordefinierte Zeichenfolge)
(6) Parameter 7 mit Auswahlliste
(7) Zeichenfolge aus Titel, Name und Parametern
Abb. 68 Inline--Formular “USER”
[Hauptgruppe0] [Hauptgruppe1]
Titel = VW_USER Titel = Vision
Name = LIN_REL Name =
[P1] [P1]
Visible = True Visible = TRUE
Num*n=X=*n[mm] Num1=Muster1
i1 = Zaehler_1 Num2=Muster2
bin1 = Binaer_1 Num3=Muster3
ana1 = Analog_1 [P2]
[P2] Visible = TRUE
Visible = True num*n=Focus=*n [mm]
Num*n=Y=*n[mm] [P3]
[P3] Visible = FALSE
Visible = True [P4]
Num*n=Z=*n[mm] Visible = FALSE
[P4] [P5]
Visible = FALSE Visible = FALSE
[P5] [P6]
Visible = FALSE Visible = FALSE
[P6] [P7]
Visible = FALSE Visible = TRUE
[P7] EIN = Erweitert
Visible = TRUE AUS = Standard
EIN=APO
[GruppenEnde]
AUS=No APO
[GruppenEnde]
[Hauptgruppe2] [Untergruppe2]
Titel = Laser Name = Schweißen
[Untergruppe1] [P1]
Name = Schneiden Visible = TRUE
num*n=Leistung=*n [W]
[P1]
[P2]
Visible = TRUE
Visible = TRUE
num1=Geo1
num*n=Gas=*n [bar]
num2=Geo2
[P3]
num3=Geo3
Visible = TRUE
[P2]
num*n=Zeit=*n [ms]
Visible = TRUE
[P4]
num*n=Gas=*n [bar]
Visible = TRUE
[P3]
num*n=Vorschub=*n [mm/s]
Visible = TRUE
[P5]
num*n=Zeit=*n [ms]
Visible = FALSE
[P4]
[P6]
Visible = TRUE
Visible = FALSE
num*n=Abstand=*n [0.1mm]
[P7]
[P5]
Visible = FALSE
Visible = FALSE
[P6] [GruppenEnde]
Visible = FALSE
[GruppenEnde]
[P7]
Visible = TRUE
EIN = Sensor Ein
AUS = Sensor Aus
[GruppenEnde]
Mit Hilfe des USER--Bausteins werden einige Parameter übergeben, die anschließend im
Programm verarbeitet werden. Insgesamt stehen 7 Parameter zu Verfügung, die wie folgt
belegt werden sollen:
P1 Relativbewegung in X in [mm]
P2 Relativbewegung in Y in [mm]
P3 Relativbewegung in Z in [mm]
P4 Relativbewegung in A in [°]
P5 Relativbewegung in B in [°]
P6 Relativbewegung in C in [°]
P7 EIN = mit Überschleif, AUS = ohne Überschleif
[P4]
Visible = TRUE
Num*n=A=*n [Grad]
[P5]
Visible = TRUE
Num*n=B=*n [Grad]
[P6]
Visible = TRUE
Num*n=C=*n [Grad]
[P7]
Visible = TRUE
EIN = APO
AUS= No APO
[GruppenEnde]
Mit Hilfe des USER--Bausteins sollen jetzt drei Parameter numerisch übergeben werden.
Mit der dritten numerischen Zuordnung soll eine geometrischen Figur, hier Rechteck oder
Dreieck übergeben werden. Der erste Arbeitsschritt wäre die Änderung im
“VW_USER_R.SRC”. Dort erfolgen im Aufruf für den Hauptlauf folgende Änderungen bzw.
Deklarationen:
ny
nx
nx
ny
Abb. 69 Syntax der geometrischen Figuren. Para 6 wird mittels “Switch” programmiert.
Nachdem diese Änderungen erfolgt sind, öffnen Sie über den Navigator die Datei
“C:\ KRC\ Roboter\ init\ VW_User.ini”. Dort nehmen Sie folgende Eintragungen vor:
[Hauptgruppe0]
Titel = VW 1
Name = User
[P1]
Visible = TRUE 2
num*n=X=*n [mm] 3
[P2]
Visible = TRUE
num*n=Y=*n [mm] 4
[P3]
Visible = FALSE
[P4]
Visible = FALSE
[P5]
Visible = FALSE
[P6]
Visible = TRUE
num1=Rechteck 5
num2=Dreieck 6
[P7]
Visible = FALSE
[GruppenEnde]
(1) Definiert den Namen im Inline--Formular, im Beispiel “VW_User”.
(2) Visible=True zeigt die Parameter dieser Gruppe im Inline--Formular an.
(3) Übergibt für P1 die Zuordnung “X=” mit einem numerischen Wertebereich.
(4) Übergibt für P2 die Zuordnung “Y=” mit einem numerischen Wertebereich.
(5) Übergibt für P6 den ersten Parameter “Rechteck”. Hierzu im entsprechenden Feld “1” eintragen.
(6) Übergibt für P6 den zweiten Parameter “Dreieck”. Hierzu im entsprechenden Feld “2” eintragen.
Abb. 70 Einträge in “VW_USER.ini”
Der Anwendername des VW_USERS darf die Zeichen “öäü?ß%&‘~@°^’,.:” nicht ent-
halten
Nachdem diese Schritte durchgeführt wurden, können Sie Ihren definierten VW--User in ei-
ner Folge einbinden und mit Größeneingaben versehen. In der Punkt--SPS des Programms
wird der enstprechende Eintrag dargestellt:
1 LIN_rel X=100 [mm] Y=100 [mm] Rechteck
2 LIN_rel X=50 [mm] Y=100 [mm] Dreieck
Im Beispiel ist die erste Figur ein Rechteck mit einer Kantenlänge von 100mm. Die zweite
Figur ist ein Dreieck mit einer Grundlinie von 50mm und einer Höhe von 100mm.
Beispiel:
;FOLD Schleife <; %{PSE}%MKUKATPVW,%CUSER,%VEXPERT
WHILE $IN[24] FALSE
$OUT[35]=TRUE
WAIT SEC 0.024
$OUT[35]=FALSE
ENDWHILE
;ENDFOLD
G Das Öffnen eines Expertenfolds ist nur möglich, wenn die Benutzergruppe “Experte”
aktiv ist.
G Innerhalb des Expertenfolds dürfen keine weiteren FOLD--Strukturen geschachtelt
werden.
G Das Fold kann in Folgen, UPs und Makros verwendet werden.
G Das Einfügen von Expertenfolds vor der Anweisung “Warte auf Folgenstart” in eine
Folge ist untersagt.
G Durch geeignete Namensvergabe, Doppeldeklarationen vermeiden.
G Das Drücken des Softkeys “Ändern” hat keine Wirkung auf das Fold.
Zeichen Bewegungsanweisungen, 55
!--Zeichen, 107 binären Ein--/Ausgängen, 122
#--Zeichen, 34 Binärsystem, 26
Binden, 10
#BASE, 83
Bit--Operatoren, 45
#CONSTANT, 80
Blockkennung, 110
#INITMOV, 80, 83
BOOL, 25, 27
#JOINT, 81
BRAKE, 156
#PATH, 85, 86
#VAR, 80
$--Zeichen, 51 C
$ACC_AXIS, 63 CA, 88
$ANIN, 130 Call by reference, 142
$ANOUT, 130 Call by valu, 142
$CIRC_TYPE, 83, 84, 86 CHAR, 25
$CYCFLAG, 159 Character, 27
$DIGIN, 135 CONTINUE, 92
$ORI_TYPE, 80, 86 COS(X), 48
$PRO_MODE, 14 Cosinus , 48
$SINGUL_POS[3], 75, 76 CSTEP, 14
$STROBE, 135
$VEL_AXIS, 63 D
Dateikonzept, 8
A Dateiliste, 9
Dateistruktur, 9
a1--Stellung, 74
Datenliste, 9
a2--Stellung, 75
Datentyp, 23
a5--Stellung, 76
DEF, 9
ABS(X), 48
DEF--Vereinbarung, 137
Achsspezifisches Koordinatensystem, 55
DEFAULT, 110
ACOS(x), 48
DEFDAT, 171
Aggregate, 32
Deklaration, 23
ANIN, 133
DIG, 46
Anweisung, 9
DIGIN ON , 135
Anweisungsteil, 9
DISABLE, 150
Arcuscosinus, 48 Distanzkriterium, 97
Arcussinus, 49 Dreidimensionale Felder, 30
Arcustangens, 49 Dreidimensionales Feld, 30
ATAN2(Y,X), 48
Aufzählungstypen, 34
E
Ausblenden von Bits, 46
Editieren, 10
Eindimensionales Feld, 28
B ENABLE , 150
Bahnbezogene Orientierung, 85 END, 9
Basis--Koordinatensystem, 60 ENDFOLD, 12
Basisbezogene Interpolation, 60 ENDSWITCH, 110
Betrag, 48 ENDWHILE, 114
Index -- i
Index
ENUM, 34 Kreisbewegungen, 88
EXIT, 116 Kreiswinkel, 88
KRL--Funktionsaufruf, 175
F
L
Feldindex, 28
Lebensdauer, 22
Feststehendes Werkzeug, 61
Linearbewegungen, 87
Flags, 51
Logische Operatoren, 44
FOLD, 12
Lokale Datenlisten, 171
Frameverknüpfung, 39
Lokale Unterprogramme / Funktionen, 139
Funktionen, 9
LOOP, 116
G M
Geometrische Datentypen, 34 Mathematische Standardfunktionen, 48
Geschwindigkeitskriterium, 97 Mechanische Grundstellung, 65
GLOBAL, 173 Mechanische Nullstellung, 65
Globale Datenlisten, 172 Mehrdeutige Roboterkinematiken, 71
Globale Variable, 173 Mehrdeutigkeiten , 71
Go, 14 MSTEP, 14
Greiferbezogene Interpolation, 61
O
H Orientierungsführung, 80
Handachsensingularität, 76 Orientierungskriterium, 97
Handwurzelpunkt, 74
Hexadezimalsystem, 26 P
Höheres Fahrprofil, 64 Parameterliste, 142
Parameterübergabe, 175
I Prioritäten, 47, 151
Programmablaufart, 14
IF--Anweisung, 109
PSTEP, 14
Initialisierung, 24
PTP, 63
INT, 25 PTP--Bahnüberschleifen, 102
Integer, 25 PUBLIC, 172
INTERRUPT OFF, 150 PULSE, 127
INTERRUPT ON, 150 Punkt--Separator, 32
Interrupts, 147 Punkt--zu--Punkt Bewegungen, 63
ISTEP, 14
R
K Raumbezogene Orientierung, 83
Kartesisches Koordinatensystem, 57 REAL, 25, 27
Kinematische Kette, 61, 62 REPEAT, 115
Kommentare, 17 RESUME, 157
Kompilieren, 10 Roboter--Koordinatensystem, 60
konstant + bahnbezogen, 85
Konstante bzw. variable Orientierung, 80 S
Index -- ii
Index
Satzkoinzidenz -- SAK, 70 W
Schlüsselwort, 95
WAIT, 118
Schlüsselworte, 98
WAIT SEC, 118
SIGNAL, 122
SIN(X), 48 Welt--Koordinatensystem, 59
Singularitäten, 74 Werkzeug--Koordinatensystem, 60
Sinus, 48 Werkzeugwechsel, 106
Sprunganweisung, 109 WHILE, 114
SQRT(X), 48 Wurzel, 48
Status, 70
Strecklage, 75
SWITCH--Anweisung, 110 Z
Synchron--PTP, 63 Zweidimensionale Felder, 29
Zweidimensionales Feld, 29
T Zyklische Flags, 51
TAN(X), 48
Tangens, 48
Timer, 50
Tool Center Point, 63
TRIGGER, 161
Turn, 70
U
Überkopf--Singularität, 74
Überschleif Bahn -- PTP, 103
Überschleif PTP -- Bahn, 102
Überschleifbeginn LIN--LIN, 97
Überschleifbeginn PTP--PTP, 95
Überschleifkontur, 94
Unterprogramme, 9
USER, 175
USER--Block, 187
V
variabel + bahnbezogen, 85
Vereinbarung, 9
Vereinbarung von Aufzählungstypen, 34
Vereinbarungsteil, 9
Vergleichsoperatoren, 43
Vordefinierte Datenlisten, 52
Vordefinierte Strukturen, 33
Vorlaufstop, 92
VW_USR_R, 175
VW_USR_S, 176
Index -- iii
3 Applikationen
SOFTWARE
VKR C...
Applikationen
1 Servozange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 Systemstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Funktionsprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Schweißprozeß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Inbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 Konfiguration SERVO GUN Tech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1.1 Informationszeile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1.2 Laden und Sichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1.3 Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1.4 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.2 Zangenparameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.3 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.4 Eingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.5 Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3.6 Zangenarmdurchbiegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.7 Erstellen der Schweißprogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.8 Justage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.9 Kraftkalibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.9.1 Kraftmesser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.9.2 Kalibrierung (VW_CAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3.9.3 Überprüfung der Kraftkalibrierung (VW_FORCE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3.9.4 Durchbiegungskennlinie (VW_FLEX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4 Bedienung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4.1 Manuelle Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4.1.1 Konfigurieren der Schweißzange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4.1.2 Öffnen und Schließen der Zange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4.1.3 Eingabe von Programmnummern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.4.1.4 Positionskontrolle der Servozange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.4.1.5 Fahren ohne Bauteil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.4.1.6 Fahren ohne Strom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.4.2 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.3.3 Steckerbelegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.3.4 LED--Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.3 Dateien für VW_USER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4 Projektierung von Variablen, Eingängen und Ausgängen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.1 Eintrag der MACID in die Datei DEVNET.INI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.2 E/A--Schnittstelle zum CAN--Conveyor--Modul -- IOSYS.INI . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.3 Digitaleingang $DIGIN1 -- $MACHINE.DAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.4 Roboter arbeitet Programm ab -- $PRO_ACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.5 Roboterüberwachung innerhalb Conveyor--Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.4.6 Menügeführte Variablen--Anzeige und Wertzuweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.5 Inbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5.1 Vermessung der Conveyorbasis -- BASE_CONV[1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5.2 Beziehung Zählerwert Inkrementalgeber -- Kettenweg -- CAL_DIG[1] . . . . . . . . . . . . . . . . . . 49
2.6 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.6.1 Befehlseingabe VW_USER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.6.1.1 VW_USER--InLine--Formular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.6.1.2 Parameter P1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6.2 Teachen der Bewegungen im Conveyor--Bereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.6.3 Nachteachen von Punkten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.7 Fehlersituationen und Fehlerbeseitigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.7.1 Roboterstörung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.7.2 Fehlerdiagnose und Fehlerbeseitigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.7.2.1 Roboter wartet auf Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.7.2.2 Kette steht, Roboter nicht im Conveyor--Profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7.3 Meldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3 Lastdatenermittlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.1 Funktionsbeschreibung, Programminstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.1.1 Systemvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.1.2 Funktionsbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.1.3 Programm--Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.1.4 Zusätzlicher Menüpunkt “Lastdatenermittlung” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2 Bedienoberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.2.1 Meßprogramm “MassIden.exe” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.2.2 Funktionen der Status-- und Softkeys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3 Konfigurieren des Meßvorgangs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.1 Auswahl des Roboters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.2 Vorhandene Datei laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.3.3 Bewegungsbereiche der Achsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.3.3.1 Konfigurieren der Bewegungsbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.3.4 Prüfung der Achsbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3.5 Werkzeugart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3.6 Speicherung der Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4 Durchführung der Lastdatenermittlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4.1 Start der Lastdatenermittlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4.1.1 Masse der Traglast automatisch ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.4.1.2 Masse der Traglast manuell eintragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.4.2 Ausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.4.3 Durchführung einer Testfahrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
1 Servozange
1.1 Einführung
Die Technologie “SERVO GUN TECH” ermöglicht die Steuerung einer “Elektromotorischen
Punktschweißzange”. Dieses Technologiepaket ist vollständig in die Steuerungssoftware
der (V)KR C... --Robotersteuerung eingebunden.
1.1.1 Installation
Die Software Release 5.3 enthält alle für den Betrieb einer Servozange benötigten Pro-
gramme, jedoch nur die Maschinendaten des Roboters wie sie vor dem Upgrade (z. B. von
V1.4) vorhanden waren.
Für die Zusatzachse der Servozange werden die Maschinendaten nicht automatisch
geändert. Die Aktivierung der Zusatzachse erfordert ein Setup.
Den Typ einer installierten Servozange können Sie über die Versions--Info in Erfahrung
bringen. Drücken Sie hierzu den Menükey “Hilfe” und wählen die Option “Version” aus.
Servozangentyp
Nach dem Setup sind die Standard Maschinendaten für Servozangen der Fa. ARO und Fa.
MFG geladen. Für Inbetriebnahme-- und Versuchszwecke können Servozangen der Firmen
ARO und MFG grundsätzlich mit diesen Daten verfahren werden. Die Möglichkeit der Ver-
wendung von Servozangen anderer Hersteller erfragen Sie bitte bei KUKA GmbH.
Dabei bedeutet:
E1: 1. Zusatzachse bzw. 7. Roboterachse
E2: 2. Zusatzachse bzw. 8. Roboterachse.
Wählen Sie die entsprechende Zange und Zusatzachse aus und klicken Sie auf “Weiter”.
1.1.2 Systemstart
Nach der Installation steht das zusätzliche Verzeichnis “ServoGun” zur Verfügung.
Die einzelnen Programme im Verzeichnis “ServoGun” haben folgenden Funktion:
Programm Funktion
VW_CAL Kraftkalibrierung der Zange
VW_FLEX Ermittlung der Durchbiegungskennlinie
VW_FORCE Überprüfung der Kraftkalibrierung für die Zange
1.2 Grundlagen
Dieses Kapitel enthält zusätzliche technische Informationen über das SERVO GUN--Tech-
nologiepaket.
1.2.1 Funktionsprinzip
Der Antrieb der Servozange wird im Programmbetrieb als synchrone, im Handbetrieb als
asynchrone Zusatzachse (7. oder 8. Achse) behandelt.
Der Zangenantrieb erzeugt die zur jeweiligen Schweißung erforderliche Kraft. Hierzu wird
der Antrieb der Zange über eine Strombegrenzung betrieben, die entsprechend der gefor-
derten Schweißkraft automatisch eingestellt wird.
Strombegrenzung
Stromverlauf während
des Momentenbetriebs
1.2.2 Schweißprozeß
Eine Schweißung besteht aus einer Abfolge von Bewegungen, die in den nachfolgenden Ab-
bildungen verdeutlicht werden.
Als erstes wird der Schweißpunkt “P_Spot” geteacht. Dieser Punkt kann mit Genauhalt an-
gefahren oder optional überschliffen werden.
P1 PTP P3 PTP
P2 Spot
P1PTP P3 PTP
P2 Spot
Abb. 3 P_Spot
Anschließend wird die Zange auf Schweißspaltdicke geschlossen, indem der Punkt “P_Part”
senkrecht angefahren wird.
P1 PTP P3 PTP
P2 Spot
P Part
Abb. 4 P_Part
Die Zange drückt die einzelnen Bauteile zusammen, bis die eingestellte Schweißkraft er-
reicht ist. Diese Kraft im Punkt “P_WELD” wird solange gehalten, bis das Schweißendesi-
gnal anliegt.
P1 PTP P3 PTP
P2 Spot
PWeld
Abb. 5 P_Weld
Nachdem der Strom der siebten Achse seinen vorgegebenen Sollwert erreicht hat, und die
Zange somit zum Stillstand gekommen ist, gibt der Schweißtimer das Schweißstartsignal.
Schweißstart Schweißstart
t t
Abb. 6 Schweißstart
Nach dem Schweißendesignal des Schweißtimers fährt die Zange wieder auf die Position
“P_Spot”. Dieser Punkt kann wieder per Genauhalt oder Überschleif angefahren werden.
P1 PTP P3 PTP
P2 Spot
Abb. 7 P_Spot
P1 PTP P3 PTP
P2 Spot
Der Motorstrom und die Drehzahl der 7. Achse verhalten sich während des Vorgangs wie
im unteren Diagramm dargestellt:
Schweißstartsignal
P_Spot P1
Schweißendesignal
Kraft
F5
F4
F3
F2
F1
Strom
I1 I2 I3 I4 I5
Abb. 10 Kraftkennlinie
1.3 Inbetriebnahme
Neben dem Einrichten der Applikationssoftware müssen zum Betrieb verschiedene, soft--
und hardwarespezifische Einstellungen vorgenommen werden.
Nach kurzer Ladezeit öffnet sich die erste Seite der Servozangenkonfiguration. Dabei wer-
den die auf der Festplatte vorhandenen Applikationsdaten eingelesen.
1.3.1.1 Informationszeile
Als Titel wird die Bezeichnung der jeweils aktiven Seite angezeigt.
Softkey Bedeutung
Laden Diskette Parameterdaten von der Diskette in Laufwerk A:\ einlesen. Dies
kann eine vom Zangenhersteller mitgelieferte oder eine vom An-
wender über den Menüpunkt “Speichern Diskette” erstellte Dis-
kette sein.
Speichern Diskette Parameterdaten auf die Diskette in Laufwerk A:\ sichern. Die Be-
schreibung der Zange sowie das aktuelle Datum werden eben-
falls gespeichert.
Laden Die zuletzt gesicherten Parameterdaten der Zange von der Fest-
platte laden.
Speichern Parameterdaten der Zange auf die Festplatte speichern. Die Be-
schreibung der Zange sowie das aktuelle Datum werden eben-
falls gesichert.
Beim Sichern werden nur die Daten des jeweils aktiven Displays gesichert.
1.3.1.3 Displays
Die folgenden Seiten stehen für die Konfiguration der Servozange zur Verfügung, welche
über die Symbole am unteren Rand des aktuellen Displays angewählt werden können.
64 -- 127:
Wertzuweisung von Programmnummern zum Setzen von Schweißpunkten.
Eingänge:
Weisen Sie den jeweiligen Funktionen die entsprechenden Eingänge zu.
Zangenarmdurchbiegung:
Auf dieser Seite erfolgt die Anzeige der Durchbiegungskennlinie, welche über das Pro-
gramm “VW_FLEX” ermittelt oder über eine Diskette des Zangenherstellers eingelesen
wurde. Änderungen sind nur auf Expertenebene möglich.
Ausgänge:
Weisen Sie den jeweiligen Funktionen die entsprechenden Ausgänge zu.
Konfiguration:
Hier können weitere Einstellungen für Timer-- und Zangentyp, Stoßrichtung, Kraftmesser,
Kraftkalibrierung und Kappenkontrolle festgelegt werden.
Zangenparameter:
Hier können die Zangenparameter wie PTP-- und LIN--Bewegungen, Motorparameter, Mo-
tor--Zange, Kraftkalibrierung sowie Maximalwerte abgelesen werden. Änderungen sind auch
hier nur auf Expertenebene möglich.
Beenden:
Die Zangenkonfiguration wird beendet.
Zange1
Dieses Symbol ersetzt automatisch das Symbol des jeweils aktuellen Displays. Es zeigt im-
mer die Nummer der gerade aktuellen Servozange an.
Wurden Daten im aktuellen Display verändert, erfolgt beim Umschalten auf ein anders Dis-
play bzw. beim Beenden eine Sicherheitsabfrage.
1.3.1.4 Navigation
Verwenden Sie zum Auswählen der einzelnen Eingänge die Cursor--Tasten “#” bzw. “"” auf
dem KCP.
Innerhalb eines Auswahlmenüs können Sie mit den Cursor--Tasten “z” bzw. “!” die einzel-
nen Einträge durchblättern.
Bei Optionsfeldern bewegen Sie zunächst den Fokus auf die gewünschte Option und drük-
ken anschließend die Leertaste.
Ziffern geben Sie über den Nummernblock des KCP ein. Die Cursor--Steuerfunktionen müs-
sen hierfür deaktiviert sein. Sollte das nicht der Fall sein, drücken Sie die “NUM”--Taste.
1.3.2 Zangenparameter
Die zangenspezifischen Daten können über diese Seite eingesehen bzw. verändert werden.
Nach dem Aufruf des Displays werden die auf der Festplatte hinterlegten Daten automatisch
eingelesen.
Für Änderungen an den Parametern muß auf die Expertenebene gewechselt werden.
Für Schäden die aufgrund falscher Einstellungen auftreten, wird keine Haftung
übernommen!
1.3.3 Konfiguration
Innerhalb dieses Displays können Sie Änderungen an zusätzlichen Einstellungen vorneh-
men.
Besitzen Sie eine Diskette mit den Zangenparametern (beispielsweise vom Zangenherstel-
ler oder einer vorhandenen Sicherheitskopie), legen Sie diese in das Diskettenlaufwerk ein
und laden die erforderlichen Daten.
Timer Typ
Stellen Sie hier den von Ihnen verwendeten Timer ein.
ARO: ARO--Schweißtimer
Bosch: Bosch--Schweißtimer
Fase: Fase--Schweißtimer
Serra: Serra--Schweißtimer
Zangen Typ
In diesem Auswahlfeld geben Sie den Typ der am Roboter befestigten Zange an.
X: X--Zange
C,G,J: C--Zange
TCP Stoßrichtung
Geben Sie die Richtung des vorher vermessenen TCP an, welche mit dem Werkzeug--Koor-
dinatensystem zusammenhängt. Jeder Eintrag besteht aus einem Vorzeichen und einem
Buchstaben, welche jeweils folgende Bedeutung haben:
Arbeitsrichtung
Office--PC
In dieser Version nicht implementiert
TCP--Korrektur
In dieser Version nicht implementiert
Kraftmesser
Geben Sie die Dicke des Kraftmessers an dieser Stelle ein.
Kraftkalibrierung
Tragen Sie hier die mit dem Programm “VW_CAL” ermittelten 5 Meßwerte ein.
Kappenkontrolle
Mit dieser Funktion können abgezogene Kappen erkannt werden. Das System mißt nach
dem Kraftaufbau die Öffnungsweite der Zange. Wurde die Zange geschlossen und eine oder
beide Kappen fehlen, wird eine entsprechende Meldung im Meldungsfenster ausgegeben.
Für Schäden die aufgrund falscher Einstellungen auftreten, wird keine Haftung
übernommen!
1.3.4 Eingänge
Mit Hilfe dieses Displays verknüpfen Sie Funktionen mit bestimmten Eingängen.
Besitzen Sie eine Diskette mit den erforderlichen Parametern (beispielsweise von einem an-
deren, identischem Robotersystem), legen Sie diese in das Diskettenlaufwerk ein und laden
die erforderlichen Daten.
1.3.5 Ausgänge
Mit Hilfe dieses Displays verknüpfen Sie Funktionen mit bestimmten Ausgängen.
Besitzen Sie eine Diskette mit den erforderlichen Parametern (beispielsweise von einem an-
deren, identischem Robotersystem), legen Sie diese in das Diskettenlaufwerk ein und laden
die erforderlichen Daten.
1.3.6 Zangenarmdurchbiegung
Hier können Sie die Durchbiegungswerte des Zangenarms bei bestimmten Kraftwerten able-
sen, welche über das Programm “VW_FLEX” ermittelt wurden. Die Werte werden in [mm]
ausgegeben.
Besitzen Sie eine Diskette mit den erforderlichen Parametern (beispielsweise vom Zangen-
hersteller oder einer vorhandenen Sicherheitskopie), legen Sie diese in das Diskettenlauf-
werk ein und laden die erforderlichen Daten. Ansonsten müssen Sie das Programm
“VW_FLEX” ausführen.
Diese Funktion dient dem Erstellen von Schweißprogrammen, beginnend bei Programm-
nummern 0, bis 255. Dieser Bereich ist in vier Teilbereiche unterteilt:
0 -- 63, 64 -- 127, 128 -- 191 und 192 -- 254
Die Umschaltung zwischen den Bereichen erfolgt mittels Softkey.
Wenn eine Kraft konfiguriert ist, so ist immer als Materialdicke ein Wert > 0.0 einzutragen,
da sonst das gesamte Schweißprogramm nicht gespeichert werden kann!
Die Materialdicke (Schweißspaltdicke) setzt sich aus allen zu schweißenden Bauteilen zu-
sammen. Die nachfolgende Illustration soll dies verdeutlichen:
Schweißspaltdicke = 6,5mm
3,0 1,5 2,0
6,5
Abb. 11 Schweißspaltdicke
Im Feld “Kraft” wird die Zangenkraft in daN (DekaNewton) eingegeben. Die Navigation zwi-
schen den Eingabefeldern erfolgt in gewohnter Weise mit den Cursor--Tasten.
Vergessen Sie nicht, die Daten auf Festplatte abzuspeichern und nach Möglichkeit Sicher-
heitskopien auf Diskette zu erstellen.
Besitzen Sie eine Diskette mit den erforderlichen Parametern (beispielsweise eine vorhan-
dene Sicherheitskopie), legen Sie diese in das Diskettenlaufwerk ein und laden die erforderli-
chen Daten.
1.3.8 Justage
Der Einsatz eines zyklisch absoluten Meßsystems mit Resolvern erfordert eine Justage, die
in folgenden Situationen durchzuführen ist:
-- Inbetriebnahme des Systems
-- Wechsel des Zangenantriebs
-- Bewegung einer Achse bei unterbrochener Resolverleitung
-- Justageverlust
Stellen Sie mit dem Statuskey auf der linken Displayseite die Verfahrart “Handver-
fahren” ein. Betätigen Sie dazu so oft den Statuskey, bis das entsprechende Symbol
erscheint.
Wählen Sie anschließend die externe Zusatzachse zum Verfahren aus. Der Status-
key zum Umschalten befindet sich auf der rechten Seite des Displays, direkt unter
dem Statuskey für den Programmoverride (POV). Drücken Sie den Statuskey so oft,
bis das Motorsymbol für die externe Achse erscheint.
Betätigen Sie den Menükey “Inbetriebn.” und wählen Sie daraus den Befehl [Justage > Uhr]
an.
Daraufhin öffnet sich das Zustandsfenster zur Justage der Achsen.
Wird die gewünschte externe Achse nicht zur Auswahl angeboten, muß diese zuerst deju-
stiert werden. Dazu dient der Befehl “Dejustieren”, den Sie ebenfalls über den Menükey
“Inbetriebn.” erreichen.
Halten Sie nun eine der Zustimmtasten gedrückt und fahren die Zange bis zur Elek-
trodenberührung zusammen. Benutzen Sie hierfür die +/-- --Taste neben dem Sym-
bol “E1” bzw. “E2”, die sich auf der rechten Seite des Displays befindet.
Die Zange darf nur soweit geschlossen werden, daß sich die Elektroden berühren. Auf kei-
nen Fall darf die Zange angespannt werden.
Softkey Bedeutung
Justiere Betätigen Sie den Softkey “Justiere” um die Daten zu speichern.
Der Eintrag “externe Achse ...” wird daraufhin aus dem Justage--
Formular entfernt.
Das Justageergebnis kann durch Anzeige der achsspezifischen Istwerte kontrolliert werden.
Rufen Sie dazu das entsprechende Zustandsfenster auf, indem Sie den Menükey “Anzeige”
drücken und den Befehl [Istposition > Achs--Spezifisch] ausführen. Durch wiederholtes
Drücken der Cursor--Taste “#” können Sie anschließend den Achswinkel für die siebte Achse
(E1) einsehen.
1.3.9 Kraftkalibrierung
Die Kalibrierung der Kraft, mit der die Zange arbeitet, muß bei jeder Inbetriebnahme durch-
geführt werden. Mit Hilfe der ermittelten Kraftkennlinie kann das System von diesem Zeit-
punkt an mit einem vorgegebenen Kraftsollwert den entsprechenden zangenspezifischen
Motorstromsollwert errechnen, welchen die Steuerung braucht um die notwendige Kraft zu
erzeugen.
Der Kraft--Übersetzungsfaktor hängt von der mechanischen Übersetzung des Antriebs, der
Zange und den zugehörigen Wirkungsgraden ab. Die Übersetzungen sind zwar mathema-
tisch exakt erfaßbar, jedoch variieren die Reibungsverluste von Zange zu Zange. Eine Be-
rechnung der entsprechenden Werte scheidet daher aus.
1.3.9.1 Kraftmesser
Vor der Messung muß zunächst die Dicke des Kraftmessers mit Hilfe des Roboters ermittelt
werden.
Abb. 12 Kraftmesser
Elektronische Kraftmesser dürfen nicht verwendet werden, da sie durch den Zangenmotor
gestört werden können.
Vergewissern Sie sich, daß die Verfahrart “Handverfahren mit den Verfahrtasten” ak-
tiviert ist. Verfahren Sie die Zange anschließend an die gewünschte Position.
Aktivieren Sie zum Öffnen bzw. Schließen der Zange die externe Zusatzachse, in-
dem Sie den entsprechenden Statuskey drücken.
Stellen Sie eventuell den Handoverride auf einen niedrigen Wert ein, damit Sie die
Dicke des Kraftmessers genauer bestimmen können. Halten Sie einen der Zustimm-
taster gedrückt und schließen die Zange nun über den Statuskey “E1” soweit, daß
der Kraftmesser noch zwischen die Elektroden geschoben werden kann.
Legen Sie den Sensor zwischen den Elektroden ein, und schließen vorsichtig die Zange so-
lange, bis der Kraftmesser zu reagieren beginnt. Öffnen Sie nun die Zange soweit, bis der
Kraftmesser wieder den Wert “0” anzeigt.
Das Ergebnis kann durch Anzeige der achsspezifischen Istwerte abgelesen werden. Rufen
Sie dazu das entsprechende Zustandsfenster auf, indem Sie den Menükey “Anzeige” drük-
ken und den Befehl [Istposition > Achs--Spezifisch] ausführen. Durch wiederholtes Drük-
ken der Cursor--Taste “#” können Sie anschließend den negativen Achswinkel für die siebte
Achse (E1) einsehen.
Der Achswinkel wird negativ angezeigt, da die Zange gegenüber ihrer Justageposition ge-
öffnet ist.
Der Wert der Kraftmesserdicke muß dem System mitgeteilt werden. Drücken Sie zu diesem
Zweck den Menükey “Inbetriebn.” und wählen den Befehl “Servo--Zange” aus.
Verwenden Sie die Cursor--Tasten “#” bzw. “"”, um im Abschnitt “Kraftmesser” den Eintrag
“Dicke” auszuwählen. Geben Sie den abgelesenen positiven Wert in [mm] ein.
Sichern Sie die Änderungen und beenden Sie anschließend das Konfigurationstool.
In der Praxis hat sich hier eine Mittelwertbildung aus 3 Meßreihen bewährt.
Rufen Sie erneut das Display “Konfiguration” auf und tragen die notierten Meßwerte im Ab-
schnitt “Kraftkalibrierung” ein. Die Maßeinheit hierbei ist das daN (DekaNewton: 1 KiloNew-
ton = 100 DekaNewton).
Hierzu wird der Kraftmesser zwischen die Schweißelektroden gehalten (Zangenöffnung ca.
zweifache Kraftmesserdicke) und über die Softkeyleiste eine der angebotenen Kräfte ausge-
wählt.
Die angezeigte Wert auf der Kraftmeßdose sollte dem ausgewählten Wert entsprechen. Ist
die Abweichung höher als +/-- 10 Prozent, so ist erneut eine Kraftkalibrierung durchzuführen.
Zu diesem Zweck rufen Sie das Programm “VW_FLEX” (im Verzeichnis .../R1/ServoGun)
auf.
Wählen Sie hierzu die Betriebsart “SStep T2” und einen Override von 100 Prozent. Anson-
sten erscheint eine entsprechende Fehlermeldung. Die Zange sollte etwa 40mm geöffnet
sein, da der gemessene Wert für die Durchbiegung unter anderem von der Aufprallge-
schwindigkeit der Elektrodenkappen abhängt.
Nach dem Start des Programms schließt und öffnet sich die Zange mehrmals, um die Durch-
biegungskennlinie zu ermitteln. Bei jeder Schließung der Zange wird die Kraft um jeweils
25daN erhöht. Das Programm läuft so lange, bis die eingestellte maximale Kraft erreicht ist.
1.4 Bedienung
1.4.1 Manuelle Funktionen
Für alle hier beschriebenen Funktionen muß sich die Steuerung in der Betriebsart
“SStep(T1)” oder “SStep(T2)” befinden. Außerdem muß zum Ausführen einer Funktion der
Zustimmungstaster gedrückt gehalten werden, da sonst die entsprechenden Symbole deak-
tiviert sind.
Alle beschriebenen Funktionen können auch bei angewähltem Programm ausgeführt wer-
den, wobei sich das Programm im gestoppten Zustand befinden muß. Bei erneutem Start
des Programms findet zuerst ein Zurückpositionieren statt, bevor das Programm wiederan-
läuft.
Verfahrtasten
Vergewissern Sie sich, daß die Verfahrart “Handverfahren mit den Ver-
fahrtasten” sowie die externe Zusatzachse aktiviert sind.
Hierfür dienen die Statustasten “+” bzw. “--” neben der Achsverfahrtaste “E1” bzw. “E2”.
Statuskeys
Alternativ kann die Zange über die Statuskeys auf der linken Seite geöffnet
bzw. geschlossen werden. Die Zange muß zu diesem Zeitpunkt bereits
konfiguriert worden sein.
Halten Sie einen der Zustimmtaster gedrückt und vergewissern Sie sich,
daß die richtige Zange aktiviert ist. Betätigen Sie anschließend Satuskey
für die entsprechende Funktion.
Öffnen der Zange auf die Po- Schließen der Zange und Auf-
sition vor dem Schweißen bau der eingestellten Kraft
1.4.2 Programmierung
Schweißpunkte werden üblicherweise als PTP--Bewegung programmiert, wobei unter Um-
ständen überschliffene Zwischenpunkte benötigt werden. Die zeitliche Abfolge einer
Schweißung sieht in etwa folgendermaßen aus:
Öffnungsweite
P1 P3
P2Spot P2Spot
PPart PWeld PWeld
Schweißzyklus
Zur Programmierung eines Schweißpunkts sind nur die Punkte “P1”, “P2” sowie “P3” not-
wendig. Die anderen Arbeitsschritte werden automatisch von der Steuerung ausgeführt.
P1 P3
P2 (Schweißpunkt)
“P1” stellt den letzten Punkt vor dem eigentlichen Schweißpunkt dar, der beispielsweise als
PTP--Befehl programmiert wird. Der Schweißpunkt “P2” wird geteacht, während “P3” im Bei-
spiel wieder als PTP--Befehl eingegeben wird.
Positionieren Sie mit Hilfe der Handverfahrtasten die Zange über den Schweißpunkt. Die
feststehende Elektrode darf maximal 5mm von der Position, an welcher der Schweißpunkt
gesetzt werden soll, entfernt sein. Die bewegliche Elektrode muß mindestens 3mm Abstand
zum Blech haben.
²3mm
bewegliche Elektrode
±5mm
feststehende Elektrode
Nachdem die Punkte “P1”, “P2” und “P3” eingegeben und die entsprechende Programmzeile
ausgeführt wird, berechnet die Steuerung automatisch die Punkte “PBauteil” und “PDruck”.
“PBauteil” ergibt sich dabei aus der Dicke aller im Schweißspalt befindlichen Bauteile, wäh-
rend “PDruck” aus der Schweißkraft resultiert.
Die Bewegungsreihenfolge ist “P1” ! “P2” ! “PPart” ! “PWeld” ! “P2” ! “P3”.
P3
P1
P2
PPart
PWeld
Roboterbewegung
NOTIZEN:
2.1.2 Funktionsbeschreibung
Für den Conveyor--Betrieb wird die Conveyor--Position erfaßt und die entsprechenden Da-
ten an die Roboter--Steuerung übergeben. Aus diesen Daten errechnet die Steuerung die
Transformation, um den Roboter synchron mitzuführen.
P1
Kettenlauf--
richtung
Start-- Zielpunkt P2
punkt
IR
Das Programm “VW_USER” verfügt über mehrere CASE--Zweige sowie lokale Unterpro-
gramme. Daneben werden auch externe Programme aufgerufen.
Spannungs-- PM6
XA20 versorgung (PM10)
MFC1.08
ST1 ST3
X801 X962
CAN--Conveyor--Modul
extern 71--052--234
ST4 ST6
71--052--219
X962.1
LED 7
HEALTH LED 8 (nicht benutzt)
LED 9 LED 10 (nicht benutzt)
COMMUNICATION
LED 11 LED 12 S1 S2 S3
5V 24V LED 5V 24V
LED
SYNC SYNC 8 7 6 5 4 3 2 1
13 14 15 16
ON
ST4 1 ST5 1 ST6 1 ST7 1
Achten Sie bitte darauf, daß aus Gründen der elektromagnetischen Verträglichkeit (EMV)
Schirmungen von in den Roboter--Steuerschrank führenden Leitungen an der Stelle der
Einführung HF--gerecht an Masse zu legen sind. Durch diese Maßnahme soll sicherge-
stellt werden, daß Störspannungen auf dem Leitungsschirm nicht oder nur ausreichend
abgeschwächt in den Steuerschrank gelangen können.
2.2.3.3 Steckerbelegung
Stecker ST1 -- DeviceNet
Pin Signal
1 CAN_GND (Input)
2 CAN_LOW
3 Shield_CAN
4 CAN_HIGH
5 CAN_Supply (+24 V)
Pin Signal
1 +24 V (Input)
2 Shield
3 GND
Pin Signal
1 Sync Bei VW_USER wird nur ST4 ange-
ange
2 OUT +24 V schlossen. ST5 bleibt unbenutzt.
3 GND
Die Versorgung des Initiators (oder Lichtschranke) erfolgt über Pin 2 (24 V Gleichspannung)
und Pin 3 (Masse). Der Ausgang des Initiators wird an Pin 1 angeschlossen.
Pin Signal
1 IN Encoder_A
2 IN Encoder_B Beii VW_USER
B VW USER wird
i d nur ST6 ange-
schlossen. ST7 bleibt unbenutzt.
3 Supply Encoder (+5 V bzw. +24 V)
4 GND
Die Spannungsversorgung der Encoder ist mittels der Schalter S2 und S3 zwischen den
Werten +5 V oder +24 V schaltbar. Die Encoder--Eingänge (Signale vom Inkrementalgeber)
erfolgen an Pin 1 und 2.
2.2.3.4 LED--Anzeigen
Nachfolgende Tabelle enthält eine Übersicht der LED--Anzeigen. Die fettgedruckten LED--
Nummern kennzeichnen die bei VW_USER verwendeten Anzeigen.
Verzeichnis ...\PROGRAMME\KRC\POWERON\R1
$CONFIG.DAT
VW_USR_R.SRC
VW_USR_R.DAT
FOLGE20 zur Vermessung der Conveyor--Basis
FOLGE30 für Test der Variablen “CAL_DIG[1]”
Verzeichnis ...\PROGRAMME\KRC\INIT
DEFNET.INI
IOSYS.INI
Verzeichnis ...\PROGRAMME\KRC\MADA\STEU
$MACHINE.DAT
Synchronfahrt nicht
($OUT[158])
Vorhaltezeit
T_RET[1] 0.35 Ausgleich des Versatzes zwischen stehender (während
des Teachen) zu bewegter Kette.
Conveyor--Projektierung
CANNEL_NO[1] 4
Der Wert “4” darf nicht verändert werden!
2.5 Inbetriebnahme
2.5.1 Vermessung der Conveyorbasis -- BASE_CONV[1]
Nachfolgende Prinzipskizze zeigt die Reihenfolge der Vermessung eines Linearconveyors:
IR IR IR
1. Meßpunkt 2. Meßpunkt 3. Meßpunkt
Zur Ermittlung der Conveyorbasis wurde in der Datei “VW_USER.SRC” das Unterprogramm
“VERMESS” (CONVEYOR BASE--VERMESSUNG 6D für Linear--Conveyor) integriert, wel-
ches während des Programmablaufs der Folge 20 aufgerufen wird. Verfahren Sie beim Pro-
grammablauf entsprechend den im Meldungsfenster erscheinenden Hinweise und Meldun-
gen.
Conveyor verfahren
Meldung
TCP auf Messpunkt fahren ----> START
Verfahren Sie die Kette ca. 100 bis 200 mm (größere Wege er-
4 höhen die Genauigkeit) und betätigen Sie die START--Taste. Der
zweite Meßpunkt (P2) entspricht -- bezogen auf die Kette -- P1,
jedoch wurde die Kette weiter bewegt.
Meldung TCP nach oben fahren ----> START
Der dritte Meßpunkt (P3) ist beliebig wählbar, mit der Einschrän-
5 kung, daß dieser sich nicht innerhalb der Achse P1 -- P2 befinden
darf. Der Abstand von der Achse P1 -- P2 sollte mindestens 50
mm betragen.
Nach Erreichen von P3 muß die START--Taste so lange betätigt
bleiben, bis im Meldungsfenster folgende Bestätigung erscheint:
16000
CAL_DIG[1] = = 0,0195
41 ¯ 20000
Weisen Sie den ermittelten Wert der Variablen “CAL_DIG[1]” zu. Bei dem vorangegangenen
Beispiel lautet der Eintrag: 0.0195
Stehen die zur Berechnung erforderlichen Angaben nicht zur Verfügung, geben Sie zunächst
einen beliebigen Wert ein.
Bedämpfen Sie den Initiator und schalten Sie die Robotersteuerung in den Modus “TEST”
(Folge30).
Danach bewegen Sie die Kette um einen bestimmten Weg (z. B. 500 mm).
Der Weg zwischen dem Erkennen des Synchronisiersignals (Kettenstart) und dem Ketten-
stillstand wird durch die Steuerung in der Variablen “CONV_POSI[1]” erfaßt.
Vergleichen Sie nun diesen Wert mit dem tatsächlich zurückgelegten Kettenweg. Weicht die-
ser Wert ab, berechnen Sie “CAL_DIG[1]” wie folgt:
Wert (CAL_DIG[1]alt) * Kettenweg
Wert (CAL_DIG[1]neu) =
Wert (CONV_POSI[1])
Korrigieren Sie nun die Variable “CAL_DIG[1]” entsprechend des neu berechneten Wertes.
2.6 Programmierung
2.6.1 Befehlseingabe VW_USER
Die Eingabe der Befehle zum Conveyor--Betrieb kann nur in der “Punkt SPS” eines Bewe-
gungssatzes erfolgen. Betätigen Sie zu diesem Zweck den Softkey “SPS öff”.
Die Initialisierung (CONVEYORINIT) kann an einem beliebigen Punkt der Folge vor der Syn-
chronisierung stattfinden. Das Synchronisieren selbst (CONVEYORON) muß im letzten Be-
wegungssatz, außerhalb des Bandes erfolgen.
Die Eingabe der VW_USER--Parameter erfolgt über ein InLine--Formular. Öffnen Sie dieses
Formular mittels Menükey--Funktion “Befehle” -- “USER”.
Falls der Befehl “SPS öff” noch nicht erfolgte, erscheint im Meldungsfenster eine Hinweis-
meldung.
2.6.1.1 VW_USER--InLine--Formular
Nach Anwahl des Befehls “USER” wird im Programmierfenster nachfolgend dargestelltes
InLine--Formular angezeigt:
Das InLine--Formular beinhaltet 7 Felder (P1 ... P7) zur Parametereingabe. Für den Con-
veyor--Betrieb ist nur Parameter P1 von Bedeutung, die übrigen Parameter haben keine Wir-
kung.
2.6.1.2 Parameter P1
Parameter P1 können als Wert die Zahlen 1 bis 6 zugewiesen werden. Nachstehend sind
die entsprechenden Funktionen beschrieben:
P1 P1
P8 P4
P8 P8
IR IR IR
Conveyor anhalten
Stoppen Sie nun manuell den Conveyor, daß die Kette zum Stillstand kommt, und reduzieren
Sie den Programmoverride auf 1 %. Nach Kettenstillstand erscheint im Meldungsfenster die
Anzeige:
Fertig zum Teachen - weiter mit <START>
Mittels kurzer Betätigung der START--Taste erfolgt der Sprung in das Programm
“VW_USER”.
Nun können Sie alle zum Ablegen des Bauteils erforderlichen Bewegungen vornehmen und
die Punkte teachen.
HINWEIS Nur überschliffene CP--Bewegungen LIN, KLIN, CIRC oder KCIRC mittels Werkzeug 2
(TOOL_DATA[2]) sind zulässig.
Außerdem ist zu beachten, daß die Werkzeugdaten für die Werkzeuge 1 und 2 gleich sind.
Dies betrifft die Werte für die Variablen “TOOL_DATA[1]” und “TOOL_DATA[2]” in der Datei
$CONFIG.DAT.
Anweisungen wie z. B. das Setzen von Ausgängen, Ausführen von Makros können in der
Betriebsart “Punkt SPS” mittels VW_USER--Befehl “P1=4” durch den Anwender eingege-
ben werden. Weitere Anweisungen in der Punkt SPS sind nicht zulässig.
Der letzte Bewegungsbefehl im VW_USER--Programm muß vom Förderband wegführen,
weil mit Beendigung der Synchronfahrt die Synchronisierung ausgeschaltet wird und der Ro-
boter kurz anhält. Anschließend kehrt die Steuerung in die Programmfolge zurück.
DeviceNet Spannungsversorgung
LED 7
HEALTH LED 8
LED 9 LED 10
COMMUNICATION
G Sind die Stecker ST4 (Hardwarestart für Encoder -- Synchronisiersignal) und ST6 (Ein-
gang ENCODER) korrekt eingesteckt?
G Sind die Schalter S1 und S2 richtig eingestellt? Informationen hierüber finden Sie in Ab-
schnitt 2.2.3.1.
LED 11 LED 12 S1 S2 S3
LED 5V 24V
LED
SYNC SYNC 13 14 15 16
ON
ST4 1 ST5 1 ST6 1 ST7 1
2.7.3 Meldungen
Siehe
Meldung Erläuterung, Bemerkung
Abschn.
Die Variable “CANNEL_NO”
Falsche Conveyorprojektierung <RESET> wurde mit dem Wert “0” initiali- 2.4.6
siert.
Die Kettenposition wurde von
Steuerung erfaßt und in der Va-
Position erfasst <RESET> 2.5.2
riablen “CONV_POSI[1] gespei-
chert.
Betriebsart nicht korrekt einge-
stellt. Für
-- TEST “CAL_DIG[1]”,
falsche Betriebsart
-- Teachen “SStep (T1)” und
-- Programmbetrieb “SStep (T2)”
prüfen.
Im Modus “Teachen” nach von
der Steuerung erkanntem Ketten-
Fertig zum Teachen -- weiter mit <START> 2.6.2
stillstand und Erfassung des Ket-
tenweges.
Der Roboter hat das Ende seines
Arbeitsbereiches erreicht. Damit
Alarm Conveyor wird Ausgang “ALARM_OUT[1]” 2.4.6
zurückgesetzt und damit über die
BMS die Kette angehalten.
Nach Erkennen der Signale Syn-
Ermittlung der Bandposition chronisation und Kettenbewe-
gung durch die Steuerung im Mo- 2.6.2
-- Warten auf Stopp dus “Teachen”. Erwartet Still-
stand der Kette.
Siehe
Meldung Erläuterung, Bemerkung
Abschn.
Initiator war kurz vor Freigabe
Synchfehler, keine Bearbeitung des Zählers belegt (Eingang 2.4.6
SYNCH_NO[1]==TRUE).
Die Robotersteuerung wartet auf
Roboter wartet auf Synchronisation und die Signale Synchronisation und
2.6.2
Kettenbewegung die Kettenbewegung vom Inkre-
mentalgeber
Während der Conveyorbasis--
Vermessung soll der erste Meß-
TCP auf Messpunkt fahren ----> START punkt, bzw. nach Verfahren der 2.5.1
Kette der zweite Meßpunkt ange-
fahren werden.
Während der Conveyorbasis--
Vermessung soll nach Erfassen
Conveyor verfahren des ersten Meßpunktes durch die 2.5.1
Steuerung die Kette verfahren
werden.
Während der Conveyorbasis--
Vermessung soll nach Erfassen
TCP nach oben fahren ----> START des zweiten Meßpunktes durch 2.5.1
die Steuerung der dritte Meß-
punkt angefahren werden.
Der Abstand zwischen den Meß-
punkten 1 und 2 bzw. 1 und 3 ist
Punkte zu nahe beieinander 2.5.1
zu gering. Abstand muß min. 50
mm betragen.
Die Meßpunkte 1, 2 und 3 liegen
nahezu in einer Linie, der Winkel
die Punkte sind fast in e. Linie zwischen den Geraden P1--P2 2.5.1
und P1--P3 ist kleiner als 2,5
Grad.
Vermessung der Conveyorbasis
Berechnung fertig! 2.5.1
erfolgreich durchgeführt.
3 Lastdatenermittlung
3.1 Funktionsbeschreibung, Programminstallation
Zur modellunterstützten Bahnplanung -- höheres Fahrprofil, Beschleunigungsanpassung
sowie für das absolutgenaue Robotermodell -- ist die Angabe der korrekten Lastdaten
(Masse, Schwerpunktlage, Trägheitsmomente) zwingend erforderlich. So werden Überla-
stungen des Roboters, beispielsweise der Getriebe und Lager, vermieden.
Die Ermittlung der Daten läßt sich mit Hilfe dieses speziellen Meßprogramms zur Massen--
Identifikation komfortabel und schnell durchführen.
Dazu werden mit einer am Roboter angebrachten Last bestimmte Meßbewegungen ausge-
führt und die aus den Motormomenten der Achsen resultierenden Ströme aufgezeichnet.
Anhand dieser Daten werden anschließend die Lastdaten berechnet.
Die Masse der am Roboterflansch angebrachten Werkzeuge sowie die Schwerpunktlage
und Trägheit werden dabei identifiziert.
3.1.1 Systemvoraussetzungen
Das Programm “Lastdatenermittlung Rel. 4.0.4” ist mit folgender Systemsoftware an-
wendbar:
(V)KR C1, Rel. 2.2, 2.3, 2.5, 3.1, 3.2, 4.0, 4.1,
(V)KR C2, Rel. 5.1
Es werden nur Robotertypen unterstützt, die vor August 2001 in Serie gegangen sind,
sowie die aktuelle KR2000--Generation und die aktuellen Schwerlastroboter.
3.1.2 Funktionsbeschreibung
Eigenschaften
Unter “Lastdaten” versteht man Masse, Schwerpunktlage und Eigenträgheiten von am
Flansch des Roboters angebrachten Lasten, beispielsweise Greifer, Schweißzange, etc.
Diese Daten werden in einer LOAD--Struktur abgelegt und durch “$LOAD” im Programm re-
präsentiert.
Der angegebene Override wird bei der ersten Periode auf 50 Prozent und bei der 2.
Periode auf 80 Prozent reduziert. Ab der 3. Periode fährt der Roboter mit dem angege-
benen Override.
Das Warmfahren kann durch zwei aufeinanderfolgende Testfahrten verkürzt werden.
Die erste Testfahrt dient zum Prüfen, ob die Pendelbahn frei von Hindernissen ist
(Crashgefahr).
Bei der 2. Testfahrt muß der Override von 10 Prozent auf 100 Prozent erhöht werden.
G Je geringer die Masse des am Roboterflansch angebrachten Werkzeugs, um so größer
ist die Meßtoleranz. Deshalb sollte der Wert für die Last 40 Prozent der Traglast des
Roboters nicht unterschreiten.
G Die Achse A3 darf nur um 5 Grad bewegt werden. Die Vorgabewerte der Winkelein-
stellungen (in der Datei “DEFAULT.IDF”) liefern in der Regel sehr gute Pendelergeb-
nisse. Nach Möglichkeit (Arbeitsraum des Roboters) sollten diese Einstellungen ver-
wendet werden.
G Alle Handachsen (A4 -- A6) sollten einen möglichst großen Bewegungsbereich haben.
Werden die Bewegungsbereiche zu stark eingeschränkt, können bestimmte bei der
Meßbewegung auftretende Kräfte nicht gemessen werden und das Meßergebnis wird
möglicherweise verfälscht.
Am Werkzeug darf keine externe Energiezufuhr montiert werden; derartige Schlauch-
pakete verfälschen die zu ermittelnden Massenträgheiten drastisch.
Siehe hierzu Abschnitt 3.4.6.1 dieser Dokumentation.
Beachten Sie auch entsprechende Hinweise und Warnungen, die während des Programm-
ablaufs am (V)KCP--Display angezeigt werden.
Die gemessenen Motorströme sind in der Regel mit Rauschen behaftet. Die Ergebnisse
mehrfach vorgenommener Messungen unterliegen daher naturgemäß gewissen Schwan-
kungen, wodurch die im Einzelfall ermittelten Lastdaten nicht immer exakt gleich sind. Aller-
dings bewegen sich die Unterschiede bei sinnvoller Konfiguration in tolerierbaren Grenzen.
absolut relativ
Masse ¦ 10 kg 10 %
Schwerpunktlage ¦ 15 mm 5%
Massenträgheiten ¦4 kg2 10 %
Tab. 42 Toleranzen
3.1.3 Programm--Installation
3.2 Bedienoberfläche
3.2.1 Meßprogramm “MassIden.exe”
Das Meßprogramm “MassIden” wird über den Befehl [ Inbetriebn. > Service > Lastdatener-
mittlung ] gestartet.
Abb. 17 MassIden--Programm
Das Menü [ Inbetriebn. ] ist nur verfügbar, wenn kein Programm angewählt ist.
Falls der Robotertyp nicht erkannt wird, erscheint eine Auswahlbox mit den verfügbaren Ty-
pen. Siehe hierzu Abschnitt 3.3.1.
Mit Hilfe dieser Eingabemaske werden die Testbewegungen definiert. In der Praxis sind oft
Arbeitsraumbeschränkungen gegeben, so daß der Roboter keine beliebigen Bewegungen
ausführen kann, ohne Risiko einer Kollision mit im Arbeitsbereich befindlichen Hindernissen.
Siehe hierzu Abschnitt 3.3.3.
Im Feld “Werkzeugart” wird die Werkzeugart (Kompakt, Normal, Groß) angegeben. Siehe
hierzu Abschnitt 3.3.5.
Diese beiden Statuskeys dienen der Navigation innerhalb des Menüs. Mit
Betätigung dieser Taste gelangen Sie in das nächste Eingabefeld, ...
... und mit dieser in das vorhergehende.
Mit dem Softkey [ Datei Speichern ] können Sie die vorgenommenen Ein-
stellungen unter einem beliebigen Namen (ohne Eingabe einer Erweiterung)
im Verzeichnis “...\ ROBOTER\ IR_SPEC\ IDF” speichern. Das Zielver-
zeichnis kann beliebig geändert werden. Angezeigt werden nur *.IDF--Da-
teien.
Mit Betätigen des Softkeys [ Identifikation ] wird ein Eingabefeld geöffnet, in
das ein Kommentar eingetragen werden kann. Nach Bestätigung mit [ OK ]
wird die eigentliche Identifikation mit den aktuell eingestellten (in den Einga-
befeldern angezeigten) Werten gestartet.
Abb. 18 Roboterauswahl
Der Robotertyp kann auch über die Auswahlliste geändert werden, die alternativ über den
Softkey [ Roboter ] aufgerufen wird.
Die Auswahl des Roboters ist mit einer Sicherheitsabfrage zu bestätigen. Mit [ Ja ] wird der
neu ausgewählte Robotertyp übernommen. Im Info--Bereich erscheint die Meldung: “Neuer
Parametersatz: <ausgewählter Typ>”. Mit [ Nein ] wird der ausgewählte Typ nicht übernom-
men und Sie gelangen zur Auswahlliste zurück. Mit [ Abbrechen ] wird der aktuell einge-
stellte Robotertyp beibehalten. Im Info--Fenster erscheint die Meldung: “Kein neuer Parame-
tersatz ausgewählt <aktuell eingestellter Typ>”.
Stellen Sie unbedingt sicher, daß der korrekte Robotertyp ausgewählt ist!
Wenn Sie mit nicht korrekten Roboterdaten arbeiten, besteht das Risiko von
Schäden am Roboter, für die der Hersteller keine Haftung übernimmt!
Die Konfiguration der zuletzt durchgeführten Meßfahrt ist in der Datei “$__IDENT.IDF”
zwischengespeichert. Falls sich im Verzeichnis “...\ ROBOTER\ IR_SPEC\ IDF” keine
“*.IDF”--Datei befindet, wird dies im Info--Fenster des Programm--Menüs angezeigt.
So lange dieses Auswahlmenü geöffnet ist, können Sie durch nochmaliges Betätigen
des Softkeys [ Datei Laden ] ein weiteres Menü öffnen, das die Auswahl von *.IDF--Da-
teien auch aus anderen Verzeichnissen auf der Festplatte--, dem Disketten-- und CD--
ROM--Laufwerk sowie einer ggf. bestehenden Netzwerkverbindung ermöglicht.
Abb. 19 Bewegungsbereiche
Die Einträge in den Feldern für die Achsen 1 und 2 (A1, A2) entsprechen der momen--
tanen Roboterstellung. Der Winkelbereich der Achse 3 (A3) ist standardmäßig das In-
tervall [90,95] Grad.
In der Praxis sind oft Arbeitsraumbeschränkungen gegeben, so daß der Roboter keine
beliebigen Bewegungen ausführen kann, ohne Risiko einer Kollision mit im Arbeitsbe-
reich befindlichen Hindernissen.
Deshalb werden beim Programmstart die Grenzen der Handachsen (A4, A5, A6) mit
0 (Null) Grad initialisiert. Daraus resultieren die Hinweise im Info--Bereich, daß die Be-
reiche zu klein sind. Damit soll die bewußte Eingabe der entsprechenden (passenden)
Werte erzwungen werden.
Eingabefelder Sie können in den entsprechenden Eingabefeldern die Bereiche der Grundachsstellungen
A1 ... A6 A1 und A2 sowie die Bewegungsbereiche der Grundachse A3 und der Handachsen A4, A5
und A6 eingeben.
Maximal--Wert
-- Winkelbereich A3 max. 10 Grad; zum Beispiel: [90,95]
Der Softkey [ Lese Achse ] bietet die Möglichkeit, jeweils den aktuellen Achswinkel in das
Eingabefeld zu übernehmen, welches gerade den Fokus hat. Das entsprechende Eingabe-
feld ist dabei blau unterlegt.
Geringere als die empfohlenen Winkelbereiche der Handachsen sind zwar zulässig, vor
dem Starten des Programms erscheint jedoch ein entsprechender Warnhinweis.
Ist der Winkelbereich < 20 Grad, wird das KRL--Programm nicht gestartet und es wird
eine entsprechende Fehlermeldung ausgegeben.
3.3.5 Werkzeugart
Auswahl Für die Werkzeugart stehen drei Auswahlmöglichkeiten zur Verfügung: “Kompakt”, “Normal”
Werkzeugart oder “Groß”.
Abb. 20 Werkzeugart
Als Standard ist “Normal” voreingestellt. Diese Einstellung sollten Sie beibehalten, wenn Sie
ein Werkzeug mit mittleren Trägheiten einsetzen (ca. 40 kgm2) oder die Trägheiten nicht ab-
schätzen können.
Falls die Trägheit des Werkzeugs klein ist (bis ca. 10 kgm2) -- beispielsweise eine kleine
Schweißzange -- kann als Werkzeugtyp “Kompakt” gewählt werden.
Für Werkzeuge mit großen Trägheiten (größer als 70 kgm2) -- zum Beispiel schwere Greifer
für große Automobilteile -- wird der Werkzeugtyp “Groß” gewählt.
Durch die Auswahl des Werkzeugtyps erfolgt eine an das Werkzeug angepaßte Meß-
fahrt. Falls der Werkzeugtyp geändert wird, sollte eine neue Testfahrt durchgeführt wer-
den.
Betätigen Sie die Eingabetaste, worauf sich das Dialogfenster für Pfad und Dateiname öff-
net.
In das Feld “Dateiname” können Sie einen beliebigen Dateinamen eingeben (ohne Erweite-
rung) oder den angezeigten übernehmen, unter dem die Daten im Verzeichnis “...\ ROBO-
TER\ IR_SPEC\ IDF” gespeichert werden.
Die gespeicherten “*.IDF”--Dateien werden bei Anwahl der Funktion [ Laden ] (siehe Ab-
schnitt 3.3.2) angeboten.
Damit ist die Konfiguration abgeschlossen und die eigentliche Lastdatenermittlung kann
durchgeführt werden.
Die automatische Ermittlung der Traglast ist nur möglich, wenn auf Achse 3 (A3) keine
Zusatzlast montiert ist, oder -- falls eine Zusatzlast montiert ist -- die Daten hierfür be-
kannt sind.
Mit [ Nein ] wird die Masse der Traglast nicht automatisch ermittelt, die Masse wird manuell
eingegeben.
Die Eingabefelder für Masse, Trägheiten und Massenschwerpunkt enthalten die voreinge-
stellten Werte aus der Datei “$Config.dat”.
Falls in der Datei “$Config.dat” die voreingestellten Werte eingetragen sind (Masse = --1),
werden die Werte aus der Datei “$Robcor.dat” verwendet.
Geben Sie in das Eingabefeld die Masse der Traglast ein und betätigen Sie die Eingabetaste.
Mit [ Cancel ] oder der ESC--Taste brechen Sie den Dialog ab.
Die Eingabe der Masse der Traglast ist zwingend. Ohne Eingabe wird die Meßfahrt
nicht gestartet.
Die Meßfahrt erfolgt bei manueller Eingabe ohne Bewegung von Achse 3 (A3). Der
Winkel von Achse 3 (A3) wird in diesem Falle vom Mittelwert der für A3 eingegebenen
Werte gebildet. Siehe hierzu Abschnitt 3.3.3.
Nachfolgend noch einige Informationen und Hinweise zu den Einstellungen und der Durch-
führung des Programms.
Falls für einzelne Achsbewegungen derart geringe Werte eingegeben wurden, daß er-
fahrungsgemäß nur ungenaue Meßergebnisse zu erwarten sind, erhalten Sie einen
entsprechenden Hinweis. Sie können dann entscheiden, ob die Lastdatenermittlung
trotzdem durchgeführt werden soll.
Andernfalls brechen Sie den Vorgang ab, ändern die betreffenden Einstellungen ent-
sprechend und starten das Identifizierungsprogramm neu.
Falls die Achsbewegung für eine der Handachsen (A4 ... A6) weniger als 20 Grad be-
trägt, ist die Lastdatenermittlung keinesfalls sinnvoll, weil das Meßergebnis zu ungenau
wird. Diese Situation wird durch einen entsprechenden Warnhinweis angezeigt.
Sie können das Programm aber dennoch durchführen, beispielsweise zu Versuchs-
zwecken. Betätigen Sie hierzu die Eingabetaste oder die Taste “J” für “Ja”.
Wenn Sie aber Wert auf ein brauchbares Meßergebnis legen, sollten Sie an dieser
Stelle das Programm abbrechen. Betätigen Sie hierzu die Taste “N” für “Nein”. Damit
gelangen Sie in das Hauptmenü des Programms zurück.
Ändern Sie die Bewegungsbereiche der betroffenen Achsen entsprechend und starten
Sie das Identifizierungsprogramm neu.
Nach dem Start wird am KCP--Display die gewohnte Bedienoberfläche angezeigt. Das Pro-
grammfenster zeigt das Systemprogramm “$D_IDENT.SRC”, wenn Sie für die Eingabe-
maske die Sprache “Deutsch” gewählt haben, “$E_IDENT.SRC” bei der Auswahl von “En-
glish”.
3.4.2 Ausführung
Die Ausführung des Meßprogramms erfolgt gemäß den in nachstehender Tabelle aufgeführ-
ten Programmpunkten:
Struktur Programmausführung
Programmpunkt Kurzbeschreibung
Aktivierung Initialisierung des Programms.
Fahrt zum Startpunkt Roboter fährt zur Ausgangsposition.
der Trajektorie
Meß--Trajektorie Zu Beginn dieses Programmpunktes erfolgt die Auswahl,
ob eine Meßfahrt (10 Perioden) ausgeführt werden soll
oder eine Testfahrt.
Berechnung Die Lastdaten werden auf der Grundlage der aufgezeich-
neten Daten berechnet.
Tab. 43 Programmausführung
Betätigen Sie die Start-- und eine der Zustimmungstasten. Es erfolgt eine Bewegung zum
Startpunkt der Trajektorie. Im Meldungsfenster des (V)KCP erscheint der Versionsbezeich-
ner des Objektfiles.
Halten Sie die Start-- und die Zustimmungstaste solange gedrückt, bis die Meldung “SAK
erreicht” erscheint.
Danach betätigen Sie nochmal die Start-- und Zustimmungstaste. Im Meldungsfenster er-
scheint die Abfrage: “Test / Warmfahren / Messfahrt ?”.
Wählen Sie mittels Softkey aus, ob eine Testfahrt (ein Zyklus), Warmfahren (zehn Testzy-
klen) oder die gesamte Meßfahrt (zehn Meßzyklen) durchgeführt werden soll.
Mit dem Softkey [ Ende ] wird das Meßprogramm abgebrochen, das Programmfenster ge-
schlossen und wieder die Konfigurier--Bedienoberfläche des Meßprogramms angezeigt.
3.4.4 Warmfahren
Zum Warmfahren des Roboters betätigen Sie den Softkey [ Warmfahren ].
Während des Warmfahrens ist eine Regelung des Overrides möglich. Die Bahn, welche der
Roboter dabei fährt, ist eine Pendelfahrt, entsprechend den vorgenommenen Winkeleinstel-
lungen der Achsen.
Der angegebene Override wird bei der ersten Periode auf 50 Prozent reduziert und bei der
2. Periode auf 80 Prozent. Ab der 3. Periode fährt der Roboter mit dem angegebenen Over-
ride. Der Wert des Overrides kann während einer Periode geändert werden. Am Beginn jeder
Periode wird der Override auf die genannten Werte zurückgesetzt.
Das Warmfahren dauert etwa sieben Minuten und ist nur bei kaltem Roboter erforderlich.
Die Zeitdauer dieser Prozedur läßt sich durch zwei aufeinanderfolgende Testfahrten ver-
ringern. Dabei dient die erste Testfahrt zum Prüfen, ob die Pendelbahn frei von Hindernis-
sen ist (Crashgefahr); die zweite wird mit 100 Prozent Override gefahren.
Die Meßfahrt kann im Automatik-- oder T2--Betrieb durchgeführt werden. Die komfortablere
Weise ist der Automatikbetrieb, da während der Meßdauer Start-- und Zustimmtaste nicht
permanent betätigt werden müssen.
Die Berechnung dauert etwa 5 Minuten. Falls die Messung im T2--Betrieb durchgeführt
wurde, können nun Start-- und Zustimmtaste losgelassen werden.
2
1
3
(1) Schweißzange.
(2) Schlauchpaket das an der Schweißzange montiert ist.
(3) Roboterhand.
3.4.6.1 Vorbereitung
Am Werkzeug darf keine externe Energiezufuhr montiert werden; derartige Schlauchpakete
verfälschen die zu ermittelnden Massenträgheiten drastisch.
Demontieren Sie daher, wenn Sie eine Schweißzange verwenden, vor der Durchführung der
Lastdatenermittlung das Schlauchpaket von der Schweißzange und entfernen es von der
Halterung.
Öffnen Sie über den Befehl [ Inbetriebn. > Vermessen > Werkzeug > Werkzeuglastdaten ]
das entsprechende Dialogfenster.
Tragen Sie die ermittelten Werte (Masse M, Schwerpunkt X,Y,Z) in die entsprechenden Fel-
der ein.
G Für die Winkelwerte A, B und C tragen Sie 0 Grad ein;
G Für die Massenträgheitsmomente JX,JY und JZ tragen Sie 5 kgm2 ein.
3.4.7 Meßergebnisse
Wird die Meßfahrt ohne Unterbrechung abgeschlossen, so erfolgt die eigentliche Berech-
nung und das Programm wird beendet. Wenn sich der Satzzeiger in der Programmzeile
“ENDE” befindet, wird wieder die Eingabemaske des Meßprogramms angezeigt.
Traten während der Meßfahrt keine Fehler auf, und konnte die Berechnung durchgeführt
werden, erscheint das nachfolgend dargestellte Fenster mit Darstellung der ermittelten Last-
daten (Schwerpunktlage [mm], Massenträgheitsmomente [kgm^2] sowie Masse [kg]).
Abb. 30 Meßergebnisse
Ergebnis der Lastdatenermittlung am Beispiel eines KR2150L130. Als Werkzeug wurde die
am Beginn dieses Abschnitts abgebildete Schweißzange verwendet.
Mit Hilfe der Softkeys [ + ] und [ -- ] können Sie im Feld “Werkzeug” die Nummer --1 ... 16
auswählen.
Mit Hilfe der Softkeys [ + ] und [ -- ] können Sie im Feld “Werkzeug” die Num-
mer --1 ... 16 auswählen.
Mit Betätigen dieses Softkeys weisen Sie die ermittelten Daten den Robo-
ter--Lastdaten zu.
Falls eine Überlastung des Roboters gegeben ist, erscheint ein entsprechender Hinweis.
Sie werden gefragt, ob die Zuweisung der Lastdaten trotzdem durchgeführt werden soll.
Es wird dringend davon abgeraten, in einem solchen Fall die Lastdaten zuzuwei-
sen, weil dies zur Überlastung und Beschädigung des Roboters im Betrieb führen
kann!
Mit dem Softkey [ auf Diskette sichern ] können Sie die ermittelten Daten auf
Diskette speichern. Hierzu müssen Sie eine Diskette in das Diskettenlauf-
werk A: einlegen. Nach Betätigen des Softkeys wird die Datei “LOAD.TXT”
erzeugt.
Durch Betätigung des Softkey [Archivieren] können Sie die ermittelten Mess-
daten, die Messergebnisse sowie die Log--Datei der Messung auf Festpaltte
archivieren. Die Speicherung erfolgt unter D:\Loaddetermina-
tion\JJJJMMTT_HHMM.
Mit diesem Softkey kehren Sie zum Haupt--Programmfenster zurück.
Zeichen DEVNET.INI, 45
$CONFIG.DAT, 38, 53 Digitaleingang $DIGIN1 -- $MACHINE.DAT,
45
$D_IDENT.SRC, 76
Drehzahl, 12
$DIGIN1, 45, 56
Durchbiegungskennlinie, 31
$E_IDENT.SRC, 76
Durchführung der Lastdatenermittlung, 73
$MACHINE.DAT, 45
Durchführung einer Meßfahrt, 78
$PRO_ACT, 45, 46
Durchführung einer Testfahrt, 78
A E
Achsspezifische Istwerte, 27 E/A--Schnittstelle zum CAN--Conveyor--Modul,
ALARM_CONV[1], 47 45
Arbeitsraum des Roboters, 62 E1, 27, 29
Arbeitsraumbeschränkung, 68 Elektroden positionieren, 36
Ausgang für Freigabe Conveyor--Modul -- Elektronische Kraftmesser, 28
COUNT_ENABL, 47 EMV, 40
Auswahl des Roboters, 67 Encodereingang, 43
Automatikbetrieb, 78 Energiezufuhr, 62
Erstellen der Schweißprogramme, 24
B Externe Achse konfigurieren, 7
externe Energiezufuhr, 62, 79
BASE_CONV[1], 49
externe Zusatzachse, 26
Baudrate, 41
Befehlseingabe VW_USER, 51
Betriebsart, 78 F
Bewegliche Elektrode, 36 Fehlerbeseitigung, 55
Bewegungsbereiche der Achsen, 68 Fehlerdiagnose, 55
Fehlersituationen, 55
Feststehende Elektrode, 36
C
FOLL_ACC[1], 47
CAL_DIG[1], 49
FOLL_VEL[1], 47
CAN--Conveyor--Modul, 39
Funktionsbeschreibung, 60
COMMUNICATION, 43
Funktionsprinzip, 8
CONV_POSI[1], 50
Conveyor, 38
G
CONVEYORINIT, 52
CONVEYORON, 51, 52 Geschwindigkeitsverstärkung, 47
COR_DIR[1], 47 Grundeinstellungen, 40
COUNT_ENABLE[1], 47
COUNT_RESET[1], 47 H
Handverfahren, 26
D HEALTH, 43
Datei laden, 68
Dateien für VW_USER, 44 I
DEFNET.INI, 41 Inkrementalgeber, 49
Dejustieren, 26 Installation der Hardware, 39
DeviceNet, 42 INV_SYNCHRON[1], 47
Index -- i
Index
IOSYS.INI, 45 O
Istposition, 27, 29 Öffnen und Schließen der Zange, 32
OUT_STOP[1], 47
J
Justage, 26 P
P1, 52, 53
K Parameter P1, 52
Positionskontrolle der Servozange, 34
Kappen Kontrolle, 34
Programmierung, 35
Kette steht, 57
Programminstallation, 60
Kettenbewegung, 54
Projektierung von Variablen, Eingängen und
Konfigurieren der Bewegungsbereiche, 68
Ausgängen, 45
Konfigurieren der Schweißzange, 32
Prüfung der Achsbereiche, 70
Konfigurieren des Meßvorgangs, 67
Punkt SPS, 38, 51, 53
Kraftkalibrierung, 28, 31
Kraftkennlinie, 13
Kraftmesser, 28
R
Kurzanleitung, 79 Roboter am Ende seines Arbeitsbereichs --
OUT_STOP[1], 47
Roboter arbeitet Programm ab -- $PRO_ACT,
L 45
LED--Anzeigen, 43 Roboter in der Synchronphase -- SYN-
CHRON, 47
LINEAR_BASE ( ), 49
Roboter nicht in der Synchronphase --
INV_SYNCHRON, 47
M Roboter wartet auf Synchronisation, 55
MACID, 41, 45 Robotermodell, 61
Manuelle Funktionen, 32 Roboterrichtung synchron zur Kette --
Masse, 62 COR_DIR[1], 47
Roboterstörung, 55
Masse der Traglast automatisch ermitteln, 74
Robotertyp, 67
Masse der Traglast manuell eintragen, 75
Roboterüberwachung innerhalb Conveyor--Pro-
Massenträgheiten, 62
fil, 46
MASSIDEN.EXE, 64
Roboterweg zwischen Synchronisiersignal und
Materialdicke, 24 Endstellung -- MAX_CONV[1], 47
Meldungen, 57 Rücksetzung Conveyor--Modul COUNT_RE-
Menügeführte Variablen--Anzeige und Wertzu- SET, 47
weisung, 47
Menüpunkt Lastdatenermittlung, 63
S
Meß--Trajektorie, 76
Schalter S1, 41
Meßergebnisse, 82
Schlauchpakete, 62, 79
Meßfahrt, 78, 81
Schweißende, 11, 35
Meßtoleranz, 62
Schweißkraft, 8
Motorstrom, 12
Schweißprogramme, 24
Schweißprozeß, 9
N Schweißspaltdicke, 24, 25
Nachteachen von Punkten, 54 Schweißstart, 35
Nietzangen, 79 Schweißstartsignal, 11
Index -- ii
Index
Schweißzyklus, 35 U
Schwerpunktlage, 62
SERVO GUN TECH, 6 Überprüfung der Kraftkalibrierung, 31
Softkey [Archivieren], 83
Softkey [auf Diskette sichern], 83
Softkey [Bof], 66
Softkey [Datei laden], 65
Softkey [Datei Speichern], 65
Softkey [Identifikation], 65 V
Softkey [Lese Achse], 65
Softkey [Programm--Ende], 66 Verfahrart, 26
Softkey [Robotertyp], 65 Vermessung der Conveyorbasis, 48
Softkey Identif., 73
Softkey Lese Achse, 69 Versorgungsspannung Encoder, 42
Softkey Messung, 78 Versorungsleitungen, 79
Softkey Speichern, 71
Softkey Test, 78 Vorbereitung, 79
Softkey Warmfahren, 78 Vorhaltezeit, 48
Spannungsversorgung, 42
Start, 80 VW_CAL, 7, 30
Start der Lastdatenermittlung, 73
VW_FLEX, 7, 31
Statuswort, 56
Stecker ST1, 42 VW_FORCE, 7, 31
Stecker ST2, 42
VW_USER.SRC, 48
Stecker ST3, 42
Stecker ST4, 42
Stecker ST6, 42
Steckerbelegung, 42
Strombegrenzung, 8
SYNCH_NO[1], 47, 56 W
SYNCHRON[1], 47
Synchronfahrt, 46 Warmfahren, 78, 81
Synchronisiersignal, 54
Wegverstärkung, 47
Systemvoraussetzungen, 60
Werkzeugart, 64, 70, 80
T
T_RET[1], 48
T1--Betrieb, 78
T1--Modus (SStep (T1), 53
T2--Betrieb, 78 Z
Teachen der Bewegungen im Conveyor--Be-
reich, 53
Testfahrt, 62, 78, 81 Zählerwert Inkrementalgeber -- Kettenweg --
CAL_DIG[1], 49
TOOL_DATA[1], 38, 53
TOOL_DATA[2], 38, 53 Zangenparameter, 17
Index -- iii
4 Anhang
SOFTWARE
(V)KR C...
Anhang
3 Gesamtindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Konfiguration
System konfigurieren
G Erweiterungen zum Thema “Zange”
G Änderungen bei E/A--Treiber
G Änderungen bei “Setze Werkzeug/Basis”
G Ergänzunegn bei “ASCII--Konfiguration”
Automatik Extern
Bewegungsprogrammierung
G Korrekturen zu den Singularitäten
Programmablaufkontrolle
Ein--/Ausgabeanweisungen
Interrupt--Behandlung
Datenlisten
VW_USER
G Ergänzungen zu Haupt-- und Untergruppen
2.7 Applikationen
ServoGun
Conveyor
Lastdaten
G Neuer Abschnitt “Lastdatenermittlung”
Historie
G Die Datei, welche Sie gerade lesen...
Gesamtindex
G Aktualisierte Version
3 Gesamtindex
Zeichen
!---Zeichen: Prog. Experte 107
#---Zeichen: Prog. Experte 34
#BASE: Prog. Experte 83
#CONSTANT: Prog. Experte 80
#INITMOV: Prog. Experte 80, 83
#INSIDE: Konfiguration 25, 36
#INSIDE_STOP: Konfiguration 25, 36
#JOINT: Prog. Experte 81
#OUTSIDE: Konfiguration 25, 36
#OUTSIDE_STOP: Konfiguration 25, 36
#PATH: Prog. Experte 85, 86
#STEP1: Konfiguration 69
#VAR: Prog. Experte 80
$---Zeichen: Prog. Experte 51
$ACC_AXIS: Prog. Experte 63
$ADAP_ACC: Konfiguration 69
$ALARM_STOP: Konfiguration 76
$ANIN: Prog. Experte 130
$ANOUT: Prog. Experte 130
$CIRC_TYPE: Prog. Experte 83, 84, 86
$CONFIG.DAT: Applikationen 38, 53
$CURR_LIM: Konfiguration 68
$CURR_MAX: Konfiguration 68
$CURR_RED[x,x]: Konfiguration 65, 67
$CUSTOM.DAT: Konfiguration 69
$CYCFLAG: Prog. Experte 159
$D_IDENT.SRC: Applikationen 76
$DIGIN: Prog. Experte 135
$DIGIN1: Applikationen 45, 56
$E_IDENT.SRC: Applikationen 76
$H_POS: Konfiguration 78
$H_POS_TOL: Konfiguration 78
$IN_HOME: Konfiguration 77, 78
$MACHINE.DAT: Applikationen 45
$ORI_TYPE: Prog. Experte 80, 86
$POS_ACT: Anhang Bedienhandbuch 6
$POS_RET: Bedienung 111
Zahlen
3---Punkt: Bedienung 189; Inbetriebnahme 51
5 Home---Positionen: Konfiguration 61
5D: Inbetriebnahme 41, 59, 63
6D: Inbetriebnahme 43, 60, 64
A
A, B, C: Inbetriebnahme 27, 49, 67, 70, 86, 90
A/M/F: Bedienung 196; Prog. Anwender 62
a1---Stellung: Prog. Experte 74
a2---Stellung: Prog. Experte 75
a5---Stellung: Prog. Experte 76
ABC 2---Punkt: Bedienung 189; Inbetriebnahme 30
ABC WORLD: Inbetriebnahme 30
ABC World: Bedienung 189
ABC---2---Punkt: Inbetriebnahme 31, 38
ABC---World: Inbetriebnahme 41
ABC---World (5D): Inbetriebnahme 31
ABC---World (6D): Inbetriebnahme 31
Ablaufbeschreibung: Konfiguration 79
ABS(X): Prog. Experte 48
Abschn: RobSysEinleitung_11.04_00 9
Absicherung: Sicherheit KRC (10.00.03) de 21
Absperrungen: Sicherheit KRC (10.00.03) de 14
Anführungszeichen: RobSysEinleitung_11.04_00 9
ANIN: Prog. Experte 133
Anlagen---Hochlauf: Konfiguration 82
Anlagenhochlauf oder Spannungsausfall: Konfiguration 79
Anpassungen: Sicherheit KRC (10.00.03) de 8
Anschlußbedingungen: Sicherheit KRC (10.00.03) de 21
Ansprechzeit: Konfiguration 69
ANTEIN: Konfiguration 77
Antriebe Aus: Bedienung 19
Antriebe Ein: Bedienung 18; Konfiguration 77
Anwählen: Bedienung 88, 95
Anweisung: Prog. Experte 9
Anweisungsteil: Prog. Experte 9
Anwender: Konfiguration 16
Anwendungen: Bedienung 162
Anzeige: Bedienung 89, 159, 181
Anzeigen: Bedienung 71, 117
Applikation: RobSysEinleitung_11.04_00 10
Arbeitsbereich: Sicherheit KRC (10.00.03) de 14
Arbeitsbereichsbegrenzung: Sicherheit KRC (10.00.03) de 14
Arbeitsbereichsüberwachung: Sicherheit KRC (10.00.03) de 19
Arbeitsbühnen: Sicherheit KRC (10.00.03) de 23
Arbeitsraum des Roboters: Applikationen 62
Arbeitsraumbeschränkung: Applikationen 68
Arbeitsraumüberwachung: Konfiguration 22
Arbeitsrichtung: Inbetriebnahme 38
Archivieren: Bedienung 79
Arcuscosinus: Prog. Experte 48
Arcussinus: Prog. Experte 49
Arcustangens: Prog. Experte 49
arithmetischer Operand: Prog. Anwender 26
Arithmetischer Operator: Prog. Anwender 26
ASCII: Konfiguration 20
ASCII---Konfiguration: Konfiguration 53
ASCII---Schnittstelle: Prog. Anwender 70
ATAN2(Y,X): Prog. Experte 48
Attribute: Bedienung 68
Aufstellung: Sicherheit KRC (10.00.03) de 8, 21
Aufstellungsort: Sicherheit KRC (10.00.03) de 19
Aufstiegshilfen: Sicherheit KRC (10.00.03) de 23
Aufzählungstypen: Prog. Experte 34
B
Bahnbezogene Orientierung: Prog. Experte 85
Bahngeschwindigkeit: Prog. Anwender 44, 47, 49, 50, 52
Bahnschaltfunktionen: Prog. Anwender 61, 90
Bahntreuer Not---Aus: Bedienung 100
Bahntreuer Stopp bei Bedienerschutzverletzung: Bedienung 101
BASE: Bedienung 36
BASE_CONV[1]: Applikationen 49
Basis: Bedienung 189; Inbetriebnahme 51
Basis---Koordinatensystem: Bedienung 33, 46; Prog. Experte 60
Basisbezogene Interpolation: Prog. Experte 60
Basistyp: Bedienung 190
Baudrate: Applikationen 41
Bauhinweise: Sicherheit KRC (10.00.03) de 14
Bearbeiten: Bedienung 85, 159, 166
Bedienelemente: Bedienung 8, 18
Bedienoberfläche: Bedienung 25, 60
Bedienung: Sicherheit KRC (10.00.03) de 8
Befehle: Bedienung 159, 194
Befehlseingabe VW_USER: Applikationen 51
Begriffsbestimmungen: Prog. Anwender 27
Beispiel: RobSysEinleitung_11.04_00 8
Beispiel Momentenbetrieb: Konfiguration 64
Belastungen: Sicherheit KRC (10.00.03) de 14
Benutzerebenen: Bedienung 178
Benutzergruppe: Konfiguration 16
Bereich ausschneiden: Prog. Anwender 8
Bereich einfügen: Prog. Anwender 7
Bereich kopieren: Prog. Anwender 7
Bereich löschen: Prog. Anwender 8
Bereichsendschalter: Sicherheit KRC (10.00.03) de 20
Bereit: Konfiguration 76
Berufsgenossenschaft: Sicherheit KRC (10.00.03) de 20, 21
Beschädigung des Robotersystems: Sicherheit KRC (10.00.03) de 7
Beschleunigung: Prog. Anwender 40, 44, 47, 49, 50
Beschleunigungen: Sicherheit KRC (10.00.03) de 14
Besondere Sicherheitsmaßnahmen: Sicherheit KRC (10.00.03) de 10
Bestimmungsgemäße Verwendung: Sicherheit KRC (10.00.03) de 6
Betrag: Prog. Experte 48
Betrieb: Sicherheit KRC (10.00.03) de 19, 21, 22
Betrieb in explosionsgefährdeten Bereichen: Sicherheit KRC (10.00.03) de 17
Betriebsanleitung: Sicherheit KRC (10.00.03) de 5
Betriebsart: Applikationen 78
Betriebsartenwahlschalter: Bedienung 19, 43
Betriebsraum: Sicherheit KRC (10.00.03) de 17
Betriebsstoffe: Sicherheit KRC (10.00.03) de 12, 23
Bewegliche Elektrode: Applikationen 36
Bewegungsanweisungen: Prog. Experte 55
Bewegungsart: Prog. Anwender 40, 44, 47, 49, 50
Bewegungsarten: Prog. Anwender 34
Bewegungsbefehle: Bedienung 159; Prog. Anwender 34
Bewegungsbereiche der Achsen: Applikationen 68
Bezeichnungsschilder: Sicherheit KRC (10.00.03) de 24
Binär---/Analogausgabe: Prog. Anwender 96
Binär---Ausgang: Prog. Anwender 26
Binär---Eingänge: Prog. Anwender 26
Binäre Ausgabe: Bedienung 177
Binäre E/A: Bedienung 121, 182; Konfiguration 11
binäre/analoge Ausgaben: Prog. Anwender 90
binären Ein---/Ausgängen: Prog. Experte 122
Binärsystem: Prog. Experte 26
Binden: Prog. Experte 10
C
CA: Prog. Experte 88
CAL_DIG[1]: Applikationen 49
Call by reference: Prog. Experte 142
Call by valu: Prog. Experte 142
Caller Stack: Bedienung 139
CAN---Conveyor---Modul: Applikationen 39
CD---ROM---Laufwerk: Bedienung 8
CELL---Konfiguration: Bedienung 192; Inbetriebnahme 97
CHAR: Prog. Experte 25
Character: Prog. Experte 27
CheckOk: Inbetriebnahme 19
CIRC: Bedienung 194; Prog. Anwender 34, 46
Client: Inbetriebnahme 116
COM1: Bedienung 8
COMMUNICATION: Applikationen 43
ConfigMon.ini: Bedienung 137
ConfigMon.ini bearbeiten: Konfiguration 59
CONTINUE: Prog. Experte 92
Control ON: Bedienung 8
CONV_POSI[1]: Applikationen 50
Conveyor: Sicherheit KRC (10.00.03) de 11, 20; Applikationen 38
CONVEYORINIT: Applikationen 52
CONVEYORON: Applikationen 51, 52
COR_DIR[1]: Applikationen 47
COS(X): Prog. Experte 48
Cosinus : Prog. Experte 48
COUNT_ENABLE[1]: Applikationen 47
COUNT_RESET[1]: Applikationen 47
CROSS: Bedienung 185
CROSS---Logbuch: Bedienung 139, 147
CSTEP: Prog. Experte 14
CTRL+C: Prog. Anwender 7
CTRL+F: Prog. Anwender 10
CTRL+V: Prog. Anwender 7
CTRL+X: Prog. Anwender 8
CTRL---Taste: Bedienung 23
Cursor---Tasten: Bedienung 22
D
Darstellung: Bedienung 159
Datei: Bedienung 73, 159, 160, 161
Datei laden: Applikationen 68
Datei Öffnen: Bedienung 71
Dateien für VW_USER: Applikationen 44
Dateikonzept: Prog. Experte 8
Dateiliste: Bedienung 59, 66; Prog. Experte 9
Dateimanager: Bedienung 59
Dateiname: Bedienung 68
Dateioperationen: Bedienung 159
Dateistruktur: Prog. Experte 9
Datenliste: Bedienung 161; Prog. Experte 9
Datenliste öffnen: Bedienung 72
Datentyp: Prog. Experte 23
Deckenmontage: Konfiguration 63
DEF: Prog. Experte 9
DEF---Vereinbarung: Prog. Experte 137
DEFAULT: Prog. Experte 110
Default: Inbetriebnahme 49, 68
DEFDAT: Prog. Experte 171
DEFNET.INI: Applikationen 41
Dejustage: Inbetriebnahme 7
Dejustieren: Applikationen 26
Deklaration: Prog. Experte 23
DEL---Taste: Bedienung 23
E
E/A Langtexte: Bedienung 162
E/A Treiber: Bedienung 127, 177, 182; Konfiguration 12
E/A---Schnittstelle zum CAN---Conveyor---Modul: Applikationen 45
F
Fahrbedingung: Prog. Anwender 73, 74, 79
Farbkennzeichnungen: Sicherheit KRC (10.00.03) de 8
FB ONL: Bedienung 196; Prog. Anwender 74
FB PSPS: Bedienung 196; Prog. Anwender 79
Fehleranzeige: Bedienung 69
Fehlerbehandlung: Inbetriebnahme 78
Fehlerbeseitigung: Applikationen 55
Fehlerdiagnose: Bedienung 69; Applikationen 55
G
Gefahren: Sicherheit KRC (10.00.03) de 8
Gefahren für Leib und Leben: Sicherheit KRC (10.00.03) de 5
Gefahrenbereiche: Sicherheit KRC (10.00.03) de 8
Gefahrenhinweise: Sicherheit KRC (10.00.03) de 8
Genau: Prog. Anwender 49, 50
Genauhalt: Prog. Anwender 35, 38, 42, 46, 90
Generatorischer Stopp: Bedienung 100
Geometrische Datentypen: Prog. Experte 34
Gerätetyp: RobSysEinleitung_11.04_00 11
Geschwindigkeit: Inbetriebnahme 33, 36, 39, 52, 83
Geschwindigkeitskriterium: Prog. Experte 97
Geschwindigkeitsproportionale Analogspannung: Prog. Anwender 85
Geschwindigkeitsreduzierung: Prog. Anwender 52
Geschwindigkeitsverstärkung: Applikationen 47
Gewichte: Sicherheit KRC (10.00.03) de 14
Gewichtsausgleichssystem: Sicherheit KRC (10.00.03) de 10, 21
Gewichtsdifferenz: Inbetriebnahme 12
Gleichzeitiges Verfahren: Bedienung 34
GLOBAL: Prog. Experte 173
Globale Datenlisten: Prog. Experte 172
Globale Variable: Prog. Experte 173
Glossar: Anhang Bedienhandbuch 5
Go: Bedienung 102; Prog. Experte 14
Greifer: Sicherheit KRC (10.00.03) de 11
Greiferbezogene Interpolation: Prog. Experte 61
Grundachsen: Bedienung 51
Grundeinstellungen: Applikationen 40
Grundstellung: Konfiguration 77
H
Haftungshinweis: Sicherheit KRC (10.00.03) de 5
Hand---OV---Schritte: Bedienung 47
Hand---Override: Bedienung 47
Handachsen: Bedienung 51; Konfiguration 66
Handachsensingularität: Prog. Experte 76
Handachsgetriebe: Konfiguration 63
Handbetrieb: Bedienung 102
I
I---BUS alternativ: Bedienung 196
I---Step: Bedienung 102
i/bin: Bedienung 196; Prog. Anwender 63
IBGN: Bedienung 196; Prog. Anwender 70
Identifikation: Inbetriebnahme 116
IF---Anweisung: Prog. Experte 109
Inbetriebn.: Bedienung 159, 186
Inbetriebnahme: Sicherheit KRC (10.00.03) de 6, 22
Indirekt: Bedienung 189; Inbetriebnahme 51, 54
Industrieroboter: Sicherheit KRC (10.00.03) de 5
Info: RobSysEinleitung_11.04_00 8; Bedienung 157
Initialisierung: Prog. Experte 24
Inkremental---Step: Bedienung 102
Inkrementalgeber: Applikationen 49
Inkrementell: Bedienung 183
Inkrementelles Handverfahren: Bedienung 58
J
Justage: Bedienung 159; Inbetriebnahme 5, 7, 13; Applikationen 26
Justage mit Lastberücksichtigung: Inbetriebnahme 12
Justage ohne Lastberücksichtigung: Inbetriebnahme 12
Justage prüfen: Bedienung 191
Justage setzen: Bedienung 191
JX, JY, JZ: Inbetriebnahme 49, 70
K
Kaltstart: Bedienung 179
Kaltstart erzwingen: Konfiguration 18
Kap: RobSysEinleitung_11.04_00 9
Kappen Kontrolle: Applikationen 34
Kappenfräsen: Prog. Anwender 60
Kartesisch: Bedienung 128, 183
Kartesischer Abstand: Prog. Anwender 11
Kartesisches Koordinatensystem: Prog. Experte 57
KCIRC: Bedienung 195; Prog. Anwender 34, 49, 50
KCP---Anschluß: Bedienung 10
Kein Momentenbetrieb möglich: Konfiguration 63
Kette steht: Applikationen 57
Kettenbewegung: Applikationen 54
Kimme/Korn---Markierung: Inbetriebnahme 6
Kinematik auswählen: Bedienung 45
Kinematiknummer: Inbetriebnahme 82
Kinematische Kette: Prog. Experte 61, 62
Klebeapplikationen: Prog. Anwender 34, 49
Kleidung: Sicherheit KRC (10.00.03) de 21
KLIN: Bedienung 195; Prog. Anwender 34, 49
Kollisionsschutz: Sicherheit KRC (10.00.03) de 20
Kollisionsüberwachung: Konfiguration 69
Kommentar: Bedienung 75; Prog. Anwender 101
Kommentare: Prog. Experte 17
Kommutierung: Inbetriebnahme 23
Kompilieren: Prog. Experte 10
Konfiguration: Bedienung 159, 176
Konfigurationsdaten: Bedienung 162
Konfigurieren der Bewegungsbereiche: Applikationen 68
Konfigurieren der Schweißzange: Applikationen 32
Konfigurieren des Meßvorgangs: Applikationen 67
konstant + bahnbezogen: Prog. Experte 85
Konstante Analogspannung: Prog. Anwender 84
Konstante bzw. variable Orientierung: Prog. Experte 80
Konstante Spannung und Pendelauslenkung: Prog. Anwender 88
Kontrast: Bedienung 17
Koordinaten: Inbetriebnahme 71
Koordinatensysteme: Bedienung 33, 46
Koordinatensysteme TOOL, BASE, WORLD: Bedienung 57
Kopfzeile: Bedienung 59, 61
Kopieren: Bedienung 85; Prog. Anwender 7
Kopplung der Handachsen: Inbetriebnahme 24
KR3: Inbetriebnahme 22
Kraftkalibrierung: Applikationen 28, 31
Kraftkennlinie: Applikationen 13
Kraftmesser: Applikationen 28
Kreisbewegungen: Prog. Experte 88
Kreiswinkel: Prog. Experte 88
KRL: Konfiguration 16
KRL---Funktionsaufruf: Prog. Anwender 100; Prog. Experte 175
L
Länge: Konfiguration 11
Langtext: Bedienung 192; Inbetriebnahme 100
Lastdatenermittlung: Bedienung 192; Inbetriebnahme 102
Lastjustage: Bedienung 191
Lastkorrektur: Bedienung 191
Laufwerke: Bedienung 8, 60
LDEL---Taste: Bedienung 23
Lebensdauer: Prog. Experte 22
LED---Anzeigen: Applikationen 43
Leistungsschild: Sicherheit KRC (10.00.03) de 24
Leitrechner: Konfiguration 73
Leitungsquerschnitt: Sicherheit KRC (10.00.03) de 21
Lernen: Inbetriebnahme 17
Lesehinweise: RobSysEinleitung_11.04_00 7
Letzter Befehl: Prog. Anwender 38
Letzter Punkt erreicht: Konfiguration 77
Lichtschranken: Sicherheit KRC (10.00.03) de 14
Lichtvorhang: Sicherheit KRC (10.00.03) de 14, 20
LIN: Bedienung 194; Prog. Anwender 34, 42
LIN---Bewegung programmieren: Prog. Anwender 40, 44
LINEAR_BASE ( ): Applikationen 49
Linearbewegungen: Prog. Experte 87
Lineare Bewegung: Prog. Anwender 42
Lineareinheit: RobSysEinleitung_11.04_00 10
Logbuch: Bedienung 80, 139, 140, 162, 184
Logikbefehle: Bedienung 159
Logische Operatoren: Prog. Experte 44
Lokale Datenlisten: Prog. Experte 171
Lokale Unterprogramme / Funktionen: Prog. Experte 139
LOOP: Prog. Experte 116
Löschen: Bedienung 86; Prog. Anwender 8
LPKT: Konfiguration 77
LPT1: Bedienung 8
M
M: Inbetriebnahme 49, 70
MACID: Applikationen 41, 45
MAKRO: Prog. Anwender 53
Makro: Bedienung 195
Makro Maker: Inbetriebnahme 120
Makro---SPS: Prog. Anwender 55
Makro---Zuweisungsliste: Inbetriebnahme 100
MAKRO/UP---Schleife: Bedienung 195; Prog. Anwender 61
Makros: Bedienung 162
MakroSAW: Bedienung 106; Prog. Anwender 55
MakroSPS: Prog. Anwender 68, 69, 71, 100
Mängel: Sicherheit KRC (10.00.03) de 22
Manuelle Funktionen: Applikationen 32
Manueller Programmablauf: Bedienung 102
Marke: Prog. Anwender 102
Markierter Bereich: Prog. Anwender 11
Maschinendaten: Bedienung 162
Masse: Applikationen 62
Masse der Traglast automatisch ermitteln: Applikationen 74
Masse der Traglast manuell eintragen: Applikationen 75
Massenträgheiten: Applikationen 62
MASSIDEN.EXE: Applikationen 64
Materialdicke: Applikationen 24
Mathematische Standardfunktionen: Prog. Experte 48
Mauskonfiguration: Bedienung 50, 53, 178
Mausposition: Bedienung 49, 178
Mechanische Grundstellung: Prog. Experte 65
Mechanische Nullstellung: Prog. Experte 65
Mechanische Nullstellung erreicht: Inbetriebnahme 6
Mehrdeutige Roboterkinematiken: Prog. Experte 71
Mehrdeutigkeiten : Prog. Experte 71
Meldungen: Applikationen 57
Meldungsfenster: Bedienung 28
Menü ”Bearbeiten”: Bedienung 85, 89
Menü ”Datei”: Bedienung 73
Menügeführte Variablen---Anzeige und Wertzuweisung: Applikationen 47
Menükey: RobSysEinleitung_11.04_00 9; Bedienung 26, 159
Menükeyleiste: Bedienung 26
Menükeys: Bedienung 22
Menüleiste: Bedienung 159
N
nach Programm---Stop von Hand verfahren: Konfiguration 83
Nachteachen von Punkten: Applikationen 54
Nah: Prog. Anwender 52
Nahsensor: Prog. Anwender 51, 52
Name: Bedienung 87
Navigator: Bedienung 59
Netz: Bedienung 163
Netzlaufwerke: Inbetriebnahme 117
Netzwerk Setup: Bedienung 193
Neu: Bedienung 65
Neuer Wert: Bedienung 136
Nicht bestimmungsgemäße Verwendung: Sicherheit KRC (10.00.03) de 5
Nietzangen: Applikationen 79
Nonius: Inbetriebnahme 5
Norm für Industrieroboter---Sicherheit: Sicherheit KRC (10.00.03) de 8
NOT---AUS: Sicherheit KRC (10.00.03) de 8, 12
NOT---AUS: Sicherheit KRC (10.00.03) de 14, 20; Inbetriebnahme 7; Konfiguration 76
NOT---AUS entriegeln: Bedienung 18
NOT---AUS---Kreis: Sicherheit KRC (10.00.03) de 20
NOT---AUS---Taste: Bedienung 18
NUM: Bedienung 64
NUM---Taste: Bedienung 23
Numerische Eingabe: Bedienung 189, 190; Inbetriebnahme 30, 31, 45, 51, 56, 57, 67
Nummernfeld: Bedienung 22
O
OEG: Sicherheit KRC (10.00.03) de 17
Offline---Programme: Inbetriebnahme 95
Öffnen: Prog. Anwender 31
Öffnen und Schließen der Zange: Applikationen 32
Öffnen von Dateien und Verzeichnissen: Bedienung 76
Offset: Bedienung 190; Inbetriebnahme 81, 87
Offset (numerisch): Inbetriebnahme 81, 90
Offset externer Kinematik: Bedienung 190; Inbetriebnahme 57, 61, 91
Offset lernen: Bedienung 191
ON---LINE---Wartebedingung: Prog. Anwender 73
Online: Prog. Anwender 7
Online---Hilfe: Bedienung 154, 156
Operatoren: Prog. Anwender 26
Orientierung: Inbetriebnahme 27; Prog. Anwender 42, 46
Orientierungsbestimmung: Inbetriebnahme 31
Orientierungsführung: Prog. Experte 80
Orientierungskriterium: Prog. Experte 97
Oszilloskop: Bedienung 139, 184
OUT_STOP[1]: Applikationen 47
OUTSIDE_STOP: Konfiguration 25, 36
Override: Konfiguration 15
P
P_FBIT: Konfiguration 75
P_LEN: Konfiguration 75
P_TYPE: Konfiguration 75
P1: Applikationen 52, 53
Parameter: Bedienung 64, 88, 167
Parameter P1: Applikationen 52
Parameterliste: Bedienung 27; Prog. Experte 142
Parameterübergabe: Prog. Anwender 100; Prog. Experte 175
Parität: Konfiguration 11
PC---Lüfter: Konfiguration 72
Programm---Verfahrgeschwindigkeit: Bedienung 99
Programmablaufart: Bedienung 102; Prog. Experte 14
ProgramMaker: Bedienung 192
Programmausführung stoppen: Bedienung 112, 113
Programme Laden und Sichern: Prog. Anwender 30
Programmerstellung: Bedienung 159
Programmfenster: Bedienung 27, 95
Programmierbetrieb: Konfiguration 76
Programmierung: Applikationen 35
Programminstallation: Applikationen 60
Programmname: Bedienung 98
Programmoverride: Bedienung 31, 99, 178; Konfiguration 15
Programmstart rückwärts: Bedienung 102, 110
Programmstart rückwärts---Taste: Bedienung 21
Programmstart vorwärts: Inbetriebnahme 15, 17, 19, 20
Programmstart vorwärts---Taste: Bedienung 21, 24
Programmtaste: RobSysEinleitung_11.04_00 9
Programmunterbrechung ohne Spannungsausfall: Konfiguration 80
Programmzeiger: Bedienung 95
Programmzeilen ausführen: Bedienung 106
Projektierbarer Ausgang für Hardwarewarnung: Konfiguration 72
Projektierung von Variablen, Eingängen und Ausgängen: Applikationen 45
Prüfung der Achsbereiche: Applikationen 70
PSTEP: Prog. Experte 14
PTP: Bedienung 194; Prog. Anwender 34, 38; Prog. Experte 63
PTP---Bahnüberschleifen: Prog. Experte 102
PUBLIC: Prog. Experte 172
Puls: Bedienung 196; Prog. Anwender 68
Pulsausgänge: Prog. Anwender 68
PULSE: Prog. Experte 127
Punkt SPS: Applikationen 38, 51, 53
Punkt übernehmen: Inbetriebnahme 84
Punkt zu Punkt Bewegung: Prog. Anwender 38
Punkt---Separator: Prog. Experte 32
Punkt---zu---Punkt Bewegungen: Prog. Experte 63
Q
Querverweis
Abschn: RobSysEinleitung_11.04_00 9
HB: RobSysEinleitung_11.04_00 9
HK: RobSysEinleitung_11.04_00 9
Kap: RobSysEinleitung_11.04_00 9
Querverweise: RobSysEinleitung_11.04_00 9
R
R_FBIT: Konfiguration 75
Rampenstop: Bedienung 99
Raumabtastungen: Sicherheit KRC (10.00.03) de 14
Raumbezogene Orientierung: Prog. Experte 83
RDW: Inbetriebnahme 95, 123
REAL: Prog. Experte 25, 27
REAL $CURR_ACT[12]: Konfiguration 68
REAL $CURR_RED[12,2]: Konfiguration 68
Referenzliste: Bedienung 149, 185
Referenzpunkt: Inbetriebnahme 29
Referenzwerkzeug: Inbetriebnahme 30, 82
REPEAT: Prog. Experte 115
Reset: Bedienung 10, 112, 114
RESUME: Prog. Experte 157
Richtungsanzeige: Bedienung 97
Risiken: Konfiguration 63
RK100: Konfiguration 76
RK23: Konfiguration 76
RK8: Konfiguration 76
RK9: Konfiguration 76
Roboter: Sicherheit KRC (10.00.03) de 5
Roboter am Ende seines Arbeitsbereichs --- OUT_STOP[1]: Applikationen 47
Roboter arbeitet Programm ab --- $PRO_ACT: Applikationen 45
Roboter in der Synchronphase --- SYNCHRON: Applikationen 47
Roboter nicht in der Synchronphase --- INV_SYNCHRON: Applikationen 47
Roboter wartet auf Synchronisation: Applikationen 55
Roboter---Koordinatensystem: Inbetriebnahme 26; Prog. Experte 60
Roboterdaten: Inbetriebnahme 123
Roboterflansch---Koordinatensystem: Inbetriebnahme 26
Roboterkoordinaten: Prog. Anwender 48
Robotermodell: Applikationen 61
S
Sachschäden: RobSysEinleitung_11.04_00 7
SAK: Konfiguration 77
SAK---Fahrt: Bedienung 103, 113
Satzanwahl---Makro: Bedienung 106; Prog. Anwender 55
Satzko: Bedienung 103
Satzkoinzidenz: Bedienung 103; Konfiguration 77
Satzkoinzidenz --- SAK: Prog. Experte 70
Satzzeiger: Bedienung 27, 30, 95
Schalter S1: Applikationen 41
Schaltpkt ...[mm]: Prog. Anwender 91
Schilder: Sicherheit KRC (10.00.03) de 8, 24
Schlauchpakete: Applikationen 62, 79
Schlüsselwort: Prog. Experte 95
Schlüsselworte: Prog. Experte 98
Schnittstelle konfigurieren: Konfiguration 73
Schnittstellenbeschreibung: Konfiguration 75
Schräglage des Roboters: Konfiguration 64
Schrankschloß: Bedienung 8, 9
Schraubenverbindungen: Sicherheit KRC (10.00.03) de 23
Schreibmarke: Bedienung 96
Schritt: Bedienung 198; Prog. Anwender 105
Schutzbekleidung: Sicherheit KRC (10.00.03) de 21
Schutzkappe: Inbetriebnahme 6
Schutzkleidung: Sicherheit KRC (10.00.03) de 12
Schutzmaßnahmen: Sicherheit KRC (10.00.03) de 22
Schutztür: Bedienung 20
Schutzzone 2: Sicherheit KRC (10.00.03) de 17
Schwebende Lasten: Sicherheit KRC (10.00.03) de 21
Schweißende: Applikationen 11, 35
Schweißkraft: Applikationen 8
Schweißprogramme: Applikationen 24
Schweißprozeß: Applikationen 9
Schweißspaltdicke: Applikationen 24, 25
Schweißstart: Applikationen 35
Schweißstartsignal: Applikationen 11
Schweißzyklus: Applikationen 35
Schwerpunktlage: Applikationen 62
Seitliche Auslenkung: Prog. Anwender 98
Sensor---Flags: Prog. Anwender 26
Sensorbetrieb: Sicherheit KRC (10.00.03) de 11
Sensorüberwachte Linear---Bewegung: Prog. Anwender 35
Serien---Nummer: Sicherheit KRC (10.00.03) de 6
Seriennummer: RobSysEinleitung_11.04_00 11; Inbetriebnahme 123
Seriennummer Roboter: RobSysEinleitung_11.04_00 10
Seriennummer Steuerung: RobSysEinleitung_11.04_00 10
Serifenschrift: RobSysEinleitung_11.04_00 9
Serifenschrift fett: RobSysEinleitung_11.04_00 9
Service: Bedienung 159
Serviceanfragen: RobSysEinleitung_11.04_00 10
Serviceprogramme: Inbetriebnahme 95
Servicestützpunkte: RobSysEinleitung_11.04_00 15
SERVO GUN TECH: Applikationen 6
Servo---Zange: Bedienung 195; Inbetriebnahme 122
ServoGun: Prog. Anwender 59
ServoGun---Schweißpunkt rückwärts zu überfahren: Bedienung 102
Servozange: Prog. Anwender 59
SHIFT---Taste: Bedienung 24
Sicherheit: Sicherheit KRC (10.00.03) de 8
Sicherheitsbelehrungen: Sicherheit KRC (10.00.03) de 23
Sicherheitsbereich: Sicherheit KRC (10.00.03) de 14
Sicherheitseinrichtungen: Sicherheit KRC (10.00.03) de 10, 22
Sicherheitsfunktionen: Sicherheit KRC (10.00.03) de 12
Sicherheitshinweise: Bedienung 101
Sicherheitskennzeichnung: Sicherheit KRC (10.00.03) de 24
Sicherheitskreis: Bedienung 149, 185
Sicherheitsmaßnahmen: Sicherheit KRC (10.00.03) de 10
Spannungsversorgung: Applikationen 42
Speicherabzug : RobSysEinleitung_11.04_00 10
Sperrzäune: Sicherheit KRC (10.00.03) de 14
Sprache: Bedienung 179; Konfiguration 19
Sprung: Prog. Anwender 102
Sprunganweisung: Prog. Experte 109
SPS: Bedienung 170, 173; Prog. Anwender 7, 40, 44, 47, 49, 50
SPS Schließen: Prog. Anwender 61
SPS.SUB: Konfiguration 77
SPS---Anweisungen: Prog. Anwender 61, 63
SPSTrig: Prog. Anwender 40, 44, 47, 49, 50
SQRT(X): Prog. Experte 48
SRB: Konfiguration 77
SStep(T1): Bedienung 43
SStep(T2): Bedienung 31, 43
Standardisierung der Schnittstelle: Konfiguration 84
Start: Applikationen 80
Start der Lastdatenermittlung: Applikationen 73
Start Folge: Konfiguration 77
Start---Taste: Bedienung 21, 24; Inbetriebnahme 15, 16, 17, 19, 20
Startbit: Konfiguration 11
Status: Prog. Experte 70
Statuskey: Bedienung 26
Statuskey ”hoch/tief”: Prog. Anwender 25
Statuskeyleiste: Bedienung 26
Statuskeys: Bedienung 22
Statuswort: Applikationen 56
Statuszeile: Bedienung 19, 28, 30, 59, 68, 97
Stecker ST1: Applikationen 42
Stecker ST2: Applikationen 42
Stecker ST3: Applikationen 42
Stecker ST4: Applikationen 42
Stecker ST6: Applikationen 42
Steckerbelegung: Applikationen 42
Steuerschrank: Sicherheit KRC (10.00.03) de 5
Steuerung: RobSysEinleitung_11.04_00 10
Steuerung herunterfahren: Bedienung 12
Steuerung hochfahren: Bedienung 11
Stop---Taste: Bedienung 21
Strecklage: Prog. Experte 75
Strombegrenzung: Applikationen 8
T
t: Bedienung 196; Prog. Anwender 65
t=STOP: Bedienung 196; Prog. Anwender 66
T_RET[1]: Applikationen 48
T1---Betrieb: Applikationen 78
T1---Modus (SStep (T1): Applikationen 53
T2---Betrieb: Applikationen 78
T3: Sicherheit KRC (10.00.03) de 17
TAB---Taste: Bedienung 23
TAN(X): Prog. Experte 48
Tangens: Prog. Experte 48
Tastenfeld: Bedienung 23
TCP: Inbetriebnahme 28, 32, 87
TCP/IP: Inbetriebnahme 116
Teachen der Bewegungen im Conveyor---Bereich: Applikationen 53
Teachen der Schweißpunkte: Prog. Anwender 59
Technische Daten: Sicherheit KRC (10.00.03) de 6
Teilekatalog: Sicherheit KRC (10.00.03) de 12
Temperaturklasse: Sicherheit KRC (10.00.03) de 18
Templates: Bedienung 65
Testfahrt: Applikationen 62, 78, 81
Textauszeichnung
Anführungszeichen: RobSysEinleitung_11.04_00 9
eckige Klammern: RobSysEinleitung_11.04_00 9
Fettdruck: RobSysEinleitung_11.04_00 9
kursiv: RobSysEinleitung_11.04_00 9
Serifenschrift: RobSysEinleitung_11.04_00 9
Serifenschrift fett: RobSysEinleitung_11.04_00 9
Textauszeichnungen: RobSysEinleitung_11.04_00 9
Texthervorhebungen: RobSysEinleitung_11.04_00 7
Timer: Bedienung 133; Prog. Anwender 26; Prog. Experte 50
Timer starten: Prog. Anwender 65
Timer stoppen: Prog. Anwender 66
Timer---Flags: Prog. Anwender 26
Tip: RobSysEinleitung_11.04_00 8
Tippbetrieb: Bedienung 43
Toleranzen: Bedienung 190; Inbetriebnahme 72
Toleranzgrenzen: Inbetriebnahme 72
TOOL: Bedienung 39
Tool Center Point: Inbetriebnahme 28; Prog. Experte 63
TOOL_DATA[1]: Applikationen 38, 53
TOOL_DATA[2]: Applikationen 38, 53
Tragkraft: Sicherheit KRC (10.00.03) de 21
Traglasteinwirkung: Sicherheit KRC (10.00.03) de 11
Transport: Sicherheit KRC (10.00.03) de 21
Transportstellung: Sicherheit KRC (10.00.03) de 21
TRIGGER: Prog. Experte 161
Triggerpunkt: Prog. Anwender 91
Trittplatte: Sicherheit KRC (10.00.03) de 20
Trockenlauf: Bedienung 107
Türendschalter: Sicherheit KRC (10.00.03) de 14
Turn: Prog. Experte 70
Typenschild
KR C3: RobSysEinleitung_11.04_00 12
Roboter: RobSysEinleitung_11.04_00 11
Typenschilder: RobSysEinleitung_11.04_00 11
U
Überbrücken der Arbeitsraumüberwachung: Konfiguration 26
Überkopf---Singularität: Prog. Experte 74
Überlagerte Bewegung: Bedienung 54
Überlastung: Inbetriebnahme 48
Übernahme akt. Koordinaten: Prog. Anwender 48
Überprüfung der Kraftkalibrierung: Applikationen 31
V
variabel + bahnbezogen: Prog. Experte 85
Variable: Bedienung 159
Variable --- Einzeln: Bedienung 135
Variablen: Bedienung 136
Variablen für den Momentenbetrieb: Konfiguration 68
VB: Prog. Anwender 40, 44, 47, 49, 50, 52
VE: Prog. Anwender 40, 44, 47
W
W Onl: Prog. Anwender 73
W onl/bis: Prog. Anwender 75
W Zeit: Prog. Anwender 77
WAIT: Prog. Experte 118
WAIT SEC: Prog. Experte 118
Wandmontage: Konfiguration 63
Warmfahren: Applikationen 78, 81
Warn--- und Sicherheitshinweise: Bedienung 101
Warnhinweise: Sicherheit KRC (10.00.03) de 12, 24
Warnung: RobSysEinleitung_11.04_00 7
Warte onl/bis: Bedienung 196
Warte Prozess: Konfiguration 77
Warte Slave: Konfiguration 77
Warte Zeit: Bedienung 196
Warte--- und Fahranweisungen: Prog. Anwender 73
Wartebedingung: Bedienung 147, 185; Prog. Anwender 73, 75
Wartung: Sicherheit KRC (10.00.03) de 8
Wartungsarbeiten: Sicherheit KRC (10.00.03) de 22
Wartungsvorschriften: Sicherheit KRC (10.00.03) de 6
Wartungszyklen: Sicherheit KRC (10.00.03) de 12
Wegverstärkung: Applikationen 47
Weichschaltung Achse 1: Konfiguration 65
WAIT FOR $IN[]: Konfiguration 65
Weichschaltung Achse 3: Konfiguration 66
Weiterschaltbedingung: Bedienung 198; Prog. Anwender 105
Welt---Koordinatensystem: Bedienung 33, 46; Inbetriebnahme 26; Prog. Experte 59
Werk---Nummer: Sicherheit KRC (10.00.03) de 6
X
X, Y, Z: Inbetriebnahme 27, 36, 49, 67, 70, 86, 90
X---Achse: Bedienung 39
XYZ 4---Punkt: Bedienung 189; Inbetriebnahme 30
XYZ Referenz: Bedienung 189; Inbetriebnahme 30
XYZ---4 Punkt: Inbetriebnahme 31, 32
XYZ---Referenz: Inbetriebnahme 31, 34
Z
Z---Y---X Euler---Winkel: Inbetriebnahme 27
Zähler: Bedienung 132, 159
Zähler und Binärausgänge: Prog. Anwender 63
Zählerwert Inkrementalgeber --- Kettenweg --- CAL_DIG[1]: Applikationen 49
Zange: Bedienung 122, 177, 182, 195; Prog. Anwender 57; Konfiguration 7
Zangenbefehle: Prog. Anwender 57
Zangenfunktionen: Prog. Anwender 61
Zangenparameter: Applikationen 17
Zangentyp: Bedienung 122; Konfiguration 7, 9
Zeichenfolge ersetzen: Prog. Anwender 10
Zeichenfolge suchen: Prog. Anwender 10
Zeile/Spalte: Bedienung 98
Zeilenumbruch: Bedienung 97, 179; Konfiguration 21
Zielpunkt: Prog. Anwender 91
Zirkulare Bewegung: Prog. Anwender 46
Zubehör: Sicherheit KRC (10.00.03) de 11
Zuführungen: Sicherheit KRC (10.00.03) de 11
Zündtemperatur: Sicherheit KRC (10.00.03) de 17
Zurücksetzen: Prog. Anwender 22
Zusatzachsen: RobSysEinleitung_11.04_00 10; Bedienung 45
Zusatzausrüstungen: Sicherheit KRC (10.00.03) de 11, 19
Zusatzfenster: Bedienung 27
Zusatzinformationen: Bedienung 68
Zusatzlastdaten: Bedienung 190; Inbetriebnahme 68
Zusatzsoftware installieren: Inbetriebnahme 125
Zustands---LED: Bedienung 8
Zustandsfenster: Bedienung 44
Zustimmtaste: Inbetriebnahme 15, 17, 19, 20
Zustimmtasten: Bedienung 24
Zustimmungsschalter: Sicherheit KRC (10.00.03) de 12
Zweidimensionale Felder: Prog. Experte 29
Zweidimensionales Feld: Prog. Experte 29
Zyklische Flags: Bedienung 130; Prog. Experte 51
Zyklische Initialisierung: Prog. Anwender 59