Sie sind auf Seite 1von 420

SOFTWARE

VKR C...

Inhalt Programmierhandbuch

VW System Software (VSS)


Release 5.4

Stand: 14.11.2005 Version: 00

VKRC/InhaltPHR5.4 11.05.00 de 1 von 3


e Copyright 2005

KUKA Roboter GmbH


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

KUKA Interleaf

2 von 3 VKRC/InhaltPHR5.4 11.05.00 de


Teil 1: Bedienhandbuch
Einleitung
Sicherheit
Bedienung
Inbetriebnahme
Programmierung Anwender
Anhang

Teil 2: Programmierhandbuch
Konfiguration
Programmierung Experte
Applikationen
Anhang

VKRC/InhaltPHR5.4 11.05.00 de 3 von 3


1 Konfiguration
SOFTWARE

VKR C...

Konfiguration

VW System Software (VSS)


Release 5.4

Stand: 14.11.2005 Version: 00

VKRC/KonfigurationR5.4 11.05.00 de 1 von 84


e Copyright 2005

KUKA Roboter GmbH


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

2 von 84 VKRC/KonfigurationR5.4 11.05.00 de


Inhaltsverzeichnis

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

2 System konfigurieren Experte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57


2.1 Variablenübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.1.1 Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.1.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.1.3 ConfigMon.ini bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.2 Trockenlauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.3 5 Home--Positionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.1 Datei “\ R1\ MaDa\ $machine.dat” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

VKRC/KonfigurationR5.4 11.05.00 de 3 von 84


Konfiguration

2.3.2 Datei “\ Steu\ MaDa\ $machine.dat” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61


2.4 Momentenbetrieb (Soft Servo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1.1 Einschränkungen, Risiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.4.1.2 Beispiel Momentenbetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.2 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.4.3 Beispiele für die Weichschaltung von Achsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.4.3.1 Weichschaltung Achse 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.4.3.2 Weichschaltung Achse 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4.4 Beispiel für Achse mit definiertem Moment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4.5 Variablen für den Momentenbetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.5 Kollisionsüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.5.1 Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.5.2 Konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.6 Überwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.6.1 Außenlüfter Steuerschrank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.6.2 PC--Lüfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.6.3 Projektierbarer Ausgang für Hardwarewarnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.6.4 Motorkabelüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

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

4 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren

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

SUBMIT-- Interpreter Starten/Anwählen


Stoppen *1
Abwählen *1

Handverfahren Programm OV--Schritte


Hand OV--Schritte
Benutzergruppe Mausposition
Setze Werkz./Basis Mauskonfiguration

Ein--/Ausschaltopt. Kaltstart erzwingen


PowerOff--Wartezeit *1

Extras Sprache Detailansicht (ASCII)


*1
Rückwärtsfahren Editor Zeilenumbruch
Arbeitsraumüberw. *1
BOF Reinitialisieren Überbrücken
Analyse Rekonfigurieren *1
Konfiguration
Plugin--Konfiguration *1
Passwort ändern *1 *2
Aktionsplaner

(1) Steht nicht in der Benutzergruppe “Anwender” zur Verfügung, wenn “UG15” installiert ist.
(2) Steht nur bei installierter Benutzergruppe “UG15” zur Auswahl.

Abb. 1 Untermenü “Konfiguration”

Datei Neu Folgen


Öffnen UPs
Makros
Drucken VW--User

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

Abb. 2 Untermenü “Datei”

VKRC/KonfigurationR5.4 11.05.00 de 5 von 84


Konfiguration

In der folgenden Tabelle finden Sie eine Aufstellung der in diesem Kapitel aufgeführten Funk-
tionen:

Menü “Konfiguration” Bedeutung


Ein--/Ausgänge Einstellungen für Zange, Binäre Ausgänge, die Automatik--
Extern--Schnittstelle sowie E/A--Treiber.
SUBMIT Interpreter Submit--Interpreter anwählen, starten, stoppen*1 und ab-
wählen*1.
Handverfahren Programm-- und Handoverride-- sowie Mauseinstellungen.
Benutzergruppe Zugriff auf bestimmte Benutzerebenen über Schlüssel--CD.
Setze Werkzeug/Basis Aktuelles Werkzeug und Basis einstellen.
Ein--/ Kaltstart (beim nächsten Hochfahren Kaltstart durchführen)
Ausschaltoptionen und PowerOff--Wartezeit*1 (Projektierte Wartezeit zum näch-
sten Hochlauf).
Extras
Sprache Die Landessprache der Bedienoberfläche.
Editor *1 Einstellungen für den Editor.
Arbeitsraumüberw. *1 Konfigurieren und überbrücken von Arbeitsräumen.
BOF Reinitialisieren Die BOF (Bedienoberfläche) wird ohne Neustart reinitiali-
siert.
Analyse rekonfigurieren*1 Die Analyse wird ohne Neustart rekonfiguriert.
PlugIn Konfiguration*1 Konfigurieren der angebotenen Plugins.
Paßwort ändern *1 Das Kennwort für eine Benutzergruppe ändern.
Aktionsplaner Ausführen von Aktionen zu bestimmten Zeitpunkten oder
bei bestimmten Bedingungen.
Rückwärtsfahren Einstellungen für das Rückwärtsfahren.
ASCII--Konfiguration *2 Einstellen der ASCII--Schnittstelle.
*1 Nicht in der Benutzergruppe “Anwender” verfügbar
*2 Optionales Zusatzprogramm.

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

Tab. 1 Übersicht Untermenüs

6 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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.

Konfiguration Ein--/Ausgänge Zange


SUBMIT Interpreter Binäre E/A
Handverfahren Automatik Extern
Benutzergruppe E/A Treiber
Setze Werkzeug/Basis
Ein--/Ausschaltoptionen
Extras
Rückwärtsfahren

Abb. 3 Untermenü “Ein--/Ausgänge”

Softkey Bedeutung
Schließen Schließt das jeweilige Zustandsfenster.

Tab. 2 Verfügbare Softkeys

1.1.1 Zange
Nach Anwahl von [ Konfigurieren › Ein--/Ausgänge › Zange ] wird das Dialogfenster zur Kon-
figuration der Zange geöffnet.

(1) Zangennummer (1 ... 32) sowie der Zangentyp.


(2) Legt die Funktion fest, die auf dem entsprechenden Ausgang liegen soll.
(3) Legt die Funktion fest, die auf dem entsprechenden Eingang liegen soll.
(4) Für die Zangentypen 3 und 4 können zusätzlich die Interbus--Segmentnummer und Interbus--
Teilnehmernummer angegeben werden.
(5) Die Eingabefelder geben die Bedingung für manuelles Öffnen/Schließen vor.
Abb. 4 Konfiguration Zange “Statisches Ventil, Pulsventil”

VKRC/KonfigurationR5.4 11.05.00 de 7 von 84


Konfiguration

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.

Statisches Ventil / Statisches Ventil mit IBS


Auf einem der konfigurierten Ausgänge liegt das Dauersignal “TRUE” an, auf dem anderen
“FALSE”. Betätigen des entsprechenden Statuskeys kehrt das Signal an beiden Ausgängen
um.

ZANGEn_AUF

ZANGEn_ZU

Abb. 5 Ausgangsverhalten bei statischen Ventilen

Pulsventil / Pulsventil mit IBS


Auf beiden konfigurierten Ausgängen liegt “FALSE” an. Betätigen des enstprechenden Sta-
tuskeys sendet ein Pulssignal.

ZANGEn_AUF

ZANGEn_ZU

Abb. 6 Ausgangsverhalten bei Pulsventilen

8 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

Servozange
Ist nur verfügbar, wenn bei der Installation die Option “Installiere Servo--Zange” ausgewählt
wurde.

4 5 6

(1) Zangennummer sowie Zangentyp.


(2) Schließkraft der Schweißzange und Materialstärke zum Schweißen.
(3) Bedingung für manuelles Öffnen/Schließen. Wird die Bedingung zum Ausführungszeitpunkt
nicht erfüllt, erfolgt eine entsprechende Ausgabe im Meldungsfenster.
(4) Bedingung wahr oder unwahr.
(5) Bedingung Ein/Aus, Eingang, Ausgang, Merker, Flag, Timer--Flag oder Sensor--Flag.
(6) Nummer von Ein--/Ausgang, Merker, Flag, Timer--Flag oder Sensor--Flag.
Abb. 7 Konfiguration Servozange

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

VKRC/KonfigurationR5.4 11.05.00 de 9 von 84


Konfiguration

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

Abb. 9 Ausgangsverhalten bei der E/A--Servozange

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.

Tab. 3 Verfügbare Softkeys

10 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

1.1.2 Binäre E/A


Innerhalb dieses Formulars können Sie die binäre Ausgabe von 1 ... 20 konfigurieren.

Abb. 10 Binäre Ein--/Ausgänge

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.

Es müssen firmenspezifische festgelegte E/A--Ebenen berücksichtigt werden, z. B.


beim Kleben oder Schweißen.

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.

Tab. 4 Verfügbare Softkeys

VKRC/KonfigurationR5.4 11.05.00 de 11 von 84


Konfiguration

1.1.3 Automatik Extern

Weitere Informationen zur Konfiguration der Automatik Extern Schnittstelle finden Sie
im Hauptkapitel [Konfiguration], Kapitel [Automatik Extern].

1.1.4 E/A Treiber


Treiber können über diesen Menübefehl angezeigt, installiert, deinstalliert und modifiziert
werden. Nach Aufruf von [ E/A Treiber ] wird das entsprechende Zustandsfenster angezeigt.

Um Treiber zu installieren oder deinstallieren ist die Benutzergruppe “Experte” erforderlich.

2 3

(1) Treiberliste mit den im System installierten Treibern.


Rot: Treiber läuft ($BUS_STATE = TRUE)
Grau: Treiber läuft nicht ($BUS_STATE = False)
(2) Aktionsliste mit den möglichen Aktionen zum ausgewählten Treiber.
(3) Datei zum Bearbeiten öffnen.
(4) Datei schreibgeschützt öffnen
(5) Vorher konfiguriertes Programm ausführen.

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.

12 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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.

Tab. 5 Verfügbare Softkeys

VKRC/KonfigurationR5.4 11.05.00 de 13 von 84


Konfiguration

1.2 SUBMIT Interpreter


Der Submit--Interpreter ist ein Programm, das parallel zum Roboterprogramm im Hinter-
grund abläuft. Da dieses Programm völlig unabhängig vom angewählten Roboterprogramm
läuft, können Steuerungsaufgaben unterschiedlichster Art damit bewältigt werden. Dies
kann die Steuerung und Überwachung eines Kühlkreislaufs, die Überwachung von Schutz-
vorrichtungen oder auch die Einbindung zusätzlicher Peripheriegeräte sein. Für kleinere
Aufgaben wird so der Einsatz einer zusätzlichen SPS hinfällig, da diese Aufgaben von der
VKRC... mit übernommen werden können.

Konfiguration Ein--/Ausgänge Starten/Anwählen


SUBMIT Interpreter Stoppen
Handverfahren Abwählen
Benutzergruppe
Aktuelle(s) Werkzeug/Basis
Ein--/Ausschaltoptionen
Extras
Rückwärtsfahren

Abb. 12 Untermenü “Submit--Interpreter”

In der Statuszeile wird der momentane Zustand des Submit--Interpreters angezeigt.

Die Hintergrundfarbe im Feld des Submit--Interpreters besitzt folgende Bedeutung:


Grün: Submit--Interpreter läuft.
Rot: Submit--Interpreter ist gestoppt.
Grau: Submit--Interpreter ist abgewählt.

Nur im SStep(T1)-- bzw. SStep(T2)--Betrieb möglich.

14 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

1.3 Handverfahren (Override)


Dieser Menüpunkt ermöglicht die Einstellung der Schrittweiten des Handoverrides (HOV)
sowie des Programmoverrides (POV). Außerdem kann die Mausposition und --konfiguration
verändert werden.

Konfiguration Ein--/Ausgänge Programm OV Schritte


SUBMIT Interpreter Hand OV Schritte
Handverfahren Mausposition
Benutzergruppe Mauskonfiguration
Aktuelle(s) Werkzeug/Basis
Ein--/Ausschaltoptionen
Extras
Rückwärtsfahren

Abb. 13 Untermenü “Handverfahren”

1.3.1 Programmoverride--Schritte (POV)


Normalerweise erfolgt eine Änderung des POV--Wertes in den Schritten 100, 75,
50, 30, 10, 3 und 1 Prozent. Die Option “Programm--OV--Schritte” ermöglicht eine
Veränderung der programmierten Geschwindigkeit in 1%--Schritten.
Benutzen Sie zur Einstellung für den Programmoverride den entsprechenden [ +/-- ]--Status-
key.

1.3.2 Handoverride--Schritte (HOV)


Auch die Änderung des HOV--Wertes erfolgt in den Schritten 100, 75, 50, 30, 10,
3 und 1 Prozent. Die Option “Hand--OV--Schritte” ermöglicht eine Veränderung der
Handverfahrgeschwindigkeit in 1%--Schritten.
Benutzen Sie zur Einstellung die “+/--” --Taste neben dem Statuskey für den Handoverride.

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.

VKRC/KonfigurationR5.4 11.05.00 de 15 von 84


Konfiguration

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.

Tab. 6 Verfügbare Softkeys

16 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

1.5 Setze Werkzeug/Basis


Legt das zu verwendende, aktuelle Werkzeug und das zugehörige Basissystem fest. Als
Voraussetzung müssen Werkzeug und Basis unter der gleichen Nummer vermessen wor-
den sein.
Mit dem Befehl [ Konfiguration › Setze Werkzeug/Basis ] öffnet sich das entsprechende Zu-
standsfenster.

1
2

(1) Aktuelles Werkzeug [ W.Nr.1 ]...[ W.Nr.32 ].


(2) Standard--Werkzeug bzw. Externes Werkzeug.
(3) Bezeichnung des aktuellen Werkzeugs.
(4) Bezeichnung des zum Werkzeug gehörenden Basissystems, sofern dieses vermessen wurde.
Abb. 14 Aktuelles Werkzeug / Aktuelle Basis

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.

Tab. 7 Verfügbare Softkeys

VKRC/KonfigurationR5.4 11.05.00 de 17 von 84


Konfiguration

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

Abb. 15 Untermenü “Ein--/Ausschaltoptionen”

1.6.1 Kaltstart erzwingen


Dieser Menüpunkt steht sowohl dem Anwender, als auch dem Experten zur Verfügung.
Nachdem man einen Kaltstart erzwungen hat, zeigt die Steuerung nach dem Hochfahren
den Navigator an. Eine Programmanwahl erfolgt nicht, die Steuerung wird komplett neu in-
itialisiert.

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.6.2 Ausschalten PowerOff Wartezeit


Das im Expertenmodus zur Verfügung stehende Kommando bietet dem Bediener die Mög-
lichkeit, die standardmäßig eingestellte Wartezeit bis zum Herunterfahren der Anlage zu mi-
nimieren. Nach einem Kalt-- bzw. Warmstart ist diese Funktion wieder ausgeschaltet.

18 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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.

(1) Aktuell eingestellte Landessprache in nationaler und internationaler Schreibweise.


(2) Die zur Verfügung stehenden Fremdsprachen.

Abb. 16 Sprachauswahl

VKRC/KonfigurationR5.4 11.05.00 de 19 von 84


Konfiguration

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.

Tab. 8 Verfügbare Softkeys

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.

Abb. 17 Detailansicht ausgeschaltet

Eingeschaltet zeigt die Funktion Informationen an, die normalerweise unsichtbar bleiben.

Abb. 18 Detailansicht eingeschaltet

20 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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.

Abb. 19 Zeilenumbruch ausgeschaltet

Der umgebrochene Teil der Zeile besitzt keine Zeilennummer und wird stattdessen mit einem
Pfeil markiert.

Abb. 20 Zeilenumbruch eingeschaltet

VKRC/KonfigurationR5.4 11.05.00 de 21 von 84


Konfiguration

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.

Tab. 9 Verfügbare Softkeys

22 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

1.7.3.1 Kartesische Arbeitsraumüberwachung


Hier können quaderförmige Arbeitsräume definiert werden. In Abhängigkeit von der Defini-
tion darf der TCP des Roboters diese Bereiche nicht verlassen bzw. dort nicht hineinfahren.

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.

Abb. 21 Signale der Arbeitsraum--Überwachung

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.

VKRC/KonfigurationR5.4 11.05.00 de 23 von 84


Konfiguration

Über den Softkey [ Kartesisch ] gelangen Sie zum Zustandsfenster für die Definition der ku-
bischen Arbeitsräume.

(1) Arbeitsraum Nr. und Bezeichnung.


(2) Frame, der den Ursprung sowie die Orientierung des Arbeitsraumes bezüglich des Weltkoordi-
natensystems angibt.
(3) Abmessungen des Arbeitsraumes bezüglich seines durch {X, Y, Z, A, B, C} festgelegten Ur-
sprungs.
(3) Arbeitsweise der Arbeitsraumüberwachung.

Abb. 22 Kartesische Arbeitsräume

Die entsprechende KRL--Variable “$WORKSPACE[n]” besitzt folgenden Aufbau:


$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 #OUT-
SIDE_STOP, STATE FALSE}

Die Bedeutung der Komponenten der Struktur “$WORKSPACE[n]”:


X, Y, Z: Ursprung des Arbeitsraumes bezogen auf das Welt--Koordinatensystem
A, B, C: Orientierung des Arbeitsraumes bezogen auf das Welt--Koordinatensy--
stem
X1, Y1, Z1: Bestimmt ∆x1, ∆y1, ∆z1 in Bezug auf den Ursprung X, Y, Z, A, B, C und
spannt einen Quader auf
X2, Y2, Z2: Bestimmt ∆x2, ∆y2, ∆z2 in Bezug auf den Ursprung X, Y, Z, A, B, C und
erweitert bzw. verkleinert den Quader

24 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

Einstellungsmöglichkeiten für “MODE”:


#OFF Die Überwachung des betreffenden Arbeitsraumes wird abgeschal-
tet.
#INSIDE Der vorgegebene Ausgang wird gesetzt, wenn sich der Bezugs-
punkt (TCP) des Werkzeugs / Werkstücks innerhalb des Arbeitsrau-
mes befindet.
#OUTSIDE Der vorgegebene Ausgang wird gesetzt, wenn sich der Bezugspunkt
(TCP) des Werkzeugs/Werkstücks außerhalb des Arbeitsraumes be-
findet.
#INSIDE_STOP Der vorgegebener Ausgang wird gesetzt, wenn sich der Bezugspunkt
(TCP) des Werkzeugs/Werkstücks, bzw. der Handwurzelpunkt in-
nerhalb des Arbeitsraumes befindet. Zusätzlich wird der Roboter ge-
stoppt und die Zustandsmeldung 114 “Arbeitsraum Nr. n verletzt” aus-
gegeben.
#OUTSIDE_STOP Der vorgegebene Ausgang wird gesetzt, wenn sich der Bezugspunkt
(TCP) des Werkzeugs/Werkstücks außerhalb des Arbeitsraumes be-
findet. Zusätzlich wird der Roboter gestoppt und die Zustandsmeldung
114 “Arbeitsraum Nr. n verletzt” ausgegeben.
Mögliche Zustände für “STATE”:
TRUE *1 Der Arbeitsraum wird verletzt
FALSE *1 Der Arbeitsraum wird nicht verletzt
*1 Wert wird nur angezeigt und kann nicht geändert werden

Tab. 10 Komponenten von $WORKSPACE[n]

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.

Variable Bedeutung Wertebereich


$WORKSPACE[n] Definition des entsprechenden
n = 1 ... 8 kartesischen Arbeitsraumes
$WORKSPACE[n].MODE Überwachungsart für einen de- #OFF
n = 1 ... 8 finierten Arbeitsraum festlegen #INSIDE
#OUTSIDE
#INSIDE_STOP
#OUTSIDE_STOP
$WORKSPACE[n].STATE Lesbare Variable, die angibt, ob TRUE
n = 1 ... 8 ein Arbeitsraum verletzt ist FALSE
(TRUE) oder nicht (FALSE)

VKRC/KonfigurationR5.4 11.05.00 de 25 von 84


Konfiguration

$WORKSPACE_NAMEn[] Bezeichnung für einen definier- Bis zu 24 Zeichen


n = 1 ... 8 ten Arbeitsraum können verwendet
werden
$WBOXDISABLE Überbrücken der Arbeits-- TRUE
raumüberwachung einschalten FALSE
(TRUE) bzw. ausschalten
(FALSE)

Tab. 11 Variablen zur Verwendung mit Varkor oder in KRL--Programmen

Ein Ändern der Variablen “$WORKSPACE” löst einen Vorlaufstop aus.

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.

Fehlerhafte “$TOOL”--Daten können zu unvorhersehbaren Situationen führen!

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.

Überbrücken der Arbeitsraumüberwachung


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.

Dies ist nur in der Betriebsart SStep(T1) bzw. SStep(T2) möglich.

Wurde ein Arbeitsraum verletzt, so erscheint die Zustandsmeldung 114:


“Arbeitsraum Nr. n verletzt”

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.

26 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

Ausschalten der Überwachung über Varkor bzw. KRL--Programm


Ändern Sie den Wert der Komponente “MODE” des betroffenen Arbeitsraumes z. B.
“$WORKSPACE[1].MODE” in “#OFF”.
Die Überwachung des betreffenden Arbeitsraumes bleibt solange abgeschaltet, bis die
Komponente wieder auf einen Wert ungleich “#OFF” gesetzt wird.

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}

VKRC/KonfigurationR5.4 11.05.00 de 27 von 84


Konfiguration

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.

28 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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.

Die entsprechende Anweisung lautet:


$WORKSPACE[2]={X 400, Y 400, Z 900, A 0, B 0, C 0, X1 200, Y1
200, Z1 200, X2 0, Y2 0, Z2 0, MODE #OUTSIDE_STOP, STATE
FALSE}

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.

VKRC/KonfigurationR5.4 11.05.00 de 29 von 84


Konfiguration

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.

Die entsprechende Anweisung lautet:


$WORKSPACE[3]={X 500, Y 500, Z 2000, A 0, B 0, C 0, X1 100,
Y1 260, Z1 220, X2 -100, Y2 60, Z2 20, MODE #OUTSIDE, STATE
FALSE}

30 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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}

VKRC/KonfigurationR5.4 11.05.00 de 31 von 84


Konfiguration

1.7.3.3 Achsspezifische Arbeitsraumüberwachung


Die durch die Softwareendschalter festgelegten Bereiche können mit dieser Funktion weiter
eingeschränkt werden, um den Roboter oder das Werkzeug bzw. Werkstück zu schützen.
Hierbei ist der erlaubte Bereich einer Achse direkt abhängig von der aktuellen Position der
anderen Achsen.
In Abhängigkeit von der Definition wird bei Verlassen oder Verletzen eines Arbeitsraumes
ein vorher festgelegter Ausgang gesetzt. Alternativ kann der Roboter auch angehalten wer-
den, wobei eine Meldung im Meldungsfenster ausgegeben wird.

Erfolgt eine Arbeitsraumverletzung im Handverfahren, wird ein Rampenstop ausgeführt,


andernfalls erfolgt ein generatorischer Stop.

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:

(1) Wandroboter. (3) Palettierroboter.


(2) Konsolroboter.

Abb. 23 Robotertypen

32 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

Befinden sich z. B. Versorgungsleitungen, Aufbauten oder andere Geräte im Arbeitsbereich


des Roboters, können diese ohne entsprechende Arbeitsraumüberwachung beschädigt
werden.

Abb. 24 Uneingeschränkter Arbeitsbereich eines Konsolroboters

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°

Abb. 25 Möglicher Aktionsbereich

VKRC/KonfigurationR5.4 11.05.00 de 33 von 84


Konfiguration

Mit der achsspezifischen Arbeitsraumüberwachung kann beispielsweise die Achse 1 in Ab-


hängigkeit von der Position der Achse 2 unterschiedlich stark eingeschränkt werden.

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

34 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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.

(1) Achsspezifischer Arbeitsraum Nr. sowie Bezeichnung.


(2) Angaben der Unter-- und Obergrenzen für einzelnen Achswinkel, gültig für Standard-- und Zu-
satzachsen.
(3) Arbeitsweise der Arbeitsraumüberwachung.

Abb. 28 Achsspezifische Arbeitsräume

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).

VKRC/KonfigurationR5.4 11.05.00 de 35 von 84


Konfiguration

Die KRL--Variable “$AXWORKSPACE[n]” besitzt folgenden Aufbau:


$AXWORKSPACE[1]={A1_N -90.0,A1_P 90.0, A2_N -25.0,A2_P 3.0,A3_N
0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P
0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N
0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #INSIDE_STOP,
STATE FALSE}

Die Bedeutung der Komponenten der Struktur “$AXWORKSPACE[n]”:


A1_N ... A6_N Die Mindestwerte der einzelnen Standardachsen
A1_P ... A6_P Die Maximalwerte der einzelnen Standardachsen
E1_N ... E6_N Die Mindestwerte der projektierten Zusatzachsen
E1_P ... E6_P Die Maximalwerte der projektierten Zusatzachsen
Einstellungsmöglichkeiten für “MODE”:
#OFF Die Überwachung des betreffenden Arbeitsraumes wird abgeschal-
tet.
#INSIDE Der vorgegebene Ausgang wird gesetzt, wenn sich alle Achsen in-
nerhalb ihres definierten Arbeitsraumes befinden.
#OUTSIDE Der vorgegebener Ausgang wird gesetzt, wenn sich alle Achsen
außerhalb ihres definierten Arbeitsraumes befinden.
#INSIDE_STOP Der vorgegebene Ausgang wird gesetzt, wenn sich alle Achsen in-
nerhalb ihres definierten Arbeitsraumes befinden. Außerdem wird
der Roboter gestoppt und eine Fehlermeldung ausgegeben.
#OUTSIDE_STOP Der vorgegebene Ausgang wird gesetzt, wenn sich alle Achsen au-
ßerhalb ihres definierten Arbeitsraumes befinden. Zusätzlich wird
der Roboter gestoppt und eine Fehlermeldung ausgegeben.
Mögliche Zustände für “STATE”:
TRUE *1 Der Arbeitsraum wird verletzt
FALSE *1 Der Arbeitsraum wird nicht verletzt
*1 Wert wird nur angezeigt und kann nicht geändert werden

Tab. 12 Komponenten von $AXWORKSPACE[n]

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.

36 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

Variable Bedeutung Wertebereich


$AXWORKSPACE[n] Definition des entsprechenden
n = 1 ... 8 achsspezifischen Arbeitsrau-
mes
$AXWORKSPACE[n].MODE Überwachungsart für einen de- #OFF
n = 1 ... 8 finierten Arbeitsraum festlegen #INSIDE
#OUTSIDE
#INSIDE_STOP
#OUTSIDE_STOP
$AXWORKSPACE[n].STATE Lesbare Variable, die angibt, ob TRUE
n = 1 ... 8 ein Arbeitsraum verletzt ist FALSE
(TRUE) oder nicht (FALSE)
$AXWORKSPACE_NAMEn[] Bezeichnung für einen definier- Bis zu 24 Zeichen
n = 1 ... 8 ten Arbeitsraum können verwendet
werden
$WBOXDISABLE Überbrücken der Arbeits-- TRUE
raumüberwachung einschalten FALSE
(TRUE) bzw. ausschalten
(FALSE)

Tab. 13 Variablen zur Verwendung mit Varkor oder in KRL--Programmen

Ein Ändern der Variablen “$AXWORKSPACE” löst einen Vorlaufstop aus.


Arbeitsräume können auch in *.SRC--Dateien definiert, bzw. ein-- und ausgeschaltet wer-
den. Die dort angegebenen Werte werden automatisch in die Datei “$MACHINE.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.

Ü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.

Dies ist nur in der Betriebsart SStep(T1) bzw. SStep(T2) möglich.

VKRC/KonfigurationR5.4 11.05.00 de 37 von 84


Konfiguration

Wurde ein Arbeitsraum verletzt, so erscheint die Zustandsmeldung:


“Achsarbeitsraum Nr. n verletzt”
Wird die Arbeitsraumüberwachung dann überbrückt, wird diese Meldung durch die Zu-
standsmeldung:
“Achsarbeitsraum Nr. n freifahren”
ersetzt. Nach dem Verlassen des verletzten Arbeitsraumes wird diese Meldung gelöscht.

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:

Abb. 29 Eingeschränkter Arbeitsbereich eines Konsolroboters

Zu diesem Zweck müssen mehrere achsspezifische Arbeitsräume definiert werden. Im Bei-


spiel werden hierzu insgesamt 4 Bereiche benötigt, die vom Roboter nicht verletzt werden
dürfen.

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.

38 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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.

Abb. 31 Definition der nicht zulässigen Bereiche

VKRC/KonfigurationR5.4 11.05.00 de 39 von 84


Konfiguration

Die hierfür erforderlichen Einträge in den Zustandsfenstern sehen folgendermaßen aus:

Signal

(1) Der jeweilige Ausgang wird entsprechend des eingestellten MODE gesetzt.

Abb. 32 Signale der Arbeitsraum--Überwachung

Die den Arbeitsräumen zugeordneten Signale sind in der Datei “KRC\Steu\Mada\$Machi-


ne.dat” hinterlegt und werden normalerweise über die Bedienoberfläche definiert.
...
SIGNAL $AXWORKSTATE1 $OUT[969]
SIGNAL $AXWORKSTATE2 $OUT[970]
SIGNAL $AXWORKSTATE3 FALSE
SIGNAL $AXWORKSTATE4 FALSE
SIGNAL $AXWORKSTATE5 FALSE
SIGNAL $AXWORKSTATE6 FALSE
SIGNAL $AXWORKSTATE7 FALSE
SIGNAL $AXWORKSTATE8 FALSE
...

40 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

Achs--Spez.
Der erste Arbeitsraum wird wie folgt definiert:

(1) Achsspezifischer Arbeitsraum Nr. 1 mit der Bezeichnung “AXWORKSPACE_DOWN 1”.


(2) Angaben der Winkel für die Achsen 1 und 2, die anderen Achsen werden nicht überwacht.
(3) Der Roboter wird angehalten und der vorher definierte Ausgang gesetzt, sobald sich Achse 1
und 2 gleichzeitig im festgelegten Arbeitsraum befinden.

Abb. 33 Achsspezifischer Arbeitsraum 1

VKRC/KonfigurationR5.4 11.05.00 de 41 von 84


Konfiguration

Der zweite Arbeitsraum:

(1) Achsspezifischer Arbeitsraum Nr. 2 mit der Bezeichnung “AXWORKSPACE_DOWN 2”.


(2) Angaben der Winkel für die Achsen 1 und 2, die anderen Achsen werden nicht überwacht.
(3) Der Roboter wird angehalten und der vorher definierte Ausgang gesetzt, sobald sich Achse 1
und 2 gleichzeitig im festgelegten Arbeitsraum befinden.

Abb. 34 Achsspezifischer Arbeitsraum 2

Die entsprechenden KRL--Anweisungen lauten folgendermaßen:


Bezeichnung der Arbeitsräume:
$AXWORKSPACE_NAME1[]=”AXWORKSPACE_DOWN 1”
$AXWORKSPACE_NAME2[]=”AXWORKSPACE_DOWN 2”
Zu überwachende Achsen:
$AXWORKSPACE[1]={A1_N -160.0,A1_P -45.0, A2_N 20.0,A2_P 35.0,A3_N
0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P
0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N
0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #INSIDE_STOP,
STATE FALSE}
$AXWORKSPACE[2]={A1_N 45.0,A1_P 160.0, A2_N 20.0,A2_P 35.0,A3_N
0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P
0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N
0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #INSIDE_STOP,
STATE FALSE}

42 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

Der daraus resultierende, für den Roboter zulässige Bereich sieht ohne Berücksichtigung
der anderen Achsen in etwa folgendermaßen aus:

Abb. 35 Resultierender Arbeitsbereich

Im nächsten Schritt wird ein weiterer Bereich definiert, in welchem sich der Roboter bewegen
darf.

VKRC/KonfigurationR5.4 11.05.00 de 43 von 84


Konfiguration

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.

+20°

A2

--95°
--95° +95°

A1

Abb. 36 Einschränkung der Achse 1

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.

44 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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

Abb. 37 Einschränkung der Achse 1

Die hierfür erforderlichen Einträge in den Zustandsfenstern sehen folgendermaßen aus:

Signal

(1) Der jeweilige Ausgang wird entsprechend der Bedingung gesetzt.

Abb. 38 Signale der Arbeitsraum--Überwachung

VKRC/KonfigurationR5.4 11.05.00 de 45 von 84


Konfiguration

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:

(1) Achsspezifischer Arbeitsraum Nr. 3 mit der Bezeichnung “AXWORKSPACE_DOWN 3”.


(2) Angaben der Winkel für die Achsen 1 und 2, die anderen Achsen werden nicht überwacht.
(3) Der Roboter wird angehalten und der vorher definierte Ausgang gesetzt, sobald sich Achse 1
und 2 gleichzeitig im festgelegten Arbeitsraum befinden.

Abb. 39 Achsspezifischer Arbeitsraum 3

46 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

Der vierte Arbeitsraum:

(1) Achsspezifischer Arbeitsraum Nr. 4 mit der Bezeichnung “AXWORKSPACE_DOWN 4”.


(2) Angaben der Winkel für die Achsen 1 und 2, die anderen Achsen werden nicht überwacht.
(3) Der Roboter wird angehalten und der vorher definierte Ausgang gesetzt, sobald sich Achse 1
und 2 gleichzeitig im festgelegten Arbeitsraum befinden.

Abb. 40 Achsspezifischer Arbeitsraum 3

Die entsprechenden KRL--Anweisungen lauten folgendermaßen:


Bezeichnung der Arbeitsräume:
$AXWORKSPACE_NAME3[]=”AXWORKSPACE_DOWN 3”
$AXWORKSPACE_NAME4[]=”AXWORKSPACE_DOWN 4”
Zu überwachende Achsen:
$AXWORKSPACE[3]={A1_N -160.0,A1_P -95.0, A2_N 0.0,A2_P 20.0,A3_N
0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P
0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N
0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #INSIDE_STOP,
STATE FALSE}
$AXWORKSPACE[4]={A1_N 95.0,A1_P 160.0, A2_N 0.0,A2_P 20.0,A3_N
0.0,A3_P 0.0,A4_N 0.0,A4_P 0.0,A5_N 0.0,A5_P 0.0,A6_N 0.0,A6_P
0.0,E1_N 0.0,E1_P 0.0,E2_N 0.0,E2_P 0.0,E3_N 0.0,E3_P 0.0,E4_N
0.0,E4_P 0.0,E5_N 0.0,E5_P 0.0,E6_N 0.0,E6_P 0.0,MODE #INSIDE_STOP,
STATE FALSE}

VKRC/KonfigurationR5.4 11.05.00 de 47 von 84


Konfiguration

Der hieraus resultierende Bereich sieht in etwa folgendermaßen aus:

Abb. 41 Resultierender Arbeitsbereich

48 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

1.7.4 BOF Reinitialisieren


Die Bedienoberfläche wird durch den Befehl [ Konfiguration › Extras › BOF reinitialisieren ]
ohne einen Systemstart reinitialisiert.
Daraufhin wird der Fortschritt sowie der Abschluß der Reinitialisierung im Meldungsfenster
angezeigt.

1.7.5 Analyse Rekonfigurieren


Die Analyse wird mit dem Befehl [ Konfiguration › Extras › Analyse rekonfigurieren ] neu
konfiguriert.

1.7.6 Plugin Konfiguration


Der Befehl [ Konfiguration › Extras › Plugin Konfiguration ] ermöglicht das Hinzufügen, Kon-
figurieren und Entfernen von System--Modulen während des Betriebs. Hierzu ist die Benut-
zergruppe ”Experte” erforderlich.
In der Liste für die Plugin--Konfiguration werden alle im System installierten Plugin--Module
aufgelistet.

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.

Tab. 14 Verfügbare Softkeys

VKRC/KonfigurationR5.4 11.05.00 de 49 von 84


Konfiguration

Verfügbare Attribute der Plugin--Konfiguration

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.

Tab. 15 Verfügbare Attribute der Plugin--Konfiguration

50 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

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.

Tab. 16 Verfügbare Softkeys

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.

VKRC/KonfigurationR5.4 11.05.00 de 51 von 84


Konfiguration

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.

(1) Schaltet die Funktion “Rückwärtsfahren” ein oder aus.


(2) Gibt die Anzahl der Punkte im Bewegungspuffer an.
(3) Gibt die Anzahl der aufgezeichneten Merker an.

Abb. 44 Konfiguration “Rückwärtsfahren”

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.

Tab. 17 Verfügbare Softkeys

52 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

1.9 ASCII--Konfiguration
Dieser Befehl dient zum Einstellen der ASCII--Schnittstelle.

Diese Funktion steht nur bei installierter ASCII--Option zur Verfügung.

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.

Abb. 45 Dialogfenster “ASCII--Konfiguration”

Änderungen an der Konfiguration wirken sich nicht auf eine bereits laufende Aufzeichnung
aus.

Die IBGN--Daten werden im Format der Fa. Sikora GmbH gespeichert.

VKRC/KonfigurationR5.4 11.05.00 de 53 von 84


Konfiguration

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.

Tab. 18 Verfügbare Softkeys

54 von 84 VKRC/KonfigurationR5.4 11.05.00 de


1 System konfigurieren (Fortsetzung)

1.10 Archivieren
Mit dieser Funktion werden bestimmte Einträge auf Diskette archiviert bzw. wiederherge-
stellt.

1.10.1 Archivieren

Datei Neu Folgen


Öffnen UPs
Drucken Makros
Archivieren VW--User
Diskette Alles
Wiederherstellen Netz Anwendungen
Umbenennen Logbuch Systemdaten Maschinendaten
Diskette formatieren Aktuelle Auswahl Konfigurationsdaten
Eigenschaften E/A--Langtexte
Filter Treiber
Log--Daten
Prozessparameter

Weitere Informationen zum Thema finden Sie im Bedienhandbuch im Hauptkapitel [Be-


dienung], Kapitel [Navigator].

1.10.2 Wiederherstellen

Datei Neu Folgen


Öffnen UPs
Drucken Makros
Archivieren VW--User
Diskette Alles
Wiederherstellen Netz Anwendungen
Umbenennen Aktuelle Auswahl Systemdaten Maschinendaten
Diskette formatieren Konfigurationsdaten
Eigenschaften E/A--Langtexte
Filter Treiber

Weitere Informationen zum Thema finden Sie im Bedienhandbuch im Hauptkapitel [Be-


dienung], Kapitel [Navigator].

VKRC/KonfigurationR5.4 11.05.00 de 55 von 84


Konfiguration

56 von 84 VKRC/KonfigurationR5.4 11.05.00 de


2 System konfigurieren Experte

2 System konfigurieren Experte


2.1 Variablenübersicht
Zur einfachen Anzeige von mehreren Variablen gleichzeitig stehen die Menübefehle [ Anzei-
gen ], [ Konfiguration ] und [ ConfigMon.ini bearbeiten ] zur Verfügung.

Anzeige Ein--/Ausgänge
Istposition
Merker
Flags
Zähler
Timer
ProcParam Einzeln Anzeigen
Variable Übersicht Konfiguration
Diagnose “ConfigMon.ini” bearb.
Anzeige aktualisieren
Fenster

Abb. 46 Untermenü “Anzeige”

2.1.1 Anzeigen

Eine Beschreibung der Variablenanzeige finden Sie im Bedienhandbuch im Hauptkapitel


[Bedienung], Kapitel [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.

VKRC/KonfigurationR5.4 11.05.00 de 57 von 84


Konfiguration

(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.

Abb. 47 Konfiguration Variablenübersicht

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.

Tab. 19 Verfügbare Softkeys

58 von 84 VKRC/KonfigurationR5.4 11.05.00 de


2 System konfigurieren Experte (Fortsetzung)

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.

Abb. 48 Neue Variablengruppe

Es sind maximal 10 Variablengruppen zulässig.

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.

Es sind maximal 25 Zeilen innerhalb einer Gruppe zulässig.

2.1.3 ConfigMon.ini bearbeiten


Mit diesem Befehl wird die Datei “ConfigMon.ini” zur weiteren Bearbeitung in den Editor gela-
den.

Softkey Bedeutung
Schließen Übernimmt die Änderungen und schließt das Programmfenster.
NAVIGATOR Dieser Softkey holt den Navigator in den Vordergrund.

Tab. 20 Verfügbare Softkeys

VKRC/KonfigurationR5.4 11.05.00 de 59 von 84


Konfiguration

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, ...
...

DRY_RUN = n Schaltet den Trockenlauf ein oder aus.


n=1 Zuweisungen und Verknüpfungen an $CYCFLAG im KAF--Kontext
sind möglich.
n=3 Analoge Ausgänge können über die Anweisung “Edit_Exec” im
Kommandointerpreter ein-- oder ausgeschaltet werden.
n=7 E/A--Verhalten bei Verlassen der Bahn, beim Zurückkehren auf
die Bahn, bei Satzanwahl, bei einem Programmreset oder einer
Programmabwahl.

Tab. 21 Bedeutung der Einträge

60 von 84 VKRC/KonfigurationR5.4 11.05.00 de


2 System konfigurieren Experte (Fortsetzung)

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.

2.3.1 Datei “\ R1\ MaDa\ $machine.dat”


Hinter den hervorgehobenen Bereichen “$AXIS_HOME[x]” werden die Koordinaten der
Achsen 1...6 bzw. Zusatzachsen E1...E6 angeben.
&PARAM VERSION=4.2.0_2
DEFDAT $MACHINE PUBLIC
...
E6AXIS $H_POS={A1 0.0,A2 -90.0,A3 90.0,A4 0.0,A5 0.0,A6 0.0,E1
0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
E6AXIS $AXIS_HOME[5]
$AXIS_HOME[1]={A1 0.0,A2 -90.0,A3 90.0,A4 0.0,A5 0.0,A6 0.0,E1
0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
$AXIS_HOME[2]={A1 0.0,A2 -90.0,A3 90.0,A4 0.0,A5 0.0,A6 0.0,E1
0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
$AXIS_HOME[3]={A1 0.0,A2 -90.0,A3 90.0,A4 0.0,A5 0.0,A6 0.0,E1
0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
$AXIS_HOME[4]={A1 0.0,A2 -90.0,A3 90.0,A4 0.0,A5 0.0,A6 0.0,E1
0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
$AXIS_HOME[5]={A1 0.0,A2 -90.0,A3 90.0,A4 0.0,A5 0.0,A6 0.0,E1
0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
...

Diese Datei befindet sich standardmäßig im Verzeichnis “C:\KRC\Roboter\KRC\R1\ Ma-


Da\”.

2.3.2 Datei “\ Steu\ MaDa\ $machine.dat”


In der Datei “$machine.dat” wird jeder Variablen “$IN_HOME1” ... “$IN_HOME5” ein be-
stimmter Ausgang zugewiesen.
&PARAM VERSION=4.2.0_2
DEFDAT $MACHINE PUBLIC
...
SIGNAL $IN_HOME $OUT[1000] ;ROB IN HOMEPOSITION
...
SIGNAL $IN_HOME1 $OUT[977]

VKRC/KonfigurationR5.4 11.05.00 de 61 von 84


Konfiguration

SIGNAL $IN_HOME2 $OUT[978]


SIGNAL $IN_HOME3 $OUT[979]
SIGNAL $IN_HOME4 $OUT[980]
SIGNAL $IN_HOME5 $OUT[981]
...
ENDDAT

Diese Datei befindet sich standardmäßig im Verzeichnis “C:\ KRC\ Roboter\ KRC\
Steu\ MaDa”.

62 von 84 VKRC/KonfigurationR5.4 11.05.00 de


2 System konfigurieren Experte (Fortsetzung)

2.4 Momentenbetrieb (Soft Servo)


2.4.1 Allgemein
Einzelne oder mehrere Achsen können in den Momentenbetrieb geschaltet werden.

Im Normalbetrieb arbeitet der Roboter von außen wirkenden Kräften entgegen, um


die programmierte Bahn zu fahren.
Dies kann bei zu hohen Kräften zu Schäden am Teil, Werkzeug oder Roboter führen!
Gleiches gilt, wenn der Roboter innerhalb der programmierten Bahn gegen das
Bauteil oder ein Hindernis fährt.

Bei bestimmten Applikationen -- beispielsweise das Entladen von Druckgußmaschinen oder


das Arbeiten mit elektromotorischen Punktschweißzangen -- ist es jedoch erforderlich, daß
der Roboter “nachgibt”.
Momentenbetrieb bedeutet, daß eine Achse entweder ein definiertes Moment, vorgegeben
durch die Begrenzung des Drehzahlreglerausganges (positive und negative Grenze), gegen
einen Widerstand aufbauen kann (Drücken oder Ziehen) oder, daß die Achse durch äußere
Krafteinwirkung bewegt werden kann (Wegdrücken der Roboterhand bzw. des daran befind-
lichen Werkzeuges).

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.

2.4.1.1 Einschränkungen, Risiken


Technisch ist der Momentenbetrieb grundsätzlich für alle Roboterachsen möglich, aufgrund
technisch bedingter Einschränkungen sowie teils damit verbundener Gefahren jedoch nicht
für jede Achse sinnvoll. Nachfolgende Tabelle gibt über die Möglichkeiten und Einschränkun-
gen Aufschluß.

Achse Momentenbetrieb, Einschränkungen, Risiken


Bei Boden-- oder Deckenmontage uneingeschränkt und ohne besondere
Gefahren möglich.
1
Bei Wandmontage hingegen ist kein Momentenbetrieb möglich, weil die Ge-
fahr des Durchsackens besteht.
Kein Momentenbetrieb möglich. Aufgrund unterschiedlicher, von der Posi-
2 tion des Roboterarms abhängiger Momente und ggf. des positionsabhängigen
Gewichtsausgleiches besteht die Gefahr des Durchsackens.
Momentenbetrieb grundsätzlich möglich, sollte jedoch wegen der Gefahr
3 des Durchsackens aufgrund unterschiedlicher, von der Position der Schwinge
abhängiger Momente vermieden werden.
4 Momentenbetrieb grundsätzlich möglich, jedoch nicht sinnvoll. Aufgrund
5 des geringen Rückwirkungsgrades der Handachsgetriebe sind sehr hohe
6 Kräfte erforderlich.

Tab. 22 Einschränkungen der Achsen

VKRC/KonfigurationR5.4 11.05.00 de 63 von 84


Konfiguration

2.4.1.2 Beispiel Momentenbetrieb


Entladung einer Druckgußmaschine

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.

64 von 84 VKRC/KonfigurationR5.4 11.05.00 de


2 System konfigurieren Experte (Fortsetzung)

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 Programmabwahl oder Reset wird der Momentenbetrieb automatisch abgeschaltet.


Beim Handverfahren wird der Momentenbetrieb während des Handverfahrens abgeschal-
tet und beim Rückpositionieren wieder eingeschaltet.
Beim Rückpositionieren bewegt sich die Achse nicht, falls diese weich geschaltet ist. Das
System fährt intern jedoch auf SAK, d. h. die Starttaste muß solange festgehalten werden,
bis SAK erreicht ist.

2.4.3 Beispiele für die Weichschaltung von Achsen

2.4.3.1 Weichschaltung Achse 1


Zur Weichschaltung der Achse 1 wird der Drehzahlreglerausgang auf 0% begrenzt. Dies hat
zur Folge, daß die Kontrolle der Achse durch Lage-- und Drehzahlregler entfällt, wodurch die
Achse von außen bewegt werden kann.
$TORQUE_AXIS = ‘B000001‘ ;Achse 1 in Momentenbetrieb schalten
$CURR_RED[1,1] = 0 ;positive Momentengrenze auf 0
$CURR_RED[1,2] = 0 ;negative Momentengrenze auf 0
PTP {A1 90} ;Bewegung, das sich die Bremsen öffnen
;Achse ist weich und kann bewegt werden
WAIT FOR $IN[17] ;warten auf Signal um Momentenbetrieb zu
;beenden (z.B. Ausstoßer)
$TORQUE_AXIS = 0 ;Achse wieder hart schalten
PTP {A1 -20} ;nächste Position anfahren

VKRC/KonfigurationR5.4 11.05.00 de 65 von 84


Konfiguration

2.4.3.2 Weichschaltung Achse 3


Achse 3 kann weich geschaltet werden, indem man den Drehzahlreglerausgang auf das ak-
tuelle Haltemoment begrenzt. Eine Kontrolle durch Lage-- und Drehzahlregler findet nur
mehr im Bereich des Haltemomentes die Achse statt, wodurch die Achse von außen bewegt
werden kann.
Das größte Haltemoment wird erreicht, wenn die Achse 3 waagerecht steht.

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!

PTP {A3 90} ; Achse 3 waagrecht


$TORQUE_AXIS = ‘B000100‘ ; Achse 3 in Momentenbetrieb schalten
$CURR_RED[3,1] = ABS($CURR_ACT[3]) ;positive Momentengrenze auf
;Haltemoment
$CURR_RED[3,2] = ABS($CURR_ACT[3]) ;negative Momentengrenze auf
;Haltemoment
PTP {A3 0} ;Bewegung A3 senkrecht
;Achse ist weich und kann bewegt wer-
den
WAIT FOR $IN[17] ;warten auf Signal um Momentenbetrieb
zu
;beenden (z.B. Ausstoßer)
$TORQUE_AXIS = 0 ;Achse wieder hart schalten
PTP {A1 -20, A3 80} ;nächste Position anfahren
Die Achse 3 muß in jedem Fall in eine Position außerhalb des Druckbereiches gebracht wer-
den (im Beispiel senkrecht), ansonsten kann die Achse nicht nach oben gedrückt werden,
da der Lageregler mit dem Haltemoment versucht die Position zu halten und wenn man die
Achse wegdrücken möchte, man das Gewicht der Achse überwinden muß.
Die Handachsen können ohne Gefahr mit Moment 0% weich geschaltet werden, jedoch hat
das Getriebe der Handachsen einen für diese Maßnahme nicht gut geeigneten Rückwir-
kungsgrad; diese Achsen lassen sich relativ schwer von außen bewegen.

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ß!

2.4.4 Beispiel für Achse mit definiertem Moment


Nachfolgendes Beispiel zeigt den Einsatzes einer elektromotorischen Punktschweißzange:
Bei der elektromotorischen Punktschweißzange (Zusatzachse E1) soll am Bauteil ein defi-
niertes Moment aufgebaut werden. Dazu wird eine innerhalb des Bauteiles befindliche Posi-
tion angefahren, und der aus dem definierten Moment resultierende Strom eingestellt.
Da diese “Achse” die programmierte Position nicht erreichen kann, weil die Zangenelektrode
vorher das Blech berührt, drückt sie mit der definierten Kraft auf das Bauteil. Wird nur die
Stromgrenze zum Hineinfahren begrenzt, und beträgt die zweite Stromgrenze 100 %, kann
mit voller Geschwindigkeit wieder aus dem Bauteil heraus gefahren werden.

66 von 84 VKRC/KonfigurationR5.4 11.05.00 de


2 System konfigurieren Experte (Fortsetzung)

PTP {E1 0} ;Zange kurz vor Blechberührung fahren


$TORQUE_AXIS = ’B1000000’ ;Momentenbetrieb einschalten
$CURR_RED[7,1] = 20 ;definiertes Moment einstellen
;positive Grenze baut Moment auf
PTP {E1 -10} ;10 mm in das Bauteil “fahren”
;Moment wird aufgebaut
WAIT FOR SCHWEISSENDE ;Signal “Schweißende” abwarten
;“fliegend” positive Grenze wieder hoch-
setzen
TRIGGER WHEN DISTANCE=0 DELAY=50 DO $CURR_RED[7,1]=100
PTP {E1 20} ;Schweißzange öffnen
$TORQUE_AXIS = 0 ;Momentenbetrieb abschalten

VKRC/KonfigurationR5.4 11.05.00 de 67 von 84


Konfiguration

2.4.5 Variablen für den Momentenbetrieb


Folgende Variablen stehen für den Momentenbetrieb zur Verfügung:
REAL $CURR_ACT[12]
Aktueller Strom der Achsen 1 bis 12 in Prozent vom Verstärker--Strom
$CURR_MAX * $CURR_LIM (--100% bis +100%).

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.

Ein Beschreiben dieser Variablen löst einen Vorlaufstop aus.

REAL $TORQ_VEL[12]
Geschwindigkeitsgrenze in Prozent von der maximalen Geschwindigkeit zur Überwachung
der momentenbetriebenen Achse.

Wenn eine Achse im Momentenbetrieb ist, sind alle Überwachungsfunktionen die-


ser Achse abgeschaltet.

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.

68 von 84 VKRC/KonfigurationR5.4 11.05.00 de


2 System konfigurieren Experte (Fortsetzung)

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.

Die Zusatzachsen werden nicht überwacht.

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.

Die Kollisionsüberwachung bietet keine Garantie gegen Beschädigungen, kann


aber die Größe des jeweiligen Schadens reduzieren. Ausschlaggebend für die Art
der jeweiligen Beschädigung sind sowohl die gefahrene Geschwindigkeit als auch
die aufgetretenen Momente.

Weiterhin stehen die Signalausgänge $COLL_ENABLE und $COLL_ALARM unter


KRC:\STEU\MACHINE.DAT zur Verfügung. COLL_ENABLE wird gesetzt, wenn die aktuelle
Überwachungsgrenze einer Achse für Programmbetrieb $torqmon kleiner 200% ist.
$COLL_ALARM wird gesetzt, wenn die Meldung “117 Momentüberschreitung Ax” für eine
Achse ausgegeben wird. Dieser Ausgang bleibt solange gesetzt wie $STOPMESS ansteht.

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

VKRC/KonfigurationR5.4 11.05.00 de 69 von 84


Konfiguration

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_...”.

Eine Überwachung der Fahrmomente erfolgt im


G Programmbetrieb
-- Vorlauf:
Innerhalb des KRL--Programms kann der Variable “$TORQMON[ ]” ein satzbezo-
genes Toleranzband für das Moment vorgegeben werden.
-- Hauptlauf:
Die Überwachung wird sofort aktiv bzw. inaktiv, wenn die Variable im Interruptpro-
gramm beschrieben wird.
G Kommandobetrieb
-- Standardmäßig sind für die Momentenüberwachung die Werte der Variablen
“$TORQMON_COM_DEF[1]...[6]” aus der Datei “$CUSTOM.DAT” gültig. Der
Anwender kann über die Variablenkorrektur die Überwachungsgrenze jederzeit
ändern, indem er die Werte von “$TORQMON_COM[1]...[6]” ändert.
Über die Systemvariable “$TORQ_DIFF[1]...[6]” kann die maximale aufgetretene Momen--
tenabweichung in Prozent abgelesen werden. Diese Variable kann daher zum optimieren der
Momentenüberwachung genutzt werden:

70 von 84 VKRC/KonfigurationR5.4 11.05.00 de


2 System konfigurieren Experte (Fortsetzung)

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.

Für Schäden aufgrund falscher Einstellungen wird keine Haftung übernommen!

VKRC/KonfigurationR5.4 11.05.00 de 71 von 84


Konfiguration

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.

In bestimmten Arbeitsumgebungen entstehen aggressive Dämpfe. Um das Eindrin-


gen dieser Dämpfe in den Steuerschrank zu verhindern, muß ein Überdruck gegen-
über der Umgebung aufgebaut werden. Hierzu muß der Außenlüfter ununterbro-
chen laufen.

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.3 Projektierbarer Ausgang für Hardwarewarnung


Im Falle einer Hardwarewarnung bzw. eines Hardwareausfalls der (V)KR C2 wird ein vorher
bestimmter Ausgang gesetzt.
Hierzu gehören die Überwachung der Drehzahl des PC--Lüfters, die Akkuüberwachung so-
wie die Temperaturüberwachung des Mainboards. Bei Unter-- bzw. Überschreitung des je-
weils festgelegten Wertes wird der vorher definierte Ausgang gesetzt.
Der zu setzende Ausgang wird in der Datei “C:\KRC\Roboter\KRC\Steu\MaDa\$machi-
ne.dat festgelegt.
SIGNAL $HW_WARNING $OUT[48]

Diese Funktion ist standardmäßig deaktiviert: “SIGNAL $HW_WARNING FALSE”

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.

Für Schäden am Robotersystem aufgrund fehlender oder zusätzlicher Motorkabel


wird keine Haftung übernommen!

72 von 84 VKRC/KonfigurationR5.4 11.05.00 de


3 Automatik Extern

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.

3.1 Schnittstelle konfigurieren


Den Signalen der Schnittstelle “Automatik Extern” müssen physikalische Ein-- und Aus-
gänge der Robotersteuerung zugeordnet werden.
Im Anschluß an den Befehl [ Anzeige > Ein/Ausgänge > Automatik Extern ] wird das Zu-
standsfenster für die Eingänge der Schnittstelle “Automatik Extern” geöffnet.

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.

Abb. 49 Konfiguration Variablenübersicht

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.

VKRC/KonfigurationR5.4 11.05.00 de 73 von 84


Konfiguration

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.

Tab. 23 Verfügbare Softkeys

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.

Tab. 24 Verfügbare Softkeys

Werden Änderungen in der Datei “$MACHINE.DAT” vorgenommen, wird zur Datenüber-


tragung der Submit--Interpreter kurzfristig abgewählt und nach der Sicherung automatisch
wieder angewählt.

74 von 84 VKRC/KonfigurationR5.4 11.05.00 de


3 Automatik Extern (Fortsetzung)

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

VKRC/KonfigurationR5.4 11.05.00 de 75 von 84


Konfiguration

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.2.2 RK23 -- Programmierbetrieb


Mit dem Ausgang (RK23 = 1) meldet die (V)KR C... an die BMS, daß sie sich im Program-
miermodus befindet.
Das Signal wird immer auf “TRUE” gesetzt wenn die Betriebsart “Hand” aktiv ist
(“$MODE_OP == T1” oder “$MODE_OP == T2”) und kein Programm läuft (“$PRO_ACT =
FALSE”). Ein laufendes Programm bedeutet einen aktiven Roboter--Interpreter, Berechnung
der Programm--Hauptlaufsätze oder eine SAK--Fahrt.

3.2.2.3 RK8 -- Single--Step--Betrieb


Mit dem Ausgang (RK8 = 1) meldet die (V)KR C..., daß sie sich im Single--Step--Modus
(SStep(T1)) oder (SStep(T2)) befindet. Der Single--Step--Betrieb wird unterhalb des
Status--Keys ”NICHT HAND” angezeigt.

3.2.2.4 RK9 -- Automatikbetrieb


Mit dem Ausgang (RK9 = 1) meldet die (V)KR C..., daß sie sich in der Betriebsart Automatik
Extern befindet.

3.2.2.5 RK100 -- Freigabe Stellglieder Start


Mit dem Ausgang (RK100 = 1) meldet die (V)KR C..., daß kein NOT--AUS anliegt und die
Schutztüren geschlossen sind. Dieses Signal wird durch eine Verknüpfung von
$ALARM_STOP und $USER_SAF im Steuerungsprogramm SPS.SUB gebildet. Das Aus--
schalten des Signals wird von diesem Baustein bis zum Stop der Roboterbewegung
verzögert, um einen bahntreuen NOT--AUS zu ermöglichen. Bei Fehlern im Steuerungspro-
gramm bleibt dieses Signal auf seinem letzten Wert.

76 von 84 VKRC/KonfigurationR5.4 11.05.00 de


3 Automatik Extern (Fortsetzung)

3.2.2.6 WPROZ -- Warte Prozess


Mit dem Ausgang (WPROZ = 1)meldet die (V)KR C..., daß Sie auf eine Bedingung aus der
Roboterperipherie wartet.

3.2.2.7 WSLAV -- Warte Slave


Mit dem Ausgang (WSLAV = 1) meldet die (V)KR C..., daß Sie auf einen Eingang der Anla-
gensteuerung (Interbus--Slave--Bereich) wartet.

3.2.2.8 LPKT -- letzter Punkt erreicht


Mit dem Ausgang (LPKT = 1) meldet die (V)KR C... der BMS, daß der Roboter den letzten
Punkt der aktuellen Folge erreicht hat.

3.2.2.9 PF0 -- Grundstellung


Mit dem Ausgang (PF0 = 1) meldet die (V)KR C... der BMS, daß der Roboter im Nullpunkt der
aktuellen Folge steht. Dieses Signal wird durch eine Verknüpfung des System--Signals
$IN_HOME (Positionsüberwachung) und einem Merker gebildet (Schrittfolge--Überwachung),
der bei Erreichen des 1. Programmpunktes “TRUE” wird. Die Verknüpfung geschieht im Steuer-
ungs--Programm SPS.SUB. Bei Fehlern im Steuerungsprogramm bleibt dieses Signal auf sei-
nem letzten Wert.

3.2.2.10 SAK -- Satzkoinzidenz


Mit dem Ausgang (SAK = 1) meldet die (V)KR C... der BMS, daß der Roboter sich auf einer
programmierten Bahn befindet.

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.2.3.2 ANTEIN -- Antriebe Ein in Betriebsart “Automatik Extern”


Mit dem pegelgesteuerten Eingang (ANTEIN = 1) schaltet die BMS die Antriebe des Robot-
ers ein und startet das angewählte Programm. Dieses Signal ist nur in der Betriebsart “Auto-
matik Extern” aktiv und wird in der Betriebsart “Handbetrieb” nicht ausgewertet.

VKRC/KonfigurationR5.4 11.05.00 de 77 von 84


Konfiguration

3.2.4 Überwachung der Grundstellung in P0


Die Grundstellung des Roboters im Punkt P0 der aktuellen Folge wird automatisch in der
Systemvariablen $H_POS permanent gespeichert. Zusätzlich kann mit der Systemvaria-
blen $H_POS_TOL ein achsspezifisches Positionier--Fenster um diesen Punkt in Grad an-
gegeben werden. Der Systemausgang $IN_HOME zeigt an, ob sich der Roboter innerhalb
($IN_HOME = 1) oder außerhalb des Positionsfensters befindet ($IN_HOME = 0).
Vorgabewerte:
$H_POS: mechanische Grundstellung des Roboters
$H_POS_TOL: A1 2.0°
A2 2.0°
A3 2.0°
A4 2.0°
A5 2.0°
A6 2.0°
E1 2.0°
E2 2.0°
E3 2.0°
E4 2.0°
E5 2.0°
E6 2.0°

78 von 84 VKRC/KonfigurationR5.4 11.05.00 de


3 Automatik Extern (Fortsetzung)

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).

3.3.1 Positionsüberwachung nach Anlagenhochlauf oder Spannungsausfall


Die aktuelle Folgenummer wird remanent in der Steuerung gespeichert. Im Hochlauf der
Steuerung nach einem Spannungsausfall wählt der Roboter automatisch die gespeicherte
Folge an, auch wenn während des Hochlaufes von der BMS eine andere Folgenummer aus-
gegeben wird.
G Steht der Roboter innerhalb des Positionierfensters um P0 der angewählten
Folge:
SAK =0
BEREIT =1
PF0 =1
wird in der Betriebsart Automatik mit dem Signal (ANTEIN = 1) der Punkt angefahren
und die zugehörige Punkt--SPS ausgeführt:
SAK =1
BEREIT =1
PF0 =1
Danach wartet die Steuerung auf eine neue Folgenummer von der BMS oder wechselt
in eine bereits anliegende neue Folge. In der Betriebsart Single Step muß der An-
wender mit der Start--Taste den Nullpunkt der angewählten Folge anfahren (SAK = 1,
BEREIT = 1, PF0 = 1).

VKRC/KonfigurationR5.4 11.05.00 de 79 von 84


Konfiguration

G Steht der Roboter außerhalb des Positionierfensters um P0 der angewählten


Folge, so wird der Punkt nicht angefahren:
SAK =0
BEREIT =1
PF0 =0
In diesem Fall muß der Bediener in der Betriebsart Single Step den Nullpunkt der ber-
eits angewählten Folge von Hand anfahren und SAK herstellen:
SAK =1
BEREIT =1
PF0 =1

G Ist keine gespeicherte Folgenummer vorhanden oder das zugehörige Folgepro-


gramm nicht vorhanden, so wird das Programm nicht angewählt. In diesem Fall muß
der Bediener in der Betriebsart Single Step eine beliebige Folge anwählen und den Null-
punkt dieser Folge von Hand anfahren. In beiden Fällen gilt beim Erreichen des Null-
punktes:
SAK =1
BEREIT =1
PF0 =1

3.3.2 Positionsüberwachung bei Programmunterbrechung ohne Spannungsausfall


Wird das Folgeprogramm ohne Spannungsausfall unterbrochen, wird anschließend
(SAK = 0 ) gesetzt, sobald der Roboter durch Handverfahren aus dem Positionierfenster be-
wegt oder eine Satzanwahl durchgeführt wird.
Satzkoinzidenz kann wieder hergestellt werden durch:
G Rückpositionieren mit der Start--Taste zum Unterbrechungspunkt
G Anfahren des programmierten Punktes nach Satzanwahl

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)!

80 von 84 VKRC/KonfigurationR5.4 11.05.00 de


3

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

MSICH Folgenbearbeitung Folgenbearbeitung

83 von 84
Konfiguration

3.5 Standardisierung der Schnittstelle


Schnittstellenzuordnung nach VW--Vorschrift, Änderungen vorbehalten!
Diverse Ein-- und Ausgänge sind durch die Maschinendaten als feste Signale vorgegeben,
andere stehen dem Anwender frei zur Verfügung.

Ausgang Signal Eingang Signal


A129 RFLG1 E129 FLG1
A130 RFLG2 E130 FLG2
A131 RFLG3 E131 FLG3

A132 RFLG4 E132 FLG4


A133 RFLG5 E133 FLG5
A134 RFLG6 E134 FLG6

A135 RFLG7 E135 FLG7

A136 RFLG8 E136 FLG8

A137 BEREIT E137 SRB


A138 RK23 E138 K25

A139 RK8 E139 K26


A140 RK9 E140 ANTEIN

A141 RK100 E141 MSICH

A142 WPROZ **) E142 Reserve


A143 WSLAV **) E143 Reserve

A144 PIAUS E144 SIMU


A145 LPKT E145 Reserve

A146 PF0 E146 Reserve


A147 SAK E147 Reserve
A148 WART1 E148 Reserve
A149 Reserve E149 Reserve

**) Siehe Kapitel Analyse


1

84 von 84 VKRC/KonfigurationR5.4 11.05.00 de


Index

Zeichen Außenlüfter Steuerschrank, 72


#INSIDE, 25, 36 Automatik Extern, 12
#INSIDE_STOP, 25, 36 Automatik--Extern--Ausgänge, 76
Automatik--Extern--Eingänge, 77
#OUTSIDE, 25, 36
Automatikbetrieb, 76
#OUTSIDE_STOP, 25, 36
Automatischer Anlagen--Hochlauf, 81
#STEP1, 69
$ADAP_ACC, 69
$ALARM_STOP, 76 B
$CURR_LIM, 68 Beispiel Momentenbetrieb, 64
$CURR_MAX, 68 Benutzergruppe, 16
$CURR_RED[x,x], 65, 67 Bereit, 76
$CUSTOM.DAT, 69 Binäre E/A, 11
$H_POS, 78 BMS, 77
$H_POS_TOL, 78 Bodenmontage, 63
$IN_HOME, 77, 78 BOF Reinitialisieren, 49
$RED_T1, 65
$ROBCOR.DAT, 69 C
$TOOL, 26 ConfigMon.ini bearbeiten, 59
$TORQ_DIFF, 70
$TORQ_VEL[], 65, 68
D
$TORQMON_COM, 70
$TORQMON_COM_DEF, 70 Deckenmontage, 63
$TORQMON_TIME, 69 Detailansicht, 20
$TORQUE_AXIS, 65, 67 Drehzahlreglerausgang, 64
$USER_SAF, 76 Durchsacken, 63

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

Variablen für den Momentenbetrieb, 68


Vorlaufstop, 68

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

VW System Software (VSS)


Release 5.4

Stand: 14.11.2005 Version: 00

VKRC/ProgExperteR5.4 11.05.00 de 1 von 188


e Copyright 2005

KUKA Roboter GmbH


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

2 von 188 VKRC/ProgExperteR5.4 11.05.00 de


Inhaltsverzeichnis

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

2 Variablen und Vereinbarungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


2.1 Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1 Namen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2 Lebensdauer einer Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Datenobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 Vereinbarung und Initialisierung von Datenobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Einfache Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2.1 Integer--Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2.2 Binär--und Hexadezimalsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.2.3 Real--Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.2.4 Boolesche Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.2.5 Character--Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.3 Felder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.3.1 Feldindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.3.2 Zweidimensionale Felder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.3.3 Dreidimensionale Felder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.4 Zeichenketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.5 Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.5.1 Punkt--Separator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.5.2 Aggregat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.5.3 Vordefinierte Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.5.4 Geometrische Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.6 Aufzählungstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.6.1 Vereinbarung von Aufzählungstypen -- ENUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3 Globale Strukturen, Typen und Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4 Datenmanipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.1 Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.1.1 Arithmetische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

VKRC/ProgExperteR5.4 11.05.00 de 3 von 188


Programmierung Experte

2.4.1.2 Geometrischer Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39


2.4.1.3 Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4.1.4 Logische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.1.5 Bit--Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.1.6 Prioritäten von Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.4.2 Mathematische Standardfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4.2.1 Betrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4.2.2 Wurzel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4.2.3 Sinus,Cosinus und Tangens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4.2.4 Arcuscosinus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4.2.5 Arcussinus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.4.2.6 Arcustangens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.5 Systemvariablen und Systemdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.5.1 Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.5.2 Flags und Zyklische Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.5.3 Vordefinierte Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

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 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3.6 Teachen von Punkten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

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

5 Ein-- /Ausgabeanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121


5.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.2 Binäre Ein--/Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.3 Digitale Ein--/Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.3.1 Signalvereinbarung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.4 Impulsausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.5 Analoge Ein--/Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.5.1 Analoge Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.5.2 Analoge Eingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.6 Vordefinierte Digitaleingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

6 Unterprogramme und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137


6.1 Vereinbarung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.2 Lokale Unterprogramme und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.3 Globale Unterprogramme und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.4 Aufruf und Parameterübergabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

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

VKRC/ProgExperteR5.4 11.05.00 de 5 von 188


Programmierung Experte

7.4.2 Fliegendes Messen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157


7.5 Verwendung zyklischer Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8 Trigger -- Bahnbezogene Schaltaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 161


8.1 Schaltaktion am Start-- oder Zielpunkt der Bahn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.1 Schaltbereiche und mögliche Verzögerungswerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.1.1.1 Start-- und Zielpunkt sind Genauhaltpunkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.1.1.2 Startpunkt ein Genauhaltpunkt und Zielpunkt ein Überschleifpunkt . . . . . . . . . . . . . . . . . . . . 163
8.1.1.3 Start-- und Zielpunkt Überschleifpunkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.1.1.4 Startpunkt ein Überschleifpunkt und Zielpunkt ein Genauhaltpunkt . . . . . . . . . . . . . . . . . . . 164
8.2 Schaltaktion beliebig auf der Bahn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
8.2.1 Zielpunkt ist ein Genauhaltpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
8.2.2 Zielpunkt ist ein Überschleifpunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

9 Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.1 Lokale Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.2 Globale Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

10 USER (KRL--Funktionsaufruf mit Parameterübergabe) . . . . . . . . . . . . . . 175


10.1 VW_USR_R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.2 VW_USR_S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
10.3 Haupt-- und Untergruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
10.4 Zuweisungen Relativverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
10.4.1 Übergabe von 7 Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
10.4.2 Übergabe von 3 Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
10.4.3 KRL--Code im Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
10.4.3.1 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
10.4.3.2 Syntax des USER--Blockes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
10.4.3.3 Syntax des Experten--Folds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

6 von 188 VKRC/ProgExperteR5.4 11.05.00 de


1 Allgemeines zu KRL--Programmen

1 Allgemeines zu KRL-- Programmen


1.1 Aufbau und Struktur von Programmen
1.1.1 Bedienoberfläche
Während für den Anwender alle Systemdateien unsichtbar sind, kann der Experte diese im
Programmfenster sehen und auch editieren. Ferner werden neben den Dateinamen und
Kommentaren auf Expertenebene auch die Dateiextensionen, --attribute und --größen ange-
zeigt.
Standardmäßig finden sich nach der Installation die folgenden Programme und Dateien in
unterschiedlichen (V)KRC--Verzeichnissen.

Datei Bedeutung
CELL.SRC Programm zur Steuerung von Robotern über eine zentrale SPS.
Folge... Anwenderprogramm.

Tab. 1 Verzeichnisinhalt “KRC\ R1\ Folgen\”

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

Tab. 2 Verzeichnisinhalt “KRC\ R1\ Mada\”

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.

Tab. 3 Verzeichnisinhalt “KRC:\ R1\ Makros\”

VKRC/ProgExperteR5.4 11.05.00 de 7 von 188


Programmierung Experte

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.

Tab. 4 Verzeichnisinhalt “KRC:\ R1\ System\”

Im Verzeichnis “KRC:\R1\VW_USER\” befinden sich folgende Dateien:

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!

Tab. 5 Verzeichnisinhalt “KRC:\ R1\ WV_User\”

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.

8 von 188 VKRC/ProgExperteR5.4 11.05.00 de


1 Allgemeines zu KRL--Programmen (Fortsetzung)

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

VKRC/ProgExperteR5.4 11.05.00 de 9 von 188


Programmierung Experte

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

Detaillierte Informationen zum Thema finden Sie im Kapitel [Datenlisten].

1.1.4 Programm editieren, kompilieren und binden


Haben Sie sich eine SRC--File oder eine Datenliste mit [ Neu ] erstellt, so können Sie diese
bearbeiten. Nach dem Schließen des Editors wird der komplette Programmcode kompiliert,
d. h. der textuelle KRL--Code wird in eine für die Steuerung verständliche Maschinensprache
übersetzt.
Compiler
Der Compiler überprüft den Code dabei auf syntaktische und semantische Richtigkeit. Sind
Fehler vorhanden, wird die betroffene Datei entsprechend gekennzeichnet.

Nur fehlerfreie Programme können angewählt und ausgeführt werden.

Weitere Informationen finden Sie im Abschnitt [Fehlerbehandlung].

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.

Weitere Informationen finden Sie in der Dokumentation [Bedienung] im Kapitel [Naviga-


tor], Abschnitt “Fehleranzeige”

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.

10 von 188 VKRC/ProgExperteR5.4 11.05.00 de


1 Allgemeines zu KRL--Programmen (Fortsetzung)

Ein einfaches Roboterprogramm könnte dann beispielsweise so aussehen:

DEF PROG1()

;----- Vereinbarungsteil -----


INT J

;------ Anweisungsteil -------


$VEL_AXIS[1]=100 ;Festlegung der Achsgeschwindigkeiten
$VEL_AXIS[2]=100
$VEL_AXIS[3]=100
$VEL_AXIS[4]=100

Initialisierungsteil
$VEL_AXIS[5]=100
$VEL_AXIS[6]=100

$ACC_AXIS[1]=100 ;Festlegung der Achsbeschleunigungen


$ACC_AXIS[2]=100
$ACC_AXIS[3]=100
$ACC_AXIS[4]=100
$ACC_AXIS[5]=100
$ACC_AXIS[6]=100

PTP {A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}

FOR J=1 TO 5
PTP {A1 45}
PTP {A2 -70,A3 50}
PTP {A1 0,A2 -90,A3 90}
ENDFOR

PTP {A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}


END

VKRC/ProgExperteR5.4 11.05.00 de 11 von 188


Programmierung Experte

1.2 Verstecken von Programmteilen


Anders als bei normalen Editoren gestattet der (V)KCP--Editor eine anforderungsspezifische
Anzeige der Programminhalte. So sieht zum Beispiel der Anwender nur die wesentlichen In-
halte eines Programms, während auf der Expertenebene das gesamte Programm einsehbar
ist.

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 DECLARATION;% weitere Informationen


;--------- Deklarationsteil ---------
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME
INT I
;ENDFOLD

;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

;------------- Hauptteil ------------


PTP HOME ;SAK-Fahrt
LIN {X 540,Y 630,Z 1500,A 0,B 90,C 0}
PTP HOME

END

12 von 188 VKRC/ProgExperteR5.4 11.05.00 de


1 Allgemeines zu KRL--Programmen (Fortsetzung)

Darstellung des Beispielprogramms auf der KUKA--BOF:

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.

Darstellung des Beispielprogramms mit “ein-


geschalteter Detailansicht”

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.

Kommentare sind eine wichtiger Bestandteil jedes Computerprogramms. Dadurch können


Sie Ihr Programm übersichtlich und auch für andere verständlich machen. Die Bearbeitungs-
geschwindigkeit des Programms wird durch Kommentare nicht beeinflußt.

VKRC/ProgExperteR5.4 11.05.00 de 13 von 188


Programmierung Experte

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.

#MSTEP Motion Step (Bewegungssatz)


Das Programm wird schrittweise, d.h. mit einem Stopp nach jedem
Bewegungssatz ausgeführt.
Das Programm wird ohne Vorlauf bearbeitet.
#ISTEP Inkremental Step (Einzelsatz)
Das Programm wird satzweise, d.h. mit einem Stopp nach jeder
Anweisung (auch Leerzeile) ausgeführt.
Das Programm wird ohne Vorlauf bearbeitet.
#PSTEP Program Step (Programmschritt)
Unterprogramme werden komplett abgefahren.
Das Programm wird ohne Vorlauf bearbeitet.
#CSTEP Continuous Step (Bewegungssatz)
Das Programm wird schrittweise, d.h. mit einem Stopp nach jedem
Bewegungssatz mit Genauhalt ausgeführt.
Das Programm wird mit Vorlauf abgearbeitet, d.h. Punkte werden
überschliffen.

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.

14 von 188 VKRC/ProgExperteR5.4 11.05.00 de


1 Allgemeines zu KRL--Programmen (Fortsetzung)

1.3.2 Wechsel der Programmablaufart


Eine SAK--Fahrt nach dem Umschalten der Programmablaufart ist in der Regel nicht not-
wendig. Erfolgt die Umschaltung der Programmablaufart bei einem Bewegungssatz mit Vor-
lauf, wird mindestens der aktuelle Bewegungssatz abgefahren. Im Falle eines Bewegungs-
satzes mit Überschleif werden mindestens der aktuelle sowie der folgende Bewegungssatz
zu Ende gefahren.

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

1 DEF FOLGE3() 1 DEF FOLGE4()


2 PTP 2 PTP
=> 3 PTP Hauptlauf 3 PTP
4 PTP 4 UP1()
5 PTP 5 PTP
6 END => 6 PTP Vorlauf
7 END

VKRC/ProgExperteR5.4 11.05.00 de 15 von 188


Programmierung Experte

Der Hautlaufzeiger befindet sich im Unterprogramm “Folge3()”, der Vorlaufzeiger steht im


Hauptprogramm auf “Folge4()”. Erfolgt zu diesem Zeitpunkt die Umschaltung auf die Pro-
grammablaufart “...STEP”, wird eine Zustandsmeldung ausgegeben. Erst wenn der Haupt-
laufzeiger die Zeile 5 in Folge4() erreicht, erfolgt eine Satzanwahl auf den nachfolgenden
Bewegungssatz. Anschließend wird die Zustandsmeldung gelöscht und auf die Programma-
blaufart “#...STEP” umgeschaltet.

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.

16 von 188 VKRC/ProgExperteR5.4 11.05.00 de


1 Allgemeines zu KRL--Programmen (Fortsetzung)

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

VKRC/ProgExperteR5.4 11.05.00 de 17 von 188


Programmierung Experte

1.5 Richtlinien
Mögliche Fehlerquellen können durch Einhalten bestimmter Richtlinien weitgehend vermie-
den werden.

1.5.1 Punkt wird mit falschem BASIS--Koordinatensystem angefahren


Dieses Problem tritt auf, wenn der Vorlaufzeiger die Koordinaten des nächsten BASIS--Koor-
dinatensystems eingelesen hat, der Hauptlaufzeiger aber noch das zuletzt aktuellen BASIS--
Koordinatensystem verwendet.
Erfolgt zu diesem Zeitpunkt beispielsweise ein Umschalten der Programmablaufart oder
eine Satzanwahl, wird der nächste Punkt mit den Koordinaten des aus dem Vorlauf stam-
menden BASIS--Koordinatensystems angefahren.
Im Beispiel soll der Punkt in Zeile 18 mit base_data[9] (Zeile 16) angefahren werden. Der
Vorlaufzeiger hat jedoch schon das BASIS--Koordinatensystem des PTP--HOME--Bewe-
gungssatzes eingelesen.

Abb. 2 BASIS--Koordinatensystem durch den Vorlaufzeiger

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.

18 von 188 VKRC/ProgExperteR5.4 11.05.00 de


1 Allgemeines zu KRL--Programmen (Fortsetzung)

1.5.2 Doppeldeklarationen vermeiden


In verschiedenen Systemdateien können Variablen mit gleichem Namen deklariert werden.
Beispielsweise kann die Variable 〈 DoubleDecl 〉 sowohl in 〈 \ R1\ $CONFIG.DAT 〉 als auch in
〈 \ Steu\ $CONFIG.DAT 〉 deklariert werden. Es wird vom System keine Doppeldeklaration ge-
meldet.
Der Compiler benutzt immer eine festgelegte Suchreihenfolge und verwendet die Variable
in der Datei mit der jeweils höchsten Priorität. Die Suche findet der Reihe nach in den folgen-
den Dateien statt:
(1) Aktuell angewähltes Programm oder Pfad der Umgebungsvariable
〈 $DataPath[ ] 〉 .
(2) \ R1\ $CONFIG.DAT
(3) \ STEU\ $CONFIG.DAT
(4) \ R1\ $ROBCOR.DAT
(5) \ R1\ $MACHINE.DAT
(6) \ STEU\ $CUSTOM.DAT
(7) \ STEU\ $MACHINE.DAT
(8) \ STEU\ $OPTION.DAT

Das Standard--Maschinendatum in 〈 \ STEU\ $MACHINE.DAT 〉 wird nicht verwendet, wenn in


〈 \ R1\ $MACHINE.DAT 〉 bereits das gleiche Maschinendatum initialisiert worden ist.

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.

VKRC/ProgExperteR5.4 11.05.00 de 19 von 188


Programmierung Experte

20 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen

2 Variablen und Vereinbarungen


2.1 Variablen
Neben der Verwendung von Konstanten, also der direkten Wertangabe in Form von Zahlen,
Zeichen, etc., können in KRL auch Variablen und andere Formen von Daten im Programm
benutzt werden.
Bei der Programmierung von Industrierobotern sind Variablen beispielsweise für die Sensor-
verarbeitung notwendig. Sie erlauben es, den vom Sensor eingelesenen Wert zu speichern
und an verschiedenen Stellen im Programm auszuwerten. Außerdem können arithmetische
Operationen durchgeführt werden, um etwa eine neue Position zu berechnen.

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.

Gültige KRL--Namen sind z.B.


SENSOR_1
KLEBEDUESE13
P1_BIS_P12
Eine Variable ist als fester Speicherbereich anzusehen, dessen Inhalt über den Variablenna-
men ansprechbar ist. Die Variable ist daher zur Laufzeit des Programms durch einen Spei-
cherplatz (Ort) und einen Speicherinhalt (Wert) realisiert.
Mit dem Gleichheitszeichen (=) werden den Variablen Werte zugewiesen. Die Anweisung
ANZAHL = 5
bedeutet also, daß im Speicherbereich mit der Adresse von ANZAHL der Wert 5 eingetragen
wird. Wie die Adresse genau aussieht, ist für den Programmierer uninteressant, sie wird da-
her selbständig vom Compiler vergeben. Wichtig ist nur, daß der Speicherinhalt mit Hilfe sei-
nes Namens jederzeit im Programm ansprechbar ist.
Da unterschiedliche Datenobjekte auch unterschiedlichen Speicherbedarf haben, muß der
Datentyp einer Variablen vor der Verwendung vereinbart (deklariert) werden.

Weitere Informationen finden Sie im Abschnitt “Datenobjekte” unter “Vereinbarung und


Initialisierung von Datenobjekten”

VKRC/ProgExperteR5.4 11.05.00 de 21 von 188


Programmierung Experte

2.1.2 Lebensdauer einer Variablen


Die Lebensdauer einer Variablen ist die Zeit, während der der Variablen Speicherplatz zuge-
wiesen ist. Sie ist abhängig davon, ob die Variable in einer SRC--Datei oder einer Datenliste
deklariert ist:
G Variable in einer SRC--Datei deklariert
Die Lebensdauer beschränkt sich auf die Laufzeit des Programms. Nach Beendigung der
Abarbeitung wird der Speicherbereich wieder freigegeben, der Wert der Variablen geht
somit verloren. Die Gültigkeit der Variablen ist nur solange wie der Interpreter im selben
DEF_END steht wie die Deklaration.
G Variable in einer Datenliste deklariert
Die Lebensdauer ist unabhängig von der Laufzeit des Programms. Die Variable existiert
so lange, wie die Datenliste existiert. Solche Variablen sind also permanent. Wurde die
Variable in der Datenliste auch initialisiert, so wird ihr aktueller Wert ebenfalls permanent
erhalten.

Weitere Informationen finden Sie im Kapitel [Datenlisten].

22 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

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.

2.2.1 Vereinbarung und Initialisierung von Datenobjekten


Deklaration
Die Zuordnung eines Variablennamens zu einem Datentyp und die Reservierung des Spei-
cherplatzes geschieht in KRL mit Hilfe der DECL--Vereinbarung. Mit
DECL INT ANZAHL,NUMMER
vereinbaren Sie z.B. zwei Variablen ANZAHL und NUMMER vom Datentyp “ganze Zahl” (In-
teger).
Damit erkennt der Compiler diese beiden Variablen sowie den zugehörigen Datentyp und
kann bei Benutzung der Variablen überprüfen, ob dieser Datentyp die beabsichtigte Opera-
tion überhaupt erlaubt.
Die Deklaration beginnt, wie im Beispiel gezeigt, mit dem Schlüsselwort DECL, gefolgt vom
Datentyp und der Liste von Variablen, die diesen Datentyp erhalten sollen.

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”.

VKRC/ProgExperteR5.4 11.05.00 de 23 von 188


Programmierung Experte

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()

;---- Vereinbarungsteil ----


;---- Initialisierungsteil ----


;---- Anweisungsteil ----


END

Abb. 3 Grundaufbau eines Roboterprogramms

Weitere Informationen hierzu finden Sie im Kapitel [Datenlisten].

24 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

2.2.2 Einfache Datentypen


Unter den einfachen Datentypen versteht man einige grundsätzliche Datentypen, die in den
meisten Programmiersprachen vorhanden sind. Einfache Datentypen enthalten im Gegen-
satz zu den strukturierten Datentypen nur einen einzigen Wert. Die in KRL bekannten Daten-
typen sind zusammen mit ihrem jeweiligen Wertebereich aufgelistet.

Datentyp Integer Real Boolean Character


Schlüsselwort INT REAL BOOL CHAR
Bedeutung ganze Zahl Gleitkommazahl logischer Zu- 1 Zeichen
stand
Wertebereich -231…231-1 ±1.1E-38… TRUE, FALSE ASCII--Zeichen
±3.4E+38

Tab. 6 Einfacher Datentyp

Weitere Informationen finden Sie unter “Strukturierten Datentypen”.

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.

Ausnahme: Bei Integer--Division wird die Nachkommastelle abgeschnitten, z.B.: 7/4 = 1

VKRC/ProgExperteR5.4 11.05.00 de 25 von 188


Programmierung Experte

2.2.2.2 Binär--und Hexadezimalsystem


Während der Mensch im Dezimalsystem rechnet und denkt, kennt ein Computer nur Nullen
und Einsen, welche die beiden Zustände Aus und Ein repräsentieren. Ein Zustand (Aus oder
Ein) wird also mit einem Bit dargestellt. Aus Geschwindigkeitsgründen greift der Rechner im
allgemeinen auf ein ganzes Paket solcher Nullen und Einsen zu. Typische Paketgrößen sind
8 Bit (=1 Byte), 16 Bit oder 32 Bit. Bei maschinennahen Operationen ist daher oftmals die
Darstellung im Binärsystem (2er--System: Ziffern 0 und 1) oder im
Hexadezimalsystem (16er--System: Ziffern 0--9 und A--F) hilfreich. Binäre oder hexadezi-
male Integerwerte können Sie in KRL mit Hilfe des Hochkommas (’) und der Angabe von B
für Binärdarstellung oder H für Hexadezimaldarstellung angeben.

Die ersten 17 Zahlen im Dezimal-- und Hexadezimalsystem


D 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
H 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

Tab. 7 Die ersten 17 Zahlen im Dezimal-- und Hexadezimalsystem

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

Tab. 8 Binär nach Dezimal

Zum Transfer von Zahlen aus dem Hexadezimalsystem in das Dezimalsystem gehen Sie
folgendermaßen vor:

5 A
=5S161+10S160=90
161 160

Tab. 9 Hexadezimal nach Dezimal

26 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

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

Wird einer REAL--Variablen ein INTEGER--Wert zugewiesen, so wird eine automatische


Typumwandlung nach REAL vorgenommen. Die Variable REALZAHL2 hat also nach
der obigen Zuweisung den Wert 10.0!

2.2.2.4 Boolesche Variable


Die booleschen Variablen dienen zur Beschreibung von logischen Zuständen (z.B. Ein--/
Ausgängen). Sie können nur die Werte TRUE (wahr) und FALSE (falsch) annehmen:
ZUSTAND1 = TRUE
ZUSTAND2 = FALSE

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 = “?”

Weitere Informationen finden Sie unter “Speicherung ganzer Zeichenfolgen”.

VKRC/ProgExperteR5.4 11.05.00 de 27 von 188


Programmierung Experte

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

OTTO [1] [2] [3] [4] [5] [6] [7]

Abb. 4 Darstellung eines eindimensionalen Feldes

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

Weitere Informationen finden Sie im Kapitel [Programmablaufkontrolle], Abschnitt


“Schleifen”.

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.

28 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

Informationen zu arithmetischen Ausdrücken finden Sie im Abschnitt “Operatoren”.

2.2.3.2 Zweidimensionale Felder


Neben den bisher besprochenen eindimensionalen Feldern, d.h. Feldern mit nur einem In-
dex, können Sie in KRL auch zwei-- oder dreidimensionale Felder verwenden. Mit
DECL REAL MATRIX[7,3]
vereinbaren Sie ein zweidimensionales 7×3 Feld mit 7⋅3=21 REAL--Elementen. Anschau-
lich läßt sich dieses Feld als Matrix mit 7 Spalten und 3 Reihen darstellen.

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

Abb. 5 Darstellung eines zweidimensionalen Feldes

VKRC/ProgExperteR5.4 11.05.00 de 29 von 188


Programmierung Experte

2.2.3.3 Dreidimensionale Felder


Dreidimensionale Felder kann man sich so vorstellen, daß mehrere zweidimensionale Matri-
zen hintereinander liegen. Die dritte Dimension gibt sozusagen die Ebene an, in der die Ma-
trix liegt . Vereinbart wird ein dreidimensionales Feld analog zu den ein-- oder zweidimensio-
nalen Feldern, z.B.:
DECL BOOL FELD_3D[5,3,4]
Die Initialisierungssequenz könnte so aussehen:

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

Abb. 6 Darstellung eines dreidimensionalen Feldes

30 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

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”

Sie können aber auch gleich ganze Zeichenketten eingeben:


NAME[] = “ABCDEFG”
belegt die ersten sieben Elemente des Feldes NAME[] mit den Buchstaben A, B, C, D,
E, F und G:

A B C D E F G

VKRC/ProgExperteR5.4 11.05.00 de 31 von 188


Programmierung Experte

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.

Folgende Zuweisungen sind für POS--Variablen beispielsweise auch zulässig:


POSITION={B 100.0,X 29.5,T 6}
POSITION={A 54.6,B -125.64,C 245.6}
POSITION={POS: X 230,Y 0.0,Z 342.5}
Bei POS, E6POS, AXIS, E6AXIS und FRAME--Strukturen werden fehlende Komponen-
ten nicht verändert. Bei allen sonstigen Aggregaten werden nicht vorhandene Kompo-
nenten auf ungültig gesetzt.

32 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

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}

Um selbstdefinierte Datentypen von Variablen besser unterscheiden zu können, sollten


die Namen der neuen Datentypen mit …TYP enden.

2.2.5.3 Vordefinierte Strukturen

In der Datei $OPERATE.SRC sind folgende Strukturen vordefiniert:


G STRUC AXIS REAL A1,A2,A3,A4,A5,A6
G STRUC E6AXIS REAL A1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5
,E6
G STRUC FRAME REAL X,Y,Z,A,B,C
G STRUC POS REAL X,Y,Z,A,B,C, INT S,T
G STRUC E6POS REAL X,Y,Z,A,B,C,E1,E2,E3,E4,E5,E6,
INT S,T
Die Komponenten A1…A6 der Struktur AXIS sind Winkelwerte (rotatorische Achsen) oder
Translationswerte (translatorische Achsen) zum achsspezifischen Verfahren der Roboter-
achsen 1…6.
Mit den zusätzlichen Komponenten E1…E6 in der Struktur E6AXIS können Zusatzachsen
angesprochen werden.
In der Struktur FRAME können Sie 3 Positionswerte im Raum (X, Y und Z) sowie 3 Orientierun-
gen im Raum (A, B und C) festlegen. Ein Punkt im Raum ist damit nach Lage und Orientierung
eindeutig definiert.
Da es Roboter gibt, die ein und den selben Punkt im Raum mit mehreren Achsstellungen
anfahren können, dienen die Integervariablen S und T in der Struktur POS zum Festlegen
einer eindeutigen Achsstellung.

VKRC/ProgExperteR5.4 11.05.00 de 33 von 188


Programmierung Experte

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung], Abschnitt


“Status (S) und Turn (T)”.

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.

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung], Abschnitt


“Verwendung verschiedener Koordinatensysteme”

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.

34 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

2.3 Globale Strukturen, Typen und Variablen


Um Strukturen (”STRUC”), Aufzählungstypen (”ENUM”) und Variablen systemweit zu verwen-
den gibt es zwei Möglichkeiten. Entweder müssen die entsprechenden Daten in einer Sy-
stemdatei eingetragen sein oder es ist das Schlüsselwort “Global” in einer Datenliste zu ver-
wenden. Anschließend ist ein Zugriff aus allen Modulen heraus möglich.

Zu den Systemdateien gehören:

R1\ STEU\

MADA\ $CONFIG.DAT

$MACHINE.DAT
MADA\
$ROBCOR.DAT
$CUSTOM.DAT
SYSTEM\
$MACHINE.DAT
$CONFIG.DAT $OPTION.DAT

Abb. 7 Systemdateien unter “R1\” und “Steu\”

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

Abb. 8 Globale Deklaration und Wertzuweisung

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.

VKRC/ProgExperteR5.4 11.05.00 de 35 von 188


Programmierung Experte

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.

Logische Unterteilung (Modulgruppe)


Mehrere bestimmte Module verwenden den Datentyp “GlobTyp”, der sonst von keinem an-
deren Modul benötigt wird. Die Methoden “Systemdatei” und “Variablenimport” scheiden
hierfür aus.
=> In einem eigenen Verzeichnis eine Datenliste erstellen, in der auch der Datentyp
“GlobTyp” definiert ist. Alle Programme, die diesen Datentyp verwenden, ebenfalls
in diesem Verzeichnis anlegen.
Auf diese Weise entsteht eine übersichtliche logische Unterteilung.

Programmzeilen
GLOBAL INT gloint = 1
GLOBAL E6POS gloe6pos Zulässig

GLOBAL STRUC glostru1 INT A,B


DECL GLOBAL glostruc1 glovar1 Zulässig

STRUC locstruc1 INT A,B


DECL GLOBAL locstruc1 glovar1 Nicht zulässig!

Globale Strukturen und Aufzählungstypen befinden sich in einer internen Verwaltungs-


tabelle. Diese Tabelle ist eine nicht einsehbare Systemdatei. Hier sind unbeabsichtigte
Doppeldeklarationen mit “GLOBAL” und der Systemdatei “$CONFIG.DAT” möglich.
Einige Systemdateien haben das Fold “User Globals”, das speziell zum Einfügen von
benutzerspezifischen Strukturen, Aufzählungstypen und Variablen gedacht ist.

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.

36 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

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.

VKRC/ProgExperteR5.4 11.05.00 de 37 von 188


Programmierung Experte

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

Tab. 10 Arithmetische Operatoren

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.

Operanden INT REAL


INT INT REAL
REAL REAL REAL

Tab. 11 Ergebnis einer arithmetischen Operation

38 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

Zur Verdeutlichung dient folgendes Programmbeispiel:

DEF ARITH()

;--------- Deklarationsteil ---------


INT A,B,C
REAL K,L,M

;---------- Initialisierung ---------


;vor der initialisierung sind alle variablen ungueltig!
A = 2 ;A=2
B = 9.8 ;B=10
C = 7/4 ;C=1
K = 3.5 ;K=3.5
L = 0.1 E01 ;L=1.0
M = 3 ;M=3.0
;------------- Hauptteil ------------
A = A * C ;A=2
B = B - ’HB’ ;B=-1
C = C + K ;C=5
K = K * 10 ;K=35.0
L = 10 / 4 ;L=2
L = 10 / 4.0 ;L=2.5
L = 10 / 4. ;L=2.5
L = 10./ 4 ;L=2.5
C = 10./ 4. ;C=3
M = (10/3) * M ;M=9.0

END

2.4.1.2 Geometrischer Operator

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.

linker Operand Operator rechter Operand Ergebnis


(Bezugs--KS) (Ziel--KS)
POS : POS POS
POS : FRAME FRAME
FRAME : POS POS
FRAME : FRAME FRAME

Tab. 12 Datentyp--Kombinationen beim geometrischen Operator

VKRC/ProgExperteR5.4 11.05.00 de 39 von 188


Programmierung Experte

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

Abb. 9 Wirkungsweise des geometrischen Operators

Die Aufgabenstellung ist nun, das WERKSTUECK--Koordinatensystem bezüglich des RAUM--


Koordinatensystems zu beschreiben. Dazu vereinbaren Sie zunächst folgende Framevaria-
blen:
FRAME TISCH, WERKSTUECK, BASIS

40 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

Das RAUM--Koordinatensystem sei bereits systemspezifisch festgelegt. Die Koordinatensy-


steme TISCH und WERKSTUECK werden nun entsprechend den Randbedingungen initiali-
siert:
TISCH = {X 450,Y 600,Z 800,A 0,B 0,C 0}
WERKSTUECK = {X 80,Y 110,Z 55,A -40,B 180,C 0}
Das WERKSTUECK--Koordinatensystem bezüglich des RAUM--Koordinatensystems ergibt
sich nun mit Hilfe des geometrischen Operators zu
BASIS = TISCH:WERKSTUECK
In unserem Fall ist BASIS nun folgendermaßen besetzt:
BASIS = {X 530,Y 710,Z 855,A -40,B 180,C 0}

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!

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung], Abschnitt


“Verwendung verschiedener Koordinatensysteme” zu finden.

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.

VKRC/ProgExperteR5.4 11.05.00 de 41 von 188


Programmierung Experte

DEF GEOM_OP ( );

--------- Deklarationsteil ---------


EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME ;Variable HOME vom Typ AXIS
DECL FRAME MYBASE[2] ;Feld vom Typ FRAME;

---------- Initialisierung ---------


BAS (#INITMOV,0 ) ;Initialisierung von Geschwindigkeiten,
;Beschleunigungen, $BASE, $TOOL, etc.
HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0}; Basiskoordinaten-
; system setzen
$BASE={X 1000,Y 0,Z 1000,A 0,B 0,C 0}
REF_POS_X={X 100,Y 0,Z 0,A 0,B 0,C 0} ;Referenzpos.
REF_POS_Y={X 100,Y 100,Z 0,A 0,B 0,C 0}
REF_POS_Z={X 100,Y 100,Z 100,A 0,B 0,C 0} ;eigene Koordina-
;tensysteme defi
;nieren
MYBASE[1]={X 200,Y 100,Z 0,A 0,B 0,C 180}
MYBASE[2]={X 0,Y 200,Z 250,A 0,B 90,C 0}

;------------- Hauptteil ------------


PTP HOME ; SAK-Fahrt; Bewegung bezueglich des $BASE-Koordinaten-
systems
PTP $BASE ;Ursprung des $BASE-KS direkt anfahren
WAIT SEC 2 ;2 Sekunden warten
PTP REF_POS_X ;100mm in x-Richtung fahren
PTP REF_POS_Y ;100mm in y-Richtung fahren
PTP REF_POS_Z ,100mm in z-Richtung fahren

;Bewegung bezueglich des um MYBASE[1] verschobenen $BASE-KS


PTP MYBASE[1]
WAIT SEC 2
PTP MYBASE[1]:REF_POS_X
PTP MYBASE[1]:REF_POS_Y
PTP MYBASE[1]:REF_POS_Z

; Bewegung bezueglich des um MYBASE[2] verschobenen $BASE-KS


PTP MYBASE[2]
WAIT SEC 2
PTP MYBASE[2]:REF_POS_X
PTP MYBASE[2]:REF_POS_Y
PTP MYBASE[2]:REF_POS_Z

; Bewegung bez. des um MYBASE[1]:MYBASE[2] versch. $BASE-KS


PTP MYBASE[1]:MYBASE[2]
WAIT SEC 2
PTP MYBASE[1]:MYBASE[2]:REF_POS_X
PTP MYBASE[1]:MYBASE[2]:REF_POS_Y
PTP MYBASE[1]:MYBASE[2]:REF_POS_Z

; Bewegung bez. des um MYBASE[2]:MYBASE[1] versch. $BASE-KS


PTP MYBASE[2]:MYBASE[1]
WAIT SEC 2
PTP MYBASE[2]:MYBASE[1]:REF_POS_X
PTP MYBASE[2]:MYBASE[1]:REF_POS_Y
PTP MYBASE[2]:MYBASE[1]:REF_POS_Z
PTP HOME
END

42 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

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.

Operator Beschreibung zulässige Datentypen


== gleich INT, REAL, CHAR, ENUM, BOOL
<> ungleich INT, REAL, CHAR, ENUM, BOOL
> größer INT, REAL, CHAR, ENUM
< kleiner INT, REAL, CHAR, ENUM
>= größer gleich INT, REAL, CHAR, ENUM
<= kleiner gleich INT, REAL, CHAR, ENUM

Tab. 13 Vergleichsoperatoren

Vergleiche können in Programmablaufanweisungen verwendet werden, das Ergebnis eines


Vergleichs kann einer boolschen Variablen zugewiesen werden.

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

VKRC/ProgExperteR5.4 11.05.00 de 43 von 188


Programmierung Experte

2.4.1.4 Logische Operatoren


Diese dienen zur logischen Verknüpfung von boolschen Variablen, Konstanten und einfa-
chen logischen Ausdrücken, wie sie mit Hilfe der Vergleichsoperatoren gebildet werden. So
hat z. B. der Ausdruck
(A > 5) AND (A < 12)
nur dann den Wert TRUE, wenn A im Bereich zwischen 5 und 12 liegt. Solche Ausdrücke
werden häufig in Anweisungen zur Ablaufkontrolle verwendet.

Weitere Informationen finden Sie im Kapitel [Programmablaufkontrolle].

Operator Operandenzahl Beschreibung


NOT 1 Invertierung
AND 2 logisches UND
OR 2 logisches ODER
EXOR 2 exklusives ODER

Tab. 14 Logische Operatoren

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.

Operation NOT A A AND B A OR B A EXOR B


A = TRUE B = TRUE FALSE TRUE TRUE FALSE
A = TRUE B = FALSE FALSE FALSE TRUE TRUE
A = FALSE B = TRUE TRUE FALSE TRUE TRUE
A = FALSE B = FALSE TRUE FALSE FALSE FALSE

Tab. 15 Wahrheitstabelle für logische Verknüpfungen

Einige Beispiele zu logischen Verknüpfungen:



BOOL A,B,C

A = TRUE ;A=TRUE
B = NOT A ;B=FALSE
C = (A AND B) OR NOT (B EXOR NOT A) ;C=TRUE
A = NOT NOT C ;A=TRUE

44 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

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

Abb. 10 Bitweise Verknüpfung

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.

Operator Operandenzahl Beschreibung


B_NOT 1 bitweise Invertierung
B_AND 2 bitweise UND--Verknüpfunge
B_OR 2 bitweise ODER--Verknüpfung
B_EXOR 2 bitweise exklusive ODER--Verknüpfung

Tab. 16 Logische Bit--Operatoren

Weitere Informationen finden Sie im Kapitel [Ein--/Ausgabeanweisungen], Abschnitt


“Digitale Ein--/Ausgänge”.

Da ASCII--Zeichen auch über den ganzzahligen ASCII--CODE ansprechbar sind, kann


der Datentyp der Operanden neben INT auch CHAR sein. Das Ergebnis ist immer vom
Typ INT.

VKRC/ProgExperteR5.4 11.05.00 de 45 von 188


Programmierung Experte

Beispiele zur Verwendung von Bit--Operatoren:



INT A

A = 10 B_AND 9 ;A=8
A = 10 B_OR 9 ;A=11
A = 10 B_EXOR 9 ;A=3
A = B_NOT 197 ;A=-198
A = B_NOT ’HC5’ ;A=-198
A = B_NOT ’B11000101’ ;A=-198
A = B_NOT “E” ;A=-70

Einblenden von Bits


Angenommen, Sie haben einen 8--Bit breiten digitalen Ausgang definiert. Sie können den
Ausgang über die INTEGER--Variable DIG ansprechen. Zum Setzen der Bits 0, 2, 3 und 7
können Sie nun einfach
DIG = ’B10001101’ B_OR DIG
programmieren. Alle anderen Bits bleiben unbeeinflußt, egal welchen Wert sie haben.

Ausblenden von Bits


Wollen Sie z.B. die Bits 1, 2 und 6 ausblenden, so programmieren Sie
DIG = ’B10111001’ B_AND DIG
Alle anderen Bits werden dadurch nicht verändert.

Herausfiltern von Bits


Genauso leicht können Sie mit den Bit--Operatoren überprüfen, ob einzelne Bits des Aus-
gangs gesetzt sind. Der Ausdruck
(’B10000001’ B_AND DIG) == ’B10000001’
wird TRUE, wenn die Bits 0 und 7 gesetzt sind, ansonsten wird er FALSE.
Wollen Sie nur Testen, ob wenigstens eines der beiden Bits 0 oder 7 gesetzt ist, so muß die
bitweise UND--Verknüpfung lediglich größer Null sein:
(’B10000001’ B_AND DIG) > 0

46 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

2.4.1.6 Prioritäten von Operatoren


Verwenden Sie komplexere Ausdrücke mit mehrere Operatoren, so müssen Sie die unter-
schiedlichen Prioritäten der einzelnen Operatoren beachten, da die einzelnen Ausdrücke in
der Reihenfolge ihrer Prioritäten ausgeführt werden.

Priorität Operator
1 NOT B_NOT
2 * /
3 + -
4 AND B_AND
5 EXOR B_EXOR
6 OR B_OR
7 == <> < > >= <=

Tab. 17 Prioritäten von Operatoren

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

VKRC/ProgExperteR5.4 11.05.00 de 47 von 188


Programmierung Experte

2.4.2 Mathematische Standardfunktionen


Zur Berechnung gewisser mathematischer Probleme sind in KRL einige Standardfunktionen
vordefiniert. Sie können ohne weitere Vereinbarung direkt benutzt werden.

Beschrei- Funktion Datentyp Wertebereich Datentyp Wertebereich


bung Argument Argument Funktion Ergebnis
Betrag ABS(X) REAL --∞…+∞ REAL 0…+∞
Wurzel SQRT(X) REAL 0…+∞ REAL 0…+∞
Sinus SIN(X) REAL --∞…+∞ REAL -1…+1
Cosinus COS(X) REAL --∞…+∞ REAL -1…+1
Tangens TAN(X) REAL --∞…+∞* REAL --∞…+∞
Arcuscos. ACOS(x) REAL -1…+1 REAL 0_…180_
Arcustang. ATAN2(Y,X) REAL --∞…+∞ REAL -90_…+90_
* keine ungeradzahligen Vielfache von 90_, d.h. X ¸ (2k-1)*90_, k∈8

Tab. 18 Mathematische Standardfunktionen

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.3 Sinus,Cosinus und Tangens


Die trigonometrischen Funktionen SIN(X), COS(X) und TAN(X) berechnen den Sinus, Co-
sinus oder Tangens des Winkels X, z. B.:
A = SIN(30) ;A=0.5
B = 2*COS(45) ;B=1.41421356
C = TAN(45) ;C=1.0
Der Tangens von ±90_ und ungeradzahligen Vielfachen von ±90_ (±270_, ±450_, ±630_…),
ist unendlich. Deshalb führt der Versuch der Berechnung eines dieser Werte zu einer Fehler-
meldung.
2.4.2.4 Arcuscosinus
ACOS(X) ist die Umkehrfunktion zu COS(X):
A = COS(60) ;A=0.5
B = ACOS(A) ;B=60

48 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

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

Abb. 11 Verwendung von X und Y in der Funktion ATAN2(Y,X)

Weitere Informationen finden Sie im Kapitel [Unterprogramme und Funktionen], Ab-


schnitt “Vereinbarung”.

VKRC/ProgExperteR5.4 11.05.00 de 49 von 188


Programmierung Experte

2.5 Systemvariablen und Systemdateien


Eine wichtige Voraussetzung für die Bearbeitung von komplexen Anwendungen in der Robo-
tertechnik ist eine frei und komfortabel programmierbare Steuerung.
Dazu muß in einfacher Weise die Funktionalität der Robotersteuerung in der Roboterspra-
che programmierbar sein. Erst wenn die Integration der Steuerungsparameter in ein Robo-
terprogramm vollständig und doch einfach möglich ist, können Sie die volle Funktionalität
einer Robotersteuerung ausnützen. Bei der (V)KR C... ist dies durch das Konzept der vorde-
finierten Systemvariablen und --dateien hervorragend gelöst.
Beispiele für vordefinierte Variablen sind $POS_ACT (aktuelle Roboterposition), $BASE (Ba-
siskoordinatensystem) oder $VEL.CP (Bahngeschwindigkeit).

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

Beim Steuerungshochlauf werden alle Timervariablen mit 0,


die Flags $TIMER_FLAG[1]…$TIMER_FLAG[10] mit FALSE und
die Variablen $TIMER_STOP[1]…$TIMER_STOP[10] mit TRUE vorbesetzt.
Die Einheit der Timervariablen ist Millisekunden (ms). Die Aktualisierung von
$TIMER[1]…$TIMER[10] sowie $TIMER_FLAG[1]…$TIMER_FLAG[10] erfolgt im
12ms--Takt.

Für Programmierer stehen die folgenden $TIMER[1]…$TIMER[10] bzw. $TI-


MER_STOP[1]…$TIMER_STOP[10] zur Verfügung.
Die $TIMER[11]…$TIMER[16] bzw. $TIMER_STOP[11]…$TIMER_STOP[16]
sind häufig für die KUKA--Technologiepakete vergeben!

50 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

2.5.2 Flags und Zyklische Flags


Die 1024 Flags $FLAG[1]…$FLAG[1024] werden als globale Merker eingesetzt. Diese
boolschen Variablen werden mit FALSE vorbesetzt. Sie können sich den aktuellen Wert der
Flags jederzeit auf der Bedienoberfläche unter dem Menüpunkt “Anzeige” ansehen.
Des weiteren stehen in der (V)KR C... 32 zyklische Flags $CYCFLAG[1]…$CYCFLAG[32]
zur Verfügung. Nach dem Steuerungshochlauf sind sie alle mit FALSE vorbelegt.
Die Flags sind nur auf der Roboterebene zyklisch aktiv. In einer Submit--Datei sind die zykli-
schen Flags zwar zulässig, es erfolgt aber keine zyklische Auswertung.
Zyklische Flags können auch in Unterprogrammen, Funktionen und Interrupt-- Unterpro-
grammen definiert und aktiviert werden.
$CYCFLAG[1]…$CYCFLAG[32] haben den Datentyp BOOL. Bei einer Zuweisung an ein
zyklisches Flag kann ein beliebiger boolscher Ausdruck verwendet werden.
Zulässig sind
G boolsche Systemvariablen und
G boolsche Variablen, welche in einer Datenliste deklariert und initialisiert wurden.
Nicht zulässig sind
G Funktionen, die einen boolschen Wert zurückliefern.
Die Anweisung
$CYCFLAG[10] = $IN[2] AND $IN[13]
bewirkt beispielsweise, daß der boolsche Ausdruck “$IN[2] AND $IN[13]” zyklisch
ausgewertet wird. Das heißt, sobald sich Eingang 2 oder Eingang 13 ändert, ändert sich auch
$CYCFLAG[10], egal an welcher Stelle sich der Programmlaufzeiger nach Abarbeitung des
obigen Ausdrucks befindet.
Alle definierten zyklischen Flags bleiben solange gültig, bis ein Modul abgewählt oder mit
Reset eine Satzanwahl durchgeführt wird. Wird das Programmende erreicht, bleiben alle zy-
klischen Flags weiterhin aktiv.

Weitere Informationen finden Sie im Kapitel [Interrupt--Behandlung], Abschnitt “Ver-


wendung zyklischer Flags”.

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.

Um Verwechselungen zu vermeiden, sollten Sie selbst keine Variablen vereinbaren, die


mit einem $--Zeichen beginnen.

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).

VKRC/ProgExperteR5.4 11.05.00 de 51 von 188


Programmierung Experte

2.5.3 Vordefinierte Datenlisten


Bei der Programmierung der (V)KR C... können Sie Programmdateien und Datenlisten er-
stellen. In den Programmdateien stehen Datendefinitionen und ausführbare Anweisungen,
die Datenlisten enthalten nur Datendefinitionen und eventuell Initialisierungen.

Weitere Informationen finden Sie im Kapitel “Datenlisten”.

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

52 von 188 VKRC/ProgExperteR5.4 11.05.00 de


2 Variablen und Vereinbarungen (Fortsetzung)

G Globale Deklarationen des Anwenders sollten unbedingt in den USER--Block eingetra-


gen werden. Denn nur hier werden die Vereinbarungen bei einem späteren Software--
Update übernommen.
G $ROBCOR.DAT
Die Datei $ROBCOR.DAT enthält roboterspezifische Daten für das Dynamikmodell
des Roboters. Diese Daten werden für die Bahnplanung benötigt. Auch hier können Sie
keine neuen Variablen erstellen oder vorhandene Variablen löschen.

Datenliste System Wertzuweisung


Steuerung Roboter bei durch
$OPERATE.SRC n n Lieferung KUKA
$MACHINE.DAT n n Inbetriebnahme KUKA/Anwender
$CONFIG.DAT n n Zellenauf-- oder Anwender/KUKA
--umbau
$ROBCOR.DAT n Lieferung KUKA

Tab. 19 Vordefinierte Datenlisten auf der (V)KR C...

VKRC/ProgExperteR5.4 11.05.00 de 53 von 188


Programmierung Experte

54 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung

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.

3.1 Verwendung verschiedener Koordinatensysteme


Um die Lage bzw. Orientierung eines Punktes im Raum angeben zu können, bedient man
sich verschiedener Koordinatensysteme. Eine grundsätzliche Unterscheidung kann in achs-
spezifische und kartesische Koordinatensystem erfolgen:

3.1.1 Achsspezifisches Koordinatensystem


Im achsspezifischen Koordinatensystem werden die Verschiebungen (bei translatorischen
Achsen) bzw. Verdrehungen (bei rotatorischen Achsen) jeder Roboterachse angegeben. Bei
einem 6--achsigen Knickarmroboter müssen also alle 6 Robotergelenkwinkel angegeben
werden, um Lage und Orientierung eindeutig festzulegen .

VKRC/ProgExperteR5.4 11.05.00 de 55 von 188


Programmierung Experte

Abb. 12 Achsspezifisches Verfahren eines 6--achsigen Knickarmroboters

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.

Weitere Informationen finden Sie im Kapitel [Variablen und Vereinbarungen], Abschnitt


“Vordefinierte Strukturen”.

Achsspezifische Positionen können nur in Verbindung mit PTP--Bewegungssätzen abgefah-


ren werden. Wird eine Bahnbewegung mit einer achsspezifischen Roboterposition program-
miert, führt dies zu einem Fehlerfall.

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.

56 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

A1, A2, A3, A4, A5, A6

X, Y, Z, A, B, C (, S, T)

(1) Vorwärtstransformation. (2) Rückwärtstransformation.

Abb. 13 Koordinatentransformation

3.1.2 Kartesisches Koordinatensystem


In einem kartesischen Koordinatensystem stehen die 3 Koordinatenachsen X, Y und Z sen-
krecht aufeinander und bilden in dieser Reihenfolge ein Rechtssystem.
Die Lage eines Punktes im Raum ist im kartesischen Koordinatensystem eindeutig durch die
Angabe der Koordinaten X, Y und Z bestimmt. Diese ergeben sich aus den translatorischen
Distanzen jedes Koordinatenwertes zum Koordinatenursprung .
Z
P

Z1

Y1

X1 X

P(X1=5, Y1=2, Z1=4)

Abb. 14 Translatorische Beschreibung der Lage eines Punktes

VKRC/ProgExperteR5.4 11.05.00 de 57 von 188


Programmierung Experte

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.

Weitere Informationen finden Sie im Kapitel [Variablen und Vereinbarungen], Abschnitt


“Vordefinierte Strukturen”.

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.

Weitere Informationen finden Sie im Kapitel [Variablen und Vereinbarungen], Ab-


schnitt “Vordefinierte Strukturen” und in diesem Kapitel unter “Status (S) und Turn
(T)”.

58 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

In der (V)KR C... sind folgende kartesische Koordinatensysteme vordefiniert:

Koordinatensystem Systemvariable Status


Welt--Koordinatensystem $WORLD schreibgeschützt
Roboter--Koordinatensystem $ROBROOT schreibgeschützt (in
R1/$MACHINE.DAT
änderbar)
Werkzeug--Koordinatensystem $TOOL* beschreibbar
Basis(Werkstück--)Koordinatensystem $BASE* beschreibbar
* bei greiferbezogener Interpolation werden $TOOL und $BASE vertauscht (s.u.)

Tab. 20 Vordefinierte Koordinatensysteme

y
z
1
z x

z y
2 x
y

z
y x
3
4 x

(1) Werkzeug--Koordinatensystem (TOOL) (3) Roboter--Koordinatensystem (BASE).


(2) Basis--Koordinatensystem (BASE) (4) Welt--Koordinatensystem (WORL).

Abb. 16 Kartesische Koordinatensysteme bei Robotern

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.

VKRC/ProgExperteR5.4 11.05.00 de 59 von 188


Programmierung Experte

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

Bei der Auslieferung liegt das Werkzeugkoordinatensystem im Roboterflansch (Z--Achse ist


identisch mit Achse 6). Es bezieht sich über die Transformation auf das Roboterkoordinaten-
system.
Erfolgt ein Werkzeugwechsel, so kann nach Neuvermessung das ursprüngliche Programm
weiter verwendet werden, da dem Rechner die Koordinaten der Werkzeugspitze bekannt
sind.

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.

60 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

z
$TOOL
y
z
x
$POS_ACT

y
$BASE x
x
$ROBROOT
z y

$WORLD x

Abb. 17 Kinematische Kette bei basisbezogener Interpolation

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.

VKRC/ProgExperteR5.4 11.05.00 de 61 von 188


Programmierung Experte

$TOOL y

x
z z
$POS_ACT

z y

x
$BASE
x
$ROBROOT
z y

$WORLD x

Abb. 18 Kinematische Kette bei greiferbezogener Interpolation

Weitere Informationen finden Sie im Kapitel [Variablen und Vereinbarungen], Abschnitt


“Geometrischer Operator”.

62 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

3.2 Punkt--zu--Punkt Bewegungen (PTP)


3.2.1 Allgemein (Synchron--PTP)
Die Punkt--zu--Punkt Bewegung (PTP) ist die schnellste Möglichkeit die Werkzeugspitze
(Tool Center Point: TCP) von der momentanen Position zu einer programmierten Zielposition
zu bewegen. Die Steuerung berechnet hierfür die erforderlichen Winkeldifferenzen für jede
Achse.
Mit Hilfe der Systemvariablen
G $VEL_AXIS[Achsnummer] werden die maximalen achsspezifischen Geschwindig-
keiten,
und mit
G $ACC_AXIS[Achsnummer] die maximalen achsspezifischen Beschleunigungen pro-
grammiert.
Alle Angaben erfolgen in Prozent, bezogen auf einen in den Maschinendaten definierten
Höchstwert. Falls diese beiden Systemvariablen nicht für alle Achsen programmiert wurden,
erfolgt beim Ablaufen des Programms eine entsprechende Fehlermeldung.
Die Bewegungen der einzelnen Achsen werden dabei so synchronisiert (Synchron--PTP),
daß alle Achsen die Bewegung gleichzeitig starten und beenden. Dies bedeutet, daß nur die
Achse mit dem längsten Weg, die sogenannte führende Achse, mit dem programmierten
Grenzwert für Beschleunigung und Geschwindigkeit verfährt. Alle anderen Achsen bewegen
sich nur mit den Beschleunigungen und Geschwindigkeiten, die notwendig sind, um zum sel-
ben Zeitpunkt den Endpunkt der Bewegung zu erreichen, unabhängig von den in
$VEL_AXIS[Nr] und $ACC_AXIS[Nr] programmierten Werten.
Ist die Beschleunigungsanpassung oder das höhere Fahrprofil aktiviert
($ADAP_ACC=#STEP1, $OPT_MOVE=#STEP1) werden die Achsen zusätzlich phasensyn-
chron verfahren, d.h alle Achsen befinden sich gleichzeitig in Beschleunigungs--, Konstant-
fahr-- und Verzögerungsphase.

Da bei PTP--Bewegungen mit kartesischen Zielkoordinaten im allgemeinen nicht bekannt


ist, welches die führende Achse ist, ist es in diesem Fall meist sinnvoll, die Beschleuni-
gungs-- und Geschwindigkeitswerte für alle Achsen gleichzusetzen.

Die zeitsynchrone Bewegungsführung vermindert die mechanische Belastung des Robo-


ters, da Motor-- und Getriebemomente für alle Achsen mit kürzeren Verfahrwegen herabge-
setzt werden.
Die phasensynchrone Bewegungsführung führt (zusätzlich) zu einer Bewegungsbahn, die
unabhängig von der programmierten Geschwindigkeit und der programmierten Beschleuni-
gung, im Raum stets gleich verläuft.

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Überschleifbewegungen].

VKRC/ProgExperteR5.4 11.05.00 de 63 von 188


Programmierung Experte

3.2.2 Höheres Fahrprofil


Standardmäßig wird für PTP--Bewegungen das höhere Fahrprofil verwendet. Mit diesem
Modell wird bei PTP--Einzelsätzen und PTP--Überschleifsätzen zeitoptimal vom Start--
zum Zielpunkt gefahren. Das heißt, mit den vorhandenen Getrieben und Motoren ist es nicht
möglich schneller zu fahren. Die zulässigen Momente werden auf jedem Punkt der Bahn
stets optimal ausgenutzt. Dies gilt insbesondere auch in der konstanten Geschwindigkeits-
phase. Die Geschwindigkeit wird hierbei immer so angepaßt, daß die Momente nicht über-
schritten werden.
Eine Änderung der Geschwindigkeits-- oder Beschleunigungswerte bewirkt auch bei Über-
schleifsätzen nur eine Änderung des Geschwindigkeitsprofils auf der Bahn. Die geometri-
sche Kurve im Raum bleibt unverändert.
Die Geschwindigkeitszuweisungen und die Beschleunigungsgrenzwerte (Angabe in Pro-
zent) können für jede Achse einzeln eingestellt werden. Dieser Grenzwert wirkt aber nicht
unmittelbar auf die Beschleunigung, sondern auf das Beschleunigungsmoment der Achse.
D. h. ein Achsbeschleunigungswert von 50% verringert die Beschleunigung nicht unbedingt
um die Hälfte.

3.2.3 Bewegungsbefehle
Das folgende Programmbeispiel PTP_AXIS.SRC stellt prinzipiell das kleinste lauffähige
KRL--Programm dar:

DEF PTP_AXIS() ;der Name des Programms ist PTP_AXIS

$VEL_AXIS[1]=100 ;Festlegung der Achsgeschwindigkeiten


$VEL_AXIS[2]=100
$VEL_AXIS[3]=100
$VEL_AXIS[4]=100
$VEL_AXIS[5]=100
$VEL_AXIS[6]=100

$ACC_AXIS[1]=100 ;Festlegung der Achsbeschleunigungen


$ACC_AXIS[2]=100
$ACC_AXIS[3]=100
$ACC_AXIS[4]=100
$ACC_AXIS[5]=100
$ACC_AXIS[6]=100

PTP {AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}

END

Zunächst werden in diesem Programm die Achsgeschwindigkeiten und --beschleuni-


gungen festgelegt. Bevor eine Punkt--zu--Punkt Bewegung ausgeführt werden kann,
müssen diese Zuweisungen erfolgt sein.

64 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

3.2.3.1 Mechanische Grundstellung


Danach verfährt der Roboter jede Achse in die in der Struktur AXIS spezifizierten Winkella-
gen. Also Achse 1 auf 0_, Achse 2 auf --90_, Achse 3 auf 90_, Achse 4 auf 0_, Achse 5 auf
0_ und Achse 6 auf 0_. Der Roboter steht nun in der mechanischen Nullstellung, in die der
Standardroboter auch zur Justage gebracht wird.

Abb. 19 Mechanische Nullstellung

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}

VKRC/ProgExperteR5.4 11.05.00 de 65 von 188


Programmierung Experte

A3 = 0_
PTP {A3 45}

A3 = 90_

PTP_REL {A3 45}

Abb. 20 Unterschied zwischen absoluten und relativen achsspezfischen Koordinaten

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.

66 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

Das Verfahren in achsspezifischen Koordinaten ist meistens unpraktisch, da der Mensch im


kartesischen Raum denkt und handelt. Dazu dient die Angabe der kartesischen Koordinaten
mittels einer POS--Struktur, wie sie im folgenden Beispiel verwendet wird:

DEF PTP_POS()

$BASE = $WORLD ;Setzen des Basiskoordinatensystems


$TOOL = $NULLFRAME ;Setzen des Werkzeugkoordinatensystems

$VEL_AXIS[1]=100 ;Festlegung der Achsgeschwindigkeiten


$VEL_AXIS[2]=100
$VEL_AXIS[3]=100
$VEL_AXIS[4]=100
$VEL_AXIS[5]=100
$VEL_AXIS[6]=100

$ACC_AXIS[1]=100 ;Festlegung der Achsbeschleunigungen


$ACC_AXIS[2]=100
$ACC_AXIS[3]=100
$ACC_AXIS[4]=100
$ACC_AXIS[5]=100
$ACC_AXIS[6]=100

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.

In unserem Fall wurde das Basiskoordinatensystem ($BASE) gleich dem Weltkoordinaten-


system ($WORLD) gesetzt, welches standardmäßig im Roboterfuß ($ROBROOT) liegt. Das
Werkzeugkoordinatensystem ($TOOL) wurde mit dem Nullframe ($NULLFRAME =
{FRAME: X 0, Y 0, Z 0, A 0, B 0, C 0}) besetzt, was bedeutet, daß sich alle
Angaben auf den Flanschmittelpunkt beziehen. Der Werkzeugmittelpunkt (Tool Center
Point: TCP) liegt also im Flanschmittelpunkt. Falls ein Werkzeug angeflanscht ist, müßten
die Werte entsprechend korrigiert werden. Dazu wird auf die Unterlagen zum Vermessen von
Werkzeugen verwiesen.
Mit der obigen PTP--Anweisung verfährt der Roboter nun so, daß im Endpunkt der Bewegung
der TCP 1025 mm in x--Richtung, 0 mm in y--Richtung und 1480 mm in z--Richtung vom Ro-
boterfuß verschoben ist. Die Angaben A, B und C definieren die Orientierung des TCP. Sta-
tus S und Turn T definieren die Stellung der Achsen.
Auch bei Zielpunktangabe in kartesischen Koordinaten können wieder einzelne Komponen-
ten der Geometrieangabe weggelassen werden. Die Anweisung
PTP {Z 1300, B 180}
bewirkt demnach eine Bewegung des TCP in Richtung der z--Achse auf die Absolutposition
1300 mm und ein “Nicken” des TCP um 180_.

VKRC/ProgExperteR5.4 11.05.00 de 67 von 188


Programmierung Experte

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

PTP {X 50, Y 50} PTP_REL {X 50, Y 50}

Y BASE

200

150

100

50

150 200
X BASE
50 100

Abb. 21 Unterschied zwischen absoluten und relativen kartesischen Koordinaten

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.

Eine mehrfache Neubesetzung von $BASE, wie in folgender Sequenz,



$BASE = $WORLD

PTP POS_1
$BASE = {X 100,Y -200,Z 1000,A 0, B 180,C 45)
PTP POS_2

würde dagegen nach Abbruch des POS_2--Bewegungssatzes und Neuanwahl des
POS_1--Satzes zu einem falschen Zielpunkt führen, da jetzt auch für den POS_1--Bewe-
gungssatz die neue Basis herangezogen würde. Gleiches passiert übrigens auch schon bei
einem Stop des ersten Bewegungssatzes, wenn ein entsprechender Rechnervorlauf einge-
stellt ist.

68 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

Weitere Informationen finden Sie in diesem Kapitel unter “Rechnervorlauf”.

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.

Im folgenden Beispiel wird im zweiten PTP--Befehl eine Verschiebung der Zielpunktkoordina-


ten um 300 mm in X--Richtung, --100 mm in Y--Richtung sowie eine 90_--Drehung um die
Z--Achse vorgenommen.

DEF FR_VERS ( )

;--------- Deklarationsteil ---------


EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME ;Variable HOME vom Typ AXIS
DECL FRAME BASE1 ;Variable BASE1 vom Typ FRAME

;---------- 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}
BASE1={FRAME: X 300,Y -100,Z 0,A 90,B 0,C 0}

;------------- Hauptteil ------------


PTP HOME ; SAK-Fahrt
; Bewegung bezueglich des $BASE-Koordinatensystems
PTP {POS: X 540,Y 630,Z 1500,A 0,B 90,C 0,S 2,T 35}
; Bewegung bezueglich des um BASIS1 verschobenen $BASE-KS
PTP BASE1:{POS: X 540,Y 630,Z 1500,A 0,B 90,C 0,S 2,T 35}
PTP HOME
END

In diesem Beispiel werden außerdem die notwendigen Belegungen der Geschwindig-


keiten, Beschleunigungen sowie $BASE-- und $TOOL--Koordinatensystemen nicht mehr
“von Hand” vorgenommen. Stattdessen wird das standardmäßig vorhandene Basis--
Packet “BAS.SRC” hierzu verwendet. Dazu muß es zunächst mit der EXT--Anweisung
dem Programm bekannt gemacht werden.
Mit der Initialisierungsanweisung
BAS (#INITMOV, 0)
werden schließlich alle wichtigen Systemvariablen mit Standardwerten besetzt.

VKRC/ProgExperteR5.4 11.05.00 de 69 von 188


Programmierung Experte

Weitere Informationen finden Sie im Kapitel [Unterprogramme und Funktionen], Ab-


schnitt “Vereinbarung”.

3.2.3.2 Satzkoinzidenz -- SAK


Bevor ein Programm bearbeitet werden kann, muß zunächst Satzkoinzidenz (SAK), d. h.
Übereinstimmung von aktueller Roboterposition und programmierter Position, hergestellt
werden. Da die SAK--Fahrt keine programmierte, ausgetestete Bewegung darstellt, muß sie
durch Gedrückthalten der Starttaste (Totmann--Funktion) und mit automatisch reduzierter
Geschwindigkeit durchgeführt werden. Bei Erreichen der programmierten Bahn stoppt die
Bewegung und das Programm kann mit erneutem Betätigen der Starttaste fortgesetzt wer-
den.

Im “Automatik Extern”--Betrieb wird keine SAK--Fahrt durchgeführt!

Als erste Bewegungsanweisung empfiehlt sich daher eine “Home”--Fahrt, bei


der der Roboter in eine eindeutig definierte und unkritische Ausgangsstellung
verfahren wird, in der dann auch Satzkoinzidenz hergestellt wird. In diese
Lage sollte der Roboter auch am Ende des Programms wieder gebracht wer-
den.

3.2.3.3 Status (S) und Turn (T)


Die Angaben S und T in einer POS--Angabe dienen dazu, um aus mehreren möglichen Ro-
boterstellungen für ein und dieselbe Position im Raum (aufgrund der Kinematik--Singularitä-
ten), eine ganz bestimmte, eindeutig definierte Stellung auszuwählen.
Bei der ersten Bewegungsanweisung ist es im Fall der Verwendung kartesischer Koordina-
ten daher sehr wichtig auch S und T zu programmieren, damit eine eindeutige Ausgangslage
definiert wird. Da bei Bahnbewegungen S und T nicht berücksichtigt werden, sollte also auf
jeden Fall die erste Bewegungsanweisung eines Programms (Home--Fahrt) eine vollstän-
dige PTP--Anweisung mit Angabe von Status und Turn sein (oder vollständige PTP--Anwei-
sung mit Achskoordinaten).
In den nachfolgenden PTP--Anweisungen können nun die Angaben S und T entfallen, sofern
eine bestimmte Achsstellung, z.B aufgrund von Hindernissen, nicht notwendig ist. Der Robo-
ter behält den zuletzt gesetzten S--Wert bei und wählt den T--Wert, mit dem sich der kürzeste,
fahrbare axiale Weg ergibt, welcher aufgrund der einmaligen Programmierung von S und T
im ersten PTP--Satz bei verschiedenen Programmläufen auch immer der gleiche ist.

Status und Turn erfordern beide Integerangaben, die zweckmäßigerweise in binärer


Form gemacht werden sollten.

70 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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_

Wert Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


0 A6 ≥ 0° A5 ≥ 0° A4 ≥ 0° A3 ≥ 0° A2 ≥ 0° A1 ≥ 0°
1 A6 < 0° A5 < 0° A4 < 0° A3 < 0° A2 < 0° A1 < 0°

Tab. 21 Bedeutung der Turn--Bits

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

Abb. 22 Beispiele für mehrdeutige Roboterkinematiken

Näheres zu den Mehrdeutigkeiten der Roboterkinematik finden Sie im Abschnitt [Singula-


ritäten].

VKRC/ProgExperteR5.4 11.05.00 de 71 von 188


Programmierung Experte

Die Bedeutung der einzelnen Bits ist:


Bit 0: Position des Handwurzelpunktes (Grundbereich/Überkopfbereich)
Bit 1: Armkonfiguration
Bit 2: Handkonfiguration
Die Bits werden für alle 6achsigen Knickarmroboter nach folgender Tabelle gesetzt:

Wert Bit 2 Bit 1 Bit 0


0 0_ ≤ A5 < 180_ A3 < φ Grundbereich
A5 < --180_ (φ hängt vom Robotertyp ab)
1 --180_ ≤ A5 < 0_ A3 ≥ φ Überkopfbereich
A5 ≥ 180_ (φ hängt vom Robotertyp ab)

Tab. 22 Status--Bits für 6--achsige Knickarmroboter

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

Abb. 23 Offset zwischen Achse 3 und 4 bei einem KR 30

72 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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.

™ š

› œ

Abb. 24 Auswirkungen der Status--Bits auf die Roboterstellung

VKRC/ProgExperteR5.4 11.05.00 de 73 von 188


Programmierung Experte

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.

74 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

Hierzu steht die Systemvariable “$SINGUL_POS[1]” zur Verfügung, die durch Editieren der
Maschinendaten geändert werden kann.

Weitere Informationen zu “$SINGUL_POS[1]” finden Sie in der Dokumentation [System-


variablen].

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.

VKRC/ProgExperteR5.4 11.05.00 de 75 von 188


Programmierung Experte

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

Liegt der Zielpunkt eines PTP--Bewegungssatzes im Bereich dieser Singularität (--0,01812_


± A5 ± +0,01812_), bietet die Steuerung als Abhilfe die folgenden Möglichkeiten:
G Die Achse 4 wird bei der PTP--Bewegung auf “0”--Grad verfahren (Standardeinstel-
lung);
G Der Achswinkel für Achse 4 bleibt für den Start-- sowie Zielpunkt gleich.
Hierzu steht die Systemvariable “$SINGUL_POS[3]” zur Verfügung, die durch Editieren der
Maschinendaten geändert werden kann.

76 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

Weitere Informationen zu “$SINGUL_POS[3]” finden Sie in der Dokumentation [System-


variablen].

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.

VKRC/ProgExperteR5.4 11.05.00 de 77 von 188


Programmierung Experte

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.

Variablen- Datentyp Einheit Funktion


name
Geschwindigkeiten $VEL.CP REAL m/s Bahngeschwindig-
keit
$VEL.ORI1 REAL °/s Schwenkgeschwin-
digkeit
$VEL.ORI2 REAL °/s Drehgeschwindigkeit
Beschleunigungen $ACC.CP REAL m/s2 Bahnbeschleuni-
gung
$ACC.ORI1 REAL °/s2 Schwenkbeschleuni-
gung
$ACC.ORI2 REAL °/s2 Drehbeschleunigung

Tab. 23 Systemvariablen für Geschwindigkeiten und Beschleunigungen

Zumindest eine der Bewegungskomponenten Translation, Schwenken und Drehen fährt


zu jedem Zeitpunkt der Bewegungsausführung mit programmierter Beschleunigung oder
Geschwindigkeit. Die nichtdominierenden Komponenten werden zeitsynchron angepaßt.

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.

Weiterhin werden bei CP--Bewegungen die Achsgeschwindigkeit und --beschleunigung


überwacht und bei Überschreiten der Überwachungsgrenzen, die in den Systemvariablen
$ACC_ACT_MA und $VEL_ACT_MA definiert sind, eine Stoppreaktion ausgelöst sowie eine
Fehlermeldung ausgegeben. Die Grenzen für Achsbeschleunigung (Acceleration) und
Achsgeschwindigkeit (Velocity) sind vom jeweiligen Robotertyp sowie der verwendeten Be-
triebsart abhängig.

78 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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.

VKRC/ProgExperteR5.4 11.05.00 de 79 von 188


Programmierung Experte

3.3.2 Orientierungsführung

3.3.2.1 Konstante und variable Orientierung


Soll sich während der Bahnbewegung die Orientierung des Werkzeuges im Raum ändern,
so kann die Art der Orientierungsführung mit Hilfe der Systemvariablen $ORI_TYPE einge-
stellt werden. Der Wert dieser Variablen bleibt solange gültig, bis ihr ein neuer Wert zugewie-
sen oder das Programm zurückgesetzt wird.
$ORI_TYPE = #CONSTANT
Während der Bahnbewegung bleibt die Orientierung konstant. Für den Endpunkt wird die
programmierte Orientierung ignoriert und die des Anfangspunktes benutzt.

Abb. 29 Keine Orientierungsänderung

$ORI_TYPE = #VAR (Standard)


Während der Bahnbewegung wird die Orientierung des Werkzeugs kontinuierlich von der
Anfangs-- zur Endposition geändert. Dies geschieht durch Drehen und Schwenken der
Werkzeug--Stoßrichtung. Diese Option ist daher zu empfehlen, wenn die Werkzeug--Stoß-
richtung von besonderem Interesse ist.

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.

Abb. 30 Orientierungsänderung bei einer Linearbewegung

80 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

$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

Abb. 31 TCP unterhalb der Geraden A2--A3

VKRC/ProgExperteR5.4 11.05.00 de 81 von 188


Programmierung Experte

Abb. 32 TCP oberhalb der Geraden A2--A3

Wurden in einem bestehenden KRL--Programm auf Expertenebene explizite Zuweisungen


(z.B. “$ORI_TYPE=#CONSTANT”) vorgenommen, sind diese händisch anzupassen. Der
Grund hierfür ist, daß in jedem Bewegungsfold automatisch eine entsprechende Zuwei-
sung vorgenommen wird, welche die vorherige Definition überschreibt.

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.

82 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

3.3.2.2 Raumbezogene Orientierung


Konstant raumbezogen
$CIRC_TYPE = #BASE; $ORI_TYPE = #CONST
Raumbezogene Orientierungsführung während der Kreisbewegung. Dieser Wert wird auch
bei der Initialisierung mittels BAS(#INITMOV,0) gesetzt.
Bei der konstanten und raumbezogenen Orientierungsführung wird die Orientierung relativ
zum aktuellen Basissystem ($BASE) geführt.
Die raumbezogene Orientierungsführung ist vor allem für die Anwendungen sinnvoll, bei de-
nen der Schwerpunkt bei der Bahnbewegung liegt, d.h. das Führen der Werkzeugspitze auf
der Kreisbahn. Insbesondere bei Anwendungen mit geringer Orientierungsänderung zwi-
schen Start-- und Zielpunkt bzw. bei Anwendungen mit exakt raumkonstanter Orientierung
während einer Kreisbewegung (z.B. Kleberauftrag mit rotationsymmetrischer Kleberdüse).

Abb. 33 Konstante raumbezogene Orientierungsführung bei Kreisbewegungen

VKRC/ProgExperteR5.4 11.05.00 de 83 von 188


Programmierung Experte

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.

Abb. 34 Variable raumbezogene Orientierungsführung bei Kreisbewegungen

84 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

3.3.2.3 Bahnbezogene Orientierung


Konstant bahnbezogen
$CIRC_TYPE = #PATH; $ORI_TYPE = #CONST
Bahnbezogene Orientierungsführung während der Kreisbewegung.
Bei der bahnbezogenen Orientierungsführung wird die Werkzeuglängsachse relativ zu
Kreisebene und Kreistangente geführt. Dieser Zusammenhang läßt sich mit Hilfe des soge-
nannten bahnbegleitenden Dreibeines anschaulich erläutern.

Abb. 35 Konstante bahnbezogene Orientierungsführung bei Kreisbewegungen

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).

VKRC/ProgExperteR5.4 11.05.00 de 85 von 188


Programmierung Experte

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.

Abb. 36 Variable bahnbezogene Orientierungsführung bei Kreisbewegungen

Nachfolgend sind nochmals die Voreinstellungen der Systemvariablen zur Orientierungsfüh-


rung bei Bahnbewegungen aufgelistet:

im System durch BAS(#INITMOV,0)


$ORI_TYPE #VAR
$CIRC_TYPE #PATH #BASE

Tab. 24 Voreinstellungen von $ORI_TYPE und $CIRC_TYPE

86 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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).

Das für Bahnbewegungen notwendige Besetzen der Geschwindigkeits-- und Beschleuni-


gungsvariablen sowie das Setzen von TOOL-- und BASE--Koordinatensystem wird im fol-
genden Beispielprogramm wieder mittels der Initialisierungsroutine BAS.SRC vorgenom-
men.

DEF LIN_BEW ()

;--------- Deklarationsteil ---------


EXT BAS (BAS_COMMAND: IN, REAL: IN)
DECL AXIS HOME ;Variable HOME vom Typ AXIS

;---------- 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 {A5 30}

; Linearbewegung zur angegebenen Position, die Orientierung


; wird kontinuierlich auf die Zielorientierung veraendert
LIN {X 1030,Y 350,Z 1300,A 160,B 45,C 130}
; Linearbewegung in der Y-Z-Ebene, S und T werden ignoriert
LIN {POS: Y 0,Z 800,A 0,S 2,T 35}
; Linearbewegung zur angegebenen Position, die Orientierung
; wird dabei nicht veraendert
$ORI_TYPE=#CONST
LIN {FRAME: X 700,Y -300,Z 1000,A 23,B 230,C -90}
; die Orientierung wird weiterhin nicht geaendert
LIN {FRAME: Z 1200,A 90,B 0,C 0}
; Relativbewegung entlang der X-Achse
LIN_REL {FRAME: X 300}
PTP HOME
END

VKRC/ProgExperteR5.4 11.05.00 de 87 von 188


Programmierung Experte

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

(1) Startpunkt. (3) Programmierter Zielpunkt.


(2) Hilfspunkt. (4) Tatsächlicher Zielpunkt.

Abb. 37 Auswirkung der CA--Option im CIRC bzw. CIRC_REL--Befehl

88 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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 ( )

;--------- 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}

; raumbezogene variable Orientierungsfuehrung (Voreinstellung)


CIRC {X 925,Y -285,Z 718},{X 867,Y -192,Z 718,A 155,B 75,C 160}

; raumbezogene konstante Orientierungsfuehrung


; Zielpunkt durch Winkelangabe festgelegt
$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 300.0

; bahnbezogene konstante Orientierungsfuehrung


; Zielpunkt durch Winkelangabe (rueckwaerts)
$CIRC_TYPE=#PATH
CIRC {X 867,Y -192,Z 718},{X 982,Y -221,Z 718,A 0}, CA -150

$ORI_TYPE=#VAR
LIN {A 100} ; Umorientierung des TCP

; bahnbezogene variable Orientierungsfuehrung


CIRC {X 963.08,Y -85.39,Z 718},{X 892.05,Y 67.25,Z 718.01,
A 97.34,B 57.07,C 151.11}

; relative Kreisbewegung
CIRC_REL {X -50,Y 50},{X 0,Y 100}

PTP HOME
END

VKRC/ProgExperteR5.4 11.05.00 de 89 von 188


Programmierung Experte

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.

Weitere Informationen finden Sie in diesem Kapitel unter “Überschleifen”.

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”).

3.4.1 Anzahl der Bewegungssätze


Über die Systemvariable $ADVANCE kann festgelegt werden, wie viele Bewegungssätze der
Vorlauf dem Hauptlauf (also dem aktuell bearbeiteten Bewegungssatz) maximal vorauseilen
darf. Der während der Programmbearbeitung auf der Bedienoberfläche sichtbare Hauptlauf-
zeiger zeigt immer auf den Bewegungssatz, der gerade abgefahren wird.
Der Vorlaufzeiger ist dagegen nicht sichtbar und kann sowohl auf Anweisungen zeigen, die
von der Steuerung komplett abgearbeitet werden, als auch auf Bewegungssätze, die von der
Steuerung nur aufbereitet und zeitlich später im Hauptlauf ausgeführt werden .

90 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

(1) Hauptlaufzeiger.
(2) Vorlaufzeiger (nicht sichtbar) bei $ADVANCE=1.

Abb. 38 Hauptlauf-- und Vorlaufzeiger

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.

VKRC/ProgExperteR5.4 11.05.00 de 91 von 188


Programmierung Experte

3.4.2 Anweisungen und Variablen die einen automatischen Vorlaufstop auslösen

Anweisungen ANOUT ON ANOUT OFF


ANIN ON ANIN OFF
DIGIN ON DIGIN OFF
PULSE
HALT WAIT
CREAD CWRITE COPEN CCLOSE
Systemvaria- $AnOUT[Nr] $ANIN[Nr]
ble
blen
$DIGIN1 $DIGIN2 … $DIGIN6
$OUT[Nr] $IN[Nr]
$AXIS_ACT $AXIS_BACK $AXIS_FOR $AXIS_RET
$POS_ACT $POS_BACK $POS_FOR $POS_RET
$OV_PRO
$TOOL $BASE
importierte Va- alle, bei Zugriff
riablen

Tab. 25 Anweisungen und Variablen die einen automatischen Vorlaufstop auslösen

3.4.3 Befehle die einen Vorlaufstop verhindern


G continue
In Anwendungsfällen, bei denen dieser Vorlaufstop verhindert werden soll, muß direkt vor
der betreffenden Anweisung der Befehl CONTINUE programmiert werden. Die Steuerung
setzt dann den Vorlauf fort. Die Wirkung ist aber nur auf die nächste Programmzeile be-
schränkt (auch Leerzeile!).

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.

Weitere Informationen finden Sie im Kapitel [Programmablaufkontrolle], Abschnitt


“Warteanweisungen” unter “Wartezeiten”.

Um ein Überschleifen zu ermöglichen, muß mindestens ein Rechnervorlauf von 1 einge-


stellt sein.
In einem Interrupt--Unterprogramm ist kein Rechnervorlauf möglich. Die Steuerung arbei-
tet Interruptprogramme immer zeilenweise ab, daher ist ein Überschleifen in Interruptpro-
grammen nicht möglich.

92 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

3.4.3.1 Voreinstellungen von $ADVANCE


$ADVANCE kann Werte von 0 bis 5 annehmen.

im System durch BAS (#INITMOV, 0)


$ADVANCE 0 1

Tab. 26 Voreinstellung $ADVANCE

VKRC/ProgExperteR5.4 11.05.00 de 93 von 188


Programmierung Experte

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.

Um ein Überschleifen zu ermöglichen, muß daher der Rechnervorlauf ($AD-


VANCE) mindestens auf 1 gesetzt sein. Falls der Rechnervorlauf zu klein ist,
erscheint die Meldung “Überschleifen nicht möglich” und die Punkte werden
genau angefahren.
Wenn Sie nach einer Überschleifanweisung eine Anweisung programmieren, die einen auto-
matischen Vorlaufstop auslöst, ist ein Überschleifen nicht möglich.

(1) Startpunkt. (3) Zielpunkt.


(2) Zwischenpunkt.

Abb. 39 Überschleifen von Zwischenpunkten

94 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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.

Je größer $APO.CPTP, desto mehr wird die Bahn abgerundet.

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.

Weitere Informationen finden Sie in diesem Kapitel im Abschnitt “Punkt--zu--Punkt Bewe-


gungen” unter “Geschwindigkeit und Beschleunigung”

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.

VKRC/ProgExperteR5.4 11.05.00 de 95 von 188


Programmierung Experte

DEF UEBERPTP ( )

;--------- 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 1159.08,Y -232.06,Z 716.38,A 171.85,B 67.32,C 162.65,S 2,T 10}

;Ueberschleifen des Punktes


PTP {POS:X 1246.93,Y -98.86,Z 715,A 125.1,B 56.75,C 111.66,S 2,T 10}
C_PTP

PTP {POS:X 1109.41,Y -0.51,Z 715,A 95.44,B 73.45,C 70.95,S 2,T 10}

;Ueberschleifen von zwei Punkten


$APO.CPTP=20
PTP {POS:X 1296.61,Y 133.41,Z 715,A 150.32,B 55.07,C 130.23,S 2,T 11}
C_PTP
PTP {POS:X 988.45,Y 238.53,Z 715,A 114.65,B 50.46,C 84.62,S 2,T 11} C_PTP

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

Abb. 40 Beispiel für PTP--PTP--Überschleifen

96 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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:

Variable Datentyp Einheit Bedeutung Schlüsselwort


im Befehl
$APO.CDIS REAL mm Translatorisches Distanzkriterium C_DIS
$APO.CORI REAL _ Orientierungsdistanz C_ORI
$APO.CVEL INT % Geschwindigkeitskriterium C_VEL

Tab. 27 Systemvariablen zur Festlegung des Überschleifbeginns

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.

VKRC/ProgExperteR5.4 11.05.00 de 97 von 188


Programmierung Experte

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 ( )

;--------- 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 1159.08,Y -232.06,Z 716.38,A 171.85,B 67.32,C


162.65,S 2,T 10}

;Ueberschleifen des Punktes nach Distanzkriterium


$APO.CDIS=20
LIN {X 1246.93,Y -98.86,Z 715,A 125.1,B 56.75,C 111.66} C_DIS
LIN {X 1109.41,Y -0.51,Z 715,A 95.44,B 73.45,C 70.95}

;ueberschleifen von zwei punkten


LIN {X 1296.61,Y 133.41,Z 714.99,A 150.32,B 55.07,C 130.23}
C_ORI
LIN {X 988.45,Y 238.53,Z 714.99,A 114.65,B 50.46,C 84.62} C_VEL

LIN {X 1209.5,Y 381.09,Z 715,A -141.91,B 82.41,C -159.41}

PTP HOME
END

98 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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

Abb. 41 Beispiel für LIN--LIN--Überschleifen

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).

VKRC/ProgExperteR5.4 11.05.00 de 99 von 188


Programmierung Experte

3.5.4 CIRC--CIRC--Überschleifen und CIRC--LIN--Überschleifen


Die Aufgabenstellung beim Überschleifen zwischen CIRC--Sätzen und anderen CP--Sätzen
(LIN oder CIRC) ist nahezu identisch zum Überschleifen zwischen zwei LIN--Sätzen. So-
wohl die Orientierungsbewegung als auch die translatorische Bewegung sollen ohne Ge-
schwindigkeitssprünge von der einen in die andere Einzelsatzkontur überführt werden. Der
Überschleifbeginn wird wieder durch die Variablen $APO.CDIS, $APO.CORI oder
$APO.CVEL definiert, deren Auswertung vollständig identisch zu LIN--Sätzen ausgeführt
wird. Das Einstellen des gewünschten Überschleifkriterium erfolgt ebenfalls mit Hilfe der
Schlüsselworte C_DIS, C_ORI oder C_VEL.

Weitere Informationen finden Sie im Abschnitt “LIN--LIN--Überschleifen” unter “Schlüs-


selworte”

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}

;raumbezogene variable Orientierungsfuehrung


; Ueberschleifen nach dem Distanzkriterium
$APO.CD
CIRC {X 925,Y -285,Z 718},{X 867,Y -192,Z 718,A 155,B 75,C 160}
C_DIS

; raumbezogene konstante Orientierungsfuehrung


; Zielpunkt durch Winkelangabe festgelegt
; kein Ueberschleifen moeglich wegen Vorlaufstop durch $OUT

$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

; bahnbezogene variable Orientierungsfuehrung


; Ueberschleifen nach dem Orientierungskriterium
$ORI_TYPE=#VAR
$CIRC_TYPE=#PATH
CIRC {X 963.08,Y -85.39,Z 718},{X 892.05,Y 67.25,Z 718.01,A
97.34,B 57.07,C 151.11} C_ORI

100 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

; relative Kreisbewegungen
; Ueberschleifen nach dem Geschwindigkeitskriterium
$APO.CVEL=50
CIRC_REL {X -50,Y 50},{X 0,Y 100} C_VEL

; Ueberschleifen nach dem Distanzkriterium


$APO.CDIS=40
CIRC_REL {X -50,Y 50},{X 0,Y 100} C_DIS

CIRC_REL {X -50,Y 50},{X 0,Y 100}

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

Abb. 42 Beispiel für CIRC--CIRC--Überschleifen

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

Abb. 43 Überschleifkontur bei LIN--CIRC--Sätzen

VKRC/ProgExperteR5.4 11.05.00 de 101 von 188


Programmierung Experte

Beim CIRC--Überschleifen wird grundsätzlich raumbezogen interpoliert. Startorientie-


rung ist immer die Orientierung, welche im Überschleifpunkt erreicht würde. Werden
zwei Überschleifsätze mit bahnbezogener Orientierung abgefahren, so verhält sich die
Umorientierung im Überschleifbereich trotzdem raumbezogen.

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.

Die Überschleifkontur eines PTP--Bahn-- bzw. Bahn--PTP--Überschleifs ist eine PTP--Be-


wegung. Eine genaue Bestimmung der Überschleifbahn ist daher nicht möglich.

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.

102 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

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.

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Bewegungsbefehle].

VKRC/ProgExperteR5.4 11.05.00 de 103 von 188


Programmierung Experte

Im folgenden Beispiel wurde ein PTP--LIN--Überschleif, ein LIN--CIRC--Überschleif und ein


CIRC--PTP--Überschleif programmiert:

DEF UEBERB_P ( )

;--------- 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 1281.55,Y -250.02,Z 716,A 79.11,B 68.13,C 79.73,S
6,T 50}

PTP {POS: X 1209.74,Y -153.44,Z 716,A 79.11,B 68.13,C 79.73,S


6,T 50} C_PTP C_ORI
LIN {X 1037.81,Y -117.83,Z 716,A 79.11,B 68.13,C 79.73}

$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}

CIRC {POS: X 1087.47,Y 218.67,Z 716},{X 1108.78,Y 267.16,Z 716,A


79.11,B 68.12,C 79.73} C_ORI
PTP {POS: X 1019.31,Y 306.71,Z 716,A 80.8,B 68,C 81.74,S 6,T
59}

PTP HOME
END

104 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

CIRC LIN PTP x


(C_ORI) (C_DIS) (C_PTP C_ORI)
PTP CIRC LIN x=1281,55
y=--250,02

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

Abb. 44 PTP--Bahnüberschleifen und Bahn--Bahnüberschleifen

VKRC/ProgExperteR5.4 11.05.00 de 105 von 188


Programmierung Experte

3.5.6 Werkzeugwechsel beim Überschleifen


Diese Funktionalität steht für alle Kombinationen von PTP--, LIN-- und CIRC--Einzelsätzen
zur Verfügung.
Es ist möglich ein Werkzeug auch während des Überschleifens virtuell zu wechseln. D. h.
ein Werkzeug wird zweimal unterschiedlich gelernt, z. B. ist bei einer Spritzpistole der Ab-
stand zum Werkstück bei “TOOL1” 5 cm und bei “TOOL2” 10 cm.

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.

106 von 188 VKRC/ProgExperteR5.4 11.05.00 de


3 Bewegungsprogrammierung (Fortsetzung)

3.6 Teachen von Punkten


Die Integration des Teach--In Verfahrens ist ein wesentliches Qualitätsmerkmal einer Robo-
terprogrammiersprache.
In KRL programmieren Sie dazu einfach ein !--Zeichen als Platzhalter für die später zu tea-
chenden Koordinaten:
PTP !
LIN ! C_DIS
CIRC ! ,CA 135.0
An der Steuerung können dann die betreffenden Koordinaten nach Drücken des Softkeys
“Ändern” über den Softkey “Touch Up” in das Programm übernommen werden. Die aktuellen
Koordinaten werden direkt in der gewählten Struktur in den SRC--File geschrieben, z.B.:
PTP {POS:X 145.25,Y 42.46,Z 200.5,A -35.56,B 0.0,C 176.87,S 2,T 2}
LIN {X -23.55,Y 0.0,Z 713.56,A 0.0,B 34.55,C -90.0} C_DIS
CIRC {X -56.5,Y -34.5,Z 45.56,A 35.3,B 0.0,C 90.0},{X 3.5,Y 20.30,
Z 45.56,A 0.0,B 0.0,C 0.0}, CA 135.0

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.

Weitere Informationen finden Sie im Kapitel [Datenlisten].

VKRC/ProgExperteR5.4 11.05.00 de 107 von 188


Programmierung Experte

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

also später als XP7 in einer KRL--Anweisung ansprechen:


LIN XP7
Auch hier ist zu beachten, daß in beiden Fällen das gleiche Basiskoordinatensystem verwen-
det werden muß, damit der gleiche Punkt angefahren wird!

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.

108 von 188 VKRC/ProgExperteR5.4 11.05.00 de


4 Programmablaufkontrolle

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

Da die GOTO--Anweisung sehr schnell zu unstrukturierten und unübersichtlichen Pro-


grammen führt und ferner jede GOTO--Anweisung durch eine andere Schleifenanwei-
sung ersetzt werden kann, sollte möglichst wenig mit GOTO gearbeitet werden.

Ein Beispiel für GOTO finden Sie unter “Nicht abweisende Schleifen”

4.1.2 Bedingte Verzweigung


Die strukturierte IF--Anweisung gestattet die Formulierung bedingter Anweisungen und die
Auswahl aus zwei Alternativen. In der allgemeinen Form lautet die Anweisung:

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.

VKRC/ProgExperteR5.4 11.05.00 de 109 von 188


Programmierung Experte

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.

110 von 188 VKRC/ProgExperteR5.4 11.05.00 de


4 Programmablaufkontrolle (Fortsetzung)

Weitere Informationen finden Sie im Kapitel [Ein--/Ausgabeanweisungen], Abschnitt


“Digitale Ein--/Ausgänge”

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.

VKRC/ProgExperteR5.4 11.05.00 de 111 von 188


Programmierung Experte

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

FOR Zähler = Start TO Ende STEP Schrittweite


Anweisungen
ENDFOR
läßt sich somit sehr übersichtlich eine bestimmte Anzahl von Durchläufen programmieren.
Als Start--Wert und Ende--Wert des Zählers geben Sie jeweils einen Ausdruck vom Typ
Integer an. Die Ausdrücke werden einmal vor Beginn der Schleife ausgewertet. Die INT--Va-
riable Zähler (muß vorher deklariert sein) wird mit dem Startwert vorbesetzt und nach je-
dem Schleifendurchlauf um die Schrittweite erhöht oder vermindert.
Die Schrittweite darf keine Variable sein und darf nicht Null sein. Wenn keine Schritt-
weite angegeben ist, hat sie den Standardwert 1. Auch negative Werte sind für die Schritt-
weite zugelassen.
Zu jeder FOR--Anweisung muß es eine ENDFOR--Anweisung geben. Das Programm wird
nach Beendigung des letzten Schleifendurchlaufs mit der ersten Anweisung hinter ENDFOR
fortgesetzt.
Den Wert des Zählers können Sie sowohl innerhalb als auch außerhalb der Schleife benut-
zen. Innerhalb der Schleifen dient er zum Beispiel als aktueller Index für die Bearbeitung von
Feldern. Nach dem Verlassen der Schleife hat der Zähler den zuletzt angenommenen Wert
(also Ende+Schrittweite).
In folgendem Beispiel werden zunächst die Achsgeschwindigkeiten
$VEL_AXIS[1]…$VEL_AXIS[6] auf 100% gesetzt. Danach werden die Komponenten ei-
nes 2--dimensionalen Feldes mit den berechneten Werten initialisiert. Das Ergebnis ist in der
nachfolgenden Tabelle dargestellt.

112 von 188 VKRC/ProgExperteR5.4 11.05.00 de


4 Programmablaufkontrolle (Fortsetzung)

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

Ergebnisse der Berechnung


Index I =
1 2 3 4 5 6 7 8 9 10
6 38 8 42 24 46 40 50 56 54 72
5 27 7 31 21 35 35 39 49 43 63
4 18 6 22 18 26 30 30 42 34 54
J =
3 11 5 15 15 19 25 23 35 27 45
2 6 4 10 12 14 20 18 28 22 36
1 3 3 7 9 11 15 15 21 19 27

Tab. 28 Ergebnis der Berechnung aus dem Beispiel

VKRC/ProgExperteR5.4 11.05.00 de 113 von 188


Programmierung Experte

4.2.2 Abweisende Schleife


Die WHILE--Schleife fragt zu Beginn der Wiederholung nach einer Ausführbedingung. Sie
ist eine abweisende Schleife, weil sie kein einziges Mal durchlaufen wird, wenn die Ausführ-
bedingung von Anfang an schon nicht erfüllt ist. Die Syntax der WHILE--Schleife lautet:

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.

Die Verwendung von WHILE wird in diesem Beispiel ersichtlich.

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

114 von 188 VKRC/ProgExperteR5.4 11.05.00 de


4 Programmablaufkontrolle (Fortsetzung)

4.2.3 Nicht abweisende Schleife


Das Gegenstück zur WHILE--Schleife ist die REPEAT--Schleife. Bei REPEAT wird erst am
Ende der Schleife nach einer Abbruchbedingung gefragt. Deshalb werden REPEAT--Schlei-
fen auf jeden Fall einmal durchlaufen, auch wenn die Abbruchbedingung schon vor Schleife-
nanfang erfüllt ist.
REPEAT
Anweisungen
UNTIL Abbruchbedingung
Die Abbruchbedingung ist analog zur Ausführbedingung der WHILE--Schleife ein logi-
scher Ausdruck, der eine boolsche Variable, ein boolscher Funktionsaufruf oder eine Ver-
knüpfung mit einem boolschen Ergebnis sein kann:

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

VKRC/ProgExperteR5.4 11.05.00 de 115 von 188


Programmierung Experte

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.

4.2.5 Vorzeitige Beendigung von Schleifendurchläufen


Mit der EXIT--Anweisung können Sie jede Schleife vorzeitig beenden. Durch Aufruf von
EXIT innerhalb des Anweisungsblocks der Schleife werden die Schleifendurchläufe sofort
beendet und das Programm wird hinter der Schleifenendanweisung fortgesetzt.
Durch die Wahl geschickter Abbruch-- oder Ausführbedingungen ist die EXIT--Anweisung
in REPEAT-- oder WHILE--Schleifen meist nicht notwendig. Für die Endlosschleife stellt EXIT
allerdings die einzige Möglichkeit dar, die Schleifendurchläufe zu beenden. Dazu folgendes
Beispiel:

116 von 188 VKRC/ProgExperteR5.4 11.05.00 de


4 Programmablaufkontrolle (Fortsetzung)

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

VKRC/ProgExperteR5.4 11.05.00 de 117 von 188


Programmierung Experte

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.

4.3.1 Warten auf ein Ereignis


Mit der Anweisung
WAIT FOR Bedingung
können Sie den Programmlauf bis zum Eintreten des mit Bedingung spezifizierten Ereig--
nisses anhalten:
G Wenn der logische Ausdruck Bedingung beim WAIT--Aufruf bereits TRUE ist, wird der
Programmablauf nicht angehalten (es wird jedoch trotzdem ein Vorlaufstop ausgelöst).
G Ist Bedingung FALSE, so wird der Programmlauf angehalten, bis der Ausdruck den
Wert TRUE annimmt.
Beispiele:
WAIT FOR $IN[14] ;wartet bis Eingang 14 TRUE ist
WAIT FOR BIT_1 == FALSE ;wartet bis die Var. BIT_1 = FALSE ist

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

118 von 188 VKRC/ProgExperteR5.4 11.05.00 de


4 Programmablaufkontrolle (Fortsetzung)

4.4 Anhalten des Programms


Wollen Sie den Programmablauf unterbrechen und die Bearbeitung anhalten, so program-
mieren Sie die Anweisung
HALT
Die zuletzt durchlaufene Bewegungsanweisung wird jedoch noch vollständig ausgeführt.
Fortgesetzt wird der Programmlauf nur durch Drücken der Starttaste. Danach wird die näch-
ste Anweisung nach HALT ausgeführt.

Sonderfall:
In einer Interrupt--Routine wird der Programmlauf durch eine HALT--Anweisung erst nach
vollständiger Abarbeitung des Vorlaufs angehalten.

Weitere Informationen zum Interrupt finden Sie im Kapitel [Interrupt--Behandlung].

VKRC/ProgExperteR5.4 11.05.00 de 119 von 188


Programmierung Experte

4.5 Quittieren von Meldungen


Mit der Anweisung
CONFIRM V_Nummer
können Sie quittierbare Meldungen programmgesteuert quittieren. Nach erfolgreicher Quit-
tierung ist die mit der Verwaltungsnummer V_Nummer spezifizierte Meldung nicht mehr vor-
handen.
Nach dem Aufheben eines Stop--Signals wird beispielsweise stets eine Quittungsmeldung
ausgegeben. Vor dem Weiterarbeiten muß diese zunächst quittiert werden. Folgendes Un-
terprogramm erkennt und quittiert diese Meldung automatisch, sofern die richtige Betriebsart
(kein Handbetrieb) gewählt ist und der Stop--Zustand tatsächlich aufgehoben wurde (da ein
Roboterprogramm nicht startbar ist, wenn eine Quittungsmeldung anliegt, muß das Unter-
programm in einem Submit--File laufen):

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

120 von 188 VKRC/ProgExperteR5.4 11.05.00 de


5 Ein--/Ausgabeanweisungen

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.

Aus Synchronisationsgründen lösen alle Ein--/Ausgabeanweisungen und Zugriffe auf


Systemvariablen zur Ein--/Ausgabe einen Vorlaufstop aus.

Weitere Informationen hierzu finden Sie im Kapitel [Bewegungsprogrammierung], Ab-


schnitt “Rechnervorlauf”

VKRC/ProgExperteR5.4 11.05.00 de 121 von 188


Programmierung Experte

5.2 Binäre Ein--/Ausgänge


Werden Ein--/Ausgänge einzeln angesprochen, so spricht man von binären Ein--/Ausgän-
gen. Binäre Ausgänge können nur 2 Zustände haben: Low oder High. Deshalb werden sie
als Variablen vom Typ BOOL behandelt.
Ausgänge können demnach mit den Systemvariablen
$OUT[Nr] = TRUE gesetzt werden, und mit
$OUT[Nr] = FALSE zurückgesetzt werden.
Der Zustand eines Eingangs $IN[Nr] kann in eine boolsche Variable eingelesen werden
oder als boolscher Ausdruck in Programmablauf--, Interrupt-- oder Triggeranweisungen ver-
wendet werden.

Weitere Informationen hierzu finden Sie in den Kapiteln [Programmablaufkontrolle], [In-


terrupt--Behandlung] und [Trigger--Bahnbezogene Schaltaktionen].

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.

122 von 188 VKRC/ProgExperteR5.4 11.05.00 de


5 Ein--/Ausgabeanweisungen (Fortsetzung)

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}

;------------- Hauptteil ------------


PTP HOME ;SAK-Fahrt
LINKS=FALSE
MITTE=TRUE ;in mittlerer Stellung
RECHTS=FALSE

WHILE ABBRUCH==FALSE ;Abbruch, wenn Eingang 16 gesetzt


IF $IN[1] AND NOT LINKS THEN ;Eingang 1 gesetzt
PTP {A1 45}
LINKS=TRUE ;in linker Stellung
MITTE=FALSE
RECHTS=FALSE
ELSE
IF $IN[2] AND NOT MITTE THEN ;Eingang 2 gesetzt
PTP {A1 0}
LINKS=FALSE
MITTE=TRUE ;in mittlerer Stellung
RECHTS=FALSE
ELSE
IF $IN[3] AND NOT RECHTS THEN ;Eingang 3 gesetzt
PTP {A1 -45}
LINKS=FALSE
MITTE=FALSE
RECHTS=TRUE ;in rechter Stellung
ENDIF
ENDIF
ENDIF
ENDWHILE
PTP HOME
END

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).

VKRC/ProgExperteR5.4 11.05.00 de 123 von 188


Programmierung Experte

Durch Setzen des Eingangs 16 wird die While--Schleife und somit das Programm beendet.

Wahrheitstabelle für eine “AND NOT”-Verknüpfung


$OUT[Nr]
$IN[Nr] AND NOT $OUT[Nr]
TRUE FALSE
TRUE FALSE TRUE
$IN[Nr]
FALSE FALSE FALSE

Tab. 29 Wahrheitstabelle für eine “AND NOT” -- Verknüpfung

124 von 188 VKRC/ProgExperteR5.4 11.05.00 de


5 Ein--/Ausgabeanweisungen (Fortsetzung)

5.3 Digitale Ein--/Ausgänge


5.3.1 Signalvereinbarung
Mit der Signalvereinbarung kann man nicht nur einzelne Ein--/Ausgänge mit Namen verse-
hen, sondern auch mehrere binäre Ein-- oder Ausgänge zu einem digitalen Signal zusam-
menfassen. Mit der Vereinbarung
SIGNAL AUS $OUT[10] TO $OUT[20]
können nun z. B. die Ausgänge 10 bis 20 über die intern als Integer deklarierte Variable AUS
als 11--Bit--Wort angesprochen werden.
Den so deklarierten Digitalausgang kann man über jede mögliche Integer--Zuweisung an die
Variable AUS beschreiben, z. B.:
AUS = 35
AUS = ’B100011’
AUS = ’H23’

G Ein--/Ausgänge müssen in der Signalvereinbarung lückenlos und in aufsteigender


Reihenfolge angegeben werden.
G Es können höchstens 32 Ein-- bzw. Ausgänge zu einem Digitalsignal zusammenge--
faßt werden.
G Ein Ausgang darf in mehreren Signalvereinbarungen vorkommen.

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:

VKRC/ProgExperteR5.4 11.05.00 de 125 von 188


Programmierung Experte

DEF BINSIG_D ( )

;--------- Deklarationsteil ---------


EXT BAS (BAS_COMMAND:IN,REAL:IN )
DECL AXIS HOME
SIGNAL ABBRUCH $IN[16]
SIGNAL POSITION $OUT[13] TO $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}

;------------- Hauptteil ------------


PTP HOME ;SAK-Fahrt

POSITION=’B010’ ;in mittlerer Stellung

WHILE ABBRUCH==FALSE ;Abbruch, wenn Eingang 16 gesetzt

IF $IN[1] AND (POSITION<>’B001’) THEN ;Eingang 1 gesetzt


PTP {A1 45}
POSITION=’B001’ ;in linker Stellung
ELSE
IF $IN[2] AND (POSITION<>’B010’) THEN ;Eingang 2 gesetzt
PTP {A1 0}
POSITION=’B010’ ;in mittlerer Stellung
ELSE
IF $IN[3] AND (POSITION<>’B100’) THEN;Eingang 3 gesetzt
PTP {A1 -45}
POSITION=’B100’ ;in rechter Stellung
ENDIF
ENDIF
ENDIF

ENDWHILE

PTP HOME
END

Weitere Informationen finden Sie im Abschnitt “Vordefinierte Digitaleingänge”.

126 von 188 VKRC/ProgExperteR5.4 11.05.00 de


5 Ein--/Ausgabeanweisungen (Fortsetzung)

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.

Weitere Informationen finden Sie im Abschnitt [Binäre Ein--/Ausgänge].

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.

G Es dürfen maximal 16 Impulsausgänge gleichzeitig programmiert werden.


G Zu lange Impulszeiten werden erst während des Programmlaufs erkannt und lösen
einen Programmstop aus.
G Es können sowohl High--Impulse, als auch Low--Impulse programmiert werden.
G Bei “Programm RESET” oder “Programm abwählen” wird der Impuls abgebrochen.
G Ein anstehender Impuls kann durch Interrupts beeinflußt werden.
G Impulsausgänge können auch in der Steuerungsebene programmiert werden.
G Die PULSE--Anweisung löst einen Vorlaufstop aus. Nur in der TRIGGER--Anweisung
wird sie bewegungsbegleitend ausgeführt.

Ein Impuls wird NICHT abgebrochen bei:


G NOT--AUS, Bedienstop oder Fehlerstop,
G Erreichen des Programmendes (END--Anweisung),
G Loslassen der Starttaste, wenn der Impuls vor der ersten Bewegungsanweisung pro-
grammiert wurde und der Roboter SAK noch nicht erreicht hat.

VKRC/ProgExperteR5.4 11.05.00 de 127 von 188


Programmierung Experte

In diesem Programm finden Sie einige Beispiele zur Anwendung der PULSE--Anweisung:

DEF PULSIG ( )

;--------- Deklarationsteil ---------


EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME
INT I
SIGNAL OTTO $OUT[13]

;---------- 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}

FOR I=1 TO 16
$OUT[I]=FALSE ;alle Ausgaenge auf LOW setzen
ENDFOR

;------------- Hauptteil ------------


PULSE ($OUT[1],TRUE,2.1) ;Impuls kommt direkt fuer 2.1s
PTP HOME ;SAK-Fahrt

OTTO=TRUE ;Ausgang 13 auf TRUE setzen


PTP {A3 45,A5 30}
PULSE (OTTO,FALSE,1.7) ;LOW-Impuls fuer 1.7s auf Ausgang 13
;Impuls kommt erst nach Bewegung
WAIT SEC 2

FOR I=1 TO 4
PULSE ($OUT[I],TRUE,1) ;nacheinander die Ausgaenge 1-4
WAIT SEC 1 ;fuer 1s auf High
ENDFOR

;bahnbezogenes Aufbringen eines Impulses


TRIGGER WHEN DISTANCE=0 DELAY=50 DO PULSE ($OUT[8],TRUE,1.8)
LIN {X 1391,Y -319,Z 1138,A -33,B -28,C -157}

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.

128 von 188 VKRC/ProgExperteR5.4 11.05.00 de


5 Ein--/Ausgabeanweisungen (Fortsetzung)

Es gibt zwei Wege den Vorlaufstop zu verhindern:


G Programmierung einer CONTINUE-- Anweisung direkt vor der PULSE-- Anweisung
G Verwendung der PULSE-- Anweisung in einer TRIGGER-- Anweisung (bahnbezogene
Schaltaktion)

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung], im Ab-


schnitt “Befehle die einen Vorlaufstop verhindern” und im Kapitel [Trigger -- Bahnbe-
zogene Schaltaktion].

VKRC/ProgExperteR5.4 11.05.00 de 129 von 188


Programmierung Experte

5.5 Analoge Ein--/Ausgänge


Neben den binären Ein--/Ausgängen kennt die (V)KR C... auch analoge Ein--/Ausgänge.
Über optionale Bussysteme stellt die KR C 32 analoge Eingänge und 32 analoge Ausgänge
zur Verfügung. Ausgänge können mit den Systemvariablen $ANOUT[1] … $ANOUT[32]
gelesen oder geschrieben werden, Eingänge können mit den Variablen $ANIN[1] …
$ANIN[32] nur gelesen werden.
Analoge Ein-- und Ausgänge können sowohl statisch als auch dynamisch, d. h. durch stän-
dige Abfrage im Interpolationstakt (z.Z. 12 ms), angesprochen werden. Während das stati-
sche Lesen und Schreiben wie bei den binären Signalen durch einfache Wertzuweisungen
erfolgt, benutzt man zum zyklischen Bearbeiten die speziellen Anweisungen ANIN und AN-
OUT.

5.5.1 Analoge Ausgänge


Die Ausgabewerte für die 32 analogen Ausgänge der KR C liegen zwischen --1.0 … +1.0 und
sind normiert auf die Ausgangsspannung ±10.0 V. Falls der Ausgabewert die Grenzen ±1.0
überschreitet wird der Wert abgeschnitten.
Zum Setzen eines Analogkanals weist man der entsprechenden $ANOUT--Variable einfach
einen Wert zu:
$ANOUT[2] = 0.5 ;Analogkanal 2 wird auf +5V gesetzt
oder
REAL V_KLEBER

V_KLEBER = -0.9
$ANOUT[15] = V_KLEBER ;Analogkanal 15 wird auf -9V gesetzt
Diese Zuweisungen sind statisch, da der Wert des beaufschlagten Kanals sich erst ändert,
wenn der betreffenden Systemvariablen $ANOUT[Nr] explizit ein neuer Wert zugewiesen
wird.
Oft ist es jedoch wünschenswert, daß ein bestimmter analoger Ausgang während der Pro-
grammabarbeitung ständig in einer festgelegten Zykluszeit neu berechnet wird. Diese dyna-
mische Analogausgabe erfolgt mit der ANOUT--Anweisung. Mit der Anweisung
ANOUT ON DRAHT = 0.8 * V_DRAHT
können Sie z. B. durch einfache Wertzuweisung an die Variable V_DRAHT den mit der Signal-
variablen DRAHT spezifizierten Analogausgang verändern. Die Spannung am entsprechen-
den Ausgang folgt somit der Variablen V_DRAHT.
Die Variable DRAHT muß vorher natürlich mit der SIGNAL--Vereinbarung deklariert wer-
den, z. B.:
SIGNAL DRAHT $ANOUT[2]
Mit
ANOUT OFF DRAHT
wird die zyklische Analogausgabe wieder beendet.

130 von 188 VKRC/ProgExperteR5.4 11.05.00 de


5 Ein--/Ausgabeanweisungen (Fortsetzung)

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.

Argument Datentyp Bedeutung


Signalname REAL Signalvariable, die den analogen Ausgang spezifiziert
(muß mit SIGNAL deklariert sein). Nicht zulässig ist eine
direkte Angabe von $ANOUT[Nr].
Faktor REAL Beliebiger Faktor, der eine Variable, ein Signalname oder
eine Konstante sein kann.
Regelglied REAL Über das Regelglied wird der Analogausgang beeinflußt.
Es kann eine Variable oder ein Signalname sein.
Offset REAL Optional kann ein Offset zum Regelglied programmiert
werden. Der Offset muß eine Konstante sein.
t REAL Mit dem Schlüsselwort DELAY und einer positiven oder
negativen Zeitangabe in Sekunden kann optional das
zyklisch berechnete Ausgangssignal verzögert (+) oder
vorzeitig (--) ausgegeben werden.
U1 REAL Das optionale Schlüsselwort MINIMUM legt die Mindest-
spannung fest, welche am Ausgang anliegt. Die zulässi-
gen Werte liegen zwischen --1.0 ... 1.0 (was --10V ...
+10V entspricht). Der Minimum--Wert muß kleiner als der
Maximum--Wert sein, falls beide Werte verwendet wer-
den. Als Wert ist auch eine Variable, eine Strukturkom-
ponente oder ein Array--Element zulässig.
U2 REAL Das optionale Schlüsselwort MAXIMUM legt die Höchst-
spannung fest, welche am Ausgang ausgegeben wird.
Die zulässigen Werte liegen zwischen --1.0 ... 1.0 (was
--10V ... +10V entspricht). Der Maximum--Wert muß grö-
ßer als der Minimum--Wert sein, falls beide Werte ver-
wendet werden. Als Wert ist auch eine Variable, eine
Strukturkomponente oder ein Array--Element zulässig.

Tab. 30 Argumente in der ANOUT--Anweisung

VKRC/ProgExperteR5.4 11.05.00 de 131 von 188


Programmierung Experte

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]

0 100 200 300 400 500

Bahngeschwindigkeit [mm/s]

Abb. 45 Analogspannung in Abhängigkeit von der Bahngeschwindigkeit

132 von 188 VKRC/ProgExperteR5.4 11.05.00 de


5 Ein--/Ausgabeanweisungen (Fortsetzung)

5.5.2 Analoge Eingänge


Die 32 analogen Eingänge der KR C können über die Variablen $ANIN[1] bis $ANIN[32]
durch einfache Wertzuweisung an eine REAL--Variable gelesen werden:
REAL TEIL

TEIL = $ANIN[3]
oder
SIGNAL SENSOR3 $ANIN[3]
REAL TEIL

TEIL = SENSOR3
Die Werte in $ANIN[Nr] bewegen sich zwischen +1.0 und --1.0 und repräsentieren eine Ein-
gangsspannung von +10V bis --10V.
Zum zyklischen Lesen von Analogeingängen dient die ANIN--Anweisung. Mit ihr können bis
zu 3 analoge Eingänge gleichzeitig eingelesen werden. Das Lesen erfolgt dabei im Interpola-
tionstakt.
Mit der Anweisungsfolge
SIGNAL SENSOR3 $ANIN[3]
REAL TEIL

ANIN ON TEIL = 1 * SENSOR3
können Sie somit den analogen Eingang 3 zyklisch lesen, und mit der der Anweisung
ANIN OFF SENSOR3
das Lesen wieder beenden.

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.

Argument Datentyp Bedeutung


Wert REAL Der Wert kann eine Variable oder ein (Ausgangs--) Si-
gnalname sein. In Wert wird das Ergebnis des zykli-
schen Lesens abgelegt.
Signalname REAL Signalvariable, die den analogen Eingang spezifiziert
(muß mit SIGNAL deklariert sein). Nicht zulässig ist eine
direkte Angabe von $ANIN[Nr].
Faktor REAL Beliebiger Faktor, der eine Variable, ein Signalname oder
eine Konstante sein kann.
Offset REAL Optional kann ein Offset programmiert werden. Der Off-
set kann eine Konstante, eine Variable oder ein Signal-
name sein.

Tab. 31 Argumente in der ANIN--Anweisung

VKRC/ProgExperteR5.4 11.05.00 de 133 von 188


Programmierung Experte

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 ( )

;--------- Deklarationsteil ---------


EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME
INT I
SIGNAL KLEBER $ANOUT[1] ;Duesenoeffnung fuer Kleber
SIGNAL KORREKTUR $ANIN[5] ;Bahnfolgesensor

;---------- 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}

FOR I=1 TO 16
$ANOUT[I]=0 ;alle Ausgaenge auf 0V setzen
ENDFOR

;------------- Hauptteil ------------


PTP HOME ;SAK-Fahrt

$ANOUT[3] = 0.7 ;Analogausgang 3 auf 7V

IF $ANIN[1] >= 0 THEN ;Klebevorgang nur, wenn Analogeingang


1
;positive Spannung hat
PTP POS1

;Bahnkorrektur entsprechend Sensorsignal mit Hilfe der


;Systemvariablen $TECHIN
ANIN ON $TECHIN[1] = 1 * KORREKTUR + 0.1

;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

134 von 188 VKRC/ProgExperteR5.4 11.05.00 de


5 Ein--/Ausgabeanweisungen (Fortsetzung)

5.6 Vordefinierte Digitaleingänge


Die Steuerung stellt 6 digitale Eingänge zur Verfügung, welche über die Signalvariablen
$DIGIN1…$DIGIN6 gelesen werden können. Die Eingänge sind Teil der normalen Anwen-
dereingänge. Sie können eine Länge von 32 Bit und einen dazugehörigen Strobe--Ausgang
haben.
Die Projektierung der digitalen Eingänge erfolgt in den Maschinendaten: “C:\KRC\Robo-
ter\Log\Steu\mada\$machine.dat”. Mit einer Signalvereinbarung wird zunächst der
Bereich und die Größe des Digitaleinganges festgelegt:
SIGNAL $DIGIN3 $IN[1000] TO $IN[1011]
Über die weiteren Systemvariablen $DIGIN1CODE…$DIGIN6CODE,
$STROBE1…$STROBE6 und $STROBE1LEV…$STROBE6LEV werden die Vorzeichenin-
terpretationen, die zugehörigen Strobe--Ausgänge und die Art des Strobe--Signals festge-
legt:
DECL DIGINCODE $DIGIN3CODE = #UNSIGNED ;ohne Vorzeichen
SIGNAL $STROBE3 $OUT[1000] ;Strobe-Ausgang festlegen
BOOL $STROBE3LEV = TRUE ;Strobe ist ein High-Impuls
Ein Strobe--Ausgang ist ein Ausgang der (V)KR C... mit einem bestimmten Impuls, der das
Signal eines externen Gerätes (z. B. Drehgeber) zum Lesen einfriert.

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

VKRC/ProgExperteR5.4 11.05.00 de 135 von 188


Programmierung Experte

Die Bedeutung der einzelnen Argumente sind in der Tabelle beschrieben.

Argument Datentyp Bedeutung


Wert REAL Der Wert kann eine Variable oder ein (Ausgangs--) Si-
gnalname sein. In Wert wird das Ergebnis des zykli-
schen Lesens abgelegt.
Signalname REAL Signalvariable, die den digitalen Eingang spezifiziert. Zu-
lässig sind nur $DIGIN1…$DIGIN6.
Faktor REAL Beliebiger Faktor, der eine Variable, ein Signalname oder
eine Konstante sein kann.
Offset REAL Optional kann ein Offset programmiert werden. Der Off-
set kann eine Konstante, eine Variable oder ein Signal-
name sein.

Tab. 32 Argumente in der DIGIN--Anweisung

136 von 188 VKRC/ProgExperteR5.4 11.05.00 de


6 Unterprogramme und Funktionen

6 Unterprogramme und Funktionen


Damit für gleichartige, häufiger sich wiederholende Programmabschnitte die Schreibarbeit
beim Programmieren sowie die Programmlänge reduziert werden, wurden Unterprogramme
und Funktionen als Sprachkonstrukte eingeführt.
Ein bei größeren Programmen nicht zu unterschätzender Effekt von Unterprogrammen und
Funktionen ist die Wiederverwendbarkeit einmal aufgeschriebener Algorithmen in anderen
Programmen und besonders der Einsatz von Unterprogrammen zur Strukturierung des Pro-
gramms. Diese Strukturierung kann zu einem hierarchischen Aufbau führen, so daß ein-
zelne Unterprogramme, von einem übergeordneten Programm aufgerufen, Teilaufgaben
vollständig bearbeiten und die Ergebnisse abliefern.

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

DEF Prog() ;Hauptprogramm


...
Unterprog() ;Erster Unterprogrammaufruf
...
Unterprog() ;Zweiter Unterprogrammaufruf
...
END ;Ende Hauptprogramm

DEF Unterprog() ;Unterprogramm


...
END ;Ende Unterprogramm

Abb. 46 Unterprogrammaufruf und Rücksprung

VKRC/ProgExperteR5.4 11.05.00 de 137 von 188


Programmierung Experte

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

DEF Prog() ;Hauptprogramm


...
Funktion() ;Erster Funktionsaufruf
...
Funktion() ;Zweiter Funktionsaufruf
...
END ;Ende Hauptprogramm

DEFFCT INT Funktion() ;Funktion


DECL INT Sample
Sample = 11
RETURN Sample
ENDFCT ;Ende Funktion

Abb. 47 Funktionsaufruf und Rücksprung

Fehlt die Anweisung “RETURN”, wird ein Laufzeitfehler gemeldet.

Grundsätzlich unterscheidet man zwischen lokalen und globalen Unterprogrammen bzw.


Funktionen.

138 von 188 VKRC/ProgExperteR5.4 11.05.00 de


6 Unterprogramme und Funktionen (Fortsetzung)

6.2 Lokale Unterprogramme und Funktionen


Bei lokalen Unterprogrammen oder Funktionen befinden sich das Hauptprogramm und die
Unterprogramme/Funktionen in der selben SRC--Datei. Dabei steht das Hauptprogramm im
Quelltext immer an erster Stelle, während die Unterprogramme und Funktionen in beliebiger
Anzahl und Reihenfolge nach dem Hauptprogramm folgen.

PROG.SRC
DEF Prog( )
... ;Hauptprogramm
END
DEF LOC_UP()
... ;Lokales Unterprogramm
END
DEFFCT INT LOC_FUN()
... ;Lokale Funktion
ENDFCT

Abb. 48 Lokale Unterprogramme und Funktionen

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.

VKRC/ProgExperteR5.4 11.05.00 de 139 von 188


Programmierung Experte

6.3 Globale Unterprogramme und Funktionen


Globale Unterprogramme und Funktionen können von jedem Hauptprogramm, jedem Unter-
programm oder jeder Funktion aus aufgerufen werden.
Hauptprogramme sind immer global verfügbar. Sollen Unterprogramm--/Funktionsaufrufe
systemweit möglich sein, so werden sie am einfachsten in einer eigenen SRC--Datei abge--
speichert.
Alternativ kann einem lokalen Unterprogramm oder einer Funktion das Schlüsselwort “GLO-
BAL” vorangestellt werden. Damit ist ein direkter Zugriff auf das Unterprogramm oder die
Funktion einer SRC--Datei möglich.

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

Abb. 49 Globale Unterprogramme und Funktionen

Im Hauptprogramm sind die in globalen Unterprogrammen oder Funktionen deklarierten Va-


riablen nicht bekannt. In globalen Unterprogrammen oder Funktionen sind die im Hauptpro-
gramm deklarierten Variablen nicht bekannt.
Bei globalen Unterprogrammen/Funktionen darf deren Name höchstens 24 Zeichen lang
sein.

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.

140 von 188 VKRC/ProgExperteR5.4 11.05.00 de


6 Unterprogramme und Funktionen (Fortsetzung)

In Abb. 50 ist der Unterschied zwischen lokalen und globalen Unterprogrammen/Funktionen


dargestellt: PROG.SRC, PROG_1.SRC und PROG_3.SRC sind jeweils eigenständige
Hauptprogramme, PROG_2FUN.SRC eine Funktion. Durch den Aufruf eines Programmes
(z.B. PROG_1.SRC) von PROG.SRC aus, wird dieses automatisch zum globalen Unterpro-
gramm. LOCAL() ist ein lokales Unterprogramm, LOCALFUN() eine lokale Funktion von
PROG.SRC.

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

Abb. 50 Unterschied lokal -- global

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.

VKRC/ProgExperteR5.4 11.05.00 de 141 von 188


Programmierung Experte

6.4 Aufruf und Parameterübergabe


Der Aufruf eines Unterprogramms erfolgt einfach durch die Angabe des Unterprogramm--
Namens und runden Klammern. Er sieht somit aus wie eine Anweisung, z.B.:
UNTERPROG1()
Ein Funktionsaufruf ist eine besondere Form einer Wertzuweisung. Eine Funktion kann da-
her nie alleine stehen, sondern der Funktionswert muß stets im Rahmen eines Ausdrucks
einer Variablen vom gleichen Datentyp zugewiesen werden, z.B.:
INTVAR = 5 * INTFUNKTION() + 1
REALVAR = REALFUNKTION()
In lokalen Unterprogrammen und Funktionen sind alle in der Datenliste des Hauptpro-
gramms deklarierten Variablen bekannt. In globalen Unterprogrammen dagegen, sind diese
Variablen nicht bekannt. Über eine Parameterliste können aber auch Werte an globale Unter-
programme und Funktionen übergeben werden.
Im Hauptprogramm (SRC--File) deklarierte Variablen werden nur dort verwendet, alle Über-
gaben in Unterprogramme und Funktionen (lokal und global) erfolgen mittels Parameterli-
sten.
Zur Parameterübergabe gibt es zwei unterschiedliche Mechanismen:
G Call by value (IN)
Bei dieser Übergabeart wird ein Wert aus dem Hauptprogramm an eine Variable des
Unterprogramms oder der Funktion übergeben. Der übergebene Wert kann eine Kon-
stante, eine Variable, ein Funktionsaufruf oder ein Ausdruck sein. Bei unterschiedlichen
Datentypen wird, wenn möglich, eine Typanpassung durchgeführt.
G Call by reference (OUT)
Durch “Call by reference” wird nur die Adresse einer Variablen des Hauptprogramms
an das Unterprogramm bzw. die Funktion übergeben. Das aufgerufene Unterpro-
gramm bzw. die Funktion kann nun über einen eigenen Variablennamen den Speicher-
bereich überschreiben und somit auch den Wert der Variablen im Hauptprogramm ver-
ändern. Die Datentypen müssen daher identisch sein, eine Typanpassung ist in diesem
Fall nicht möglich.

142 von 188 VKRC/ProgExperteR5.4 11.05.00 de


6 Unterprogramme und Funktionen (Fortsetzung)

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

225 GLOBAL DEFFCT INT QUA-


DRAT(ZAHL:OUT)
INT ZAHL
ZAHL=ZAHL*ZAHL
RETURN(ZAHL)
ENDFCT

⇒ X=225
Y= 225
E=1

Abb. 51 Unterschied zwischen “Call by value” und “Call by reference”

“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.

VKRC/ProgExperteR5.4 11.05.00 de 143 von 188


Programmierung Experte

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

144 von 188 VKRC/ProgExperteR5.4 11.05.00 de


6 Unterprogramme und Funktionen (Fortsetzung)

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

DOPPEL (X[]) ;Unterprogramm mit Feldparameter aufrufen


;X[1]=2,X[2]=4,X[3]=6,X[4]=8,X[5]=10
END

DEF DOPPEL (A[]:OUT)


INT A[] ;Erneute Vereinbarung des Feldes
INT I
FOR I=1 TO 5
A[I]=2*A[I] ;Verdoppelung der Feldwerte
ENDFOR
END

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

VKRC/ProgExperteR5.4 11.05.00 de 145 von 188


Programmierung Experte

146 von 188 VKRC/ProgExperteR5.4 11.05.00 de


7 Interrupt--Behandlung

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.

VKRC/ProgExperteR5.4 11.05.00 de 147 von 188


Programmierung Experte

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:

Argument Datentyp Bedeutung


Priorität INT Arithmetischer Ausdruck, der die Priorität der Unterbre-
chung angibt. Es stehen die Prioritätsebenen 1…39 und
81…128 zur Verfügung.
Die Unterbrechung der Ebene 1 hat die höchste Priorität.
Ereignis BOOL Logischer Ausdruck, der das Unterbrechungsereignis
definiert. Zugelassen sind:
S eine boolsche Konstante
S eine boolsche Variable
S ein Signalname
S ein Vergleich
Anweisung Eine Anweisung wie beispielsweise “$OUT[1]=TRUE”,
welche beim Auftreten des Ereignisses ausgeführt wer-
den soll. Als Anweisung ist auch ein Unterprogramm zu-
lässig, welches im Ereignisfall abgearbeitet wird.

Tab. 33 Argumente in der Interrupt--Deklaration

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()

148 von 188 VKRC/ProgExperteR5.4 11.05.00 de


7 Interrupt--Behandlung (Fortsetzung)

7.1.1 Gültigkeitsbereich eines Interrupts abhängig vom Deklarationsort

G Eine Deklaration kann jederzeit durch eine neue überschrieben werden.


G Ein GLOBALER Interrupt unterscheidet sich von einem normalen Interrupt dadurch,
daß er nach Verlassen des Unterprogramms in dem er vereinbart wurde weiterhin
gültig ist.
G Zur gleichen Zeit dürfen maximal 32 Interrupts deklariert sein.
G In der Interruptbedingung darf nicht auf Strukturvariablen oder --komponenten zuge-
griffen werden.
G Es dürfen keine Laufzeitvariablen als Parameter der Interruptroutine übergeben wer-
den, außer es handelt sich um GLOBAL oder in der Datenliste vereinbarte Variablen.

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

Abb. 52 Gültigkeitsbereich eines Interrupts abhängig vom Deklarationsort und--art

VKRC/ProgExperteR5.4 11.05.00 de 149 von 188


Programmierung Experte

7.2 Aktivieren von Interrupts


Interrupt einschalten
Nach der Deklaration ist ein Interrupt zunächst ausgeschaltet. Mit der Anweisung
INTERRUPT ON 4
wird der Interrupt mit der Priorität 4, mit
INTERRUPT ON
werden alle Interrupts eingeschaltet. Erst nach dem Einschalten kann eine Reaktion auf die
definierte Unterbrechung erfolgen. Das Unterbrechungsereignis wird nun zyklisch über-
wacht.
Die Überprüfung des Ereignisses erfolgt dabei flankengetriggert, das heißt, ein Interrupt wird
nur ausgelöst, wenn die logische Bedingung vom Zustand FALSE in den Zustand TRUE
wechselt, nicht jedoch, wenn die Bedingung beim Einschalten bereits TRUE war.

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

Interrupt sperren oder freigeben


Mit den Schlüsselworten ENABLE und DISABLE können eingeschaltete Interrupts einzeln
oder global freigegeben oder gesperrt werden.
Die Sperranweisung ermöglicht einen Schutz von bestimmten Programmteilen vor Unter-
brechung. Ein gesperrter Interrupt wird zwar erkannt und gespeichert, aber nicht ausgeführt.
Erst wenn eine Freigabe erfolgt, werden die aufgetretenen Interrupts in der Reihenfolge ihrer
Priorität bearbeitet.
INTERRUPT DISABLE 4
oder
INTERRUPT DISABLE
Auf ein gespeichertes Ereignis wird nicht mehr reagiert, wenn der Interrupt vor der Auslö-
sung ausgeschaltet wird. Falls ein Interrupt während er gesperrt ist mehrmals auftritt, wird
er nach seiner Freigabe nur einmal ausgeführt.

150 von 188 VKRC/ProgExperteR5.4 11.05.00 de


7 Interrupt--Behandlung (Fortsetzung)

Die Voraussetzungen für das Auslösen eines Interrupts sind:


S Der Interrupt muß deklariert sein (INTERRUPT DECL …)
S Der Interrupt muß eingeschaltet sein (INTERRUPT ON)

S Der Interrupt darf nicht gesperrt sein


S Das zugehörige Ereignis muß eingetreten sein (flankengetriggert)

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.

G An ein Interruptprogramm können IN--Parameter übergeben werden.


G Soll ein lokales Interruptprogramm einen Parameter zurückliefern, so muß die Varia-
ble in der Datenliste des globalen Hauptprogramms deklariert sein. Bei globalen Inter-
ruptprogrammen muß mit der Datenliste $CONFIG.DAT gearbeitet werden.
G Änderungen von $TOOL und $BASE im Interruptprogramm sind nur dort wirksam
(Kommandobetrieb).
G Im Interruptprogramm gibt es keinen Rechnervorlauf, da es auf Kommandoebene
läuft, d. h. es wird Satz für Satz abgearbeitet (⇒ $ADVANCE--Zuweisungen sind nicht
zulässig). Ein Überschleifen ist somit nicht möglich.

VKRC/ProgExperteR5.4 11.05.00 de 151 von 188


Programmierung Experte

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.

152 von 188 VKRC/ProgExperteR5.4 11.05.00 de


7 Interrupt--Behandlung (Fortsetzung)

DEF INTERRUP ( )

;--------- Deklarationsteil ---------


EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME
POS TEIL[2]
INT I

;---------- Initialisierung ---------


BAS (#INITMOV,0 ) ;Initialisierung von Geschwindigkeiten,
;Beschleunigungen, $BASE, $TOOL, etc.
HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0}
FOR I=1 TO 16
$OUT[I]=FALSE ;alle Ausgaenge ruecksetzen
ENDFOR
INTERRUPT DECL 10 WHEN $IN[1]==TRUE DO SAVEPOS (1 )
INTERRUPT DECL 11 WHEN $IN[2]==TRUE DO SAVEPOS (2 )

;------------- Hauptteil ------------


PTP HOME ;SAK-Fahrt

PTP {X 1320,Y 100,Z 1000,A -13,B 78,C -102}

INTERRUPT ON ;alle Interrupts aktivieren


LIN {X 1320,Y 662,Z 1000,A -13,B 78,C -102} ;Suchstrecke
INTERRUPT OFF 10 ;Interrupt 10 ausschalten
INTERRUPT OFF 11 ;Interrupt 11 ausschalten

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

;----------- Interruptprogramm ----------


DEF SAVEPOS (NR :IN ) ;Teil erkannt
INT NR
$OUT[NR]=TRUE ;Merker setzen
TEIL[NR]=$POS_INT ;Position speichern
END

VKRC/ProgExperteR5.4 11.05.00 de 153 von 188


Programmierung Experte

7.2.1 Nützliche Systemvariablen bei der Interrupt--Behandlung


Weitere nützliche Systemvariablen für das Arbeiten mit Interrupts sind in der Tabelle aufge-
führt. Die Positionen beziehen sich immer auf die im Hauptlauf aktuellen Koordinatensy-
steme.

achsspezifisch kartesisch Beschreibung


$AXIS_INT $POS_INT Position, an der der Interrupt ausgelöst wurde
$AXIS_ACT $POS_ACT aktuelle IST--Position
$AXIS_RET $POS_RET Position, an der die Bahn verlassen wurde
$AXIS_BACK $POS_BACK Position des Startpunktes der Bahn
$AXIS_FOR $POS_FOR Position des Zielpunktes der Bahn

Tab. 34 Nützliche Systemvariablen bei der Interrupt--Behandlung

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

Abb. 53 Interrupt--Systemvariablen bei Genauhaltpunkten

154 von 188 VKRC/ProgExperteR5.4 11.05.00 de


7 Interrupt--Behandlung (Fortsetzung)

P2

$POS_INT $POS_RET
$AXIS_INT $AXIS_RET

$POS_FOR
$AXIS_FOR

$POS_BACK $POS_ACT
$AXIS_BACK $AXIS_ACT

P1 P3

Abb. 54 Interrupt--Systemvariablen bei Interrupt in einem Überschleifbereich

VKRC/ProgExperteR5.4 11.05.00 de 155 von 188


Programmierung Experte

7.3 Laufende Bewegungen anhalten


Sollen noch laufende Roboterbewegungen beim Eintreten eines Interrupts angehalten wer-
den, so bedient man sich der BRAKE--Anweisung im Interruptprogramm. Programmiert man
ohne Parameter
BRAKE
so bewirkt dies ein Abbremsen der Bewegung mit den programmierten Bahn-- bzw. Achsbe-
schleunigungswerten. Das Verhalten ist das gleiche wie beim Betätigen der STOP--Taste.
Die programmierte Bewegungsbahn wird dabei nicht verlassen.
Mit der Anweisung
BRAKE F
(brake fast) erreichen Sie einen kürzeren Bremsweg. Der Roboter wird dabei mit der maxi-
malen bahntreuen Verzögerung abgebremst.

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.

Nach dem Rücksprung in das unterbrochene Programm wird eine im Interrupt-


programm mit BRAKE oder BRAKE F angehaltene Bewegung fortgesetzt!

156 von 188 VKRC/ProgExperteR5.4 11.05.00 de


7 Interrupt--Behandlung (Fortsetzung)

7.4 Abbrechen von Interrupt--Routinen


Im folgenden Beispiel werden während der Roboterbewegung durch 2 Initiatoren maximal
2 Gegenständen detektiert und deren Positionen zum späteren Anfahren aufgezeichnet.

7.4.1 Schnelles Messen


Die Suchstrecke wird dabei auf jeden Fall komplett abgefahren, auch wenn die beiden Ge-
genstände schon erkannt sind. Um Zeit zu sparen, ist es wünschenswert die Bewegung so-
fort abzubrechen, wenn die maximale Anzahl von Teilen erkannt wurde.
Das Abbrechen einer Roboterbewegung ist in der (V)KR C... mit der
RESUME
Anweisung möglich. RESUME bricht alle laufenden Interruptprogramme und auch alle laufen-
den Unterprogramme bis zu der Ebene ab, in der der aktuelle Interrupt deklariert wurde.

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.

7.4.2 Fliegendes Messen


Soll diese Ungenauigkeit vermieden werden, so darf man den Initiator nicht an die Anwende-
reingänge anschließen, sondern muß spezielle Eingänge (4 Stück) am Peripheriestecker
X11 benutzen. Diese Eingänge können über die Systemvariablen
$MEAS_PULSE[1]…MEAS_PULSE[4] angesprochen werden (Reaktionszeit 125µs).
Beim Einschalten des Interrupts darf der Meßimpuls nicht anliegen, sonst wird die entspre-
chende Meldung ausgegeben.

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.

VKRC/ProgExperteR5.4 11.05.00 de 157 von 188


Programmierung Experte

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

DEF GRIP ( ) ;Greifen der erkannten Teile


INT POS_NR ;Zaehlvariable
FOR POS_NR=I[1] TO 1 STEP -1
POSITION[POS_NR].Z=POSITION[POS_NR].Z+200
LIN POSITION[POS_NR] ;200mm ueber Teil fahren
LIN_REL {Z -200} ;Teil senkrecht anfahren
; Teil greifen
LIN POSITION[POS_NR] ;wieder hoch fahren
LIN {X 634,Y 1085,Z 1147,A 49,B 67,C -90}
; Teil ablegen
ENDFOR
END

158 von 188 VKRC/ProgExperteR5.4 11.05.00 de


7 Interrupt--Behandlung (Fortsetzung)

7.5 Verwendung zyklischer Flags


In der Anweisung zur Interrupt--Deklaration sind keine logischen Verknüpfungen zulässig.
Um kompliziertere Ereignisse definieren zu können, müssen Sie daher mit zyklischen Flags
arbeiten, da nur diese eine stetige Aktualisierung ermöglichen.
Mit der Sequenz

$CYCFLAG[3] = $IN[1] AND ([$IN[2] OR $IN[3])
INTERRUPT DECL 10 WHEN $CYCFLAG[3] DO IR_PROG()
INTERRUPT ON 10

können Sie somit gleichzeitig 3 Eingänge überwachen und logisch miteinander verknüpfen.

Weitere Informationen finden Sie im Kapitel [Variablen und Vereinbarungen] unter


“Flags und Zyklische Flags”.

VKRC/ProgExperteR5.4 11.05.00 de 159 von 188


Programmierung Experte

160 von 188 VKRC/ProgExperteR5.4 11.05.00 de


8 Trigger -- Bahnbezogene Schaltaktionen

8 Trigger - Bahnbezogene Schaltaktionen


Im Gegensatz zu den bewegungsunabhängigen Interruptfunktionalitäten erfordern manche
Anwendungsfälle auch Schaltaktionen, die in Abhängigkeit von der Bewegungsbahn ausge-
löst werden. Solche Anwendungsfälle sind z. B.:
G Schließen bzw. Öffnen der Schweißzange beim Punktschweißen
G Ein--/Ausschalten des Schweißstromes beim Bahnschweißen
G Zu--/Abschalten des Volumenstromes beim Kleben oder Abdichten
In der (V)KR C... sind diese bahnbezogenen Schaltaktionen mit der TRIGGER--Anweisung
möglich. Parallel zur nächsten Roboterbewegung kann mit TRIGGER in Abhängigkeit von ei-
nem Wegkriterium ein Unterprogramm abgearbeitet werden oder eine Wertzuweisung an
eine Variable oder eine PULSE--Anweisung erfolgen.

8.1 Schaltaktion am Start-- oder Zielpunkt der Bahn


Ist eine Schaltaktion bezüglich des Start-- oder Zielpunktes einer Bewegungsbahn ge-
wünscht, so programmieren Sie vor der betreffenden Bewegungsanweisung (PTP, LIN oder
CIRC) eine TRIGGER--Anweisung mit folgender Syntax:

TRIGGER WHEN DISTANCE=Schaltpunkt DELAY=Zeit DO Anweisung


<PRIO=Priorität>

Beschreibung der Argumente:

Argument Datentyp Bedeutung


Schaltpunkt INT Bei Einzelsätzen bezeichnet DISTANCE=0 den Start-
punkt und DISTANCE=1 den Zielpunkt der nachfolgenden
Bewegung.
Bei Überschleifsätzen markiert die Angabe DI-
STANCE=1 die Mitte des nachfolgenden Überschleif--bo-
gens.
Ist der Vorgängersatz bereits ein Überschleifsatz, so mar-
kiert DISTANCE=0 den Zielpunkt des vorhergehenden
Überschleifbogens.
Zeit INT Mit der DELAY--Angabe ist es möglich, den Schaltpunkt
um eine bestimmte Zeit zu verzögern oder vorwegzuneh-
men. Der Schaltpunkt kann dabei aber immer nur soweit
verschoben werden, daß er immer noch innerhalb des je-
weiligen Satzes liegt. *2
Die Einheit ist Millisekunden.
Anweisung Die Anweisung kann
S eine Wertzuweisung an eine Variable
S eine OUTPUT--Anweisung (auch Pulse)
S ein Unterprogrammaufruf *1 sein.

VKRC/ProgExperteR5.4 11.05.00 de 161 von 188


Programmierung Experte

Priorität INT Jeder TRIGGER--Anweisung mit Unterprogrammaufruf


muß eine Priorität zugeordnet werden. Zulässig sind
Werte von 1…39 und 81…128. Es handelt sich dabei um
die selben Prioritäten wie bei Interrupts (s. Abschnitt 7).
Die Werte 40…80 sind für eine automatische Prioritätsver-
gabe durch das System reserviert. Programmieren Sie
dazu PRIO=--1.
*1Beinhaltet das Unterprogramm einen oder mehrere Bewegungssätze, gibt es
zwei Möglichkeiten:
G Steht ein BRAKE--Befehl vor dem ersten Bewegungssatz, wird die aktuelle Bewe-
gung zunächst unterbrochen. Die Bewegungssätze des Interrupt--Programms wer-
den ausgeführt. Anschließend wird Rückpositioniert und der vorher unterbrochene
Bewegungssatz im Hauptprogramm fortgesetzt.
G Ist kein BRAKE--Befehl programmiert, werden alle Bewegungssätze des Hauptpro-
gramms, die bereits im Vorlauf berechnet wurden, zu Ende gefahren. Erst dann wer-
den die Bewegungssätze des Interrupt--Programms ausgeführt.
*2 Erreicht der Roboter die Satzgrenze, bevor die angegebene Zeit abgelaufen
ist, erfolgt die Schaltaktion sofort. Daher können verschiedene Betriebsarten
(z. B. T1 oder EXT) auch unterschiedliche Schaltzeitpunkte liefern.

Tab. 35 Argumente in der TRIGGER--Anweisung

Mit der Anweisungsfolge



LIN PUNKT2

TRIGGER WHEN DISTANCE = 0 DELAY=20 DO $OUT[4]=TRUE
TRIGGER WHEN DISTANCE = 1 DELAY=-25 DO UNTERPRG1() PRIO=-1
LIN PUNKT3

LIN PUNKT4

wird somit während der Linearbewegung zu PUNKT3 der Ausgang 4, 20 Millisekunden nach
dem Start der Bewegung gesetzt und 25 Millisekunden vor Erreichen des Zielpunktes das
Unterprogramm UNTERPRG1() aufgerufen. Die Prioritätsvergabe erfolgt automatisch
durch das System.
Zur Erläuterung der unterschiedlichen Wirkung der DISTANCE--Angabe bei Einzel-- und
Überschleifsätzen.

162 von 188 VKRC/ProgExperteR5.4 11.05.00 de


8 Trigger -- Bahnbezogene Schaltaktionen (Fortsetzung)

8.1.1 Schaltbereiche und mögliche Verzögerungswerte


8.1.1.1 Start-- und Zielpunkt sind Genauhaltpunkte

DISTANCE Schaltbereich DELAY


0 0 -- 1 +
1 1 -- 0 --
0
PUNKT2 +

--
PUNKT3

1
Abb. 55 Schaltbereiche und mögliche Verzögerungswerte, wenn Start-- und Zielpunkt
Genauhaltpunkte sind.

8.1.1.2 Startpunkt ein Genauhaltpunkt und Zielpunkt ein Überschleifpunkt

0 PUNKT2 DISTANCE Schaltbereich DELAY


0 0 -- 1a +
+
1 1a -- 1b ±

1a

-- 1
1b
PUNKT3 PUNKT4
+
Abb. 56 Schaltbereiche und mögliche Verzögerungswerte, wenn Startpunkt ein Genau-
haltpunkt und Zielpunkt ein Überschleifpunkt ist.

VKRC/ProgExperteR5.4 11.05.00 de 163 von 188


Programmierung Experte

8.1.1.3 Start-- und Zielpunkt Überschleifpunkte


PUNKT2
DISTANCE Schaltbereich DELAY
0 0 -- 1a +
1 1a -- 1b ±

0
+

1a

-- 1
1b
PUNKT3 PUNKT4
+

Abb. 57 Schaltbereiche und mögliche Verzögerungswerte, wenn Start-- und Zielpunkt-


Überschleifpunkte sind.

8.1.1.4 Startpunkt ein Überschleifpunkt und Zielpunkt ein Genauhaltpunkt

DISTANCE Schaltbereich DELAY


0 0 -- 1 +
PUNKT2
1 1 -- 0 --

0
+
--

1
PUNKT3
Abb. 58 Schaltbereiche und mögliche Verzögerungswerte, wenn Startpunkt ein Über-
schleifpunkt und Zielpunkt ein Genauhaltpunkt ist.

164 von 188 VKRC/ProgExperteR5.4 11.05.00 de


8 Trigger -- Bahnbezogene Schaltaktionen (Fortsetzung)

8.2 Schaltaktion beliebig auf der Bahn


Bei der wegbezogenen TRIGGER--Anweisung können Sie mit einer Entfernungsangabe die
Schaltaktion an einer beliebigen Stelle auf der Bahn auslösen. Diese kann zusätzlich noch
einmal -- wie bei Schaltaktionen an Start-- oder Zielpunkt -- zeitlich verschoben werden.
Die wegbezogene Schaltaktion ist nur für Bahnbewegungen (LIN oder CIRC) erlaubt. Die
TRIGGER--Anweisung bezieht sich dabei auf den nachfolgend programmierten Bewegungs-
satz, und hat die Syntax:

TRIGGER WHEN PATH = Strecke DELAY = Zeit DO Anweisung


〈PRIO=Priorität〉

Erläuterung der Argumente:

Argument Datentyp Bedeutung


Strecke INT Mit Strecke geben Sie die gewünschte Entfernung vom
nach dem Trigger programmierten Zielpunkt an.
Ist dieser Zielpunkt ein überschliffener Punkt, so gibt
Strecke die gewünschte Entfernung der Schaltaktion von
der dem Zielpunkt am nächsten liegenden Position des
Überschleifbereichs an.
Der Schaltpunkt kann durch eine negative Strecke bis
zum Startpunkt vorgezogen werden. Ist der Startpunkt ein
Überschleifpunkt, so kann der Schaltpunkt bis zum Anfang
des Überschleifbereichs verschoben werden.
Mit einer positiven Angabe von Strecke ist eine Ver-
schiebung bis zum nächsten nach dem Trigger program-
mierten Genauhaltpunkt möglich.
Die Einheit ist Millimeter.
Zeit INT Mit der DELAY--Angabe ist es möglich, den Schaltpunkt re-
lativ zur PATH--Angabe um eine bestimmte Zeit zu verzö-
gern (+) oder vorwegzunehmen (--). *2
Die Einheit ist Millisekunden.
Anweisung Die Anweisung kann
S eine Wertzuweisung an eine Variable
S eine OUTPUT--Anweisung (auch PULS)
S ein Unterprogrammaufruf*1 sein.

VKRC/ProgExperteR5.4 11.05.00 de 165 von 188


Programmierung Experte

Priorität INT Jeder TRIGGER--Anweisung mit Unterprogrammaufruf


muß eine Priorität zugeordnet werden. Zulässig sind Werte
von 1…39 und 81…128. Es handelt sich dabei um die sel-
ben Prioritäten wie bei Interrupts.
Die Werte 40…80 sind für eine automatische Prioritätsver-
gabe durch das System reserviert. Programmieren Sie
dazu PRIO=--1.
*1Beinhaltet das Unterprogramm einen oder mehrere Bewegungssätze, gibt es
zwei Möglichkeiten:
G Steht ein BRAKE--Befehl vor dem ersten Bewegungssatz, wird die aktuelle Bewe-
gung zunächst unterbrochen. Die Bewegungssätze des Interrupt--Programms wer-
den ausgeführt. Anschließend wird Rückpositioniert und der vorher unterbrochene
Bewegungssatz im Hauptprogramm fortgesetzt.
G Ist kein BRAKE--Befehl programmiert, werden alle Bewegungssätze des Hauptpro-
gramms, die bereits im Vorlauf berechnet wurden, zu Ende gefahren. Erst dann wer-
den die Bewegungssätze des Interrupt--Programms ausgeführt.
*2 Erreicht der Roboter die Satzgrenze, bevor die angegebene Zeit abgelaufen
ist, erfolgt die Schaltaktion sofort. Daher können verschiedene Betriebsarten
(z. B. T1 oder EXT) auch unterschiedliche Schaltzeitpunkte liefern.

Tab. 36 Argumente in der TRIGGER--Anweisung

Mit der Anweisungsfolge



PTP PUNKT2
TRIGGER WHEN PATH = 20 DELAY=-10 DO $OUT[2]=TRUE
LIN PUNKT3 C_DIS
LIN PUNKT4 C_DIS
LIN PUNKT5

wird z. B. Ausgang 2 genau 10 Millisekunden bevor die Werkzeugspitze eine Strecke von
20 Millimetern auf seiner Bahn von PUNKT3 über PUNKT4 nach PUNKT5 zurückgelegt hat,
gesetzt.

8.2.1 Zielpunkt ist ein Genauhaltpunkt


Da der Schaltpunkt ab dem Bewegungspunkt, vor dem er programmiert wurde, über alle
nachfolgenden Überschleifpunkte hinweg, bis zum nächsten Genauhaltpunkt verschoben
werden kann, ist eine Verschiebung bis zu PUNKT5 möglich.
Der Schaltpunkt kann durch eine negative Strecke bis zum Startpunkt vorgezogen wer-
den. Ist der Startpunkt ein Überschleifpunkt, so kann der Schaltpunkt bis zum Anfang des
Überschleifbereichs verschoben werden.

166 von 188 VKRC/ProgExperteR5.4 11.05.00 de


8 Trigger -- Bahnbezogene Schaltaktionen (Fortsetzung)

PUNKT2 PATH Schaltbereich


0 DELAY

±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.

8.2.2 Zielpunkt ist ein Überschleifpunkt


Mit einer positiven Angabe von Strecke ist eine Verschiebung bis zum nächsten nach dem
Trigger programmierten Genauhaltpunkt möglich. Ist dieser Zielpunkt ein Überschliffener
Punkt, so gibt Strecke die gewünschte Entfernung der Schaltaktion von der dem Zielpunkt
am nächsten liegenden Position des Überschleifbereichs an.

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.

VKRC/ProgExperteR5.4 11.05.00 de 167 von 188


Programmierung Experte

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.

168 von 188 VKRC/ProgExperteR5.4 11.05.00 de


8 Trigger -- Bahnbezogene Schaltaktionen (Fortsetzung)

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

VKRC/ProgExperteR5.4 11.05.00 de 169 von 188


Programmierung Experte

POS 1 2’B POS 2


$OUT[3]
2’
30 $OUT[6]

$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

Abb. 61 Schaltpunkte und Bewegungsbahn zum vorangegangenen Beispiel

170 von 188 VKRC/ProgExperteR5.4 11.05.00 de


9 Datenlisten

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

Abb. 62 Initialisierung und Wertzuweisung an in Datenlisten deklarierte Variablen

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.

VKRC/ProgExperteR5.4 11.05.00 de 171 von 188


Programmierung Experte

9.2 Globale Datenlisten


In einer Datenliste definierte Variablen können einem “fremden” Hauptprogramm zugänglich
gemacht werden.
Dazu muß die Datenliste mit dem optionalen Schlüsselwort PUBLIC in der Kopfzeile als “öf-
fentlich zugänglich” definiert werden. Jetzt gibt es zwei Möglichkeiten die Variable zu Dekla-
rieren:
G Eine Variable wird z.B. mit INT OTTO = 0 in der Datenliste definiert, und in dem
fremden Hauptprogramm muß diese Variable mit dem Befehl Import importiert wer-
den, damit sie zugänglich ist.
Einer importierten Variablen kann im Hauptprogramm ein anderer Name gegeben wer-
den als in der Datenliste, aus der sie importiert wurde.
Wollen Sie also in einem Programm PROG_2() die Variable OTTO aus obiger Datenliste
PROG_1 verwenden, so programmieren Sie neben dem Schlüsselwort PUBLIC in
der Datenliste, folgende Importvereinbarung im Programm PROG_2():
IMPORT INT OTTO_2 IS /R1/PROG_1..OTTO
Die Variable OTTO aus der Datenliste PROG_1.DAT im Verzeichnis /R1 ist nun unter
dem Namen OTTO_2 auch im Programm PROG_2() bekannt.

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

Abb. 63 Importieren von Variablen aus “fremden” Datenlisten mit Import

172 von 188 VKRC/ProgExperteR5.4 11.05.00 de


9 Datenlisten (Fortsetzung)

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

Abb. 64 Importieren von Variablen aus “fremden” Datenlisten ohne Import

Die Deklaration einer globalen Variable ist nur in Datenlisten zulässig, wird sie in SRC--
oder SUB--Files verwendet, erfolgt eine Fehlermeldung.

In der vordefinierten, globalen Systemdatenliste $CONFIG.DAT können Variablen, Struktu-


ren, Kanäle und Signale definiert werden, die global gültig sind und für viele Programme von
übergeordneter Bedeutung sind. Die Variablen in der $CONFIG.DAT müssen nicht mit IM-
PORT vereinbart werden, da sie allen Anwenderprogrammen automatisch bekannt sind.

Weitere Informationen zur $CONFIG.DAT finden Sie im Kapitel [Variablen und Verein-
barungen], Abschnitt [Systemvariablen und Systemdateien].

VKRC/ProgExperteR5.4 11.05.00 de 173 von 188


Programmierung Experte

174 von 188 VKRC/ProgExperteR5.4 11.05.00 de


10 USER (KRL--Funktionsaufruf mit Parameterübergabe)

10 USER (KRL-- Funktionsaufruf mit Parameterübergabe)


Mit dem Befehl [ Befehle > USER ] wird das entsprechende Inline--Formular für benutzerde-
finierte Parameter angezeigt. Im Auslieferungszustand stehen maximal 7 benutzerdefinier-
bare Parameter zur Verfügung. Reicht diese Zahl nicht aus, ist die Definition zusätzlicher Pa-
rameter in Haupt-- oder Untergruppen möglich.

Informationen zum Inline--Formular “USER” finden Sie im Bedienhandbuch im Kapitel


[Programmierung Anwender] unter [Programmbefehle].

10.1 VW_USR_R
Der Baustein VW_USR_R wird in den Roboter--Interpreter eingebunden und besitzt fol-
gende Unterprogramme:

lokale Routine Funktion wird ausgeführt...


USR_INIT ...im Init--Teil einer Folge
USR_ADV ...im Vorlauf vor dem Punkt, an welchem die Funktion “User” in der
Punkt--SPS--Anweisung steht
USR_TRIG ...in der Punkt--SPS--Anweisung des Punktes, an dem die Funktion
“User” in der Punkt--SPS--Anweisung steht
USR_MAIN ...im Hauptlauf nach dem Punkt, an welchem der Befehl “User” in der
Punkt--SPS--Anweisung steht

Tab. 37 Unterprogramme von “VW_USR_R”

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:

G im Vorlauf VW_USR_R (#USR_ADV, ...) vor dem Punkt


G im Hauptlauf VW_USR_R (#USR_MAIN, ...) nach dem Punkt
G getriggert im Interrupt--Unterprogramm der Punkt--SPS VW_USR_R (#USR_TRIG, ...)

Abhängig vom Anwendungsfall und dem Ausführungszeitpunkt kann der entsprechende


Aufruf des USER--Bausteines ausgewählt und in KRL programmiert werden.

Das Modul “VW_USR_R” befindet sich im Verzeichnis “C:\ KRC\ Robo-


ter\ KRC\ R1\ VW_USER”.

VKRC/ProgExperteR5.4 11.05.00 de 175 von 188


Programmierung Experte

10.2 VW_USR_S
Der Baustein VW_USR_S wird in den Submit--Interpreter eingebunden und besitzt folgende
Unterprogramme:

lokale Routine Funktion wird ausgeführt...


USR_INIT ...beim Anstarten des Submit--Interpreters
USR_SAW ...bei Verlust der SAK
USR_RESET ...im Falle eines Programmresets im Roboterinterpreter
USR_CANCEL ...wenn ein Programm im Roboterinterpreter abgewählt wird
USR_LOOP ...im zyklischen Teil des Submit--Interpreters

Tab. 38 Unterprogramme von “VW_USR_S”

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”.

Das Modul “VW_USR_S” befindet sich im Verzeichnis “C:\ KRC\ Robo-


ter\ KRC\ R1\ VW_USER”.

176 von 188 VKRC/ProgExperteR5.4 11.05.00 de


10 USER (KRL--Funktionsaufruf mit Parameterübergabe) (Fortsetzung)

10.3 Haupt-- und Untergruppen


Für die Organisation von mehr als 7 Übergabe--Parametern müssen entsprechende Haupt--
bzw. Untergruppen angelegt werden. Jede Hauptgruppe kann aus 7 Parametern oder 10 Un-
tergruppen bestehen. Jede Untergruppe kann ihrerseits wieder bis zu 7 Parameter beinhal-
ten.
Änderungen der Anzahl oder Werte der USER--Parameter ist über die Datei “C:\ KRC\ ROBO-
TER\ INIT\ VW_USER.INI” möglich. Die mitgelieferte Datei VW_USER.INI ist folgendermaßen
aufgebaut:
[Hauptgruppe0]
Titel = VW
Name = User
[P1]
Visible = TRUE
num*n=x=*n [mm]
i1=Zaehler_1
bin1=Binaer_1
ana1=Analog_1
[P2]
Visible = TRUE
[P3]
Visible = TRUE
[P4]
Visible = TRUE
[P5]
Visible = TRUE
[P6]
Visible = TRUE
[P7]
Visible = TRUE
[GruppenEnde]

Das zugehörige Inline--Formular:


1 2 3 4 5

VW P1= 1 [VW_UserX=1 [mm]]


(1) Titel
(2) Parameter 1
(3) Auswahlliste für arithmetischen Operand (num, i, bin, t, ana, anain, binin p); auch als Softkey
(4) Eingabefeld für Parameter 1 zur Auswahl vordefiniertetr Zeichenfolgen; auch als Statuskey
(5) Zeichenfolge aus Titel, Name und Parameter
Abb. 65 Inline--Formular “USER”

Bei Syntaxfehlern in der Datei WV_USER.INI läßt sich das Inline--Formular nicht öffnen.

VKRC/ProgExperteR5.4 11.05.00 de 177 von 188


Programmierung Experte

Bedeutung der Schlüsselwörter in der VW_USER.INI:

Schlüsselwort Bereich Bedeutung


Definiert eine von 10 möglichen Hauptgrup-
pen. Jede Hauptgruppe muß mit dem Schlüs-
selwort [GruppenEnde] abgeschlossen wer-
den.
[Hauptgruppe n] n = 0 ... 9
Verschachteln von Hauptgruppen ist nicht zu-
lässig.
Jede Hauptgruppe kann bis zu 10 Untergrup-
pen beinhalten.
Bezeichnung einer Hauptgruppe. Wird im Inli-
Titel=
ne--Formular angezeigt.
Definiert eine Untergruppe mit jeweils 7 Para-
metern. Jede Untergruppe muß mit dem
Schlüsselwort [GruppenEnde] abgeschlossen
[Untergruppe n] n = 1 ... 10 werden.
Verschachteln von Untergruppen ist nicht zu-
lässig.
Bezeichnung einer Untergruppe. Wird im In-
lien--Formular angezeigt.
Name=
Existiert keine Untergruppe, erfolgt der Eintrag
direkt unter der Hauptgruppe.
n = 1 ... 7
Definition der 7 Übergabe--Parameter einer
[P n] 1 ... 6 Integer--Wert,
Haupt-- oder Untergruppe.
7 Boole’scher Wert
TRUE Sichtbar Legt die Sichtbarkeit eines Übergabe--Para-
Visible=
FALSE Unsichtbar meters im Inline--Formular fest.
Num n= 1...99999
in= 1 ... 22 Bei Eingabe einer Nummer im Eingabefeld des
bin n = 1 ... 20 Inline--Formulars wird die in der VW_USER.INI
vordefinierte Zeichenfolge eingesetzt.
tn= 1 ... 20
Die zulässigen Nummern sind abhängig vom
ana n = 1 ... 16
Typ des arithmetischen Operanden. Der Ope-
anain n = 1 ... 16 rand “Num” entspricht dem leeren Feld der Aus-
binin n = 1 ... 20 wahlliste.
pn= 1 ... 256
Bei Eingabe einer Nummer im Eingabefeld des
Inline--Formulars wird die in der VW_USER.INI
Num*n= ...*n *n = Variabler Wert vordefinierte Zeichenfolge eingesetzt.
Es gelten die gleichen Einschränkungen wie bei
“Num n=”.
Definiert das Ende einer Haupt-- oder Unter-
[GruppenEnde]
gruppe.

Tab. 39 Schlüsselwörter in der “VW_USER.INI”

178 von 188 VKRC/ProgExperteR5.4 11.05.00 de


10 USER (KRL--Funktionsaufruf mit Parameterübergabe) (Fortsetzung)

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

Sample P1= 1 [Sample_1 Value--10]

Sample P1= 2 [Sample_1 Value--15]


(1) Das leere Feld in der Auswahlliste entspricht dem Eintrag “Num”.
(2) Die Nummer dient zur Auswahl einer vorher definierten Zeichenfolge.
(3) Zeichenfolge, die entsprechend der Auswahlliste und der Nummer im Eingabefeld gebildet wird.
Abb. 66 Vordefinierte Zeichenfolge “Num”

Die Verwendung anderer Operanden ist ebenfalls möglich:


[Hauptgruppe0]
Titel = Sample
Name = 1
[P1]
Visible = TRUE
Bin1= Binaer_1
Ana3= Analog_3
[P2]
...
Sample P1= bin 1 [Sample_1 Binaer_1]

Abb. 67 Vordefinierte Zeichenfolge “Binär”

VKRC/ProgExperteR5.4 11.05.00 de 179 von 188


Programmierung Experte

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

Sample P1= 2 [Sample_1 Value--2]


(1) Auswahlliste für arithmetischen Operand (num, i, bin, t, ana, anain, binin, p)
(2) Aus dieser Nummer wird automatisch eine Zeichenfolge generiert
(3) Aus der Nummer und dem vorgegebenen Muster generierte Zeichenfolge
Tab. 40 Variable Zeichenfolge

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

Tab. 41 Zeichenfolge als Zuweisung

180 von 188 VKRC/ProgExperteR5.4 11.05.00 de


10 USER (KRL--Funktionsaufruf mit Parameterübergabe) (Fortsetzung)

Beispiel mit 3 Haupt-- und 2 Untergruppen

Im Beispiel wurden insgesamt 3 Hauptgruppen definiert. Für die Hauptgruppe “Laser”


existieren die Untergruppen “Schneiden” und “Schweißen”. Für “Schneiden” stehen
wiederum die gezeigten Parameter zur Verfügung.
1 2 3 4 5 6 7

Laser Schneiden P1= Geo1 P2= 3 P3=


VW_User Schneiden 500 P4= 8 P5= 1
Vision Schweißen
Laser P6= 1 P7= Sensor Ein
Laser_Schneiden Geo1 Gas=3[bar] Zeit=500[ms] Abstand=8[0.1mm] Sensor Ein]

(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]

VKRC/ProgExperteR5.4 11.05.00 de 181 von 188


Programmierung Experte

[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]

182 von 188 VKRC/ProgExperteR5.4 11.05.00 de


10 USER (KRL--Funktionsaufruf mit Parameterübergabe) (Fortsetzung)

10.4 Zuweisungen Relativverfahren

10.4.1 Übergabe von 7 Parametern

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

Zuerst werden die notwendigen Änderungen in der Datei “VW_USR_R.SRC” vorgenom-


men. Ihre Einträge würden Sie im Aufruf zum Hauptlauf DEF USER_MAIN editieren. Im folgen-
den sehen Sie einen Auszug aus dieser Datei
...
DEF USER_MAIN (P1 :IN,P2 :IN, P3 :IN,P4 :IN,P5 :IN,P6 :IN,P7 :IN)
;Aufruf im Hauptlauf
INT P1,P2,P3,P4,P5,P6
BOOL P7
DECL E6POS P_REL
P_REL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,S ’H0’,T ’H0’,E1 0.0,E2 0.0,E3
0.0,E4 0.0,E5 0.0,E6 0.0}
P_REL.X=P1
P_REL.Y=P2
P_REL.Z=P3
P_REL.A=P4
P_REL.B=P5
P_REL.C=P6
IF P7 THEN
LIN_REL P_REL C_VEL
ELSE
LIN_REL P_REL
ENDIF
END
...

Die zugehörige VW_USER.INI sieht folgendermaßen aus


[Hauptgruppe0]
Titel = VW
Name = User
[P1]
Visible = TRUE
Num*n=X=*n [mm]
[P2]
Visible = TRUE
Num*n=Y=*n [mm]
[P3]
Visible = TRUE
Num*n=Z=*n [mm]

VKRC/ProgExperteR5.4 11.05.00 de 183 von 188


Programmierung Experte

[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]

184 von 188 VKRC/ProgExperteR5.4 11.05.00 de


10 USER (KRL--Funktionsaufruf mit Parameterübergabe) (Fortsetzung)

10.4.2 Übergabe von 3 Parametern

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:

VKRC/ProgExperteR5.4 11.05.00 de 185 von 188


Programmierung Experte

[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.

186 von 188 VKRC/ProgExperteR5.4 11.05.00 de


10 USER (KRL--Funktionsaufruf mit Parameterübergabe) (Fortsetzung)

10.4.3 KRL--Code im Programm


10.4.3.1 Allgemein
Das vom Anwender geteachte Programm ist um einiges umfangreicher, als es in der BOF
dargestellt wird. Sollen Programme direkt im KRL--Code (Kuka Robot Language), also ohne
Umweg über die BOF programmiert werden, so muß ein Wechsel auf die Expertenebene
stattfinden.
Um den Anwender vor sichtbarem KRL--Code zu “verschonen” wird ein spezielles Fold ge-
wählt, in dem der Experte seinen KRL--Code verstecken kann. Das Fold kann mit einem Titel
versehen werden und dem Anwender sichtbar gemacht werden. Dieses Fold wird bei der
Konvertierung der Programme ohne Änderungen übernommen. Gleichzeitig wird in der
$config.dat ein USER--Block zur Verfügung gestellt, welcher vom Experten geändert und er-
gänzt werden kann. Beim Softwaresetup wird dieser USER--Block ohne Änderungen in die
$config.dat übernommen.

10.4.3.2 Syntax des USER--Blockes

G Es ist nur ein USER--Block in $config.dat zulässig.


G Alle globalen Typ--und Variablendeklarationen des Experten müssen innerhalb des
USER--Blockes in die $config.dat eingetragen werden.
G Alle globalen Unterprogramm-- und Funktionsaufrufe müßen mit dem Präfix “VW_”
beginnen, zugehörige Vereinbarungen für globale Routinen müßen in der $config.dat
im USER--Block eingetragen werden.

10.4.3.3 Syntax des Experten--Folds


G Das Expertenfold ist durch die Anweisungen “;FOLD” und “;ENDFOLD” geklammert
G Nach dem Schlüsselwort FOLD folgt der anzuzeigende Titel des Folds, den der Anwen-
der sieht.
G Als Kennung für das Technologiepaket muß der String
<;%{PSE}%MKUKATPVW,%CUSER,%VEXPERT> an die Foldzeile angehängt wer-
den.

Beispiel:
;FOLD Schleife <; %{PSE}%MKUKATPVW,%CUSER,%VEXPERT
WHILE $IN[24] FALSE
$OUT[35]=TRUE
WAIT SEC 0.024
$OUT[35]=FALSE
ENDWHILE
;ENDFOLD

VKRC/ProgExperteR5.4 11.05.00 de 187 von 188


Programmierung Experte

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.

188 von 188 VKRC/ProgExperteR5.4 11.05.00 de


Index

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

VW System Software (VSS)


Release 5.4

Stand: 14.14.2005 Version: 00

VKRC/ApplikatR5.4 11.05.00 de 1 von 84


e Copyright 2005

KUKA Roboter GmbH


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

2 von 84 VKRC/ApplikatR5.4 11.05.00 de


Inhaltsverzeichnis

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 Standard-- Conveyor-- Betrieb mit VW_USER . . . . . . . . . . . . . . . . . . . . . . . . 38


2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1.1 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1.2 Funktionsbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1.3 Technische Gegebenheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2 Installation der Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2.1 CAN--Conveyor--Modul -- Anschluß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2.2 CAN--Conveyor--Modul -- Anschlüsse, Schalter, Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2.3 Grundeinstellungen und Anschlüsse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2.3.1 Funktionen der Schalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2.3.2 Versorgungsspannung Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

VKRC/ApplikatR5.4 11.05.00 de 3 von 84


Applikationen

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

4 von 84 VKRC/ApplikatR5.4 11.05.00 de


3.4.4 Warmfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4.5 Durchführung einer Meßfahrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4.6 Kurzanleitung zur Durchführung der Lastdatenermittlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.4.6.1 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.4.6.2 Start, Werkzeugart, Roboter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.4.6.3 Testfahrt, Warmfahren, Meßfahrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.4.7 Meßergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

VKRC/ApplikatR5.4 11.05.00 de 5 von 84


Applikationen

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.

6 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

Externe Achse konfigurieren


Wenn eine Servozange betrieben werden soll, muß hierzu eine externe Achse konfiguriert
werden. Die Konfiguration erfolgt beim Setup der VSS. Die Servozange kann als externe
Achse E1 (7. Achse) oder -- falls diese für eine andere Anwendung reserviert ist -- als externe
Achse E2 (8. Achse) betrieben werden.
Angezeigt werden die verfügbaren Zangen (in diesem Beispiel BAUTZ und RAGONOT), je-
weils mit dem Zusatz “..._E1” bzw. “..._E2”.

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

VKRC/ApplikatR5.4 11.05.00 de 7 von 84


Applikationen

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.

Maximal möglicher Strom

Strombegrenzung

Stromverlauf während
des Momentenbetriebs

Abb. 1 Stromkurve des Zangenantriebs

8 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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

Abb. 2 Schweißpunkt teachen

In diesem Beispiel soll der Punkt “P_Spot” überschliffen werden.

P1PTP P3 PTP

P2 Spot

Abb. 3 P_Spot

VKRC/ApplikatR5.4 11.05.00 de 9 von 84


Applikationen

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

10 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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

Motorstrom 7. Achse Motorstrom 7. Achse

Drehzahl 7. Achse Drehzahl 7. Achse

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

VKRC/ApplikatR5.4 11.05.00 de 11 von 84


Applikationen

In diesem Fall erfolgt eine Überschleifbewegung über “P_Spot” nach “P3”.

P1 PTP P3 PTP

P2 Spot

Abb. 8 Nächster Punkt...

Der Motorstrom und die Drehzahl der 7. Achse verhalten sich während des Vorgangs wie
im unteren Diagramm dargestellt:

Motorstrom 7. Achse Drehzahl 7. Achse

P_Spot P_Part P_Weld

Schweißstartsignal
P_Spot P1
Schweißendesignal

Abb. 9 Stromkurve des Zangenantriebs

12 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

Kraft

F5

F4
F3
F2

F1

Strom
I1 I2 I3 I4 I5

Abb. 10 Kraftkennlinie

VKRC/ApplikatR5.4 11.05.00 de 13 von 84


Applikationen

1.3 Inbetriebnahme
Neben dem Einrichten der Applikationssoftware müssen zum Betrieb verschiedene, soft--
und hardwarespezifische Einstellungen vorgenommen werden.

1.3.1 Konfiguration SERVO GUN Tech


Zum Einsehen oder Verändern der zangenspezifischen Daten stehen mehrere Displays zur
Verfügung. Zum Aufrufen dieser Displays öffnen Sie das Menü “Inbetriebn.” und wählen
den Befehl [Service > Servo--Zange] aus.

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.

Hier können Sie die Programmversion in Erfahrung bringen.

1.3.1.2 Laden und Sichern

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.

14 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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.

VKRC/ApplikatR5.4 11.05.00 de 15 von 84


Applikationen

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.

16 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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.

In diesen Productionscreen werden die Zangenparameter angezeigt (im Anwendermodus


in grauer Farbe).
Angezeigt werden die Parameter für
G PTP-- und LIN--Bewegungen, Motorparameter, Kraftkalibrierung sowie Maximalwerte.
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.

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!

VKRC/ApplikatR5.4 11.05.00 de 17 von 84


Applikationen

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

18 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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:

+ (positiv): Das Werkzeug--Koordinatensystem, dessen Ursprung auf der fixen Elektrode


liegt, zeigt mit der positiven Achse dem Elektrodenschaft entgegen.
-- (negativ): Das Werkzeug--Koordinatensystem, dessen Ursprung auf der fixen Elektrode
liegt, zeigt mit der Positiven Achse in Richtung Elektrodenschaft.
X: Die Arbeitsrichtung der Zange verläuft entlang der X--Achse.
Y: Die Arbeitsrichtung der Zange verläuft entlang der Y--Achse.
Z: Die Arbeitsrichtung der Zange verläuft entlang der Z--Achse.

Wurde das Werkzeug--Koordinatensystem wie in der Abbildung


dargestellt vermessen, muß als TCP--Stoßrichtung “--X” ange-
geben werden.
Bewegliche
Elektrode

Arbeitsrichtung

Fixe Elektrode Werkzeug--Koordinatensystem

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.

Dicke des Kraftmessers

VKRC/ApplikatR5.4 11.05.00 de 19 von 84


Applikationen

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!

20 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

1.3.4 Eingänge
Mit Hilfe dieses Displays verknüpfen Sie Funktionen mit bestimmten Eingängen.

Bei der Möglichkeit der Eingabe eines Wertebereichs (beispielsweise “Fehlermeldungen


82 bis 84” oder “Programmnummer 153 bis 160”) muß die kleinere Größe zuerst stehen
(vor “bis”).

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.

VKRC/ApplikatR5.4 11.05.00 de 21 von 84


Applikationen

1.3.5 Ausgänge
Mit Hilfe dieses Displays verknüpfen Sie Funktionen mit bestimmten Ausgängen.

Bei der Möglichkeit der Eingabe eines Wertebereichs (beispielsweise “Fehlermeldungen


82 bis 84” oder “Programmnummer 153 bis 160”) muß die kleinere Größe zuerst stehen
(vor “bis”).

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.

22 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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.

VKRC/ApplikatR5.4 11.05.00 de 23 von 84


Applikationen

1.3.7 Erstellen der Schweißprogramme


An dieser Stelle sind unter der betreffenden Programmnummer jeweils die Werte für die Ma-
terialdicke [mm] und die Schweißkraft [daN] einzutragen.

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.

Programmnummer 255 ist reserviert für das Kappenfräsen.


Siehe hierzu Kapitel [Programmierung Anwender -- Programmbefehle], Abschnitt [Ma-
kro--, Unterprogrammaufrufe, Zangenbefehle und SPSServo].

Im Feld “Dicke” wird die Materialdicke in Millimetern eingegeben.

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:

24 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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.

VKRC/ApplikatR5.4 11.05.00 de 25 von 84


Applikationen

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

Die Justage der Zange wird folgendermaßen durchgeführt:


Vergewissern Sie sich zunächst, daß die aufgesetzten Elektroden neu sind. Bereits be-
nutzte Elektroden dürfen nicht verwendet werden!

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.

Im Zustandsfenster werden die zu


justierenden Achsen angezeigt

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.

26 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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.

Nach jedem Justagevorgang muß eine Erstinitialisierung im manuellen Betrieb durchge-


führt werden.

VKRC/ApplikatR5.4 11.05.00 de 27 von 84


Applikationen

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.

Dicke des Kraftmessers

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.

28 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

Auf Dicke des Kraftmessers


geschlossene Zange

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.

VKRC/ApplikatR5.4 11.05.00 de 29 von 84


Applikationen

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.

1.3.9.2 Kalibrierung (VW_CAL)


Wählen Sie nun das Programm “VW_CAL” (im Verzeichnis .../R1/ServoGun) an und drük-
ken die Starttaste.
Befolgen Sie bitte die im Meldungsfenster erscheinenden Anweisungen.
Die Steuerung schließt mit fünf unterschiedlichen Strömen nacheinander die Zange. Notie-
ren Sie die jeweils am Kraftmesser angezeigten Kräfte.
Wählen Sie anschließend das Programm “VW_CAL” ab.

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).

30 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

1.3.9.3 Überprüfung der Kraftkalibrierung (VW_FORCE)


Mit Hilfe des Programms “VW_FORCE” können Sie eine Überprüfung der Kraftkalibrierung
vornehmen. Wählen Sie hierzu das Programm “VW_FORCE” (im Verzeichnis .../R1/Servo-
Gun) an.

Die ermittelten Werte der Kraftkalibrierung müssen im Display “Konfiguration”, Abschnitt


Abschnitt “Kraftkalibrierung” eingetragen und gespeichert worden sein.

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.

1.3.9.4 Durchbiegungskennlinie (VW_FLEX)


Die Durchbiegung einer Zange ist abhängig vom jeweiligen Produkt. Der Anwender muß da-
her die Durchbiegungskennlinie bei der Inbetriebnahme ermitteln. Für die Bauteilerkennung
ist die Durchbiegungskennlinie zwingend erforderlich, da ansonsten verfälschte Ergebnisse
die Folge sind.

Die ermittelten Werte der Kraftkalibrierung müssen im Display “Konfiguration”, Abschnitt


“Kraftkalibrierung” eingetragen sein.

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.

Die Ermittlung der Durchbiegungskennlinie ist nach jeder Kraftkalibrierung durchzuführen.

VKRC/ApplikatR5.4 11.05.00 de 31 von 84


Applikationen

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.

1.4.1.1 Konfigurieren der Schweißzange


Vor dem Öffnen und Schließen der Zange müssen die Werte für Schließkraft und Material-
stärke eingegeben werden. Das hierfür notwendige Zustandsfenster rufen Sie über die Me-
nüfunktion [Konfigur. > Ein/Ausgänge > Zange] auf.
In der Parameterliste wird zunächst die Zangennummer sowie der Typ “Servozange“ einge-
tragen. In dem Eingabefeld “Schließkraft” wird der entsprechende Wert eingetragen.

1.4.1.2 Öffnen und Schließen der Zange


Hierzu stehen zwei Möglichkeiten zur Verfügung:

Verfahrtasten
Vergewissern Sie sich, daß die Verfahrart “Handverfahren mit den Ver-
fahrtasten” sowie die externe Zusatzachse aktiviert sind.

Wird einer der Zustimmtaster gedrückt gehalten, steht die Achsverfahrta-


ste “E1” bzw. “E2” zur Verfügung. Anschließend kann die Zange manuell
verfahren werden.

Externe Achse bewegen (Zange öffnen/schließen)

Externe Achse “E1” aktiviert

Hierfür dienen die Statustasten “+” bzw. “--” neben der Achsverfahrtaste “E1” bzw. “E2”.

32 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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 Schließen der Zange

Öffnen der Zange auf die Po- Schließen der Zange und Auf-
sition vor dem Schweißen bau der eingestellten Kraft

Abb. 13 Zange manuell öffnen und schließen

1.4.1.3 Eingabe von Programmnummern


Die Schweißprogrammnummern (0 bis 254) werden in der Punkt--SPS “SPS--Servo” ange-
geben und an die Schweißsteuerung gesendet. Die jeweilige Programmnummer wird vom
ServoGun--Technologiepaket auf den im Productionscreen projektierten E/A--Bereich binär
ausgegeben.

Siehe hierzu Kapitel [Programmierung Anwender], Abschnitt [Programmbefehle].

VKRC/ApplikatR5.4 11.05.00 de 33 von 84


Applikationen

1.4.1.4 Positionskontrolle der Servozange


Die Prüfung der Servozange im Druckpunkt auf mechanische (Klemmen der Zange) oder
logische Fehler erfolgt mittels Positionierfenstern.
Liegt die Position der Zange im Druckpunkt außerhalb dieser Fensterbereiche, wird eine ent-
sprechende Fehlermeldung ausgegeben.
Sollen Positionsfehler im Schweißpunkt überwacht werden -- beispielsweise das Fehlen ei-
ner Schweißkappe -- kann im Display “Konfiguration” die Option “Kappen Kontrolle” aktiviert
werden.

1.4.1.5 Fahren ohne Bauteil


Durch Setzen des im Display “Konfiguration” projektierten Einganges “Fahrt mit/ohne Schlie-
ßen” kann das Bauteilprogramm ohne Schließen der Schweißzange simuliert werden.
Dabei werden die einzelnen Schweißpunkte mit Genauhalt angefahren.

1.4.1.6 Fahren ohne Strom


Durch Setzen des im Display “Konfiguration” projektierten Einganges “mit/ohne Schweiß-
strom” kann das Bauteilprogramm ohne Schweißstrom (“kalt”) simuliert werden.

34 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

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

Schweißstart Schweißende Zeit

Abb. 14 Zeitliche Abfolge beim Schweißen

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.

VKRC/ApplikatR5.4 11.05.00 de 35 von 84


Applikationen

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

Abb. 15 Elektroden positionieren

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”.

Position der beweglichen Elektrode

P3
P1

P2

PPart
PWeld

Roboterbewegung

36 von 84 VKRC/ApplikatR5.4 11.05.00 de


1 Servozange (Fortsetzung)

NOTIZEN:

VKRC/ApplikatR5.4 11.05.00 de 37 von 84


Applikationen

2 Standard-- Conveyor-- Betrieb mit VW_USER


2.1 Einleitung
2.1.1 Allgemein
Der Baustein “VW_USER” dient der Programmierung von translatorischen sowie rotatori-
schen Conveyor--Applikationen innerhalb des Softwarepaketes (V)KR C.... Diese Doku-
mentation enthält u. a.:
G Funktionsbeschreibung des Conveyor--Betriebs
G Technische Voraussetzungen und Gegebenheiten
G Inbetriebnahme, Vermessung der Conveyor--Basis
G Programmierung, Programmaufruf
G Softkeys, InLine--Formulare und Parameterlisten
G Speicherung der Koordinaten (Teachen)
G Fehlerdiagnose, Fehlermeldungen
Darüber hinausgehende Informationen, die zur Programmierung und Projektierung erforder-
lich sind, entnehmen Sie bitte den entsprechenden Dokumentationen.
Vorausgesetzt wird, daß der Anwender über ausreichende Kenntnisse in der Erstellung von
Bewegungs-- und Technologieprogrammen verfügt, die entsprechenden Programme gela-
den sind und das Robotersystem für den Produktionsbetrieb vorbereitet ist.

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.

2.1.3 Technische Gegebenheiten


Beachten Sie bitte bei der Conveyor--Programmierung grundsätzlich:
G Die Werkzeugdaten für die Werkzeuge 1 und 2 müssen gleich sein. Dies betrifft die Werte
für die Variablen “TOOL_DATA[1]” und “TOOL_DATA[2]” in der Datei “$CONFIG.DAT”.
G Es sind nur überschliffene CP--Bewegungen LIN, KLIN, CIRC oder KCIRC mittels Werk-
zeug 2 (TOOL_DATA[2]) möglich.
G Anweisungen wie z. B. das Setzen von Ausgängen und das Ausführen von Makros kön-
nen in der Betriebsart “Punkt SPS” mittels VW_USER--Befehl “P1=4” durch den Anwen-
der eingegeben werden. Weitere Anweisungen in der Punkt SPS sind nicht zulässig.
G Der letzte Bewegungsbefehl im VW_USER--Programm muß vom Förderband wegfüh-
ren, weil mit Beendigung der Synchronfahrt die Synchronisierung ausgeschaltet wird und
der Roboter kurz anhält. Anschließend kehrt die Steuerung in die Programmfolge zurück.

38 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

2.2 Installation der Hardware


2.2.1 CAN--Conveyor--Modul -- Anschluß
Nachstehend dargestelltes Schema zeigt den Anschluß des CAN--Conveyor--Moduls.
71--052--235

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

Inkremen-- X943.3 X943.2 X943.1 X942 X941


Initiator talgeber DeviceNet--Verteiler (Multipower Tap)
71--052--237

2.2.2 CAN--Conveyor--Modul -- Anschlüsse, Schalter, Anzeigen


In nachstehender Abbildung ist die Anordnung der Schalter, Anschlußstecker sowie Leucht-
dioden des CAN--Conveyor--Moduls dargestellt.

VKRC/ApplikatR5.4 11.05.00 de 39 von 84


Applikationen

Digitale Eingänge Spannungs--


DeviceNet
(nicht benutzt) versorgung

1 ST1 1 ST2 1 ST3

LED 1 2 3 4 5 6 (nicht benutzt)


Digital Input 1 ... 6

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

Hardwarestart für ENCODER 1 ENCODER 2


ENCODER 1 ENCODER 2

Für den VW_USER--Betrieb sind von Bedeutung:


G Schalter S1und S2
G Stecker ST1, ST3, ST4 und ST6
G LED 7, 9, 11, 13 und 14

2.2.3 Grundeinstellungen und Anschlüsse


Stellen Sie sicher, daß das CAN--Conveyor--Modul ordnungsgemäß installiert und ange-
schlossen ist. Kontrollieren Sie hierzu die Spannungsversorgung (ST3), die Anschlüsse zur
Robotersteuerung (DeviceNet--Stecker ST1), Initiator (ST4) sowie Inkrementalgeber (ST6).

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.

Vor Inbetriebnahme eines 5 V -- Encoders muß unbedingt die Versorgungsspan-


nung (Pin 3) des jeweiligen Encoders überprüft werden.
Siehe hierzu die Abschnitte 2.2.3.2 und 2.2.3.3 (”Stecker ST4 und ST5”).

2.2.3.1 Funktionen der Schalter

40 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

Schalter S1 -- Einstellen der Adresse MACID


Die Adresse “MACID” wird mittels der Schaltelemente 1 bis 6 an Schalter S1 eingestellt.

Schalterelement Adresse Für den Conveyor


Conveyor--Betrieb
Betrieb mit
6 5 4 3 2 1 MACID VW_USER muß die Adresse MACID =
60 eingestellt werden.
werden
0 0 0 0 0 0 0
Die eingestellte Adresse (MACID) muß
0 0 0 0 0 1 1 in die Datei “DEVNET.INI” (im
( Ver-
0 0 0 0 1 0 2 zeichnis
i h i ...\KRC\INIT)
\KRC\INIT) eingetragen
i
werden
werden.
...
1 1 1 1 0 0 60 7 2 1
1 1 1 1 0 1 61 8 6 5 4 3
1 1 1 1 1 0 62 O
1 1 1 1 1 1 63 N

Einstellen der Baudrate


Die Baudrate wird mittels den Schaltelementen 7 und 8 an Schalter S1 eingestellt.

Element Für den Conveyor--Betrieb mit


Baudrate VW USER muß die Baudrate
VW_USER
8 7 500 eingestellt werden.
0 0 125
7 2 1
0 1 250
1 0 500 8 6 5 4 3
1 1 Auto Detect wird nicht unterstützt O
N

VKRC/ApplikatR5.4 11.05.00 de 41 von 84


Applikationen

2.2.3.2 Versorgungsspannung Encoder


Mit den Schaltern S2 und S3 kann die Versorgungsspannung (5 V oder 24 V) für die Encoder
umgeschaltet werden. S2 schaltet die Spannung für Encoder 1 (ST6), S3 die Spannung für
Encoder 2 (ST7).

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)

Stecker ST2 -- Digitale Eingänge


Die digitalen Eingänge werden von der derzeitigen Software noch nicht unterstützt. Die Ein-
gänge Pin 1 bis 6 sind für 24 Volt DC ausgelegt, Pin 7 und 8 dienen als Masseanschlüsse.

Stecker ST3 -- Spannungsversorgung

Pin Signal
1 +24 V (Input)
2 Shield
3 GND

Stecker ST4 und ST5 -- Hardwarestart für Encoder

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.

Stecker ST6 und ST7 -- Encoder

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.

42 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

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.

LED Signal Beschreibung


Die jeweilige LED leuchtet, wenn der entsprechende Ein-
1...6 IN_1 ... IN_6
gang aktiviert ist (24 V).
Im Betriebszustand leuchtet diese LED grün, nach einem
Reset rot. LED7 leuchtet als einzige LED nach erfolgtem
7 HEALTH
Reset. Falls diese LED dauernd rot leuchtet, arbeitet das
Modul nicht.
8 Nicht benutzt Für künftige Zwecke reserviert
Im normalen Betriebszustand leuchtet diese LED grün und
9 COMMUNICATION blinkt bei Unterbrechung der Kommunikation mit der Robo-
tersteuerung.
10 Nicht benutzt Für künftige Zwecke reserviert
11 IN_SYNC1 LED zeigt den Zustand von ST4, Pin 1 an (Initiator).
LED zeigt den Zustand von ST5, Pin 1 an. Bei VW_USER
12 IN_SYNC2
nicht verwendet.
LED leuchtet, wenn am Encodereingang B (ST6, Pin 2) ein
13 IN_ENCO1_B
LOW--Pegel anliegt.
LED leuchtet, wenn am Encodereingang A (ST6, Pin 1) ein
14 IN_ENCO1_A
LOW--Pegel anliegt.
LED leuchtet, wenn am Encodereingang B (ST7, Pin 2) ein
15 IN_ENCO2_B
LOW--Pegel anliegt. Bei VW_USER nicht verwendet.
LED leuchtet, wenn am Encodereingang A (ST7, Pin 1) ein
16 IN_ENCO2_A
LOW--Pegel anliegt. Bei VW_USER nicht verwendet.

VKRC/ApplikatR5.4 11.05.00 de 43 von 84


Applikationen

2.3 Dateien für VW_USER


Für den Conveyor--Betrieb sind neben dem Grundsystem folgende Dateien notwendig:

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

44 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

2.4 Projektierung von Variablen, Eingängen und Ausgängen


In diesem Abschnitt werden erforderliche Einträge in Dateien sowie die Projektierung von
Variablen, Eingängen und Ausgängen beschrieben.

2.4.1 Eintrag der MACID in die Datei DEVNET.INI


Die eingestellte Adresse (MACID) muß in die Datei “DEVNET.INI” (im Verzeichnis ...PRO-
GRAMME\KRC\INIT) eingetragen werden. Wurde beispielsweise die Adresse “MACID” 60
eingegeben, lautet der Eintrag:
[1]
macid=60

2.4.2 E/A--Schnittstelle zum CAN--Conveyor--Modul -- IOSYS.INI


Die Kommunikation zwischen Robotersteuerung und CAN--Conveyor--Modul erfolgt über
Eingänge und Ausgänge der Robotersteuerung. Hierzu sind für das Conveyor--Modul in der
Datei “IOSYS.INI” innerhalb der Sektion [CAN] 5 Eingangsworte sowie 1 Ausgangswort fest-
zulegen.
In nachfolgendem Beispiel wurden für das Modul die Steuerungseingänge 17 bis 96 sowie
die Steuerungsausgänge 17 bis 32 definiert. Dies wird in der Datei “IOSYS.INI” wie folgt pro-
jektiert:
[CAN]
VORHANDEN=1
INW2=0 Datenwort 1, Zähler 1
INW4=2 Datenwort 2, Zähler 1
INW6=4 Datenwort 1, Zähler 2
INW8=6 Datenwort 2, Zähler 2
INW10=8 Statuswort Zähler 1 und Zähler 2
OUTW2=0 Steuerwort Zähler 1 und Zähler 2

2.4.3 Digitaleingang $DIGIN1 -- $MACHINE.DAT


In der Datei “$MACHINE.DAT” im Verzeichnis “...\PROGRAMME\KRC\MADA\STEU” wird
der Digitaleingang 1 “$DIGIN1” projektiert. Bei Zuweisung der Eingänge 17 ... 48 lautet der
Eintrag:
SIGNAL $DIGIN1 $IN[17] TO $IN[48] ;DIGITALEINGANG 1

2.4.4 Roboter arbeitet Programm ab -- $PRO_ACT


Mittels der Variablen “$PRO_ACT” wird der Ausgang für das Signal an die Betriebsmittel-
steuerung festgelegt, wenn der Roboter ein Programm abarbeitet.
Diese Variable muß in der Datei “$MACHINE.DAT” im Verzeichnis
“...\PROGRAMME\KRC\MADA\R1” entsprechend projektiert werden:
SIGNAL $PRO_ACT $OUT[160] ;PROZESS AKTIV

VKRC/ApplikatR5.4 11.05.00 de 45 von 84


Applikationen

2.4.5 Roboterüberwachung innerhalb Conveyor--Profil


Um die Gefahr einer Kollision des Roboters mit dem Conveyor zu minimieren, erfolgt durch
die Betriebsmittelsteuerung (BMS) eine Überwachung des Roboters, wenn dieser sich im
Profil des Conveyors befindet.
Hierzu werden seitens der Robotersteuerung Ausgänge gesetzt, welche durch die BMS ent-
sprechend verknüpft und überwacht werden. Dabei handelt es sich um folgende Signale:
Folgenstart Folgenende
Prozess aktiv
$PRO_ACT
($OUT[160])
Synchronisiersignal Ende Synchronfahrt
Synchronfahrt
($OUT[157])

Synchronfahrt nicht
($OUT[158])

46 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

2.4.6 Menügeführte Variablen--Anzeige und Wertzuweisung


Nachfolgend ist eine Reihe von Variablen mit den Werten für den Conveyor--Betrieb mit
VW_USER ausgeführt. Gegebenenfalls müssen Sie diese Einstellungen mittels der Menü-
funktion “Anzeige -- Variable -- Korrigieren” vornehmen bzw. prüfen.

Variable Wert Beschreibung


Synchronisiereingang
Hier wird die Eingangsnummer für das Synchronisiersi-
gnal festgelegt. Dieses Signal ist zum Start des Funkti-
onsgenerators der Steuerung erforderlich, um die Syn-
SYNCH_NO[1] 85 chronisierung mit dem Conveyor zu ermöglichen.
Mittels CAN--Conveyor--Modul wird das Signal des be-
dämpften Initiators im Statuswort zur Steuerung über-
tragen. Dabei ist der Eingang das 5. Bit des vom Con-
veyor--Modul übertragenen Statuswortes.
Rücksetzung Conveyor--Modul
COUNT_RESET[1] 17
Ausgang für die Rücksetzung des Conveyor--Moduls.
Freigabe Conveyor--Modul
COUNT_ENABLE[1] 18 Ausgang über den das Conveyor--Modul freigegeben
wird.
Roboter am Ende seines Arbeitsbereichs
OUT_STOP[1] 159 Ausgang zur Signalisierung des Erreichens der End-
stellung des Roboter--Arbeitsbereiches an die Betriebs-
mittelsteuerung (BMS).
Roboterweg zwischen Synchronisiersignal und
Endstellung
1600
ALARM_CONV[1] Kettenweg ab dem Synchronisiersignal, nach dessen
(default)
Erreichen durch den Roboter der Ausgang
“ALARM_STOP[1]” gesetzt wird.
Roboter in der Synchronphase
SYNCHRON[1] 157 Ausgang zur Signalisierung an die Betriebsmittelsteue-
rung (BMS), wenn sich der Roboter in der Synchron-
phase und somit im Profil der Kette befindet.
Roboter nicht in der Synchronphase
INV_SYNCHRON[1] 158 Ausgang zur Signalisierung des Zustandes der nicht
gegebenen Synchronphase an die BMS, wobei sich der
Roboter nicht im Profil der Kette befindet.
Roboterrichtung synchron zur Kette
COR_DIR[1] #X Festlegung der Richtung, in der sich der Roboter syn-
chron zur Kette bewegt.
Wegverstärkung
FOLL_VEL[1] 3.0 Beeinflußt das Nachführverhalten. Größere Werte füh-
ren zu härterer Nachführung.
Geschwindigkeitsverstärkung
FOLL_ACC[1] 3.0 Beeinflußt das Nachführverhalten. Größere Werte füh-
ren zu härterer Nachführung.

VKRC/ApplikatR5.4 11.05.00 de 47 von 84


Applikationen

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:

Kettenlauf-- P3 beliebig, je-


richtung min. doch nicht auf der
Weg Kette 50 mm Achse P1 -- P2
P3
P1 P1 P2
P1 P2

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.

48 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

1 Dialogfragen beantworten Sie durch Betätigen


des entsprechenden Softkeys.

2 Wählen Sie mittels Softkey die “FOLGE20” an, und betätigen


Sie die Start--Taste

Meldung “LINEAR_BASE ( )” zur Vermessung wird


aufgerufen.
TCP auf Messpunkt fahren ----> START
Der erste anzufahrende Meßpunkt (P1) ist beliebig wählbar.
3 Fahren Sie P1 an und betätigen Sie die START--Taste.

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:

Meldung Berechnung fertig!

Die Roboterkoordinaten aus dieser Vermessung werden in der Variablen “BASE_CONV[1]”


gespeichert.
2.5.2 Beziehung Zählerwert Inkrementalgeber -- Kettenweg -- CAL_DIG[1]
Die Variable “CAL_DIG[1]” beinhaltet einen Umrechnugsfaktor für die innerhalb eines be-
stimmten Kettenweges registrierten Impulse des Inkrementalgebers (Zählerwert) bzw. An-
zahl Umdrehungen des Gebers.
Für die Bestimmung müssen bekannt sein:
G Anzahl der Umdrehungen des Inkrementalgebers je Zeiteinheit bei einer definierten Ge-
schwindigkeit;
G Anzahl Impulse je Umdrehung.
Mit diesen Größen läßt sich der Wert für “CAL_DIG[1]” wie in folgendem Beispiel dargestellt
berechnen:
Umdrehungen je Minute: 41
Kettengeschwindigkeit: 16 m/min
Anzahl Impulse je Umdrehung: 20.000
Kettengeschwindigkeit [mm]
CAL_DIG[1] =
Umdrehungen je Minute ¯ Impulse je Umdrehung

16000
CAL_DIG[1] = = 0,0195
41 ¯ 20000

VKRC/ApplikatR5.4 11.05.00 de 49 von 84


Applikationen

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.

50 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

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:

Eingabefeld für Parame-


ter Conveyor--Betrieb

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.

VKRC/ApplikatR5.4 11.05.00 de 51 von 84


Applikationen

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:

Feld Wert Funktion


1 Initialisierung (CONVEYORINIT)
2 Programmbetrieb (CONVEYORON)
3 Teachen der Punkte im Programm VW_USER
P1 Aufruf zum Ausführen von “Punkt--SPS” während der Synchronfahrt
4
(z. B. “MAKRO31”)
5 Testbetrieb zur Überprüfung des Korrekturfaktors CAL_DIG[1]
6 Vermessung der Conveyor--Basis

52 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

2.6.2 Teachen der Bewegungen im Conveyor--Bereich


Das Teachen der Bewegungen im Conveyor--Bereich wird durch die VW_USER Anweisung
“P1=3” (siehe auch Abschnitt 2.6.1.2) aufgerufen.
Starten Sie diese Folge im T1--Modus (SStep (T1).
Fahren Sie den Roboter an den Punkt der Folge, an dem der VW_USER--Aufruf program-
miert wurde, in nachstehender Skizze als P8 bezeichnet.
Kettenlauf-- letzter Punkt im
richtung Conveyor--Bereich
P2 P3 P2 P3

P1 P1
P8 P4
P8 P8

IR IR IR

Zielpunkt letzte Bewe- Punkte im Conveyor-- Bewegung zum letzten


gung vor Conveyor Bereich (Beispiel) Punkt (P4) führt aus Con-
veyor--Bereich heraus

Bei Erreichen von P8 erscheint im Meldungsfenster die Meldung


Roboter wartet auf Synchronisation
und Kettenbewegung
Nach Erkennen dieser Signale erscheint die Meldung
Ermittl. d. Bandpos. - Warten auf Stopp

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.

VKRC/ApplikatR5.4 11.05.00 de 53 von 84


Applikationen

2.6.3 Nachteachen von Punkten


Das Nachteachen von Punkten erfolgt wie beim Teachen mittels Aufruf des Programms
“VW_USER” mit P1=3. Siehe hierzu Abschnitt 2.6.2.
Nach Erkennen von Synchronisiersignal und Kettenbewegung durch die Steuerung sowie
dem folgenden manuellen Anhalten des Conveyors können die programmierten Punkte in
VW_USER (UP CONV_MOV) angefahren werden. Sie können nun jeden einzelnen Punkt
korrigieren.
Zwecks Vermeidung des zu schnellen Abfahrens der “VW_USER”--Programmfolge sollten
die Punkte -- insbesondere der letzte Punkt -- nach erfolgter Satzanwahl angefahren werden.
Sie können auch die Programmlaufart von “#GO” in “#MSTEP” ändern.

54 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

2.7 Fehlersituationen und Fehlerbeseitigung


2.7.1 Roboterstörung
Wird der Roboter während der Synchronfahrt durch eine STOP--auslösende Meldung -- bei-
spielsweise “NOT--AUS”, “Antriebe aus”, “Passiver Stop”, “Stop durch Betriebsartenwech-
sel” -- angehalten, erfolgt auch ein Abbruch des Programmlaufs an der Kette (RESUME--An-
weisung). Zusätzlich zu der entsprechenden Systemmeldung erscheinen im
Meldungsfenster die Hinweise
Stoerung -- Roboter von Hand freifahren
Anschliessend Programmreset
Nach einer derartigen Störung führen Sie folgende Schritte aus:

1 Wechsel der Betriebsart nach “Handverfahren”

2 Quittieren der anstehenden Meldungen

3 Manuelles Freifahren des Roboters

4 Rücksetzen des Programms

Anfahren von P0 mittels Betätigung


5 der Starttaste
Fortsetzen des Programmlaufs bis zur Meldung
6 “Warte auf Folgenstart”

7 Wechsel der Betriebsart zurück nach “Automatik”

2.7.2 Fehlerdiagnose und Fehlerbeseitigung


Dieser Abschnitt beschreibt einige Fehlersituationen und gibt Hinweise zur Diagnose und
Fehlerbeseitigung.

2.7.2.1 Roboter wartet auf Synchronisation


Der Roboter wartet auf Synchronisation, obwohl die Kette Läuft und der Initiator bedämpft
wurde.

VKRC/ApplikatR5.4 11.05.00 de 55 von 84


Applikationen

Überprüfen Sie zunächst das CAN--Conveyor--Modul.


G Sind die Stecker ST1 (DeviceNet) und ST3 (Spannungsversorgung) korrekt eingesteckt?
G Leuchten die Anzeigen LED 7 (HEALTH) und LED 9 (COMMUNICATION) korrekt? Siehe
hierzu die Beschreibung in Abschnitt 2.2.3.4.

1 ST1 1 ST2 1 ST3

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

Hardwarestart für ENCODER 1


ENCODER 1

G Arbeitet das Conveyor--Modul im richtigen Modus?


Der Zustand ist über das Statuswort erkennbar, welches in den Steuerungseingängen 81
bis 96 abgebildet wird.

Eingang 81 == TRUE Modul zurückgesetzt (RESET)


Eingang 82 == TRUE Modul freigegeben (ENABLED)
Eingang 83 == TRUE Modul läuft (RUNNING)

Folgende Zustände werden durch Setzen der Steuerungsausgänge erreicht:

Ausgang 17 = TRUE Modul rücksetzen


Ausgang 17 = FALSE
Modul freigeben
Ausgang 18 = TRUE

G Ist der Steuerungseingang für das Synchronsignal richtig zugewiesen?


Prüfen Sie hierzu den Wert der Variablen “SYNCH_NO[1]”.
Informationen hierüber finden Sie in Abschnitt 2.4.6.
G Wurde der Digitaleingang korrekt projektiert?
Prüfen Sie den Eintrag “$DIGIN1” in der Datei “$MACHINE.DAT” im Verzeichnis
“...\PROGRAMME\KRC\MADA\STEU”.
Informationen hierüber finden Sie in Abschnitt 2.4.3.

56 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

2.7.2.2 Kette steht, Roboter nicht im Conveyor--Profil


Die Kette steht, wobei sich der Roboter nicht im Profil des Conveyors befindet.
Um die Gefahr einer Kollision des Roboters mit dem Conveyor zu minimieren, erfolgt durch
die Betriebsmittelsteuerung (BMS) eine Überwachung des Roboters, wenn dieser sich im
Profil des Conveyors befindet.
Hierzu werden seitens der Robotersteuerung Ausgänge gesetzt, welche durch die BMS ent-
sprechend verknüpft und überwacht werden. Die entsprechenden Variablen sind in der Ta-
belle in Abschnitt 2.4.6 beschrieben.
Prüfen Sie zunächst am Conveyor folgende Zustände:
G NOT--AUS des Conveyors nicht betätigt
G Fahrschalter für Kette nicht betätigt
Steht die Kette ohne ersichtlichen Grund, überprüfen Sie die Zustände der Steuerungsaus-
gänge, die bei laufender Kette wie folgt sein sollen:
Ausgang 157 = FALSE
Ausgang 158 = TRUE
Ausgang 159 = TRUE
Besteht der Fehler weiterhin, führen Sie einen Programm--Reset durch.

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.

VKRC/ApplikatR5.4 11.05.00 de 57 von 84


Applikationen

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.

58 von 84 VKRC/ApplikatR5.4 11.05.00 de


2 Standard--Conveyor--Betrieb mit VW_USER (Fortsetzung)

VKRC/ApplikatR5.4 11.05.00 de 59 von 84


Applikationen

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.

STRUC INERTIA REAL X, Y, Z


STRUC FRAME REAL X, Y, Z, A, B, C
STRUC LOAD REAL M, FRAME CM, INERTIA J
Dabei bedeuten:
$LOAD.M die Masse,
$LOAD.CM das Massenschwerpunktsframe im Flanschkoordinatensystem und
$LOAD.J die Hauptträgheiten.
Hierbei bedeutet die Verschiebung “CM.X”, “CM.Y” sowie “CM.Z” die Lage des Massen-
schwerpunkts. Die Drehung “CM.A”, “CM.B”, “CM.C” ist so gewählt, daß die Achsen des
um A, B und C gedrehten Flanschkoordinatensystems gerade die Hauptträgheitsach-
sen der Last sind. “J.X”, “J.Y” und “J.Z” sind die Trägheiten um diese Achsen.

60 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

Robotermodell und physikalische Situation


Die Planung optimaler PTP--Bewegungen erfolgt bei der VW--KUKA--Robotersteuerung mit
Hilfe eines Dynamikmodells, das PTP--Bewegungen zeitoptimiert berechnet. Dabei ist si-
chergestellt, daß die mechanischen Belastungsgrenzen des Roboters zu keiner Zeit über-
schritten werden.
Um für das höhere Fahrprofil die Beschleunigungsanpassung sowie für das absolutgenaue
Robotermodell die roboterspezifische Last beim Positionieren berücksichtigen zu können,
ist die Kenntnis von Masse und Schwerpunktlage der am Roboterflansch angebrachten Last
von Bedeutung.
Mit Hilfe des Robotermodells kann beispielsweise das Motormoment (analog die Stromauf-
nahme) als eine Funktion von Position, Geschwindigkeit und Beschleunigung dargestellt
werden. Diese Funktion ist von mehreren Parametern abhängig.
Neben Daten der Robotermechanik--Komponenten spielen hierbei die Lastdaten eine wich-
tige Rolle. Die korrekte Angabe der Last ist dabei entscheidend für die Übereinstimmung des
Modells mit der jeweils gegebenen physikalischen Situation und somit für die Qualität der
Berechnung.

Ermittlung der Daten


CAD--Systeme erlauben zwar die relativ genaue Ermittlung des Schwerpunkts sowie der
Trägheiten, jedoch erfordert dies eine exakte Modellierung der Last im CAD--System, was
zeitraubend und teuer ist.
Daher wurde eine Methode entwickelt, mit der die Lastdaten mit Hilfe des Roboters automa-
tisch ermittelt werden können. Hierbei werden spezielle Meßbewegungen mit der ange-
brachten Last abgefahren und die daraus resultierenden Motorströme aufgezeichnet. An-
hand des Robotermodells ist damit eine hinreichend genaue Definition der Lastparameter
möglich.
Die Masse des am Roboterflansch angebrachten Werkzeugs wird vom Programm identifi-
ziert. Ein Wiegen des kompletten Werkzeugs vor Montage am Roboterflansch ist im Gegen-
satz zu früheren Software--Versionen ab der Version 3.0 nicht mehr erforderlich.
Die Version 4.0 bietet die Auswahlmöglichkeit, die Traglast automatisch ermitteln zu lassen
(falls die Zusatzlast der Achse 3 bekannt oder nicht vorhanden ist) oder diese manuell einzu-
tragen.

Grenzen dieser Methode der Lastdatenermittlung


Diese Methode der Lastermittlung wird bei entsprechender Konfigurierung in der Regel hin-
reichend genaue Ergebnisse liefern. Dennoch gibt es gewisse Einschränkungen, die Sie be-
achten sollten:
G Die Durchführung einer Meßfahrt setzt voraus, daß der Roboter betriebswarm ist, sonst
besteht das Risiko, daß die ermittelten Daten nicht den tatsächlichen Bedingungen ent-
sprechen. Dabei ist ausreichend, wenn vor einer Meßfahrt zwei Testfahrten durchge-
führt werden.
Im KRL--Programm wird neben den Softkeys “Test” und “Messung” zusätzlich ein Soft-
key “Warmfahren” angeboten. Mit Hilfe dieses Modus kann der Roboter (Motoren und
Getriebe) auf die entsprechende Temperatur erwärmt werden.
Der Roboter fährt eine Pendelbahn, welche den angegeben Winkeleinstellungen ent-
spricht.

VKRC/ApplikatR5.4 11.05.00 de 61 von 84


Applikationen

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

Technolgiepakete und Zusatzprogramme werden als nachladbare Software--Module


angeboten. Diese werden auf CD als Datenträger zur Verfügung gestellt.
Installation, Deinstallation, Reinstallation und Update von Technologiepaketen sind in
der Dokumentation [Installation/Deinstallation/Update TechPakete] detailliert be-
schrieben.

62 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

3.1.4 Zusätzlicher Menüpunkt “Lastdatenermittlung”


Nach erneutem Hochlauf der Robotersteuerung finden Sie im Menü [ Inbetriebn. > Service ]
den neuen Menüpunkt [ Lastdatenermittlung ].
Inbetriebn. Vermessen DSE--RDW
Justieren CELL--Konfiguration
Dejustieren Softwareenschalter
Software--Update Langtext
Service Lastdatenermittlung
Roboterdaten Achskonfigurator
Zusatzsoftware inst. Altes Archiv laden
Netzwerk--Setup
MakroMaker

Abb. 16 Menü “Service”

VKRC/ApplikatR5.4 11.05.00 de 63 von 84


Applikationen

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.

64 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

3.2.2 Funktionen der Status-- und Softkeys


Die in der Eingabemaske verfügbaren Status-- und Softkeys haben folgende Funktionen:
Mit den Statuskeys [ + ] bzw. [ -- ] kann der Wert in dem Eingabefeld, das den
Fokus hat, erhöht bzw. verringert werden.
Werte in den Eingabefeldern können auch direkt über die Tastatur eingege-
ben werden.

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.

Dieser Statuskey gestattet ein Umschalten der Sprache. Es stehen Deutsch


und Englisch zur Verfügung. Beim Umschalten werden nur die statischen
Texte sofort in der ausgewählten Sprache angezeigt; die dynamisch erzeug-
ten Texte im Informationsfenster bleiben unverändert, erst neue Texte wer-
den in der aktuell ausgewählten Sprache angezeigt.
Mit diesem Softkey [Datei laden] öffnen Sie in der Eingabemaske ein Aus-
wahlmenü, aus dem Sie -- wenn vorhanden -- eine im Verzeichnis “...\ RO-
BOTER\ IR_SPEC\ IDF” gespeicherte Datei mit Konfigurationseinstellun-
gen auswählen können. Bei erstmaligem Betätigen dieses Softkeys wird
rechts oben ein Auswahlmenü eingeblendet, welches die in diesem Ver-
zeichnis enthaltenen *.IDF--Dateien anzeigt. Mit Hilfe der Cursortasten und
Betätigung der Eingabetaste können Sie eine Datei auswählen.
So lange dieses Auswahlfenster geöffnet ist, können Sie durch nochmaliges Betätigen des
Softkeys [Datei Laden] ein Menü öffnen, das die Auswahl von *.IDF--Dateien auch aus ande-
ren Verzeichnissen ermöglicht.

Der Softkey [ Robotertyp ] erlaubt eine Änderung des eingestellten Roboter-


typs, welcher nach Aufruf des Programms im Info--Fenster angezeigt wird.
Mit Betätigung dieses Softkeys wird ein Auswahlmenü geöffnet.
Mit Betätigen des Softkeys [ Lese Achse ] wird der aktuelle Achswinkel in
das Eingabefeld, welches den Fokus hat (blau unterlegt), übernommen.

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.

VKRC/ApplikatR5.4 11.05.00 de 65 von 84


Applikationen

Mittels Softkey [ BOF ] wird am (V)KCP wieder die normale Bedienoberflä-


che angezeigt. Das Meß--Programm wird dabei nicht beendet. Über den Be-
fehl [ Inbetriebn. > Service > Lastdatenermittlung ] gelangen Sie wieder in
das Meßprogramm.
Ein Betätigen des Softkeys [ Programm--Ende ] beendet das Meßpro-
gramm.

66 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

3.3 Konfigurieren des Meßvorgangs


3.3.1 Auswahl des Roboters
Für die Lastermittlung ist die korrekte Angabe des Robotertyps erforderlich, da ein roboter-
spezifischer Parametersatz verwendet wird. Beim Start des Programms “MassIden.exe”
wird der Robotertyp aus den Maschinendaten ausgelesen.
Falls der Robotertyp bekannt ist, wird dieser im Info--Bereich angezeigt.
Wird der Robotertyp nicht erkannt, fehlt der Eintrag des Roboters in der Datei “Ident.ini”. In
diesem Falle erscheint im Info--Bereich eine entsprechende Meldung. Dazu wird eine Aus-
wahlliste mit allen bekannten Robotertypen angezeigt.

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!

VKRC/ApplikatR5.4 11.05.00 de 67 von 84


Applikationen

3.3.2 Vorhandene Datei laden


Mit dem Softkey [ Datei Laden] können Sie nach Start des Meßprogramms eine gespei-
cherte “*.IDF”--Datei laden. Siehe hierzu Abschnitt 3.3.6.
In der Eingabemaske öffnet sich ein Auswahlmenü, in dem alle im Verzeichnis “...\ ROBO-
TER\ IR_SPEC\ IDF” gespeicherten Dateien mit den Dateinamen “*.IDF” angezeigt werden.
Das Info--Bereich im unteren Bereich der Eingabemaske zeigt diverse Eigenschaften der
Datei, welche im Auswahlmenü den Fokus hat.

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.

3.3.3 Bewegungsbereiche der Achsen


3.3.3.1 Konfigurieren der Bewegungsbereiche
Nach Programmstart werden die voreingestellten Grundachsstellungen für die Achsen 1 und
2 sowie die Bewegungsbereiche für Achse 3 und die Handachsen A4, A5 und A6 angezeigt.

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.

68 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

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.

Minimale Werte für die Winkelbereiche:


-- Winkelbereich A3 min. 5 Grad; zum Beispiel: [90,95]
-- Winkelbereich A4, A6 min. 200 Grad; zum Beispiel: [--100,100]
-- Winkelbereich A5 min. 60 Grad; zum Beispiel: [--30,30]

Maximal--Wert
-- Winkelbereich A3 max. 10 Grad; zum Beispiel: [90,95]

Optimale Werte für die Winkelbereiche:


-- Winkelbereich A3 [90,95]
-- Winkelbereich A4, A6 [--300,300]
-- Winkelbereich A5 [--60,60]

Beachten Sie bei der Eingabe folgende Punkte:


G Der Bewegungsbereich der Achse A3 muß 5 Grad sein.
G Die Bewegungsbereiche der Handachsen A4, A5 und A6 sollten -- soweit gegebene
Arbeitsraumbeschränkungen dies zulassen -- so eingestellt werden, daß jede Achse
einen möglichst großen Bewegungsbereich hat und insgesamt ein möglichst großer
Bereich abgefahren wird.
G Falls die Achsbewegung für eine der Handachsen kleiner als 20 Grad ist, kann keine
Lastermittlung durchgeführt werden.
G Die sog. “Kerzenstellung”, also die reine Vertikalstellung der Grundachsen A2 und
A3, sollte vermieden werden, weil “Schwerkrafteffekte” in dieser Position nur geringe
Wirkung haben. Die Winkelsumme der Achsen 2 und 3 wird vom Programm über-
prüft.
G Berücksichtigen Sie bei der Festlegung der Stellung bzw. der Bewegungsbereiche
eventuell gegebene Arbeitsraumbeschränkungen, um Kollisionen des Roboters mit
in dessen Bewegungsbereich befindlichen Hindernissen sicher zu vermeiden.

Fehlerhafte Eingaben werden in roter Schrift dargestellt.


Zusätzlich erscheint im Textfenster eine entsprechende Meldung.

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.

VKRC/ApplikatR5.4 11.05.00 de 69 von 84


Applikationen

3.3.4 Prüfung der Achsbereiche


Bei der Eingabe der Achsbereiche werden folgende Kriterien geprüft:
G Winkelsumme der Achsen 2 und 3 (Mittelwert der eingegebenen Werte)
-- |A2 + A3| < 10 Grad Boden-- oder Deckenroboter
-- |A2 + A3 + 90| < 10 Grad Wandroboter

G Minimale Winkelbereiche für die einzelnen Achsen


-- A3 5 Grad
-- A4 200 Grad
-- A5 60 Grad
-- A6 200 Grad

G Der Winkelbereich muß > 20 Grad sein.

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.

70 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

3.3.6 Speicherung der Einstellungen


Der Softkey [ Datei Speichern ] dient zum Speichern der vorgenommenen Einstellungen.
Nach Betätigen dieses Softkeys haben Sie die Möglichkeit, einen Kommentar einzugeben.

Abb. 21 Optionaler Kommentar

Betätigen Sie die Eingabetaste, worauf sich das Dialogfenster für Pfad und Dateiname öff-
net.

Abb. 22 Dialogfenster “Speichern”

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.

VKRC/ApplikatR5.4 11.05.00 de 71 von 84


Applikationen

Das voreingestellte Zielverzeichnis kann beliebig geändert werden. Angezeigt werden


standardmäßig nur *.IDF--Dateien.

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.

72 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

3.4 Durchführung der Lastdatenermittlung


Nach Definition des Arbeitsraums wird das eigentliche Identifikationsprogramm gestartet.

-- Wählen Sie hierzu die Betriebsart T1, T2 oder Automatik.


-- Die Durchführung einer Meßfahrt setzt voraus, daß der Roboter betriebswarm ist,
sonst besteht das Risiko, daß die ermittelten Daten nicht den tatsächlichen Bedingun-
gen entsprechen. Dabei ist ausreichend, wenn vor einer Meßfahrt zwei Testfahrten
durchgeführt werden; die erste dient zum Prüfen, ob die Pendelbahn frei von Hinder-
nissen ist (Crashgefahr), die zweite wird mit 100 Prozent Override gefahren. Siehe
auch Abschnitt 3.4.6 in dieser Dokumentation.
-- Meßfahrten können nicht in der Betriebsart T1 und/oder einem Override < 50 %
durchgeführt werden.

3.4.1 Start der Lastdatenermittlung


Wählen Sie aus, ob die Masse der Traglast automatisch ermittelt werden soll oder nicht.
Betätigen Sie zum Start den Softkey [ Identifikation ]. Folgendes Dialogfenster wird geöffnet:

Abb. 23 Dialogfenster “Speichern”

Mit [ Ja ] (Voreinstellung) wird die Masse der Traglast automatisch ermittelt.

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.

VKRC/ApplikatR5.4 11.05.00 de 73 von 84


Applikationen

3.4.1.1 Masse der Traglast automatisch ermitteln


Wurde die automatische Ermittlung der Masse der Traglast ausgewählt, öffnet sich das
nächste Dialogfenster. Geben Sie hier an, ob eine Zusatzlast an Achse 3 montiert ist.
Wenn auf Achse keine Zusatzlast angebracht ist, beantworten Sie diese Frage mit “Nein”
(Voreinstellung). Betätigen Sie hierzu die Eingabetaste.
Bei vorhandener A3--Zusatzlast wählen Sie “Ja” aus.
Zur Eingabe der Daten der Zusatzlast wird ein neues Fenster geöffnet.

Abb. 24 Zusatzlast eingeben

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.

Die Werte werden nicht in der Datei “$Config.dat” gespeichert.


Beachten Sie, daß falsche Zusatzlastdaten zu Ungenauigkeiten und Abweichungen
bei der Ermittlung der Lastdaten führen!
Wenn Sie Werte verändert haben, betätigen Sie [ OK ]. Die neuen Werte werden übernom-
men. Mit der Taste [ Cancel ] oder der ESC--Taste brechen Sie die Eingabe ab, wobei die
ursprünglichen Werte beibehalten werden. Das Fenster “Eingabe!” wird geschlossen.

74 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

3.4.1.2 Masse der Traglast manuell eintragen


Wurde die Frage, ob die Masse der Traglast automatisch ermittelt werden soll, mit “Nein”
beantwortet, wird folgendes Dialogfenster geöffnet:

Abb. 25 Traglast manuell eingeben

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.

VKRC/ApplikatR5.4 11.05.00 de 75 von 84


Applikationen

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”.

Die Systemprogramme “$D_IDENT.SRC” bzw. “$E_IDENT.SRC” dürfen niemals


verändert werden!

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 ?”.

76 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

Abb. 26 Test / Warmfahren / Meßfahrt

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.

Es wird dringend empfohlen, zunächst eine Testfahrt durchzuführen, um bei


der eigentlichen Meßfahrt mögliche Kollisionen mit Hindernissen innerhalb
des Arbeitsbereiches sicher zu vermeiden.

Falls das Identifizierungsprogramm nicht gestartet werden kann -- z. B. aufgrund feh-


lender Software--Module oder fehlerhafter Konfigurierung -- erscheint im Info--Feld der
Eingabemaske eine entsprechende Meldung.
In den Abschnitten 3.1.3 und 3.3 finden Sie Informationen über die erforderliche Soft-
ware und Einstellungen, das Programm “MassIden” und die Bedienelemente sind in
Abschnitt 2 beschrieben.

VKRC/ApplikatR5.4 11.05.00 de 77 von 84


Applikationen

3.4.3 Durchführung einer Testfahrt


Zur Testfahrt betätigen Sie den Softkey [ Test ]. Wahrend einer Testfahrt ist eine Regelung
des Override möglich. Bei T2--Betrieb beträgt der Anfangs--Override 10%. Dieser Wert kann
verändert werden.
Nach Beendigung der Testfahrt können Sie wieder zwischen Test--und Meßfahrt wählen.
Diese Abfrage erfolgt solange, bis entweder der Softkey [ Messung ] gewählt wird oder mit
Softkey [ Programm--Ende ] die Messung abgebrochen wird.

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.

3.4.5 Durchführung einer Meßfahrt


Mittels Softkey [ Messung ] starten Sie die Meßfahrt. Bitte beachten Sie hierbei:

G Reine Meßfahrten können nicht in der Betriebsart “T1” durchgeführt werden.


G Während einer Meßfahrt ist keine Regelung des Override möglich.
G Bei Unterbrechung der Meßfahrt durch den Benutzer oder durch das Programm wird
der Zyklus als Testfahrt zu Ende geführt.
G Meßfahrten können nur mit einem Override > 50 % durchgeführt werden. Geringere
Geschwindigkeiten würden keine verwertbaren Ergebnisse liefern. Im Interesse eines
möglichst genauen Meßergebnisses sollte -- wenn die Konfiguration dies zuläßt -- mit
100 % Override gefahren werden.
Bei einem Override < 100 % erscheint im Meldungsfenster ein entsprechender Hin-
weis.

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.

78 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

3.4.6 Kurzanleitung zur Durchführung der Lastdatenermittlung


Dieser Abschnitt enthält eine Kurzanleitung zur Durchführung der Lastdatenermittlung. Als
Werkzeug wird bei diesem Beispiel eine Schweißzange verwendet.

2
1
3

(1) Schweißzange.
(2) Schlauchpaket das an der Schweißzange montiert ist.
(3) Roboterhand.

Abb. 27 Schweißzange mit Schlauchpaket

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.

Die Elektroden der Schweißzange sowie andere gegebenenfalls am Werkzeug befindliche


nicht hinreichend fixierte Teile sind mittels geeigneter Hilfsmittel (zum Beispiel Fixierbän-
der) gegen Eigenbewegung zu stabilisieren.
Nietzangen mit pneumatischem Ausgleich müssen während des Pendelns mit Luftdruck
beaufschlagt werden. Diese Druckluftversorgung (Schlauch) muß also am Werkzeug ver-
bleiben. Alle anderen gegebenenfalls vorhandenen Versorungsleitungen zum Werkzeug
sind jedoch zu entfernen.

VKRC/ApplikatR5.4 11.05.00 de 79 von 84


Applikationen

3.4.6.2 Start, Werkzeugart, Roboter


Starten Sie das Programm der Lastdatenermittlung über den Befehl [ Inbetriebn. > Service
> Lastdatenermittlung ].

Massen, kleiner als 40 Prozent der Nennlast des Roboters


Bei Traglasten, die kleiner als 40 Prozent der Nenntraglast sind, gehen Sie wie folgt vor:
G Wiegen Sie das Werkzeug oder entnehmen Sie den Wert der Masse aus dem Daten-
blatt;
G Ermitteln Sie den Schwerpunkt des Werkzeugs (X, Y, Z).

Öffnen Sie über den Befehl [ Inbetriebn. > Vermessen > Werkzeug > Werkzeuglastdaten ]
das entsprechende Dialogfenster.

Abb. 28 Dialogfenster “Werkzeuglastdaten”

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.

80 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

Massen, größer als 40 Prozent der Nennlast des Roboters


G Wählen Sie den Robotertyp aus.
G Nehmen die Winkeleinstellungen vor; Wählen Sie hierzu die Einstellungen der Datei
“Default.idf”.

Der Winkelbereich für Achse A3 darf nur 5 Grad betragen.

G Legen Sie die Werkzeugart (Kompakt, Normal, Groß) fest.

Abb. 29 Massen über 40 Prozent der Nennlast

3.4.6.3 Testfahrt, Warmfahren, Meßfahrt


Das Warmfahren ist nur bei kaltem Roboter erforderlich.
Die Zeitdauer dieser Prozedur läßt sich durch zwei aufeinanderfolgende Testfahrten verrin-
gern. Dabei dient die erste Testfahrt zum Prüfen, ob die Pendelbahn frei von Hindernissen
ist (Crashgefahr); die zweite wird mit 100 Prozent Override gefahren.
Danach wird die eigentliche Meßfahrt durchgeführt.

VKRC/ApplikatR5.4 11.05.00 de 81 von 84


Applikationen

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.

82 von 84 VKRC/ApplikatR5.4 11.05.00 de


3 Lastdatenermittlung (Fortsetzung)

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.

Zum Beenden des Meßprogramms betätigen Sie im Haupt--Programmfen-


ster den Softkey [ Programm--Ende ].

VKRC/ApplikatR5.4 11.05.00 de 83 von 84


Applikationen

84 von 84 VKRC/ApplikatR5.4 11.05.00 de


Index

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

VW System Software (VSS)


Release 5.4

Stand: 14.11.2005 Version: 00

VKRC/AnhangPHR5.4 11.05.00 de 1 von 3


e Copyright 2005

KUKA Roboter GmbH


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

2 von 3 VKRC/AnhangPHR5.4 11.05.00 de


Inhaltsverzeichnis

1 Glossar --> siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Historie Programmierhandbuch von V3.3 Rev. 02 - > V5.3 . . . . . . . . . . . 4


2.1 Einleitung --> Siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Bedienung --> siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Inbetriebnahme --> siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 Programmierung Anwender --> siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6 Programmierung Experte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7 Applikationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.8 Anhang Programmierhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Gesamtindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

VKRC/AnhangPHR5.4 11.05.00 de 3 von 3


Anhang

1 Glossar - > siehe Bedienhandbuch


2 Historie Programmierhandbuch von V5.3 - > V5.4

2.1 Einleitung --> Siehe Bedienhandbuch

2.2 Bedienung --> siehe Bedienhandbuch

2.3 Inbetriebnahme --> siehe Bedienhandbuch

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”

System konfigurieren Experte

Automatik Extern

2.5 Programmierung Anwender --> siehe Bedienhandbuch

2.6 Programmierung Experte


Allgemeines zu KRL--Programmen
G Neuer Abschnitt “Wechsel der Programmablaufart”
G Neuer Abschnitt “Punkt wird mit falschem Base aufgerufen
G Neuer Abschnitt “Doppeldeklarationen”

Variablen und Vereinbarungen


G Neuer Abschnitt “Globale Strukturen, Typen und Variablen”

Bewegungsprogrammierung
G Korrekturen zu den Singularitäten

Programmablaufkontrolle

4 von 3 VKRC/AnhangPHR5.4 11.05.00 de


2 Historie Programmierhandbuch von V5.3 --> V5.4 (Fortsetzung)

Ein--/Ausgabeanweisungen

Unterprogramme und Funktionen

Interrupt--Behandlung

Trigger -- Bahnbezogene Schaltaktionen


G Ergänzungen zum Trigger

Datenlisten

VW_USER
G Ergänzungen zu Haupt-- und Untergruppen

2.7 Applikationen
ServoGun

Conveyor

Lastdaten
G Neuer Abschnitt “Lastdatenermittlung”

2.8 Anhang Programmierhandbuch


Glossar

Historie
G Die Datei, welche Sie gerade lesen...

Gesamtindex
G Aktualisierte Version

VKRC/AnhangPHR5.4 11.05.00 de 5 von 3


Anhang

6 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex

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

VKRC/AnhangPHR5.4 11.05.00 de 7 von 3


Anhang

$PRO_ACT: Applikationen 45, 46


$PRO_MODE: Prog. Experte 14
$RED_T1: Konfiguration 65
$ROBCOR.DAT: Konfiguration 69
$SINGUL_POS[3]: Prog. Experte 75, 76
$STROBE: Prog. Experte 135
$TOOL: Konfiguration 26
$TORQ_DIFF: Konfiguration 70
$TORQ_VEL[]: Konfiguration 65, 68
$TORQMON_COM: Konfiguration 70
$TORQMON_COM_DEF: Konfiguration 70
$TORQMON_TIME: Konfiguration 69
$TORQUE_AXIS: Konfiguration 65, 67
$USER_SAF: Konfiguration 76
$VEL_AXIS: Prog. Experte 63

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

8 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Abwählen: Prog. Anwender 22


ACC: Prog. Anwender 40, 44, 47, 49, 50
Achse dejustieren: Inbetriebnahme 24
Achse mit definiertem Moment: Konfiguration 66
Achsjustage mit dem EMT: Inbetriebnahme 10
Achsjustage mit dem KR3: Inbetriebnahme 22
Achsjustage mit der Meßuhr: Inbetriebnahme 8
Achskonfigurator: Bedienung 192; Inbetriebnahme 103
Achsspezifisch: Bedienung 34, 129, 183
Achsspezifische Istwerte: Applikationen 27
Achsspezifisches Koordinatensystem: Bedienung 33, 46, 56; Prog. Experte 55
Achsverfahrtasten: Inbetriebnahme 32
Achtung: RobSysEinleitung_11.04_00 7
ACOS(x): Prog. Experte 48
Adaptierung: Sicherheit KRC (10.00.03) de 19
Aggregate: Prog. Experte 32
Aktionsplaner: Bedienung 179
Aktuelle Auswahl: Bedienung 162
Aktueller Wert: Bedienung 136
ALARM_CONV[1]: Applikationen 47
Allgemein: Konfiguration 63
Allgemeine Sicherheitsvorschriften: Sicherheit KRC (10.00.03) de 8
ALT---Taste: Bedienung 23
Alternatives Bussegment: Konfiguration 8
Altes Archiv laden: Bedienung 193; Inbetriebnahme 114
Amplitude: Prog. Anwender 98
Ana konst: Bedienung 197; Prog. Anwender 84
Ana kst+p: Bedienung 197; Prog. Anwender 88
Ana vprop: Bedienung 197; Prog. Anwender 85
ana/BS/Pnd: Prog. Anwender 90, 98
Analog---Ausgänge: Prog. Anwender 26
Analog---Eingänge: Prog. Anwender 26
Analogausgabe: Prog. Anwender 83
Analoge E/A: Bedienung 119, 182
Analoge Spannungen: Prog. Anwender 83
Analogkanäle: Prog. Anwender 83
Analogspannung: Prog. Anwender 84
Analyse Rekonfigurieren: Bedienung 179; Konfiguration 49
Anbau: Sicherheit KRC (10.00.03) de 19
Änderungen oder Einträge erforderlich: RobSysEinleitung_11.04_00 8
Änderungen oder Einträge nicht zulässig: RobSysEinleitung_11.04_00 8

VKRC/AnhangPHR5.4 11.05.00 de 9 von 3


Anhang

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

10 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Ausblenden von Bits: Prog. Experte 46


Ausgang für Freigabe Conveyor---Modul --- COUNT_ENABL: Applikationen 47
Ausgänge: Bedienung 118; Prog. Anwender 26, 90, 94
Ausgangsvorbesetzung: Sicherheit KRC (10.00.03) de 20
Ausschalten PowerOff Wartezeit: Konfiguration 18
Ausschneiden: Bedienung 86; Prog. Anwender 8
Außenlüfter Steuerschrank: Konfiguration 72
Außerbetriebnahme: Sicherheit KRC (10.00.03) de 22
Austausch: Sicherheit KRC (10.00.03) de 8
Austauscharbeiten: Sicherheit KRC (10.00.03) de 22
Auswahl der Pendelfigur: Prog. Anwender 98
Auswahl des Roboters: Applikationen 67
Auswahlliste: Bedienung 59, 65
Automatik Extern: Bedienung 43, 124, 177; Inbetriebnahme 97; Konfiguration 12
Automatik---Extern---Ausgänge: Konfiguration 76
Automatik---Extern---Eingänge: Konfiguration 77
Automatikbetrieb: Konfiguration 76; Applikationen 78
Automatischer Anlagen---Hochlauf: Konfiguration 81
Automatischer Programmablauf: Bedienung 113

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

VKRC/AnhangPHR5.4 11.05.00 de 11 von 3


Anhang

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

12 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Bit---Operatoren: Prog. Experte 45


Blickkontakt: Sicherheit KRC (10.00.03) de 11
Blockkennung: Prog. Experte 110
BMS: Konfiguration 77
Bodenmontage: Konfiguration 63
BOF: Bedienung 25
BOF Reinitialisieren: Bedienung 179; Konfiguration 49
BOOL: Prog. Experte 25, 27
bool‘sche Konstante: Prog. Anwender 26
Bool‘scher Operand: Prog. Anwender 26
Bool‘scher Operator: Prog. Anwender 26
BRAKE: Prog. Experte 156
Bremsrampe: Bedienung 99
BS A/F: Bedienung 197; Prog. Anwender 94
BS bin/ana: Bedienung 197; Prog. Anwender 96
Busdiagnose: Bedienung 185

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

VKRC/AnhangPHR5.4 11.05.00 de 13 von 3


Anhang

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

14 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Detailansicht: Bedienung 61, 179; Konfiguration 20


Detailinformationen: Inbetriebnahme 78
DeviceNet: Applikationen 42
DEVNET.INI: Applikationen 45
Diagnose: Bedienung 139
DIG: Prog. Experte 46
DIGIN ON : Prog. Experte 135
Digitale Ausgänge: Bedienung 119, 182
Digitale Eingänge: Bedienung 118, 182
Digitaleingang $DIGIN1 --- $MACHINE.DAT: Applikationen 45
DISABLE: Prog. Experte 150
Diskette: Bedienung 163
Diskette formatieren: Bedienung 84
Disketten---Laufwerk: Bedienung 8
Distanzkriterium: Prog. Experte 97
Dominante Achse: Bedienung 53
Dominante Achse aktiviert: Bedienung 54
Dominante Achse nicht aktiviert: Bedienung 54
Drehung der Pendelebene: Prog. Anwender 98
Drehung um X---Achse: Inbetriebnahme 27
Drehung um Y---Achse: Inbetriebnahme 27
Drehung um Z---Achse: Inbetriebnahme 27
Drehzahl: Applikationen 12
Drehzahlreglerausgang: Konfiguration 64
Drehzahlstop: Bedienung 100
Dreidimensionale Felder: Prog. Experte 30
Dreidimensionales Feld: Prog. Experte 30
Drucken: Bedienung 78
DSE: Inbetriebnahme 95, 123
DSE --- RDW: Bedienung 192
Duplizieren: Bedienung 87; Prog. Anwender 30
Durchbiegungskennlinie: Applikationen 31
Durchführung der Lastdatenermittlung: Applikationen 73
Durchführung einer Meßfahrt: Applikationen 78
Durchführung einer Testfahrt: Applikationen 78
Durchsacken: Konfiguration 63

E
E/A Langtexte: Bedienung 162
E/A Treiber: Bedienung 127, 177, 182; Konfiguration 12
E/A---Schnittstelle zum CAN---Conveyor---Modul: Applikationen 45

VKRC/AnhangPHR5.4 11.05.00 de 15 von 3


Anhang

E1: Applikationen 27, 29


E2---E7---Schließung: Bedienung 20
Ebene: Prog. Anwender 98
eckige Klammern: RobSysEinleitung_11.04_00 9
Edit: Prog. Anwender 35
Editier---Cursor: Bedienung 96; Prog. Anwender 35, 45
Editieren: Prog. Anwender 31; Prog. Experte 10
Editiermodus: Prog. Anwender 35
Editor: Bedienung 179; Konfiguration 20
Editor schließen: Prog. Anwender 23
EG---Maschinenrichtlinien: Sicherheit KRC (10.00.03) de 5
EG---Niederspannungsrichtlinie: Sicherheit KRC (10.00.03) de 5
EGB---Richtlinien: Sicherheit KRC (10.00.03) de 25
Eigenschaften: Bedienung 84
Eigenschaftsanzeige: Bedienung 59, 62
Ein---/Ausgänge: Bedienung 118, 159
Ein---/Ausschalter: Bedienung 10
Ein/Ausgänge: Bedienung 118; Konfiguration 7
Ein/Ausschaltoptionen: Konfiguration 18
Eindimensionales Feld: Prog. Experte 28
Eindringen von Schmutz: Sicherheit KRC (10.00.03) de 21
Einfügen: Bedienung 86; Prog. Anwender 7
Einführung: Inbetriebnahme 26
Eingabe---Taste: Bedienung 21
Eingänge: Bedienung 119; Prog. Anwender 26
Eingeschränkter Bewegungsbereich --- Arbeitsraumbegrenzug: Sicherheit KRC (10.00.03) de
12
Einschränkungen: Konfiguration 63
Einstellarbeiten: Sicherheit KRC (10.00.03) de 22
Einstellung: Sicherheit KRC (10.00.03) de 8
Elektroden positionieren: Applikationen 36
Elektrofachkraft: Sicherheit KRC (10.00.03) de 10
Elektromagnetischen Verträglichkeit: Sicherheit KRC (10.00.03) de 5
Elektronische Kraftmesser: Applikationen 28
Elemente: Prog. Anwender 26
EMT: Bedienung 191
EMV: Applikationen 40
ENABLE : Prog. Experte 150
Encoder zurücksetzen: Bedienung 191
Encodereingang: Applikationen 43
END: Prog. Experte 9
END---Taste: Bedienung 23

16 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

ENDFOLD: Prog. Experte 12


Endlos drehende Achsen: Prog. Anwender 35
ENDSWITCH: Prog. Experte 110
ENDWHILE: Prog. Experte 114
Energiezufuhr: Applikationen 62
Enter---Taste: Bedienung 21
ENUM: Prog. Experte 34
EPROMs: Sicherheit KRC (10.00.03) de 21
Ersetzen: Prog. Anwender 10
Erstellen der Schweißprogramme: Applikationen 24
Erstinitialisierung: Prog. Anwender 59
Erstjustage: Bedienung 191
ESC---Taste: Bedienung 20
Escape---Taste: Bedienung 20
EX---Schutzzone 2: Sicherheit KRC (10.00.03) de 17
EXIT: Prog. Experte 116
Experte: Konfiguration 16
Expertenebene: Bedienung 62
Explosionsgefährdete Bereiche: Sicherheit KRC (10.00.03) de 17
Explosionsgruppe: Sicherheit KRC (10.00.03) de 17
Ext: Bedienung 31
Extern: Bedienung 113
Externe Achse konfigurieren: Applikationen 7
externe Energiezufuhr: Applikationen 62, 79
Externe Kinematik: Bedienung 190; Inbetriebnahme 70
Externe Kinematiken: Bedienung 45
Externe Meßvorrichtung: Inbetriebnahme 28
externe Zusatzachse: Applikationen 26
Externer NOT---AUS: Sicherheit KRC (10.00.03) de 12
Externer Zustimmungsschalter: Sicherheit KRC (10.00.03) de 12
Extras: Konfiguration 19

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

VKRC/AnhangPHR5.4 11.05.00 de 17 von 3


Anhang

Fehlerliste: Bedienung 69, 161


Fehlersituationen: Applikationen 55
Feldbus: Prog. Anwender 83
Feldindex: Prog. Experte 28
Fensterwahl---Taste: Bedienung 21
Fern: Prog. Anwender 52
Fernsensor: Prog. Anwender 51, 52
Festgelegte Zeit: Prog. Anwender 73, 77
Feststehende Elektrode: Applikationen 36
Feststehende Schutzeinrichtungen: Sicherheit KRC (10.00.03) de 14
Feststehendes Werkzeug: Bedienung 190; Inbetriebnahme 57; Prog. Experte 61
Fettdruck: RobSysEinleitung_11.04_00 9
Figur: Prog. Anwender 98
Filter: Bedienung 65, 84
Flags: Bedienung 131; Prog. Anwender 26, 69, 90; Prog. Experte 51
Flammpunkt: Sicherheit KRC (10.00.03) de 17
Flanschmittelpunkt: Inbetriebnahme 26
Fokus: Konfiguration 73
FOLD: Prog. Experte 12
Folgen: Bedienung 162
Folgennummer---Spiegelung: Konfiguration 75
Folgennummer---Vorgabe: Konfiguration 75
FOLL_ACC[1]: Applikationen 47
FOLL_VEL[1]: Applikationen 47
Formular: Bedienung 27
Frame: Inbetriebnahme 27
Frameverknüpfung: Prog. Experte 39
Freigabe Stellglieder Start: Konfiguration 76
Freigaben: Inbetriebnahme 117
Freiheitsgrade der Space---Mouse: Bedienung 50
Fremdkörper: Sicherheit KRC (10.00.03) de 22
Frequenz: Sicherheit KRC (10.00.03) de 21
Fundamente: Sicherheit KRC (10.00.03) de 14
Funktionen: Prog. Experte 9
Funktionsbeschreibung: Applikationen 60
Funktionsparameter: Bedienung 167
Funktionsprinzip: Applikationen 8
Fußpunkt: Bedienung 190; Inbetriebnahme 81, 82
Fußpunkt (numerisch): Inbetriebnahme 81, 85

18 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

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

VKRC/AnhangPHR5.4 11.05.00 de 19 von 3


Anhang

Handoverride: Bedienung 31, 178; Konfiguration 15


Handverfahren: Bedienung 44; Konfiguration 15; Applikationen 26
Handverfahrgeschwindigkeit: Sicherheit KRC (10.00.03) de 11
Handwurzelpunkt: Prog. Experte 74
Hardwarewarnung: Konfiguration 72
Häufigkeit der Störung: RobSysEinleitung_11.04_00 10
Hauptschalter: Sicherheit KRC (10.00.03) de 10; Bedienung 8, 9
HB: RobSysEinleitung_11.04_00 9
HEALTH: Applikationen 43
Hebezeugen: Sicherheit KRC (10.00.03) de 21
Helligkeit: Bedienung 17
Hersteller---Erklärung: Sicherheit KRC (10.00.03) de 5, 6
Hexadezimalsystem: Prog. Experte 26
Hilfe: Bedienung 154, 159, 199; Konfiguration 52
Hilfe bei Serviceanfragen: RobSysEinleitung_11.04_00 6
Hilfsstoffe: Sicherheit KRC (10.00.03) de 23
Hinweis: RobSysEinleitung_11.04_00 8; Sicherheit KRC (10.00.03) de 7
Historie Bedienhandbuch: Anhang Bedienhandbuch 27
Historie Programmierhandbuch: Anhang Programmierhandbuch 4
HK: RobSysEinleitung_11.04_00 9
Höheres Fahrprofil: Prog. Experte 64
HOME---Taste: Bedienung 23
HOV: Bedienung 31; Inbetriebnahme 33, 36, 39, 52, 60, 65, 83, 88; Konfiguration 15

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

20 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Inline---Formular: Bedienung 27; Prog. Anwender 35


INS---Taste: Bedienung 23
INSIDE_STOP: Konfiguration 25, 36
Installation der Hardware: Applikationen 39
Installieren: Inbetriebnahme 117
Instandsetzung: Sicherheit KRC (10.00.03) de 8
Instandsetzungsarbeiten: Sicherheit KRC (10.00.03) de 22
INT: Prog. Experte 25
INT $TORQUE_AXIS: Konfiguration 68
Integer: Prog. Experte 25
Integer---Zähler: Prog. Anwender 26
Interbus---Segmentnummer: Bedienung 122; Konfiguration 7
Interbus---Teilnehmernummer: Bedienung 122; Konfiguration 7
Interface---Eigenschaften: Sicherheit KRC (10.00.03) de 20
INTERRUPT OFF: Prog. Experte 150
INTERRUPT ON: Prog. Experte 150
Interrupts: Prog. Experte 147
INV_SYNCHRON[1]: Applikationen 47
IOSYS.INI: Applikationen 45
ISTEP: Prog. Experte 14
Istposition: Bedienung 128; Applikationen 27, 29

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

VKRC/AnhangPHR5.4 11.05.00 de 21 von 3


Anhang

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

22 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

KUKA Robot Group: RobSysEinleitung_11.04_00 6


KUKA.HMI: Bedienung 25
Kuka---Langtextdatenbank: Inbetriebnahme 100
kursiv: RobSysEinleitung_11.04_00 9
Kurzanleitung: Applikationen 79
Kurzschlußbremsung: Bedienung 100

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

VKRC/AnhangPHR5.4 11.05.00 de 23 von 3


Anhang

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

24 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Menüpunkt Lastdatenermittlung: Applikationen 63


Menüstruktur: Bedienung 159
Menütaste: RobSysEinleitung_11.04_00 9
Merker: Bedienung 130; Prog. Anwender 26
Meß---Trajektorie: Applikationen 76
Meßergebnisse: Applikationen 82
Meßfahrt: Applikationen 78, 81
Meßmarkierung anfahren: Inbetriebnahme 83
Meßpunkte: Bedienung 190; Inbetriebnahme 71
Meßtoleranz: Applikationen 62
Meßuhr: Inbetriebnahme 6
Modul Info: Bedienung 63
Module: Bedienung 61
Momente: Sicherheit KRC (10.00.03) de 14
Momentenbetrieb: Konfiguration 63
Momentenbetrieb möglich: Konfiguration 63
Momentengrenzen: Konfiguration 69
Motorkabelüberwachung: Konfiguration 72
Motorstrom: Applikationen 12
MSTEP: Prog. Experte 14

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

VKRC/AnhangPHR5.4 11.05.00 de 25 von 3


Anhang

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

26 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Pendelauslenkung: Prog. Anwender 83


Pendelfigur: Prog. Anwender 98
Pendellänge: Prog. Anwender 98
Pendeln: Bedienung 197; Prog. Anwender 61, 88, 98
Periode: Prog. Anwender 98
Personenschäden: RobSysEinleitung_11.04_00 7
Persönlicher Schutz: Sicherheit KRC (10.00.03) de 21
PF0: Konfiguration 77
Pfeil---Taste: Bedienung 23
PGDN---Taste: Bedienung 23
PGUP---Taste: Bedienung 23
Piktogramme: RobSysEinleitung_11.04_00 8
Änderungen oder Einträge erforderlich: RobSysEinleitung_11.04_00 8
Änderungen oder Einträge nicht zulässig: RobSysEinleitung_11.04_00 8
Beispiel: RobSysEinleitung_11.04_00 8
Hinweis: RobSysEinleitung_11.04_00 8
Info: RobSysEinleitung_11.04_00 8
Siehe auch: RobSysEinleitung_11.04_00 8
Tip: RobSysEinleitung_11.04_00 8
Piktogramme : RobSysEinleitung_11.04_00 7
Planungshinweise: Sicherheit KRC (10.00.03) de 14
Plugin Konfiguration: Bedienung 179
Position: Bedienung 159; Inbetriebnahme 26
Positions---Flag: Bedienung 196
Positionsabhängige Flags: Prog. Anwender 69
Positionsbestimmung: Inbetriebnahme 31
Positionskontrolle der Servozange: Applikationen 34
Positionsmarkierungen: Sicherheit KRC (10.00.03) de 24
Positionsüberwachung: Konfiguration 79, 80
POV: Bedienung 31; Konfiguration 15
Priorität: Prog. Anwender 27
Prioritäten: Prog. Experte 47, 151
Problembeschreibung: RobSysEinleitung_11.04_00 10
Programm abwählen: Bedienung 115; Prog. Anwender 22
Programm anwählen: Bedienung 95
Programm anwählen, öffnen, sichern: Prog. Anwender 30
Programm ausführen, stoppen: Bedienung 95
Programm bearbeiten: Prog. Anwender 5
Programm erstellen und aufrufen: Prog. Anwender 30
Programm fortsetzen: Bedienung 114
Programm löschen: Prog. Anwender 31
Programm vollständig ausführen: Bedienung 113
Programm zurücksetzen: Bedienung 112, 114; Prog. Anwender 22

VKRC/AnhangPHR5.4 11.05.00 de 27 von 3


Anhang

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

28 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

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

VKRC/AnhangPHR5.4 11.05.00 de 29 von 3


Anhang

Roboterposition: Bedienung 128


Roboterposition setzen: Bedienung 191
Roboterrichtung synchron zur Kette --- COR_DIR[1]: Applikationen 47
Roboterstörung: Applikationen 55
Robotersystem: Sicherheit KRC (10.00.03) de 5
Robotertyp: Applikationen 67
Roboterüberwachung innerhalb Conveyor---Profil: Applikationen 46
Roboterweg zwischen Synchronisiersignal und Endstellung --- MAX_CONV[1]: Applikatio-
nen 47
Rücksetzung Conveyor---Modul COUNT_RESET: Applikationen 47
Rückwärts---Taste: Bedienung 21
Rückwärtsfahren: Bedienung 102
Rückwirkungsgrad: Konfiguration 63, 66
Ruhezustand: Bedienung 13

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

30 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

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

VKRC/AnhangPHR5.4 11.05.00 de 31 von 3


Anhang

Sicherheitsschuhe: Sicherheit KRC (10.00.03) de 21


Sicherheitssymbole: RobSysEinleitung_11.04_00 7; Sicherheit KRC (10.00.03) de 7, 24
Achtung: RobSysEinleitung_11.04_00 7
Warnung: RobSysEinleitung_11.04_00 7
Sicherheitstrittplatten: Sicherheit KRC (10.00.03) de 20
Sicherheitsvorschriften: Sicherheit KRC (10.00.03) de 8, 22
Sichern: Inbetriebnahme 19
Siehe auch: RobSysEinleitung_11.04_00 8
SIGNAL: Prog. Experte 122
Signalverläufe: Konfiguration 81
Signalzustände: Bedienung 118, 119
SIN(X): Prog. Experte 48
Single---Step: Bedienung 102
Single---Step---Betrieb: Konfiguration 76
Singularitäten: Prog. Experte 74
Sinus: Prog. Experte 48
Softkey: RobSysEinleitung_11.04_00 9; Bedienung 26; Prog. Anwender 35
Softkey [Archivieren]: Applikationen 83
Softkey [auf Diskette sichern]: Applikationen 83
Softkey [Bof]: Applikationen 66
Softkey [Datei laden]: Applikationen 65
Softkey [Datei Speichern]: Applikationen 65
Softkey [Identifikation]: Applikationen 65
Softkey [Lese Achse]: Applikationen 65
Softkey [Programm---Ende]: Applikationen 66
Softkey [Robotertyp]: Applikationen 65
Softkey Identif.: Applikationen 73
Softkey Lese Achse: Applikationen 69
Softkey Messung: Applikationen 78
Softkey Speichern: Applikationen 71
Softkey Test: Applikationen 78
Softkey Warmfahren: Applikationen 78
Softkeyleiste: Bedienung 26
Softkeys: Bedienung 22
Software: Sicherheit KRC (10.00.03) de 22
Software---Endschalter: Bedienung 43, 192
Software---Update: Inbetriebnahme 93
Software---Versionsnummern: RobSysEinleitung_11.04_00 13
Softwareendschalter: Inbetriebnahme 98
Space---Mouse: Bedienung 20, 44, 48; Inbetriebnahme 32
Spannung: Sicherheit KRC (10.00.03) de 21
Spannungsausfall: Bedienung 13

32 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

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

VKRC/AnhangPHR5.4 11.05.00 de 33 von 3


Anhang

Stromversorgung: Sicherheit KRC (10.00.03) de 19


SUBMIT Interpreter: Konfiguration 14
Suchen: Prog. Anwender 10
Suchlauf: Bedienung 195; Prog. Anwender 34, 51
SWITCH---Anweisung: Prog. Experte 110
SYM---Taste: Bedienung 24
Symbol: Bedienung 98
Symbole: Bedienung 60
Symbole im Programmfenster: Bedienung 95
SYNCH_NO[1]: Applikationen 47, 56
SYNCHRON[1]: Applikationen 47
Synchron---PTP: Prog. Experte 63
Synchronfahrt: Applikationen 46
Synchronisiersignal: Applikationen 54
System konfigurieren: Konfiguration 5
Systemdaten: Bedienung 162
Systemeinstellungen: Bedienung 159
Systemvoraussetzungen: Applikationen 60
Systemzeit: Bedienung 31

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

34 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

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

VKRC/AnhangPHR5.4 11.05.00 de 35 von 3


Anhang

Überschleif: Prog. Anwender 35, 39, 42, 46


Überschleif Bahn --- PTP: Prog. Experte 103
Überschleif PTP --- Bahn: Prog. Experte 102
Überschleifbeginn LIN---LIN: Prog. Experte 97
Überschleifbeginn PTP---PTP: Prog. Experte 95
Überschleifbereich: Prog. Anwender 40, 44, 47, 49, 50
Überschleifen: Prog. Anwender 91
Überschleifkontur: Prog. Experte 94
Überschleifpunkt: Prog. Anwender 90
Überschleifverhalten: Prog. Anwender 34
Überwachung der Grundstellung in P0: Konfiguration 78
Überwachungsschlauch: Konfiguration 69
UEG: Sicherheit KRC (10.00.03) de 17
Uhr: Bedienung 191
Umbauten: Sicherheit KRC (10.00.03) de 11
Umbenennen: Bedienung 83
Umgang mit der Produktdokumentation: RobSysEinleitung_11.04_00 6
UNDO---Taste: Bedienung 23
Unfälle: Sicherheit KRC (10.00.03) de 7
Unfallverhütung: Sicherheit KRC (10.00.03) de 20
Unsachgemäße Verwendung: Sicherheit KRC (10.00.03) de 5
Unterbau: Sicherheit KRC (10.00.03) de 14
Untermenütaste: RobSysEinleitung_11.04_00 9
Unterprogramm: Prog. Anwender 7, 61
Unterprogramm---Aufrufe: Prog. Anwender 56
Unterprogramme: Prog. Experte 9
UP: Bedienung 195; Prog. Anwender 56
UP’s: Bedienung 162
Update: Inbetriebnahme 93
USER: Prog. Anwender 100; Prog. Experte 175
USER---Block: Prog. Experte 187
UV--- und Verschmutzungsschutz: Sicherheit KRC (10.00.03) de 21

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

36 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Veränderungen: Sicherheit KRC (10.00.03) de 11


Verbindungsleitungen: Sicherheit KRC (10.00.03) de 5, 19, 24
Vereinbarung: Prog. Experte 9
Vereinbarung von Aufzählungstypen: Prog. Experte 34
Vereinbarungsteil: Prog. Experte 9
Verfahrart: Bedienung 44; Applikationen 26
Verfahrgeschwindigkeit: Inbetriebnahme 33, 36, 39, 52, 60, 65, 83, 88; Prog. Anwender
40
Verfahrtasten: Bedienung 44, 55
Vergleich: Bedienung 196; Prog. Anwender 67
Vergleichsoperator: Prog. Anwender 26
Vergleichsoperatoren: Prog. Experte 43
Verletzungen: Sicherheit KRC (10.00.03) de 7
Vermessen: Bedienung 159
Vermessung der Conveyorbasis: Applikationen 48
VERR: Prog. Anwender 78
Verriegelung: Bedienung 196; Prog. Anwender 78
Verriegelung trennender Schutzeinrichtungen (Bedienerschutz): Sicherheit KRC (10.00.03) de
13
Verriegelungsnummern: Prog. Anwender 78
Verschmutzungsschutz: Sicherheit KRC (10.00.03) de 21
Versionsinfos: Bedienung 159
Versionsnummern Software: RobSysEinleitung_11.04_00 10
Versorgungsspannung Encoder: Applikationen 42
Versorungsleitungen: Applikationen 79
Verzeichnis: Bedienung 161
Verzeichnisliste: Bedienung 59, 66
Verzeichnisstruktur: Bedienung 59, 62
Viren: Sicherheit KRC (10.00.03) de 22
VKCP: Bedienung 17
VKCP---Rückseite: Bedienung 24
VKCP---Vorderseite: Bedienung 18
VKRC: Inbetriebnahme 117
Vollkreis: Prog. Anwender 48
Vorbereitung: Applikationen 79
Vordefinierte Datenlisten: Prog. Experte 52
Vordefinierte Strukturen: Prog. Experte 33
Vorhaltezeit: Applikationen 48
Vorhängeschloß: Sicherheit KRC (10.00.03) de 10
Vorjustagestellung: Inbetriebnahme 6, 13
Vorkehrung für Bewegung in Notfällen: Sicherheit KRC (10.00.03) de 13
Vorlaufstop: Konfiguration 68; Prog. Experte 92

VKRC/AnhangPHR5.4 11.05.00 de 37 von 3


Anhang

Vorschriften: Sicherheit KRC (10.00.03) de 20


Vorwort: RobSysEinleitung_11.04_00 6
Vred: Prog. Anwender 51, 52
VW KUKA Control Panel: Bedienung 17
VW---User: Bedienung 162
VW_CAL: Applikationen 7, 30
VW_FLEX: Applikationen 7, 31
VW_FORCE: Applikationen 7, 31
VW_USER.SRC: Applikationen 48
VW_USR: Prog. Anwender 100
VW_USR_R: Prog. Anwender 100; Prog. Experte 175
VW_USR_S: Prog. Experte 176

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

38 von 3 VKRC/AnhangPHR5.4 11.05.00 de


3 Gesamtindex (Fortsetzung)

Werksjustage verändern: Inbetriebnahme 23


Werkzeug: Bedienung 189, 190; Inbetriebnahme 57
Werkzeug Konfiguration: Inbetriebnahme 73
Werkzeug---Bezugspunkt: Inbetriebnahme 28, 87
Werkzeug---Koordinatensystem: Bedienung 33, 46; Prog. Experte 60
Werkzeugart: Applikationen 64, 70, 80
Werkzeuglastdaten: Bedienung 189; Inbetriebnahme 30, 48
Werkzeugnummer: Inbetriebnahme 32; Prog. Anwender 40, 44, 47, 49, 50, 52
Werkzeugtyp: Bedienung 190
Werkzeugwechsel: Sicherheit KRC (10.00.03) de 20; Prog. Experte 106
WHILE: Prog. Experte 114
Wiedereinschalten: Bedienung 13
Wiederherstellen: Bedienung 81
Wiederinbetriebnahme: Sicherheit KRC (10.00.03) de 22
WORLD: Bedienung 35
WPROZ: Konfiguration 77
WSLAV: Konfiguration 77
Wurzel: Prog. Experte 48
Wzg: Prog. Anwender 40, 44, 47, 49, 50, 52

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

VKRC/AnhangPHR5.4 11.05.00 de 39 von 3


Anhang

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

40 von 3 VKRC/AnhangPHR5.4 11.05.00 de