Sie sind auf Seite 1von 622

SOFTWARE

KR C...

Programmierhandbuch

KUKA System Software (KSS)


Release 4.1

Stand: 22.11.2004 Version: 07


ÜbersichtPHR4.1.7 12.03.07 de

1 von 4
e Copyright 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

ÜbersichtPHR4.1.7 12.03.07 de

2 von 4
Inhalt

1 Einleitung
1. Vorwort
2. Lesehinweise
3. Serviceanfragen

2 Sicherheit
1. Haftungshinweis
2. Bestimmungsgemäße Verwendung
3. Sicherheitssymbole
4. Sicherheitsmaßnahmen
5. Sicherheitskennzeichnung
6. Planungs-- und Bauhinweise
7. Aufstellung, Betrieb, sonstige Arbeiten
8. EGB--Vorschriften
9. Angewandte Richtlinien und Normen

Die grauen Dokumentationsteile finden Sie im Bedienhandbuch

3 Bedienung
1. Steuerung hochfahren / herunterfahren
2. KCP, das KUKA Control Panel
3. Koordinatensysteme
4. Handverfahren des Roboters
5. Navigator
6. Programm ausführen, stoppen und zurücksetzen
7. Anzeigen
8. Menüstruktur

4 Inbetriebnahme
1. Roboterjustage / --dejustage
2. Vermessung
3. Vermessen externer Kinematiken
4. Robotername

ÜbersichtPHR4.1.7 12.03.07 de

3 von 4
Programmierhandbuch

5 Konfiguration
1. System konfigurieren
2. System konfigurieren Experte
3. Automatik Extern

6 Programmierung Anwender
1. Programmbearbeitung
2. Programmbefehle

7 Programmierung Experte
1. Allgemeines zu KRL--Programmen
2. Variablen und Vereinbarungen
3. Bewegungsprogrammierung
4. KRL--Assistent
5. Programmablaufkontrolle
6. Ein--/Ausgabeanweisungen
7. Unterprogramme und Funktionen
8. Interrupt--Behandlung
9. Trigger -- Bahnbezogene Schaltfunktionen
10. Datenlisten
11. Externer Editor

8 Zusatzfunktionen
1. Standardprogramme

9 Applikationen

10 Anhang
1. Glossar --> Siehe Bedienhandbuch
2. Historie Programmierhandbuch von V4.1.6 --> V4.1.7
3. Gesamtindex

ÜbersichtPHR4.1.7 12.03.07 de

4 von 4
PRODUKTDOKUMENTATION

(V)KR... / (V)KR C... / KL...

Einleitung

Stand: 11.11.2004 Version: 00

RobsysEinleitung 11.04.00 de
1 von 16
e Copyright 2005

KUKA Roboter GmbH


Zugspitzstr. 140
D--86165 Augsburg
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 dass 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 16
RobsysEinleitung 11.04.00 de
Inhaltsverzeichnis

2 Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Lesehinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 Sicherheitssymbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Piktogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4 Querverweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

4 Serviceanfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1 Gerätetyp und Seriennummer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Software--Versionsnummern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 Ihre Meinung ist uns wichtig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 Servicestützpunkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

RobsysEinleitung 11.04.00 de
3 von 16
Einleitung

RobsysEinleitung 11.04.00 de
4 von 16
2 Vorwort

2 Vorwort

Das vorliegende Dokument ist Teil der Betriebsanleitung.

Die KUKA Robot Group Dokumentation unterstützt Sie bei folgenden Themen:
G Umgang mit den Produkten der KUKA Robot Group
G Umgang mit der Produktdokumentation
G Hilfe bei Serviceanfragen

RobsysEinleitung 11.04.00 de
5 von 16
Einleitung

3 Lesehinweise
Die Dokumentationen der KUKA Robot Group enthalten:
G Sicherheitssymbole
G Piktogramme
G Textauszeichnungen

3.1 Sicherheitssymbole
Textpassagen, die mit diesen Sicherheitssymbolen gekennzeichnet sind, dienen der
Sicherheit und müssen beachtet werden.

WARNUNG
Genaues Befolgen dieser Warnhinweise kann Personenschäden vermeiden.

ACHTUNG
Genaues Befolgen dieser Warnhinweise kann Sachschäden vermeiden.

RobsysEinleitung 11.04.00 de
6 von 16
3 Lesehinweise (Fortsetzung)

3.2 Piktogramme
Textpassagen, die mit den folgenden Piktogrammen gekennzeichnet sind, erleichtern den
Umgang mit dem Robotersystem.

HINWEIS
Kennzeichnet Besonderheiten, auf die aufmerksam gemacht werden soll.

Tip
Kennzeichnet Empfehlungen und Ratschläge zur Arbeitserleichterung.

Siehe auch
Kennzeichnet Abschnitte oder Kapitel mit weiteren Informationen und Erläuterungen.

Info
Kennzeichnet Abschnitte, die von besonderer Bedeutung sind oder dem besseren Ver-
ständnis dienen.

Beispiel
Kennzeichnet praktische Beispiele, die am Robotersystem umgesetzt werden können.

Änderungen oder Einträge erforderlich


Kennzeichnet Prozessschritte, in denen Bedienereingaben erwartet werden.

Änderungen oder Einträge nicht zulässig


Kennzeichnet Prozessschritte, in denen Bedienereingaben nicht erlaubt sind.

RobsysEinleitung 11.04.00 de
7 von 16
Einleitung

3.3 Textauszeichnungen

Schriftstil Bedeutung
Text in [eckigen Klammern] kennzeichnet Querverweise
Text in “Anführungszeichen” kennzeichnet Softkeys, Statuskeys, Tasten und
Felder (z. B. in Formularen)
Fettdruck kennzeichnet Besonderheiten
Serifenschrift kennzeichnet Auszüge aus Programmlistings
Kursivschrift erläutert Programmlistings
Serifenschrift fett bzw. kennzeichnet Bedienereinträge in Programmlistings
unterstrichen

3.4 Querverweise
Folgende Bezeichnungen für Querverweise werden in den Dokumenten verwendet:
G Handbuch (HB) verweist auf ein anderes Handbuch der Betriebsanleitung.
Beispiel: [HB: Roboter].
G Hauptkapitel (HK) verweist auf ein Hauptkapitel innerhalb eines Handbuchs.
Beispiel: [HK: Einleitung].
G Kapitel (Kap) verweist auf einen Teil eines Hauptkapitels.
Beispiel: [Kap: Lesehinweise].
G Abschnitt (Abschn) verweist auf einen Teil eines Kapitels.
Beispiel: [Abschn: Sicherheitssymbole].

...fordert zum Drücken einer Programmtaste (Menü-- oder Softkey) am KCP auf.
<Funktion>
Auf dem Display wird dabei die derzeit gültige Tastenfunktion angezeigt.

...fordert zum Drücken einer Menütaste (Menükey) und einer Untermenütaste am KCP auf.

RobsysEinleitung 11.04.00 de
8 von 16
4 Serviceanfragen

4 Serviceanfragen
Die Dokumentation der KUKA Robot Group bietet viele Informationen zu Betrieb und Bedie-
nung und unterstützt Sie bei der Behebung von Störungen.
Für weiterreichende Service--Anfragen steht Ihnen ihr zuständiger Service--Stützpunkt je-
derzeit zur Verfügung (siehe Abschnitt 3.4).

Störungen sollten Sie spätestens eine Stunde nach ihrem Auftreten dem zuständigen
Servicestützpunkt melden.

Zur Abwicklung einer Serviceanfrage werden folgende Informationen benötigt:


G Typ und Seriennummer des Roboters
G Typ und Seriennummer der Lineareinheit (optional)
G Typ und Seriennummer der Steuerung
G Versionsnummern der Software
G Speicherabzug (Archiv) der Steuerung
G Vorhandene Applikation
G Vorhandene Zusatzachsen
G Problembeschreibung, Dauer, Häufigkeit der Störung

RobsysEinleitung 11.04.00 de
9 von 16
Einleitung

4.1 Gerätetyp und Seriennummer


Typ und Seriennummer (Werknummer) aller betroffenen Systemteile an Hand der Typen-
schilder ermitteln. Die Typenschilder sind an folgenden Stellen angebracht:

Abb. 1 Typenschild Roboter

Abb. 2 Typenschild Lineareinheit

RobsysEinleitung 11.04.00 de
10 von 16
4 Serviceanfragen (Fortsetzung)

Abb. 3 Typenschild Steuerschrank (V)KR C2

Abb. 4 Typenschild Steuerung KR C3, Table--Version

Abb. 5 Typenschild Steuerung KR C3, Rack--Version

RobsysEinleitung 11.04.00 de
11 von 16
Einleitung

4.2 Software--Versionsnummern
Die Versionsnummern der Software werden am Display des KCP über den Menükey
“Hilfe/Info” angezeigt.

Abb. 6 Versionsnummern der Software

RobsysEinleitung 11.04.00 de
12 von 16
4 Serviceanfragen (Fortsetzung)

4.3 Ihre Meinung ist uns wichtig


Die vorliegende Betriebsanleitung wurde sorgfältig auf das zugehörige Produkt abgestimmt.
Trotz regelmäßiger Überprüfungen können jedoch Fehler nicht ausgeschlossen werden.
Für eine vollständige Fehlerfreiheit kann deshalb keine Gewähr übernommen werden.

Bei Fragen zur Dokumentation (Anregungen, Korrekturen) senden Sie bitte die Anfrage an
eine der folgenden Adressen:
Fax: +49 821 797--1087
E--Mail: documentation@kuka--roboter.de

RobsysEinleitung 11.04.00 de
13 von 16
Einleitung

4.4 Servicestützpunkte
Argentina
Ruben Costantini S. A. (Agency) Tel.: +54--35 64 / 42 10 33
Luis Angel Huergo 13 20 Fax: +54--35 64 / 42 88 77
Parque Industrial E-- Mail: ventas@costantini--sa.com
2400 San Francisco (CBA), Argentina

Australia
Marand Precision Engineering Pty. Ltd (Agency) Tel.: +61--3 / 85 52 06 00
153 Keys Road Fax: +61--3 / 85 52 06 05
Moorabbin, Victoria 31 89 E-- Mail: robotics@marand.com.au
Australia

Austria
KUKA Roboter GmbH Tel.: +43--732 / 78 47 52
Vertriebsbüro Österreich Fax: +43--732 / 79 38 80
Regensburger Strasse 9/1 E-- Mail: office@kuka--roboter.at
A -- 4020 Linz Internet: http://www.kuka--roboter.at

Belgium
KUKA Automatisering + Robots N.V. Tel.: +32--11 / 51 61 60
Centrum Zuid 1031 Fax: +32--11 / 52 67 94
B -- 3530 Houthalen E-- Mail: info@kuka.be
Belgium Internet: http://www.kuka.be

Brazil
KUKA Roboter do Brasil Ltda. Tel.: +55--11 / 64 13 49 00
Rua Dom Feliciano no 63 Fax: +55--11 / 64 11 15 65
Cidade Satélite, Guarulhos E-- Mail: info@kuka--roboter.com.br
CEP 07224 240
São Paulo, SP Brasil

China
KUKA Automation Equipment Tel.: +86--21 / 58 66 51 39
(Shanghai) Co.,Ltd. Fax: +86--21 / 58 66 75 71
Part B, Ground Floor, No. 211, Fu te Road (North) E-- Mail: franz.poeckl@kuka--sha.com.cn
Waigaoqiao Free Trade Zone
Shanghai 200 131, China

France
KUKA Automatisme + Robotique SAS Tel.: +33--1 / 69 31 66 00
Techvallée Fax: +33--1 / 69 31 66 01
6, Avenue du Parc E-- Mail: commercial@kuka.fr
F -- 91140 Villebon s/Yvette Internet: http://www.kuka.fr

Germany Tel.: 0190 / 88 19 26


Service--Stützpunkt:
KUKA Roboter GmbH Fax: +49--821 / 797 -- 10 87
Zugspitzstraße 140 E-- Mail: hotline@kuka--roboter.de
D -- 86165 Augsburg Internet:: www.kuka--roboter.de

RobsysEinleitung 11.04.00 de
14 von 16
4 Serviceanfragen (Fortsetzung)

India
Sieflex Robotics (Agency) Tel.: +91 (44) / 624 14 12
54, Industrial Estate, Ambattur Fax: +91 (44) / 26 25 87 57
Madras -- 600 058 E-- Mail: sieflexrobotics@yahoo.com
India

Hungary
KUKA Robotics Hungaria Kft. Tel.: +36--24 / 50 16 09
2335 Taksony Fax: +36--24 / 47 70 31
Fö út 140 E-- Mail: info@kuka--robotics.hu

Italy
KUKA Roboter Italia S.p.A. Tel.: +39--0 11 / 959 50 13
Via Pavia 9/a -- int. 6 Fax: +39--0 11 / 959 51 41
I -- 10098 Rivoli (TO) E-- Mail: kuka@kuka.it
Internet: http://www.kuka.it

Korea
KUKA Robot Automation Korea, Co. Ltd. Tel.: +82--31 / 496--99 37
4 Ba 806 Sihwa Ind. Complex / 496--99 38
Sung--Gok Dong, Ansan City Fax: +82--31 / 496--99 39
Kyunggi Do, 425--110 Korea E-- Mail: info@kukakorea.com

Malaysia
KUKA Robot Automation Sdn Bhd Tel: +60--3 / 80 61--06 13
South East Asia Regional Office / 80 61--06 14
24, Jalan TPP 1/10, Taman Industri Puchong Fax: +60--3 / 80 61--73 86
47100 Puchong, Selangor, Malaysia E-- Mail: info@kuka.com.my

Mexico
KUKA de Mexico S. de R.L. de C.V. Tel.: +52--55 / 52 03 84 07
Rio San Joaquin #339, Local 5 Fax: +52--55 / 52 03 81 48
Colonia Pensil Sur E-- Mail: info@kuka.com.mx
C.P. 11490 Mexico D.F.

Norway
KUKA Svetsanläggningar + Tel.: +47--61 / 13 34 22
Robotar AB Avd. Norway Fax: +47--61 / 18 62 00
Hadelandsveien 2 E-- Mail: geir.ulsrud@kuka.no
Postbox 17
NO--2801 Gjövik, Norway

Portugal
KUKA Sistemas de Automatización S.A. Tel.: +351--21 / 238 80 83
Urbanização do Vale do Alecrim, Lote 115--B Fax: +351--21 / 238 80 86
2950 Palmela, Portugal E-- Mail: kuka@mail.telepac.pt

Russia Tel.: +7--84 82 / 39 12 49


KUKA-- VAZ Engineering
445633 Togliatti / 37 05 64
Jushnoje Chaussee, 36 VAZ, PTO Fax: +7--84 82 / 73 67 30
Tx: +7--21 41 06
E-- Mail: y.klychkov@vaz.ru

RobsysEinleitung 11.04.00 de
15 von 16
Einleitung

South Africa
Jendamark Automation LTD (Agency) Tel.: +27--41 / 391 47 00
76a York Road, North End Fax: +27--41 / 373 38 69
Port Elizabeth 6000 Internet: http://www.jendamark.co.za
South Africa

Spain
KUKA Sistemas de Automatización, S.A. Tel.: +34--93 / 814 23 53
Pol. Industrial Fax: +34--93 / 814 29 50
Torrent de la Pastera E-- Mail: comercial@kuka--e.com
Carrer del Bages s/n Internet: http://www.kuka--e.com
E -- 08800 Vilanova i La Geltrú (Barcelona)

Sweden
KUKA Svetsanläggningar + Robotar AB Tel.: +46--31 / 72 66 200
A. Odhners gata 15 Fax: +46--31 / 72 66 201
S--42130 Västra Frölunda E-- Mail: info@kuka.se

Switzerland
KUKA Roboter Schweiz AG Tel.: +41--17 / 44 90 90
Riedstrasse 7 Fax: +41--17 / 44 90 91
CH--8953 Dietikon E-- Mail: info@kuka--roboter.ch
Internet: http://www.kuka--roboter.ch

Taiwan
KUKA Robot Automation Taiwan Co., Ltd. Tel.: +886--3 / 437 19 02
136, Section 2, Fax: +886--3 / 283 00 23
Huanjung E. Road E-- Mail: info@kuka.com.tw
Jungli City, Taoyuan, Taiwan 320 Internet: www.kuka.com.tw

Thailand
KUKA Robot Automation (M)Sdn Bhd Tel.: +66--2 / 750 27 37
Thailand Office Fax: +66--2 / 661 23 55
c/o Maccall System Co. Ltd. E-- Mail: atika@ji--net.com
49/9--10 Soi Kingkaew 30, Kingkaew Road Internet: http://www.kuka--roboter.de
Tt. Rachatheva, A. Bangpli
Samutprakarn, 10540 Thailand

U.K.
KUKA Welding Systems + Robot Ltd. Tel.: +44--121 / 58 50 800
Hereward Rise, Halesowen Fax: +44--121 / 58 50 900
UK--West Midlands B62 8AN GB E-- Mail: sales@kuka.co.uk

U.S.A.
KUKA Robotics Corp. Tel.: +1--866 / 873 58 52
22500 Key Drive Fax: +1--(586) / 569 20 87
Clinton Township E-- Mail: info@kukarobotics.com
Michigan 48 036 USA Internet: http://www.kukarobotics.com

RobsysEinleitung 11.04.00 de
16 von 16
Index

A P
Abschn, 8 Personenschäden, 6
Achtung, 6 Piktogramme, 7
Änderungen oder Einträge erforderlich, 7 Änderungen oder Einträge erforderlich, 7
Änderungen oder Einträge nicht zulässig, 7 Änderungen oder Einträge nicht zulässig, 7
Anführungszeichen, 8 Beispiel, 7
Applikation, 9 Hinweis, 7
Info, 7
Siehe auch, 7
B
Tip, 7
Beispiel, 7 Piktogramme , 6
Problembeschreibung, 9
E Programmtaste, 8

eckige Klammern, 8
Q
Querverweis
F
Abschn, 8
Fettdruck, 8 HB, 8
HK, 8
G Kap, 8
Querverweise, 8
Gerätetyp, 10

S
H
Sachschäden, 6
Häufigkeit der Störung, 9
Seriennummer, 10
HB, 8
Seriennummer Roboter, 9
Hilfe bei Serviceanfragen, 5
Seriennummer Steuerung, 9
Hinweis, 7
Serifenschrift, 8
HK, 8 Serifenschrift fett, 8
Serviceanfragen, 9
I Servicestützpunkte, 14
Sicherheitssymbole, 6
Info, 7
Achtung, 6
Warnung, 6
K Siehe auch, 7
Kap, 8 Softkey, 8
KUKA Robot Group, 5 Software--Versionsnummern, 12
kursiv, 8 Speicherabzug , 9
Steuerung, 9

L
T
Lesehinweise, 6
Lineareinheit, 9 Textauszeichnung
Anführungszeichen, 8
eckige Klammern, 8
M Fettdruck, 8
Menükey, 8 kursiv, 8
Menütaste, 8 Serifenschrift, 8

Index -- i
Index

Serifenschrift fett, 8
Textauszeichnungen, 8
Texthervorhebungen, 6
Tip, 7
Typenschild
KR C3, 11
Roboter, 10
Typenschilder, 10

U
Umgang mit der Produktdokumentation, 5
Untermenütaste, 8

V
Versionsnummern Software, 9
Vorwort, 5

W
Warnung, 6

Z
Zusatzachsen, 9

Index -- ii
SICHERHEIT

ROBOTERSYSTEM

Allgemein

alle Robotertypen KR
Robotersteuerung KR C2 und höher

Stand: 20.02.2004 Version: 00


SicherheitKRC 02.04.00 de

1 von 24
e Copyright 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

SicherheitKRC 02.04.00 de

2 von 24
Inhaltsverzeichnis

1 Haftungshinweis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Bestimmungsgemäße Verwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Sicherheitssymbole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4 Sicherheitsmaßnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.1 Personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1.1 Betreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.1.2 Bediener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Gefahrenbereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3 Sicherheitseinrichtungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.4 Ein–, An– und Umbauten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.5 Sicherheitsbelehrungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.6 Sicherheitsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.6.1 Eingeschränkter Bewegungsbereich – Arbeitsraumbegrenzung . . . . . . . . . . . . . . . . . . . . . . 11
4.6.2 NOT–AUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.6.2.1 Externer NOT–AUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.6.3 Zustimmungsschalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.6.3.1 Externer Zustimmungsschalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.6.4 Verriegelung trennender Schutzeinrichtungen (Bedienerschutz) . . . . . . . . . . . . . . . . . . . . . . 12
4.7 Vorkehrung für Bewegung in Notfällen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

5 Sicherheitskennzeichnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2 Roboter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3 Steuerschrank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

6 Planungs– und Bauhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14


6.1 Fundamente und Unterbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2 Belastungen des Roboters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.3 Sicherheits– und Arbeitsbereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.4 Kollisionsschutz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.5 Gewichtsausgleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.6 Werkzeugwechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.7 Sicherheitstrittplatten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.8 Interface–Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.9 NOT–AUS–Einrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.10 Ausgangsvorbesetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.11 Werkzeug und Zusatzausrüstung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

SicherheitKRC 02.04.00 de

3 von 24
Allgemein

6.12 Laser–Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.13 Vorschriften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

7 Aufstellung, Betrieb, sonstige Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18


7.1 Anschlußbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.2 Transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.3 UV– und Verschmutzungsschutz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.4 Inbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.5 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.6 Betrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.7 Außerbetriebnahme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.8 Verschiedenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

8 EGB–Vorschriften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.2 Handhabung von EGB–Baugruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.3 EGB–Gerechtes Verpacken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

9 Angewandte Richtlinien und Normen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

SicherheitKRC 02.04.00 de

4 von 24
Gültig für alle Robotertypen KR
Robotersteuerung KR C2 und höher

Dieses Dokumentations–Modul dient in erster Linie der


Sicherheit des Betreibers im Umgang mit dem nachfol-
gend beschriebenen Gerät.

1 Haftungshinweis
Das in der vorliegenden Betriebsanleitung beschriebene Gerät ist ein Industrieroboter – im
folgenden “Robotersystem” genannt –, bestehend aus Roboter, Verbindungsleitungen und
Steuerschrank.
Das Robotersystem – Gegenstand der vorliegenden Betriebsanleitung – ist nach dem
Stand der Technik und den anerkannten sicherheitstechnischen Regeln gebaut. Den-
noch können bei unsachgemäßer oder nicht bestimmungsgemäßer Verwendung Ge-
fahren für Leib und Leben des Bedienpersonals oder Dritter bzw. Beeinträchtigungen
des Robotersystems und anderer Sachwerte entstehen.
Das Robotersystem darf nur in technisch einwandfreiem Zustand sowie bestim-
mungsgemäß, sicherheits– und gefahrenbewußt benutzt werden. Die Benutzung
muß unter Beachtung der vorliegenden Betriebsanleitung und der dem Robotersy-
stem bei Lieferung beigefügten Hersteller–Erklärung* erfolgen. Störungen, die die
Sicherheit beeinträchtigen können, müssen umgehend beseitigt werden.
Grundlage für Auslegung und Konstruktion von Mechanik und Elektrik des Robotersystems
sind dieEG–Maschinenrichtlinien mit ihren Anhängen und zugehörigen Normen.
Bezüglich Sicherheit des Robotersystems wurden harmonisierten Normen angewandt.
Für den elektrischen Teil des Robotersystems wurden zusätzlich die ”EG–Niederspan-
nungsrichtlinie” und die Richtlinie zur ”Elektromagnetischen Verträglichkeit” berücksichtigt.
Eine Auflistung der angewandten Richtlinien und Normen finden Sie im Kapitel “Angewandte
Richtlinien und Normen”.

* Die Hersteller–Erklärung befindet sich im Steuerschrank.

SicherheitKRC 02.04.00 de

5 von 24
Allgemein

2 Bestimmungsgemäße Verwendung
Das Robotersystem ist ausschließlich für die in Dokumentations–Modul Roboter,
“Technische Daten”, angegebenen Haupteinsatzgebiete bestimmt.
Eine andere oder darüber hinausgehende Verwendung gilt als nicht bestimmungsge-
mäß. Für hieraus resultierende Schäden haftet der Hersteller nicht. Das Risiko trägt
allein der Betreiber.
Zur bestimmungsgemäßen Verwendung gehört auch die ständige Beachtung der
vorliegenden Betriebsanleitung und besonders die Befolgung der Wartungsvor-
schriften.
Die eingesetzte Software ist auf die vom Kunden/Betreiber vorgegebenen Einsatzbe-
reiche abgestimmt und eingehend getestet. Für den Fall, daß die in der Software ent-
haltenen Funktionen nicht unterbrechungsfrei ablaufen, muß zur Behebung dieses
Zustandes das Kapitel ”Fehlermeldungen/Fehlerbehebung” herangezogen werden.
Dies gilt auch für Störungen in den Bereichen Service, Einrichten, Programmieren
und Inbetriebnahme.
Die Inbetriebnahme des Robotersystems muß so lange unterbleiben, bis festgestellt
wurde, daß die verwendungsfertige Maschine oder maschinelle Anlage, in die das
Robotersystem eingebaut wurde, den Bestimmungen der EG–Richtlinien entspricht.
Bei Zuwiderhandlung wird keine Haftung übernommen.
Wenn der Betreiber Ausrüstungsteile und dergleichen, die nicht zum Lieferumfang
der KUKA Roboter GmbH gehören, bereitstellt und diese Teile durch die KUKA Robo-
ter GmbH in die Peripherie des Robotersystems integrieren läßt, so haftet die KUKA
Roboter GmbH für hieraus resultierende Schäden nicht. Das Risiko für diese Teile
(mechanisch, pneumatisch und elektrisch) trägt allein der Betreiber.
Die vorliegende Betriebsanleitung besteht aus den Teilen • Roboter
• Steuerschrank
• Software
Sie ist Bestandteil des von der KUKA Roboter GmbH gelieferten Robotersystems.
Dessen Serien–Nummern (Werk–Nummern) für Roboter und Steuerschrank sind in
der Hersteller–Erklärung festgehalten.

SicherheitKRC 02.04.00 de

6 von 24
3 Sicherheitssymbole
In der vorliegenden Betriebsanleitung werden folgende sicherheitsrelevanten Symbole ver-
wendet:

Dieses Symbol wird benutzt, wenn ungenaues Befolgen oder Nichtbefolgen von
Bedienungsanweisungen, Arbeitsanweisungen, vorgeschriebenen Arbeitsabläu-
fen und dergleichen zu Verletzungen oder tödlichen Unfällen führen kann.

Dieses Symbol wird benutzt, wenn ungenaues Befolgen oder Nichtbefolgen von
Bedienungsanweisungen, Arbeitsanweisungen, vorgeschriebenen Arbeitsabläu-
fen und dergleichen zur Beschädigung des Robotersystems führen kann.

Dieses Symbol wird benutzt, wenn auf eine Besonderheit aufmerksam gemacht werden
soll. Das Befolgen des Hinweises bedeutet in der Regel eine Arbeitserleichterung.

SicherheitKRC 02.04.00 de

7 von 24
Allgemein

4 Sicherheitsmaßnahmen
Bei Mechanik und Elektrik des Robotersystems, für das die vorliegende, vom Hersteller vor-
geschriebene Betriebsanleitung gilt, ist die Norm für Industrieroboter–Sicherheit realisiert.
Dieses Robotersystem wird bezüglich seiner technischen Eigenschaften und vorgesehenen
Einbaulagen in den entsprechenden Spezifikationen für Roboter und Steuerschrank und in
der vorliegenden Betriebsanleitung ausführlich dargestellt.

Durch unsachgemäßen oder nicht bestimmungsgemäßen Gebrauch des Robo-


tersystems können
– Gefahren für Leib und Leben
– Gefahren für das Robotersystem und weitere Vermögenswerte des An–
wenders und
– Gefahren für die effiziente Arbeit des Robotersystems oder des
Bedieners entstehen.

Deshalb enthält die zugehörige Betriebsanleitung zahlreiche Sicherheitshinweise, die auch


für Applikationen und bei Verwendung von Zubehör und Zusatzausrüstung der KUKA Robo-
ter GmbH gültig sind.
Jede mit Aufstellung oder Austausch, Einstellung, Bedienung, Wartung oder Instandsetzung
des Robotersystems befaßte Person muß vorher die vorliegende Betriebsanleitung, vor al-
lem den Dokumentations–Modul Sicherheit, “Allgemein”, und hier insbesondere die mit dem
Symbol gekennzeichneten Textteile gelesen und verstanden haben.

Textteile mit dem Symbol sind von größter Wichtigkeit. Sie enthalten Ausschaltproze-
duren und andere Sicherheitshinweise für den Schutz des Bedieners. Sie sind bei allen Ar-
beiten, die z.B. den Transport, die Aufstellung, den Betrieb, Um– und Einstellungen, Anpas-
sungen, die Wartung und die Instandsetzung betreffen, besonders zu beachten.

Für Austausch–, Einstell–, Wartungs– und Instandsetzungsarbeiten muß das Ro-


botersystem nach Vorschrift der vorliegenden Betriebsanleitung ausgeschaltet,
d. h. der Hauptschalter am Steuerschrank des Roboters in Stellung “AUS” ge-
bracht und mit Vorhängeschloß gegen unbefugtes Wiedereinschalten gesichert
werden.

Nach Ausschalten des Schrankes kann am KPS, den KSD‘s und den Zwischen-
kreisverbindungskabeln, bis zu 5 Minuten eine Spannung von über 50V (bis zu
600V) anliegen!

SicherheitKRC 02.04.00 de

8 von 24
4.1 Personal
Aufstellung, Austausch, Einstellung, Bedienung, Wartung und Instandsetzung dürfen nur
nach Vorschrift der vorliegenden Betriebsanleitung von hierfür speziell ausgebildetem und
mit den Gefahren vertrauten Fachpersonal durchgeführt werden.
Dem Betreiber wird empfohlen, das für diese Arbeiten vorgesehene Personal an einer an-
wendungsspezifischen KUKA Roboter GmbH–Schulung teilnehmen zu lassen.
Betreiber und Bediener haben dafür zu sorgen, daß nur die dafür autorisierten Personen am
Robotersystem arbeiten. Der Betreiber muß den Verantwortungsumfang für den Bediener
festlegen und ihm das Ablehnen sicherheitswidriger Anweisungen Dritter ermöglichen.

4.1.1 Betreiber
Die Zuständigkeiten bei der Bedienung des Robotersystems und bei allen sonstigen Arbei-
ten am Robotersystem oder in dessen unmittelbarer Umgebung müssen durch den Betrei-
ber klar festgelegt und eingehalten werden, damit unter dem Aspekt der Sicherheit keine un-
klaren Kompetenzen auftreten.
In bestimmten, selbstgewählten Abständen sollte der Betreiber das sicherheits– und gefah-
renbewußte Arbeiten des Personals unter Beachtung der vorliegenden Betriebsanleitung
kontrollieren.
Zu schulendes, anzulernendes, einzuweisendes oder im Rahmen einer allgemeinen Ausbil-
dung befindliches Personal darf nur unter ständiger Aufsicht einer erfahrenen Person am Ro-
botersystem tätig werden.
Arbeiten an der Elektrik des Robotersystems dürfen nur von einer Elektrofachkraft oder von
unterwiesenen Personen unter Leitung und Aufsicht einer Elektrofachkraft gemäß den allge-
mein gültigen elektrotechnischen Regeln vorgenommen werden.
Am hydropneumatischen Gewichtsausgleichssystem (falls vorhanden) darf nur Personal
mit speziellen Kenntnissen und Erfahrungen in Hydraulik und Pneumatik arbeiten.
Durch entsprechende Anweisungen und Kontrollen muß der Betreiber Sauberkeit und Über-
sichtlichkeit des Arbeitsplatzes und des Umfeldes des Robotersystem gewährleisten.

4.1.2 Bediener

Der Bediener muß sich dem Betreiber gegenüber verpflichten, eingetretene Ver-
änderungen am Robotersystem, die die Sicherheit beeinträchtigen oder dies ver-
muten lassen, sofort zu melden.
Der Betreiber hat dafür zu sorgen, daß das Robotersystem immer nur in ein-
wandfreiem Zustand betrieben wird.

4.2 Gefahrenbereich
Die Gefahrenbereiche des Robotersystems, d. h. Bereiche, in denen sich der Roboter samt
Werkzeug, Zubehör und Zusatzausrüstungen bewegt, sind grundsätzlich gemäß Norm für
Industrieroboter–Sicherheit so abzusichern, daß ein Eindringen von Personen und Gegen-
ständen in diese Bereiche verhindert wird, oder, falls ein solches Eindringen dennoch erfolgt,
das Robotersystem durch einen Stop– oder NOT–AUS–Befehl sicher zum stillstand ge-
bracht und ausgeschaltet wird. Diese Absicherung obliegt dem Betreiber.
Die Gefahrenbereiche müssen in ihrer Größe nach den maximalen Anhaltewegen des
Roboters bemessen werden.
Die Farbkennzeichnungen der Gefahrenbereiche am Boden sowie die der Schilder müssen
sich von anderen Farbkennzeichnungen innerhalb der Maschine oder maschinellen Anlage,
in die das Robotersystem integriert ist, in Form, Farbe und Ausführung deutlich unterschei-
den.

SicherheitKRC 02.04.00 de

9 von 24
Allgemein

Ist für Umrüst–, Einstell–, Wartungs– und Instandsetzungsarbeiten an der Ma-


schine oder maschinellen Anlage, in die das Robotersystem integriert ist, ein
Aufenthalt im Bewegungsbereich des Robotersystems unvermeidlich, müssen
die Sicherheitsmaßnahmen grundsätzlich so ausgestattet sein (z.B. durch das
Betätigen von Zustimmungsschaltern), daß bei Auftreten einer ungewollten Si-
tuation das Robotersystem sofort ausgeschaltet wird.

Bei Arbeiten im Gefahrenbereich des Roboters darf dieser, falls unbedingt not-
wendig, höchstens im Einrichtbetrieb (T1) mit Zustimmungsschalter und Tippbe-
trieb in Handverfahrgeschwindigkeit bewegt werden, so daß Personen genug
Zeit haben, sich entweder von gefahrbringenden Bewegungen zurückzuziehen
oder den Roboter stillzusetzen.

Alle Personen im Umkreis des Roboters müssen rechtzeitig von der bevorstehenden Bewe-
gung des Roboters in Kenntnis gesetzt werden.
Nach Möglichkeit sollte sich immer nur eine Person im Gefahrenbereich aufhalten.
Sind mehrere Personen im Gefahrenbereich tätig, muß jede einen Zustimmungsschalter be-
nutzen. Zusätzlich muß zwischen allen ständig Blickkontakt und ungehinderte Sicht zum Ro-
botersystem bestehen. Die Zuständigkeiten für die einzelnen Arbeiten und Personen müs-
sen klar und nachvollziehbar festgelegt sein.

Bei Sensorbetrieb muß mit unerwarteten Bewegungen und Bahnkorrekturen des


Roboters gerechnet werden, sofern der Hauptschalter am Steuerschrank des Ro-
boters nicht in Stellung “AUS” gebracht worden ist.

Wird am ausgeschalteten Roboter und innerhalb des Arbeitsbereiches gearbei-


tet, ist der Roboter vorher so zu verfahren, daß er sich mit und ohne Traglastein-
wirkung nicht selbständig bewegen kann. Ist dies nicht möglich, muß der Ro-
boter entsprechend abgesichert werden.

Bauteile, Werkzeuge und andere Gegenstände dürfen durch die Bewegung des Roboters
weder eingeklemmt werden, noch zu Kurzschlüssen führen oder herabfallen.
Roboterbewegungen, die zu mittelbaren Gefährdungen von Personen oder Sachen führen,
sind zu verhindern.
Gefährdungen, die von der Peripherie des Roboters, z.B. von Greifer, Conveyor, Zuführun-
gen oder weiteren Robotern ausgehen, sind zu beachten.

4.3 Sicherheitseinrichtungen
Es ist jede Arbeitsweise zu unterlassen, die die Funktions– und Bedienersicherheit des Ro-
botersystems beeinträchtigt.

Es dürfen grundsätzlich keine funktionsfähigen Sicherheitseinrichtungen de-


montiert oder außer Betrieb gesetzt werden, wenn diese das Robotersystem di-
rekt oder indirekt betreffen und an diesem Robotersystem Austausch–, Einstell–,
Wartungs– und Instandsetzungsarbeiten durchgeführt werden. Es droht Gefahr
für Leib und Leben, wie Quetschungen, Augenverletzungen, Knochenbrüche,
schwere innere und äußere Verletzungen usw.

Ist eine Demontage solcher Sicherheitseinrichtungen während der genannten Arbeiten am


Robotersystem dennoch nicht zu umgehen, so muß die Maschine oder maschinelle Anlage,
in die das Robotersystem integriert ist, genau nach Vorschrift, vor allem unter Beachtung der
mit dem Symbol gekennzeichneten Textteile der betroffenen Betriebsanleitungen,
außer Betrieb gesetzt und gegen unbefugte Inbetriebnahme gesichert werden. Unmittelbar
nach Abschluß der Austausch–, Einstell–, Wartungs– und Instandsetzungsarbeiten müssen
die Sicherheitseinrichtungen remontiert und auf einwandfreie Funktion geprüft werden.

SicherheitKRC 02.04.00 de

10 von 24
4.4 Ein–, An– und Umbauten
Alle eigenmächtigen Umbauten und Veränderungen am Robotersystem sind nicht
gestattet.
Kundenspezifische Ein–/Anbauten dürfen nur in Absprache mit dem für Sie zuständi-
gen Vertriebsbeauftragen der KUKA Roboter GmbH vorgenommen werden.
Das Robotersystem einschließlich Zubehör und Zusatzausrüstungen darf nicht mit
Produkten fremder Hersteller, deren Verwendung nicht ausdrücklich in der vorlie-
genden Betriebsanleitung oder dem Teilekatalog des Robotersystems erlaubt ist,
ausgestattet oder betrieben werden.
Bei Verwendung von vorgeschriebenen Betriebsstoffen, die als aggressiv und giftig ausge-
wiesen sind, muß eine entsprechende Schutzkleidung getragen werden. Warnhinweise
müssen beachtet werden.
Die in der vorliegenden Betriebsanleitung vorgeschriebenen Wartungszyklen müssen einge-
halten werden.
Die vorliegende Betriebsanleitung muß ständig am Einsatzort des Robotersystems (z.B. im
Werkzeugfach oder dem dafür vorgesehenen Behälter) griffbereit aufbewahrt werden –
gleichgültig, ob als Handbuch oder CD–ROM.

4.5 Sicherheitsbelehrungen
Das mit der Durchführung von Aufstellung, Austausch, Einstellung, Bedienung, Wartung und
Instandsetzung beauftragte Personal muß vor Arbeitsbeginn über Art und Umfang der Arbei-
ten sowie über mögliche Gefahren belehrt werden. Über Gegenstand und Umfang der Be-
lehrungen sind Aufzeichnungen zu führen.
Das erwähnte Personal ist halbjährlich mündlich und alle zwei Jahre schriftlich über die Ein-
haltung von Sicherheitsvorschriften und –hinweisen zu belehren. Die Belehrung kann durch
Sicherheitsbeauftragte des Betreibers und/oder im Rahmen einer KUKA Roboter GmbH –
Schulung durchgeführt werden. Belehrungen sind außerdem nach besonderen Vorfällen
oder technischen Änderungen durchzuführen.

4.6 Sicherheitsfunktionen
Zu den Sicherheitsfunktionen gehören:
– eingeschränkter Bewegungsbereich
– NOT–AUS
– Zustimmungsschalter
– Verriegelung technischer Schutzeinrichtungen
Die Schaltkreise für NOT–AUS, Zustimmungsschalter und Verriegelung technischer
Schutzeinrichtungen entsprechen der Steuerungskategorie 3 nach EN 954–1.
4.6.1 Eingeschränkter Bewegungsbereich – Arbeitsraumbegrenzung
Der Roboter ist standardmäßig für die Anbringung von verstellbaren mechanischen Anschlä-
gen in den drei Grundachsen zur Begrenzung des Bewegungsraumes vorbereitet. Als zu-
sätzliche Massnahme kann der Bewegungsraum aller Achsen über einstellbare Softwa-
reendschalter begrenzt werden.
4.6.2 NOT–AUS
Der NOT–AUS Taster des Robotersystems befindet sich auf dem KCP, das zugleich als Pro-
grammier– und als Bediengerät benutzt wird.
Ein Auslösen der NOT–AUS Funktion bewirkt in den Testbetriebsarten einen Sicherheitshalt
mit unverzüglichem Abschalten der Energie zu den Antrieben, generatorischen Stop und
Einfallen der Haltebremsen.
In den Automatikbetriebsarten bewirkt ein NOT–AUS ein gesteuertes Stillsetzen, wobei die
Energie zu den Antrieben beibehalten wird um ein geführtes Stillsetzen zu erzielen. Die
Energie wird erst dann unterbrochen, wenn der Stillstand erreicht ist.

SicherheitKRC 02.04.00 de

11 von 24
Allgemein

4.6.2.1 Externer NOT–AUS


Ist es auf Grund der Gefahrenlage erforderlich zusätzliche NOT–AUS Einrichtungen zu in-
stallieren oder müssen mehrere NOT–AUS Systeme miteinander verkettet werden, so kann
dies über eine speziell dafür vorgesehene Schnittstelle realisiert werden. Siehe Kap. Peri-
pherieschnittstelle.

4.6.3 Zustimmungsschalter
Am KCP sind drei dreistufige Zustimmungsschalter angebracht, mit denen sich in den Be-
triebsarten Test 1 und Test 2 die Antriebe einschalten lassen. Jeder dieser Zustimmungs-
schalter hat drei Stellungen bei denen jeweils nur die mittlere Stellung eine Bewegung des
Roboters zulässt. In jeder anderen Stellung werden gefahrbringende Bewegungen sicher
angehalten bzw. die Antriebe sicher abgeschaltet.

4.6.3.1 Externer Zustimmungsschalter


Die Funktion externer Zustimmungsschalter ermöglicht den Anschluss einer zusätzlichen
Zustimmungseinrichtung. Ist es erforderlich, dass sich beim Testen eine zweite Person in
dem durch Schutzeinrichtungen abgegrenzten Raum aufhält, dann ist dieses nur erlaubt
wenn diese Person ebenfalls eine Zustimmungseinrichtung benutzt.

4.6.4 Verriegelung trennender Schutzeinrichtungen (Bedienerschutz)


Die Robotersteuerung besitzt einen sicherheitsgerichteten 2–kanaligen Eingang an den die
Verriegelung trennender Schutzeinrichtungen angeschlossen werden kann. In den Automa-
tikbetriebsarten bewirkt ein Öffnen dieses Eingangs ein gesteuertes Stillsetzen, wobei die
Energie zu den Antrieben beibehalten wird um ein geführtes Stillsetzen zu erzielen. Die
Energie wird erst dann unterbrochen, wenn der Stillstand erreicht ist. Automatikbetrieb wird
solange verhindert, bis die an diesem Eingang angeschlossene Schutzeinrichtung geschlos-
sen ist. Im Testbetrieb hat dieser Eingang keine Wirkung.
Die Schutzeinrichtung muss so gestaltet werden dass die Quittierung nur von ausserhalb
des abgegrenzten Raumes erfolgen kann.

4.7 Vorkehrung für Bewegung in Notfällen


Mit der Vorkehrung für Bewegungen in Notfällen kann der Roboter nach einem Störfall me-
chanisch über die Grundachs–Antriebsmotoren und je nach Robotertyp teilweise auch über
die Handachs–Antriebsmotoren bewegt werden. Sie darf nur in Ausnahmesituationen und
Notfällen (z. B. Befreiung von Personen) verwendet werden.

Die Vorkehrung für Bewegung in Notfällen darf nur verwendet werden, wenn der
Hauptschalter am Steuerschrank des Roboters in Stellung “AUS” gebracht und
mit Vorhängeschloß gegen unbefugtes Wiedereinschalten gesichert ist.

Wurde eine Roboterachse mit der Vorkehrung für die Bewegung in Notfällen be-
wegt, müssen alle Achsen des Roboters neu justiert werden.

Das manuelle Bewegen des Roboters ist ausschließlich mit der von KUKA Roboter GmbH
gelieferten Drehvorkehrung (Option) durchzuführen. Durch Aufsetzen der Drehvorrichtung
auf die Achse des Motors (Schutzkappe entfernen!) kann diese gedreht werden. Hierbei sind
der Widerstand der mechanischen Motorbremse und ggf. zusätzliche Achslasten zu über-
winden. Anschließend ist die Schutzkappe wieder anzubringen.

Die Motoren erreichen während des Betriebes Temperaturen, die zu Hautver-


brennungen führen können. Es sind geeignete Schutzmaßnahmen zu ergreifen.

SicherheitKRC 02.04.00 de

12 von 24
5 Sicherheitskennzeichnung
5.1 Allgemeines
Am Roboter sowie am und im Steuerschrank sind Leistungsschild, Warnhinweise und Si-
cherheitssymbole befestigt. Die Verbindungsleitungen zwischen Roboter und Steuer-
schrank sowie elektrische und andere Leitungen im und am Roboter bzw. Steuerschrank tra-
gen Bezeichnungsschilder, zum Teil auch Positionsmarkierungen.
Alle diese Schilder, Hinweise, Symbole und Markierungen sind sicherheitsrelevante Teile
des Robotersystems. Sie müssen über die ganze Lebensdauer des jeweiligen Roboters
bzw. Steuerschranks am festgelegten Platz gut sichtbar befestigt bleiben.

Es ist verboten,
– Leistungsschilder,
– Warnhinweise,
– Sicherheitssymbole,
– Bezeichnungsschilder und
– Leitungsmarkierungen
zu entfernen, zu überkleben, zu übermalen oder in anderer Weise die klare Er-
kennbarkeit zu behindern.

5.2 Roboter
Siehe Dokumentations–Modul Roboter, “Technische Daten”.

5.3 Steuerschrank
Siehe Dokumentations–Modul Steuerschrank, “Wartung”.

SicherheitKRC 02.04.00 de

13 von 24
Allgemein

6 Planungs– und Bauhinweise


Bei Planung und Bau einer roboterbestückten maschinellen Anlage sind folgende Maßnah-
men zu beachten.

6.1 Fundamente und Unterbau


Es ist sicherzustellen, daß die von KUKA Roboter GmbH geforderten Maße und Qualitäten
der Fundamente, des Unterbaus oder der Deckenkonstruktion eingehalten werden. Maßab-
weichungen und Qualitätsunterschreitungen sind nicht zulässig.

6.2 Belastungen des Roboters


Es ist zu prüfen, ob die im Roboterbetrieb zu erwartenden Momente, Beschleunigungen, Ge-
wichte und anderen mechanischen bzw. klimatischen Belastungen in dem für den Roboter
zugelassenen Bereich liegen.

6.3 Sicherheits– und Arbeitsbereich


Arbeitsbereiche müssen auf das erforderliche Mindestmaß beschränkt werden. Sie können
zusätzlich zur Software–Begrenzung mit verstellbaren mechanischen Anschlägen (Zubehör
“Arbeitsbereichsbegrenzung”) abgesichert werden. Die Arbeitsbereiche müssen den Si-
cherheitsbedürfnissen entsprechen, d. h. eine Gefährdung von Personen oder Sachen muß
unter allen Umständen ausgeschlossen werden.
Die Gefahrenbereiche, d. h. Bereiche, in denen sich Roboter bewegen, sind durch Absper-
rungen zu sichern. Diese Sicherung kann unter anderem durch Schutzzäune, Lichtschran-
ken, Lichtvorhang, Raumabtastungen erfolgen.
Feststehende Schutzeinrichtungen (Schutzzäune) müssen so ausgeführt werden, daß sie
vorhersehbaren Betriebs– und Umgebungskräften standhalten.
Schutzzäune sind unter Berücksichtigung von DIN EN 294, DIN EN 349 und DIN EN 811
auszulegen. Sie sind so hoch auszuführen, daß ein Übergreifen durch Personen unmöglich
ist. Die Größe der Zaunfelder ist abhängig von der Zaunfestigkeit zu bemessen, ein Durch-
biegen muß konstruktiv ausgeschlossen werden. Die Zahl der Zugänge (Türen) im Schutz-
zaun ist auf ein Minimum zu beschränken. Vorzugsweise sollte nur eine Tür eingebaut wer-
den. Alle Zugänge sind mit der robotereigenen “Verriegelung technischer
Schutzeinrichtungen” oder mit übergeordneten NOT–AUS–Einrichtung zu verknüpfen.
Hier ein Beispiel für den Anschluß von Türendschaltern in Verbindung mit einem Taster für
die Freigabe bei geschlossener Schutztür.

SicherheitKRC 02.04.00 de

14 von 24
L+ A1 (+) Schutztürwächter
Ue z.B. PST3 Fabr. Pilz

L- A2 (-)

= Schutztüre offen
S11
= Schutztüre geschlossen

= betätigtes Element
S12

Türendschalter S23

S24

X1

Taster für die Freigabe bei


geschlossener Schutztüre X2
13 14 23 24
Dieser Taster muß außerhalb des
durch die Schutzeinrichtungen
abgegrenzten Raumes angebracht
werden.

7 8 25 26
Peripheriestecker X11

Testausgang B
Schutzeinrichtung Kanal A
Testausgang A

Schutzeinrichtung Kanal B
KR C2

3 9 22 28
Peripheriestecker X11
Testausgang B

Bedienerschutz Kanal B
Bedienerschutz Kanal A
Testausgang A

KR C3

Unabhängig von Absicherungsmaßnahmen ist der Gefahrenbereich durch Farbkennzeich-


nungen am Boden auszuweisen. Diese Farbkennzeichnungen sind so auszuführen, daß
sich von den anderen Farbkennzeichnungen innerhalb der Maschine oder maschinellen An-
lage, in die das Robotersystem integriert ist, in Form, Farbe und Ausführung deutlich unter-
scheiden.

SicherheitKRC 02.04.00 de

15 von 24
Allgemein

6.4 Kollisionsschutz
Der Roboter kann zum Schutz gegen Kollision mit einer Abschaltsicherung (Zusatzausrü-
stung) ausgerüstet werden. Diese ist auf jeden Fall mit dem NOT–AUS–Kreis des Roboter-
systems und der übergeordneter Steuerung zu verbinden.
Bei Conveyor–Betrieb müssen zusätzliche Maßnahmen getroffen werden, die bei Auslösen
der NOT–AUS–Funktion sicherstellen, daß der Conveyor nicht mit dem Roboter kollidieren
kann. Das Nachlaufen des Conveyors muß im Kollisionsbereich durch entsprechende Maß-
nahmen verhindert werden; dies kann z. B. durch kurze Systeme mit Übergabestationen er-
reicht werden.

6.5 Gewichtsausgleich
Einige Robotertypen sind mit einem hydropneumatischen oder mechanischen Gewichts-
ausgleichssystemen versehen.

Bei Arbeiten an den Gewichtsausgleichssystemen müssen die von die-


sem Systemen unterstützten Teile des Roboters gegen Eigenbewegung
in (+) – oder (–) – Richtung gesichert werden.

Die hydropneumatischen Gewichtsausgleiche sind nach der Druckge-


räte–Richtlinie 97/23/EG gefertigt. Der Betreiber ist verpflichtet die jewei-
ligen Gesetze und Verordnungen des Aufstellungslandes zu beachten, in
Deutschland die Betriebsicherheits–Verordnung; §15 und Anhang 5.2
(KAT III, Fluidgruppe 2).

6.6 Werkzeugwechsel
Für den Werkzeugwechsel sind Aus–/Einbauplätze vorzusehen. Sie müssen für den Bedie-
ner außerhalb des Gefahrenbereichs erreichbar sein und vom Roboter über einen gesonder-
ten Programmschritt angefahren werden können.

6.7 Sicherheitstrittplatten
Falls es unvermeidlich ist, daß sich Bedienungspersonal im Bewegungsbereich des Robo-
ters aufhält, (z.B. beim Zuführen von Bauteilen), so ist der Gefahrenbereich über eine Tritt-
platte oder einen Lichtvorhang abzusichern. Das kann dadurch geschehen, daß die Tritt-
platte oder der Lichtvorhang mit Bereichsendschaltern (Zubehör
“Arbeitsbereichsüberwachung”) oder einem Endschalter für die Roboterausgangsstellung
verknüpft und mit dem NOT–AUS–Kreis verbunden wird.

6.8 Interface–Eigenschaften
Alle mit der Robotersteuerung korrespondierenden Signale müssen bezüglich Spannung
und Ausgangsbelastung so ausgelegt sein, daß sie die zulässigen Werte an der Steuerung
nicht überschreiten.

6.9 NOT–AUS–Einrichtung
Zur Festlegung der notwendigen Anzahl der Befehlsgeräte für das Stillsetzen im Notfall ist
unabdingbar eine vollständige Gefährdungsanalyse durchzuführen.
Die Wirksamkeit der NOT–AUS–Einrichtung, ist durch eine regelmäßige wiederkehrende
Überprüfung sicherzustellen.
Sind mehrere Roboter, Maschinen oder Maschinenteile für ein Zusammenwirken konzipiert,
müssen die NOT–AUS–Einrichtungen der Teilsysteme so verschaltet werden, daß die
NOT–Befehlseinrichtung nicht nur einen Roboter stillsetzen kann, sondern auch alle vor–
oder nachgeschalteten Roboter oder Einrichtungen, falls deren weiterer Betrieb eine Gefahr
darstellen kann.

SicherheitKRC 02.04.00 de

16 von 24
6.10 Ausgangsvorbesetzung
Die Ausgangsvorbesetzung ist entsprechend dem übergeordneten Maschinenkonzept aus-
zuführen, d. h. Signale für Haltefunktionen dürfen bei Abschalten der Robotersteuerung
nicht gelöscht werden, wenn dadurch Personen oder Sachen gefährdet werden.

6.11 Werkzeug und Zusatzausrüstung


Werkzeug und Zusatzausrüstung für den Roboter sind, sofern sie nicht von KUKA geliefert
wurden, so auszulegen, daß sie dem Sicherheitsstand des Robotersystems entsprechen.
Die für die übergeordnete maschinelle Anlage geltenden Bestimmungen müssen auf Werk-
zeug und Zusatzausrüstung sinngemäß angewendet werden (z. B. Sicherung des Primär-
kreises bei Schweißzangen).

6.12 Laser–Systeme
Wird das Robotersystem in Verbindung mit einem Laser–System betrieben, ist die EN
60825–1 unbedingt zu beachten. Die Verantwortung hierfür liegt bei dem der das Laser–Sy-
stem integriert.

Laser können zu schwersten gesundheitlichen Schäden führen.

6.13 Vorschriften
Die übergeordnete maschinelle Anlage ist vor dem Einbau des Robotersystems auf Einhal-
tung von Sicherheitsvorschriften des Betreibers, Vorschriften der allgemeinen Unfallverhü-
tung und Vorschriften der Berufsgenossenschaften zu prüfen. Abschnitt 4.5 beachten.

SicherheitKRC 02.04.00 de

17 von 24
Allgemein

7 Aufstellung, Betrieb, sonstige Arbeiten

Persönlicher Schutz:
Alle Personen, die im Gefahrenbereich des Robotersystems arbeiten, müssen
Schutzbekleidung tragen. Hierzu zählen insbesondere Sicherheitsschuhe und
enganliegende Kleidung. Zusätzlich sind die Vorschriften der Berufsgenossen-
schaften zu beachten.

Die Motoren, das hydropneumatische Gewichtsausgleichssystem und die Hand


des Roboters können Betriebstemperaturen erreichen, die zu Hautverbrennun-
gen führen können. Arbeiten an diesen Teilen dürfen erst vorgenommen werden,
wenn sie ausreichend abgekühlt sind.

7.1 Anschlußbedingungen
Die von KUKA Roboter GmbH geforderten Anschlußbedingungen bezüglich Leitungsquer-
schnitt, Absicherung, Spannung und Frequenz sind einzuhalten. Die einschlägigen Vor-
schriften der zuständigen Energieversorgungsunternehmen sind zu beachten.

7.2 Transport
Die vorgeschriebenen Transportstellungen des Roboters müssen beachtet werden. Alle
Winkelangaben hierzu beziehen sich auf den mechanischen Nullpunkt der jeweiligen Robo-
terachse.

Sind am Grundgestell des Roboters Staplertaschen angebracht, müssen die Ga-


beln des Gabelstaplers durch diese Taschen geführt werden. Jede andere Auf-
nahme des Roboters mit dem Gabelstapler ist in diesem Fall verboten!

Einzelteile und größere Baugruppen sind beim Austausch sorgfältig an Hebezeugen zu be-
festigen und zu sichern, so daß hiervon keine Gefahr ausgehen kann. Es dürfen nur ge-
eignete und technisch einwandfreie Hebezeuge sowie Lastaufnahmemittel mit ausreichen-
der Tragkraft verwendet werden.

Nicht unter schwebenden Lasten aufhalten oder arbeiten!

Mit dem Anschlagen von Lasten und Einweisen von Kranfahrern dürfen nur erfahrene Perso-
nen beauftragt werden. Der Einweiser muß sich in Sichtweite des Bedieners aufhalten oder
mit ihm in Sprechkontakt stehen.

7.3 UV– und Verschmutzungsschutz

In unmittelbarer Nähe des offenen Steuerschrankes darf u. a. wegen UV–Strah-


len–Gefährdung der EPROMs nicht geschweißt werden.
Das Eindringen von Schmutz (z. B. Späne, Wasser, Staub) in den Steuerschrank
muß verhindert werden. Bei besonders starker Schmutz– und Staubentwicklung
während der Aufstellphase müssen Steuerschrank und Roboter abgedeckt wer-
den.

SicherheitKRC 02.04.00 de

18 von 24
7.4 Inbetriebnahme
Bevor das Robotersystem in Betrieb genommen wird, sind alle Schutzeinrichtungen, End-
schalter und sonstigen Schutzmaßnahmen auf Funktion und Vollständigkeit zu prüfen. An
den Systemelementen Roboter und Steuerschrank ist eine Kontrolle auf eventuell vorhan-
dene Fremdkörper durchzuführen. Im Gefahrenbereich (Bewegungsbereich des Roboters)
dürfen sich während der Inbetriebnahme keine Personen oder Gegenstände befinden. Bei
der Erstinbetriebnahme ist darauf zu achten, daß die richtigen Maschinendaten eingegeben
worden sind.

Zur Einhaltung der Schutzart IP54 (KR C2) und IP 20 (KR C3) darf der Steuerschrank
nur mit allen vorgesehenen Abdeckblechen für nicht vorhandene Geräte und Optionen
(z.B. Stecker, Umrichter, Laufwerke) betrieben werden.

7.5 Software

Für den Rechner der Steuerung wurde eine spezielle Software entwickelt. Die
Software fängt die meisten Fehleingaben und Fehlbedienungen ab. Nähere In-
formationen hierzu in der vorliegenden Betriebsanleitung.

Die ausgelieferte Hard– und Software wurden auf Virenfreiheit geprüft. Es liegt in der Verant-
wortung des Betreibers sich immer des aktuellsten Virenscanners zu bedienen.

7.6 Betrieb
Während das Robotersystem in Betrieb ist, müssen alle Sicherheitsvorschriften eingehalten
werden. Veränderungen an Schutzmaßnahmen und Sicherheitseinrichtungen sind unzuläs-
sig. Bei Störungen ist der Roboter sofort außer Betrieb zu nehmen und bis zur Beseitigung
der Störung so abzusichern, daß eine unbefugte Wiederinbetriebnahme ausgeschlossen ist
und Personen oder Sachen nicht gefährdet werden können. Über Störungen, deren Ursache
und Beseitigung sind entsprechende Aufzeichnungen zu führen.
Mindestens einmal pro Schicht muß das Robotersystem auf äußerlich erkennbare Schäden
und Mängel geprüft werden. Eingetretene Veränderungen, auch Veränderungen des Be-
triebsverhaltens, sind sofort der zuständigen Stelle oder Person zu melden. Roboter ggf. so-
fort stillsetzen und sichern!

7.7 Außerbetriebnahme
Sind Austausch–, Einstell–, Wartungs– und Instandsetzungsarbeiten durchzuführen, so ist
das Robotersystem nach Vorschrift der vorliegenden Betriebsanleitung außer Betrieb zu
nehmen und gegen unbefugtes Wiedereinschalten zu sichern (z. B. Vorhängeschloß,
Schlüsselschalter). Ist bei bestimmten Arbeiten die Bewegbarkeit des Systems unbedingt
erforderlich, so sind die diesbezüglichen Ausführungen in Abschnitt 4.3 besonders zu beach-
ten.
Auch bei ausgeschalteter und gesicherter Steuerung ist mit möglichen Bewegungen des Ro-
boters zu rechnen.

SicherheitKRC 02.04.00 de

19 von 24
Allgemein

7.8 Verschiedenes
Bei Wartungs– und Instandsetzungsarbeiten gelöste Schraubenverbindungen müssen hin-
terher stets vorschriftsmäßig festgeschraubt werden.
Bei Arbeiten über Körperhöhe müssen sicherheitsgerechte Aufstiegshilfen und Arbeitsbüh-
nen verwendet werden. Roboter und Steuerschrank dürfen nicht als Aufstiegshilfen benutzt
werden.
Für sichere und umweltschonende Entsorgung von Betriebs– und Hilfsstoffen sowie Aus-
tauschteilen sorgen!

SicherheitKRC 02.04.00 de

20 von 24
8 EGB–Vorschriften
8.1 Allgemeines
Die EGB – Vorschriften (EGB: Elektrostatisch Gefährdete Bauelemente bzw. Baugruppen)
sind während der Handhabung aller Baugruppen stets einzuhalten. Diese Baugruppen sind
mit hochwertigen Bausteinen bestückt und sind sehr empfindlich gegen elektrostatische Ent-
ladungen (ESD).
ESD verursacht nicht nur den Totalausfall von Bauelementen, sondern kann eventuell zur
Teilschädigung eines ICs oder Bauelements führen, was wiederum zur Herabsetzung der
Lebensdauer oder zu sporadischen Störungen von vorläufig noch funktionsfähigen Teilen
führt.

Aus diesen Gründen müssen nicht nur neue Baugruppen sondern auch
defekte Baugruppen die zur Reparatur anstehen sehr sorgfältig, EGB–ge-
recht behandelt werden.

8.2 Handhabung von EGB–Baugruppen


G Bauelemente dürfen nur dann ausgepackt und berührt werden, wenn
– man EGB–Schuhe oder EGB–Schuherdungsstreifen trägt oder
– man über ein EGB–Armband über einen Sicherheitswiderstand von 1  ständig ge-
erdet ist
G Vor dem Berühren einer elektronischen Baugruppe muß der eigene Körper entladen wer-
den (berühren eines leitfähigen, geerdeten Gegenstandes)
G Umgebung: antistatische Tischauflagen, leitende Fußbodenbeläge, hohe relative Luft-
feuchte, geerdete Tische und Stühle (über Schutzwiderstand 1 M)
G Elektronische Baugruppen dürfen nicht in die Nähe von Datensichtgeräten, Monitoren,
Fernsehgeräten gebracht werden
G An Baugruppen darf nur dann gemessen werden, wenn
– das Meßgerät geerdet ist (z.B. über Schutzleiter) oder
– vor dem Messen bei potentialfreiem Meßgerät der Meßkopf kurzzeitig entladen wird
(z.B. metallblankes Steuerungsgehäuse berühren).
G elektronische Bauelemente nur dann auspacken und berühren wenn es notwendig ist.
Der beste Schutz gegen die Folgen elektrostatischer Entladungen ist, diese Ladungen gar
nicht entstehen zu lassen. Daher ist für eine optimale EGB–Handhabung die Erdung aller
möglichen Potentialträger unbedingt erforderlich (siehe Abbildung).

Abb. 1 EGB–Handhabung

SicherheitKRC 02.04.00 de

21 von 24
Allgemein

8.3 EGB–Gerechtes Verpacken


Bei der Verpackung von EGB–gefährdeten Baugruppen und Bauelementen ist grundsätzlich
zu Beachten, daß nur leitfähige und antistatische Verpackungsmaterialien, wie z.B. metalli-
sierte oder graphithaltige Verpackungsstoffe, antistatische Folien etc., verwendet werden.

SicherheitKRC 02.04.00 de

22 von 24
9 Angewandte Richtlinien und Normen
Normen Titel
97/23/EG Richtlinie 97/23/EG des Europäischen Parlaments und des
Rates vom 29. Mai 1997 zur Angleichung der Rechtsvorschriften
der Mitgliedsstaaten über Druckgeräte (Druckgeräte–Richtlinie)
98/37/EG Richtlinie 98/37/EG des Europäischen Parlaments und des
Rates vom 22. Juni 1998 zur Angleichung der Rechts– und Ver-
waltungsvorschriften der Mitgliedsstaaten für Maschinen; Aus-
gabe: 1998–06–22
EN 292–1 DIN EN 292–1, Ausgabe: 1991–11
Sicherheit von Maschinen; Grundbegriffe, allgemeine Gestal-
tungsleitsätze; Teil 1: Grundsätzliche Terminologie, Methodik;
Deutsche Fassung EN 292–1: 1991
EN 292–2 DIN EN 292–2, Ausgabe: 1995–06
Sicherheit von Maschinen; Grundbegriffe, allgemeine Gestal-
tungsleitsätze; Teil 2: Technische Leitsätze und Spezifikationen;
Deutsche Fassung EN 292–2: 1991 + A1: 1995
EN 294 DIN EN 294, Ausgabe: 1992–08
Sicherheit von Maschinen; Sicherheitsabstände gegen das Errei-
chen von Gefahrstellen mit den oberen Gliedmaßen; Deutsche
Fassung EN 294: 1992
EN 349 DIN EN 349, Ausgabe: 1993–06
Sicherheit von Maschinen; Mindestabstände zur Vermeidung des
Quetschens von Körperteilen; Deutsche Fassung EN 349: 1993
EN 418: 1992 DIN EN 418, Ausgabe: 1993–01
Sicherheit von Maschinen; NOT–AUS–Einrichtung; Deutsche
Fassung EN 418: 1992
EN 563 DIN EN 563, Ausgabe: 2000–01
Sicherheit von Maschinen; Temperaturen berührbarer Oberflä-
chen; Ergonomische Daten zur Festlegung von Temperatur–
grenzwerten für heiße Oberflächen (enthält Berichtigung AC:
1994 und Änderung A1: 1999); Deutsche Fassung EN 563: 1994
+ A1: 1999
EN 614–1: 1995 DIN EN 614–1, Ausgabe: 1995–04
Sicherheit von Maschinen; Ergonomische Gestaltungsgrund-
sätze; Teil 1: Begriffe und allgemeine Leistätze; Deutsche Fas-
sung EN 614–1: 1995
EN 775: 1992 DIN EN 775, Ausgabe: 1993–08
Industrieroboter; Sicherheit (ISO 10218:1992, modifiziert); Deut-
sche Fassung EN 775:1992 + AC: 1993
EN 811 DIN EN 811, Ausgabe: 1996–12
Sicherheit von Maschinen; Sicherheitsabstände gegen das Errei-
chen von Gefahrstellen mit den unteren Gliedmaßen; Deutsche
Fassung EN 811: 1996
EN 954–1: 1996 DIN EN 954–1, Ausgabe: 1997–03
Sicherheit von Maschinen; Sicherheitbezogene Teile von Steue-
rungen; Teil 1: Allgemeine Gestaltungsleitsätze; Deutsche Fas-
sung EN 954–1: 1996

SicherheitKRC 02.04.00 de

23 von 24
Allgemein

EN 60204–1: 1997 DIN EN 60204–1, Ausgabe: 1998–11


Sicherheit von Maschinen; Elektrische Ausrüstung von Maschi-
nen; Teil 1: Allgemeine Anforderungen (IEC 60204–1: 1997 +
Corrigendum 1998); Deutsche Fassung EN 60204–1: 1997
EN 60825–1: 1994 DIN EN 60825–1, Ausgabe: 2003–10
Sicherheit von Laser–Einrichtungen; Teil 1: Klassifizierung von
Anlagen, Anforderungen und Benutzer–Richtlinien (IEC 60825–1:
1993 + A1: 1997 + A2: 2001); Deutsche Fassung EN 60825–1:
1994 + A1: 2002 + A2: 2001
EN 50165–2–1 DIN EN 50165–2–1, Ausgabe: 1999–04
Allgemeine Prüfverfahren für das Verhalten von Kabeln und iso-
lierten Leitungen im Brandfall; Prüfung der vertikalen Flamme-
nausbreitung an einer Ader oder einem Kabel; Teil 2–1: Prüfver-
fahren; 1–kW–Flamme mit Gas–Luft–Gemisch; Deutsche Fas-
sung EN 50165–2–1: 1998
EN 55011 DIN EN 55011, Ausgabe: 2003–08
Indutrielle, wissenschaftliche und medizinische Hochfrequenzge-
räte (ISM–Geräte); Funktstörungen; Grenzwerte und Messver-
fahren (IEC/CISPR 11: 1997, modifiziert + A1: 1999 + A2: 2002);
Deutsche Fassung EN 55011: 1998 + A1: 1999 + A2: 2002
EN 61000–4–4 DIN EN 61000–4–4, Ausgabe: 2002–07
Elektromagnetische Verträglichkeit (EMV); Teil 4–4: Prüf– und
Messverfahren; Prüfung der Störfestigkeit gegen schnelle trans-
iente elektrische Störgrößen/Burst (IEC 61000–4–4: 1995 + A1.
2000 + A2: 2001); Deutsche Fassung EN 61000–4–4: 1995 +
A1: 2000 + A2: 2001
EN 61000–4–5 DIN EN 61000–4–5, Ausgabe: 2001–12
Elektromagnetische Verträglichkeit (EMV); Teil 4–5: Prüf– und
Messverfahren; Prüfung der Störfestigkeit gegen Stoßspannun-
gen (IEC 61000–4–5: 1995 + A1: 2000); Deutsche Fassung EN
61000–4–5: 1995 + A1: 2001
EN 61000–6–2 DIN EN 61000–6–2, Ausgabe: 2002–08
Elektromagnetische Verträglichkeit (EMV); Teil 6–2: Fachgrund-
normen; Störfestigkeit für Industriebereich (IEC 61000–6–2:1999,
modifiziert); Deutsche Fassung EN 61000–6–2: 2001
EN 61000–6–4 DIN EN 61000–6–4, Ausgabe: 2002–08
Elektromagnetische Verträglichkeit (EMV); Teil 6–4: Fachgrund-
normen; Fachgrundnorm Störaussendung für Industriebereich
(IEC 61000–6–4: 1997, modifiziert); Deutsche Fssung EN
61000–6–4: 2001
EN 61800–3 DIN EN 61800–3, Ausgabe: 2001–02
Drehzahlveränderbare elektrische Antriebe; Teil 3: EMV – Pro-
duktnorm einschließlich spezieller Prüfverfahren (IEC 61800–3:
1996); Deutsche Fassung EN 61800–3: 1996 + A11: 2000

SicherheitKRC 02.04.00 de

24 von 24
Index

A F
Absicherung, 18 Farbkennzeichnungen, 9
Absperrungen, 14 Feststehende Schutzeinrichtungen, 14
Anpassungen, 8 Fremdkörper, 19
Anschlußbedingungen, 18 Frequenz, 18
Arbeitsbereich, 14 Fundamente, 14
Arbeitsbereichsbegrenzung, 14
Arbeitsbühnen, 20 G
Aufstellung, 8, 18 Gefahren, 8
Aufstiegshilfen, 20 Gefahren für Leib und Leben, 5
Ausgangsvorbesetzung, 17 Gefahrenbereiche, 9
Außerbetriebnahme, 19 Gewichte, 14
Austausch, 8 Gewichtsausgleichssystem, 9, 18
Austauscharbeiten, 19 Greifer, 10

B H
Bauhinweise, 14 Haftungshinweis, 5
Bedienung, 8 Handverfahrgeschwindigkeit, 10
Belastungen, 14 Hauptschalter, 8
Bereichsendschalter, 16 Hebezeugen, 18
Berufsgenossenschaft, 17, 18 Hersteller–Erklärung, 5, 6
Hilfsstoffe, 20
Beschädigung des Robotersystems, 7
Hinweis, 7
Beschleunigungen, 14
Bestimmungsgemäße Verwendung, 6
Betrieb, 18, 19 I
Betriebsanleitung, 5 Inbetriebnahme, 6, 19
Betriebsstoffe, 11, 20 Industrieroboter, 5
Bezeichnungsschilder, 13 Instandsetzung, 8
Instandsetzungsarbeiten, 19
Interface–Eigenschaften, 16
C
Conveyor, 10, 16
K
Kleidung, 18
E Kollisionsschutz, 16
EG–Maschinenrichtlinien, 5
EG–Niederspannungsrichtlinie, 5 L
EGB–Richtlinien, 21
Leistungsschild, 13
Eindringen von Schmutz, 18 Leitungsquerschnitt, 18
Eingeschränkter Bewegungsbereich – Arbeits- Lichtschranken, 14
raumbegrenzug, 11
Lichtvorhang, 14, 16
Einstellarbeiten, 19
Einstellung, 8
Elektrofachkraft, 9
M
Elektromagnetischen Verträglichkeit, 5 Mängel, 19
EPROMs, 18 Momente, 14
Externer NOT–AUS, 12
Externer Zustimmungsschalter, 12 N

Index – i
Index

Nicht bestimmungsgemäße Verwendung, 5 Transport, 18


Norm für Industrieroboter–Sicherheit, 8 Transportstellung, 18
NOT–AUS, 11 Trittplatte, 16
NOT–AUS, 14, 16 Türendschalter, 14
NOT–AUS–Einrichtung, 16

P U
Persönlicher Schutz, 18 Umbauten, 11
Planungshinweise, 14 Unfälle, 7
Positionsmarkierungen, 13
Unfallverhütung, 17
Unsachgemäße Verwendung, 5
R Unterbau, 14
Raumabtastungen, 14 UV– und Verschmutzungsschutz, 18
Roboter, 5
Robotersystem, 5
V
S Veränderungen, 11
Schilder, 9, 13 Verbindungsleitungen, 5, 13
Schraubenverbindungen, 20 Verletzungen, 7
Schutzbekleidung, 18
Verriegelung trennender Schutzeinrichtungen
Schutzkleidung, 11 (Bedienerschutz), 12
Schutzmaßnahmen, 19 Verschmutzungsschutz, 18
Schutzzäune, 14
Viren, 19
Schwebende Lasten, 18
Vorhängeschloß, 8
Sensorbetrieb, 10
Vorkehrung für Bewegung in Notfällen, 12
Serien–Nummer, 6
Vorschriften, 17
Sicherheitsbelehrungen, 11
Sicherheitsbereich, 14
Sicherheitseinrichtungen, 10, 19
Sicherheitsfunktionen, 11 W
Sicherheitshinweise, 8 Warnhinweise, 11, 13
Sicherheitskennzeichnung, 13 Wartung, 8
Sicherheitsmaßnahmen, 10 Wartungsarbeiten, 19
Sicherheitsschuhe, 18
Wartungsvorschriften, 6
Sicherheitssymbole, 7, 13
Wartungszyklen, 11
Sicherheitstrittplatten, 16
Werk–Nummer, 6
Sicherheitsvorschriften, 8, 19
Software, 19 Werkzeugwechsel, 16
Spannung, 18 Wiederinbetriebnahme, 19
Steuerschrank, 5

Z
T
Technische Daten, 6 Zubehör, 11
Teilekatalog, 11 Zuführungen, 10
Tragkraft, 18 Zusatzausrüstungen, 11
Traglasteinwirkung, 10 Zustimmungsschalter, 12

Index – ii
SOFTWARE

KR C...

Konfiguration

KUKA System Software (KSS)


Release 4.1

Stand: 16.01.2004 Version: 06


KonfigurationPHR4.1.7 12.03.06 de

1 von 126
e Copyright 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

KonfigurationPHR4.1.7 12.03.06 de

2 von 126
Inhaltsverzeichnis

1 System konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 Bildschirmschoner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1.1 Einstellen des Bildschirmschoners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1.2 Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Das Menü “Konfig.” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1 Ein/Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1.1 Greifer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1.2 Automatik Extern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.2 E/A--Treiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.2.1 Konfigur. Bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.2.2 Treiber--Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.2.3 E/A Rekonfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.3 Submit--Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3.4 Statustasten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.5 Handverfahren (Override) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.5.1 Programmoverride--Schritte (POV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.5.2 Handoverride--Schritte (HOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.5.3 Mausposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.5.4 Mauskonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.6 Benutzergruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.3.7 Akt. Werkzeug/Basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.3.8 Werkzeugdefinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.9 Ein/Ausschaltoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3.9.1 Kaltstart erzwingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3.9.2 Ausschalten PowerOff Wartezeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3.10 Extras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.10.1 Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3.10.2 Paßwort ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.3.10.3 Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.3.10.4 Office--Option ein/aus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.3.10.5 Arbeitsraumüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.3.10.6 Technologieauswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.3.10.7 Reinitialisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.4 Das Menü “Datei” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.4.1 Archivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.4.2 Wiederherstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 System konfigurieren Experte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45


2.1 Variablenübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.1 Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 ConfigMon.ini bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2 Langtext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3 Geschwindigkeitsreduzierung beim Warmfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.4 Meldungen in Automatik Extern quittieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

KonfigurationPHR4.1.7 12.03.06 de

3 von 126
Konfiguration

2.5 Überwachung Steuerschrank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54


2.5.1 Außenlüfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.2 PC--Lüfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.3 Projektierbarer Ausgang für Hardwarewarnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.4 Motorkabelüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.6 Simulierte Ein--/Ausgänge (IO--Simulation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.6.1 Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.6.2 Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.6.3 Verwendete Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.7 5 Home--Positionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.7.1 Datei “\R1\MaDa\$machine.dat” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.7.2 Datei “\Steu\MaDa\$machine.dat” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.8 Arbeitsraumüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.8.1 Kartesische Arbeitsraumüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.8.1.1 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.8.1.2 Überbrücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.8.1.3 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.8.2 Achsspezifische Arbeitsraumüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8.2.1 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8.2.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.8.2.3 Überbrücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.8.2.4 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.9 Momentenbetrieb (Soft Servo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.9.1 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.9.1.1 Einschränkungen, Risiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.9.1.2 Beispiel Momentenbetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.9.2 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.9.3 Beispiele für die Weichschaltung von Achsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.9.3.1 Weichschaltung Achse 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.9.3.2 Weichschaltung Achse 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.9.4 Beispiel für Achse mit definiertem Moment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.9.5 Variablen für den Momentenbetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.10 Kollisionsüberwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.10.1 Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.10.2 Konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

3 Automatik Extern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.1 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.2 Schnittstelle konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.2.1 Eingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.2.2 Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.3 Automatischer Anlagenanlauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.4 Technologiespezifisches Organisationsprogramm CELL.SRC . . . . . . . . . . . . . . . . . . . . . . . . 101
3.5 Das Modul P00 (AUTOMATIK--EXTERN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5.1 Die Funktion EXT_PGNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5.1.1 Anforderung einer Programmnummer beim Leitrechner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5.1.2 Mitteilen des Erhalts einer gültigen Programmnummer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5.1.3 Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.5.2 Die Funktion EXT_ERR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.6 Signalbeschreibungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

KonfigurationPHR4.1.7 12.03.06 de

4 von 126
3.6.1 Eingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.6.1.1 PGNO_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.6.1.2 PGNO_LENGTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.6.1.3 PGNO_FBIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.6.1.4 REFLECT_PROG_NR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.6.1.5 PGNO_PARITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.6.1.6 PGNO_VALID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.6.1.7 EXT_START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.6.1.8 MOVE_ENABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.6.1.9 CHCK_MOVENA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.6.1.10 CONF_MESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.6.1.11 DRIVES_ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.6.1.12 DRIVES_OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.6.2 Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.6.2.1 STOPMESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.6.2.2 PGNO_REQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.6.2.3 PGNO_FBIT_REFL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.6.2.4 APPL_RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.6.2.5 PERI_RDY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.6.2.6 ALARM_STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.6.2.7 USER_SAF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.6.2.8 T1, T2, AUT, EXTERN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.6.2.9 ON_PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.6.2.10 NEAR_POSRET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.6.2.11 PRO_ACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.6.2.12 IN_HOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.6.2.13 ERR_TO_PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.6.3 Sonstiges Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.6.3.1 PGNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.6.3.2 PGNO_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.7 Signaldiagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.7.1 Auto. Anlagenanlauf und Normalbetr. mit Prog.--Nr.--Quitt. durch PGNO_VALID . . . . . . . . 116
3.7.2 Auto. Anlagenanlauf und Normalbetr. mit Prog.--Nr.--Quitt. durch $EXT_START . . . . . . . . 117
3.7.3 Wiederanlauf nach generat. Stop (Bedienerschutz und Wiederanlauf) . . . . . . . . . . . . . . . . . 118
3.7.4 Wiederanlauf nach bahntreuem NOT--AUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.7.5 Wiederanlauf nach Fahrfreigabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.7.6 Wiederanlauf nach Anwender--HALT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.8 Sonstiges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.8.1 Wiederanlauf nach passivem Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.8.2 Schrittweise Programmausführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.8.3 Geschwindigkeit zum Zurückfahren auf die programmierte Bahn . . . . . . . . . . . . . . . . . . . . . 122
3.9 Beispielkonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.9.1 Vereinbarungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.10 Meldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

KonfigurationPHR4.1.7 12.03.06 de

5 von 126
Konfiguration

KonfigurationPHR4.1.7 12.03.06 de

6 von 126
1 System konfigurieren

1 System konfigurieren
1.1 Allgemein
Dieses Kapitel befaßt sich mit der Konfigurierung des Systems. Die meisten Funktionen die
zur Konfiguration dienen, befinden sich im Menü “Konfig.”.
*1: Steht erst ab Expertenebene zur Verfügung
Konfig.

Ein/Ausgänge Greifer

Automatik Extern

E/A--Treiber Konfigur. bearbeiten *1

Treiber--Reset

E/A Rekonfigurieren

SUBMIT--Interpreter Starten/Anwählen

Stoppen

Abwählen

Statustasten GRIPPER Tech

ARC Tech 10

ARC Tech 20

Handverfahren Prog.--OV--Schritte

Hand--OV--Schritte

Mausposition

Mauskonfiguration

Benutzergruppe

akt.Werkzeug/Basis

Werkzeugdefinition Werkzeugtyp

Basistyp

Externe Achse

Ein/Ausschaltopt. Kaltstart erzwingen

PowerOff Wartezeit *1

Extras Sprache

Paßwort ändern
*1
Editor DEF--Zeile

Office--Option e/a *1 Detailansicht

Zeilenumbruch e/a
*1
Arbeitsraumüberw. Überbrücken

Konfiguration

Technologieauswahl *1
*1
Reinitialisierung USER Tech reinit.

BOF Reinitialisieren

Weitere Funktionen sind im Menü “Datei” untergebracht worden.

KonfigurationPHR4.1.7 12.03.06 de

7 von 126
Konfiguration

*1: Steht erst ab Expertenebene zur Verfügung

Datei

Archivieren Alles

Anwendungen

Maschinendaten
*1
Konfig. E/A Treiber

E/A Langtexte

KUKA TechPack

Log Daten

aktuelle Auswahl

Wiederherstellen Alles

Anwendungen

Maschinendaten
*1
Konfig. E/A Treiber

E/A Langtexte

KUKA TechPack

KUKA TechPack

aktuelle Auswahl

KonfigurationPHR4.1.7 12.03.06 de

8 von 126
1 System konfigurieren (Fortsetzung)

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

Funktionen Bedeutung
Bildschirmschoner Aktivierung des Bildschirmschoners nach einer bestimmten
Zeit
Menü “Konfig.”
Ein/Ausgänge Einstellungen für Greifer, die Automatik--Extern--Schnitt-
stelle sowie Langtexte
E/A--Treiber Konfigurieren und Zurücksetzen von Peripherie--Schnittstel-
len
SUBMIT--Interpreter Submit--Interpreter starten und stoppen
Statustasten Belegung der Statustasten für Gripper Tech bzw. ARC Tech
Handverfahren Programm-- und Handoverride-- sowie Mauseinstellungen
Benutzergruppe Zugriff auf bestimmte Benutzerebenen über Paßwort
akt. Werkzeug/Basis Aktuelles Werkzeug, Basissystem und externe Kinematik
Werkzeugdefinition Einstellungen für Werkzeugtyp, Basistyp und Externe Ach-
sen
Ein--/ Kaltstart (beim nächsten Hochfahren Kaltstart durchführen)
Ausschaltoptionen und PowerOff--Wartezeit (Projektierte Wartezeit zum näch-
sten Hochlauf)
Extras
Sprache Die Landessprache der Bedienoberfläche
Paßwort ändern Zugriffskennwort für Benutzerebene ändern
Editor --> Anzeige der DEF--Zeilen innerhalb eines Programmes
DEF--Zeile *1
Editor --> Zusätzliche Informationen im Expertenmodus
Detailansicht ein/aus *1
Editor --> Zeilenumbruch im Programmfenster
Zeilenumbruch ein/aus *1
Office--Option ein/aus *1 Einblenden der KCP--Bedienelemente zur Bedienung mit
der Maus
Arbeitsraumüberw. --> Überwachung der Arbeitsräume ausschalten
Überbrücken *1
Arbeitsraumüberw. --> Einstellen von kartesischen oder achsspezifischen Arbeits-
Konfiguration *1 räumen
Technologieauswahl *1 Zusätzliche Technologien aktivieren bzw. deaktivieren
Reinitialisierung --> Die USER--Tech--Dateien werden ohne Neustart reinitiali-
USERTech reinit. *1 siert
Reinitialisierung --> Die BOF (Bedienoberfläche) wird ohne Neustart reinitiali-
BOF Reinitialisieren *1 siert
*1 erst ab der Expertenebene zugänglich

KonfigurationPHR4.1.7 12.03.06 de

9 von 126
Konfiguration

Menü “Datei”
Archivieren
Maschinendaten Sichern von Maschinendaten auf Diskette
Konfig. *1 Unterschiedliche Konfigurationen auf Diskette sichern
Wiederherstellen
Maschinendaten Zurückschreiben der Maschinendaten von Diskette
Konfig. *1 Konfigurationen von Diskette zurückschreiben
*1 erst ab der Expertenebene zugänglich

KonfigurationPHR4.1.7 12.03.06 de

10 von 126
1 System konfigurieren (Fortsetzung)

1.2 Funktionen
1.2.1 Bildschirmschoner
Zur Schonung der Leuchtstofflampe, die zur Beleuchtung des KCP’s dient, kann die Hinter-
grundbeleuchtung verringert werden. Die normale Lebensdauer einer Leuchtstofflampe be-
trägt ca. 10000 Stunden, was in etwa 1,1 Jahre Dauerbetrieb entspricht. Durch Abschalten
der Hintergrundbeleuchtung kann diese Lebensdauer theoretisch nahezu verdoppelt wer-
den.

Zum Einstellen des Bildschirmschoners muß auf die Expertenebene gewechselt werden,
weil die Windows--Tastenkombinationen benötigt werden. Diese sind standardmäßig auf
Anwenderebene gesperrt.

Näheres zu den Windows--Tastenkombinationen finden Sie im Bedienhandbuch unter


[Bedienung], Kapitel [KCP, das KUKA Control Panel], Abschnitt ”Wechsel auf Win-
dows--Ebene”.

1.2.1.1 Einstellen des Bildschirmschoners

Vergewissern Sie sich, daß die “NUM”--Anzeige in der Statuszeile deaktiviert ist, damit Sie
die Steuerfunktionen des Nummerblocks verwenden können.

Cursor--Steuerfunktionen
aktiviert

Der KUKA--Screen--Saver muß über das Windows--Startmenü aktiviert werden. Halten Sie
hierzu die “CTRL”--Taste gedrückt und betätigen Sie anschließend ”ESC”. Daraufhin öffnet
sich das Windows--Startmenü.

+ ESC

Anschließend wählen Sie mit den Cursor--Tasten “"” bzw. “#” das Menü “Einstellungen” aus.

KonfigurationPHR4.1.7 12.03.06 de

11 von 126
Konfiguration

Mit der Eingabe--Taste bzw. der Cursor--Taste “!” können Sie jetzt das Untermenü öffnen.

Betätigen Sie jetzt die Eingabe--Taste um das Fenster für die Systemsteuerung zu öffnen.

Gegebenenfalls müssen Sie das Fenster für die Systemsteuerung nach vorne bringen.
Halten Sie hierzu die “Alt”--Taste gedrückt, und betätigen die “Tab”--Taste so oft, bis Sie
das gewünschte Fenster gefunden haben. Lassen Sie anschließend beide Tasten los.

Mit Hilfe der Cursor--Tasten bewegen Sie den Fokus auf das Icon “Anzeige” und betätigen
die Eingabe--Taste. Daraufhin öffnet sich das Eigenschaftsfenster der Anzeige.

KonfigurationPHR4.1.7 12.03.06 de

12 von 126
1 System konfigurieren (Fortsetzung)

Wählen Sie den Reiter für die Bildschirmschoner. Halten Sie hierfür die Taste “CTRL” ge-
drückt und betätigen Sie die “Tab”--Taste so oft, bis Sie die gewünschte Option gefunden ha-
ben. Lassen Sie anschließend beide Tasten los.
Drücken Sie mehrmals die Cursor--Taste “"” bzw. “#” bis unter dem Bereich Bildschirmscho-
ner die Option “Kcpsaver” angezeigt wird.

Mit der “Tab”--Taste bewegen Sie den Fokus anschließend auf das Feld “Einstellungen...”
und drücken die Eingabe--Taste erneut. Daraufhin öffnet sich folgendes Fenster:

Die Leerzeichen--Taste schaltet die Option “Adjust contrast” (Kontrast anpassen) ein bzw.
aus. Mit Hilfe von “Tab” gelangen Sie auf den Bereich “Contrast”, der mit den Cursor--Tasten
“z” bzw. “!” verändert werden kann. Erneutes Betätigen der “Tab”--Taste bewegt den Fo-
kus als nächstes auf die Schaltfläche “OK”. Der nächste Tastendruck ermöglicht schließlich
den Abbruch der Einstellungen durch die Schaltfläche “Cancel”.

Im Fenster “Eigenschaften von Anzeige” kann mit den Tasten “Tab”, “#” und “"” die Wartezeit
eingestellt werden, nach welcher der Bildschirmschoner aktiviert werden soll. Der Wert kann
zwischen 1...60 Minuten eingestellt werden.
Die Einstellungen des Bildschirmschoners können mit der Schaltfläche “OK” übernommen,
oder mit “Abbrechen” verworfen werden.

KonfigurationPHR4.1.7 12.03.06 de

13 von 126
Konfiguration

1.2.1.2 Funktion
Erfolgt für die angegebene Zeit keine Eingabe, aktiviert sich der Bildschirmschoner, indem
die Helligkeit auf “0” heruntergeregelt wird. Falls eingestellt, wird der Kontrast ebenfalls auf
den gesetzten Wert reduziert. Der Mauszeiger wird bei aktiviertem Schoner in der rechten
oberen Ecke des Displays als Glühbirne angezeigt.

Beendet wird der Bildschirmschoner sobald eine Taste am KCP betätigt wird. Dieser Tasten-
druck führt neben dem Beenden des Schoners auch die entsprechende Aktion aus. Ausge-
nommen hiervon sind die Menü-- und Softkeyleiste, die Tasten des Nummernblocks sowie
die Cursor--Tasten. Sie beenden den Bildschirmschoner lediglich.

Die Funktionen der Bedienelemente “Not--Aus”, “Antriebe Ein/Aus” sowie “Betriebsarten-


wahlschalter” werden ausgeführt, ohne den Bildschirmschoner zu beenden.

KonfigurationPHR4.1.7 12.03.06 de

14 von 126
1 System konfigurieren (Fortsetzung)

1.3 Das Menü “Konfig.”


In dem Menü “Konfig.” ist eine Vielzahl von Funktionen zusammengefaßt, mit denen Einstel-
lungen am Robotersystem vorgenommen werden können.

Nach Anwahl dieses Menükeys wird folgendes Auswahlmenü geöffnet:

Die einzelnen Menüoptionen werden in den nachfolgenden Abschnitten genauer beschrie-


ben.

Nähere Einzelheiten über die Handhabung von Menüs, InLine--Formularen und Zustands-
fenster sind im Kapitel [KCP, das KUKA Control Panel] zu finden.

1.3.1 Ein/Ausgänge
Unter der Option “Ein/Ausgänge” werden Einstellungsmöglichkeiten für Greifer und die
Schnittstelle ’Automatik Extern’ angeboten.

KonfigurationPHR4.1.7 12.03.06 de

15 von 126
Konfiguration

1.3.1.1 Greifer
Nach Anwahl der Option “Greifer” wird das Zustandsfenster zur Greiferkonfiguration geöff-
net. Standardmäßig ist die Anzahl der zur Verfügung stehenden Greifer auf 16 eingestellt.

Greifer <Bezeichnung>
Benennung des Greifers; 24 Zeichen
Greifertyp <Nummer>
Funktionstyp des Greifers
Ausgänge <Nummer>
Zuordnung von Ausgängen der Ro-
botersteuerung zur Aktorik des Grei-
fers
Eingänge <Nummer>
Zuordnung von Eingängen der Robo-
tersteuerung von der Sensorik des
Greifers
Zustand <Bezeichnung>
Benennung der vom Greifertyp ab-
hängigen Greiferzustände; 11 Zei-
chen

Mit den Softkeys “Weiter” bzw. “Vorherig” kann zwischen den insgesamt 16 möglichen Grei-
fern umgeschaltet werden.

Zum Speichern Ihrer Eingaben drücken Sie den Softkey “Ändern”.

Der Softkey “Schließen” beendet das Zustandsfenster.

Weitere Informationen zum Thema “Greifer” finden Sie in der Beschreibung [Gripper
Tech H50].

1.3.1.2 Automatik Extern

Zur Konfiguration der Schnittstelle “Automatik Extern” lesen Sie bitte im Programmier-
handbuch unter [Konfiguration] im Kapitel [Automatik Extern] nach.

KonfigurationPHR4.1.7 12.03.06 de

16 von 126
1 System konfigurieren (Fortsetzung)

1.3.2 E/A--Treiber
Mit den hier angebotenen Funktionen können Sie Peripherie--Schnittstellen am Robotersy-
stem konfigurieren und zurücksetzen.

1.3.2.1 Konfigur. Bearbeiten


Die Datei “IOSYS.INI” wird zur Bearbeitung in den Editor geladen. Sie befindet sich im Ver-
zeichnis “C:\KRC\Roboter\Init\”.

Diese Funktion steht erst ab der Benutzerebene “Experte” zur Verfügung.

Nähere Informationen zu der Statuszeile finden Sie im Bedienhandbuch im Hauptkapitel


[Bedienung], Kapitel [Programm ausführen, stoppen und zurücksetzen], Abschnitt
[Programm aus-- und anwählen] unter “Statuszeile des Programms”.

KonfigurationPHR4.1.7 12.03.06 de

17 von 126
Konfiguration

1.3.2.2 Treiber--Reset
Treiber können über diesen Menübefehl angezeigt, installiert, deinstalliert und modifiziert
werden. Nach Aufruf von “E/A--Treiber” wird zunächst folgendes Zustandsfenster angezeigt:

Der Softkey “Konfig.” ermöglicht Änderungen an der E/A--Konfiguration. Zu diesem Zweck


ändert sich das Zustandsfenster und es stehen weitere Softkeys zur Verfügung.

Im System installierte Treiber

Rot: Der Treiber läuft


($BUS_STATE = TRUE)
Grau: Der Treiber läuft nicht
($BUS_STATE = FALSE)

Die möglichen Aktionen zum ausgewähl-


ten Treiber

Datei zum Bearbeiten öffnen

Datei schreibgeschützt öffnen

Vorher konfiguriertes Programm


ausführen

Das Zustandsfenster ist in zwei verschiedene Bereiche aufgeteilt. Im oberen Bereich befin-
det sich die Treiberliste, darunter die Aktionsliste.

Mit den Cursor--Tasten “"” bzw. “#” kann der gewünschte Treiber bzw. die Aktion ausgewählt
werden.

Die Cursor--Tasten “z” bzw.”!” dienen zum Wechsel zwischen der Treiberliste und der Akti-
onsliste

KonfigurationPHR4.1.7 12.03.06 de

18 von 126
1 System konfigurieren (Fortsetzung)

Die Softkeys “Neuinst.”, Iosys” und “Deinstall” sind erst ab der Expertenebene anwählbar.

Treiberliste
Diese Funktion öffnet ein neues Zustandsfenster zur Installation von zusätzlichen Treibern.

Liste der Treiber, welche noch installiert


werden können. Bereits eingerichtete Trei-
ber werden nicht aufglistet.

“Installieren” richtet den ausgewählten Treiber ein.

“Zurück” führt wieder zum Hauptfenster der E/A--Konfiguration.

“Schließen” beendet die Konfiguration der E/A--Treiber.

Mit dem Softkey “Iosys” wird die Datei IOSYS.INI zur Bearbeitung in den Editor geladen.

Der Softkey “Schließen” sichert die Änderungen und beendet den Editor

Mit “Navigator” gelangen Sie zum Navigator der Robotersteuerung

KonfigurationPHR4.1.7 12.03.06 de

19 von 126
Konfiguration

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.

Weitere Informationen erhalten Sie über den Softkey “Info”, der die Datei “IOSYS.LOG”
schreibgeschützt in den Editor lädt.

Der Softkey “Schließen” beendet den Editor

Mit “Navigator” gelangen Sie zum Navigator der Robotersteuerung

Der ausgewählte Treiber wird deinstalliert und der Eintrag aus der Treiberliste entfernt, wenn
der Softkey “Deinstall” gedrückt wird.

Es findet ein Reset des ausgewählten Treibers statt.

Aktionsliste
Befindet sich der Fokus in der Aktionsliste, stehen die Softkeys “Uninstall” und “Reset” nicht
zur Verfügung. Sie werden durch “Wechseln” und “OK” ersetzt.
Der Fokus wird in die Treiberliste gesetzt.

Es wird die Aktion ausgeführt, auf welcher sich der Fokus befindet. Folgende Aktionen sind
möglich:

-- Datei in den Editor laden


-- Datei schreibgeschützt in den Editor laden
-- Festgelegtes Programm ausführen

Mit dem Softkey “Schließen” kann die Aktion beendet und das Zustandsfenster geschlossen
werden.

KonfigurationPHR4.1.7 12.03.06 de

20 von 126
1 System konfigurieren (Fortsetzung)

1.3.2.3 E/A Rekonfigurieren


Dieser Menüpunkt setzt die Treiber in den Zustand zurück, den sie unmittelbar nach dem
Hochfahren der Steuerung hatten. Dabei werden die Ini--Dateien ausgelesen und der Bus
entsprechend konfiguriert.

Anschließend muß die Meldung im Meldungsfenster quittiert werden.

Der Softkey “Quitt” löscht die markierte Meldung

“Alles Quitt” löscht sämtliche Meldungen, die gelöscht werden können

Nur in den Betriebsarten “T1”, “T2” und “AUT” möglich.

KonfigurationPHR4.1.7 12.03.06 de

21 von 126
Konfiguration

1.3.3 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
KRC1 mitübernommen werden können.
Hier können Sie den Submit--Interpreter starten, stoppen oder abwählen.

In der Statuszeile wird der jeweilige Zustand des Submit--Interpreters angezeigt. Grün be-
deutet, der Submit--Interpreter läuft. Eine rote Anzeige hingegen stellt den gestoppten Sub-
mit--Interpreter dar. Keinerlei farbige Hinterlegung bedeutet, daß der Submit--Interpreter ab-
gewählt ist.

Starten/Anwählen

Stoppen

Abwählen

Nur im T1-- bzw. T2--Betrieb möglich.

KonfigurationPHR4.1.7 12.03.06 de

22 von 126
1 System konfigurieren (Fortsetzung)

1.3.4 Statustasten
Wählen Sie hier aus, mit welchen Funktionen die frei verfügbaren Statustasten (links unten
im Display) belegt werden sollen.

Nur die installierten Technologie--Pakete stehen in diesem Menü zur Auswahl.

Der Inhalt dieses Untermenüs kann sich ändern, wenn zusätzliche Technologien installiert
werden.
Die jeweils ausgewählte Option bleibt auch nach einem Neustart erhalten.

KonfigurationPHR4.1.7 12.03.06 de

23 von 126
Konfiguration

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

1.3.5.1 Programmoverride--Schritte (POV)


Normalerweise erfolgt eine Änderung des POV--Wertes in 1%--Schritten. Die Option “Pro-
gramm--OV--Schritte ein/aus” ermöglicht eine direkte Veränderung auf 100, 75, 50, 30, 10,
3 und 1 Prozent der programmierten Geschwindigkeit.
Benutzen Sie zur Einstellung die “+/--” --Taste rechts neben dem Statuskey für den Pro--
grammoverride.

Informationen zum Handoverride finden Sie auch im Bedienhandbuch im Kapitel [Pro-


gramm ausführen, stoppen und zurücksetzen], Abschnitt [Arbeitsgeschwindigkeit].

1.3.5.2 Handoverride--Schritte (HOV)


Auch die Änderung des HOV--Wertes erfolgt standardmäßig in 1%--Schritten. Die Option
“Hand--OV--Schritte ein/aus” ermöglicht die Veränderung der Handverfahrgeschwindigkeit
auf 100, 75, 50, 30, 10, 3 sowie 1 Prozent.
Benutzen Sie zur Einstellung die “+/--” --Taste rechts neben dem Statuskey für den Hando-
verride.

Weitere Informationen zum Handoverride finden Sie im Bedienhandbuch im Kapitel


[Handverfahren des Roboters], Abschnitt [Handoverride].

1.3.5.3 Mausposition
Wird der Roboter mit Hilfe der Space--Mouse im Roboterkoordinatensystem bewegt, kann
der Bediener seinen eigenen Standort der Steuerung bekannt geben.

Nähere Informationen zur Mausposition finden Sie im Bedienhandbuch im Kapitel


[Handverfahren des Roboters], Abschnitt [Verfahren mit der Space--Mouse].

1.3.5.4 Mauskonfiguration
Hier können Sie die Freiheitsgrade und die dominante Achse der Space--Mouse einstellen.

Weitergehende Informationen zur Mauskonfiguration finden Sie im Bedienhandbuch im


Kapitel [Handverfahren des Roboters], Abschnitt [Verfahren mit der Space--Mouse].

KonfigurationPHR4.1.7 12.03.06 de

24 von 126
1 System konfigurieren (Fortsetzung)

1.3.6 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
“Benutzerebenen” möglich ist, Zugriff darauf zu erhalten. Der Zugang wird dann durch ein
Paßwort geschützt.
Die Software der KRC--Steuerung unterscheidet standardmäßig zwischen dem Anwender
und dem Experten. Der Anwender benötigt keine Programmiersyntaxkenntnisse, da er me-
nügeführt Programme erstellt. Bei Neustart des Systems ist standardmäßig automatisch die
Anwenderebene angewählt.
Reichen die Funktionen der Anwenderebene nicht aus, kann auf die Expertenebene ge-
wechselt werden. Der Experte kann dann über die ASCII--Tastatur in der Roboterprogram-
miersprache KRL (KUKA Robot Language) programmieren sowie System--, bzw. Initialisie-
rungsdateien (Bussysteme) editieren. KRL ist eine Hochsprache, die PASCAL--ähnlich und
somit auch für die Programmierung von komplexen Aufgaben geeignet ist.
Paßwort Der Zugang zur Expertenebene ist durch eine Paßwort geschützt. Zum Wechseln in die Ex-
pertenebene öffnen Sie über den Menükey “Konfig.” ein Auswahlmenü, in dem der Menü-
punkt “Benutzergruppe” enthalten ist.

Wählen Sie die Option “Benutzergruppe” aus.

Es öffnet sich folgendes Zustandsfenster:

Nach dem Systemstart befinden Sie sich normalerweise in der Benutzergruppe “Anwender”.
Höhere “Benutzerebenen” sind nur nach Eingabe eines ebenenabhängigen Paßwortes zu
erreichen.
Nach Betätigen eines der angebotenen Softkeys zur Auswahl der Benutzergruppe ändert
sich der Inhalt des Zustandsfensters. Sie werden zur Eingabe des Paßwortes für die ausge-
wählte Benutzergruppe, hier “Experte”, aufgefordert.

KonfigurationPHR4.1.7 12.03.06 de

25 von 126
Konfiguration

Geben das Paßwort für die angewählte Benutzergruppe ein (Groß-- bzw. Kleinschreibung
wird ignoriert) und betätigen Sie den Softkey “Weiter”.
Sie können diese Funktion jederzeit verlassen. Betätigen Sie dazu einfach den Softkey
“Schließen”. Die Benutzergruppe wird in diesem Fall nicht gewechselt.
Beachten Sie die auch die Mitteilungen im Meldungsfenster.

KonfigurationPHR4.1.7 12.03.06 de

26 von 126
1 System konfigurieren (Fortsetzung)

1.3.7 Akt. Werkzeug/Basis


Hier können Sie ihr aktuelles Werkzeug, das Basissystem sowie die Externe Achse bzw. Ki-
nematik festlegen, die verwendet werden soll. Die den einzelnen Nummern zugeordneten
Bezeichnungen können mit Hilfe der Werkzeugdefinition geändert werden.
Wählen Sie die Option “akt. Werkzeug/Basis” aus.

Daraufhin öffnet sich das folgende Fenster:

Aktuelles Werkzeug [0...16]


Bezeichnung des aktuellen Werkzeugs

Aktuelle Basis [0...16]


Bezeichnung des aktuellen Basissy-
stems

Aktuelle Kinematik [0...6]


Bezeichnung der externen Achse

Mit Hilfe der Cursor--Tasten “#” bzw. “"” können Sie zum nächsten bzw. vorherigen Eingabe-
feld wechseln. Die Nummer können Sie entweder über das Nummernfeld eintippen, oder mit
dem entsprechenden Statuskey auf der rechten Seite des Displays verändern.

Es kann immer nur ein Basissystem oder eine externe Achse aktiv sein.
Steht im Eingabefeld die Nummer “0”, ist das betreffende Werkzeug, die Basis bzw. ex-
terne Achse deaktiviert.

Der Softkey “OK” übernimmt die eingestellten Werte. Wurde der Wertebereich in einem der
Eingabefelder überschritten, die Nummer eines nicht definierten Werkzeugs oder einer nicht
definierten Basis bzw. externen Achse gewählt, wird eine entsprechende Fehlermeldung im
Meldungsfenster ausgegeben.
Der Softkey “Abbruch” schließt das Zustandsfenster, ohne die eingestellten Werte zu über-
nehmen.

KonfigurationPHR4.1.7 12.03.06 de

27 von 126
Konfiguration

1.3.8 Werkzeugdefinition
Mit dieser Funktion können Sie Bezeichnungen für den Werkzeugtyp, Basistyp sowie die ex-
terne Achse vergeben.
Öffnen Sie das Menü “Konfig.” und wählen das Untermenü “Werkzeugdefinition” sowie die
entsprechende Option aus.

Im Anschluß daran wird eines der folgendes Zustandsfenster für “Werkzeugtyp”, “Basistyp”
oder “ext. Basistyp” geöffnet. In der Softkeyleiste stehen drei verschieden Optionen zur Aus-
wahl:

Mit dem Softkey “Bearb.” kann der Name des vermessenen Typs geändert werden. Hierzu
wählen sie mit den Cursor--Tasten “#” bzw. “"” die gewünschte Zeile aus und drücken den
Softkey “Bearb.”.

Name des Werkzeugs

Betätigen des Softkeys “OK” übernimmt die getätigten Änderungen und schließt das Zu-
standsfenster.

”Abbruch” schließt das Zustandsfenster ohne die Änderungen zu übernehmen.

KonfigurationPHR4.1.7 12.03.06 de

28 von 126
1 System konfigurieren (Fortsetzung)

Werkzeugtyp

Werkzeugname (24 Zeichen)


Werkzeugtyp
(”Werkzeug”, “Werkstück” und “undefi-
niert”)
Werkzeugnummer [1...16]

G Werkzeug
Normales Werkzeug am Roboterflansch
G Werkstück
Der Roboter bewegt das Werkstück
G undefiniert
Es wurde noch kein Werkzeugtyp vermessen

Basistyp

Name des Basissytems (24 Zeichen)


Basistyp
(”Werkzeug”, “Offset” oder “undefiniert”)
Basissystem--Nummer [1...16]

G Werkzeug
Ein externes Werkzeug (z.B. Schweißzange) ist montiert
G Offset
Ein Basistyp wurde vermessen

KonfigurationPHR4.1.7 12.03.06 de

29 von 126
Konfiguration

G undefiniert
Es wurde noch kein Basistyp vermessen

Externe Achse

Name der externen Achse bzw. Kinematik


(24 Zeichen)

Externer Basistyp
(”Werkzeug”, “Offset” oder “undefiniert”)

Ext. Achse bzw. Kinematik Nummer


[1...6]

G Werkzeug
Ein externes Werkzeug ist montiert
G Offset
Eine externe Achse bzw. externe Kinematik wurde vermessen
G undefiniert
Es wurde noch kein externer Basistyp vermessen

KonfigurationPHR4.1.7 12.03.06 de

30 von 126
1 System konfigurieren (Fortsetzung)

1.3.9 Ein/Ausschaltoptionen
Hier können Kaltstart und PowerOff--Wartezeit gesetzt werden.

1.3.9.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 ge-
wü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 erzeugt
worden sein.
Stellt die Steuerung nach dem Wiederanlauf einen Systemfehler oder geänderte Daten fest,
wird ein automatischer Kaltstart erzwungen.

Zusätzliche Informationen zum Thema “Spannungsausfall” finden Sie im Bedienhand-


buch im Hauptkapitel [Bedienung], Kapitel [Steuerung hochfahren / herunterfahren].

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

KonfigurationPHR4.1.7 12.03.06 de

31 von 126
Konfiguration

1.3.10 Extras
Unter diesem Menüpunkt sind weitere Optionen zusammengefaßt, die im Anschluß genauer
beschrieben werden.

1.3.10.1 Sprache
Hier können Sie die Bedienoberfläche auf Ihre Landessprache einstellen.

Anschließend öffnet sich ein Zustandsfenster, in dem Sie die gewünschte Sprache auswäh-
len können.

KonfigurationPHR4.1.7 12.03.06 de

32 von 126
1 System konfigurieren (Fortsetzung)

Aktuell eingestellte Landessprache

Die zur Verfügung stehenden Fremdspra-


chen

Mit den Cursor--Tasten “#” bzw. “"” kann die gewünschte Sprache markiert werden.
Die Auswahl der zur Verfügung stehenden Sprachen der Bedienoberfläche hängt von der
installierten Windows-- Sprache ab.

Installierte Windows--Sprache Mögliche Sprache der BOF


Deutsch Deutsch
Englisch Englisch
Französisch Flämisch
Italienisch Französisch
Portugiesisch Italienisch
Spanisch Portugiesisch
Tschechisch Schwedisch
Spanisch
Tschechisch
Chinesisch Chinesisch
Englisch
Koreanisch Koreanisch
Englisch
Russisch Russisch
Englisch

Der Softkey “OK” übernimmt die Auswahl und schließt das Zustandsfenster. Anschließend
wird nach kurzer Wartezeit die Bedienoberfläche in der gewünschten Landessprache ange-
zeigt.
Der Softkey “Abbruch” schließt das Zustandsfenster ohne Änderung der Bedienoberfläche.

KonfigurationPHR4.1.7 12.03.06 de

33 von 126
Konfiguration

1.3.10.2 Paßwort ändern


Wählen Sie diese Option, um das Zugangs--Kennwort einer Benutzerebene zu ändern.

Nach Anwahl der entsprechenden Option öffnet sich ein Zustandsfenster. Sie werden aufge-
fordert, per Softkey die Benutzergruppe auszuwählen, deren Kennwort geändert werden
soll.

In der Grundeinstellung des Systems werden nur die Benutzergruppen “Anwender” und
“Experte” angeboten.

Sie können die Funktion jederzeit verlassen, ohne die eingegebenen Daten zu speichern.
Betätigen Sie dazu einfach den Softkey “Schließen”.
Haben Sie eine Benutzergruppe gewählt, erscheint ein weiteres Zustandsfenster. Tragen
Sie hier das alte und das neue Kennwort sowie dessen Bestätigung ein.

Drücken Sie den Softkey “Weiter”, wird das Kennwort geändert.

KonfigurationPHR4.1.7 12.03.06 de

34 von 126
1 System konfigurieren (Fortsetzung)

1.3.10.3 Editor

DEF--Zeile
Ist die Funktion aktiviert, wird die DEF--Zeile des Programms angezeigt, welche normaler-
weise unsichtbar ist.

ausgeschaltet

eingeschaltet

Erst wenn die DEF--Zeile sichtbar ist, können Deklarationen vorgenommen werden. Diese
Funktion ist standardmäßig erst ab der Benutzergruppe “Experte” verfügbar. Sie wird auto-
matisch deaktiviert, sobald der Bediener einen Neustart vornimmt oder wieder in den An-
wendermodus zurückschaltet.

KonfigurationPHR4.1.7 12.03.06 de

35 von 126
Konfiguration

Detailansicht ein/aus (LimitedVisibility)


Diese Funktion steht nur im Expertenmodus zur Verfügung, und ist ein weiters 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.
ausgeschaltet

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

Diese Funktion ist standardmäßig erst ab der Benutzergruppe “Experte” verfügbar.

Erst wenn alle FOLDs geöffnet sind und “Detailansicht ein/aus” ausgeschaltet ist, sind
dem Programmierer alle vorhandenen Programmzeilen verfügbar. Die Darstellung auf
der Bedienoberfläche entspricht dann der Darstellung in einem normalen Texteditor.

KonfigurationPHR4.1.7 12.03.06 de

36 von 126
1 System konfigurieren (Fortsetzung)

Zeilenumbruch ein/aus
Hiermit können Sie im Programmfenster den Zeilenumbruch wahlweise ein-- bzw. ausschal-
ten.
...eingeschaltet
Standardmäßig ist der Zeilenumruch eingeschaltet, wobei im Programmfenster alle Informa-
tionen angezeigt werden. Ist die Zeile für das Programmfenster zu lang, wird sie an einer
entsprechenden Stelle umgebrochen.
eingeschaltet

Der umgebrochene Teil der Zeile besitzt keine Zeilennummer und wird stattdessen mit einem
Pfeil markiert.
...ausgeschaltet
Ist der Zeilenumbruch deaktiviert und die Zeile kann aufgrund ihrer Länge nicht auf einmal
im Programmfenster angezeigt werden, können Sie den Inhalt des Programmfensters ver-
schieben. Benutzen Sie hierfür die Cursor--Tasten “z” bzw. “!”.

ausgeschaltet

KonfigurationPHR4.1.7 12.03.06 de

37 von 126
Konfiguration

1.3.10.4 Office--Option ein/aus


Dieser Menüpunkt blendet die KCP Bedienelemente “Fensterwahltaste”, “Stop”, “Pro-
grammstart vorwärts”, die Initialisierungstaste sowie die “Zustimmtaste” auf dem KCP--Dis-
play ein. Dies ermöglicht ein einfaches Bedienen mit der Maus.

Nach Aufruf des Menübefehls ist die “Office--Option” eingeschaltet. Im Meldungsfenster wird
eine entsprechende Meldung ausgegeben.

Fensterwahltaste

Programmstop

Initialisierungstaste
Programmstart vorwärts
Zustimmtaste

KonfigurationPHR4.1.7 12.03.06 de

38 von 126
1 System konfigurieren (Fortsetzung)

Die Symbole haben folgende Bedeutung:


Mit einem Klick auf dieses Symbol mit der linke Maustaste kann man zwischen Programm--,
Zustands-- und Meldungsfenster umschalten.

Wenn der Mauszeiger sich über diesem Symbol befindet, kann mit einem Klick auf die linke
Maustaste der Programmablauf gestoppt werden.

Mit einem Mausklick auf dieses Symbol wird der Programmstart vorwärts aktiv.

Wird dieses Symbol angeklickt, werden die KUKA--Technologie--Pakete, die Datenliste und
sämtliche *.OCX--Dateien neu initialisiert.

Hiermit kann der Anwender das Drücken der Zustimmtaste simulieren.

Ein erneuter Aufruf des Befehls schaltet die Option wieder aus. Auch in diesem Fall erfolgt
eine Anzeige im Meldungsfenster.

KonfigurationPHR4.1.7 12.03.06 de

39 von 126
Konfiguration

1.3.10.5 Arbeitsraumüberwachung
Die Arbeitsraumüberwachung kann ausgeschaltet werden, um beispielsweise einen Robo-
ter wieder aus einem verletzten Arbeitsraum herauszufahren.

Weitere Informationen zum Thema Arbeitsraum finden Sie im Kapitel [System konfigu-
rieren Experte], Abschnitt [Arbeitsraumüberwachung].

KonfigurationPHR4.1.7 12.03.06 de

40 von 126
1 System konfigurieren (Fortsetzung)

1.3.10.6 Technologieauswahl

Zusätzliche Technologien können softwaremäßig in das System eingebunden werden, wenn


die gewünschte Option aktiviert worden ist. Hierzu dient das Menü “Technologieauswahl”.

Im Zustandsfenster können Sie eine oder mehrere Optionen aktivieren bzw. deaktivieren.
Benutzen Sie hierzu die Cursor--Tasten “#” bzw. “"” und wählen die gewünschten Technolo-
gien aus. Ein Druck auf die Leertaste schaltet die jeweilige Technologie ein bzw. aus.

Der Softkey “Markieren” hat die gleiche Funktion wie die Leertaste. Mit ihm können die ge-
wünschten Technologien aktiviert bzw deaktiviert werden.

“OK” schließt das Zustandsfenster und lädt die ausgewählten Technolgien in das System.

KonfigurationPHR4.1.7 12.03.06 de

41 von 126
Konfiguration

Im Meldungsfenster wird der Fortschritt der Operation angezeigt.

Der Softkey “Abbruch” schließt das Zustandsfenster ohne die Änderungen zu übernehmen.

KonfigurationPHR4.1.7 12.03.06 de

42 von 126
1 System konfigurieren (Fortsetzung)

1.3.10.7 Reinitialisierung

USERTech reinitialisieren
Geänderte USERTech--Daten können ohne Systemstart erneut eingelesen werden.

Weitere Informationen finden Sie in der eigenständigen Dokumentation [USERTech].

BOF Reinitialisieren
Die Bedienoberfläche wird ohne einen Systemstart reinitialisiert. Daraufhin wird der Fort-
schritt der Reinitialisierung im Display bzw. Meldungsfenster angezeigt.

KonfigurationPHR4.1.7 12.03.06 de

43 von 126
Konfiguration

1.4 Das Menü “Datei”


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

1.4.1 Archivieren
Betätigen Sie hierfür den Menükey “Datei” und wählen das Untermenü “Archivieren” aus.
Hier haben Sie die Möglichkeit zwischen folgenden Optionen.

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


dienung], Kapitel [Navigator], Abschnitt [Menü “Datei”] unter “Archivieren”

1.4.2 Wiederherstellen
Betätigen Sie auch hierfür den Menükey “Datei” und wählen das Untermenü “Wiederherstel-
len” aus.

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


dienung], Kapitel [Navigator], Abschnitt [Menü “Datei”] unter “Wiederherstellen”

KonfigurationPHR4.1.7 12.03.06 de

44 von 126
2 System konfigurieren Experte

2 System konfigurieren Experte


2.1 Variablenübersicht
Zur einfachen Anzeige von mehreren Variablen gleichzeitig stehen die Menübefehle “Konfi-
guration” und “ConfigMon.ini bearbeiten” zur Verfügung.

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.

Mit Hilfe der Cursor--Tasten können Sie gezielt ein Element der Gruppe auswählen und Än-
derungen vornehmen.
Der Status gibt an, ob eine Variable ständig aktualisiert wird (SetInfo). Pro Gruppe dürfen
bis zu 12 Variablen ständig überwacht werden.

Eine Beschreibung der Variablen zur leichteren Identifikation.

KonfigurationPHR4.1.7 12.03.06 de

45 von 126
Konfiguration

Der vom System verwendete Variablenname.

Bei der Ausgabe (”Variablen” --> ”Übersicht” --> “Anzeigen”) wird an dieser Stelle der Wert
der Variablen angezeigt.

Die Reiter geben an, welche der maximal 10 verschiedenen Gruppen gerade angezeigt wird.

Mit Hilfe des Nummernblocks können die gewünschten Werte für die Spaltenbreite und Zei-
lehöhe eingegeben werden.

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.

Die Benutzergruppe, ab der die Variablengruppe angezeigt bzw. verändert werden kann,
wird mit dem entsprechenden Auswahlmenü eingestellt.

Ab dieser Benutzergruppe sind Änderungen erlaubt

Ab dieser Benutzergruppe wird die Variablengruppe angezeigt

Mit Hilfe der Cursor--Tasten können Sie das entsprechende Auswahlmenü öffnen und eine
andere Benutzergruppe anwählen.

Mit dem Softkey “Tab +” kann die nächste zur Verfügung stehende Gruppe angewählt wer-
den.

Mit dem Befehl “Anzeige” wird die Variablenübersicht aufgerufen.

Eine ausführliche Beschreibung zur Anzeige der Variablenübersicht finden Sie im Haupt-
kapitel [Bedienung] im Kapitel [Anzeige].

Der Softkey “Wechseln” bewegt den Fokus im Zustandsfenster auf das jeweils nächste zur
Verfügung stehende Eingabefeld.

Die Option “Einfügen” ermöglicht das hinzufügen von neuen Gruppen bzw. Zeilen. Nach
drücken des Softkeys stehen die folgenden Optionen zur Verfügung:

Gruppe hinzufügen
Eine neue Gruppe wird vor der gerade aktuellen eingefügt.

Eine neue Gruppe wird hinter der gerade aktuellen eingefügt.

KonfigurationPHR4.1.7 12.03.06 de

46 von 126
2 System konfigurieren Experte (Fortsetzung)

Bezeichnung der Gruppe,


welche als Reiter ange-
zeigt wird (maximal 25 Zei-
chen)

Benutzergruppe, ab welcher diese


Variablengruppe bearbeitet wer-
den kann bzw. sichtbar ist

Der Fokus wird auf das nächste Element gesetzt.

Mit “OK” werden die Eingaben übernommen.

Mit “Abbr” werden die Eingaben verworfen.

Es sind maximal 10 Gruppen zulässig.

Zeile einfügen

Eine neue Zeile wird vor der mit dem Fokus markierten Zeile eingefügt

Eine neue Zeile wird unter der mit dem Fokus markierten Zeile einge-
fügt

Im Anschluß daran kann die neue Zeile mit den gewünschten Werten gefüllt werden. Bewe-
gen Sie den Fokus auf das gewünschte Feld und drücken die Eingabe--Taste. Anschließend
kann das jeweilige Feld mit Werten (Bezeichnungen, Variablen usw.) gefüllt werden.

Mit “Abbruch” wird keine neue Gruppe bzw. Zeile angelegt.

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

Die Option “Löschen” ermöglicht das Entfernen von einzelnen Zeilen oder einer Gruppe.
Nach drücken des Softkeys stehen die folgenden Optionen zur Verfügung:

KonfigurationPHR4.1.7 12.03.06 de

47 von 126
Konfiguration

Die Zeile, auf der sich der Fokus befindet, wird gelöscht.

Die aktuelle Gruppe wird entfernt.

Mit “Abbruch” wird die Aktion abgebrochen.

Mit dem Softkey “Schließen” werden die Änderungen übernommen und das Zustandsfen-
ster geschlossen.

Mit “Abbruch” wird die Aktion beendet und das Zustandsfenster geschlossen.

2.1.3 ConfigMon.ini bearbeiten


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

Verwenden Sie den Softkey “Schließen” um die Änderungen zu übernehmen.

Dieser Softkey holt den Navigator in den Vordergrund.

Beinhaltet die Datei “ConfigMon.ini” ungültige Einträge, wird deren Ladevorgang vom Sy-
stem automatisch abgebrochen. Eine Fehlermeldung wird in diesem Falle nicht ausgege-
ben.

KonfigurationPHR4.1.7 12.03.06 de

48 von 126
2 System konfigurieren Experte (Fortsetzung)

2.2 Langtext
Dieses Online--Programm überträgt eine Zuweisungsliste in die Kuka--Langtextdatenbank.
Nach einer Neuinstallation müssen so die Langtexte nicht mehr bei jedem Roboter per Hand
erneut eingegeben werden.
Angezeigt werden Langtexte in den Zustandsfenstern für Ein--/Ausgänge, Merker, Flags,
Zähler und Timer.
Diese Option ist über den Menükey “Inbetriebn.” und den Menübefehl “Service” zu erreichen.

In der Statuszeile werden im Zusammenhang mit der Langtext--Konvertierung die folgenden


Informationen eingeblendet:

Die Verbindung zur Datenbank ist aktiv.

Die Datenbank wird gelesen.

Die Datenbank wird geschrieben.

Die Datenbank wird gelöscht.

Ein Fehler ist aufgetreten.

Zum Umschalten zwischen der Laufwerksliste, Verzeichnisliste und dem Text--Eingabe-


feld dient die TAB--Taste auf dem VKCP. Hierzu muß die Anzeige “NUM” ausgeschaltet
sein.

KonfigurationPHR4.1.7 12.03.06 de

49 von 126
Konfiguration

Der Statuskey “Langtext --> Datenbank” liest eine Textdatei ein und überträgt sie in die
KUKA--Langtextdatenbank.

Die Option “Langtext hinzufügen” läßt die Einträge in der KUKA--Langtextdaten-


bank unberührt und fürgt die neuen Einträge nur hinzu. Bei ausgeschalteter Op-
tion wird die bisherige Langtexdatenbank komplett gelöscht.

Der Statuskey “Datenbank --> Langtext” erzeugt eine Textdatei aus der KUKA--Langtextda-
tenbank. Hierzu kann der Pfad und Name der zu sichernden Datei angegeben werden.

Der Statuskey “Langtext (IO’s) --> Anwenderprogramm” aktualisiert die Langtexte von An-
wenderprogrammen.

Die Option “Alle Dateien auswählen“ trägt die Langtextinformationen in alle An-
wenderprogramme ein

Mit diesem Softkey kann die KUKA--Langtextdatenbank eingesehen und verändert werden.
Anschließend stehen die folgenden Optionen zur Verfügung:

Dieser Softkey trägt die Änderungen in die KUKA--Langtextdatenbank ein.

Die Änderungen werden nicht gesichert und die Datenbankansicht wird geschlos-
sen.

Die Informationen werden in die Langtextdatenbank eingetragen bzw. aus ihr exportiert.

Das Online--Programm wird beendet.

KonfigurationPHR4.1.7 12.03.06 de

50 von 126
2 System konfigurieren Experte (Fortsetzung)

2.3 Geschwindigkeitsreduzierung beim Warmfahren


Nach dem Anstarten eines Roboters bei niedrigen Umgebungstemperaturen kann aufgrund
der erhöhten Getriebereibung die Fehlermeldung “Stellgröße Ax” auftreten. In diesem Fall
erreicht der Motorstrom einer Achse den maximal festgelegten Wert. Um dies zu vermeiden,
kann während der Warmlaufphase die Verfahrgeschwindigkeit reduziert werden, sobald der
Motorstrom eine vorher festgelegte Größe erreicht.
Die entsprechenden Systemvariablen können ausschließlich in der Datei “$MACHINE.DAT”
(Pfad “KRC:\R1\MADA”) geändert werden.
...
BOOL $WARMUP_RED_VEL = TRUE
REAL $WARMUP_TIME = 30.0
REAL $COOLDOWN_TIME = 360.0
INT $WARMUP_CURR_LIMIT = 99
INT $WARMUP_MIN_FAC = 60
REAL $WARMUP_SLEW_RATE = 5.0
...
Im Einzelnen haben die Einträge folgende Bedeutung:

Variable Wertebereich Einheit Bedeutung


TRUE Warmfahren ein
$WARMUP_RED_VEL
FALSE Warmfahren aus
$WARMUP_TIME größer 0 Minuten Warmfahrzeit
$COOLDOWN_TIME größer 0 Minuten Abkühlzeit
Überwachungswert bezüg-
$WARMUP_CURR_LIMIT 0 ... 100 Prozent lich des max. zulässigen
Motorstroms
Reduzierfaktor, um den der
$WARMUP_MIN_FAC 0 ... 100 Prozent
Soll--Override verringert wird
Prozent
Steigerungsrate, um den
$WARMUP_SLEW_RATE größer 0 je
der Override erhöht wird
Sekunde

Liegt einer der Werte außerhalb des erlaubten Wertebereichs, erfolgt keine Geschwindig-
keitsreduzierung.

Warmlaufzeit
Nach Aktivieren der Funktionalität mittels “$WARMUP_RED_VEL = TRUE” sowie nach ei-
nem Kaltstart wird der Roboter als noch nicht warmgelaufen angesehen. Für die Dauer des
Warmlaufs ($WARMUP_TIME) werden die Motorströme bei PTP--PTP-- und PTP--CP--Be-
wegungen in den Betriebsarten “Automatik” und “Automatik Extern” überwacht. Überschrei-
tet der Motorstrom einer Achse den durch die Variable $WARMUP_CURR_LIMIT festgeleg-
ten Wert (max. zul. Motorstrom * $WARMUP_CURR_LIMIT), erfolgt eine Absenkung des
Soll--Overrides um höchstens $WARMUP_MIN_FAC, bis der zulässige Motorstrom nicht
mehr überschritten wird. Im Meldungsfenster erfolgt die Ausgabe der Zustandsmeldung
“Warmfahren aktiv”.
Schlägt die Überwachung nicht mehr an, wird der Override schrittweise um $WAR-
MUP_SLEW_RATE bis zum eingestellten Soll--Override erhöht.
Nach Erreichen der Warmlaufzeit ist die Geschwindigkeitsreduzierung deaktiviert, die
Ströme werden also nicht mehr überwacht.

KonfigurationPHR4.1.7 12.03.06 de

51 von 126
Konfiguration

Abkühlzeit
Als Abkühlzeit wird die Zeit gerechnet, in der der Roboter nicht bewegt wird. Auch ein Herun-
terfahren mit anschließendem Warmstart zählt als Abkühlzeit. Überschreitet die Abkühlzeit
den mit $COOLDOWN_TIME festgelegten Wert, wird der Roboter als nicht warmgelaufen
angesehen und die Motorströme werden wieder überwacht.

Logbuch--Datei
Bestimmte Ereignisse werden in der Datei “Warmup.log” (Pfad “KRC:\Roboter\Log\”) mit-
protokolliert.
...
Date: 21.08.03 Time: 14:46:57 State: Monitoring active
Date: 21.08.03 Time: 14:54:06 State: Controlling active
Date: 21.08.03 Time: 14:54:07 State: Controlling inactive
Date: 21.08.03 Time: 18:23:43 State: Monitoring inactive
...
Die Einträge besitzen folgende Bedeutung:
G Monitoring active: Überwachung der Motorströme eingeschaltet
G Monitoring inactive: Überwachung der Motorströme ausgeschaltet
G Controlling active: Geschwindigkeitsreduzierung aktiviert
G Controlling inactive: Geschwindigkeitsreduzierung deaktiviert

Beispiel “$MACHINE.DAT”

BOOL $WARMUP_RED_VEL = TRUE


REAL $WARMUP_TIME = 30.0
REAL $COOLDOWN_TIME = 360.0
INT $WARMUP_CURR_LIMIT = 99
INT $WARMUP_MIN_FAC = 60
REAL $WARMUP_SLEW_RATE = 5.0

Die Geschwindigkeitsreduzierung ist aktiviert und eine Warmlaufzeit von 30 Minuten ein-
gestellt. Bei einem Stillstand des Roboters von über 360 Minuten wird die Überwachung
der Motorströme wieder aktiv. Gegebenenfalls ist ein erneutes Warmfahren erforderlich.
Erreicht einer der Motorströme 99 Prozent des maximal zulässigen Motorstroms, wird der
Override auf höchstens 60 Prozent heruntergefahren (Hierfür wird der interne Override
von 60 % mit dem Soll--Override z. B. POV=100 % multipliziert).
Liegen die Motorströme unterhalb des zulässigen Wertes, wird der Override schrittweise
um den Wert von 5 % pro Sekunde erhöht.

KonfigurationPHR4.1.7 12.03.06 de

52 von 126
2 System konfigurieren Experte (Fortsetzung)

2.4 Meldungen in Automatik Extern quittieren


In der Standardkonfiguration des Systems ist festgelegt, welche Quittierungsmeldungen in
der Betriebsart “Automatik Extern” von einer SPS quittiert werden können. Dies hat unter
Umständen zur Folge, daß der Roboter beim Auftreten einer Quittierungsmeldung anhält
und per Hand wieder angestartet werden muß.
Ob eine Quittierungsmeldung von der SPS quittiert werden kann, wird in der Datei
“EXT_CONF.INI” (Pfad “C:\KRC\Roboter\Init\”) festgelegt.
;---------------------------------------------------------
;--- ext_conf.ini ---
;---------------------------------------------------------
...
M_1413 = TRUE ;Achsgeschwindigkeit nicht programmiert Ax
M_1444 = FALSE ;Unzulässiger Feldindex
M_1451 = TRUE ;Division durch Null
...
Die Einträge besitzen im Einzelnen folgende Bedeutung:

Eintrag Bedeutung
; ... Beliebiger Kommentar
M_xxxx Gibt die betreffende Meldungsnummer an
TRUE Meldung ist in der Betriebsart “Automatik Extern” quittierbar
FALSE Meldung ist in der Betriebsart “Automatik Extern” nicht quittierbar

Durch die Projektierung der Datei “EXT_CONF.INI” wird das Systemverhalten gegenüber der
Standardkonfiguration geändert.

Nach Änderungen an der Datei “EXT_CONF.INI” ist ein Kaltstart erforderlich.

Es sind ausschließlich Quittierungsmeldungen zulässig, andernfalls wird eine entspre-


chende Fehlermeldung ausgegeben.

Die Ausgabe einer Fehlermeldung erfolgt außerdem in den folgenden Situationen:


G Eine nicht existente Meldungsnummer wurde angegeben;
G Ein anderer Wert als “TRUE” oder “FALSE” wurde der Meldungsnummer zugewiesen;
Im Fehlerfall erfolgt zunächst eine Verriegelung aller aktiven Kommandos. Eine Zustands-
meldung wird im Meldungsfenster ausgegeben, die erst nach Beseitigung des Konfigura--
tionsfehlers sowie einem anschließenden Kaltstart gelöscht wird. Bis zu diesem Zeitpunkt
ist ein Verfahren des Roboters nicht möglich.

KonfigurationPHR4.1.7 12.03.06 de

53 von 126
Konfiguration

2.5 Überwachung Steuerschrank


2.5.1 Außenlüfter
Um die Lebensdauer des Außenlüfters zu verlängern, sowie dessen Stromaufnahme und
Geräuschentwicklung zu reduzieren, kann der Außenlüfter der “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.5.2 PC--Lüfter
Diese Funktion überprüft im Rechnerteil des Steuerschranks “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.5.3 Projektierbarer Ausgang für Hardwarewarnung


Im Falle einer Hardwarewarnung bzw. eines Hardwareausfalls der “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.5.4 Motorkabelüberwachung
Für bestimmte Robotertypen an der “KR C2”--Steuerung sind zusätzliche Motorkabel für die
Achsen 1 ... 3 erforderlich. Mit einem Eintrag in der Datei “C:\KRC\Robo-
ter\KRC\R1\MaDa\$machine.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, zusätzlicher Motorkabel wird


keine Haftung übernommen!

KonfigurationPHR4.1.7 12.03.06 de

54 von 126
2 System konfigurieren Experte (Fortsetzung)

2.6 Simulierte Ein--/Ausgänge (IO--Simulation)


Diese Funktion gestattet es, bestimmte Ein-- sowie Ausgänge zu simulieren. Steht beispiels-
weise die Eingangsperipherie noch nicht zur Verfügung, können die erforderlichen Eingänge
einfach per Simulation auf “TRUE” oder “FALSE” gesetzt werden. Das gleiche Prinzip gilt
auch für die Ausgänge.

2.6.1 Funktion
Zum Einschalten der Simulation steht die Variable “$IOSIM_OPT” zur Verfügung. Öffnen Sie
hierzu die Variablenkorrektur und ändern Sie deren Wert auf “TRUE”.

Die Simulation ist damit zwar grundsätzlich eingeschaltet, es müssen aber noch die betroffe-
nen Ein-- bzw. Ausgänge gesetzt werden. Hierzu dienen die Variablen “$INSIM_TBL[x]” und
“$OUTSIM_TBL[x]”.

$INSIM_TBL[x] oder $OUTSIM_TBL[x]

#NONE, #SIM_TRUE oder #SIM_FALSE

Jedem der Ein-- bzw. Ausgänge kann einer der folgenden Zustände zugewiesen werden:
G #NONE Der Ein-- bzw. Ausgang wird nicht simuliert und bleibt damit unver--
ändert;
G #SIM_TRUE Der Ein--/Ausgang wird gesetzt, was in der Anzeige der Digitalen
Ein--/Ausgänge abgelesen werden kann;
G #SIM_FALSE Der Ein-- bzw. Ausgang wird ausgeschaltet, was ebenfalls in der
Anzeige der Digitalen Ein--/Ausgänge abgelesen werden kann.

Einige Ein-- bzw. Ausgänge dürfen aus Systemgründen nicht verwendet werden. Sie sind
mit einem Schreibschutz versehen und können daher nicht verändert werden.

KonfigurationPHR4.1.7 12.03.06 de

55 von 126
Konfiguration

Ausgabe von Arrays


Die Variablen “$IOSIM_IN[ ]” und “$IOSIM_OUT[ ]” geben alle Ein-- bzw. Ausgänge in einer
Zeile aus. Jedem Ein-- bzw. Ausgang ist eine Ziffer zugeordnet, deren Bedeutung nachfol-
gend beschrieben wird.

$IOSIM_IN[ ] oder $IOSIM_OUT[ ]

Ausgabe der Belegung aller Ein--/Ausgänge

Jeder der Ein-- bzw. Ausgänge kann einen der folgenden Zustände annehmen:
G 0 Kein Signal (FALSE)
G 1 Signal liegt an (TRUE)
G 2 Simuliertes Signal ist auf “FALSE” gesetzt (ausgeschaltet)
G 3 Simuliertes Signal ist auf “TRUE” gesetzt (eingeschaltet)
G 4 System Signal ist auf “FALSE” gesetzt (ausgeschaltet)
G 5 System Signal ist auf “TRUE” gesetzt (eingeschaltet)

Im Zustandsfenster der Digitalen Eingänge würde diese Belegung folgendermaßen ausse-


hen:

Kein Signal an Eingang 1 (FALSE)


Signal an Eingang 2 (TRUE)

Kein Signal an Eingang 3 (FALSE)


Signal an Eingang 4 (TRUE)

Kein Signal an Eingang 5 (FALSE)


Signal an Eingang 6 (TRUE)

Auch die Variablen “$IN[ ]” und “$OUT[ ]” geben die Belegung der Ein-- bzw. Ausgänge in
einer Zeile aus, wenn keine Nummer angegeben wird. Allerdings wird nicht zwischen physi-
kalischen und simulierten I/O’s unterschieden, sondern nur, ob ein Signal anliegt oder nicht.

KonfigurationPHR4.1.7 12.03.06 de

56 von 126
2 System konfigurieren Experte (Fortsetzung)

$IN[ ] oder $OUT[ ]

Belegung der Ein--/Ausgänge

Jeder der Ein-- bzw. Ausgänge kann einen der folgenden Zustände annehmen:
G 0 Kein physikalisches Signal (FALSE)
G 1 Physikalisches Signal liegt an (TRUE)

2.6.2 Optionen
Die nachfolgend beschriebenen Optionen sind für die Simulation der Ein--/Ausgänge nicht
notwendig, aber hilfreich.

Zustimmtaste ($OUT_NODRIVE)
Zum Umschalten der Ausgänge muß normalerweise einer der Zustimmtaster gedrückt ge-
halten werden. Durch Setzen der Variablen “$OUT_NODRIVE” auf “TRUE” kann dies unter-
bunden werden.

Betriebsart Automatik Extern ($IOBLK_EXT)


In Verbindung mit $OUT_NODRIVE = TRUE gestattet die Variable “$IOBLK_EXT” das Set-
zen von Ausgängen in der Betriebsart “Automatik Extern” (#EXT), was normalerweise nicht
möglich ist. Dazu muß “$IOBLK_EXT” auf den Wert “FALSE” gesetzt werden.

KonfigurationPHR4.1.7 12.03.06 de

57 von 126
Konfiguration

2.6.3 Verwendete Variablen

Variable Wertebereich Bedeutung


TRUE Simulation aktiv
$IOSIM_OPT
FALSE Simulation inaktiv
#NONE Eingang wird nicht simuliert
$INSIM_TBL[x]
#SIM_TRUE Eingang wird eingeschaltet
x = 1 ... 1024
#SIM_FALSE Eingang wird ausgeschaltet
#NONE Ausgang wird nicht simuliert
$OUTSIM_TBL[x]
#SIM_TRUE Ausgang wird eingeschaltet
x = 1 ... 1024
#SIM_FALSE Ausgang wird ausgeschaltet
TRUE Kein Setzen von Ausgängen in #EXT
$IOBLK_EXT *1
FALSE Ausgänge können gesetzt werden
TRUE Zustimmtaster braucht zum Umschalten der
$OUT_NODRIVE Ausgänge nicht gedrückt zu werden
FALSE Zustimmtaster muß betätigt werden
$IOSIM_IN[ ] Anzeige aller Eingänge
$IOSIM_OUT[ ] Anzeige aller Ausgänge
$IN[x] TRUE Eingang gesetzt
x = 1 ... 1026 FALSE Eingang nicht gesetzt
$IN[ ] Alle Eingänge
$OUT[x] TRUE Ausgang gesetzt
x = 1 ... 1024 FALSE Ausgang nicht gesetzt
$OUT[ ] Alle Ausgänge
*1 Nur in Verbindung mit $OUT_NODRIVE = TRUE

Wird ein Ausgang simuliert, kann dieser während der Simulation nicht mehr über die Varia-
blenkorrektur (”$OUT[x]”) oder im Zustandsfenster umgeschaltet werden. Dazu muß die
Simulation für diesen Ausgang zuerst ausgeschaltet werden.

KonfigurationPHR4.1.7 12.03.06 de

58 von 126
2 System konfigurieren Experte (Fortsetzung)

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

Die entsprechenden Einstellungen bzw. Änderungen können nur im Expertenmodus vor-


genommen werden.

2.7.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=3.4.0
&REL 4
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\


MaDa\”.

KonfigurationPHR4.1.7 12.03.06 de

59 von 126
Konfiguration

2.7.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=3.4.0
DEFDAT $MACHINE PUBLIC
.
.
.
SIGNAL $IN_HOME $OUT[1000] ;ROB IN HOMEPOSITION
.
.
.
SIGNAL $IN_HOME1 $OUT[977]
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”.

KonfigurationPHR4.1.7 12.03.06 de

60 von 126
2 System konfigurieren Experte (Fortsetzung)

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

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

2.8.1.1 Konfiguration
Die Definition von kubischen Arbeitsräumen erfolgt über mehrere Zustandsfenster auf Ex-
pertenebene. Rufen Sie hierzu den Menübefehl “Konfig.” --> Extras” --> “Arbeitsraumüber-
wachung” --> “Konfiguration” auf.

Im jeweiligen Zustandsfenster geben Sie die notwendigen Parameter ein.

KonfigurationPHR4.1.7 12.03.06 de

61 von 126
Konfiguration

Im Zustandsfenster “Signal” können Sie für jeden Arbeitsraum einen Ausgang festlegen. Bei
Verletzung eines Arbeitsraumes wird der zuvor festgelegte Ausgang gesetzt.

Die linke Fensterseite ist für die kartesische,


die rechte für die achsspezifische Arbeits--
raumüberwachung vorgesehen
In die entsprechenden Eingabefelder werden
die zu setzenden Ausgänge eingetragen
Soll bei Verletzen eines Arbeitsraumes kein
Ausgang gesetzt werden, ist das entspre-
chende Signal auf “FALSE” zu setzen

Die KRL--Signalvereinbarungen, welche die jeweiligen Ausgänge festlegen, sind in den Ma-
schinendaten festgelegt:
.
.
SIGNAL $WORKSTATE1 $OUT[984]
SIGNAL $WORKSTATE2 $OUT[985]
SIGNAL $WORKSTATE3 $OUT[986]
SIGNAL $WORKSTATE4 $OUT[987]
SIGNAL $WORKSTATE5 FALSE
SIGNAL $WORKSTATE6 FALSE
SIGNAL $WORKSTATE7 FALSE
SIGNAL $WORKSTATE8 FALSE
.
.

Wurde das zugehörige Signal eines Arbeitsraumes auf “FALSE” rangiert, kann durch die
Komponente “$WORKSPACE[n].STATE” abgelesen werden, ob dieser Arbeitsraum ver-
letzt ist oder nicht.

KonfigurationPHR4.1.7 12.03.06 de

62 von 126
2 System konfigurieren Experte (Fortsetzung)

Über den Softkey “Kartesisch” gelangen Sie zum Zustandsfenster für die Definition der kubi-
schen Arbeitsräume.

Arbeitsraum Nr. und Bezeichnung

Frame, der den Ursprung sowie die Orien-


tierung des Arbeitsraumes bezüglich des
Weltkoordinatensystems angibt

Abmessungen des Arbeitsraumes bezüg-


lich seines durch {X, Y, Z, A, B, C} festge-
legten Ursprungs

Arbeitsweise der Arbeitsraumüberwa-


chung

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--Koordi--
natensystem
A, B, C: Orientierung des Arbeitsraumes bezogen auf das Welt--Koordi--
natensystem
X1, Y1, Z1: Bestimmt Dx1, Dy1, Dz1 in Bezug auf den Ursprung X, Y, Z, A,
B, C und spannt einen Quader auf
X2, Y2, Z2: Bestimmt Dx2, Dy2, Dz2 in Bezug auf den Ursprung X, Y, Z, A,
B, C und erweitert bzw. verkleinert den Quader
Einstellungsmöglichkeiten für “MODE”:
#OFF Die Überwachung des betreffenden Arbeitsraumes wird abge--
schaltet.
#INSIDE Der vorgegebene Ausgang wird gesetzt, wenn sich der Be--
zugspunkt ( TCP ) des Werkzeugs / Werkstücks innerhalb
des Arbeitsraumes befindet.
#OUTSIDE Der vorgegebene Ausgang wird gesetzt, wenn sich der Be--
zugspunkt ( TCP ) des Werkzeugs / Werkstücks außerhalb
des Arbeitsraumes befindet.
#INSIDE_STOP Der vorgegebener Ausgang wird gesetzt, wenn sich der Be--
zugspunkt ( TCP ) des Werkzeugs / Werkstücks, bzw. der
Handwurzelpunkt innerhalb des Arbeitsraumes befindet.
Zusätzlich wird der Roboter gestoppt und die Zustandsmel--
dung 114 “ Arbeitsraum Nr. n verletzt” ausgegeben.

KonfigurationPHR4.1.7 12.03.06 de

63 von 126
Konfiguration

#OUTSIDE_STOP Der vorgegebene Ausgang wird gesetzt, wenn sich der Be--
zugspunkt ( TCP ) des Werkzeugs / Werkstücks außerhalb
des Arbeitsraumes befindet. Zusätzlich wird der Roboter ge--
stoppt und die Zustandsmeldung 114 “ Arbeitsraum Nr. n ver--
letzt” 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

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.

Variablen zur Verwendung mit Varkor oder in KRL--Programmen

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

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

Nähere Informationen darüber, wie der Wert von Systemvariablen während des Betriebs
der Steuerung geändert werden kann, finden Sie im Bedienhandbuch im Kapitel [Anzei-
gen], Abschnitt “Variablen”.

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.

KonfigurationPHR4.1.7 12.03.06 de

64 von 126
2 System konfigurieren Experte (Fortsetzung)

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

Mit dem Softkey “Achs--Spez.” gelangen Sie zum Zustandsfenster für die Definition der
achsspezifischen Arbeitsräume.

Näheres finden Sie im Abschnitt 2.8.2.

Die Änderungen werden mit dem Softkey “Ändern” übernommen.

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.

Der Softkey “Schließen” beendet das Konfigurationsmenü. Sämtliche Veränderungen, wel-


che nicht mit “Ändern” gesichert wurden, gehen verloren.

KonfigurationPHR4.1.7 12.03.06 de

65 von 126
Konfiguration

2.8.1.2 Überbrücken
Überbrücken der Arbeitsraumüberwachung über Menü
Das “Überbrücken” der Arbeitsraumüberwachung ist über die Menüfunktion “Konfig.” -->
“Extras” --> “Arbeitsraumü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 TEST (T1) 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.

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.

KonfigurationPHR4.1.7 12.03.06 de

66 von 126
2 System konfigurieren Experte (Fortsetzung)

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

KonfigurationPHR4.1.7 12.03.06 de

67 von 126
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.
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.

KonfigurationPHR4.1.7 12.03.06 de

68 von 126
2 System konfigurieren Experte (Fortsetzung)

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

KonfigurationPHR4.1.7 12.03.06 de

69 von 126
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}

KonfigurationPHR4.1.7 12.03.06 de

70 von 126
2 System konfigurieren Experte (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}

KonfigurationPHR4.1.7 12.03.06 de

71 von 126
Konfiguration

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

2.8.2.1 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:

Wandroboter Konsolroboter

Palettierroboter

KonfigurationPHR4.1.7 12.03.06 de

72 von 126
2 System konfigurieren Experte (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.

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°

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.

KonfigurationPHR4.1.7 12.03.06 de

73 von 126
Konfiguration

Achse 2 Achse 1
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.

KonfigurationPHR4.1.7 12.03.06 de

74 von 126
2 System konfigurieren Experte (Fortsetzung)

2.8.2.2 Konfiguration
Die Definition von Arbeitsräumen erfolgt über mehrere Zustandsfenster auf Expertenebene.
Rufen Sie hierzu den Menübefehl “Konfig.” --> Extras” --> “Arbeitsraumüberwachung” -->
“Konfiguration” auf.

Im jeweiligen Zustandsfenster geben Sie die notwendigen Parameter ein.

Im Zustandsfenster “Signal” können Sie für jeden Arbeitsraum einen Ausgang festlegen.
Wird ein Arbeitsraum verletzt, wird der zuvor festgelegte Ausgang gesetzt.

Die linke Fensterseite ist für die kartesische,


die rechte für die achsspezifische Arbeits--
raumüberwachung vorgesehen
In die entsprechenden Eingabefelder werden
die zu setzenden Ausgänge eingetragen
Soll bei Verletzen eines Arbeitsraumes kein
Ausgang gesetzt werden, ist das entspre-
chende Signal auf “FALSE” zu setzen

Die KRL--Signalvereinbarungen, welche die jeweiligen Ausgänge festlegen, sind in den Ma-
schinendaten festgelegt:
.
.
SIGNAL $AXWORKSTATE1 $OUT[969]
SIGNAL $AXWORKSTATE2 $OUT[970]

KonfigurationPHR4.1.7 12.03.06 de

75 von 126
Konfiguration

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.

Über den Softkey “Kartesisch” gelangen Sie zum Zustandsfenster für die Definition der kubi-
schen Arbeitsräume.

Näheres finden Sie im Abschnitt 2.8.1.

Mit dem Softkey “Achs--Spez.” gelangen Sie zum Zustandsfenster für die Definition der
achsspezifischen Arbeitsräume.

Achsspezifischer Arbeitsraum Nr.


sowie Bezeichnung

Angaben der Unter-- und Obergren-


zen für einzelnen Achswinkel, gül-
tig für Standard-- und Zusatzach-
sen

Arbeitsweise der Arbeitsraumüber-


wachung

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

KonfigurationPHR4.1.7 12.03.06 de

76 von 126
2 System konfigurieren Experte (Fortsetzung)

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 abge--
schaltet.
#INSIDE Der vorgegebene Ausgang wird gesetzt, wenn sich alle Achsen
innerhalb ihres definierten Arbeitsraumes befinden.
#OUTSIDE Der vorgegebener Ausgang wird gesetzt, wenn sich alle Ach--
sen außerhalb ihres definierten Arbeitsraumes befinden.
#INSIDE_STOP Der vorgegebene Ausgang wird gesetzt, wenn sich alle Achsen
innerhalb ihres definierten Arbeitsraumes befinden. Außerdem
wird der Roboter gestoppt und eine Fehlermeldung ausgege--
ben.
#OUTSIDE_STOP Der vorgegebene Ausgang wird gesetzt, wenn sich alle Ach--
sen 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

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.

Variablen zur Verwendung mit Varkor oder in KRL--Programmen

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

KonfigurationPHR4.1.7 12.03.06 de

77 von 126
Konfiguration

$WBOXDISABLE Überbrücken der Arbeits-- TRUE


raumüberwachung einschalten FALSE
(TRUE) bzw. ausschalten
(FALSE)

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

Nähere Informationen darüber, wie der Wert von Systemvariablen während des Betriebs
der Steuerung geändert werden kann, finden Sie im Bedienhandbuch im Kapitel [Anzei-
gen], Abschnitt “Variablen”.

Die Änderungen werden mit dem Softkey “Ändern” übernommen.

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.

Der Softkey “Schließen” beendet die Funktion. Sämtliche Veränderungen, welche nicht mit
“Ändern” gesichert wurden, gehen verloren.

KonfigurationPHR4.1.7 12.03.06 de

78 von 126
2 System konfigurieren Experte (Fortsetzung)

2.8.2.3 Überbrücken
Das “Überbrücken” der Arbeitsraumüberwachung ist über die Menüfunktion “Konfig.” -->
“Extras” --> “Arbeitsraumü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 TEST (T1) möglich.

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.

KonfigurationPHR4.1.7 12.03.06 de

79 von 126
Konfiguration

2.8.2.4 Beispiel
In diesem Beispiel wird ein Arbeitsbereich definiert, innerhalb dessen sich der Roboter bewe-
gen darf. Dieser Bereich soll wie folgt aussehen:

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 schlägt die Überwachung zu, sobald einer
der definierten Arbeitsräume verlassen wird.

KonfigurationPHR4.1.7 12.03.06 de

80 von 126
2 System konfigurieren Experte (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°

Achse 2 Achse 1
Hierzu werden für die erste Achse insgesamt 2 Bereiche definiert, in welche der Roboter
nicht hineinfahren darf.

--45° +45°

Arbeitsraum Nr. 1 Arbeitsraum Nr. 2 In diese Bereiche darf der Robo-


ter nicht hineinfahren, solange
sich Achse 2 im Bereich zwi-
schen 20 und 35 Grad befindet

--160° +160°

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

KonfigurationPHR4.1.7 12.03.06 de

81 von 126
Konfiguration

Signal

Der jeweilige Ausgang wird entsprechend des


eingestellten MODE gesetzt.

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
.

KonfigurationPHR4.1.7 12.03.06 de

82 von 126
2 System konfigurieren Experte (Fortsetzung)

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

Achsspezifischer Arbeitsraum Nr.


1 mit der Bezeichnung
”AXWORKSPACE_DOWN 1”

Angaben der Winkel für die Achsen


1 und 2, die anderen Achsen wer-
den nicht überwacht

Der Roboter wird angehalten und


der vorher definierte Ausgang ge-
setzt, sobald sich Achse 1 und 2
gleichzeitig im festgelegten Ar-
beitsraum befinden.

Der zweite Arbeitsraum:

Achsspezifischer Arbeitsraum Nr.


2 mit der Bezeichnung
”AXWORKSPACE_DOWN 2”

Angaben der Winkel für die Achsen


1 und 2, die anderen Achsen wer-
den nicht überwacht

Der Roboter wird angehalten und


der vorher definierte Ausgang ge-
setzt, sobald sich Achse 1 und 2
gleichzeitig im festgelegten Ar-
beitsraum befinden.

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

KonfigurationPHR4.1.7 12.03.06 de

83 von 126
Konfiguration

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}

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

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

KonfigurationPHR4.1.7 12.03.06 de

84 von 126
2 System konfigurieren Experte (Fortsetzung)

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°

Achse 2

--95°
--95° +95°

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.

--95° +95°

In diese Bereiche darf der Robo-


Arbeitsraum Nr. 3 Arbeitsraum Nr. 4
ter nicht hineinfahren, solange
sich Achse 2 zwischen 0 und 20
Grad befindet

--160° +160°

KonfigurationPHR4.1.7 12.03.06 de

85 von 126
Konfiguration

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

Signal

Der jeweilige Ausgang wird entsprechend der Be-


dingung gesetzt.

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


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

KonfigurationPHR4.1.7 12.03.06 de

86 von 126
2 System konfigurieren Experte (Fortsetzung)

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

Achsspezifischer Arbeitsraum Nr.


3 mit der Bezeichnung
”AXWORKSPACE_DOWN 3”
Angaben der Winkel für die Achsen
1 und 2, die anderen Achsen wer-
den nicht überwacht

Der Roboter wird angehalten und


der vorher definierte Ausgang ge-
setzt, sobald sich Achse 1 und 2
gleichzeitig im festgelegten Ar-
beitsraum befinden.

Der vierte Arbeitsraum:

Achsspezifischer Arbeitsraum Nr.


4 mit der Bezeichnung
”AXWORKSPACE_DOWN 4”
Angaben der Winkel für die Achsen
1 und 2, die anderen Achsen wer-
den nicht überwacht

Der Roboter wird angehalten und


der vorher definierte Ausgang ge-
setzt, sobald sich Achse 1 und 2
gleichzeitig im festgelegten Ar-
beitsraum befinden.

Die entsprechenden KRL--Anweisungen lauten folgendermaßen:

Bezeichnung der Arbeitsräume:


$AXWORKSPACE_NAME3[]=”AXWORKSPACE_DOWN 3”
$AXWORKSPACE_NAME4[]=”AXWORKSPACE_DOWN 4”

KonfigurationPHR4.1.7 12.03.06 de

87 von 126
Konfiguration

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}

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

KonfigurationPHR4.1.7 12.03.06 de

88 von 126
2 System konfigurieren Experte (Fortsetzung)

2.9 Momentenbetrieb (Soft Servo)

2.9.1 Allgemein
Ab dem Softwarestand Release 2.2 können einzelne oder auch mehrere Achsen in den Mo-
mentenbetrieb 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.9.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
Gefahr 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.
5 Aufgrund des geringen Rückwirkungsgrades der Handachsgetriebe sind sehr
6 hohe Kräfte erforderlich.

2.9.1.2 Beispiel Momentenbetrieb

Entladung einer Druckgußmaschine

KonfigurationPHR4.1.7 12.03.06 de

89 von 126
Konfiguration

Roboter greift Bauteil. Teil wird aus der Form Teil wird vom Roboter
gelöst. Der Ausstoßhub übernommen und aus dem
wird durch Drehung des Bereich der Druckguß--
Roboters um Achse 1 maschine heraus gefahren.
abgefangen.

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.9.1.
Durch entsprechendes Einstellen der negativen und positiven Grenze des Drehzahlreg-
lerausganges kann erreicht werden, daß der Roboter das aus der Schwerkraft resultie-
rende Moment ausgleicht, ja sogar am Teil zieht und sich ohne Gegenkraft vom Aussto-
ßer wegdrücken läßt.

2.9.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
der maximalen Achsgeschwindigkeit (Maschinendatum 10% * 110% = 11%) werden, weil
sonst eine Überwachung anspricht und die Antriebe abschalten.

KonfigurationPHR4.1.7 12.03.06 de

90 von 126
2 System konfigurieren Experte (Fortsetzung)

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.9.3 Beispiele für die Weichschaltung von Achsen


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

2.9.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 fal-
scher Einstellung 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 werden

KonfigurationPHR4.1.7 12.03.06 de

91 von 126
Konfiguration

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


lung das geringste Moment hat, niemals weich geschaltet werden. Die Ge-
fahr, daß die Achse nach unten durchsackt, ist sehr groß!

2.9.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.
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 hochsetzen
TRIGGER WHEN DISTANCE=0 DELAY=50 DO $CURR_RED[7,1]=100
PTP {E1 20} ;Schweißzange öffnen
$TORQUE_AXIS = 0 ;Momentenbetrieb abschalten

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

KonfigurationPHR4.1.7 12.03.06 de

92 von 126
2 System konfigurieren Experte (Fortsetzung)

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 er-
forderliche Moment zum Halten, Bremsen oder Fahren aufbringen kann.
Dadurch können 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 Überwachungsfunktio-


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

KonfigurationPHR4.1.7 12.03.06 de

93 von 126
Konfiguration

2.10 Kollisionsüberwachung
2.10.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, Satzanwahl und 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 Mo-
mente.

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

KonfigurationPHR4.1.7 12.03.06 de

94 von 126
2 System konfigurieren Experte (Fortsetzung)

:
REAL $TORQMON_TIME=0.0 ;ZEIT FUER FAHRMOMENTENUEBERWACHUNG
:

Die Größe des Überwachungsschlauchs wird durch folgende Variablen in der Datei
“C:\KRC\Roboter\KRC\MaDa\$CUSTOM.DAT” vorgegeben:
G Standardwerte des Überwachungsschlauchs für den Programmbetrieb in Prozent
:
$TORQMON_DEF[1]=200
$TORQMON_DEF[2]=200
$TORQMON_DEF[3]=200
$TORQMON_DEF[4]=200
$TORQMON_DEF[5]=200
$TORQMON_DEF[6]=200
:

G Standardwerte des Überwachungsschlauchs für den Kommandobetrieb in Prozent


:
$TORQMON_COM_DEF[1]=200
$TORQMON_COM_DEF[2]=200
$TORQMON_COM_DEF[3]=200
$TORQMON_COM_DEF[4]=200
$TORQMON_COM_DEF[5]=200
$TORQMON_COM_DEF[6]=200
:

Die Breite des Toleranzbandes ergibt sich aus dem maximalen Moment in [Nm] multipliziert
mit der Prozentsatz von “$TORQMON_...”.

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


nabweichung in Prozent abgelesen werden. Diese Variable kann daher zum optimieren der
Momentenüberwachung genutzt werden:

KonfigurationPHR4.1.7 12.03.06 de

95 von 126
Konfiguration

Vor einem Bewegungssatz bzw. Bewegungsabschnitts setzen Sie die Variable mit Hilfe
der Variablenkorrektur auf “0”.

Nun führen Sie den Bewegungssatz aus und lesen die Variable erneut aus. Der ausge-
gebene Wert entspricht der aufgetretenen maximalen Momentabweichung.
Setzen Sie nun den Überwachungsschlauch auf den Wert von “$TORQ_DIFF[ ]” zu-
zü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!

KonfigurationPHR4.1.7 12.03.06 de

96 von 126
3 Automatik Extern

3 Automatik Extern
3.1 Allgemein
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 Roboter-
steuerung Informationen über Betriebszustände und Störmeldungen an den Leitrechner
übermitteln.
Bei der KR C1 wird dies alles durch den automatischen Anlagenanlauf, das technologiespe-
zifische Organisationsprogramm CELL.SRC und durch die Funktionen des Moduls P00 rea-
lisiert.

3.2 Schnittstelle konfigurieren

Informationen zur der Anzeige der Schnittstelle “Automatik Extern” finden Sie im Kapitel
[Anzeige].

Den Signalen der Schnittstelle “Automatik Extern” müssen physikalische Ein-- und Aus-
gänge der Robotersteuerung zugeordnet werden. Wählen Sie dazu aus dem Menü “Konfig.”
die Option “Ein/Ausgänge” aus.

Im Anschluß daran wird das Zustandsfenster für die Eingänge der Schnittstelle Automatik
Extern geöffnet.
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.

Erklärungen zu den Ein--bzw. Ausgängen für Automatik Extern finden Sie im Abschnitt 3.6.

KonfigurationPHR4.1.7 12.03.06 de

97 von 126
Konfiguration

3.2.1 Eingänge
Dieses Zustandsfenster zeigt die Eingänge der Automatik--Extern Schnittstelle an.

Eine Funktionsbeschreibung der jeweiligen Variablen oder des betreffenden Eingangs.

Als Typ kommt eine Variable (gelb) oder ein Eingang (grün) vor.

Der Variablenname des entsprechenden Eingangs.

Der Wert des Eingangs bzw. die Kanalnummer

Mit dem Softkey “Bearb.” kann der Wert des Eingangs bzw. die Kanalnummer verändert wer-
den.

Mit “OK” wird der geänderte Wert auf Gültigkeit geprüft und, falls die Ein-
gabe zulässig ist, übernommen
Mit “Abbruch” wird die Änderung verworfen

Der Softkey “Ausgänge” schaltet auf das entsprechende Zustandsfenster um.

Geschlossen wird das Zustandsfenster mit dem Softkey “Schließen”.

KonfigurationPHR4.1.7 12.03.06 de

98 von 126
3 Automatik Extern (Fortsetzung)

3.2.2 Ausgänge
Dieses Zustandsfenster zeigt die Ausgänge der Automatik--Extern Schnittstelle an.

Eine Funktionsbeschreibung der jeweiligen Variablen oder des betreffenden Ausgangs.

Als Typ kommt eine Variable (gelb) oder ein Ausgang (grün) vor.

Der Variablenname des entsprechenden Ausgangs.

Der Wert des Eingangs bzw. die Kanalnummer

Die Softkeys “Tab+” bzw. “Tab--” ermöglichen den Wechsel zur nächst höheren bzw. nächst
niedrigeren Variablengruppe.

Mit dem Softkey “Bearb.” kann der Wert des Ausgangs bzw. die Kanalnummer verändert
werden.

Mit “OK” wird der geänderte Wert auf Gültigkeit geprüft und, falls die Ein-
gabe zulässig ist, übernommen
Mit “Abbruch” wird die Änderung verworfen

Der Softkey “Eingänge” schaltet auf das entsprechende Zustandsfenster um.

Geschlossen wird das Zustandsfenster mit dem Softkey “Schließen”.

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.

KonfigurationPHR4.1.7 12.03.06 de

99 von 126
Konfiguration

3.3 Automatischer Anlagenanlauf

Ist die E/A--Schnittstelle durch Setzen der Systemvariablen $I_O_ACT auf den Wert TRUE
aktiv geschaltet, wird der Ausgang $_I_O_ACTCONF als Rückmeldung ebenfalls auf TRUE
geschaltet. Sind alle weiteren Startbedingungen erfüllt, so kann durch ein Signal auf der Lei-
tung $EXT_START das Programm CELL.SRC gestartet werden.
Natürlich kann das Programm CELL.SRC zu jeder Zeit auch von der Bedienoberfläche aus
gestartet werden.
Für den automatischen Anlagenanlauf muß der Systemvariablen $PRO_I_O in der Datei
“C:\KRC\Roboter\KRC\Steu\MaDa\$CUSTOM.DAT” folgender Wert zugewiesen
werden:

CHAR $PRO_I_O[]=”/R1/SPS()”

Nach dem Hochfahren der Steuerung wird immer versucht das Programm auszuführen,
daß in $PRO_I_O bezeichnet wurde.

Damit die E/A--Schnittstelle überhaupt aktiviert werden kann, muß der Eingang gesetzt
werden, welcher durch Signalvereinbarung der Variablen $I_O_ACT zugewiesen wurde.

KonfigurationPHR4.1.7 12.03.06 de

100 von 126


3 Automatik Extern (Fortsetzung)

3.4 Technologiespezifisches Organisationsprogramm CELL.SRC

Anweisung zum Einbinden der benutzerdefinierten, externen Unterprogramme ...


;EXT EXAMPLE1 ( )
;EXT EXAMPLE2 ( )
;EXT EXAMPLE3 ( )

Initialisierungssequenz ...
INIT
BAS INI
CHECK HOME
PTP HOME Vel= 100 % DEFAULT
AUTOEXT INI

Schleifenbeginn ...
LOOP

Aufruf des Moduls P00, um die Programmnummer vom externen Leitrechner abzurufen ...
P00 (#EXT_PGNO,#PGNO_GET,DMY[],0 )

Kontrollstruktur in Abhängigkeit von der empfangenen Programmnummer ...


SWITCH PGNO

Wenn Programmnummer PGNO = 1 ...


CASE 1

... dem Leitrechner den Empfang der Programmnummer mitteilen ...


P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 )

... und benutzerdefiniertes Programm EXAMPLE1 aufrufen


;EXAMPLE1 ( )

Wenn Programmnummer PGNO = 2 ...


CASE 2

... dem Leitrechner den Empfang der Programmnummer mitteilen ...


P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 )

KonfigurationPHR4.1.7 12.03.06 de

101 von 126


Konfiguration

... und benutzerdefiniertes Programm EXAMPLE2 aufrufen


;EXAMPLE2 ( )

Wenn Programmnummer PGNO = 3 ...


CASE 3

... dem Leitrechner den Empfang der Programmnummer mitteilen ...


P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 )

... und benutzerdefiniertes Programm EXAMPLE3 aufrufen


;EXAMPLE3 ( )

Wurde für die vom Leitrechner übermittelte Programmnummer kein CASE--Zweig gefunden,
DEFAULT

erfolgt hier eine Fehlerbehandlung ...


P00 (#EXT_PGNO,#PGNO_FAULT,DMY[],0 )

Ende der Kontrollstruktur ...


ENDSWITCH

Schleifenende ...
ENDLOOP

Programmende ...
END

KonfigurationPHR4.1.7 12.03.06 de

102 von 126


3 Automatik Extern (Fortsetzung)

3.5 Das Modul P00 (AUTOMATIK--EXTERN)


Im Modul P00 befinden sich die Funktionen für die Übermittlung von Programmnummern
über einen Leitrechner. In diesem globalen Unterprogramm sind die Funktionen INIT_EXT,
EXT_PGNO, CHK_HOME und EXT_ERR zusammengefaßt.

3.5.1 Die Funktion EXT_PGNO

Diese Funktion übernimmt die komplette Signal--Handhabung für die Übermittlung von Pro-
grammnummern über einen Leitrechner.
Sie kann mit einem der drei folgenden Parameter aufgerufen werden:

#PGNO_GET Anforderung einer Programmnummer


#PGNO_ACKN Mitteilen des Erhalt einer Programmnummer
#PGNO_FAULT Fehlerbehandlung

3.5.1.1 Anforderung einer Programmnummer beim Leitrechner

EXT_PGNO (#PGNO_GET)

Erkennt der Leitrechner eine Programmnummern--Anforderung auf der Leitung PGNO_REQ,


so legt er die Programmnummer als Binärwert an die dafür vorgesehenen Eingänge der Ro-
botersteuerung.
Zur Erhöhung der Übertragungssicherheit kann vom Leitrechner zusätzlich zur Programm-
nummer noch ein Paritätsbit, PGNO_PARITY, übergeben werden. Stehen die Signalpegel
stabil an, so fordert der Leitrechner durch das Setzen der Leitung PGNO_VALID oder
EXT_START die Robotersteuerung auf, die Programmnummer einzulesen. Die Funktion
EXT_PGNO berechnet nun aus der empfangenen Programmnummer die Parität und ver-
gleicht sie mit dem angelegten Paritätsbit. Bei positivem Ergebnis gibt die Funktion die emp-
fangene Programmnummer als ganzzahligen Wert zurück. Stimmen empfangene und be-
rechnete Parität jedoch nicht überein, so wird die Programmnummer auf den Wert “0”
gesetzt. Im Meldungsfenster des KCP wird eine Fehlermeldung ausgegeben.

Da beim Auftreten eines Paritätsfehlers die Programmnummer immer auf den Wert Null
gesetzt wird, darf dieser Wert natürlich nicht als gültige Programmnummer in CELL.SRC
verwendet werden !

3.5.1.2 Mitteilen des Erhalts einer gültigen Programmnummer

EXT_PGNO (#PGNO_ACKN)

Wurde die Programmnummer korrekt übertragen, so wird in der Kontrollstruktur in


CELL.SRC versucht, dieser Programmnummer ein Anwenderprogramm zuzuordnen. Ge-
lingt dies, so nimmt die Funktion die Programmnummer--Anforderung selbständig zurück.
Sie signalisiert dies dem Leitrechner durch Setzen der Leitung APPL_RUN.
Im anderen Fall wird die nachfolgend beschriebene Funktion zur Fehlerbehandlung aufgeru-
fen.

KonfigurationPHR4.1.7 12.03.06 de

103 von 126


Konfiguration

3.5.1.3 Fehlerbehandlung

EXT_PGNO (#PGNO_FAULT)

Wurde die Programmnummer nicht korrekt übertragen, d.h.


(1) die Paritätsprüfung war nicht erfolgreich, oder
(2) die BCD--Kodierung war falsch, besser gesagt: die Dekodierung führte zu keinem
gültigen Ergebnis, oder
(3) es war dieser Programmnummer kein Anwenderprogramm zugeordnet,
so zeigt die Funktion EXT_PGNO über das Meldungsfenster des KCP einen Übertragungs-
fehler an. Die Leitung PGNO_REQ wird zurückgesetzt. Dadurch wird dem Leitrechner mitge-
teilt, daß die Übertragung fehlerhaft war.

Eine fehlerhafte Übermittlung kann vom Leitrechner durch einen Timeout festgestellt wer-
den. Dieser Timeout wird mit dem Setzen der Leitung PGNO_VALID gestartet. Sollte nach
einer festgelegten Zeitdauer ( etwa 200 ms ) die Programmnummer--Anforderung auf der
Leitung PGNO_REQ nicht zurückgenommen werden, so muß bei der Übertragung ein Feh-
ler aufgetreten sein. Der Leitrechner kann jetzt auf den Fehler reagieren.

KonfigurationPHR4.1.7 12.03.06 de

104 von 126


3 Automatik Extern (Fortsetzung)

3.5.2 Die Funktion EXT_ERR


Mit dieser Funktion kann über acht festgelegte Ausgänge der Robotersteuerung eine verein-
barte Fehlernummer im Bereich 1 ... 255 zum Leitrechner übertragen werden. Zusätzlich
werden die letzten 64 aufgetretenen Fehler im Ringspeicher ERR_FILE zu einer genaueren
Analyse aufbewahrt.
Um die Funktion EXT_ERR nutzen zu können, müssen Sie die Datei p00.dat wie nachfol-
gend beschrieben editieren:

&ACCESS R
&COMMENT EXTERNAL package
DEFDAT P00
BOOL PLC_ENABLE = TRUE Setzen Sie diesen Wert auf TRUE
INT I
INT F_NO=1
INT MAXERR_C = 1 Tragen Sie hier die Anzahl der
Steuerungsfehler ein, für deren
Übertragung Sie Parameter
festgelegt haben
INT MAXERR_A = 1 Tragen Sie hier die Anzahl der
Applikationsfehler ein, für deren
Übertragung Sie Parameter
festgelegt haben
DECL STOPMESS MLD
SIGNAL ERR $OUT[25] TO $OUT[32] Legen Sie hier fest, über welche
Ausgänge der Robotersteuerung
der Leitrechner die Fehlernummer
auslesen soll
Im Beispiel sind dies die
Ausgänge 25 bis 32
BOOL FOUND
STRUC PRESET INT OUT,CHAR PKG[3],INT ERR
DECL PRESET P[255] Im folgenden Bereich müssen Sie
die Parameter der Fehler eintragen:
OUT --
Fehlernummer, die zum Leitrechner
übertragen werden soll
PKG[ ] --
Technologiepaket
ERR --
Fehlernummer im ausgewählten
Technologiepaket
P[1]={OUT 2,PKG[]”P00”,ERR 10} Im Bereich von P[1] ... P[127]
... können Sie nur Applikationsfehler
P[127]={OUT 27,PKG[]”S00”,ERR 11} eintragen
P[128]={OUT 12,PKG[]”CTL”,ERR 1} Im Bereich von P[128] ... P[255]
... können Sie nur Steuerungsfehler
P[255]={OUT 25,PKG[]”CTL”,ERR 10} eintragen

KonfigurationPHR4.1.7 12.03.06 de

105 von 126


Konfiguration

STRUC ERR_MESS CHAR P[3],INT E


DECL ERR_MESS ERR_FILE[64]
ERR_FILE[1]={P[] ”XXX”,E 0}
...
ERR_FILE[64]={P[] ”XXX”,E 0}
ENDDAT

KonfigurationPHR4.1.7 12.03.06 de

106 von 126


3 Automatik Extern (Fortsetzung)

3.6 Signalbeschreibungen
Die Signale sind schreibgeschützt, können aber jederzeit gelesen oder in Programmen ver-
wendet werden.

3.6.1 Eingänge
3.6.1.1 PGNO_TYPE
Dies ist kein Eingang oder Signal, sondern eine Variable. Mit ihrem Wert wird festgelegt, in
welchem Format die vom Leitrechner übermittelte Programmnummer eingelesen wird.

PGNO_TYPE Einlesen als... Bedeutung Beispiele


Die Programmnummer wird von der 0010 0111
1 Binärzahl übergeordneten Steuerung als binär => PGNO = 39
codierter Integerwert übergeben
0010 0111
Die Programmnummer wird von der
2 BCD--Wert übergeordneten Steuerung als Binär
2 7
Codierter Dezimalwert übergeben
=> PGNO = 27
00000001
Die Programmnummer wird von der
übergeordneten Steuerung oder der => PGNO = 1
3 “1 aus n“ *1
Peripherie als “1 aus n“ codierter Wert 00001000
übergeben
=> PGNO = 4
*1 Bei diesem Übergabeformat werden die Werte von PGNO_REQ, PGNO_PARITY
sowie PGNO_VALID nicht ausgewertet und sind somit ohne Bedeutung.

3.6.1.2 PGNO_LENGTH
Auch dies ist kein Eingang oder Signal, sondern wieder eine Variable. Mit ihrem Wert wird
die Bitbreite der vom Leitrechner übermittelten Programmnummer festgelegt.

PGNO_LENGTH = 1...16

Beispiel:
PGNO_LENGTH = 6 => die externe Programmnummer ist sechs Bit breit

Während PGNO_TYPE den Wert 2 besitzt (Programmnummer als BCD--Wert einlesen),


sind nur die Bitbreiten 4, 8, 12 und 16 zugelassen.

3.6.1.3 PGNO_FBIT
Eingang, der das erste Bit der Programmnummer darstellt.

PGNO_FBIT = 1...1024 (PGNO_LENGTH)

Beispiel:
PGNO_FBIT = 5 => die externe Programmnummer beginnt mit $IN[5]

KonfigurationPHR4.1.7 12.03.06 de

107 von 126


Konfiguration

3.6.1.4 REFLECT_PROG_NR
Mit dieser Option wird festgelegt, ob die Programmnummer auf einen festlegbaren Ausgabe-
bereich gespiegelt werden soll. Der Wert der Variablen kann über die Konfiguration der Auto-
matik--Extern--Schnittstelle geändert werden.

REFLECT_PROG_NR Funktion
0 ausgeschaltet
1 eingeschaltet

Die Ausgabe erfolgt ab dem Ausgang, der mit “PGNO_FBIT_REFL” festgelegt wird.

3.6.1.5 PGNO_PARITY
Eingang, auf den das Paritätsbit vom Leitrechner übertragen wird.

Eingang Funktion
negativer Wert ungerade Parität
0 keine Auswertung
positiver Wert gerade Parität

Während PGNO_TYPE den Wert 3 besitzt (Programmnummer als “1 von n”--Wert einlesen),
wird PGNO_PARITY NICHT ausgewertet.

3.6.1.6 PGNO_VALID
Eingang, auf den das Kommando zum Einlesen der Programmnummer vom Leitrechner
übertragen wird.

Eingang Funktion
negativer Wert Nummer wird mit der abfallenden Flanke des Signals übernommen
Nummer wird mit der ansteigenden Flanke des Signals an der Leitung
0
EXT_START übernommen
positiver Wert Nummer wird mit der ansteigenden Flanke des Signals übernommen

Während PGNO_TYPE den Wert 3 besitzt (Programmnummer als “1 von n”--Wert einlesen),
wird PGNO_VALID NICHT ausgewertet.

3.6.1.7 EXT_START
Mit dem Setzen dieses Eingangs kann bei aktiver E/A--Schnittstelle ein Programm gestartet,
bzw. wieder fortgesetzt werden.

Es wird nur die ansteigende Flanke des Signals ausgewertet.

KonfigurationPHR4.1.7 12.03.06 de

108 von 126


3 Automatik Extern (Fortsetzung)

Im Automatik--Extern--Betrieb gibt es keine SAK--Fahrt und damit auch keinen Programm-


halt an der ersten programmierten Position. Dies gilt sowohl nach generatorischem Stop
mit Verlassen der Bahn (z.B. Bedienerschutz) als auch beim Verlassen der Bahn von
Hand.
Die erste anzufahrende Position ist in diesen Fällen die in $POS_RET gespeicherte Position
vor der Unterbrechung. Demzufolge muß beim Setzen von EXT_START vom Bediener si-
chergestellt werden, daß der Roboter auf dieser Position steht, bzw. diese gefahrlos errei-
chen kann.
Der erste Bewegungssatz muß ein PTP--Satz mit absoluter Zielpunktangabe sein. Dieser
wird immer genau und mit voller Geschwindigkeit angefahren, wobei eine programmierte
Überschleifanweisung ignoriert wird!

3.6.1.8 MOVE_ENABLE
Dieser Eingang wird zur Kontrolle der Roboterantriebe durch den Leitrechner verwendet.

Signal Funktion
TRUE Handverfahren und Programmausführung möglich
FALSE Stillsetzen aller Antriebe und Verriegelung aller aktiven Kommandos

Sind die Antriebe vom Leitrechner stillgesetzt worden, so erscheint im Meldungsfenster


des KCP die Meldung ” FAHRFREIGABE GESAMT ”. Das Bewegen des Roboters ist erst
nach dem Löschen dieser Meldung und einem erneuten externen Startsignal wieder mög-
lich.

Während der Inbetriebnahme wird die Variable für die Fahrfreigabe “$MOVE_ENABLE”
häufig auf den Wert “$IN[1025]” projektiert. Wird danach vergessen, einen anderen Ein-
gang zu projektieren, ist kein externer Start möglich.

3.6.1.9 CHCK_MOVENA
Besitzt die Variable $CHCK_MOVENA den Wert “FALSE”, kann MOVE_ENABLE umgan-
gen werden. Der Wert der Variablen kann nur in der Datei “C:\KRC\Robo-
ter\KRC\Steu\MaDa\OPTION.DAT” geändert werden.

Signal Funktion
TRUE Überwachung für MOVE--ENABLE ist wirksam
FALSE Überwachung für MOVE_ENABLE ist deaktiviert

Um die Überwachung für MOVE_ENABLE verwenden zu können, muß $MOVE_ENABLE


auf den Eingang “$IN[1025]” projektiert worden sein. Andernfalls hat “$CHCK_MOVENA
keinerlei Wirkung.

3.6.1.10 CONF_MESS
Durch Setzen dieses Eingangs kann der Leitrechner aufgetretene Fehlermeldungen selbst
löschen (quittieren).

Es wird nur die ansteigende Flanke des Signals ausgewertet.

Ein Quittieren der Fehlermeldungen ist selbstverständlich nur dann möglich, wenn die
Störungsursache beseitigt wurde.

KonfigurationPHR4.1.7 12.03.06 de

109 von 126


Konfiguration

3.6.1.11 DRIVES_ON
Durch einem High--Impuls von mind. 20 ms Dauer an diesem Eingang kann der Leitrechner
die Roboterantriebe einschalten.

Ab dem Software--Stand 1.1.7 und bei Verwendung der Powermodule PM6--600, Ferti-
gungsstände A, B oder C und PM0--600 Pro wird das Wiedereinschalten der Antriebe zum
Schutz des Antriebsrelais K2 13--18.5 Sekunden lang nach dem letzten Einschalten der
Antriebe verhindert.
Eine anstehende positive Flanke von DRIVES_ON wird am Ende des Zeitfensters (nach
18.5 Sekunden) erkannt und die Antriebe werden verzögert eingeschaltet.

3.6.1.12 DRIVES_OFF
Durch einem Low--Impuls von mind. 20 ms Dauer an diesem Eingang kann der Leitrechner
die Roboterantriebe abschalten.

KonfigurationPHR4.1.7 12.03.06 de

110 von 126


3 Automatik Extern (Fortsetzung)

3.6.2 Ausgänge

3.6.2.1 STOPMESS
Dieser Ausgang wird von der Robotersteuerung gesetzt, um dem Leitrechner das Auftreten
einer Meldung anzuzeigen, die das Anhalten des Roboters erforderlich machte.
(z.B. NOT--AUS, Fahrfreigabe, Bedienerschutz, Sollgeschwindigkeit usw.)

3.6.2.2 PGNO_REQ
Mit einem Signalwechsel an diesem Ausgang wird der Leitrechner aufgefordert, eine Pro-
grammnummer zu übermitteln.

Es werden beide Flanken des Signals ausgewertet.


Während PGNO_TYPE den Wert 3 besitzt (Programmnummer als “1 von n”--Wert einlesen),
wird PGNO_REQ NICHT ausgewertet.

3.6.2.3 PGNO_FBIT_REFL
Gespiegelter Ausgang, welcher das erste Bit der Programmnummer darstellt. Zum Einsatz
dieser Option muß der Variablen “REFLECT_PROG_NR” der Wert “1” zugewiesen werden.
Wird ein Programm, welches von der SPS angewählt wurde, vom Bediener abgewählt, wird
der Ausgabebereich beginnend mit PGNO_FBIT_REFL auf “FALSE” gesetzt. Auf diese
Weise kann die SPS den manuellen Neustart eines Programmes unterbinden.

PGNO_FBIT_REFL wird ebenfalls auf “FALSE” gesetzt, wenn sich der Interpreter im
CELL--Programm befindet.

PGNO_FBIT_REFL = 1...1024 (PGNO_LENGTH)

Die Größe des Ausgangsbereiches hängt von der Bitbreite der Programmnummer ab
(PGNO_LENGTH).

Beispiel:
PGNO_FBIT_REFL = 5 => die Programmnummer beginnt mit $OUT[5]

3.6.2.4 APPL_RUN
Mit dem Setzen dieses Ausgangs teilt die Robotersteuerung dem Leitrechner mit, daß ge-
rade ein Programm abgearbeitet wird.

Der Wert von APPL_RUN darf nicht kleiner als “0” sein.

3.6.2.5 PERI_RDY
Mit Setzen dieses Ausgangs teilt die Robotersteuerung dem Leitrechner mit, daß die Robo-
terantriebe eingeschaltet sind.

KonfigurationPHR4.1.7 12.03.06 de

111 von 126


Konfiguration

3.6.2.6 ALARM_STOP
Dieser Ausgang wird beim Auftreten eines Not--Aus--Ereignisses zurückgesetzt.

3.6.2.7 USER_SAF
Dieser Ausgang wird beim Öffnen des Schutzgitter--Abfrageschalters (in der Betriebsart
AUTO), bzw. beim Loslassen eines Zustimmungsschalters (in der Betriebsart TEST) zu-
rückgesetzt.

3.6.2.8 T1, T2, AUT, EXTERN


Diese Ausgänge werden gesetzt, wenn die entsprechende Betriebsart angewählt wurde.

3.6.2.9 ON_PATH
Dieser Ausgang ist gesetzt, solange sich der Roboter auf seiner programmierten Bahn befin-
det.
Nach der SAK--Fahrt wird der Ausgang ON_PATH gesetzt. Dieser Ausgang bleibt solange
gesetzt, bis der Roboter die Bahn verläßt, das Programm zurückgesetzt wird oder eine Sat-
zanwahl durchgeführt wird. Das Signal ON_PATH hat aber kein Toleranzfenster; sobald der
Roboter die Bahn verläßt, wird dieses Signal zurückgesetzt.

KonfigurationPHR4.1.7 12.03.06 de

112 von 126


3 Automatik Extern (Fortsetzung)

3.6.2.10 NEAR_POSRET
Über ein zweites Signal, NEAR_POSRET, kann der Leitrechner feststellen, ob der Roboter in-
nerhalb einer Kugel um die in $POS_RET gespeicherte Position steht. Der Radius der Kugel
kann vom Anwender in der Datei $CUSTOM.DAT über die Systemvariable $NEARPATHTOL
eingestellt werden.

Mit dieser Information kann der Leitrechner entscheiden, ob das Programm wieder gestar-
tet werden darf oder nicht.
Die Rückkehrposition $POS_RET ist die Position, an welcher der Roboter die Bahn verlas-
sen hat.
Beim Wechsel in die Betriebsart “Automatik Extern” wird überprüft, ob die Variable
“$NEAR_POSRET” auf “TRUE” steht. Ist dies nicht der Fall, wird eine entsprechende Mel-
dung im Meldungsfenster ausgegeben.

$NEAR_POSRET
FALSE

TRUE Bahn

FALSE $POS_RET
Bahnabdrift, z. B. durch
Generatorischen Stop

$NEARPATHTOL

Mögliche Zustände von NEAR_POSRET:


TRUE:
ON_PATH ist gesetzt, oder wenn ON_PATH nicht gesetzt ist: $POS_RET ist gültig und
die Position ist innerhalb der Kugel um $POS_RET.
FALSE:
ON_PATH ist zurückgesetzt und $POS_RET ist ungültig oder die Position ist außerhalb
der Kugel um $POS_RET.
Einstellung:
Datei: $MACHINE.DAT
SIGNAL $NEAR_POSRET $OUT[XXX]

3.6.2.11 PRO_ACT
Dieser Ausgang ist immer dann gesetzt, wenn ein Prozeß bzw. die Programmbearbeitung
auf Roboterebene aktiv ist.

Sein Signalzustand wird von der Systemvariablen $PRO_STATE1 abgeleitet:


$PRO_STATE1=#P_ACTIVE ! $PRO_ACT=TRUE
alle anderen Prozeßzustände ! $PRO_ACT=FALSE

Der Prozeß ist aktiv, solange ein Programm oder ein Interrupt bearbeitet wird. Die Pro-
grammbearbeitung am Ende des Programms wird erst dann inaktiv, wenn alle Impulsaus-
gänge und Trigger abgearbeitet sind. Im Falle eines Fehlerstops ist zwischen den drei fol-
gend beschriebenen Möglichkeiten zu unterscheiden:

KonfigurationPHR4.1.7 12.03.06 de

113 von 126


Konfiguration

G Wurden Interrupts aktiviert, aber zum Zeitpunkt des Fehlerstops nicht bearbeitet,
so gilt der Prozeß als inaktiv (PRO_ACT=FALSE)
G Wurden Interrupts aktiviert und zum Zeitpunkt des Fehlerstops bearbeitet, so gilt
der Prozeß solange als aktiv (PRO_ACT=TRUE), bis das Interruptprogramm abge-
arbeitet ist oder auf einen HALT läuft (PRO_ACT=FALSE)
G Wurden Interrupts aktiviert und das Anwenderprogramm läuft auf einen HALT, so
gilt der Prozeß als inaktiv ($PRO_ACT=FALSE). Ist nach diesem Zeitpunkt eine In-
terruptbedingung erfüllt, so gilt der Prozeß solange als aktiv (PRO_ACT=TRUE), bis
das Interruptprogramm abgearbeitet ist oder auf einen HALT läuft
(PRO_ACT=FALSE)

3.6.2.12 IN_HOME
Dieser Ausgang teilt dem Leitrechner mit, ob sich der Roboter in seiner HOME--Position be-
findet.

3.6.2.13 ERR_TO_PLC
Durch das Setzen dieses Ausgangs teilt die Robotersteuerung dem Leitrechner mit, daß ein
Steuerungs-- oder Technologiefehler aufgetreten ist.

Diese Funktion ist nur aktiv, wenn PLC_ENABLE den Wert TRUE besitzt.

KonfigurationPHR4.1.7 12.03.06 de

114 von 126


3 Automatik Extern (Fortsetzung)

3.6.3 Sonstiges Variablen

3.6.3.1 PGNO
In dieser Variablen legt das Programm EXT_PGNO.SRC die vom Leitrechner empfangene
Programmnummer (unabhängig vom parametrierten Datentyp) als ganzzahligen Wert ab.
Das technologiespezifische Organisationsprogramm CELL.SRC ordnet mittels dieser Varia-
blen der Programmnummer das entsprechende Anwenderprogramm zu.

3.6.3.2 PGNO_ERROR
Diese Variable dient der internen Fehlerverwaltung des Programms EXT_PGNO.SRC und
darf nicht verwendet oder beschrieben werden!

KonfigurationPHR4.1.7 12.03.06 de

115 von 126


3.7
3.7.1
Automatischer Anlagenanlauf $PRO_I_ O[]=/R1/SPS()
Signalname Signalrichtung Voraussetzungen:
mit Normalbetrieb Programm--Nr. gültig --> PGNO_VALID

116 von 126


APPL_RUN KRC SPS
Konfiguration

/R1/EXAMPLE.SRC läuft

/R1/CELL.SRC läuft

PGNO_REQ KRC SPS


Signaldiagramme

PGNO/PGNO_PARITY SPS KRC

PGNO_VALID SPS KRC

$EXT_START SPS KRC

$PRO_ACT KRC SPS

$STOPMESS KRC SPS

$CONF_MESS SPS KRC

$I_O_ACTCONF (EXT) KRC SPS

$PERI_RDY KRC SPS

$DRIVES_ON SPS KRC

$DRIVES_OFF SPS KRC

$ALARM_STOP KRC SPS

$MOVE_ENABLE SPS KRC

$USER_SAF KRC SPS

$ON_PATH KRC SPS


Auto. Anlagenanlauf und Normalbetr. mit Prog.--Nr.--Quitt. durch PGNO_VALID

$IN_HOME KRC SPS

KonfigurationPHR4.1.7 12.03.06 de
3.7.2
Automatischer Anlagenanlauf $PRO_I_ O[]=/R1/SPS()
Signalname Signalrichtung Voraussetzungen:
mit Normalbetrieb Programm--Nr. gültig --> $EXT_START

APPL_RUN KRC SPS

KonfigurationPHR4.1.7 12.03.06 de
/R1/EXAMPLE.SRC läuft

/R1/CELL.SRC läuft

PGNO_REQ KRC SPS

PGNO/PGNO_PARITY SPS KRC

PGNO_VALID SPS KRC

$EXT_START SPS KRC

$PRO_ACT KRC SPS

$STOPMESS KRC SPS

$CONF_MESS SPS KRC

$I_O_ACTCONF (EXT) KRC SPS


3

$PERI_RDY KRC SPS

$DRIVES_ON SPS KRC

$DRIVES_OFF SPS KRC

$ALARM_STOP KRC SPS

$MOVE_ENABLE SPS KRC

$USER_SAF KRC SPS

$ON_PATH KRC SPS


Auto. Anlagenanlauf und Normalbetr. mit Prog.--Nr.--Quitt. durch $EXT_START

$IN_HOME KRC SPS


Automatik Extern (Fortsetzung)

117 von 126


Signalname Signalrichtung Verhalten bei Bedienerschutz / (siehe ACHTUNG 5.2.1.6 und Wiederanlauf

3.7.3
APPL_RUN KRC SPS

118 von 126


/R1/EXAMPLE.SRC läuft
Konfiguration

/R1/CELL.SRC läuft

PGNO_REQ KRC SPS

PGNO/PGNO_PARITY SPS KRC

PGNO_VALID SPS KRC

$EXT_START SPS KRC

$PRO_ACT KRC SPS

$STOPMESS KRC SPS

$CONF_MESS SPS KRC

$I_O_ACTCONF (EXT) KRC SPS

$PERI_RDY KRC SPS

$DRIVES_ON SPS KRC

$DRIVES_OFF SPS KRC

$ALARM_STOP KRC SPS

$MOVE_ENABLE SPS KRC

$USER_SAF KRC SPS


Wiederanlauf nach generat. Stop (Bedienerschutz und Wiederanlauf)

$ON_PATH KRC SPS


Rückpositionierung
$IN_HOME KRC SPS

KonfigurationPHR4.1.7 12.03.06 de
Signalname Signalrichtung Verhalten bei bahntreuem NOT--AUS und Wiederanlauf

3.7.4
APPL_RUN KRC SPS

/R1/EXAMPLE.SRC läuft

KonfigurationPHR4.1.7 12.03.06 de
/R1/CELL.SRC läuft

PGNO_REQ KRC SPS

PGNO/PGNO_PARITY SPS KRC

PGNO_VALID SPS KRC

$EXT_START SPS KRC

$PRO_ACT KRC SPS Bremsrampe

$STOPMESS KRC SPS

$CONF_MESS SPS KRC


Wiederanlauf nach bahntreuem NOT--AUS

$I_O_ACTCONF (EXT) KRC SPS

$PERI_RDY KRC SPS Verzögerung


eingestellt auf A1
3

$DRIVES_ON SPS KRC

$DRIVES_OFF SPS KRC

$ALARM_STOP KRC SPS

$MOVE_ENABLE SPS KRC

$USER_SAF KRC SPS

$ON_PATH KRC SPS

$IN_HOME KRC SPS


Automatik Extern (Fortsetzung)

119 von 126


Signalname Signalrichtung Verhalten bei Fahrfreigabe = FALSE und Wiederanlauf

3.7.5
APPL_RUN KRC SPS

120 von 126


/R1/EXAMPLE.SRC läuft
Konfiguration

/R1/CELL.SRC läuft

PGNO_REQ KRC SPS

PGNO/PGNO_PARITY SPS KRC

PGNO_VALID SPS KRC

$EXT_START SPS KRC

$PRO_ACT KRC SPS Bremsrampe


Wiederanlauf nach Fahrfreigabe

$STOPMESS KRC SPS

$CONF_MESS SPS KRC

$I_O_ACTCONF (EXT) KRC SPS

$PERI_RDY KRC SPS

$DRIVES_ON SPS KRC

$DRIVES_OFF SPS KRC

$ALARM_STOP KRC SPS

$MOVE_ENABLE SPS KRC

$USER_SAF KRC SPS

$ON_PATH KRC SPS

$IN_HOME KRC SPS

KonfigurationPHR4.1.7 12.03.06 de
Signalname Signalrichtung Verhalten bei Anwender--HALT und Wiederanlauf

3.7.6
APPL_RUN KRC SPS

/R1/EXAMPLE.SRC läuft

KonfigurationPHR4.1.7 12.03.06 de
/R1/CELL.SRC läuft

PGNO_REQ KRC SPS

PGNO/PGNO_PARITY SPS KRC

PGNO_VALID SPS KRC

$EXT_START SPS KRC

$PRO_ACT KRC SPS programmierter


Anwender--HALT

$STOPMESS KRC SPS


Wiederanlauf nach Anwender--HALT

$CONF_MESS SPS KRC

$I_O_ACTCONF (EXT) KRC SPS

$PERI_RDY KRC SPS


3

$DRIVES_ON SPS KRC

$DRIVES_OFF SPS KRC

$ALARM_STOP KRC SPS

$MOVE_ENABLE SPS KRC

$USER_SAF KRC SPS

$ON_PATH KRC SPS

$IN_HOME KRC SPS


Automatik Extern (Fortsetzung)

121 von 126


Konfiguration

3.8 Sonstiges
3.8.1 Wiederanlauf nach passivem Stop
Erfolgt ein passiver Stop vom KCP aus ohne Betriebsartenwechsel, so muß die Fehlermel-
dung “Q1370 :PASSIVER STOP” am KCP quittiert werden. Danach kann das Programm mit
einem externen Start fortgesetzt werden.

Bei passivem Stop vom KCP und Betriebsartenwechsel muß von Hand rückpositioniert
werden.

3.8.2 Schrittweise Programmausführung


Normalerweise ist in der Betriebsart “Automatik Extern” nur die Programmablaufart “#GO”
erlaubt. Für bestimmte Fälle steht die Betriebsart “#MSTEP” zur schrittweisen Ausführung
des Programms zur Verfügung.
Hierzu muß in der Datei “C:\KRC\Roboter\Init\Progress.ini” die folgende Zeile geändert wer-
den:

[FEATURES]
.
.
MSTEP_IN_EXT = TRUE
.
.

Schon nach dem nächsten Hochfahren des Systems steht diese Option zur Verfügung. Zum
Umschalten drücken Sie einfach den Statuskey für die Programmablaufart.

3.8.3 Geschwindigkeit zum Zurückfahren auf die programmierte Bahn


Hat der Roboter den programmierten Pfad verlassen, wird der Punkt an dem er die Bahn
verlassen hat, mit reduzierter Geschwindigkeit angefahren. Das gleiche gilt, falls der Robo-
ter eine SAK--Fahrt durchführt. Die Geschwindigkeit, mit der die Positionierung erfolgt, ent-
spricht der Handverfahrgeschwindigkeit.
Als Voraussetzung muß in der Datei “C:\KRC\Roboter\Init\Progress.ini” die nachfolgende
Zeile geändert werden:

[FEATURES]
.
.
SLOW_BCO_EXT = TRUE
.
.

Maßgebend für die Reduzierung der Achsverfahrgeschwindigkeit sind die Variablen


$RED_VEL_AXC[1]...[12], die nur in der Datei “C:\KRC\Roboter\KRC\R1\MaDa\$Machi-
ne.dat” geändert werden können.

Ändern Sie die Variablen “$RED_VEL_AXC[1]...[12] nach Möglichkeit nicht. Für Schäden
bzw. Ausfallzeiten aufgrund veränderter Variablenwerte wird keine Haftung über-
nommen.

KonfigurationPHR4.1.7 12.03.06 de

122 von 126


3 Automatik Extern (Fortsetzung)

3.9 Beispielkonfiguration
3.9.1 Vereinbarungen

-- Die Programmnummer soll als Binärzahl übermittelt werden.


-- Die Programmnummer ist 7 Bit breit und wird ab dem Eingang 1 empfangen.
-- Das Paritätsbit wird am Eingang 8 empfangen, wobei auf ungerade Parität geprüft wird.
-- Die Anforderung einer neuen Programmnummer wird durch die ansteigende Flanke
des Signals am Ausgang 1 signalisiert.
-- Der Leitrechner meldet eine anliegende Programmnummer mit einer ansteigenden
Flanke am Eingang 9.
-- Über den Ausgang 2 wird dem Leitrechner mitgeteilt, daß ein Programm läuft.
-- Die aktive E/A--Schnittstelle wird dem Leitrechner über den Ausgang 3 signalisiert.
-- Ein externer Start vom Leitrechner erfolgt über den Eingang 10.
-- Die Meldung eines Sammelfehlers an den Leitrechner erfolgt über den Ausgang 4.
-- Vom Leitrechner werden Fehler über den Eingang 11 quittiert.

Erforderliche Eingaben in der Datei “C:\KRC\Roboter\KRC\R1\System\$CON-


FIG.DAT” (Beispielkonfiguration)

PGNO=0 Vorbelegung der Programmnummer


PGNO_TYPE=1 Datenformat der Programmnummer: Binärzahl
PGNO_FBIT=1 Erstes Bit der Programmnummer: Eingang 1
PGNO_LENGTH=7 Breite der Programmnummer: 7 Bit
PGNO_PARITY=-8 Ungerade Parität, Paritätsbit auf Eingang 8
PGNO_REQ=1 Anforderung einer neuen Pro--
grammnummer über Ausgang 1
PGNO_VALID=9 Meldung, das die Programmnummer
übertragen wurde kommt auf Eingang 9
APPL_RUN=2 Meldung, daß ein Programm abgear--
beitet wird über Setzen des Ausgangs 2
PGNO_ERROR=0 Vorbelegung des Fehlermerkers

KonfigurationPHR4.1.7 12.03.06 de

123 von 126


Konfiguration

Eingaben in der Datei $MACHINE.DAT (Beispielkonfiguration)

$EXT_START$IN[10] ; externer Start


$I_O_ACTCONF $OUT[3] ; E/A--Schnittstelle aktiv
$STOPMESS $OUT[4] ; Stop--Fehler
$CONF_MESS $IN[11] ; Sammelquittung

Schnittstellenbelegung (Beispielkonfiguration)

Steuerung Signalname Leitrechner

$IN[1] PGNO Bit 1 A 20.0


$IN[2] PGNO Bit 2 A 20.1
$IN[3] PGNO Bit 3 A 20.2
$IN[4] PGNO Bit 4 A 20.3
$IN[5] PGNO Bit 5 A 20.4
$IN[6] PGNO Bit 6 A 20.5
$IN[7] PGNO Bit 7 A 20.6
$IN[8] PGNO_PARITY A 20.7
$IN[9] PGNO_VALID A 21.0
$IN[10] $EXT_START A 21.1
$IN[11] $CONF_MESS A 21.2
$IN[12] $DRIVES_OFF A 21.3
$IN[13] $DRIVES_ON A 21.4
$IN[14] $MOVE_ENABLE A 21.5

$OUT[1] PGNO_REQ E 20.0


$OUT[2] APPL_RUN E 20.1
$OUT[3] $I_O_ACTCONF E 20.2
$OUT[4] $STOPMESS E 20.3
$OUT[5] $PERI_RDY E 20.4
$OUT[6] $PRO_ACT E 20.5

KonfigurationPHR4.1.7 12.03.06 de

124 von 126


3 Automatik Extern (Fortsetzung)

3.10 Meldungen
In diesem Abschnitt werden die im Zusammenhang mit der Schnittstelle “Automatik extern”
auftretenden Fehlermeldungen beschrieben.

Meldungs--
Meldungstext Ursache
nummer
PGNO_TYPE falscher Wert Der Datentyp der Programmnummer
P00:1
zulässige Werte (1,2,3) wurde falsch angegeben.
PGNO_LENGTH falscher Wert
Die Bitbreite der Programmnummer
P00:2 Wertebereich wurde falsch projektiert.
1 ± PGNO_LENGTH ± 16
Wurde zum Lesen der Programmnum-
PGNO_LENGTH falscher Wert mer das BCD--Format gewählt, so muß
P00:3
zulässige Werte (4,8,12,16) auch eine entsprechende Bitbreite ein-
gestellt werden

PGNO_FBIT falscher Wert Für das erste Bit der Programmnum-


P00:4 mer wurde der Wert ”0” oder ein nicht
liegt nicht im $IN--Bereich vorhandener Eingang angegeben
Für die Ausgang, über den die Pro-
PGNO_REQ falscher Wert grammnummer angefordert werden
P00:7
liegt nicht im $OUT--Bereich soll, wurde der Wert ”0” oder ein nicht
vorhandener Ausgang angegeben

Übertragungsfehler Bei der Überprüfung der Parität trat


P00:10 eine Unstimmigkeit auf. Es muß ein
falsche Parität Übertragungsfehler aufgetreten sein
Vom Leitrechner wurde eine Pro-
Übertragungsfehler grammnummer übermittelt, für die in
P00:11 der Kontrollstruktur von CELL.SRC (
falsche Programmnummer noch ) kein Zweig zur Abarbeitung an-
gelegt wurde

Übertragungsfehler Der Versuch, die Programmnummer im


P00:12 BCD--Format einzulesen, führte zu ei-
falsche BCD--Kodierung nem ungültigen Ergebnis
Die E/A--Schnittstelle ist nicht aktiviert
worden, d.h. die Systemvariable
$I_O_ACTCONF hat im Moment den
Falsche Wert FALSE. Dies kann die folgenden
Ursachen haben:
P00:13 Betriebsart
Der Schlüsselschalter steht nicht in der
Stellung ”Ext.”
Das Signal $I_O_ACT besitzt im Mo-
ment den Wert FALSE
Home--Position in Betriebsart T1 Der Roboter hat die HOME--Position
P00:14
anfahren nicht erreicht
Bei “1 aus n” ist mehr als ein Eingang
P00:15 Programmnummer fehlerhaft
gesetzt.

KonfigurationPHR4.1.7 12.03.06 de

125 von 126


Konfiguration

NOTIZEN:

KonfigurationPHR4.1.7 12.03.06 de

126 von 126


Index

Zeichen A
#INSIDE, 63, 77 Achse mit definiertem Moment, 92
#INSIDE_STOP, 63, 77 ALARM_STOP, 112
#OUTSIDE, 63, 77 Allgemein, 89
#OUTSIDE_STOP, 64, 77 Ansprechzeit, 94
#PGNO_ACKN, 103 Anwender, 25
#PGNO_FAULT, 104 Anwender--HALT, 121
#PGNO_GET, 103 APPL_RUN, 111, 123
#STEP1, 94 Arbeitsraumüberwachung, 40, 61
$_I_O_ACTCONF, 100 Außenlüfter, 54
$ADAP_ACC, 94 AUT, 112
Automatik Extern, 16, 97
$CONFIG.DAT, 123
Automatischer Anlagenanlauf, 100
$CURR_LIM, 92
$CURR_MAX, 92
$CURR_RED[x,x], 90, 91, 92 B
$CUSTOM.DAT, 94 BCD--Wert, 107
$EXT_START, 100, 117 Bedienerschutz, 118
$EXT_START$IN[ ], 124 Beispiel Momentenbetrieb, 89
$I_O_ACTCONF, 100 Benutzerebene, 25
$I_O_ACTCONF $OUT[ ], 124 Benutzerebenen, 25
$IN[x], 58 Benutzergruppe, 25
$INSIM_TBL[x], 58 Betriebsart Automatik Extern, 57
$IOBLK_EXT, 58 Bildschirmschoner, 11
$IOSIM_IN[ ], 58 Binärzahl, 107
$IOSIM_OPT, 58 Bodenmontage, 89
$IOSIM_OUT[ ], 58 BOF Reinitialisieren, 43
$MACHINE.DAT, 124
$NEARPATHTOL, 113 C
$OUT[x], 58 CELL.SRC, 100, 101, 115
$OUT_NODRIVE, 58 CHCK_MOVENA, 109
$OUTSIM_TBL[x], 58 CONF_MESS, 109
$POS_RET, 109, 113 ConfigMon.ini bearbeiten, 48
$PRO_I_O[], 100
$RED_T1, 90 D
$ROBCOR.DAT, 94
Deckenmontage, 89
$STOPMESS $OUT[ ], 124
DEF--Zeile, 35
$TOOL, 64
Detailansicht, 36
$TORQ_DIFF, 95
Drehzahlreglerausgang, 90
$TORQ_VEL[], 91, 93
DRIVES_OFF, 110
$TORQMON_COM, 95
DRIVES_ON, 110
$TORQMON_COM_DEF, 95 Durchsacken, 89
$TORQMON_TIME, 94
$TORQUE_AXIS, 91, 92
E
E/A--Schnittstelle, 100
Zahlen E/A--Treiber, 17
5 Home--Positionen, 59 Editor, 35

Index -- i
Index

Ein/Ausgänge, 15, 97 Langtext, 49


Einschränkungen, 89 Leitrechner, 97
ERR_FILE, 105 LimitedVisibility, 36
ERR_TO_PLC, 114
Experte, 25 M
EXT_ERR, 105
Makro--Zuweisungsliste, 49
EXT_PGNO, 103, 104
**Leer**, 44
EXT_PGNO.SRC, 115
Menü ”Konfig.”, 15
EXT_START, 108
Modul P00, 103
EXTERN, 112
Momentenbetrieb, 89
Extras, 32 Momentenbetrieb möglich, 89
Momentengrenzen, 94
F Motorkabelüberwachung, 54
Fahrfreigabe, 120 MOVE_ENABLE, 109
Fokus, 97
N
G NEAR_POSRET, 113
NOT--AUS, 119
Generat. Stop, 118
Geschwindigkeit zum Zurückfahren, 122
Greifer, 16 O
Office--Option ein/aus, 38
H ON_PATH, 112
OUTSIDE_STOP, 64, 77
Handachsen, 92
Override, 24
Handachsgetriebe, 89
Handoverride, 24
Handverfahren, 24 P
Hardwarewarnung, 54 Passiver Stop, 122
HOV, 24 Paßwort, 25
Paßwort ändern, 34
PC--Lüfter, 54
I
PERI_RDY, 111
IN_HOME, 114 Peripherie--Schnittstellen, 17
INSIDE_STOP, 64, 77 PGNO, 115, 123
INT $TORQUE_AXIS, 93 PGNO_ERROR, 115, 123
IO--Simulation, 55 PGNO_FBIT, 107, 123
PGNO_FBIT_REFL, 111
K PGNO_LENGTH, 107, 123
Kaltstart erzwingen, 31 PGNO_PARITY, 108, 123
Kcpsaver, 13 PGNO_REQ, 103, 111, 123
Kein Momentenbetrieb möglich, 89 PGNO_TYPE, 107, 123
PGNO_VALID, 108, 116
Kollisionsüberwachung, 94
POV, 24
KRL, 25
PRO_ACT, 113
Kuka--Langtextdatenbank, 49
Prog.--Nr.--Quitt., 116
KUKA--Screen--Saver, 11
Programmoverride, 24
Projektierbarer Ausgang für Hardwarewarnung,
L 54

Index -- ii
Index

R Zugangs--Kennwort, 34
REAL $CURR_ACT[12], 92 Zustimmtaste, 57
REAL $CURR_RED[12,2], 92
REFLECT_PROG_NR, 108
Reinitialisierung, 43
Risiken, 89
Rückwirkungsgrad, 89, 92

S
Schnittstelle konfigurieren, 97
Schnittstellenbelegung, 124
Schräglage des Roboters, 90
Schrittweise Programmausführung, 122
Signalbeschreibungen, 107
Simulierte Ein--/Ausgänge, 55
Sprache, 32
Statustasten, 23
STOPMESS, 111
Submit--Interpreter, 22

T
T1, 112
T2, 112
Technologiespezifisches Organisationspro-
gramm, 101

U
Überbrücken der Arbeitsraumüberwachung, 66
Überwachungsschlauch, 94
USER_SAF, 112
USERTech reinitialisieren, 43

V
Variablen für den Momentenbetrieb, 92
Vorlaufstop, 93

W
Wandmontage, 89
Weichschaltung Achse 1, 91
WAIT FOR $IN[], 91
Weichschaltung Achse 3, 91
Wiederanlauf, 118, 122

Z
Zeilenumbruch ein/aus, 37

Index -- iii
SOFTWARE

KR C...

Programmierung Experte

KUKA System Software (KSS)


Release 4.1

Stand: 16.01.2004 Version: 06


ProgExpPHR4.1.7 12.03.06 de

1 von 214
e Copyright 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

ProgExpPHR4.1.7 12.03.06 de

2 von 214
Inhaltsverzeichnis

1 Allgemeines zu KRL--Programmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Aufbau und Struktur von Programmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Programmoberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Dateikonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.3 Dateistruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Programme erstellen und editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.1 Erstellen eines neuen Programms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.2 Programm editieren, kompilieren und binden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Ändern von Programmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.1 Programm--Korrektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2.1 Blockfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2.2 Kopieren (CTRL--C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2.3 Einfügen (CTRL--V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.2.4 Ausschneiden (CTRL--X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.2.5 Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.2.6 Suchen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.2.7 Ersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Verstecken von Programmteilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.1 FOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.1.1 Beispielprogramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5 Programmablaufarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.6 Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2 Variablen und Vereinbarungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29


2.1 Variablen und Namen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2 Datenobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.1 Vereinbarung und Initialisierung von Datenobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.2 Einfache Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.3 Felder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.4 Zeichenketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2.5 Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2.6 Aufzählungstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3 Datenmanipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.1 Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.1.1 Arithmetische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3.1.2 Geometrischer Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.3.1.3 Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3.1.4 Logische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3.1.5 Bit--Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.1.6 Prioritäten von Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.3.2 Standardfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.4 Systemvariablen und Systemdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3 Bewegungsprogrammierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.1 Verwendung verschiedener Koordinatensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

ProgExpPHR4.1.7 12.03.06 de

3 von 214
Programmierung Experte

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


3.2.1 Allgemein (Synchron--PTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2.2 Höheres Fahrprofil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.3 Bewegungsbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.3 Bahnbewegungen (CP--Bewegungen = Continous Path) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3.1 Geschwindigkeit und Beschleunigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3.2 Orientierungsführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3.3 Linearbewegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.3.4 Kreisbewegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.4 Rechnervorlauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.5 Überschleifbewegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.5.1 PTP--PTP--Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.5.2 LIN--LIN--Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.5.3 CIRC--CIRC--Überschleifen und CIRC--LIN--Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.5.4 PTP--Bahnüberschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.5.5 Verbessertes Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.5.6 Werkzeugwechsel beim Überschleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.6 Teachen von Punkten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.7 Bewegungsparameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4 KRL--Assistent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.1 Positionsangaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.2 [PTP] Positionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.3 [LIN] Geradlinige Bewegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.4 [CIRC] Kreisbahnbewegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

5 Programmablaufkontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.1 Programmverzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.1.1 Sprunganweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.1.2 Bedingte Verzweigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.1.3 Verteiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2 Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.2.1 Zählschleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.2.2 Abweisende Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.2.3 Nicht abweisende Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.2.4 Endlosschleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.2.5 Vorzeitige Beendigung von Schleifendurchläufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.3 Warteanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.3.1 Warten auf ein Ereignis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.3.2 Wartezeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.4 Anhalten des Programms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.5 Quittieren von Meldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

6 Ein--/Ausgabeanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.2 Binäre Ein--/Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.3 Digitale Ein--/Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

ProgExpPHR4.1.7 12.03.06 de

4 von 214
6.3.1 Signalvereinbarung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.3.2 Ausgänge im Zielpunkt setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.4 Impulsausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.5 Analoge Ein--/Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.5.1 Analoge Ausgänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.5.2 Analoge Eingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.6 Vordefinierte Digitaleingänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

7 Unterprogramme und Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149


7.1 Vereinbarung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.2 Aufruf und Parameterübergabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

8 Interrupt--Behandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.1 Deklaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8.2 Aktivieren von Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
8.3 Laufende Bewegungen anhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
8.4 Abbrechen von Interrupt--Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
8.5 Verwendung zyklischer Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

9 Trigger -- Bahnbezogene Schaltaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 169


9.1 Schaltaktion am Start-- oder Zielpunkt der Bahn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.2 Schaltaktion beliebig auf der Bahn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
9.3 Tips & Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
9.3.1 Überschneidung von Trigger--Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

10 Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
10.1 Lokale Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
10.2 Globale Datenlisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

11 Externer Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183


11.1 Starten des externen Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.2 Bedienung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.3 Menü “Datei” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
11.3.1 Öffnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
11.3.2 Speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
11.3.3 Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
11.3.4 Datei schließen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
11.3.5 Beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
11.4 Menü “Bearbeiten” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.4.1 Ausschneiden (”CTRL”--”X”) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.4.2 Kopieren (”CTRL”--”C”) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.4.3 Einfügen als ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.4.4 Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.4.5 Alles markieren (”CTRL”--”A”) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.5 Menü “Extras” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

ProgExpPHR4.1.7 12.03.06 de

5 von 214
Programmierung Experte

11.5.1 Achsspiegeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191


11.5.2 Manuelles Verschieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
11.5.3 Blockweises Ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
11.5.4 Datenliste reinigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
11.5.5 TCP--, bzw. BASE--Anpassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
11.6 Menü “HotEdit” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
11.6.1 Base, TCP und World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
11.6.2 TTS (Korrekturkoordinatensystem) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
11.6.2.1 Punkt--TTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
11.6.3 Toleranzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
11.6.3.1 Toleranzen--Base/World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
11.6.3.2 Toleranzen--TTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
11.7 Menü “ExtExtras” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
11.7.1 Datei--Achsspiegeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
11.7.2 Datei--Verschieben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
11.7.2.1 Vorhandene Referenzdatei verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
11.7.2.2 Neue Referenzdatei erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
11.7.3 Setzen der Software--Endschalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
11.8 Menü “Optionen” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
11.8.1 Ausgabeeinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
11.9 Menü “Hilfe” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
11.9.1 Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
11.9.2 Immer im Vordergrund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

ProgExpPHR4.1.7 12.03.06 de

6 von 214
1 Allgemeines zu KRL--Programmen

1 Allgemeines zu KRL--Programmen
1.1 Aufbau und Struktur von Programmen
1.1.1 Programmoberfläche
Sobald Sie auf die Expertenebene gewechselt haben, verändert sich die Bedienoberfläche
wie nachfolgend dargestellt:

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 Dateiextension, --attribute und --größen ange-
zeigt.
In vorstehender Abbildung werden im Programmfenster die Dateien und Verzeichnisse des
Pfades “R1” angezeigt.

ProgExpPHR4.1.7 12.03.06 de

7 von 214
Programmierung Experte

Standardmäßig sind nach der Installation der KRC1--Software im Verzeichnis


“KRC:\R1\MADA\” die nachfolgend aufgeführten Dateien vorhanden:

Datei Bedeutung
$MASCHINE.DAT Systemdatenliste mit Systemvariablen zur Anpassung von Steue-
rung und Roboter
$ROBCOR.DAT Systemdatenliste mit Daten für das Dynamikmodell des Roboters
MACHINE.UPG Systemfile für zukünftige Uprades
ROBCOR.UPG Systemfile für zukünftige Uprades

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

Datei Bedeutung
$CONFIG.DAT Systemdatenliste mit allgemeinen Konfigurationsdaten
BAS.SRC Basis--Paket für die Bewegungssteuerung
IR_STOPM.SRC Programm zur Fehlerbehandlung beim Auftreten von Störungen
SPS.SUB Submitfile für die parallele Überwachung

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

Datei Bedeutung
A10.DAT Technologiepaket zum Bahnschweißen mit analogen Leitspannun-
A10.SRC gen
A10_INI.DAT Technologiepaket zur Initialisierung des Bahnschweißens mit ana-
A10_INI.SRC logen Leitspannungen
A20.DAT Technologiepaket zum Bahnschweißen mit digitalen Programm-
A20.SRC nummern
A50.DAT Technologiepaket für die Verwendung des Libo (Lichtbogen) -- Sen-
A50.SRC sors
ARC_MSG.SRC Programm zur Programmierung von Meldungen für das Schutz-
gasschweißen.
ARCSPS.SUB Submitfile für Bahnschweißen
BOSCH.SRC Programm für Punktschweißen mit serieller Schnittstelle zum
Bosch Punktschweißtimer PSS5200.521C
COR_T1.SRC Programm zur Werkzeugkorrektur (alte Version)
CORRTOOL.DAT Programm zur Werkteugkorrektur
CORRTOOL.SRC
FLT_SERV.DAT Programm zur benutzerdefinierten Fehlerbehandlung beim Bahn-
FLT_SERV.SRC schweißen
H50.SRC Greifer--Paket
H70.SRC Touchsensor--Paket
MSG_DEMO.SRC Programm mit Beispielen für Benutzermeldungen
NEW_SERV.SRC Programm zur Änderung von Fehlerreaktionen für FLT_SERV
P00.DAT Programmpaket zur Kopplung an eine SPS
P00.SRC

ProgExpPHR4.1.7 12.03.06 de

8 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

PERCEPT.SRC Programm zum Aufruf des PERCEPTRON--Protokolls


USER_GRP.DAT Programm zur benutzerdefinierten Greiferansteuerung
USER_GRP.SRC
USERSPOT.DAT Programmpaket zum benutzerdefinierten Punktschweißen
USERSPOT.SRC
WEAV_DEF.SRC Programm für Pendelbewegungen beim Schutzgasschweißen

Im Verzeichnis “KRC:\R1\” befindet sich folgende Datei:

CELL.SRC Programm zur Steuerung von Robotern über eine zentrale SPS.
Hierbei wird entsprechenden einer Programmnummer ein Bautei-
leprogramm ausgewählt

1.1.2 Dateikonzept
Ein KRL--Programm kann aus SRC-- und DAT--File bestehen.

Weitere Informationen zur Programmerstellung finden Sie in diesem Kapitel, Abschnitt


[Programme erstellen und editieren].

Das “SRC”--File ist hierbei die Datei mit dem eigentlichen Programmcode. Dabei gibt es die
Varianten DEF und DEFFCT (mit Rückgabewert). Das “DAT”--File enthält dagegen die spe-
zifischen Programmdaten. Diese Teilung beruht auf dem Dateikonzept von KRL: Das Pro-
gramm beinhaltet neben dem Bearbeitungsablauf verschiedene Aktionen, die der Industrie-
roboter ausführen soll. Dies können bestimmte Bewegungsabläufe sein, das Öffnen oder
Schließen eines Greiferwerkzeugs, bis hin zu komplexen Abläufen, wie beispielsweise die
Steuerung einer Schweißzange unter Berücksichtigung der Randbedingungen.
Zum Testen von Programmen ist es hilfreich bzw. erforderlich, Teilaufgaben einzeln zum Ab-
lauf bringen zu können. Das in KRL realisierte Dateikonzept wird den speziellen Bedürfnis-
sen der Roboterprogrammierung gerecht.

1.1.3 Dateistruktur
Eine Datei ist die Einheit, welche der Programmierer erstellt und entspricht damit einer Datei
auf der Festplatte oder im Speicher (RAM). Jedes Programm in KRL kann aus einem oder
mehreren Dateien bestehen. Einfache Programme umfassen genau eine Datei. Komplexere
Aufgaben löst man besser mit einem Programm, das aus mehreren Dateien 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 Objektname ohne Erweiterung ist zugleich der Name der Datei 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 Vereinbarungen]). Jede Datei
beginnt mit der Vereinbarung “DEF“ und endet mit ”END”.

ProgExpPHR4.1.7 12.03.06 de

9 von 214
Programmierung Experte

DEF NAME(X1:IN)
Vereinbarungen
Anweisungen
END

Vereinbarung Vereinbarungen werden bereits vor der Programmbearbeitung, d.h. während des Überset-
zens, ausgewertet. Im Vereinbarungsteil darf daher keine Anweisung stehen. Die erste An-
weisung ist zugleich der Beginn des Anweisungsteils.

Anweisung Anweisungen haben im Gegensatz zu Vereinbarungen einen dynamischen Charakter: Sie


werden bei der Programmbearbeitung ausgeführt.

Datenliste Ein Roboterprogramm kann aus einer Programmdatei alleine oder aus einer Programmdatei
mit zugehöriger Datenliste bestehen. Datenliste und Datei werden über den gemeinsamen
Namen als zusammengehörig gekennzeichnet. Die Namen unterscheiden sich nur in der Ex-
tension, z.B.:
Datei: PROG1.SRC
Datenliste: PROG1.DAT

In Datenlisten sind nur Wertzuweisungen mit “=” zulässig. Wenn die Datenliste und
die Datei den gleichen Namen besitzen, können Variablen, die in der Datenliste vereinbart
sind, auf die gleiche Weise verwendet werden wie Variablen, die in der SRC--Datei verein-
bart sind.

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

ProgExpPHR4.1.7 12.03.06 de

10 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

1.2 Programme erstellen und editieren


1.2.1 Erstellen eines neuen Programms
Da ein Roboterprogramm auch ohne Datenliste geschrieben werden kann, werden Datei und
Datenliste auf Expertenebene nicht automatisch gleichzeitig angelegt. Um ein Programm
anzulegen, betätigen Sie den Softkey “Neu”. Es erscheint folgendes Fenster:

Sie werden aufgefordert ein Template auszuwählen. Verwenden Sie dazu die Pfeiltasten und
bestätigen Sie mit dem Softkey “OK” oder mit der Returntaste.

Die verfügbaren Templates können nicht in allen Verzeichnissen angelegt werden.

Weitere Informationen über Templates finden Sie im Bedienhandbuch in der Doku-


mentation Bedienung, Kapitel [Navigator], Abschnitt [Anhang].

Die verschiedenen Templates im einzelnen:


Modul:
Es wird ein SRC-- und DAT--File angelegt, das ein Rumpfprogramm enthält.
Expert:
Es wird ein SRC-- und DAT--File angelegt, das lediglich die Kopfzeile DEF¼ und END enthält.
Cell:
Hierbei wird nur ein SRC--File angelegt, das ein Rumpfprogramm enthält. Dieses Programm
dient zur Steuerung des Roboters über eine zentrale SPS.
Function:
Hier wird eine Funktion (SRC--File) angelegt, die die Kopfzeile DEF¼ und END enthält.
Submit:
Es wird ein SUB--File mit Rumpfprogramm angelegt. Die Submitdatei enthält Anweisungen
und kann z.B. zur zyklischen Überwachung (Greifer, etc.) genutzt werden. Die Submitdatei
arbeitet parallel zum Roboterbetrieb und wird vom Steuerungsinterpreter abgearbeitet.
Expert Submit:
Wie beim Template Submit wird ein SUB--File angelegt, das jedoch nur die Kopfzeile DEF¼
und END enthält.

Die Kopfzeile DEF¼ und END und die Rumpfprogramme der einzelnen Templates sind z.B.
für das Template Cell unter “C:\KRC\ROBOTER\TEMPLATE\CellVorgabe.src” zu finden.

ProgExpPHR4.1.7 12.03.06 de

11 von 214
Programmierung Experte

Wenn Sie das entsprechende Template ausgewählt haben, werden Sie aufgefordert einen
Namen für das erzeugte File einzugeben.

Dateiname Dateiextension Kommentar


(max. 24 Zei- (SRC, DAT oder SUB)
chen)

Der Dateiname ist als einziges zwingend erforderlich und darf max. 24 Zeichen betragen.
Die Dateiextension wird automatisch ergänzt. Wenn Sie einen Kommentar einfügen wollen,
müssen Sie mit der Pfeiltaste rechts den Cursor auf das entsprechende Feld bewegen, und
den gewünschten Text eingeben.
Drücken Sie den Softkey “OK” oder die Returntaste um diese Eingaben zu quittieren.

Die Datenliste ist zwingend erforderlich, wenn Sie in ihrer SRC--Datei auch menügeführte
Befehle einfügen wollen.

1.2.2 Programm editieren, kompilieren und binden


Haben Sie sich eine Datei oder eine Datenliste mit “Neu” erstellt, so können Sie sie mit dem
Editor bearbeiten. Hierzu dient der Softkey “Öffnen”. Beim Schließen des Editors wird der
komplette Programmcode kompiliert, d.h. der textuelle KRL--Code wird in eine für die Steue-
rung verständliche Maschinensprache übersetzt.

Damit das Programm übersichtlich bleibt, ist es nötig z.B. bei Verzweigungen diese auf
mehreren Ebenen einzurücken. Im Editor kann das durch Leerzeichen geschehen.

Compiler Der Compiler überprüft den Code dabei auf syntaktische und semantische Richtigkeit. Falls
Fehler vorhanden sind, wird eine entsprechende Meldung ausgegeben und eine Fehlerdatei
mit der Dateierweiterung “.ERR” erzeugt.

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

Weitere Informationen zur Behandlung von Editier--Fehlern finden Sie im Abschnitt [Feh-
lerbehandlung].

Binder Beim Laden eines Programms über den Softkey “Anwählen” werden alle benötigten Dateien
und Datenlisten zu einem Programm zusammengebunden. Beim Binden wird überprüft, ob
alle Module vorhanden, analysiert und fehlerfrei sind. Außerdem überprüft der Binder bei ei-
ner Parameterübergabe die Typverträglichkeit zwischen den Übergabeparametern. Treten
beim Binden Fehler auf, so wird -- wie beim Kompilieren -- ein Error--File mit der Erweiterung
“.ERR” erzeugt.

ProgExpPHR4.1.7 12.03.06 de

12 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

Sie können ein KRL--Programm auch mit jedem üblichen Text--Editor schreiben und an-
schließend mit dem Softkey “Laden” in den Systemspeicher laden. In diesem Fall müssen
Sie allerdings selbst darauf achten, daß alle notwendigen Initialisierungen (z.B. Achsge-
schwindigkeiten) vorgenommen werden.

Nachfolgend ein einfaches Programmbeispiel zur Festlegung von Achsgeschwindigkeiten


und Achsbeschleunigungen:

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
$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 4}
PTP {A2 -7,A3 5}
PTP {A1 0,A2 -9,A3 9}
ENDFOR

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


END

ProgExpPHR4.1.7 12.03.06 de

13 von 214
Programmierung Experte

1.3 Ändern von Programmen


Grundsätzlich gibt es zwei Möglichkeiten, ein Programm auf der Expertenebene der Bedie-
noberfläche zu ändern:
G Programm--Korrektur (PROKOR)
G Editor

1.3.1 Programm--Korrektur
Die Programm--Korrektur ist eine Standard--Methode. Wird ein Programm angewählt, oder
ein laufendes Programm gestoppt, befindet man sich automatisch im PROKOR--Modus.
Hier kann man Befehle anhand des Inlineformulars bzw. ASCII--Code (in der Expertene-
bene) eingeben oder bearbeiten, die sich nur auf eine Programmzeile auswirken -- also keine
Kontrollstrukturen (Schleifen etc.) oder Variablendeklarationen.
Im angewählten Zustand werden fehlerhafte Eingaben werden nach verlassen der Pro-
grammzeile sofort gelöscht und es erscheint eine Fehlermeldung im Meldungsfenster.

1.3.2 Editor
Will man also bestimmte KRL--Befehle oder Programmstrukturen bearbeiten oder einfügen,
so wird man dies über den Editor tun. Da bei Schließen des Editors der komplette Code com-
piliert wird, können auch Fehler erkannt werden, die erst im Zusammenhang mehrerer Zeilen
auftreten (z.B. falsch vereinbarte Variablen).

1.3.2.1 Blockfunktionen

Die Blockfunktionen stehen nur im Editor ab der Benutzerebene “Experte” zur Verfügung.
Sie müssen ein Programm, dessen Inhalt Sie mit Hilfe der Blockfunktionen ändern wollen,
mit dem Softkey “Edit” öffnen. Wie Sie zuvor in die Benutzerebene “Experte” wechseln,
wird im Kapitel [System konfigurieren], Abschnitt (Benutzergruppe) beschrieben.
Setzen Sie zunächst den blinkenden Editiercursor an den Anfang oder das Ende des zu ver-
schiebenden Programmteils. Halten Sie dann die “Shift”--Taste auf der Tastatur gedrückt,
während Sie den Cursor nach unten, bzw. oben bewegen. Auf diese Weise markieren Sie
einen Programmteil, der im nächsten Arbeitsschritt mit den Blockfunktionen bearbeitet wer-
den soll. Den bereits markierten Teil erkennen Sie an der farblichen Hervorhebung.
Betätigen Sie den Menükey “Bearbeiten” und wählen Sie aus dem sich öffnenden Menü die
gewünschte Funktion aus.
Werden für die Blockfunktionen der Nummernblock und das Tastaturfeld verwendet, muß
die NUM--Funktion ausgeschaltet sein. Drücken Sie in diesem Fall die “Num”--Taste auf
dem Tastaturfeld. Die entsprechende Anzeige in der Statuszeile ist dann ausgeschaltet.

1.3.2.2 Kopieren (CTRL--C)


Der markierte Programmteil wird zur weiteren Verarbeitung zwischengespeichert. Er kann
anschließend an anderer Stelle eingefügt werden.

ProgExpPHR4.1.7 12.03.06 de

14 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

Alternativ können Sie die CTRL--Taste auf dem Nummernblock gedrückt halten und auf der
Tastatur die C--Taste drücken. Lassen Sie anschließend beide Tasten los.

1.3.2.3 Einfügen (CTRL--V)


Setzen Sie den Editiercursor an die Stelle, an welcher der zuvor “herausgeschnittene” oder
“kopierte“ Programmteil wieder eingefügt werden soll.

Wählen Sie jetzt die Option “Block einfügen” aus. Der vorher markierte Programmteil wird
unterhalb des Editier--Cursors wieder eingefügt.

Alternativ können Sie die CTRL--Taste auf dem Nummernblock gedrückt halten und auf der
Tastatur die V--Taste drücken. Lassen Sie anschließend beide Tasten los.

1.3.2.4 Ausschneiden (CTRL--X)


Wählen Sie aus dem Menü die Option “Block ausschneiden” aus, wird der markierte Pro-
grammteil zwischengespeichert und aus dem Programmlisting gelöscht.

Alternativ können Sie die CTRL--Taste auf dem Nummernblock gedrückt halten und auf der
Tastatur die X--Taste drücken. Lassen Sie anschließend beide Tasten los.

1.3.2.5 Löschen
Der markierte Bereich kann aus dem Programm entfernt werden. In diesem Fall erfolgt keine
Zwischenspeicherung. Der entfernte Programmteil ist damit unwiderruflich verloren.

ProgExpPHR4.1.7 12.03.06 de

15 von 214
Programmierung Experte

Aus diesem Grund erfolgt eine Sicherheitsabfrage im Meldungsfenster, die über die Softkey-
leiste beantwortet werden muß.

G Abbrechen Die Aktion “Löschen” wird abgebrochen.


G Ja Der markierte Bereich wird unwiderruflich gelöscht;
G Nein Die Funktion “Löschen” wird abgebrochen;

Wählen Sie aus dem Menü die Option “Löschen” aus, wird der markierte Programmteil
ohne Zwischenspeicherung aus dem Programmlisting gelöscht.

1.3.2.6 Suchen

Weitere Informationen finden Sie im Bedienhandbuch in der Dokumentation Prog.


Anwender, Kapitel [Programmbearbeitung], Abschnitt [Arbeiten mit dem
Programmeditor].

1.3.2.7 Ersetzen
Die Funktion “Suchen und ersetzen” steht nur in der Expertenebene und dort ausschließlich
im Editor zur Verfügung. Diese Anwendung durchsucht das Programm nach einer vorgege-
benen Zeichenfolge im sichtbaren Bereich (nicht Fold--Zeilen oder geöffnete Folds) und er-
möglicht die Ersetzung mit einer definierten Zeichenfolge.
Wählen Sie dazu im Menü “Bearbeiten” die Option “Ersetzen”.

ProgExpPHR4.1.7 12.03.06 de

16 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

Es öffnet sich folgendes Fenster:

Die Softkeyleiste ändert sich.

Geben Sie eine Zeichenfolge in der Suchzeile ein und wechseln mit der Pfeiltaste nach unten
in die Ersetzenzeile. Dort tragen Sie den Begriff ein, der den Gesuchten ersetzen soll.

Tritt der gesuchte Begriff öfter in dem Dokument auf und Sie wollen ihn nur an einer best.
Stelle ersetzen, betätigen Sie den Softkey “Suchen” so oft, bis Sie die gewünschte Stelle
gefunden haben. Anschließend drücken Sie “ersetzen”. Der gesuchte Begriff wird gegen den
Angegebenen ausgetauscht.
Möchten Sie den gesuchten Begriff an allen Stellen bzw. in einem vorher markierten Bereich
im Programm ersetzen, so betätigen Sie nach der obigen Eingabe im Such--/Ersetzenformu-
lar den Softkey “Alle ers.”

ProgExpPHR4.1.7 12.03.06 de

17 von 214
Programmierung Experte

Sie erhalten im Meldungsfenster die Nachricht, “Der angegebene bzw. markierte Bereich
wurde durchsucht” (Bestätigung, daß das gesamte Programm bzw. die Markierung
durchsucht wurde). Nach betätigen des Softkeys ”Abbrechen” verlassen Sie den Ersetzen-
modus und erhalten im Meldungsfenster die Anzahl der gemachten Ersetzungen seit Akti-
vierung dieser Funktion.

ProgExpPHR4.1.7 12.03.06 de

18 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

1.4 Verstecken von Programmteilen


Anders als bei normalen Editoren gestattet der 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.4.1 FOLD
Die KUKA--Bedienoberfläche benutzt eine besondere Technik zur übersichtlichen Darstel-
lung eines Programmes. Als KRL--Kommentare markierte Anweisungen erlauben es, die
Anzeige von nachfolgenden Teilen des Programmes zu unterdrücken. Das Programm wird
so in sinnvolle Abschnitte unterteilt, die entsprechend ihrem Ordner--Charakter “FOLDS” ge-
nannt werden.
“FOLDS” sind standardmäßig “geschlossen” und können nur auf der Expertenebene “geöff-
net” werden. Sie enthalten Informationen die für den Anwender auf der KUKA--Bedienober-
fläche (KUKA--BOF) unsichtbar sind. Auf der Expertenebene haben Sie die Möglichkeit ei-
nen KRL--Block für den Anwender unsichtbar zu machen. Hierfür werden die betreffenden
Vereinbarungen oder Anweisungen durch die Bezeichnungen “;FOLD“ und “;ENDFOLD“ ein-
geschlossen.
Folds in einem Programm können angezeigt oder versteckt werden, wenn Sie den Menükey
“Bearbeiten” drücken und anschließend “FOLD” sowie das gewünschte Kommando anwäh-
len.

Programm im Editor Programm Angewählt

Folgende Optionen stehen zur Auswahl:


G aktuelle FOLD öff/schl öffnet bzw. schließt den FOLD der Zeile,
in der sich der Editier--Cursor befindet
G alle FOLDs öffnen öffnet alle FOLDs des Programms
G alle FOLDs schließen schließt alle FOLDs des Programms

Wird ein angewähltes Programm, in dem Folds geöffnet sind, zurückgesetzt, so werden
diese Folds automatisch geschlossen.

Von der Sequenz...


;FOLD RESET OUT

FOR I=1 TO 16
$OUT[I]=FALSE
ENDFOR

;ENDFOLD

ProgExpPHR4.1.7 12.03.06 de

19 von 214
Programmierung Experte

...sind bei geschlossenen Folds auf der Bedienoberfläche nur die Worte “RESET OUT” zu
sehen. Mit diesem Befehl können Sie beispielsweise Deklarations-- und Initialisierungsteil
für den Anwender unsichtbar machen.
1.4.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

Das Beispielprogramm sieht auf der Bedienoberfläche folgendermaßen aus:

Das gleiche Programm mit geöffneten Folds:

ProgExpPHR4.1.7 12.03.06 de

20 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

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 eine Anweisung für den Editor. Der Compiler interpretiert die FOLD--
Anweisungen aufgrund des vorangestellten Semikolons als normalen Kommentar.

ProgExpPHR4.1.7 12.03.06 de

21 von 214
Programmierung Experte

1.5 Programmablaufarten
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 STOP bis zum Pro-
grammende bearbeitet.

MSTEP Motion Step (Bewegungssatz)


Das Programm wird schrittweise, d.h. mit einem STOP nach jedem
Bewegungssatz ausgeführt.
Das Programm wird ohne Vorlauf bearbeitet.
ISTEP Inkremental Step (Einzelsatz)
Das Programm wird satzweise, d.h. mit einem STOP 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 STOP nach jedem
Bewegungssatz mit Genauhalt ausgeführt.
Das Programm wird mit Vorlauf abgearbeitet, d.h. Punkte werden
überschliffen.

Die Programmablaufarten GO, MSTEP und ISTEP können am KCP über einen Statuskey
oder die Variable “$PRO_MODE” angewählt werden. PSTEP und CSTEP hingegen sind nur
über die Variable “$PRO_MODE” einstellbar. Zum Ändern des jeweiligen Zustands dieser
Variable rufen Sie die Menüfunktion “Anzeige” --> “Variable” --> “Einzeln” auf. Geben Sie an-
schließend im Eingabefeld “Name” die Variable “$PRO_MODE” und im Feld “Neuer Wert”
den gewünschten Wert ein.

ProgExpPHR4.1.7 12.03.06 de

22 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

Die Programmablaufarten “#PSTEP” und “#CSTEP” können nur über die Variablenkorrek-
tur und nicht per Statuskey ausgewählt werden.

Näheres finden Sie im Kapitel [Variablen und Vereinbarungen], Abschnitt [Datenob-


jekte] unter (Aufzählungstypen).

ProgExpPHR4.1.7 12.03.06 de

23 von 214
Programmierung Experte

1.6 Fehlerbehandlung

Tritt ein Fehler beim Kompilieren oder Binden auf, so wird im Meldungsfenster eine Fehler-
meldung ausgegeben und die fehlerhafte Datei im Navigator kenntlich gemacht.

Als Beispiel dient die Datei “ERROR.SRC”, die (fehlerhaft) erstellt wurde:

Nach Schließen des Editors erscheint nun im Meldungsfenster eine Hinweismeldung über
die Anzahl der Fehler.

Gleichzeitig werden bei diesem Vorgang die betroffenen Dateien mit einem roten Kreuz ge-
kennzeichnet.

Ihnen steht die folgende Softkeyleiste zur Verfügung:

Der Softkey “Öffnen” lädt die Datei in den Editor und bei Betätigung des Softkeys “Datenliste”
wird das Dat--File mit dem Editor geöffnet. Wollen Sie die fehlerhaften Dateien löschen, so
drücken Sie “Löschen” und über “Neu” können sie eine neue Datei erstellen.

ProgExpPHR4.1.7 12.03.06 de

24 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

Durch Drücken des Softkeys “Fehlerliste” wird diese geöffnet.

Titelzeile mit dem Namen der Datei

Kurzbeschreibung

Fehlernummer

*1
Nummer der fehlerhaften Zeile und
Spalte

Fehlerhafte Quelltext--Zeile
Fehlerbeschreibung = Kurzbeschreibung

Damit wechselt die Softkeyleiste:

HINWEIS *1
Die angezeigten Zeilennummern entsprechen den absoluten Zeilennummern im
Programm, wie sie ein normaler ASCII--Editor anzeigen würde. Um eine Überein-
stimmung zwischen den Zeilennummern in der Fehleranzeige und den Zeilen-
nummern im KCP zu erzielen, müßten alle Folds geöffnet, die Detailansicht und
die DEF--Zeile aktiv sein. Diese Darstellung ist aber etwas unübersichtlich, da
alle Informationen zur Verfügung gestellt werden, obwohl sie nicht benötigt wer-
den. Weiter Informationen über die Detailansicht und die DEF--Zeile finden Sie
im Abschnitt [Verstecken von Programmteilen].

Aus der Fehleranzeige ist ersichtlich, daß folgende Fehler aufgetreten sind:
G 3 Zeilen im SRC--File sind fehlerhaft;
G die Zeilennummern der fehlerhaften Zeilen lauten 51, 52 und 55;
G in Zeile 51 die Fehlernummern
-- 2263: Typ der Schleifenvariable ungleich INT;
G in Zeile 52 die Fehlernummer
-- 2249: Ausdruck ungleich INT;
G in Zeile 55 die Fehlermeldung
-- 2309: das Zeichen “(“ erwartet;
Aus den Fehlermeldungen “2263” ergibt sich sehr schnell, daß die Variable I nicht als Integer
deklariert wurde. Die Fehlermeldung 2249 resultiert ebenfalls aus der fehlenden Deklaration,
da bei einer Zählschleife der Zähler immer vom Typ INT sein muß. Die Meldung “2309” be-
deutet: Der Compiler interpretiert die Zeile als Unterprogrammaufruf, bei dem allerdings die
Klammern fehlen.

ProgExpPHR4.1.7 12.03.06 de

25 von 214
Programmierung Experte

Die Bedeutung der Fehlernummern können Sie Online mit Hilfe der Menüfunktion “An-
zeige” --> “Variable” --> “Einzeln” anzeigen lassen. Geben Sie hierzu im Zustandsfenster
im Eingabefeld “Name” das Zeichen”&” gefolgt von der Fehlernummer ein. In diesem Fall
beispielsweise “&2263” und betätigen die Eingabe--Taste.

Wenn Sie nun die SRC--Datei (in diesem Falls “ERROR.SRC”) in den Editor laden, können
Sie die entsprechenden Korrekturen vornehmen. Zur Erleichterung positioniert sich der Cur-
sor blinkend in der ersten fehlerhaften Zeile. Beachten Sie, daß die begrenzte Sichtbarkeit
ausgeschaltet sowie die DEF--Zeile sichtbar ist. Näheres finden Sie in Abschnitt [Verstek-
ken von Programmteilen].
Im vorliegenden Beispiel brauchen die Folds nicht geöffnet zu werden. Wird dies gewünscht,
verwenden Sie den Menübefehl “Bearbeiten” --> “Folds” --> “alle FOLDs öffnen”.

Die im ursprünglich erstellten Programm fehlende Zeile “INT I” muß vor der Zeile “INI”
eingefügt werden. Dies ist nur möglich, wenn die Zeile “DEF ERROR ( )” sichtbar ist.

Fügen Sie also die Zeile


INT I
vor der INI--Zeile ein, und streichen Sie in Zeile 62 ein Gleichheitszeichen.
I = I + 1

Diese Zeile hier einfügen

Ein Gleichheitszeichen
entfernen

Nach Schließen des Editors und dem Abspeichern der korrigierten Datei können Sie bei der
Fehlerliste den Softkey “Aktual.” betätigen, und die Fehlerliste verschwindet wenn alle Feh-
ler behoben sind.

ProgExpPHR4.1.7 12.03.06 de

26 von 214
1 Allgemeines zu KRL--Programmen (Fortsetzung)

1.7 Kommentare
Kommentare sind ein wichtiger Bestandteil jedes Computerprogrammes. 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, z.B.:
¼
PTP P1 ;Bewegung zum Ausgangspunkt
¼
;--- Ausgaenge zuruecksetzen ---
FOR I = 1 TO 16
$OUT[I] = FALSE
ENDFOR
¼

ProgExpPHR4.1.7 12.03.06 de

27 von 214
Programmierung Experte

ProgExpPHR4.1.7 12.03.06 de

28 von 214
2 Variablen und Vereinbarungen

2 Variablen und Vereinbarungen


2.1 Variablen und Namen
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.
Eine Variable wird im Programm durch einen Namen dargestellt, wobei die Bezeichnung des
Namens in gewissen Grenzen frei wählbar ist.
Namen Namen in KRL
S dürfen maximal 24 Zeichen lang sein,
S dürfen Buchstaben (A--Z), Ziffern (0--9) sowie die Zeichen ’_’ und ’$’ enthalten,
S dürfen nicht mit Ziffern beginnen,
S dürfen keine Schlüsselwörter sein.

Da alle Systemvariablen (s. Abschnitt 2.4) 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.
Wertzuwei- Mit dem Gleichheitszeichen (=) werden den Variablen Werte zugewiesen. Die Anweisung
sung
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 (s. Abschnitt 2.2) auch unterschiedlichen Speicherbedarf
haben, muß der Datentyp einer Variablen vor der Verwendung vereinbart (deklariert) werden
(s. Abschnitt 2.2.1).

ProgExpPHR4.1.7 12.03.06 de

29 von 214
Programmierung Experte

Lebensdauer 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.
G Variable in einer Datenliste (s. Kapitel Datenlisten) 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 (bis zum
nächsten Ein--/Ausschalten).

ProgExpPHR4.1.7 12.03.06 de

30 von 214
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 Begriffes Datentyp diene 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?
Zur eindeutigen Beantwortung dieser Frage fehlt noch eine wichtige Information, nämlich die
Datentyp 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


DECL 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 kennt der Compiler diese beiden Variablen sowie den zugehörigen Datentyp und kann
bei Benutzung der Variablen überprüfen, ob dieser Datentyp die beabsichtigte Operation
ü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 (s. Abschnitt 2.2.2) sind unter anderem die Strukturdatentypen POS, E6POS,
FRAME, AXIS und E6AXIS (s. Abschnitt 2.2.5) 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 (s. Abschnitt 2.2.5 und 2.2.6).
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 (s. Abb. 1).

ProgExpPHR4.1.7 12.03.06 de

31 von 214
Programmierung Experte

Nur in Datenlisten ist es zulässig, Variablen direkt in der Deklarationszeile zu initialisieren.

DEF NAME()

;---- Vereinbarungsteil ----


¼

;---- Initialisierungsteil ----


¼

;---- Anweisungsteil ----


¼

END

Abb. 1 Grundaufbau eines Roboterprogramms

Weitere Informationen finden Sie im Kapitel [Datenlisten].

ProgExpPHR4.1.7 12.03.06 de

32 von 214
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 (s. Abschnitt 2.2.3--2.2.6) nur einen einzigen Wert. Die
in KRL bekannten Datentypen sind zusammen mit ihrem jeweiligen Wertebereich in Tab. 1
aufgelistet.

Datentyp Integer Real Boolean Character


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

Tab. 1 Einfacher Datentyp

INT 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 KR C1 für Integer--Typen vorgesehenen 32 Bit ergeben
daher 231 ganze Zahlen plus Vorzeichen. Die Zahl 0 wird dabei zu den positiven Zahlen ge-
zä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

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
Binärsystem Darstellung im Binärsystem (2er--System: Ziffern 0 und 1) oder im Hexadezimalsystem
Hexadezimal- (16er--System: Ziffern 0--9 und A--F) hilfreich. Binäre oder hexadezimale Integerwerte kön-
system nen Sie in KRL mit Hilfe des Hochkommas (’) und der Angabe von B für Binärdarstellung oder
H für Hexadezimaldarstellung angeben.

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. 2 Die ersten 17 Zahlen im Dezimal-- und Hexadezimalsystem

ProgExpPHR4.1.7 12.03.06 de

33 von 214
Programmierung Experte

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

Bin ® Dez 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

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

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

REAL Bei dem Begriff der Gleitkommadarstellung 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!
BOOL Die boolschen Variablen dienen zur Beschreibung von logischen Zuständen (z.B. Ein--/Aus-
gängen). Sie können nur die Werte TRUE (wahr) und FALSE (falsch) annehmen:
ZUSTAND1 = TRUE
ZUSTAND2 = FALSE

ProgExpPHR4.1.7 12.03.06 de

34 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

CHAR 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 = “?”
Zur Speicherung ganzer Zeichenfolgen siehe Abschnitt 2.2.4.

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. Durch die Vereinbarung
DECL INT OTTO[7]
Feldindex können Sie z.B. 7 verschiedene Integer--Zahlen in dem Feld OTTO[] ablegen. Auf jede ein-
zelne 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. 2 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.

ProgExpPHR4.1.7 12.03.06 de

35 von 214
Programmierung Experte

S Der Datentyp eines Feldes ist beliebig. Somit können die einzelnen Elemente
wiederum aus zusammengesetzten Datentypen bestehen
(z.B.: Feld aus Feldern)
S Für die Index sind nur Integer--Datentypen zulässig
S Neben Konstanten und Variablen sind auch arithmetische Ausdrücke für den
Index zulässig (s. Abschnitt 2.3.1)
S Der Index zählt immer ab 1

2--dimens. 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[5,4]
vereinbaren Sie ein zweidimensionales 5×4 Feld mit 5×4=20 REAL--Elementen. Anschau-
lich läßt sich dieses Feld als Matrix mit 5 Spalten und 4 Reihen darstellen. Mit der Programm-
sequenz
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
werden die Elemente der Matrix mit einem Wert entsprechend der Reihenfolge ihrer Bele-
gung 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. 3 Darstellung eines zweidimensionalen Feldes

ProgExpPHR4.1.7 12.03.06 de

36 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

3--dimens. Dreidimensionale Felder kann man sich schließlich so vorstellen, daß mehrere zweidimen-
sionale Matrizen hintereinander liegen. Die dritte Dimension gibt also sozusagen die Ebene
an, in der die Matrix liegt (s. Abb. 4). Vereinbart wird ein dreidimensionales Feld analog zu
den ein-- oder zweidimensionalen Feldern, z.B.:
DECL BOOL FELD_3D[3,5,4]
Die Initialisierungssequenz könnte so aussehen:
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. 4 Darstellung eines dreidimensionalen Feldes

ProgExpPHR4.1.7 12.03.06 de

37 von 214
Programmierung Experte

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

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-
STRUC 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 wurde in der Datei $OPERATE.SRC folgen-
dermaßen definiert:
STRUC POS REAL X, Y, Z, A, B, C, INT S, T
Punkt--Sepa- Verwenden Sie jetzt z.B. eine Variable POSITION vom Strukturdatentyp POS, so können
rator Sie die Elemente entweder einzeln mit Hilfe des Punkt--Separators, z.B.:
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
Aggregat oder gemeinsam mittels eines sogenannten Aggregates
POSITION={X 34.4,Y -23.2,Z 100.0,A 90,B 29.5,C 3.5,S 2,T 6}
besetzen.

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


[Vereinbarung und Initialisierung von Datenobjekten].

Für Aggregate gelten folgende Bestimmungen:

ProgExpPHR4.1.7 12.03.06 de

38 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

S Die Werte eines Aggregats können einfache Konstanten oder selbst Aggre--
gate sein.
S In einem Aggregat müssen nicht sämtliche Komponenten der Struktur ange--
geben 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
Feldelementes.
S Am Anfang eines Aggregates kann -- durch Doppelpunkt abgetrennt -- der
Name des Strukturtyps angegeben sein.

Folgende Zuweisungen sind für POS--Variablen also 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 Kom-
ponenten nicht verändert. Bei allen sonstigen Aggregaten werden nicht vorhan-
dene Komponenten auf ungültig gesetzt.
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.

ProgExpPHR4.1.7 12.03.06 de

39 von 214
Programmierung Experte

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


Strukturen
STRUC AXIS REAL A1,A2,A3,A4,A5,A6
STRUC E6AXIS REAL A1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5,E6
STRUC FRAME REAL X,Y,Z,A,B,C
STRUC POS REAL X,Y,Z,A,B,C, INT S,T
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.

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Bewegungsbefehle] Status (S) und Turn (T).

Mit den Komponenten E1¼E6 in der Struktur E6POS können wieder Zusatzachsen ange-
sprochen werden.
geometrische Die Typen AXIS, E6AXIS, POS, E6POS und FRAME nennt man auch geometrische Daten-
Datentypen 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.
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 Konstanten

ProgExpPHR4.1.7 12.03.06 de

40 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

wird den selbstdefinierten Aufzählungskonstanten bei Initialisierungen oder Abfragen ein


# -- Zeichen “#”--Zeichen vorangestellt, z.B.:
$MODE_OP = #T1
Mit ENUM können Sie sich nun beliebig viele selbstdefinierte Aufzählungsdatentypen erzeu-
gen.

ProgExpPHR4.1.7 12.03.06 de

41 von 214
Programmierung Experte

2.3 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.3.1 Operatoren
Unter Operatoren sind die üblichen mathematischen Operatoren zu verstehen im Gegen-
Operand 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.3.1.1 Arithmetische Operatoren


Arithmetische Operatoren betreffen die Datentypen INTEGER und REAL. Alle 4 Grundre-
chenarten sind in KRL zulässig (s. Tab. 3).

Operator Beschreibung
+ Addition oder positives Vorzeichen
-- Subtraktion oder negatives Vorzeichen
* Multiplikation
/ Division

Tab. 3 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 (s. Tab. 4).

Operanden INT REAL


INT INT REAL
REAL REAL REAL

Tab. 4 Ergebnis einer arithmetischen Operation

ProgExpPHR4.1.7 12.03.06 de

42 von 214
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.0
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.3.1.2 Geometrischer Operator

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.

Frame-- Eine Frameverknüpfung wird von links nach rechts ausgewertet. Das Ergebnis hat immer
verknüpfung den Datentyp des am weitesten rechts stehenden Operanden (s. Tab. 5).

linker Operand Operator rechter Operand Ergebnis


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

Tab. 5 Datentyp--Kombinationen beim geometrischen Operator

ProgExpPHR4.1.7 12.03.06 de

43 von 214
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
(s. Abb. 5):
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 in Abb. 5 gezeigt in eine Ecke des Werkstücks. Um das Teil später zweckmäßig
handhaben zu können, zeigt die Z--Achse des WERKSTUECK--Koordinatensystems nach un-
ten. Das Werkstück ist bezüglich der Z--Achse des TISCH--Koordinatensystems um 40_ ge-
dreht. Die Position des WERKSTUECK--Koordinatensystems bezogen auf das TISCH--Koor-
dinatensystem 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. 5 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
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}

ProgExpPHR4.1.7 12.03.06 de

44 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

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 140,B 0,C -180}
Eine weitere Möglichkeit wäre:
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--Koordinatensystem nicht bezüglich des RAUM--Koordinatensy-
stems verdreht ist.
Im allgemeinen ist jedoch eine einfache Addition der Komponenten nicht mög-
lich!
Eine Frameverknüpfung ist auch nicht kommutativ, das heißt, durch Vertau-
schen von Bezugsframe und Zielframe wird sich normalerweise auch das Er-
gebnis ändern!

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Verwendung verschiedener Koordinatensysteme].

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.

ProgExpPHR4.1.7 12.03.06 de

45 von 214
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}; Basiskoordina-
tensystem 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 Koordinaten-
systeme definieren
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-Koordina-
tensystems
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 bezueg-
lich 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]:MY-
BASE[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 MY-
BASE[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

ProgExpPHR4.1.7 12.03.06 de

46 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

2.3.1.3 Vergleichsoperatoren
Mit den in Tab. 6 aufgeführten Vergleichsoperatoren können logische Ausdrücke gebildet
werden. Das Ergebnis eines Vergleichs ist daher immer vom Datentyp BOOL, da ein Ver-
gleich 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. 6 Vergleichsoperatoren

Vergleiche können in Programmablaufanweisungen (s. Abschnitt 5) 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 algebra-
isch identische Formeln ungleiche Werte liefern können (s. 2.2.2).

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
¼

ProgExpPHR4.1.7 12.03.06 de

47 von 214
Programmierung Experte

2.3.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 (s. Abschnitt 5) verwendet. Die logischen
Operatoren sind in Tab. 7 aufgelistet.

Operator Operandenzahl Beschreibung


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

Tab. 7 Logische Operatoren

Die Operanden einer logischen Verknüpfung müssen vom Typ BOOL sein, das Ergebnis ist
ebenfalls immer vom Typ BOOL. In Tab. 8 sind die möglichen Ergebnisse der jeweiligen Ver-
knüpfungen in Abhängigkeit vom Wert der Operanden 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. 8 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
¼

ProgExpPHR4.1.7 12.03.06 de

48 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

2.3.1.5 Bit--Operatoren
Mit Hilfe der Bit--Operatoren (s. Tab. 9) lassen sich ganze Zahlen miteinander verknüpfen,
indem man die einzelnen Bits der Zahlen logisch miteinander verknüpft. Die Bit--Operatoren
verknüpfen einzelne Bits genauso wie die logischen Operatoren zwei boolsche Werte, wenn
man den Bit--Wert 1 als TRUE und den Wert 0 als FALSE ansieht.
Eine bitweise UND--Verknüpfung der Zahlen 5 und 12 ergibt somit z.B. die Zahl 4, eine bit-
weise ODER--Verknüpfung die Zahl 13 und eine bitweise exklusiv ODER--Verknüpfung die
Zahl 9:

0 1 0 1 = 5
1 1 0 0 = 12
AND 0 1 0 0 = 4
OR 1 1 0 1 = 13
EXOR 1 0 0 1 = 9

Bei der bitweisen Invertierung werden nicht alle Bits einfach umgedreht. Stattdessen wird
bei Verwendung von B_NOT zum Operanden 1 dazu addiert und das Vorzeichen gekippt,
z.B:
B_NOT 10 = -11
B_NOT -10 = 9
Bit--Operatoren werden beispielsweise eingesetzt, um digitale Ein--/Ausgangssignale mit-
einander zu verknüpfen (s. 6.3).

Operator Operandenzahl Beschreibung


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

Tab. 9 Logische Bit--Operatoren

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.

ProgExpPHR4.1.7 12.03.06 de

49 von 214
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
¼
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
Einblenden DIG = ’B10001101’ B_OR DIG
von Bits
programmieren. Alle anderen Bits bleiben unbeeinflußt, egal welchen Wert sie haben.
Wollen Sie z.B. die Bits 1, 2 und 6 ausblenden, so programmieren Sie
Ausblenden DIG = ’B10111001’ B_AND DIG
von Bits
Alle anderen Bits werden dadurch nicht verändert.
Genauso leicht können Sie mit den Bit--Operatoren überprüfen, ob einzelne Bits des Aus-
gangs gesetzt sind. Der Ausdruck
Herausfiltern (’B10000001’ B_AND DIG) == ’B10000001’
von Bits
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

ProgExpPHR4.1.7 12.03.06 de

50 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

2.3.1.6 Prioritäten von Operatoren


Verwenden Sie komplexere Ausdrücke mit mehreren Operatoren, so müssen Sie die unter-
Priorität schiedlichen Prioritäten der einzelnen Operatoren beachten (s. Tab. 10), 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. 10 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 ausge-
wertet.
G Verknüpfungen mit Operatoren gleicher Priorität werden von links nach rechts
ausgefü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
¼

ProgExpPHR4.1.7 12.03.06 de

51 von 214
Programmierung Experte

2.3.2 Standardfunktionen
Zur Berechnung gewisser mathematischer Probleme sind in KRL einige Standardfunktionen
vordefiniert (s. Tab. 11). 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. 11 Mathematische Standardfunktionen

Betrag Die Funktion ABS(X) berechnet den Betrag des Wertes X, z.B.:
B = -3.4
A = 5 * ABS(B) ;A=17.0
Wurzel SQRT(X) errechnet die Quadratwurzel aus der Zahl X, z.B.:
A = SQRT(16.0801) ;A=4.01
Sinus Die trigonometrischen Funktionen SIN(X), COS(X) und TAN(X) berechnen den Sinus, Co-
Cosinus sinus oder Tangens des Winkels X, z.B.:
Tangens
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 Fehlermeldung.
Arcuskosinus ACOS(X) ist die Umkehrfunktion zu COS(X):
A = COS(60) ;A=0.5
B = ACOS(A) ;B=60
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
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-
Arcustangens 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 (s. Abb. 6). Sie können daher auch Winkel in den Qua-

ProgExpPHR4.1.7 12.03.06 de

52 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

dranten III und IV berechnen. Deshalb sind zur Berechnung des Arcustangens in der Funk-
tion 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(a)

Y=SIN(a)
a
0

III IV

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

Weitere Informationen finden Sie im Kapitel [Unterprogramme und Funktionen].

ProgExpPHR4.1.7 12.03.06 de

53 von 214
Programmierung Experte

2.4 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 KR C1 ist dies durch das Konzept der vordefi-
nierten 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[].
Timer Die 16 Timervariablen $TIMER[1]¼$TIMER[16] 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[16]:
$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 Timerva-
riable 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[16] mit FALSE und die Variablen
$TIMER_STOP[1]¼$TIMER_STOP[16] mit TRUE vorbesetzt.
Die Einheit der Timervariablen ist Millisekunden (ms). Die Aktualisierung von
$TIMER[1]¼$TIMER[16] sowie $TIMER_FLAG[1]¼$TIMER_FLAG[16]
erfolgt im 12ms--Takt.

ProgExpPHR4.1.7 12.03.06 de

54 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

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.
Zyklische Des weiteren stehen in der KR C1 32 zyklische Flags
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 [Interruptbehandlung], Abschnitt [Verwen-


dung zyklischer Flags].

$ -- Zeichen 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 vereinba-


ren, die mit einem $--Zeichen beginnen.

Ein Teil der vordefinierten Variablen bezieht sich auf die gesamte Steuerung KR C1 (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).

ProgExpPHR4.1.7 12.03.06 de

55 von 214
Programmierung Experte

Auf der KUKA--Bof erscheint das Roboterlaufwerk auf dem die steuerungsrelevanten Daten
im Verzeichnis “Steu” und die roboterrelevanten Daten im Verzeichnis “R1” abgelegt sind.

Abb. 7 Verschiedene Ebenen auf der KUKA--Bedienoberfläche

Bei der Programmierung der KR C1 können Sie Programmdateien und Datenlisten erstellen.
In den Programmdateien stehen Datendefinitionen und ausführbare Anweisungen, die Da-
tenlisten 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 KR C1 noch
Datenlisten, die von KUKA definiert sind und die mit der Steuerungssoftware ausgeliefert
werden. Diese Datenlisten heißen vordefinierte Datenlisten und beinhalten hauptsächlich
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 KR C1 gibt es folgende vordefinierte Datenlisten:


G $MACHINE.DAT
ist eine vordefinierte Datenliste mit ausschließlich vordefinierten Systemvariablen. Mit
den Maschinendaten wird die Steuerung an den angeschlossenen Roboter angepaßt
(Kinematik, Regelparameter, etc.). Es gibt sowohl eine $MACHINE.DAT auf dem
Steuerungssystem als auch im Robotersystem. Sie können keine neuen Variablen er-
stellen oder vorhandene Variablen löschen.

Beispiele:
$ALARM_STOP Signal für Not--Aus (steuerungsspezifisch)
$NUM_AXT Anzahl der Roboterachsen (roboterspezifisch)
G $CUSTOM.DAT
ist eine Datenliste, die es nur auf dem Steuerungssystem gibt. Sie beinhaltet Daten, mit
denen Sie bestimmte Steuerungsfunktionen projektieren oder parametrieren können.
Für den Programmierer besteht nur die Möglichkeit, die Werte der vordefinierten Varia-
blen zu ändern. Sie können keine neuen Variablen erstellen oder vorhandene Variablen
löschen.

Beispiele:
$PSER_1 Protokollparameter der seriellen Schnittstelle 1
$IBUS_ON Einschalten alternativer Interbusgruppen

ProgExpPHR4.1.7 12.03.06 de

56 von 214
2 Variablen und Vereinbarungen (Fortsetzung)

G $CONFIG.DAT
ist eine von KUKA vordefinierte Datenliste, die aber keine vordefinierten Systemvaria-
blen enthält. Dabei existiert eine $CONFIG.DAT auf Steuerungsebene und auf Robote-
rebene. Es können darin Variablen, Strukturen, Kanäle und Signale definiert werden,
die längere Zeit gültig sind und für viele Programme von übergeordneter Bedeutung
sind.
Die Datenliste auf Roboterebene ist in folgende Blöcke untergliedert:
-- BAS
-- AUTOEXT
-- GRIPPER
-- PERCEPT
-- SPOT
-- A10
-- A50
-- A20
-- TOUCHSENSE
-- USER
Globale Deklarationen des Anwenders sollten unbedingt in den USER--Block einge-
tragen werden. Denn nur hier werden die Vereinbarungen bei einem späteren Soft-
ware--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.

Tab. 12 gibt eine Zusammenstellung der vordefinierten Datenlisten.

Datenliste System Wertzuweisung


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

Tab. 12 Vordefinierte Datenlisten auf der KR C1

ProgExpPHR4.1.7 12.03.06 de

57 von 214
Programmierung Experte

ProgExpPHR4.1.7 12.03.06 de

58 von 214
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.
Bewegungs- Je nach Steuerungsart lassen sich diese Bewegungsanweisungen in Befehle für einfache
anweisungen 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, siehe 3.3.4).
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


Koordinaten- Um die Lage bzw. Orientierung eines Punktes im Raum angeben zu können, bedient man
system sich verschiedener Koordinatensysteme. Eine grundsätzliche Unterscheidung kann in achs-
spezifische und kartesische Koordinatensysteme erfolgen:
achsspezi- Im achsspezifischen Koordinatensystem werden die Verschiebungen (bei translatori-
fisch schen Achsen) bzw. Verdrehungen (bei rotatorischen Achsen) jeder Roboterachse angege-
ben. Bei einem 6--achsigen Knickarmroboter müssen also alle 6 Robotergelenkwinkel ange-
geben werden, um Lage und Orientierung eindeutig festzulegen (s. Abb. 8).

Abb. 8 Achsspezifisches Koordinatensystem eines 6--achsigen Knickarmroboters

ProgExpPHR4.1.7 12.03.06 de

59 von 214
Programmierung Experte

Die Beschreibung einer achsspezifischen Stellung erfolgt in der KR C1 durch den vordefi-
nierten Strukturtyp AXIS, dessen Komponenten je nach Achstyp die Bedeutung von Winkeln
oder Längen hat.

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


[Strukturen].

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


ren werden. Wird eine Bahnbewegung mit einer achsspezifischen Roboterposition program-
miert, so führt dies zu einem Fehlerfall.
Koordinaten- Da der Mensch als Programmierer in kartesischen Koordinaten denkt, ist das Programmie-
transforma- ren im achsspezifischen Koordinatensystem meist sehr unpraktisch. Die Steuerung bietet
tion daher mehrere kartesische Koordinatensysteme zur Programmierung an, deren Koordina-
ten vor der Bewegungsausführung automatisch in das achsspezifische System transfor-
miert werden (s. Abb. 9).

Vorwärtstransformation

A1, A2, A3, A4, A5, A6

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

Rückwärtstransformation

Abb. 9 Koordinatentransformation

kartesisch In einem kartesischen Koordinatensystem stehen die 3 Koordinatenachsen X, Y und Z


senkrecht aufeinander und bilden in dieser Reihenfolge ein Rechtssystem.

ProgExpPHR4.1.7 12.03.06 de

60 von 214
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 (s. Abb. 10).

Z
P

Z1

Y1

X1 X

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

Abb. 10 Translatorische Beschreibung der Lage eines Punktes

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 KR C1 mit A, B und C bezeichneten Winkel beschreiben Drehungen um die Koordi-
natenachsen 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 (s. Abb. 11).

ProgExpPHR4.1.7 12.03.06 de

61 von 214
Programmierung Experte

A B C
Z’ Y’
Z B
A Y ’’

Z ’’
Y X’ Y ’’’

Z ’’’
X
C
X ’’ X ’’’

Abb. 11 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 KR C1 erfolgt dies
mit der vordefinierten Struktur FRAME.

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


[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 KR C1 ist für ein um “S” und “T” erweiter-
tes Frame die Struktur POS vorgesehen.

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


[Strukturen] und Abschnitt [Bewegungsbefehle].

ProgExpPHR4.1.7 12.03.06 de

62 von 214
In der KR C1 sind folgende kartesische Koordinatensysteme vordefiniert (Tab. 1 und
Abb. 12):

Koordinatensystem Systemvariable Status


Weltkoordinatensystem $WORLD schreibgeschützt
Roboterkoordinatensystem $ROBROOT schreibgeschützt
(in R1\MADA\$MA-
SCHINE.DAT än-
derbar)
Werkzeugkoordinatensystem $TOOL beschreibbar
Basis(Werkstück--)koordinatensystem $BASE beschreibbar

Tab. 1 Vordefinierte Koordinatensysteme

y
z

Werkzeug--KS
z x

z y
Basis--KS x
y
Welt--KS
z
Roboter--KS
y x

Abb. 12 Kartesische Koordinatensysteme bei Robotern

Weltkoordinatensystem
Das Weltkoordinatensystem ist ein ortsfestes (= bewegt sich bei einer Roboterbewegung
nicht mit) Koordinatensystem, das als Ursprungskoordinatensystem für ein Robotersystem
(Roboter, Bauteilauflage bzw. Werkzeug) dient. Es stellt somit das Bezugssystem sowohl
für das Robotersystem als auch für die Zellenperipherie dar.

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

Werkzeugkoordinatensystem
Das Werkzeugkoordinatensystem hat seinen Ursprung in der Werkzeugspitze. Die Orientie-
rung kann dabei so gewählt werden, daß seine X--Achse mit der Werkzeug--Stoßrichtung

ProgExpPHR4.1.7 12.03.06 de

63 von 214
Programmierung Experte

identisch ist und aus dem Werkzeug heraus zeigt. Bei einer Bewegung der Werkzeugspitze
wird das Werkzeugkoordinatensystem mitbewegt.

Bei der Auslieferung liegt das Werk-


zeugkoordinatensystem im Roboter-
flansch (Z--Achse ist identisch mit
Achse 6). Es bezieht sich über die
Transformation auf das Roboterkoor-
Y dinatensystem.

X
Z

Erfolgt ein Werkzeugwechsel, so kann nach Neuvermessung das ursprüngliche Programm


weiter verwendet werden, da dem Rechner die Koordinaten der Werkzeugspitze bekannt
sind.

Basiskoordinatensystem
Das Basiskoordinatensystem 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 Weltkoordinatensystem. Bei Auslieferung
ist $BASE=$WORLD.
Durch eine Veränderung von $BASE können z.B. mehrere gleiche Werkstücke an verschie-
denen Orten mit demselben Programm bearbeitet werden.
basisbezog. Bei der Interpolation der Bewegungsbahn berechnet die Robotersteuerung im Normalfall
Interpolation (Werkzeug am Roboterflansch) die aktuelle Position ($POS_ACT) bezogen auf das $BASE--
Koordinatensystem (s. Abb. 13).

z
$TOOL
y
$POS_ACT
z
x
$POS_ACT

y
$BASE x
x
$ROBROOT
z y

$WORLD x

Abb. 13 Kinematische Kette bei basisbezogener Interpolation

ProgExpPHR4.1.7 12.03.06 de

64 von 214
feststehendes In der industriellen Praxis geht man jedoch immer mehr dazu über, das Werkzeug (z.B.
Werkzeug Schweißbrenner) fest im Raum zu verankern und das Werkstück selbst mittels eines geei-
gneten Greifers am feststehenden Werkzeug entlang zu führen.

Die Variable $TOOL bezieht sich immer auf das Werkzeug bzw. Werkstück, welches sich
am Roboter befindet. Die Variable $BASE dagegen bezieht sich immer auf das externe
Werkzeug bzw. Werkstück.
greiferbezog. Da nun Werkstück und Werkzeug ihre Position getauscht haben, die Bewegung aber weiter
Interpolation bezüglich des Werkstücks erfolgen soll, muß die Interpolation der Bewegungsbahn jetzt über
das $TOOL--Koordinatensystem erfolgen. Diese Zuordnung der Interpolationsart erfolgt im-
plizit beim Verwenden eines normalen oder externen TCP’s. Mit der Systemvariablen
$IPO_MODE können Sie diese 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 (s. Abb. 14). Mit
$IPO_MODE = #BASE
setzen Sie die Interpolationsart wieder zurück auf die basisbezogene Interpolation für den
Normalfall. Dies ist auch die Standardeinstellung beim Steuerungshochlauf.

$TOOL y

x
$POS_ACT
z z
$POS_ACT

z y

x
$BASE
x
$ROBROOT
z y

$WORLD x

Abb. 14 Kinematische Kette bei greiferbezogener Interpolation

Ein Beispiel zur Verschiebung von Koordinatensystemen finden Sie im Kapitel [Variablen
und Vereinbarungen] Abschnitt [Geometrischer Operator].

ProgExpPHR4.1.7 12.03.06 de

65 von 214
Programmierung Experte

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


3.2.1 Allgemein (Synchron--PTP)
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 ein in den Maschinendaten definierten
Höchstwert. Falls diese beiden Systemvariablen nicht für alle Achsen programmiert wurden,
so erfolgt bei 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].

ProgExpPHR4.1.7 12.03.06 de

66 von 214
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.

ProgExpPHR4.1.7 12.03.06 de

67 von 214
Programmierung Experte

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


gen festgelegt. Bevor eine Punkt--zu--Punkt Bewegung ausgeführt werden kann, müssen
diese Zuweisungen erfolgt sein.
Danach verfährt der Roboter jede Achse in die in der Struktur AXIS spezifizierten Winkella-
gen. Beispielsweise 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_.

Abb. 15 Mechanische Nullstellung

ProgExpPHR4.1.7 12.03.06 de

68 von 214
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 PTP {A3 45}
wird also z.B. nur die Achse 3 auf 45_ gebracht. Zu beachten ist, daß es sich bei den Winke-
langaben 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 also z.B. die Achsen 1 und 4
um je 35_ zu verdrehen, programmieren Sie einfach:
PTP_REL PTP_REL {A1 35,A4 35}

A3 = 0_
PTP {A3 45}

A3 = 90_

PTP_REL {A3 45}

Abb. 16 Unterschied zwischen absoluten und relativen achsspezfischen Koordinaten

Beim relativen Verfahren ist allerdings zu beachten, daß eine während der
Ausführung gestoppte Bewegung nicht wieder problemlos fortgesetzt wer-
den kann. Die Steuerung kann nach einem Neustart und erneuter Satzan-
wahl bzw. Wechsel der Programmlaufart den bereits zurückgelegten Weg
nicht berücksichtigen und wird die programmierte Relativdistanz wieder
komplett abfahren, was schließlich zu einem falschen Endpunkt führt.

ProgExpPHR4.1.7 12.03.06 de

69 von 214
Programmierung Experte

Das Verfahren in achsspezifischen Koordinaten ist meistens jedoch 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 jetzt, daß bei Zielpunktangabe in kartesischen Koordinaten ne-


ben den Geschwindigkeits-- und Beschleunigungsangaben auch zwingend das
Basiskoordinatensystem und das Werkzeugkoordinatensystem definiert sein
müssen.

Koordinaten- In unserem Fall wurde das Basiskoordinatensystem ($BASE) gleich dem Weltkoordinaten-
systeme 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 sozusagen im Flanschmittelpunkt. Falls ein Werkzeug angeflanscht
ist, müßten die Werte entsprechend korrigiert werden. Dazu sei auf die Unterlagen zum Ver-
messen 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.
Status “S” und Turn “T” definieren die Stellung der Achsen.
Sofern Sie das Beispiel an einem KR6 -- Roboter testen, erhalten Sie das gleiche Ergebnis,
wie im vorherigen Beispiel. Der Roboter fährt in die mechanische Nullstellung. Die beiden
Anweisungen sind also für diesen Robotertyp identisch.
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_.

ProgExpPHR4.1.7 12.03.06 de

70 von 214
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 wieder, daß Relativbewegungen nach Unterbrechung nicht erneut angewählt
werden dürfen.

ZBASE

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

YBASE

200

150

100

50

XBASE
50 100 150 200

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

Die Basisverschiebung mit Hilfe des Doppelpunkt--Operators hat außerdem ei-


nen entscheidenden Vorteil gegenüber einer Neubesetzung von $BASE:
Die Verschiebung erfolgt im Bewegungssatz, während eine $BASE--Besetzung
irgendwann vor dem Bewegungssatz erfolgen muß. Dadurch ist auch bei Pro-
grammstop und nachfolgender Satzanwahl immer die richtige Basis für die Bewe-
gung 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.

ProgExpPHR4.1.7 12.03.06 de

71 von 214
Programmierung Experte

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Rechnervorlauf].

Aus diesem Grund sollten, wenn möglich, $BASE und $TOOL nur einmal, z.B. im
Initialisierungsteil 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 Ge-


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

Weitere Informationen finden Sie im Kapitel [Unterprogramme und Funktio-


nen] Abschnitt [Vereinbarungen].

ProgExpPHR4.1.7 12.03.06 de

72 von 214
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 verfah-
ren wird, in der dann auch Satzkoinzidenz hergestellt wird. In diese Lage sollte
der Roboter auch am Ende des Programms wieder gebracht werden.
S und T Die Angaben “S” und “T” in einer POS--Angabe dienen dazu, um aus mehreren möglichen
Roboterstellungen für ein und dieselbe Position im Raum (aufgrund der Kinematik--Singulari-
tä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 “Status” und “Turn” zu programmieren, damit eine eindeutige
Ausgangslage definiert wird. Da bei Bahnbewegungen (s. 3.3) “S” und “T” nicht berücksich-
tigt werden, muß auf jeden Fall die erste Bewegungsanweisung eines Programms (Home--
Fahrt) eine vollständige PTP--Anweisung mit Angabe von “Status” und “Turn” sein (oder voll-
ständige PTP--Anweisung mit Achskoordinaten).
In den nachfolgenden PTP--Anweisungen können nun die Angaben “S” und “T” entfallen, so-
fern eine bestimmte Achsstellung, z.B aufgrund von Hindernissen, nicht notwendig ist. Der
Roboter behält den alten S--Wert bei und wählt den T--Wert, mit dem sich der kürzeste, fahr-
bare axiale Weg ergibt, welcher aufgrund der einmaligen Programmierung von “S” und “T”
im ersten PTP--Satz bei verschiedenen Programmierabläufen auch immer der gleiche ist.

Status und Turn erfordern beide Integerangaben, die zweckmäßigerweise in binärer Form
gemacht werden sollten.

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. 2 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. Abb. 18). S ist
daher abhängig von der jeweiligen Roboterkinematik.

ProgExpPHR4.1.7 12.03.06 de

73 von 214
Programmierung Experte

Mehrdeutig--
keiten
Achse 5

Achse 3
Achse 2

Achse 5

Achse 4 Achse 6

Abb. 18 Beispiele für mehrdeutige Roboterkinematiken

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 6--achsigen Knickarmroboter nach folgender Tabelle gesetzt:

Wert Bit 2 Bit 1 Bit 0


0 0_ £ A5 < 180_ A3 < f Grundbereich
A5 < --180_ (f hängt vom Robotertyp ab)
1 --180_ £ A5 < 0_ A3 ³ f Überkopfbereich
A5 ³ 180_ (f hängt vom Robotertyp ab)

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

ProgExpPHR4.1.7 12.03.06 de

74 von 214
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 (z.B. KR 30, s. Abb. 19), ist die Winkellage, in der sich der Wert von Bit 1 ändert, von
der Größe dieses Offsets abhängig.

Offset

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

In Abb. 20 sind die Auswirkungen der Status--Bits auf die Roboterkonfiguration 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_.
Zur zweiten Roboterkonfiguration ist kaum ein Unterschied zu erkennen. Es wurde lediglich
die Achse 4 um 180_ gedreht und die anderen Achsen entsprechend nachgeführt. Während
also die Armkonfiguration gleich blieb, hat sich die Handkonfiguration geändert: Achse 5 hat
nun ca. --45_, Status--Bit 2 ist folglich 1.
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.

ProgExpPHR4.1.7 12.03.06 de

75 von 214
Programmierung Experte

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

ProgExpPHR4.1.7 12.03.06 de

76 von 214
3.3 Bahnbewegungen (CP--Bewegungen = Continous Path)
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. Tab. 4 gibt einen Überblick über die zu programmierenden Systemva-
riablen und deren Einheit.

Variablen- Datentyp Einheit Funktion


name
Geschwindigkeiten $VEL.CP REAL m/s Bahngeschwindigkeit
$VEL.ORI1 REAL _/s Schwenkgeschwindigkeit
$VEL.ORI2 REAL _/s Drehgeschwindigkeit
Beschleunigungen $ACC.CP REAL m/s@ Bahnbeschleunigung
$ACC.ORI1 REAL _/s@ Schwenkbeschleunigung
$ACC.ORI2 REAL _/s@ Drehbeschleunigung

Tab. 4 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 phasensynchron ange-
paß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 und eine
Fehlermeldung ausgegeben. Diese Grenzen liegen standardmäßig bei 250% der nominalen
Achsbeschleunigung (Acceleration) und 110% der nominalen Achsgeschwindigkeit (Velo-
city). Diese Überwachungsbereiche gelten für alle Betriebsarten und das Handverfahren.
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 setzt man #VAR_T1 (in T1 werden niedrigere Achs-
geschwindigkeiten und --beschleunigungen verwendet) und in allen Betriebsarten
#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.

ProgExpPHR4.1.7 12.03.06 de

77 von 214
Programmierung Experte

3.3.2 Orientierungsführung
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 (s. Abb. 21):

G $ORI_TYPE = #CONSTANT Während der Bahnbewegung bleibt die Orientie-


rung konstant; für den Endpunkt wird die program-
mierte Orientierung ignoriert und die des Anfangs-
punktes benutzt.
G $ORI_TYPE = #VAR Während der Bahnbewegung ändert sich die Ori-
entierung kontinuierlich von der Anfangsorientie-
rung zur Endorientierung um.
Dieser Wert wird auch bei der Initialisierung mittels
BAS(#INITMOV,0) gesetzt.

Abb. 21 Orientierungsänderung bei einer Linearbewegung

ProgExpPHR4.1.7 12.03.06 de

78 von 214
Bei Kreisbewegungen kann zusätzlich zu konstanter und variabler Orientierung noch zwi-
schen raum-- und bahnbezogener Orientierung gewählt werden:

G $CIRC_TYPE = #BASE raumbezogene Orientierungsführung während der


Kreisbewegung. Dieser Wert wird auch bei der Initiali-
sierung mittels BAS(#INITMOV,0) gesetzt.
G $CIRC_TYPE = #PATH bahnbezogene Orientierungsführung während der
Kreisbewegung.
konstant + Bei der bahnbezogenen Orientierungsführung wird die Werkzeuglängsachse relativ zu Krei-
bahnbezog. sebene und Kreistangente geführt. Dieser Zusammenhang läßt sich mit Hilfe des sogenann-
ten bahnbegleitenden Dreibeines anschaulich erläutern (s. Abb. 22).

Abb. 22 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 in Abb. 22
mit dem bahnbegleitenden Dreibein auf dem Kreissegment nachgeführt. Bezogen auf das
bahnbegleitende Dreibein ergibt sich für die Werkzeugpositionen keine Orientierungsände-
rung. 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).

ProgExpPHR4.1.7 12.03.06 de

79 von 214
Programmierung Experte

variabel + Wünscht man eine bahnbezogene Orientierungsänderung zwischen Start-- und Zielposition
bahnbezog. ($ORI_TYPE=#VAR), so wird diese relativ zum bahnbegleitenden Dreibein durch überlager-
tes Drehen und Schwenken ausgeführt (s. Abb. 23). Die Orientierungsführung im bahnbeg-
leitenden Dreibein ist bei Kreisbewegungen also vollkommen analog zur Orientierungsfüh-
rung bei Linearbewegungen.

Abb. 23 Variable bahnbezogene Orientierungsführung bei Kreisbewegungen

ProgExpPHR4.1.7 12.03.06 de

80 von 214
konstant + Bei der raumbezogenen Orientierungsführung wird die Orientierung relativ zum aktuellen
raumbezog. 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
(s. Abb. 24) während einer Kreisbewegung (z.B. Kleberauftrag mit rotationsymmetrischer
Kleberdüse).

Abb. 24 Konstante raumbezogene Orientierungsführung bei Kreisbewegungen

ProgExpPHR4.1.7 12.03.06 de

81 von 214
Programmierung Experte

variabel + Eine raumbezogene Orientierungsänderung ($ORI_TYPE=#VAR) zwischen Start-- und Ziel-


raumbezog. position wird wieder durch Überlagerung von Schwenk-- und Drehbewegungen ausgeführt
(s. Abb. 25). In diesem Fall allerdings relativ zum Basiskoordinatensystem.

Abb. 25 Variable raumbezogene Orientierungsführung bei Kreisbewegungen

In Tab. 5 sind nochmals die Voreinstellungen der Systemvariablen zur Orientierungsführung


bei Bahnbewegungen aufgelistet:

im System durch BAS(#INITMOV,0)


$ORI_TYPE #VAR
$CIRC_TYPE #PATH #BASE

Tab. 5 Voreinstellungen von $ORI_TYPE und $CIRC_TYPE

ProgExpPHR4.1.7 12.03.06 de

82 von 214
3.3.3 Linearbewegungen

LIN Bei einer Linearbewegung berechnet die KR C1 eine Gerade von der aktuellen Position (im
Programm ist dies der letzte programmierte Punkt) zu der Position, die im Bewegungsbefehl
angegeben wurde.

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--Anwei-
sung bereits eine PTP--Bewegung mit vollständiger Koordinatenangabe pro-
grammiert 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 folgen-
den Beispielprogramm wieder mittels der Initialisierungsroutine BAS.SRC vorgenommen.

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

ProgExpPHR4.1.7 12.03.06 de

83 von 214
Programmierung Experte

3.3.4 Kreisbewegungen
CIRC 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 Berech-
nung der Bewegungsbahn durch die Steuerung werden vom Hilfspunkt nur die translato-
rischen Komponenten (X, Y, Z) ausgewertet. Die Orientierung der Werkzeugspitze än-
dert sich also je nach Orientierungsführung kontinuierlich vom Start-- zum Zielpunkt oder
CA bleibt konstant.

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 -- hil-
freich.
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 (s. Abb. 26):
CA > 0_ im programmierten Sinn (Startpunkt ® Hilfspunkt ® Zielpunkt)
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°

tatsächlicher Zielpunkt

´
Hilfspunkt Hilfspunkt
´
CA = 235° program-
´ programmierter
Zielpunkt ´ mierter
Zielpunkt

tatsächlicher
Zielpunkt
CA = --235°
Startpunkt Startpunkt

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

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.

ProgExpPHR4.1.7 12.03.06 de

84 von 214
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

ProgExpPHR4.1.7 12.03.06 de

85 von 214
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 ja 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.

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Überschleifbewegungen].

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”).
$ADVANCE Ü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. (s. Abb. 27).

Hauptlaufzeiger

Der Vorlaufzeiger befindet sich an dieser


Stelle; $ADVANCE = 1

Abb. 27 Hauptlauf-- und Vorlaufzeiger

ProgExpPHR4.1.7 12.03.06 de

86 von 214
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, daß die Anweisungen von Zeile 16 bis 22 parallel zur Bewegungsausführung
komplett abgearbeitet wurden, und die Bewegungsdaten für die PTP--Bewegungen in Zeile
24 gerade aufbereitet werden.

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


stellt sein (die Variable $ADVANCE besitzt standardmäßig den Wert “3”. Maximal sind 5
Vorlaufschritte möglich).
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.

Die Voreinstellungen von $ADVANCE:

im System durch BAS (#INITMOV, 0)


$ADVANCE 0 3

automat. Vor- Anweisungen und Daten, die die Peripherie beeinflussen (z.B. Ein--/Ausgabean-
laufstop
weisungen), oder sich auf den aktuellen Roboterzustand beziehen, lösen einen
Vorlaufstop aus (s. Tab. 6). Dies ist notwendig, um die korrekte, zeitliche Reihen-
folge der Anweisungen und der Roboterbewegungen sicherzustellen.

Anweisungen ANOUT ON ANOUT OFF


ANIN ON ANIN OFF
DIGIN ON DIGIN OFF
PULSE
HALT WAIT
CREAD CWRITE COPEN CCLOSE
SREAD SWRITE
CP-PTP--Kombination ohne Überschleifen
Anweisungen END (falls im Modul ein nicht globaler Interrupt definiert wurde)
in Verbindung
INTERRUPT DECL (falls der Interrupt bereits deklariert wurde)
mit einem Inter-
rupt RESUME ohne BRAKE
gebräuchliche $ANOUT[Nr] $ANIN[Nr]
Systemvaria
Systemvaria-
$DIGIN1 $DIGIN2 ¼ $DIGIN6
blen
$OUT[Nr] $IN[Nr]
$AXIS_ACT $AXIS_BACK $AXIS_FOR $AXIS_RET
$POS_ACT $POS_BACK $POS_FOR $POS_RET
$AXIS_INC $AXIS_INT $POS_ACT_MES $POS_INT
$TORQUE_AXIS $ASYNC_AXIS
$TECH[X].MODE, $TECH[X].CLASS bei gewissen Operationen
$LOAD, $LOAD_A1, $LOAD_A2, $LOAD_A3 (falls es sich um
einen absolutgenauen Roboter mit Lastwechsel handelt)

ProgExpPHR4.1.7 12.03.06 de

87 von 214
Programmierung Experte

weitere System- $ALARM_STOP $AXIS_ACTMOD $INHOME_POS $ON_PATH


variablen $EM_STOP $EXTSTARTTYP $REVO_NUM $SAFETY_SW
$ACT_TOOL $PAL_MODE $ACT_BASE $ACT_EX_AX
$OV_PRO $WORKSPACE $IBUS_OFF $IBUS_ON
$ASYNC_EX_AX
_DECOUPLE
importierte alle, bei Zugriff
Variablen
Sonstiges Findet zwischen überschliffenen Sätzen ein Filterwechsel statt, wird
ein Vorlaufstopp ausgelöst.

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

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 Sy-
stemvariable $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 Sekunden. Die
Anweisung WAIT löst dann einen automatischen Vorlaufstop aus, tut aber sonst nichts:

WAIT SEC 0

Weitere Informationen finden Sie im Kapitel [Programmablaufkontrolle] Abschnitt [War-


tezeiten].

ProgExpPHR4.1.7 12.03.06 de

88 von 214
3.5 Überschleifbewegungen
Zur Geschwindigkeitssteigerung können Punkte, die nicht genau angefahren werden müs-
sen, überschliffen werden. Der Roboter kürzt den Weg, wie in Abb. 28 gezeigt, ab.
Überschleif- Die Überschleifkontur wird automatisch von der Steuerung generiert. Der Programmierer hat
kontur nur einen 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, er-
scheint 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.

Weitere Informationen zur TRIGGER--Anweisung als Abhilfe finden Sie im Kapitel [Trig-
ger-- und Bahnbezogene Schaltaktionen].

Überschleifen

Zwischenpunkt

Zielpunkt

Startpunkt

Abb. 28 Überschleifen von Zwischenpunkten

ProgExpPHR4.1.7 12.03.06 de

89 von 214
Programmierung Experte

3.5.1 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.
Überschleif- Das Überschleifen wird begonnen, wenn die letzte (= führende) Achse einen bestimmten
beginn 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 Überschleifen er-
folgt genau dann, wenn die erste Achse einen Winkel von 45_ vom Überschleifpunkt verfah-
ren 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.
C_PTP 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. Das standardmäßig einge-
stellte höhere Fahrprofil gewährleistet weiterhin eine in Geschwindigkeit und Beschleuni-
gung optimierte Bewegungsausführung.

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Höheres Fahrprofil].

Aus folgendem Beispiel können Sie die Wirkung der Überschleifanweisung und der Varia-
blen $APO.CPTP ersehen. Die abgefahrene Bahn ist in Abb. 29 in der x--y--Ebene darge-
stellt. Insbesondere ist darin auch ersichtlich, daß bei PTP--Bewegungen der TCP nicht auf
einer Geraden zwischen den Zielpunkten verfahren wird.

ProgExpPHR4.1.7 12.03.06 de

90 von 214
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

ProgExpPHR4.1.7 12.03.06 de

91 von 214
Programmierung Experte

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. 29 Beispiel für PTP--PTP--Überschleifen

Da die Bahn einer PTP--Bewegung im allgemeinen weder eine Gerade ist, noch in einer
Raumebene liegt, kann man sie streng genommen eigentlich nicht wie in Abb. 29 darstel-
len. Trotz der Tatsache, daß der z--Wert aller Punkte des Beispiels gleich ist, liegt nicht je-
der Punkt der Bewegungsbahn in der Ebene z=715 mm. Die abgebildete Bahn ist also le-
diglich eine Projektion der wirklichen Bahn in die x--y--Ebene.

ProgExpPHR4.1.7 12.03.06 de

92 von 214
3.5.2 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, da diese Kon-
turform den Bahnverlauf der Einzelsätze bei bester Nutzung der Beschleunigungsreser-
ven im Überschleifbereich sehr gut approximiert.

Überschleif- Zur Festlegung des Überschleifbeginns stehen drei vordefinierte Variablen bereit (s. Tab. 7):
beginn
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. 7 Systemvariablen zur Festlegung des Überschleifbeginns

Distanzkrite- Der Variablen $APO.CDIS kann eine translatorische Distanz zugewiesen werden. Wird das
rium Überschleifen auf diese Variable getriggert, verläßt die Steuerung die Einzelsatzkontur frü-
hestens dann, wenn die Entfernung zum Zielpunkt den Wert in $APO.CDIS unterschreitet.
Orientierungs- Der Variablen $APO.CORI kann eine Orientierungsdistanz zugewiesen werden. Die Einzel-
kriterium satzkontur wird in diesem Fall frühestens dann verlassen, wenn der dominierende Orientie-
rungswinkel (Schwenken oder Drehen der Werkzeuglängsachse) die in $APO.CORI festge-
legte Winkeldistanz zum programmierten Überschleifpunkt unterschreitet.
Geschwindig- Der Variablen $APO.CVEL kann ein Prozentwert zugewiesen werden. Dieser Wert gibt an,
keitskriterium bei wieviel Prozent der programmierten Geschwindigkeit ($VEL) der Überschleifvorgang in
der Abbremsphase des Einzelsatzes frühestens begonnen wird. Dabei wird jene Kompo-
nente aus Translation, Schwenken und Drehen ausgewertet, die bei der Bewegung den pro-
grammierten 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.
Systemintern kann unter Umständen das Überschleifen verkürzt werden
(Satzmitte, Symmetriekriterium), jedoch nie vergrößert.
C_DIS Das Überschleifen wird durch Hinzufügen eines der Schlüsselworte C_DIS, C_ORI oder
C_ORI C_VEL zur LIN-- oder LIN_REL--Anweisung aktiviert.
C_VEL
Zur Verdeutlichung dient folgendes Beispiel in Zusammenhang mit Abb. 30:

ProgExpPHR4.1.7 12.03.06 de

93 von 214
Programmierung Experte

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

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. 30 Beispiel für LIN--LIN--Überschleifen

ProgExpPHR4.1.7 12.03.06 de

94 von 214
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. Die Geschwindigkeit wird dabei der-
art reduziert, 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.

ProgExpPHR4.1.7 12.03.06 de

95 von 214
Programmierung Experte

3.5.3 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 (s. 3.5.2).

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[LIN--LIN--Überschleifen].

Das CIRC--CIRC--Überschleifen soll wieder anhand eines Beispiels und der abgebildeten
Bewegungsbahn (s. Abb. 31) verdeutlicht werden:

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.CDIS=20
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

ProgExpPHR4.1.7 12.03.06 de

96 von 214
; 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

x=980
y=--238

150_

y=100 y=100 y=100

x=867
y=--192

Abb. 31 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 ineinander
übergehen und die gleichzeitig tangential in die Einzelsätze einmünden (s. Abb. 32).

ProgExpPHR4.1.7 12.03.06 de

97 von 214
Programmierung Experte

LIN--CIRC
Überschleif

Überschleif--Ende

Überschleif--Start

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

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


orientierung ist immer die Orientierung, welche im Überschleifpunkt erreicht
würde. Werden zwei Überschleifsätze mit bahnbezogener Orientierung abgefah-
ren, so verhält sich die Umorientierung im Überschleifbereich trotzdem raumbe-
zogen.

ProgExpPHR4.1.7 12.03.06 de

98 von 214
3.5.4 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 aber erst dann voll ausgeschöpft wer-
den, wenn ein kontinuierlicher Übergang zwischen achsspezifischen und kartesischen Sät-
zen 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

Überschleif Der Beginn des Überschleifens wird durch das PTP--Kriterium $APO.CPTP in gewohnter
PTP®Bahn Weise (s. 3.5.1) 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 gebo-
ten. Gleiches gilt für eine PTP--CP--Bewegung um auf diese Bahn zu gelangen.

P3
Programm:
CP--PTP
...
LIN P1
LIN P2 C_DIS
PTP P3 P1 P2
...
Hierbei entsteht das Problem, daß die Über-
schleifbewegung nicht voraussehbar ist.
Eine Kollision mit dem Tisch wäre denkbar.

Tisch

ProgExpPHR4.1.7 12.03.06 de

99 von 214
Programmierung Experte

Um dem oben entstandenen Problem entge- CP--CP--PTP P3


genzutreten, und einen Genauhalt zu ver-
meiden, muß eine weitere CP--Bewegung
(P2_HILF) eingefügt werden. P2_HILF

Programm: P1
...
LIN P1 P2
LIN P2 C_DIS
LIN P2_HILF C_DIS
PTP P3
... Tisch

Bahn ® PTP--Überschleifen
Überschleif Für den CP--Satz zählt das programmierte Überschleifkriterium, für den PTP--Satz wird auf
Bahn®PTP $APO.CPTP zurückgegriffen.
Eine Anweisungsfolge könnte also so aussehen:
CIRC HILF PUNKT1 C_VEL
PTP PUNKT2

Das CP--PTP--Überschleifen kann allerdings nur garantiert werden, wenn keine der Robo-
terachsen im Bahnsatz mehr als 180_ dreht und der Status S nicht wechselt, da diese Stel-
lungsänderungen 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 ge-
fahren 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 Einzelsatz vor dem CP--PTP--Überschleifen hinreichend kurz ist, um einen Wech-
sel von S oder T in allen Roboterachsen ausschließen zu können.

weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Bewegungsbefehle].

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


CIRC--PTP--Überschleif programmiert (s. Abb. 33):

ProgExpPHR4.1.7 12.03.06 de

100 von 214


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

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. 33 PTP--Bahnüberschleifen und Bahn--Bahnüberschleifen

ProgExpPHR4.1.7 12.03.06 de

101 von 214


Programmierung Experte

3.5.5 Verbessertes Überschleifen


Bei dem Überschleifen zwischen CP-- und PTP--Bewegungen (”gemischtes Überschleifen”)
bietet die KSS ein verbessertes Verhalten an, das normalerweise aktiviert ist. In vielen Fällen
ist so ein Taktzeitgewinn möglich, da der Achsweg im Überschleifbereich in kürzerer Zeit zu-
rückgelegt wird.
Die Ausnahmefälle, in denen die KSS die Überschleifdistanz verkleinert und die Geschwin-
digkeit im Überschleifbereich reduziert, treten mit dem verbesserten Überschleifen deutlich
seltener auf.

Änderungen in der Überschleifkontur sind bei allen Programmen zu erwarten, deren Be--
wegungssätze nicht mit dem verbesserten Verhalten programmiert wurden. Die entspre-
chenden Programme müssen daher überprüft und gegebenenfalls korrigiert werden.

Die Verbesserung des gemischten Überschleifs wird in der Datei “$OPTION.DAT” (Pfad
“C:\KRC\Steu\Mada\”) eingeschaltet (”TRUE”) bzw. ausgeschaltet (”FALSE”).
...
BOOL $IMPROVEDMIXEDBLENDING = TRUE
...

Bei einer Neuinstallation wird das verbesserte Überschleifen automatisch eingeschaltet.


Bei einem Update wird diese Option nur übernommen, falls diese schon gesetzt (”TRUE”)
war. Andernfalls wird sie auf “FALSE” gesetzt.

ProgExpPHR4.1.7 12.03.06 de

102 von 214


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 Abstand
zum Werkstück bei “TOOL1” 5cm und bei “TOOL2” 10cm.

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.

ProgExpPHR4.1.7 12.03.06 de

103 von 214


Programmierung Experte

3.6 Teachen von Punkten


Die Integration des Teach--In Verfahrens ist ein wesentliches Qualitätsmerkmal einer Robo-
terprogrammiersprache.
!--Zeichen 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 “Ändern”--
Softkeys über den “Touch Up”--Softkey in das Programm übernommen werden. Die aktuel-
len 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 Bewe-
gung verwendete Basiskoordinatensystem eingestellt ist.

Die KR C1 erlaubt noch eine weitere Variante des Teachens: Programmieren Sie eine Be-
wegungsanweisung 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 die entsprechende Fehlermeldung.

Weitere Informationen zum Thema “Datenlisten” finden Sie im Kapitel [Datenlisten].

Sofern Sie eine Bewegungsanweisung über die Inline--Formulare angelegt haben, können
Sie die über das Formular geteachten Punkte später auch in einer KRL--Bewegungsanwei-
sung 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--Formularen
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!!

ProgExpPHR4.1.7 12.03.06 de

104 von 214


3.7 Bewegungsparameter
Diese Funktion gestattet die Änderung des Überwachungsschlauches für die Kollisionsüber-
wachung. Damit kann die Sensibilität der Kollisionsüberwachung festgelegt werden.

Nach Aufruf dieses Befehls öffnet sich folgendes InLine--Formular:

Die in den Maschinendaten (“C:\Programme\KRC\MaDa\Steu\$custom.dat”) festgelegten


Werte werden als Defaultwerte verwendet. Alternativ kann der Anwender für verschiedene
Bewegungen und Abläufe unterschiedliche Sensibilitätsstufen festlegen.

Alternativ kann der Anwender selbst festlegen, um wieviel das Soll-- vom Istmoment abwei-
chen darf. Bei Überschreitung wird der Roboter angehalten.

Beispiel
Im InLine--Formular wurden für die Achsen A1...A6 jeweils 50% festgelegt. Weicht nun das
Istmoment um mehr als ¦50% des Maximalmoments vom berechneten Sollmoment ab,
wird der Roboter angehalten und eine entsprechende Meldung im Meldungsfenster ausge-
geben.

MMax

+50% von MMax


Überwachungsschlauch

Tatsächliches
(Ist--)Moment
--50% von MMax
Sollmoment
0

Die Überwachung bietet keine Garantie gegen Beschädigungen des Werkzeugs bei
einer Kollision, reduziert aber die auftretenden Schäden.

Näheres zur Kollisionsüberwachung finden Sie im Programmierhandbuch in der Doku-


mentation Konfiguration, Kapitel [System konfigurieren Experte].

ProgExpPHR4.1.7 12.03.06 de

105 von 214


Programmierung Experte

ProgExpPHR4.1.7 12.03.06 de

106 von 214


4 KRL--Assistent

4 KRL--Assistent

Die KUKA--Technogiepakete enthalten die wichtigsten Funktionen für übliche Roboteran-


wendungen. Spezielle Funktionen, die nicht in den KUKA--Technologiepaketen enthalten
sind, können vom Anwender über die direkte Programmierung des Robotersystems in
“KRL”, der “KUKA Robot Language” realisiert werden.
Um auch Anwendern, die diese Programmiersprache nicht oft benutzen, die effektive Pro-
grammierung spezieller Funktionen zu ermöglichen, wurde der “KRL--Assistent” integriert.
Der “KRL--Assistent” bietet seinem Benutzer syntaxunterstützte Programmierung. Nach der
Anwahl des gewünschten KRL--Befehls werden befehlsbegleitende Angaben in Masken vor-
gegeben. Die Inhalte dieser Masken werden übernommen oder geändert. Alle Inhalte kön-
nen auch zu einem späteren Zeitpunkt jederzeit geändert werden.

Bedienung

Zum Programmieren eines Bewegungsbefehls müssen Sie ein Programm anwählen oder
es in den Editor laden. Einzelheiten über die Erstellung und Änderung von Programmen
entnehmen Sie bitte dem Kapitel [Allgemeines zu KRL--Programmen], Abschnitt [Pro-
gramme erstellen und editieren].

Achten Sie bitte auf die Position des


Editier--Cursors. Die von Ihnen erstellte
Programmzeile wird als neue Zeile un-
terhalb des Cursors eingefügt.

Öffnen Sie über die Menütaste “Befehle” das Menü. Wählen Sie “KRL--Assistent” aus. Es
zeigt sich folgendes Bild:

Hier können Sie nun aus den angebotenen Bewegungsbefehlen auswählen.

ProgExpPHR4.1.7 12.03.06 de

107 von 214


Programmierung Experte

4.1 Positionsangaben

Der Platzhalter “!”

Das Zeichen “!” ist ein Platzhalter. Mit seiner Hilfe können Sie ein Bewegungsprogramm er-
stellen, ohne die genaue Lage der Punkte zu kennen, die später die Bahn des Roboters be-
stimmen.
Beim späteren Ablauf wird das Programm an dieser Stelle angehalten und Sie können den
Punkt wie nachfolgend beschrieben aufnehmen:

Wenn während des späteren Ablaufs des Programmes im Meldungsfenster die Mittei-
lung “Anweisung unzulässig” erscheint, löschen Sie diese Meldung mit dem Softkey
“Quitt”.

Verfahren Sie das Robotersystem an die gewünschte Position.

Drücken Sie dort dann den Softkey “Touch Up”. Beachten Sie die Mitteilung im Mel-
dungsfenster.
Die Übernahme der Position wird Ihnen im Meldungsfenster mitgeteilt.

Sie können diese Meldung durch Betätigen des Softkeys “Quitt” wieder löschen.

Positionsangabe durch Variablen

Anstelle des Platzhalters können Sie auch einen gültigen Variablennamen einsetzen. Eine
Liste der für KRL reservierten Schlüsselwörter, die Sie dabei nicht verwenden können, finden
Sie im [KRL Reference Guide].

Sie sollten das Robotersystem bereits vor der Programmierung dieser Funktion in die ge-
wünschte Position verfahren.

Informationen zur manuellen Bewegung des Roboters finden Sie im Bedienhandbuch


in der Dokumentation Bedienung, Kapitel [Handverfahren des Roboters].

Sollte der Name, den Sie angegeben haben, im System noch nicht bekannt sein, erscheint
in der Softkey--Leiste der Softkey “VAR”. Mit ihm werden Sie aufgefordert, dem Namen ein
Datenformat zuzuordnen.
Nach seiner Betätigung ändert sich die Softkey--Leiste:

ProgExpPHR4.1.7 12.03.06 de

108 von 214


4 KRL--Assistent (Fortsetzung)

Die Softkeyleiste steht nur zur Verfügung, wenn neben der “.SRC”--Datei auch eine Da-
tenliste “.DAT” existiert.

Nach Betätigung einer der Softkeys “E6POS”, “POS”, “FRAME”, “E6AXIS” oder “AXIS” wird
die aktuelle Position des Robotersystems im ausgewählten Datenformat übernommen. Dies
wird Ihnen durch eine Mitteilung im Meldungsfenster bestätigt.

Sie können diese Meldung dann durch Betätigen des Softkeys “Quitt” wieder löschen.

Positionsübernahme durch “Touch Up”

Bevor Sie in einem Programm durch “Touch Up” Positionen übernehmen können, müs-
sen der Steuerung Daten über die Lage des gültigen Roboterkoordinatensystems, so-
wie gültige Werkzeug/Werkstückdaten mitgeteilt werden.
Dazu muß die INI--Sequenz am Programmkopf durchlaufen werden.

Sie sollten das Robotersystem bereits vor der Programmierung der Funktion in die ge-
wünschte Position verfahren.

Drücken Sie den Softkey “Touch Up”, so wird die aktuelle Position des Robotersystems über-
nommen.

Die Übernahme der Position wird durch eine Mitteilung im Meldungsfenster bestätigt.

Sie können diese Meldung durch Betätigen des Softkeys “Quitt” wieder löschen.

Manuelle Positionsangabe

Zusätzlich zur Möglichkeit bereits angefahrene Positionen zu übernehmen, können Sie


Raumpunkte auch manuell angeben.

Drücken Sie dazu nach dem Erscheinen des Inline--Formulars den Softkey “{ ? }”. Die Bele-
gung der Softkey--Leiste ändert sich:

Nach Auswahl eines Datenformats durch Betätigen des entsprechenden Softkeys wird die
aktuelle Position in das Inline--Formular übernommen.

ProgExpPHR4.1.7 12.03.06 de

109 von 214


Programmierung Experte

Mit Hilfe der Editierfunktionen können Sie diese Positionsangaben nun Ihren Wünschen ent-
sprechend abändern.

Der geometrische Operator “:”

Mit dem geometrischen Operator “:” werden Positionsangaben der Typen POS und FRAME
verknüpft. Dies ist immer dann erforderlich, wenn z.B. der Ursprung eines Koordinatensy-
stems um einen Korrekturwert verschoben werden muß.

Weitere Informationen hierzu finden Sie im Kapitel [Variablen und Vereinbarungen] Ab-
schnitt [Datenmanipulation] unter “Geometrischer Operator”.

ProgExpPHR4.1.7 12.03.06 de

110 von 214


4 KRL--Assistent (Fortsetzung)

4.2 [PTP] Positionierung


Die Positionierung des Robotersystems erfolgt hier auf dem schnellsten Weg zwischen zwei
Punkten im Arbeitsraum. Da die Bewegung in allen Achsen gleichzeitig beginnt und endet,
ist eine Synchronisation der Achsen notwendig. Die Bahn des Roboters ist dabei nicht exakt
vorherzusehen.

Bei der Verwendung dieses Befehls läßt sich die genaue Bahn des Roboters nicht
exakt vorhersehen. In der Nähe von Hindernissen innerhalb des Arbeitsraumes be-
steht deshalb Kollisionsgefahr. Das Fahrverhalten des Roboters muß in der Nähe
der Hindernisse mit verminderter Geschwindigkeit getestet werden !

Platzhalter für
Positionsangabe
zurück

geom. Ausdrücke für Posi-


tionsangabe, kartesisch

geom. Ausdrücke für Positi-


onsangabe, achsbezogen

Platzhalter für
Positionsangabe

Wechsel zwischen PTP, LIN und CIRC

Wechsel zwischen PTP und PTP_REL

zurück
Überschleifen zwischen
zwei PTP--Bewegungen
Überschleifen zwischen PTP
und LIN oder CIRC--Anwei-
sungen. Kriterien: Entfernung
(DIS), Geschwindigkeit (VEL)
und Werkzeug/Werkstück--
Orientierung (ORI)
Momentane Position übernehmen

ProgExpPHR4.1.7 12.03.06 de

111 von 214


Programmierung Experte

Platzhalter für
Positionsangabe

zurück

geom. Ausdrücke für Posi-


tionsangabe, kartesisch

geom. Ausdrücke für Positi-


onsangabe, achsbezogen

Wechsel zwischen PTP_REL und PTP

zurück
Überschleifen zwischen
zwei PTP--Bewegungen

Überschleifen zwischen PTP


und LIN oder CIRC--Anwei-
sungen. Kriterien: Entfernung
(DIS), Geschwindigkeit (VEL)
und Werkzeug/Werkstück--
Orientierung (ORI)
Momentane Position übernehmen

ProgExpPHR4.1.7 12.03.06 de

112 von 214


4 KRL--Assistent (Fortsetzung)

4.3 [LIN] Geradlinige Bewegung


Die Positionierung des Robotersystems erfolgt hier auf dem kürzesten Weg zwischen zwei
Punkten im Arbeitsraum, einer Geraden. Die Achsen des Robotersystems werden dabei so
synchronisiert, daß die Bahngeschwindigkeit auf dieser Geraden immer gleich bleibt.

Platzhalter für
Positionsangabe
zurück

geom. Ausdrücke für Posi-


tionsangabe, kartesisch

Platzhalter für
Positionsangabe

Wechsel zwischen LIN, CIRC und PTP

Wechsel zwischen LIN und LIN_REL

zurück

Überschleifen zwischen PTP


und LIN oder CIRC--Anwei-
sungen. Kriterien: Entfernung
(DIS), Geschwindigkeit (VEL)
und Werkzeug/Werkstück--
Orientierung (ORI)

Momentane Position übernehmen

ProgExpPHR4.1.7 12.03.06 de

113 von 214


Programmierung Experte

Platzhalter für
Positionsangabe
zurück

geom. Ausdrücke für Posi-


tionsangabe, kartesisch

Wechsel zwischen
LIN_REL und LIN

zurück

Überschleifen zwischen PTP


und LIN oder CIRC--Anwei-
sungen. Kriterien: Entfernung
(DIS), Geschwindigkeit (VEL)
und Werkzeug/Werkstück--
Orientierung (ORI)

Momentane Position übernehmen

ProgExpPHR4.1.7 12.03.06 de

114 von 214


4 KRL--Assistent (Fortsetzung)

4.4 [CIRC] Kreisbahnbewegung


Die Positionierung des Robotersystems erfolgt hier entlang einer Kreisbahn im Arbeitsraum,
die durch Startpunkt, Hilfspunkt und Zielpunkt definiert wird. Die Achsen des Robotersy-
stems werden dabei so synchronisiert, daß die Bahngeschwindigkeit auf dieser Kreisbahn
immer gleich bleibt.

Platzhalter für
Positionsangabe
zurück

geom. Ausdrücke für Posi-


tionsangabe, kartesisch

Platzhalter für
Positionsangabe

Wechsel zwischen CIRC, PTP und LIN

Wechsel zwischen CIRC und CIRC_REL

Angabe des zu fahrenden Winkels;


Priorität höher als die des Zielpunktes

zurück
Überschleifen zwischen PTP
und LIN oder CIRC--Anwei-
sungen. Kriterien: Entfernung
(DIS), Geschwindigkeit (VEL)
und Werkzeug/Werkstück--
Orientierung (ORI)

Momentane Position übernehmen

ProgExpPHR4.1.7 12.03.06 de

115 von 214


Programmierung Experte

Platzhalter für
Positionsangabe
zurück

geom. Ausdrücke für Posi-


tionsangabe, kartesisch

Wechsel zwischen CIRC und CIRC_REL

Angabe des zu fahrenden Winkels;


Priorität höher als die des Zielpunktes

zurück
Überschleifen zwischen PTP
und LIN oder CIRC--Anwei-
sungen. Kriterien: Entfernung
(DIS), Geschwindigkeit (VEL)
und Werkzeug/Werkstück--
Orientierung (ORI)

Momentane Position übernehmen

ProgExpPHR4.1.7 12.03.06 de

116 von 214


5 Programmablaufkontrolle

5 Programmablaufkontrolle
5.1 Programmverzweigungen
5.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 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


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

Ein Beispiel zu “GOTO” finden Sie in diesem Kapitel im Abschnitt [Schleifen] unter
“Nicht abweisende Schleifen”

ProgExpPHR4.1.7 12.03.06 de

117 von 214


Programmierung Experte

5.1.2 Bedingte Verzweigung


IF 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. Ist die Ausführbedingung erfüllt, wird
der THEN--Block ausgeführt. Im anderen Fall kann der ELSE--Block ausgeführt oder auf den
ELSE--Block verzichtet werden. Ein Verzicht bedeutet das sofortige Verlassen der Verzwei-
gung.
Es sind beliebig viele Anweisungen zulässig. Die Anweisungen können insbesondere auch
weitere IF--Anweisungen sein. Eine Schachtelung von IF--Blöcken ist also möglich. Jede
IF--Anweisung muß jedoch mit einem eigenen ENDIF abgeschlossen werden.
In der folgenden Programmsequenz wird, sofern Eingang 10 auf FALSE ist, die HOME--Posi-
tion angefahren. Ist Eingang 10 gesetzt, dann wird, wenn der Wert von Variable A größer als
der von B ist, zunächst Ausgang 1 gesetzt und Punkt 1 angefahren. Unabhängig von A und
B wird auf jeden Fall bei gesetztem Eingang 10 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
¼

ProgExpPHR4.1.7 12.03.06 de

118 von 214


5 Programmablaufkontrolle (Fortsetzung)

5.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.
SWITCH Die SWITCH--Anweisung ist eine Auswahlanweisung für verschiedene Programmzweige.
Ein Auswahlkriterium wird vor der SWITCH--Anweisung mit einem bestimmten Wert belegt.
Blockkennung 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 KR C1 angelegt werden (s. Ab-
schnitt 6.3 zur SIGNAL--Anweisung). Dadurch steht sie als Auswahlkriterium in Form eines
Integer--Wertes zur Verfügung.

DEF MAIN()
¼
SIGNAL PROG_NR $IN[1] TO $IN[4]
;In die INT-Variable PROG_NR wird von der SPS
;jetzt die gewuenschte Programmnummer abgelegt
¼
SWITCH PROG_NR
CASE 1 ;wenn PROG_NR=1
TEIL_1()
CASE 2 ;wenn PROG_NR=2
TEIL_2()
TEIL_2A()
CASE 3,4,5 ;wenn PROG_NR=3, 4 oder 5
$OUT[3]=TRUE
TEIL_345()
DEFAULT ;wenn PROG_NR<>1,2,3,4,5
ERROR_UP()
ENDSWITCH
¼
END

In ähnlicher Weise ist das standardmäßig auf der Steuerung vorhandene CELL--Pro-
gramm (CELL.SRC) aufgebaut.

ProgExpPHR4.1.7 12.03.06 de

119 von 214


Programmierung Experte

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

5.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 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
Tab. 8 dargestellt.

ProgExpPHR4.1.7 12.03.06 de

120 von 214


5 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

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. 8 Ergebnis der Berechnung aus Beispiel 5.2

ProgExpPHR4.1.7 12.03.06 de

121 von 214


Programmierung Experte

5.2.2 Abweisende Schleife


WHILE 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 Ausfuehrbedingung
Anweisungen
ENDWHILE

Die Ausfuehrbedingung 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 aus Beispiel 5.3 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

ProgExpPHR4.1.7 12.03.06 de

122 von 214


5 Programmablaufkontrolle (Fortsetzung)

5.2.3 Nicht abweisende Schleife


REPEAT 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 Schlei--
fenanfang 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

ProgExpPHR4.1.7 12.03.06 de

123 von 214


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
¼

ProgExpPHR4.1.7 12.03.06 de

124 von 214


5 Programmablaufkontrolle (Fortsetzung)

5.2.4 Endlosschleife
LOOP 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.

Weitere Informationen zur Exit--Anweisung finden Sie im nächsten Abschnitt.

5.2.5 Vorzeitige Beendigung von Schleifendurchläufen


EXIT 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:

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

ProgExpPHR4.1.7 12.03.06 de

125 von 214


Programmierung Experte

5.3 Warteanweisungen
WAIT 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.

5.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.
Die Bedingung WAIT FOR kann auf die Variablen $IN[], $OUT[], $CYCFLAG[], $TIMER[],
$TIMER_FLAG[], $FLAG[] und I[] angewendet werden.

Der Compiler erkennt nicht, wenn der Ausdruck durch eine fehlerhafte Formulie-
rung nie den Wert TRUE annehmen kann. In diesem Fall wird der Programmablauf
endlos angehalten, weil der Interpreter auf eine unerfüllbare Bedingung wartet.

Numerische Werte
Jeder Variablen wird eine Nummer zugewiesen.

WAIT FOR ... Ausgabe Meldungsfenster Bedeutung


$IN[5] Warte auf Eingang 5 Wartet bis Eingang 5 TRUE ist
$OUT[5]==FALSE Warte auf nicht Ausgang 5 Wartet bis Ausgang 5 FALSE ist
$TIMER[5]>=300 Warte auf Timer 5 >= 300 Wartet bis Timer 5 mindestens
300ms erreicht hat
$TIMER_FLAG[5] Warte auf Timer_Flag 5 Wartet bis Timer_Flag 5 TRUE
ist
$FLAG[5]==FALSE Warte auf nicht Flag 5 Wartet bis Flag 5 FALSE ist
$CYCFLAG[5] Warte auf Merker 5 Wartet bis Merker 5 TRUE ist
I[5]==9 Warte auf Zähler 5 = = 9 Wartet bis Zähler 5 den Wert “9”
besitzt

ProgExpPHR4.1.7 12.03.06 de

126 von 214


5 Programmablaufkontrolle (Fortsetzung)

Variable Werte
Statt einer Nummer wird eine Variable übergeben. Hierfür ist eine Deklaration der Variablen
in der Datenliste (*.dat) erforderlich. Eine Vereinbarung in der Quelldatei (*.src) legt den Wert
der Variablen fest.

Datenliste: Quelldatei:

DEFDAT PROG1 DEF PROG1()


... ...
DECL INT INT_VAR INT_VAR=7
... ...
Im Beispiel wird der Variablen INT_VAR der Wert “7” zugewiesen.

WAIT FOR ... Ausgabe Meldungsfenster Bedeutung


$IN[INT_VAR] Warte auf Eingang 7 Wartet bis Eingang 7 TRUE ist
$OUT[INT_VAR] Warte auf nicht Ausgang 7 Wartet bis Ausgang 7 FALSE ist
=FALSE
$TIMER[INT_VAR] Warte auf Timer 7 >= 300 Wartet bis Timer 7 mindestens
>=300 300ms erreicht hat
$TIMER_FLAG Warte auf Timer_Flag 7 Wartet bis Timer_Flag 7 TRUE
[INT_VAR] ist
$FLAG[INT_VAR] Warte auf nicht Flag 7 Wartet bis Flag 7 FALSE ist
==FALSE
$CYC- Warte auf Merker 7 Wartet bis Merker 7 TRUE ist
FLAG[INT_VAR]
I[INT_VAR]==9 Warte auf Zähler 7 = = 9 Wartet bis Zähler 5 den Wert “9”
besitzt

Im Testbetrieb “T1” bzw. “T2” wird eine Hinweismeldung ausgegeben, wenn die zu überge-
bende, lokale Variable nicht in der Datenliste deklariert ist.

Eine Berechnung von Ausdrücken ist ebenfalls möglich. Im Beispiel wurde der Variablen X
der Wert “1”, Y der Wert “2” und Z der Wert “3” zugewiesen.

WAIT FOR ... Ausgabe Meldungsfenster Bedeutung


$IN[x+y+z] Warte auf Eingang 6 Wartet bis Eingang 6 den Wert
TRUE besitzt
$CYCLAG[Z--X] Warte auf nicht Merker 2 Wartet bis Merker 2 FALSE ist
==FALSE

Die Meldung “Prozeß aktiv” wird angezeigt, wenn eine der Variablen nicht in der Datenliste
deklariert ist.

ProgExpPHR4.1.7 12.03.06 de

127 von 214


Programmierung Experte

Langtexte
Ist einer Variablen ein Langtext zugeordnet, wird die numerische Indexangabe nicht ange-
zeigt.

Wartebedingung zugeordneter Langtext Ausgabe im Meldungsfenster


WAIT FOR ...
$IN[5] MeinEingang5 Warte auf MeinEingang5
$OUT[3] MeinAusgang3 Warte auf MeinAusgang3
$TIMER[8]>150 MeinTimer8 Warte auf MeinTimer8 > 150
$FLAG[16]==FALSE MeinFlag16 Warte auf nicht MeinFlag16
$CYCFLAG[4] MeinCycflag4 Warte auf MeinCycflag4
I[7]==9 MeinZaehler7 Warte auf MeinZaehler7 == 9

Signalvereinarungen
Bei einer Signalvereinbarung, die aus mehreren Ein-- bzw. Ausgängen besteht, wird nur der
Signalname ausgegeben. Im Beispiel sind die Signale “EIN_NAME $IN[7] TO $IN[17]” und
“AUS_NAME $OUT[7] TO $OUT[17]” definiert.

Wartebedingung Ausgabe Meldungsfenster Bedeutung


WAIT FOR ...
EIN_NAME Warte auf NAME_EIN Wartet bis alle Eingänge der Si-
gnalvereinbarung TRUE sind
AUS_NAME==FALSE Warte auf nicht NAME_AUS Wartet bis alle Ausgänge der Si-
gnalvereinbarung FALSE sind

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

ProgExpPHR4.1.7 12.03.06 de

128 von 214


5 Programmablaufkontrolle (Fortsetzung)

5.4 Anhalten des Programms


HALT 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 (s. Abschnitt 8 Interrupt).
Ausnahme: Bei Programmierung einer BRAKE -- Anweisung wird sofort gehalten.

ProgExpPHR4.1.7 12.03.06 de

129 von 214


Programmierung Experte

5.5 Quittieren von Meldungen


CONFIRM 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 Stopmel-
dungen
IF $STOPMESS AND $EXT THEN ;Stopmeldung und Betriebsart
prüfen
M=MBX_REC($STOPMB_ID,MLD) ;aktuellen Zustand in MLD einle-
sen
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

ProgExpPHR4.1.7 12.03.06 de

130 von 214


6 Ein--/Ausgabeanweisungen

6 Ein--/Ausgabeanweisungen
6.1 Allgemeines
Die KRC kennt 1026 Eingänge und 1024 Ausgänge. Im KUKA--Standardsteuerschrank ste-
hen 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.

Der Steuerungstyp “KR C2” wird standardmäßig ohne E/A’s ausgeliefert.

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


stemvariablen zur Ein--/Ausgabe einen Vorlaufstop aus.
Zugriffe auf Systemvariablen zur Ein--/Ausgabe lösen mit einer vorangestellten CONTINUE
Anweisung keinen Vorlaufstop aus.

Weitere Informationen finden Sie im Kapitel [Bewegungsprogrammierung] Abschnitt


[Rechnervorlauf].

ProgExpPHR4.1.7 12.03.06 de

131 von 214


Programmierung Experte

6.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 finden Sie im Kapitel [Programmablaufkontrolle], Kapitel [Inter-


ruptbehandlung], Kapitel [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.
SIGNAL In der KRC ist es weiterhin möglich, einzelnen Ein-- oder Ausgängen Namen zuzuweisen.
Hierzu dient die Signalvereinbarung. Sie muß wie alle Vereinbarungen im Vereinbarungsteil
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.

ProgExpPHR4.1.7 12.03.06 de

132 von 214


6 Ein--/Ausgabeanweisungen (Fortsetzung)

Wie Ein--/Ausgänge eingesetzt werden, erläutert Beispiel 6.1:

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 eingenommen 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)
(siehe Tab. 9).
Durch Setzen des Eingangs 16 wird die While--Schleife und somit das Programm beendet.

ProgExpPHR4.1.7 12.03.06 de

133 von 214


Programmierung Experte

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

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

ProgExpPHR4.1.7 12.03.06 de

134 von 214


6 Ein--/Ausgabeanweisungen (Fortsetzung)

6.3 Digitale Ein--/Ausgänge


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


henfolge angegeben werden.
G Es können höchstens 32 Ein-- bzw. Ausgänge zu einem Digitalsignal zusammengefaßt
werden.
G Ein Ausgang darf in mehreren Signalvereinbarungen vorkommen.
Wenn man die Ausgänge 13 bis 15 von Beispiel 6.1 damit zu einer Variablen POSITION
zusammenfaßt, ergibt sich folgendes modifizierte Programm:

ProgExpPHR4.1.7 12.03.06 de

135 von 214


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 in diesem Kapitel Abschnitt [Vordefinierte Digitalein-


gänge].

ProgExpPHR4.1.7 12.03.06 de

136 von 214


6 Ein--/Ausgabeanweisungen (Fortsetzung)

6.3.2 Ausgänge im Zielpunkt setzen


Sobald der Roboter den Zielpunkt eines Bewegungssatzes erreicht hat, können jeweils bis
zu 8 Ausgänge hauptlaufbezogen und ohne Vorlaufstop gesetzt werden. Hierzu dient fol-
gende Anweisung:

$OUT_C[Ausgang] = Bool’scher Ausdruck

Argument Datentyp Bedeutung


Ausgang INT Arithmetischer Ausdruck, der die Nummer des zu setzen-
den Ausgangs festlegt. Es stehen die Ausgänge 1 ... 1024
zur Verfügung
Bool’scher BOOL Logischer Ausdruck, der angibt, ob der entsprechende
Ausdruck Ausgang auf “TRUE” oder “FALSE” gesetzt wird

Normalerweise können die Ausgänge 1 ... 1024 verwendet werden. Wurde die Variable
“$SET_IO_SIZE” entsprechend gesetzt, stehen 2048 bzw. 4096 Ausgänge zur Verfügung.

Erreicht der Vorlaufzeiger die Anweisung, wird zunächst der Bool’sche Ausdruck interpre-
tiert. Der jeweilige Ausdruck wird hierbei in eine Konstante umgewandelt. Bei Erreichen des
Hauptlaufzeigers werden die interpretierten Ausgänge dann gesetzt.

Eine Zuweisung könnte beispielsweise so aussehen:


$OUT_C[TOOL[ex]+WELD[y]] = ((NOT(x==100)) AND (SAFE==TRUE))

Nach dem Interpretieren (Vorlaufzeiger) sieht die Anweisung intern z.B. folgenderma--
ßen aus:
$OUT_C[5] = TRUE

Damit wird bei Erreichen des Zielpunkts (Hauptlaufzeiger) der Ausgang 5 auf den
Wert ”TRUE” gesetzt.

Bei Erreichen des Hauptlaufzeigers wird der Ausgang auf den entsprechenden bool’schen
Wert gesetzt, welcher zum Zeitpunkt des Interpretierens gültig war, auch wenn sich dieser
Wert zwischenzeitlich geändert hat.

Eine “$OUT_C[x]”--Anweisung hat im Gegensatz zu “$OUT[x]” keine Auswirkung auf den


Rechnervorlauf.
$OUT_C[x] kann nur geschrieben werden, zum Lesen eines Ausgangs muß “$OUT[x]”
verwendet werden.

Eine Satzanwahl löscht alle interpretierten, aber bisher noch nicht gesetzten
“$OUT_C[x]”--Zuweisungen. Dies geschieht bei Satzanwahl und dem Zurücksetzen eines
Programms.

ProgExpPHR4.1.7 12.03.06 de

137 von 214


Programmierung Experte

Beispiel PTP, LIN und CIRC


Bei absoluten und relativen PTP--, LIN-- und CIRC--Befehlen wird der Ausgang unmittelbar
nach dem entsprechenden Bewegungsbefehl gesetzt:

PTP P1
$OUT_C[10]=TRUE
$OUT_C[11]=FALSE
$OUT_C[12]=TRUE
LIN P2

Erfolgt im Punkt “P1” ein Genauhalt, werden zu diesem Zeitpunkt die Ausgänge 10 ...
12 entsprechend ihren Definitionen gesetzt.
Wird der Punkt “P1” dagegen im Überschleif angefahren, werden die Ausgänge 10 ...
12 erst gesetzt, sobald das Zentrum des Überschleifbereichs erreicht worden ist. Ist ein
Überschleif nicht möglich, werden die Ausgänge im Punkt “P1” gesetzt.

In den Programmablaufarten “Single--Step” (MSTEP) und “I--Step” (ISTEP) erfolgt im


Punkt P1 zunächst ein Vorlaufstop, die Ausgänge werden an dieser Stelle nicht gesetzt.
Erst nach dem Loslassen und erneutem Drücken der Start--Taste werden die definierten
Ausgänge gesetzt.

Eine SAK--Fahrt führt ebenfalls zu einem Vorlaufstop. Erst nach dem erneuten Starten des
Programmes werden Ausgänge entsprechend ihrer Definition gesetzt.

Vergleich mit Trigger


Sowohl mit “$OUT_C[x]” als auch mit “Trigger” können Ausgänge hauptlaufbezogen und
ohne Vorlaufstop gesetzt werden.

$OUT_C[x]:
PTP P1 C_PTP
$OUT_C[5]=TRUE
PTP P2
Trigger:
TRIGGER WHEN DISTANCE=1 DELAY=0 DO $OUT[5]=TRUE
PTP P1 C_PTP
PTP P2
Im beiden Fällen wird der Ausgang 5 gesetzt, sobald das Zentrum des Überschleifbereichs
von “P1” erreicht wird.

Hauptlaufzeiger
Sind Vorlauf-- und Hauptlaufzeiger identisch, d.h. der Roboter führt aktuell keinen Bewe-
gungssatz aus, erfolgt die Zuweisung unmittelbar bei Erreichen der “$OUT_C[]”--Anwei-
sung.

PTP P1
WAIT FOR $IN[22]==TRUE
$OUT_C[12]=FALSE
PTP P2

Im Beispiel wird in der Zeile “WAIT...” ein Vorlaufstop ausgelöst, solange Eingang 22
“FALSE” ist. Sobald am Eingang 22 “TRUE” anliegt, wird Ausgang 12 entsprechend gesetzt.

ProgExpPHR4.1.7 12.03.06 de

138 von 214


6 Ein--/Ausgabeanweisungen (Fortsetzung)

Signal
Ein Ausgang kann auch mittels einer 1Bit--Signalvereinbarung gesetzt werden.

SIGNAL Test $OUT_C[7]

PTP P1
Test = TRUE
PTP P2

Im Beispiel wird Ausgang 7 auf “TRUE” gesetzt, sobald der Hauptlaufzeiger den Bewe-
gungssatz “P1” erreicht hat.

Unter den folgenden Bedingungen ist “$OUT_C[x]” nicht erlaubt:


G Innerhalb von Interrupt--Programmen bzw. Interrupt--Deklarationen
G In einem Submit--Programm
G Im Zusammenhang mit “$CYCFLAG[x]”
G Innerhalb eines Trigger--Befehls
G Im Zusammenhang mit der Variablenkorrektur

ProgExpPHR4.1.7 12.03.06 de

139 von 214


Programmierung Experte

6.4 Impulsausgänge
PULSE 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 in diesem Kapitel, Abschnitt [Binäre Ein--/Ausgänge].

Die realisierbaren Impulszeiten liegen zwischen 0.012 und 231 Sekunden. Das Raster be-
trägt 0.1 Sekunden. Die Steuerung rundet alle Werte auf ein Zehntel.

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


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 Bewegungsanwei-
sung programmiert wurde, und der Roboter SAK noch nicht erreicht hat.

ProgExpPHR4.1.7 12.03.06 de

140 von 214


6 Ein--/Ausgabeanweisungen (Fortsetzung)

Im nächsten 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 16
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.

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


[Rechnervorlauf] (CONTINUE) und Kapitel [Trigger -- Bahnbezogene Schaltaktionen]
(TRIGGER).

ProgExpPHR4.1.7 12.03.06 de

141 von 214


Programmierung Experte

6.5 Analoge Ein--/Ausgänge


Neben den binären Ein--/Ausgängen kennt die KRC auch analoge Ein--/Ausgänge. Über op-
tionale Bussysteme stellt die KRC 32 analoge Eingänge und 32 analoge Ausgänge zur Ver-
fü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.
ANIN Analoge Ein-- und Ausgänge können sowohl statisch als auch dynamisch, d.h. durch stän-
ANOUT 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.

6.5.1 Analoge Ausgänge


Die Ausgabewerte für die 32 analogen Ausgänge der KRC 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 werden,
z.B.:
SIGNAL DRAHT $ANOUT[2]
Mit
ANOUT OFF DRAHT
wird die zyklische Analogausgabe wieder beendet.
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 ANOUT ON Signalname = Faktor * Regelglied á± Offsetñ áDELAY=tñ
áMINIMUM=U1ñ áMAXIMUM=U2ñ

für das Starten der zyklischen Analogausgabe, bzw.


ANOUT OFF ANOUT OFF Signalname

ProgExpPHR4.1.7 12.03.06 de

142 von 214


6 Ein--/Ausgabeanweisungen (Fortsetzung)

für das Beenden. Die Bedeutung der einzelnen Argumente ist aus Tab. 10 ersichtlich.

Argument Datentyp Bedeutung


Signalname REAL Signalvariable, die den analogen Ausgang spezifiziert
(muß mit SIGNAL deklariert sein). Nicht zulässig ist eine di-
rekte 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 ne-
gativen Zeitangabe in Sekunden kann optional das zy-
klisch berechnete Ausgangssignal verzögert (+) oder vor-
zeitig (--) ausgegeben werden.
U1 REAL Das Schlüsselwort MINIMUM legt die Mindestspannung
fest, welche am Ausgang anliegt. Die zulässigen Werte lie-
gen zwischen --1.0 ... 1.0 (was --10V ... +10V entspricht).
Der Minimum--Wert muß kleiner als der Maximum--Wert
sein, falls beide Werte verwendet werden.
Als Wert ist auch eine Variable, eine Strukturkompo-
nente oder ein Array--Element zulässig.
U2 REAL Das Schlüsselwort MAXIMUM legt die Höchstspannung
fest, welche am Ausgang ausgegeben wird. Die zulässi-
gen Werte liegen zwischen --1.0 ... 1.0 (was --10V ... +10V
entspricht). Der Maximum--Wert muß größer als der Mini-
mum--Wert sein, falls beide Werte verwendet werden.
Als Wert ist auch eine Variable, eine Strukturkompo-
nente oder ein Array--Element zulässig.

Tab. 10 Argumente in der ANOUT--Anweisung

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.

ProgExpPHR4.1.7 12.03.06 de

143 von 214


Programmierung Experte

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. 34 Analogspannung in Abhängigkeit von der Bahngeschwindigkeit

ProgExpPHR4.1.7 12.03.06 de

144 von 214


6 Ein--/Ausgabeanweisungen (Fortsetzung)

6.5.2 Analoge Eingänge


Die 32 analogen Eingänge der KRC 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.
ANIN 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 zuzugrei-
fen, oder die gleiche Variable zu beschreiben.
Die vollständige Syntax zum zyklische Lesen eines Analogeinganges lautet:
ANIN ON ANIN ON Wert = Faktor * Signalname á± Offsetñ

Das Beenden der zyklischen Überwachung wird mit


ANIN OFF ANIN OFF Signalname

eingeleitet. Die Bedeutung der Argumente entnehmen Sie Tab. 11.

Argument Datentyp Bedeutung


Wert REAL Der Wert kann eine Variable oder ein (Ausgangs--)
Signalname 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. 11 Argumente in der ANIN--Anweisung

ProgExpPHR4.1.7 12.03.06 de

145 von 214


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, also z.B. 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

ProgExpPHR4.1.7 12.03.06 de

146 von 214


6 Ein--/Ausgabeanweisungen (Fortsetzung)

6.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: “/mada/
steu/$maschine.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 KRC 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ürfen
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
DIGIN oder aber zyklisch mit einer DIGIN--Anweisung:
INT ZAHL

DIGIN ON ZAHL = FAKTOR * $DIGIN2 + OFFSET

DIGIN OFF $DIGIN2
Zur gleichen Zeit sind 6 DIGIN ON -- Anweisungen zulässig. In der DIGIN ON -- Anweisung
kann auch auf analoge Eingangssignale zugegriffen werden (z.B.. als FAKTOR). Die Syntax
ist völlig analog zur ANIN ON--Anweisung:
DIGIN ON DIGIN ON Wert = Faktor * Signalname á± Offsetñ

DIGIN OFF DIGIN OFF Signalname

Die Bedeutung der einzelnen Argumente ist in Tab. 12 beschrieben.

ProgExpPHR4.1.7 12.03.06 de

147 von 214


Programmierung Experte

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.
Zulä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. 12 Argumente in der DIGIN--Anweisung

ProgExpPHR4.1.7 12.03.06 de

148 von 214


7 Unterprogramme und Funktionen

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

7.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 (s. Abb. 35).
Von einem Unterprogramm bzw. einer Funktion aus können weitere Unterprogramme und/
oder Funktionen aufgerufen werden. Die hierbei zulässige Schachtelungstiefe ist 20. Dar-
über hinaus erfolgt die Fehlermeldung “ÜBERLAUF PROGRAMMSCHACHTELUNG”. Der
rekursive Aufruf von Unterprogrammen oder Funktionen ist erlaubt. Das heißt, ein Unterpro-
gramm oder eine Funktion kann sich selbst wieder aufrufen.
DEF Alle Unterprogramme werden genau wie die Hauptprogramme mit der DEF--Vereinbarung
plus Namen deklariert und mit END abgeschlossen, z.B.:
DEF UNTERPR()
¼
END

PROG.SRC

DEF PROG() ;Hauptprogramm


¼
UNTERPR() ;Unterprogrammaufruf
¼
UNTERPR() ;Unterprogrammaufruf
¼
END ;Ende Hauptprogramm

DEF UNTERPR() ;Unterprogramm


¼
END ;Ende Unterprogramm

Abb. 35 Unterprogrammaufruf und Rücksprung

ProgExpPHR4.1.7 12.03.06 de

149 von 214


Programmierung Experte

Eine Funktion ist eine Art Unterprogramm, jedoch ist der Programmname gleichzeitig eine
Variable eines bestimmten Datentyps. Damit läßt sich das Ergebnis der Funktion durch ein-
fache Wertzuweisung an eine Variable übergeben. Bei der Vereinbarung von Funktionen mit
DEFFCT dem speziellen Schlüsselwort DEFFCT muß daher neben dem Namen der Funktion auch der
Datentyp der Funktion angegeben werden. Abgeschlossen wird eine Funktion mit ENDFCT.
Da eine Funktion einen Wert übergeben soll, muß dieser Wert vor der ENDFCT--Anweisung
mit der RETURN--Anweisung spezifiziert werden. Beispiel:
DEFFCT INT FUNKTION()
¼
RETURN(X)
ENDFCT
lokal Grundsätzlich unterscheidet man zwischen lokalen und globalen Unterprogrammen bzw.
Funktionen. Bei lokalen Unterprogrammen oder Funktionen befinden sich das Hauptpro-
gramm und die Unterprogramme/Funktionen in der selben SRC--Datei. Die Datei trägt den
Namen des Hauptprogrammes. Dabei steht das Hauptprogramm im Quelltext immer an er-
ster Stelle, während die Unterprogramme und Funktionen in beliebiger Reihenfolge und An-
zahl nach dem Hauptprogramm folgen.
global Lokale Unterprogramme/Funktionen können nur innerhalb des SRC--Files, indem sie pro-
grammiert wurden, aufgerufen werden. Sollen Unterprogramm--/Funktionsaufrufe auch von
anderen Programmen möglich sein, so müssen sie global sein, also in einem eigenen SRC--
File abgespeichert werden. Somit ist jedes Programm ein Unterprogramm, wenn es von ei-
nem anderen Programm (Hauptprogramm, Unterprogramm oder Funktion) aufgerufen wird.

G In lokalen Unterprogrammen bzw. Funktionen sind alle in der Datenliste des Haupt-
programms deklarierten Variablen bekannt. Variablen die im Hauptprogramm (SRC--
File) deklariert wurden sind sogenannte “Runtime Variablen” und dürfen nur im
Hauptprogramm verwendet werden. Ein Versuch diese Variablen im Unterprogramm
zu verwenden führt zu einer entsprechenden Fehlermeldung.
In globalen Unterprogrammen oder Funktionen sind die im Hauptprogramm dekla-
rierten Variablen nicht bekannt.
G Im Hauptprogramm sind die in globalen Unterprogrammen oder Funktionen dekla-
rierten Variablen nicht bekannt.
G Ein Hauptprogramm kann nicht auf lokale Unterprogramme oder Funktionen eines
anderen Hauptprogramms zugreifen.
G Der Name von lokalen Unterprogrammen/Funktionen kann maximal 24 Zeichen lang
sein. Bei globalen Unterprogrammen/Funktionen darf er höchstens 24 Zeichen lang
sein (wegen der Dateierweiterungen).
Damit das globale Unterprogramm dem Hauptprogramm bekannt ist, braucht dieses nur in-
nerhalb des Hauptprogramms aufgerufen werden (z.B: PROG_2()). Mit der Angabe der Pa-
rameterliste (s. 7.2) ist auch der benötigte Speicherplatz eindeutig festgelegt. Beispiele:
PROG_3()
FUNCTION(REAL:IN)
In Abb. 36 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.

ProgExpPHR4.1.7 12.03.06 de

150 von 214


7 Unterprogramme und Funktionen (Fortsetzung)

PROG.SRC PROG_1.SRC

DEF PROG() DEF PROG_1()


EXT PROG_1() ¼
EXT PROG_3() END
¼
A=A*LOCALFUN()
LOCAL()
¼ PROG_2FUN.SRC
PROG_3()
PROG_1()
¼ DEFFCT INT PROG_2FUN()
END INT A
EXT PROG_1()
PROG_1()
DEF LOCAL() PROG_1()
EXTFCT PROG_2FUN() ¼
PROG_2FUN() ENDFCT
G=PROG_2FUN()
H=5+LOCALFUN()
END PROG_3.SRC

DEFFCT INT LOCALFUN()


DEF PROG_3()
INT INTVAR
¼
RETURN INTVAR
END
ENDFCT

Abb. 36 Unterschied zwischen lokalen und globalen Unterprogrammen

ProgExpPHR4.1.7 12.03.06 de

151 von 214


Programmierung Experte

7.2 Aufruf und Parameterübergabe


Der Aufruf eines Unterprogrammes erfolgt einfach durch die Angabe des Unterprogramm--
Namens und runden Klammern. Er sieht somit aus wie eine Anweisung (s. Kap. 1.1), 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
Parameterli- Variablen nicht bekannt. Über eine Parameterliste können aber auch Werte an globale Unter-
ste programme und Funktionen übergeben werden.
Die Übergabe mit Parameterlisten ist oft auch in lokalen Unterprogrammen und Funktionen
sinnvoll, da so eine klare Trennung zwischen Hauptprogramm und Unterprogramm/Funktion
vorgenommen werden kann: Im Hauptprogramm (SRC--File) deklarierte Variablen werden
nur dort verwendet, alle Übergaben in Unterprogramme und Funktionen (lokal und global)
erfolgen mittels Parameterlisten. Durch diese strukturierte Programmierung reduzieren sich
Programmierfehler deutlich.
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.
In Abb. 37 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.

ProgExpPHR4.1.7 12.03.06 de

152 von 214


7 Unterprogramme und Funktionen (Fortsetzung)

X Call by value
15 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 DEFFCT INT QUADRAT(ZAHL:OUT)


INT ZAHL
ZAHL=ZAHL*ZAHL
RETURN(ZAHL)
ENDFCT

Þ X=225
Y= 225
E=1

Abb. 37 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)
Die Verwendung von IN und OUT soll mit folgendem Beispiel verdeutlicht werden. Das Unter-
programm und die Funktion seien global.

ProgExpPHR4.1.7 12.03.06 de

153 von 214


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 ist nun 2
;C ist nun 3

X = FUNKT1(H,D,E,F,G)
;D ist nun 3
;E ist nun 8
;F ist nun 3
;G ist nun 24
;H ist nun 5
;X ist nun 15
END
DEF RECHNE(X1:OUT,X2:IN,X3:IN) ;Globales UP
INT X1,X2,X3
X1=X1+10
X2=X2+10
X3=X3+10
END
DEFFCT REAL FUNKT1(X1:IN,X2:OUT,X3:OUT,X4:IN,X5:OUT);Globale Fkt.
REAL X1,X2,X3,X4,X5
X1 = X1*2
X2 = X2*3
X3 = X3*4
X4 = X4*5
X5 = X5*6
RETURN(X4)
ENDFCT

Bei der Übergabe eines Feldes muß das Feld im Unterprogramm oder der Funktion ebenfalls
neu deklariert werden, jedoch ohne Index. Dazu folgendes Beispiel, indem die Werte eines
Feldes X[] verdoppelt werden (die Funktion ist global):

ProgExpPHR4.1.7 12.03.06 de

154 von 214


7 Unterprogramme und Funktionen (Fortsetzung)

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

ProgExpPHR4.1.7 12.03.06 de

155 von 214


Programmierung Experte

ProgExpPHR4.1.7 12.03.06 de

156 von 214


8 Interrupt--Behandlung

8 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 (vorbereite-
tes Programm IR_STOPM.SRC).

ProgExpPHR4.1.7 12.03.06 de

157 von 214


Programmierung Experte

8.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.
INTERRUPT 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 Unterprogramm

Zur Bedeutung der Argumente siehe Tab. 13.

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 Werte 40...80 sind für eine
automatische Prioritätsvergabe durch das System reser-
viert.
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
Unterprogramm Name des Interruptprogramms, das bei Auftreten des
Ereignisses abgearbeitet werden soll.

Tab. 13 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 (s.
Abb. 38).
GLOBAL 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 (s.
Abb. 38).
GLOBAL INTERRUPT DECL 4 WHEN $IN[3]==TRUE DO UP1()

ProgExpPHR4.1.7 12.03.06 de

158 von 214


8 Interrupt--Behandlung (Fortsetzung)

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

Abb. 38 GültigkeitsbereicheinesInterruptsabhängigvomDeklarationsortund--art

ProgExpPHR4.1.7 12.03.06 de

159 von 214


Programmierung Experte

8.2 Aktivieren von Interrupts


Interrupt ein- Nach der Deklaration ist ein Interrupt zunächst ausgeschaltet. Mit der Anweisung
schalten 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.
flankengetrig- Die Überprüfung des Ereignisses erfolgt dabei flankengetriggert, das heißt, ein Interrupt wird
gert 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 aus- In gleicher Weise wie das Einschalten funktioniert auch das Ausschalten einzelner oder aller
schalten Interrupts:
INTERRUPT OFF 4
oder
INTERRUPT OFF
Sperren / Frei- Mit den Schlüsselworten ENABLE und DISABLE können eingeschaltete Interrupts einzeln
geben 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.
DISABLE 4
oder
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.

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ät 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 sogenannte implizite Sperre, auch für den aktuellen Interrupt,
wieder 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.

ProgExpPHR4.1.7 12.03.06 de

160 von 214


8 Interrupt--Behandlung (Fortsetzung)

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 Hauptprogramms deklariert sein. Bei globalen Interruptpro-
grammen 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.

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 einen Teil detek-
tiert (auf High geht), wird ein Interruptunterprogramm aufgerufen, indem die Position des
Teiles gespeichert wird und als Anzeige ein entsprechender Ausgang gesetzt wird. Die Ro-
boterbewegung wird dabei nicht unterbrochen. Danach werden die erkannten Teile noch-
mals angefahren.

ProgExpPHR4.1.7 12.03.06 de

161 von 214


Programmierung Experte

DEF INTERRUP ( )

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


EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME
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

Neben dem Basis--Paket (BAS.SRC) ist standardmäßig auch eine Datei IR_STOPM()
auf der Steuerung vorhanden. Dieses Unterprogramm führt im Fehlerfall einige grundle-
gende Anweisungen aus. Dazu gehört neben einigen technologiespezifischen Aktionen
auch das Rückpositionieren des Roboters auf die Bewegungsbahn. Während nämlich
der Roboter nach Drücken des NOT--AUS--Schalters auf der Bahn bleibt, wird bei
Schutzeinrichtungen, die direkt den Bediener betreffen (z.B. Schutztür), hardwareseitig
ein nicht bahntreuer Stop ausgelöst.
Sie sollten daher im Initialisierungsteil Ihrer Programme stets die folgende Sequenz
implementieren (befindet sich standardmäßig im Fold BAS INI):

INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )


INTERRUPT ON 3

ProgExpPHR4.1.7 12.03.06 de

162 von 214


8 Interrupt--Behandlung (Fortsetzung)

In der Datei IR_STOPM() wird mit der Anweisung PTP $POS_RET das Rückpositionieren
veranlaßt und somit wieder SAK hergestellt.
Weitere nützliche Systemvariablen für das Arbeiten mit Interrupts sind in Tab. 14 aufgeführt.
Die Positionen beziehen sich immer auf die im Hauptlauf aktuellen Koordinatensysteme.

achsspezi- kartesisch Beschreibung


fisch
$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. 14 Nützliche Systemvariablen bei der Interrupt--Behandlung


Die Positionen ¼_BACK und ¼_FOR sind bei Überschleifbewegungen davon abhängig wo
sich der Hauptlauf befindet. Siehe dazu Abb. 39 bis Abb. 40.

$POS_RET
$POS_INT
$AXIS_RET P2
$AXIS_INT

$POS_FOR
$AXIS_FOR
P1 P3
$POS_BACK $POS_ACT
$AXIS_BACK $AXIS_ACT

Abb. 39 Interrupt--Systemvariablen bei Genauhaltpunkten

P2

$POS_INT $POS_RET
$AXIS_INT $AXIS_RET

$POS_FOR
$AXIS_FOR

$POS_BACK $POS_ACT
$AXIS_BACK $AXIS_ACT

P1 P3

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

ProgExpPHR4.1.7 12.03.06 de

163 von 214


Programmierung Experte

8.3 Laufende Bewegungen anhalten


BRAKE 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 ein kürzeren Bremsweg. Der Roboter wird dabei mit der maxima-
len bahntreuen Verzögerung abgebremst.

Die BRAKE -- Anweisung darf nur in einem Interruptprogramm stehen. In anderen Program-
men 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 In-


terruptprogramm mit BRAKE oder BRAKE F angehaltene Bewegung
fortgesetzt!

ProgExpPHR4.1.7 12.03.06 de

164 von 214


8 Interrupt--Behandlung (Fortsetzung)

8.4 Abbrechen von Interrupt--Routinen


In Beispiel 8.1 werden während der Roboterbewegung durch 2 Initiatoren maximal 2 Gegen-
ständen detektiert und deren Positionen zum späteren Anfahren aufgezeichnet.
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.
RESUME Das Abbrechen einer Roboterbewegung ist in der KR C1 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 stehen,
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.

ProgExpPHR4.1.7 12.03.06 de

165 von 214


Programmierung Experte

DEF SEARCH ( )
;--------- Deklarationsteil ---------
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL AXIS HOME
;---------- 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]=$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

ProgExpPHR4.1.7 12.03.06 de

166 von 214


8 Interrupt--Behandlung (Fortsetzung)

Wenn die Gefahr besteht, daß ein Interrupt fälschlicherweise durch empfindliche Sen-
sorik zweimal ausgelöst wird (”Tastenprellen”), so können Sie dies durch Ausschalten
des Interrupts in der ersten Zeile des Interruptprogramms verhindern. Allerdings kann
dann auch ein tatsächlich auftretender Interrupt während der Interruptverarbeitung nicht
mehr erkannt werden. Vor dem Rücksprung muß der Interrupt -- wenn er weiter aktiv
sein soll -- wieder eingeschaltet werden.

Falls, wie in obigem Beispiel, eine Bewegung mit RESUME abgebrochen wird, sollte die
nachfolgende Bewegung keine CIRC--Bewegung sein, da der Anfangspunkt jedes mal
ein anderer ist (Þ unterschiedliche Kreise).

Bei der in Beispiel 8.2 programmierten Suchaktion werden die Eingänge im Interpolations-
takt (z.Z. 12ms) abgefragt. Dabei besteht eine maximale Ungenauigkeit von ca. 12ms mal
Bahngeschwindigkeit.
“Schnelles Soll diese Ungenauigkeit vermieden werden, so darf man den Initiator nicht an die Anwende-
Messen” 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 125ms).
Beim Einschalten des Interrupts darf der Meßimpuls nicht anliegen, sonst erscheint die ent-
sprechende Fehlermeldung.

ProgExpPHR4.1.7 12.03.06 de

167 von 214


Programmierung Experte

8.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] Abschnitt


[Systemvariablen und Systemdateien].

ProgExpPHR4.1.7 12.03.06 de

168 von 214


9 Trigger -- Bahnbezogene Schaltaktionen

9 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 KR C... sind diese bahnbezogenen Schaltaktionen mit der TRIGGER--Anweisung mög-
lich. Parallel zur nächsten Roboterbewegung kann mit TRIGGER in Abhängigkeit von einem
Wegkriterium ein Unterprogramm abgearbeitet werden, eine Wertzuweisung an eine Varia-
ble oder eine PULSE--Anweisung erfolgen oder ein Ausgang gesetzt werden.

9.1 Schaltaktion am Start-- oder Zielpunkt der Bahn


TRIGGER 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>
Die Argumente sind in folgender Tabelle näher beschrieben.

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
DISTANCE=1 die Mitte des nachfolgenden Überschleifbo-
gens.
Ist der Vorgängersatz bereits ein Überschleifsatz, so mar-
kiert DISTANCE=0 den Endpunkt 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.
Die Einheit ist Millisekunden.
Anweisung Die Anweisung kann
S ein Unterprogrammaufruf
S eine Wertzuweisung an eine Variable
S eine OUTPUT--Anweisung (auch Pulse) sein.
Priorität 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 8).
Die Werte 40¼80 sind für eine automatische Prioritäts-
vergabe durch das System reserviert. Programmieren Sie
dazu PRIO=--1.

Tab. 15 Argumente in der TRIGGER--Anweisung

ProgExpPHR4.1.7 12.03.06 de

169 von 214


Programmierung Experte

Mit der Anweisungsfolge



LIN PUNKT2

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

LIN PUNKT4

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

DISTANCE Schaltbereich DELAY


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

--
PUNKT3

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

ProgExpPHR4.1.7 12.03.06 de

170 von 214


9 Trigger -- Bahnbezogene Schaltaktionen (Fortsetzung)

0 PUNKT2 DISTANCE Schaltbereich DELAY


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

1a

-- 1
1b
PUNKT3 PUNKT4
+

Abb. 42 Schaltbereiche und mögliche Verzögerungswerte, wenn Startpunkt ein Genau-


haltpunkt und Zielpunkt ein Überschleifpunkt ist.

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

0
+

1a

-- 1
1b
PUNKT3 PUNKT4
+

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


Überschleifpunkte sind.

ProgExpPHR4.1.7 12.03.06 de

171 von 214


Programmierung Experte

DISTANCE Schaltbereich DELAY


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

0
+
--

1
PUNKT3

Abb. 44 Schaltbereiche und mögliche Verzögerungswerte, wenn Startpunkt ein Über-


schleifpunkt und Zielpunkt ein Genauhaltpunkt ist.

ProgExpPHR4.1.7 12.03.06 de

172 von 214


9 Trigger -- Bahnbezogene Schaltaktionen (Fortsetzung)

9.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=Priori-


tätñ

Die Argumente sind in folgender Tabelle näher beschrieben.

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 (--).
Der Schaltpunkt kann dabei aber immer nur im oben ge-
nannten Schaltbereich verschoben werden (soweit, daß er
bis zum nächsten Genauhaltpunkt reicht. Bei Überschleif-
bewegungen kann der Schaltpunkt höchstens bis zum
Überschleifbeginn des Startpunktes nach vorne versetzt
werden).
Die Einheit ist Millisekunden.
Anweisung Die Anweisung kann
S ein Unterprogrammaufruf
S eine Wertzuweisung an eine Variable
S eine OUTPUT--Anweisung (auch PULS) sein.
Priorität 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 (s. Abschnitt 8).
Die Werte 40¼80 sind für eine automatische Prioritätsver-
gabe durch das System reserviert. Programmieren Sie
dazu PRIO=--1.

Tab. 16 Argumente in der TRIGGER--Anweisung

ProgExpPHR4.1.7 12.03.06 de

173 von 214


Programmierung Experte

Anweisungsfolge:

LIN PUNKT2 C_DIS
TRIGGER WHEN PATH = Y DELAY= X DO $OUT[2]=TRUE
LIN PUNKT3 C_DIS
LIN PUNKT4 C_DIS
LIN PUNKT5

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 des Schaltpunkts vom Überschleifanfang PUNKT2 bis
zu PUNKT5 möglich. Wäre in dieser Anweisungsfolge PUNKT2 nicht überschliffen, so würde
der Schaltpunkt nur bis zum Genauhaltpunkt PUNKT2 verschoben werden können.

PUNKT2

--

DELAY X
-- PUNKT5
+
PATH Y<0
DELAY X
-- +
PUNKT3 PUNKT4
DELAY=0
PATH=0 PATH Y>0 +

Zahlenbeispiel:
X= --10, Y= --20

PUNKT2

Schaltpunkt
DELAY= -10

PUNKT5

PATH= -20

PUNKT4
PUNKT3

Abb. 45 Schaltbereiche wenn Startpunkt ein Überschleifpunkt ist

ProgExpPHR4.1.7 12.03.06 de

174 von 214


9 Trigger -- Bahnbezogene Schaltaktionen (Fortsetzung)

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 Genauhaltpunkt
ausgelöst werden:

LIN P1 C_DIS
TRIGGER WHEN PATH=-120 DELAY=0 DO UP1() 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 ausgefü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 UP1()
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 PATH-TRIGGER --Anweisung mit Wegangabe zu einer PTP --Bewegung pro-
grammiert, so wird dies vom Interpreter bei der Ausführung abgelehnt.
G PTP--Bahnüberschleifen
Wird eine PATH-TRIGGER --Anweisung, zu einer Bewegung programmiert, deren Start-
punkt ein PTP--Bahn--Überschleifpunkt ist, so kann -- da jetzt der ganze Überschleifbe-
reich noch PTP gefahren wird -- die Schaltaktion frühestens am Ende dieses Über-
schleifbereichs 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.

ProgExpPHR4.1.7 12.03.06 de

175 von 214


Programmierung Experte

Im nächsten Beispiel sind sowohl Schaltaktionen mit DISTANCE--Angabe als auch mit
PATH--Angabe programmiert. Die einzelnen Schaltpunkte und die Bewegungsbahn sind in
Abb. 48 dargestellt.

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
LIN POS0
TRIGGER WHEN DISTANCE=0 DELAY=40 DO $OUT[1]=TRUE
TRIGGER WHEN PATH=-30 DELAY=0 DO UP1(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 UP1 (7 ) PRIO= -1
LIN POS4
PTP HOME
END
DEF UP1 (NR :IN )

INT NR
IF $IN[1]==TRUE THEN
$OUT[NR]=TRUE
ENDIF
END

ProgExpPHR4.1.7 12.03.06 de

176 von 214


9 Trigger -- Bahnbezogene Schaltaktionen (Fortsetzung)

POS 1 2’B POS 2


$OUT[3]
30 2’
$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. 46 Schaltpunkte und Bewegungsbahn zum vorangegangenen Beispiel

ProgExpPHR4.1.7 12.03.06 de

177 von 214


Programmierung Experte

9.3 Tips & Tricks


9.3.1 Überschneidung von Trigger--Anweisungen
Das dargestellte Programm ist zwar lauffähig, jedoch kann sich durch die gleiche Priorität
der Trigger--Anweisungen ein Problem ergeben.

;FOLD PTP P1
TRIGGER WHEN DISTANCE=0 DELAY=0 DO SUB1() PRIO=15
PTP P1
...
;ENDFOLD
...
...
;FOLD PTP P2
TRIGGER WHEN DISTANCE=0 DELAY=--75 DO SUB1() PRIO=15
...
;ENDFOLD

Ist die erste Trigger--Anweisung noch nicht beendet, während der zweite Trigger--Befehl be-
reits schaltet, wird eine Laufzeit--Fehlermeldung ausgegeben. Dies kann beispielsweise ge-
schehen, wenn beide Punkte nahe beieinander liegen.

Als Abhilfe kommen zwei Möglichkeiten in Betracht:


G Beiden Trigger--Anweisungen manuell eine unterschiedliche Priorität zuweisen;
G Beiden Trigger--Anweisungen die Priorität “--1” zuweisen, damit das System automa-
tisch die richtige Priorität vergibt.

ProgExpPHR4.1.7 12.03.06 de

178 von 214


10 Datenlisten

10 Datenlisten
10.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-
DEFDAT 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 = 25 ENDDAT

Abb. 47 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 (s. Abb. 47).
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.

ProgExpPHR4.1.7 12.03.06 de

179 von 214


Programmierung Experte

10.2 Globale Datenlisten


In einer Datenliste definierte Variablen können einem “fremden” Hauptprogramm zugänglich
gemacht werden.
PUBLIC 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
IMPORT 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 (s. Abb. 48).

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. 48 Importieren von Variablen aus “fremden” Datenlisten mit Import

ProgExpPHR4.1.7 12.03.06 de

180 von 214


10 Datenlisten (Fortsetzung)

Global 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. 49 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 längere Zeit gültig sind und für viele Pro-
gramme von übergeordneter Bedeutung sind. Die Variablen in der $CONFIG.DAT müssen
nicht mit IMPORT vereinbart werden, da sie allen Anwenderprogrammen automatisch be-
kannt sind.

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

ProgExpPHR4.1.7 12.03.06 de

181 von 214


Programmierung Experte

ProgExpPHR4.1.7 12.03.06 de

182 von 214


11 Externer Editor

11 Externer Editor
Dieses Zusatzprogramm erweitert die Software des Roboters um Funktionen, die auf der
Bedienoberfläche nicht verfügbar sind.
Programm bereinigen
Nicht referenzierte Bahnpunkte und Bewegungsparameter werden aus der Datenliste
gelöscht.
Setzen und Verschieben von Endschaltern
Blockmanipulationen
-- Block markieren und kopieren, löschen oder ausschneiden.
-- Bahn des Roboters im markierten Bereich umkehren, d.h. der vormals zuerst pro-
grammierte Punkt des markierten Bahnabschnitts wird zuletzt angefahren -- der zu-
letzt programmierte Punkt jedoch zuerst.
-- Bahn des Roboters im markierten Bereich in der X--Z--Ebene des Welt--Koordinaten-
systems spiegeln.
-- Bewegungsparameter (Geschwindigkeit, Beschleunigung etc.) im markierten Be-
reich ändern.
-- Verschieben aller Punkte innerhalb des markierten Bahnabschnittes im Werk-
stück--(BASE)--, Werkzeug--(TOOL)-- oder Welt--(WORLD)--Koordinatensystem. Die
Verschiebung bzw. Verdrehung kann durch die manuelle Eingabe eines Offsets im je-
weiligen Koordinatensystem oder durch Teachen von Referenzpunkten erfolgen.
-- Achsspezifisches Verschieben aller Punkte im markierten Bereich.
Bahnpunkte anpassen
-- an ein anderes Werkzeug--, bzw.
-- an ein anderes Werkstück--Koordinatensystem
Bahnpunkte anpassen
-- während ein Programm auf der Steuerung läuft, können Punktkoordinaten im Tool--,
Base-- und World--Koordinatensystem verschoben werden.

ProgExpPHR4.1.7 12.03.06 de

183 von 214


Programmierung Experte

11.1 Starten des externen Editors

Der Externe Editor steht erst ab der Benutzergruppe “Experte” zur Verfügung.

Inbetriebn. Vermessen
Justieren DSE--RDW
Dejustieren Lastdatenermittlung
Software--Update Externer Editor Rufen Sie über das Menü “Inbetrieb-
Service Ext. Achsen konfig. nahme” und die dort angebotene Op-
Robotername Langtext tion “Service” den externen Editor auf.

Bearbeiten FOLD Bei angewähltem Programm steht


Kopieren das Menü “Inbetriebnahme” nicht zur
Einfügen Verfügung. Verwenden Sie in diesem
Auschneiden Fall den Menübefehl “Bearbeiten” -->
Löschen
Suchen “Korrigieren”, welcher ab der Benut-
Ersetzen zergruppe “Experte” angeboten wird..
Programm abwählen
Programm zurücksetzen
Korrigieren A10 Online
Punkt

Anschließend wird der externe Editor geöffnet, und die notwendigen Korrekturen können
vorgenommen werden.

Unmittelbar nach dem Start des Editors erscheint der Dialog “Dateien auswählen”.
Wählen Sie hier mit den Cursortasten “¯” und “­” die zu editierende Datei aus. Es
stehen alle SRC--Dateien aus dem R1--Verzeichnis zur Verfügung, außer
“R1\MADA\”, “R1\SYSTEM\”. Außerdem können Standarddateien definiert werden
(”C:\KRC\UTIL\HOTEDIT.INI”), die ebenfalls nicht angezeigt werden.

Wird der “Externe Editor” als Offline--Programm gestartet, erfolgt ein automatischer Start
der KRC--Software.

ProgExpPHR4.1.7 12.03.06 de

184 von 214


11 Externer Editor (Fortsetzung)

Haben Sie die gewünschte Datei auf diese Weise markiert, so wird sie nach
Druck auf den entsprechenden Softkey oder der Eingabe--Taste in den Editor
geladen. Die Dauer dieses Ladevorgangs hängt dabei von der Größe der Datei
ab.

Erscheint die Meldung “ *.DAT--Datei nicht gefunden”, so haben Sie versucht, ein Pro-
gramm in den Editor zu laden, zu dem keine Datenliste existiert.

Wurde die Datei erfolgreich geladen, wird Ihnen das Programm ähnlich wie im Editor der Be-
dienoberfläche angezeigt.

In der Statuszeile des Editors wird angezeigt, ob der Aufruf über das Inbetriebnahme--Menü
oder durch “Bearbeiten” --> “Korrigieren” erfolgte.

ProgExpPHR4.1.7 12.03.06 de

185 von 214


Programmierung Experte

11.2 Bedienung
Die Elemente der normalen Bedienoberfläche finden sich auch in der des externen Editors
wieder. So stehen auch hier Menükeys, Statuskeys, Softkeys, ein Programm-- sowie ein
Meldungsfenster und eine Statuszeile zur Verfügung.

Menüs können alternativ geöffnet werden, wenn zuerst die “ALT”--Taste gedrückt und an-
schließend der im Menükey unterstrichene Buchstabe betätigt wird. Der Auswahl eines
Menübefehls funktioniert analog hierzu.

Statuskeys
Mit den Statustasten “Auf”, bzw. “Ab” können Sie die farbige Zeilenmarkierung
(Fokus) zeilenweise in Richtung Listenanfang, bzw. --ende bewegen. Die Cur-
sor--Tasten “"” bzw. “#” sowie die Tasten “PGUP” bzw. “PGDN” erfüllen die
gleiche Funktion.

Fokus

Fokus

Mit den Tasten “PGUp” bzw. “PgDn” können Sie jeweils seitenweise vor-- bzw. zurückblät-
tern. Hierzu müssen Sie die Funktion “NUM” ausschalten oder eine externe Tastatur ver-
wenden.

Der Inhalt des Meldungsfensters wird gelöscht

Betätigen Sie die Statustaste “KRL”, so wird Ihnen das Programm wie im Expertenmo-
dus mit den Einstellungen “Alle FOLDs öffnen” und “Detailansicht (ASCII)” angezeigt.

Im Bereich “FOLD” wird Ihnen der mit dem Fokus markierte Befehl angezeigt (”SRC”--Datei).
Im Bereich “Daten” werden Ihnen die zum markierten Befehl gehörenden Daten angezeigt
(”DAT”--Datei).

ProgExpPHR4.1.7 12.03.06 de

186 von 214


11 Externer Editor (Fortsetzung)

Durch Drücken des Statuskeys “Lupe --” kehren Sie zur Darstellung des gesamten
Programmes zurück.

Softkeyleiste
Dieser Softkey entspricht dem Menübefehl “Datei schließen”, der das ak-
tuelle Programm schließt, den Editor aber weiterlaufen läßt.
Meldungsfenster
Im Meldungsfenster werden die für den Externen Editor relevanten Meldungen ausgegeben.
Nr. Zeit Meldung Ergebnis
003 7:51:36 Laden... OK
002 7:51:32 Datei Öffnen OK
001 7:51:32 ExtEdit Start OK

Nr.: Meldungsart und --nummer


Zeit: Der Zeitpunkt, zu der die Meldung abgesetzt wurde
Meldung: Die Art der Meldung
Ergebnis: Die Angabe, wie eine Aktion verlaufen ist
Statuszeile
Im der Statuszeile erfolgt die Ausgabe zusätzlicher Informationen.

NUM: Die Zifferneingabe des Nummernblocks ist aktiviert


CAPS: Die Feststelltaste ist ausgeschaltet
ExtEdit: Das Modul “Externer Editor” ist aktiv und wurde über das Menü “Inbetrieb
nahme” --> “Service” aufgerufen
Bahn: Der Name des im Moment geöffneten Programms
7:52 PM: Die aktuelle Systemzeit

ProgExpPHR4.1.7 12.03.06 de

187 von 214


Programmierung Experte

11.3 Menü “Datei”


Datei Öffnen
Speichern
Drucken Aktuelles Programm
Im diesem Menü stehen Ihnen Funktio-
Datei schließen Alle Anwender nen zum Umgang mit Dateien zur Ver-
Beenden fügung.

11.3.1 Öffnen

Bei Betätigung dieser Option


erscheint das Fenster “Da-
teien auswählen” wie bereits
im vorhergehenden Ab-
schnitt 11.2 beschrieben.

11.3.2 Speichern

Wurde der Inhalt der im Editor geladenen Datei mit


den angebotenen Funktionen verändert, so erfolgt vor
dem Speichern der neuen Version dieser Datei, bzw.
vor dem Beenden der Editorsitzung eine Rückfrage,
ob die Änderungen übernommen werden sollen.

Möchten Sie die ausgeführten Änderungen übernehmen, so genügt ein Druck auf die Einga-
betaste, um die Vorauswahl zu bestätigen.
Die Inhalte der bereits bestehenden Version der editierten Datei gehen dabei, zumindest
teilweise, unwiderruflich verloren.

Um die Aktion abzubrechen, müssen Sie zuerst eine der Cursor--Tasten drücken, um den
Fokus auf die Schaltfläche “Nein” zu bewegen. Danach kann diese Auswahl durch Druck auf
die Eingabetaste übernommen werden. Die bereits bestehende Version der editierten Datei
bleibt in diesem Fall unverändert bestehen.

11.3.3 Ausgabe
Datei Öffnen Dieser Befehl ermöglicht die Ausgabe
Speichern von Programmen auf dem unter “Op-
Ausgabe Aktuelles Programm
Datei schließen Alle Anwendungen
tionen” --> “Ausgabeeinstellung” ein-
Beenden gestellten Medium.

Folgende Funktionen stehen dabei zur Verfügung:


Aktuelles Programm
Die im Externen Editor angezeigte Datei wird so ausgegeben, wie sie auch im Editor-
fenster dargestellt wird.

ProgExpPHR4.1.7 12.03.06 de

188 von 214


11 Externer Editor (Fortsetzung)

KRC:\Palette.SRC

*************************************

INI
1:PTP HOME Vel=100 % DEFAULT

2:PTP P1 CONT Vel=100 % PDAT1 Tool[1] Base[0]


3:LIN P2 CONT Vel=1.5 m/s CPDAT1 Tool[1] Base[0]
4:CIRC P3 P4 Vel=2 m/s % CPDAT2 Tool[1] Base[0]

5:PTP HOME Vel=100 % DEFAULT


END
Alle Anwendungen
Alle Anwendungsprogramme werden ausgegeben.

Wurde noch kein Ausgabepfad mittels “Set Verzeichnis” festgelegt, werden Ausgaben der
Medientypen “Drucker” und “Datei” standardmäßig im Verzeichnis “C:\USERPROG” ab-
gelegt.

Die Option “Drucken” steht nicht zur Verfügung, wenn als Ausgabemedium “Editor” einge-
stellt ist.
Die Ausgabe über die Option “alle Anwender” kann in Abhängigkeit der auszugebenden
Dateien einige Zeit in Anspruch nehmen!

11.3.4 Datei schließen


Wurde die im Editor befindliche Datei seit dem Laden verändert, können Sie zunächst die
Änderungen (wie in Abschnitt 11.3.2 beschrieben) sichern.
Nachdem die im Editor befindliche Datei geschlossen wurde, kann über den Menüpunkt “Da-
tei” und die darin angebotene Option “Öffnen” (siehe auch Abschnitt 11.3.1) eine andere Da-
tei in den Editor geladen werden.

11.3.5 Beenden
Wurde die im Editor befindliche Datei seit dem Laden verändert, können Sie zunächst die
Änderungen (wie in Abschnitt 11.3.2 beschrieben) sichern.
Das Fenster des Editors wird geschlossen und die Bedienoberfläche der Robotersoftware
erscheint wieder.

ProgExpPHR4.1.7 12.03.06 de

189 von 214


Programmierung Experte

11.4 Menü “Bearbeiten”


Bearb. Ausschneiden Dieses Menü beinhaltet eine Reihe von Blockfunktionen.
Kopieren
Einfügen als ursprüngliche Bahn
Löschen Rückwärtsbahn
Alles markieren

Wenn Sie einen Bereich markieren wollen, halten Sie die “SHIFT”--Taste ge-
drückt und betätigen eine der beiden Statustasten “Auf” bzw. “Ab” oder die
entsprechende Cursor--Taste.

Markierter Bereich
(Blockmarkierung)

Die Markierung eines Blocks kann mit der “ESC”--Taste wieder ausgeschal-
ESC
tet werden.

11.4.1 Ausschneiden (”CTRL”--”X”)


Löscht den markierten Bahnabschnitt aus dem Programm und hält ihn in der Zwischenab-
lage zum Einfügen bereit.

11.4.2 Kopieren (”CTRL”--”C”)


Kopiert den markierten Bahnabschnitt in die Zwischenablage und hält ihn dort zum Einfügen
bereit.

11.4.3 Einfügen als ...


...ursprüngliche Bahn (”CTRL”+”V”)
Fügt den Inhalt der Zwischenablage in gleicher Reihenfolge wie ausgeschnitten, bzw. kopiert
wieder ein.
...Rückwärtsbahn
Fügt den Inhalt der Zwischenablage in umgekehrter Reihenfolge wieder ein.
Der letzte Bahnpunkt des markierten und ausgeschnittenen, bzw. kopierten Bahnabschnitts
wird an den Anfang des eingefügten Blockes gesetzt; der erste Bahnpunkt an das Ende.
Wurde beispielsweise der Weg zu einer Vorrichtung geteacht, kann diese Bahn durch einfa-
ches Einfügen als Rückwärtsbahn eingefügt werden. Auf diese Weise muß der Rückweg
nicht zusätzlich geteacht werden.

11.4.4 Löschen
Der markierte Bahnabschnitt wird ohne Speicherung in der Zwischenablage gelöscht.

Das Löschen eines markierten Bahnabschnittes kann nicht rückgängig gemacht werden.
Haben Sie versehentlich Teile des Programms gelöscht, so schließen Sie bitte die Datei,
ohne die Änderungen zu speichern und öffnen sie anschließend erneut.

11.4.5 Alles markieren (”CTRL”--”A”)


Das gesamte, in den Editor geladene Programm wird markiert.

ProgExpPHR4.1.7 12.03.06 de

190 von 214


11 Externer Editor (Fortsetzung)

11.5 Menü “Extras”


Extras Achsspiegeln In diesem Menü sind Optionen zur geometri-
Manuelles Verschieben Base schen Manipulation des Programmes unter-
Blockweises Ändern TCP
Datenliste reinigen World
gebracht.
TCP--Anpassung Achsen
Base--Anpassung

Mit den Cursortasten “­” oder “¯” bewegen Sie die Einfügemarke von Einga-
befeld zu Eingabefeld.

Mit diesem Softkey übernehmen Sie die eingegebenen Werte.


Dieser Softkey beendet die Eingabe ohne Übernahme der Werte.

11.5.1 Achsspiegeln
+Z

Mit Hilfe dieser Funktion


können Sie die Lage der
programmierten Bahn-
punkte in der X--Z--Ebene
des $ROBROOT--Koordi-
natensystems spiegeln.
Voraussetzung ist, daß min-
P1’ destens ein Bewegungssatz
markiert ist.

P1

P2’
P2

ROBROOT P3’

--Y
P3
+X
Nach Auswahl der Option wird ein
Dialogfenster eingeblendet, in dem
Sie den Namen der Datei angeben
müssen, in der das geladene Pro-
gramm mit gespiegelten Bahnpunk-
ten gespeichert wird.

Durch Druck auf die Eingabetaste wird der Vorgang gestartet und das Programm
unter dem angegebenen Namen gesichert. Dieses Programm können Sie an-
schließend in den Editor laden.

ProgExpPHR4.1.7 12.03.06 de

191 von 214


Programmierung Experte

Wollen Sie die Aktion abbrechen, so drücken Sie bitte die Taste “ESC”.
ESC

11.5.2 Manuelles Verschieben

Mit Hilfe dieser Funktion können Sie die Lage der markierten Bahnpunkte im:

-- Werkstück--Koordinatensystem (BASE)

-- Werkzeug--Koordinatensystem (TCP)
-- Welt--Koordinatensystem (WORLD) oder
-- Achsspezifisch (Achsen)

verschieben.
Nach Auswahl einer der möglichen Optionen wird ein Fenster zur Eingabe der gewünschten
Werte eingeblendet. In Abhängigkeit des Koordinatensystems geben Sie entweder die Ver-
schiebung und Verdrehung oder die Achswinkel ein.
BASE
Unter einer Punktverschiebung kartesisch Base versteht man, daß ein beliebiger Punkt im
Raum im Ursprungs--Koordinatensystem (WORLD), das sich im Roboterfuß befindet, relativ
verschoben wird. Anhand des hier dargestellten Beispiels soll die Punktverschiebung karte-
sisch BASE verdeutlicht werden:

Eingabewerte= relativ Werte


--Y [mm]; --X [mm]; A+[°]

Z+

In diesem Beispiel würde eine


negative Relativverschiebung in
X,Y und eine positive Relativver--
drehung um Z stattfinden.

A+
Pneu
Y+
X+
Palt --Xr Xalt
Yalt --Yr

Die Eingabe des Verschiebungsvektors erfolgt numerisch im entsprechen-


den Eingabefeld. Die Eingabefelder können mit Cursor--Tasten “¯ “ und “­
ESC “ gewechselt werden. Die Verschiebung wird mit “Befehl OK” gestartet und
mit “Abbruch” oder “Esc” jederzeit abgebrochen.

ProgExpPHR4.1.7 12.03.06 de

192 von 214


11 Externer Editor (Fortsetzung)

Geben Sie die Werte für Ver-


schiebung (X, Y, Z) in [mm] und
Verdrehung (A, B, C) in [Grad] in
die Eingabefelder ein.

TCP
Eine Punktverschiebung kartesisch TCP heißt, das ein beliebiger Punkt im Raum in Bezug
auf das TOOL--Koordinatensystem relativ verschoben wird. Anhand des hier dargestellten
Beispiels soll die Punktverschiebung kartesisch TCP erläutert werden:

Pneu
Zalt
--Zr
--Yr Y+
C°r

Palt X+
Yalt

Z+ Eingabewerte= relativ Werte


--Y [mm]; --Z [mm]; C+[°]
In diesem Beispiel würde eine
negative Relativverschiebung in
Y,Z und eine positive Relativver--
drehung um X [°] stattfinden.
Eine relative Verschiebung in X wird
außer Acht gelassen!

Die Eingabe des Verschiebungsvektors erfolgt numerisch im entsprechenden Eingabefeld.


Die Eingabefelder können mit Cursor--UP/Down gewechselt werden. Die Verschiebung wird
mit “Befehl OK” gestartet und mit”Abbruch” oder “Esc” jederzeit abgebrochen.

Geben Sie die Werte für Ver-


schiebung (X, Y, Z) in [mm] und
Verdrehung (A, B, C) in [Grad] in
die Eingabefelder ein.

ProgExpPHR4.1.7 12.03.06 de

193 von 214


Programmierung Experte

WORLD
Unter einer Punktverschiebung WORLD versteht man, daß das Ursprungs--Koordinatensy-
stem, welches sich standardmäßig im Roboterfuß befindet, relativ verschoben wird. Anhand
des hier dargestellten Beispiels soll die Punktverschiebung WORLD verdeutlicht werden:

Eingabewerte= relativ Werte


+Y [mm]; +X [mm]; A--[°]

Z+

In diesem Beispiel würde eine


positive Relativverschiebung in
X,Y und eine negative Relativver-- Porg
drehung um Z stattfinden.

Z+neu
Y+

Pneu +Xr
X+
X+neu
+Yr A--

Y+neu

Geben Sie die Werte für Ver-


schiebung (X, Y, Z) in [mm] und
Verdrehung (A, B, C) in [Grad] in
die Eingabefelder ein

ProgExpPHR4.1.7 12.03.06 de

194 von 214


11 Externer Editor (Fortsetzung)

Achsen
Unter einer achsspezifischen Punktverschiebung versteht man, das ein beliebiger Punkt im
Raum durch eine Relativbewegung der Achsen erreicht wird. Anhand des hier dargestellten
Bildes soll eine relative Verschiebung der Achse 5 vorgenommen werden.

Palt

a A5a A5 alt
neu

Pneu

Eingabewerte= relativ
In diesem Beispiel würde eine Werte
positive Relativverdrehung der +A5 [°]
A5 [°] stattfinden.
Eine relative Verdrehung der anderen
Achsen wird außer Acht gelassen!
Die Eingabe der Achsverdrehung erfolgt in Grad oder in Inkrementen für die jeweilige Achse.
Die Eingabefelder können mit Cursor--UP/Down gewechselt werden. Die Verschiebung wird
mit “Befehl OK” gestartet und mit”Abbruch” oder “Esc” jederzeit abgebrochen.

Geben Sie die Werte für die


Achswinkel (A1 ... A6) in [Grad]
ein.

Die Angaben können auch inkremental (E1--E6)[Inc] gemacht werden.

Inkremente = Drehimpulse von den Achsantrieben

ProgExpPHR4.1.7 12.03.06 de

195 von 214


Programmierung Experte

11.5.3 Blockweises Ändern


Mit Hilfe dieser Funktion können in markierten Programmteilen Bewegungsdaten geändert
werden. Das Markieren von Blöcken erfolgt durch Betätigung einer der beiden Statustasten
“Auf”, bzw. “Ab” bei gedrückt--gehaltener “SHIFT”--Taste.
Nach dem Aufruf der Funktion erscheint das unten abgebildete Fenster:

Mit den Cursortasten “®” oder “¬” bewegen Sie die Einfügemarke von Eingabefeld zu Ein-
gabefeld.

Listenfelder werden mit der Tastenkombination “ALT”+”¯”, bzw. “ALT”+”­” geöffnet.

Ändern Haben Sie die gewünschten Änderungen eingegeben, so drücken Sie bitte
den Softkey “Ändern”.

Abbrechen Sie können die Funktion jederzeit durch Betätigen des Softkey “Abbrechen”
verlassen.

11.5.4 Datenliste reinigen


Nach dem Aufruf dieser Funktion werden nicht referenzierte Bahnpunkte und Bewegungs-
parameter aus der zum Programm gehörenden Datenliste ( *.DAT ) gelöscht.

ProgExpPHR4.1.7 12.03.06 de

196 von 214


11 Externer Editor (Fortsetzung)

11.5.5 TCP--, bzw. BASE--Anpassung


Mit Hilfe dieser Funktion können Sie das im Editor geladene Programm an ein anderes Werk-
zeug--( TOOL )--, bzw. Werkstück--( BASE )--Koordinatensystem anpassen.
Nach dem Aufruf der Funktion erscheint das unten abgebildete Fenster. Als Beispiel wurde
hier die TCP--Anpassung gewählt.

Es werden alle Programme mit zugehörigen Punkten angezeigt, die von der Tool-- bzw. Ba-
seanpassung betroffen sind.
Um die Einfügemarke von Feld zu Feld bewegen zu können, müssen die Cursor--Steuer-
funktionen des Nummernfeldes aktiviert sein. Betätigen Sie dazu kurz die “NUM”--Taste. An-
schließend können Sie mit der “SHIFT”--Taste die Einfügemarke von Feld zu Feld bewegen.

Listenfelder werden mit der Tastenkombination “ALT”+”¯”, bzw. “ALT”+”­” geöffnet.

Wählen Sie aus dem Listenfeld im Bereich “Neue TCP Daten” das Werkzeug aus, an wel-
ches das geladene Programm angepaßt werden soll. In den Eingabefeldern “X=”, “Y=”, “Z=”,
“A=”, “B=” und “C=” können die neuen Werkzeugdaten auch manuell eingegeben werden.
Haben Sie die gewünschten Änderungen eingegeben, so drücken Sie bitte den Softkey “Än-
dern”. Sie können die Funktion jederzeit durch Betätigen des Softkey “Ende” verlassen.

ProgExpPHR4.1.7 12.03.06 de

197 von 214


Programmierung Experte

11.6 Menü “HotEdit”


HotEdit Base Das Menü “HotEdit” ermöglicht es Punkt-
TCP koordinaten im Tool--, Base--, und World-
World
TTS Toleranzen -- Base/World koordinatensystem während des Pro-
Toleranzen Toleranzen -- TTS grammlaufs online zu verschieben. Der
Menüpunkt “Toleranzen” gestattet eine
Eingrenzung der Verschiebung.
Die Online--Punktkorrektur wird nur dann berücksichtigt, wenn der Vorlauf-- bzw. Hauptlauf-
zeiger zu diesem Zeitpunkt den Befehlssatz noch nicht erreicht haben.
Die Maximalwerte zur Verschiebung werden über das Menü “Grenze” festgelegt.

Der Menübefehl “HotEdit” --> “TCP” steht nur zur Verfügung, wenn der Editor über das In-
betriebnahme--Menü gestartet wurde.

11.6.1 Base, TCP und World


Markieren Sie den zu verschiebenden Bewegungssatz bzw. mehrere zu verschiebende Be-
wegungssätze. Nach Auswahl einer der Optionen Base, TCP oder World erscheint am unt-
eren Rand des Displays ein Dialogfenster, in dem die Verschiebung (X, Y, Z) und Verdrehung
(A, B, C) bezüglich des jeweiligen Koordinatensystems eingegeben werden kann.

Sind mehrere Bewegungssätze markiert, werden diese im WORLD-- bzw. BASE--Koordi-


natensystem korrigiert.

Das hier abgebildete Dialogfen-


ster steht beispielhaft für die an-
deren Dialogfenster.

Mit den Cursortasten “­” oder “¯” bewegen Sie die Einfügemarke von Eingabefeld zu Einga-
befeld.
Haben Sie alle für die Verschiebung erforderlichen Angaben getätigt, so
drücken Sie bitte den Softkey “Ok”.
Wenn Sie die Aktion beenden wollen, ohne eine Programmverschiebung
durchzuführen, drücken Sie den Softkey “Abbrechen”.
Daraufhin wird das Dialogfenster deaktiviert und zwei zusätzliche Softkeys eingeblendet.

ProgExpPHR4.1.7 12.03.06 de

198 von 214


11 Externer Editor (Fortsetzung)

Mit dem Softkey “Abbrechen” können Sie die Eingabe jederzeit beenden,
ohne die Veränderungen abzuspeichern.
Jetzt können Sie die eingegebenen Werte zuweisen, indem Sie den ent-
sprechenden Softkey drücken. Die Datenänderungen werden an dieser
Stelle noch nicht gespeichert, und können daher wieder rückgängig ge-
macht werden.
Haben Sie sich anders entschieden, können Sie die Zuweisung wieder rück-
gängig machen. Hierzu dient der nebenstehende Softkey. Dieser Knopf
steht erst zur Verfügung, nachdem Sie Werte zugewiesen haben. Beson-
ders nützlich ist diese Funktion, wenn ein Programm abläuft und die Wir-
kung der Verschiebung unmittelbar zu verfolgen ist.
Entspricht die Verschiebung den Erfordernissen, können Sie die Änderung
der Punktkoordinaten in die “DAT”--Datei sichern lassen.

Liegt einer der eingegebenen Werte außerhalb der Toleranzen, erscheint im Programm-
verschiebungsfenster ein Hinweis bzw. eine Fehlermeldung, daß der eingegebene Wert
die Toleranzen überschreitet.

ProgExpPHR4.1.7 12.03.06 de

199 von 214


Programmierung Experte

11.6.2 TTS (Korrekturkoordinatensystem)


Diese Funktion dient zur Optimierung von Raumpunkten mit Hilfe des bahnbegleitenden
Technologie--Dreibeins (TTS) und kann bei Technologiebefehlen (z.B. Schutzgas--Schwei-
ßen oder Kleben) verwendet werden. Die TTS--Korrektur steht ab der Benutzergruppe “Ex-
perte” zur Verfügung und kann in sämtlichen Betriebsarten verwendet werden.
Mit TTS können die kartesischen Koordinaten eines Punktes mit KUKA--Technologie bzw.
Kunden--Technologie korrigiert werden. Die Korrektur erfolgt entlang der Stoßrichtung des
Werkzeugs.

Normalerweise ist die Stoßrichtung die X--Achse des vermessenen Werkzeugs. In Abhän-
gigkeit der Konfiguration kann auch die Z--Achse des Werkzeugs als Stoßrichtung verwen-
det werden.

Nr. Zeit Meldung Ergebnis


003 9:50:04 Hotedit Position S1R1P11 kalkuliert
002 9:50:03 Hotedit Stossrichtung Z = True
001 9:49:50 Hotedit Verschiebung: TTS

Bei jeder Punktkorrektur wird in der lokalen Datenliste (*.DAT) nach den erforderlichen Punk-
ten mit kartesische Koordinaten gesucht. Wird einer der erforderlichen Punkte nicht gefun-
den, erfolgt die Ausgabe einer Fehlermeldung.
Die Suche des Punktes welcher die Bahnrichtung vorgibt, erfolgt immer ab der Stelle auf-
wärts, wo sich der zu korrigierende Punkt befindet. Ausgenommen hiervon ist der Endpunkt
einer Schweiß-- oder Klebekontur, da hier jeweils in den nächst niedrigeren Satznummern
gesucht wird.
Folgende Ausnahmen sich zu beachten:
G Ein Wechsel des Basis--Koordinatensystems zwischen zwei Bewegungssätzen wird
ignoriert;
G CIRC--Sätze mit einer Kreiswinkelangabe (CA) werden nicht korrigiert;
G Bei Korrektur eines Hilfspunktes wird die Orientierung des Werkzeugs entsprechend
der des Startpunktes verwendet;
G Die Koordinaten eines Punktes ist eine einfache Datenlisten--Variable oder eine Kom-
ponente davon (Importierte Variablen, auch Maschinendaten--Variablen sind nicht er-
laubt).

ProgExpPHR4.1.7 12.03.06 de

200 von 214


11 Externer Editor (Fortsetzung)

11.6.2.1 Punkt--TTS
Markieren Sie im externen Editor
den gewünschten Bewegungsbe-
fehl und rufen das Kommando
“HotEdit” --> “TTS” auf. Daraufhin
wird im Display nebenstehendes
Fenster geöffnet.

Die Option “TTS” steht nur zur Auswahl, wenn ein Bewegungssatz für Schweißen bzw. Kle-
ben angewählt ist.

Sind mehrere Bewegungsbefehle markiert, bezieht sich die Korrektur immer auf den er-
sten markierten Befehl.

Verwenden Sie die Cursor--Tasten “­” bzw. “¯”, um den Fokus an die gewünschte Stelle zu
bringen. Mit den Tasten des Nummernblocks geben Sie die neuen Werte ein.
X--Achse
Die X--Achse im TTS--Koordinatensystem entspricht einem Einheitsvektor entlang der
Bahntangente.
+Z

+Y P2
+X

+Z

+Y
+X

Beim LIN--Befehl verläuft


die X--Achse entlang der
Bewegungsbahn
P1
+Z
+Y
+Z

+Y +X
+X

P2

Beim CIRC--Befehl bewegt


sich die X--Achse entlang der
P1 Bahntangenten

Die X--Achse des Werkzeugkoordinatensystems darf nicht parallel zur Bahntangente ver-
laufen, da das Korrekturkoordinatensystem sonst nicht gebildet werden kann. In diesem
Fall wird eine entsprechende Fehlermeldung ausgegeben.

ProgExpPHR4.1.7 12.03.06 de

201 von 214


Programmierung Experte

Y--Achse
Aus dem Einheitsvektor entlang der Bahntangente (+X) und der X--Achse des Werkzeug-
koordinatensystems (+XTool) wird eine Ebene aufgespannt. Die Y--Achse steht senkrecht auf
dieser Ebene.

+Z
+Y
+X

+XTool P2

Die Y--Achse steht senkrecht


auf der durch “+X” und “+XTool”
aufgespannten Ebene
P1

Z--Achse
Aus dem Einheitsvektor entlang der Bahntangente (+X) und der Y--Achse (+Y) wird eine
Ebene aufgespannt. Die Z--Achse steht senkrecht auf dieser Ebene.

+Z
+Y
+X

P2

Die Z--Achse steht senkrecht


auf der durch “+X” und “+Y”
aufgespannten Ebene
P1

Punktkorrektur PTP, LIN


Mit diesem Softkey können Sie die Eingabe jederzeit beenden.

Nachdem Sie die Änderungen in die Eingabefelder eingetragen haben,


drücken Sie diesen Softkey.
Jetzt können Sie die eingegebenen Werte zuweisen, indem Sie den ent-
sprechenden Softkey drücken. Die Datenänderungen werden an dieser
Stelle noch nicht gespeichert, und können daher wieder rückgängig ge-
macht werden.
Haben Sie sich anders entschieden, können Sie die Zuweisung wieder rück-
gängig machen. Hierzu dient der nebenstehende Softkey. Dieser Knopf
steht erst zur Verfügung, nachdem Sie Werte zugewiesen haben.
Speichern Sie die Änderungen.

ProgExpPHR4.1.7 12.03.06 de

202 von 214


11 Externer Editor (Fortsetzung)

Punktkorrektur CIRC
Mit diesem Softkey können Sie die Eingabe jederzeit beenden, ohne die
Veränderungen abzuspeichern.
Nach der Eingabe der Änderungen weisen Sie dem Hilfspunkt (HP) die Kor-
rekturen zu.
Mit diesem Softkey wählen Sie den Zielpunkt (ZP) an, nachdem Sie die Än-
derungen in die Eingabefelder eingetragen haben.
Jetzt können Sie die eingegebenen Werte zuweisen, indem Sie den ent-
sprechenden Softkey drücken. Die Datenänderungen werden an dieser
Stelle noch nicht gespeichert, und können daher wieder rückgängig ge-
macht werden.
Haben Sie sich anders entschieden, können Sie die Zuweisung wieder rück-
gängig machen. Hierzu dient der nebenstehende Softkey. Dieser Knopf
steht erst zur Verfügung, nachdem Sie Werte zugewiesen haben.
Entspricht die Verschiebung den Erfordernissen, sicher Sie die Punktkoor-
dinaten.

11.6.3 Toleranzen
Eine Online--Korrektur ist nur bis zu den Maximalwerten erlaubt, die über “Toleranzen--Base/
World” bzw. “Toleranzen--TTS” eingestellt werden können.

Die maximal zulässigen Toleranzen werden über die Datei “C:\KRC\UTIL\HOTEDIT.INI” fest-
gelegt. Wird ein größerer Wert eingegeben, erfolgt die Ausgabe einer Fehlermeldung.

Für die TTS--Korrektur sind Grenzwerte, welche größer als 5mm sind, nicht sinnvoll.

Verwenden Sie die Cursor--Tasten “­” bzw. “¯”, um den Fokus an die gewünschte Stelle zu
bringen. Mit den Tasten des Nummernblocks geben Sie die neue Toleranz ein.
Die eingegebenen Werte werden nicht übernommen.

Speichert die eingegebenen Toleranzen ab.

11.6.3.1 Toleranzen--Base/World

Bei Anwahl des Menüpunktes er-


scheint das Fenster in dem die
maximalen Verschiebewerte ein-
getragen sind und entsprechend
verändert werden können.

Mit diesem Softkey können Sie die Eingabe jederzeit beenden.

Betätigen Sie diesen Softkey um die Werte abzuspeichern und das Fenster
zu schließen.

ProgExpPHR4.1.7 12.03.06 de

203 von 214


Programmierung Experte

11.6.3.2 Toleranzen--TTS
Hier können Sie die Grenzwerte der TTS--
Korrektur festlegen. Diese Grenzwerte wer-
den bei der Punktkorrektur automatisch
überwacht.

11.7 Menü “ExtExtras”


Hier werden Ihnen Funktionen zum
Ext. Extras Datei -- Achsspiegeln
Datei -- Verschieben 2 Punkt Achsspiegeln, Verschieben sowie Set-
Setzen der Softwareendschalter 6 Punkt zen der Software--Endschalter ange-
boten.

Dieses Menü steht nur zur Verfügung, solange kein Programm in den externen Editor gela-
den wurde.

11.7.1 Datei--Achsspiegeln
Im Gegensatz zu der Funktion “Achsspiegeln”, mit der markierte Bahnpunkte ausgewählter
Bewegungssätze gespiegelt werden können, ermöglicht das “Datei--Achsspiegeln” das
Spiegeln von kompletten Bewegungsprogrammen.
Nach dem Start der Funktion geben Sie zunächst die Quelldatei an, die gespiegelt werden
soll.

ProgExpPHR4.1.7 12.03.06 de

204 von 214


11 Externer Editor (Fortsetzung)

Wählen Sie mit den Cursor--Tasten “"” bzw. “#” eine Datei zum Achsspiegeln aus.
Mit dem Softkey “Abbruch” können Sie diese Funktion jederzeit verlassen.
Haben Sie die gewünschte Datei markiert, betätigen Sie den Softkey “Pfeil
rechts”.

Geben Sie für die gespiegelte Datei eine Bezeichnung aus maximal 8 Zeichen ein.
Mit diesem Softkey gelangen Sie zurück zur letzten Seite, auf der Sie eine
andere Quelldatei auswählen können.
Haben Sie den gewünschten Dateinamen eingegeben, betätigen Sie diesen
Softkey.

ProgExpPHR4.1.7 12.03.06 de

205 von 214


Programmierung Experte

Jetzt haben Sie die Möglichkeit, einen Kommentar einzugeben, welche im Navigator ange-
zeigt wird.
Mit diesem Softkey gelangen Sie zurück zur letzten Seite, auf der Sie den
Dateinamen der zu erstellenden (gespiegelten) Datei eingeben können.
Haben Sie den gewünschten Kommentar eingegeben, betätigen Sie diesen
Softkey. Im Anschluß daran wird das entsprechende Programm erstellt.

11.7.2 Datei--Verschieben
Mit dieser Funktion können Sie die Lage der markierten Bahnpunkte unter Zuhilfenahme ei-
nes Vektors verschieben (2 Punkt), bzw. verschieben und gleichzeitig das zu Grunde lie-
gende Koordinatensystem verdrehen (6 Punkt).
2--Punkt--Verschieben
Für die Funktionalität 2--Punkt--Verschieben muß eine Referenzdatei (beliebiger Name; .src,
.dat) geteacht werden. In dieser Referenzdatei werden zwei Punkte abgelegt. Diese Punkte
definieren den Verschiebevektor (X, Y, C), um den die markierten Punkte verschoben wer-
den.
6--Punkt--Verschieben
Die Funktionalität 6--Punkt--Verschieben arbeitet nach dem gleichen Prinzip. In der zugehöri-
gen Referenzdatei müssen insgesamt sechs Punkte geteacht werden. Die ersten drei
Punkte definieren das Quell--Base, die letzten drei Punkte ein Ziel--Base. Es müssen für
Quelle und Ziel jeweils die identischen Punkte aufgenommen werden. Mit diesen Werten
werden die Bases berechnet. Die Verschiebung und Verdrehung zwischen dem Quell-- und
Ziel--Base bestimmt den Wert, um den die markierten Punkte geshiftet werden.

Der Vektor muß bereits vor dem Aufruf der Funktion in einer Datei gespeichert worden
sein.
Außerdem müssen die zu verschiebenden Bewegungssätze markiert sein.

ProgExpPHR4.1.7 12.03.06 de

206 von 214


11 Externer Editor (Fortsetzung)

Nach Anwahl der Option 2--Punkt-- bzw. 6--Punkt--Verschiebung benötigt das Programm die
Angabe der entsprechenden Referenzdatei.

Mit dem Softkey “Abbruch” können Sie diese Funktion jederzeit verlassen.

11.7.2.1 Vorhandene Referenzdatei verwenden


Mit diesem Softkey können Sie eine Referenzdatei sowie eine zu verschie-
bende Datei angeben.

Wählen Sie zunächst die Referenzdatei mit Hilfe der Cursor--Tasten aus und
betätigen anschließend den Softkey “Pfeil rechts”.

ProgExpPHR4.1.7 12.03.06 de

207 von 214


Programmierung Experte

Mit diesem Softkey gelangen Sie zurück zur vorherigen Seite.

Verwenden Sie erneut die Cursor--Tasten, um die zu verschiebende Datei


zu markieren. Drücken Sie anschließend wieder den Softkey “Pfeil rechts”.
Mit diesem Softkey gelangen Sie zurück zur vorherigen Seite.
Anschließend wird die zu verschiebende Datei in den Editor geladen. Markieren Sie hier die
Bewegungsbefehle, welche verschoben werden sollen.

ProgExpPHR4.1.7 12.03.06 de

208 von 214


11 Externer Editor (Fortsetzung)

Betätigen Sie erneut den Softkey “Pfeil rechts”. Anschließend werden die
ausgewählten Punkte in der Datei verschoben. Der Verlauf wird durch eine
Fortschrittsanzeige über dem Meldungsfenster angezeigt.
Mit diesem Softkey gelangen Sie zurück zur vorherigen Seite.
Im Meldungsfenster wird das Ergebnis der Aktion angezeigt.
Nr. Zeit Meldung Ergebnis
004 13:30:53 2 Punkt Verschieben Position XP1 zu XP4 verschoben
003 13:30:40 2 Punkt Verschieben OK
002 13:30:37 Datei Öffnen OK
001 13:30:37 ExtEdit Start OK

11.7.2.2 Neue Referenzdatei erstellen

Mit diesem Softkey wird eine neue Refe-


renzdatei erstellt. Anschließend wird die-
ses neue Referenzprogramm angewählt,
damit der Bediener die notwendigen
Punkte teachen kann.

Wählen Sie nach dem Teachen das Programm ab, und starten erneut den externen Editor.
Verfahren Sie weiter, wie im Abschnitt 11.7.2.1 beschrieben.

ProgExpPHR4.1.7 12.03.06 de

209 von 214


Programmierung Experte

11.7.3 Setzen der Software--Endschalter


Mit Hilfe dieser Funktion können die Software--Endschalter der einzelnen Achsen an die Be-
wegungsprogramme angepaßt werden.
Zu diesem Zweck starten Sie die Funktion “Setzen der Software--Endschalter” und wechseln
dann mit der Fensterwahltaste zurück zur Bedienoberfläche der Robotersteuerung. Dort
starten Sie die Bewegungsprogramme, deren Achswerte im Hintergrund überwacht werden.
Sind alle für Sie relevanten Programme durchlaufen worden, rufen Sie die Funktion erneut
auf. Die so ermittelten Werte können als Software--Endschalter gesetzt werden.

Die Achspositionen werden so lange im Hintergrund überwacht, wie die Funktion “Setzen
der Software--Endschalter” aktiv ist.

Die jeweils aufgetretenen Minimal-- bzw. Maximalwerte sowie die aktuellen Achspositionen
der Achsen A1 ... A6 werden in den entsprechenden Feldern eingetragen.
Mit einer Checkbox können die Achsen, für welche die Endschalter gesetzt
werden sollen, gekennzeichnet werden. Benutzen Sie zur Auswahl der ge-
wünschten Achsen die Cursor--Tasten. Die Leertaste ermöglicht das Ein-- bzw.
Ausschalten der jeweiligen Achse. Ein gesetztes Häkchen bedeutet, daß für
diese Achse der Software--Endschalter gesetzt werden kann.
Mit “Reset” können die Softwareendschalter auf ihre ursprünglichen Werte zu-
rückgesetzt werden.
Durch Druck auf den Softkey “Set” werden die Software--Endschalter der ange-
wählten Achsen neu gesetzt. Diese Aktion kann jederzeit, auch zu einem späte-
ren Zeitpunkt, durch Druck auf den Softkey “Reset” wieder rückgängig gemacht
werden.

Zu den gemessenen Achswerten wird ein Puffer von 5° addiert.

ProgExpPHR4.1.7 12.03.06 de

210 von 214


11 Externer Editor (Fortsetzung)

11.8 Menü “Optionen”


Optionen Drucker Das Menü “Optionen” dient zum Fest-
Editor
Ausgabeeinstellung Datei
legen von bestimmten Grundeinstel-
Set Verzeichnis lungen des Externen Editors.

11.8.1 Ausgabeeinstellung
Über dieses Menü kann das gewünschte Ausgabemedium festgelegt werden, welches bei
“Ausgabe” --> “aktuelles Programm” bzw. “Drucken” --> “Anwendungen” Verwendung findet.

Solange kein Ausgabemedium eingestellt ist, erfolgt die Ausgabe als Textdatei im unter
“Set Verzeichnis” eingestellten Pfad. Ist noch kein Ausgabepfad definiert, wird der Stan-
dardpfad “C:\USERPROG” verwendet.
Drucker
Ist auf dem Betriebssystem ein Drucker konfiguriert, wird dieser zur Ausgabe verwendet. Ist
kein Drucker eingerichtet worden, erfolgt dagegen die Ausgabe einer entsprechenden Mel-
dung im Meldungsfenster.
Nr. Zeit Meldung Ergebnis
005 16:54:58 Ausgabe an Drucker OK: C:\USERPROG\Beispiel.txt
004 16:54:49 Auswahl: an Drucker OK
003 16:54:44 Laden... OK
002 16:54:42 Datei Öffnen OK

Editor
Das ausgewählte Programm wird zur Bearbeitung in den vom Betriebssystem bereitgestell-
ten Editor “WordPad” geladen.

ProgExpPHR4.1.7 12.03.06 de

211 von 214


Programmierung Experte

Datei
Bei Ausgabe des aktuellen Programms über “Drucken” wird dieses Programm als Textdatei
unter dem mit “Set Verzeichnis” festgelegten Pfad bzw. Dateinamen abgelegt.
Werden alle Anwenderprogramme mittels “Drucken” ausgegeben, wird in dem mit “Set Ver-
zeichnis” festgelegten Ordner das Unterverzeichnis “USERPROG” erzeugt und die Pro-
gramme als Textdateien dort abgespeichert.
Mit einem Texteditor kann jedes der abgespeicherten Programme eingesehen bzw. verän-
dert werden.

Set Verzeichnis
Diese Option ist nur notwendig, wenn Programme als Datei auf die Festplatte abgelegt wer-
den sollen. Im Dialogfenster kann das Zielverzeichnis sowie der Dateiname der zu drucken-
den Datei angegeben werden. Bei der Ausgabe alle Anwenderprogramme über “Datei” wird
gegebenenfalls das Unterverzeichnis “USERPROG” erzeugt und die Textdateien dort abge-
legt.

ProgExpPHR4.1.7 12.03.06 de

212 von 214


11 Externer Editor (Fortsetzung)

11.9 Menü “Hilfe”


Hilfe
Version In diesem Menü stehen Ihnen eine Versionsabfrage so-
Immer im Vordergrund wie eine Anzeigeoption zur Auswahl.

11.9.1 Version
Im Meldungsfenster wird Ihnen die Versionsnummer des externen Editors ausgegeben.
Nr. Zeit Meldung Ergebnis
003 17:16:31 Version 5.0.26
002 17:16:27 Datei Öffnen OK
001 17:16:27 ExtEdit Start OK Versionsnummer

11.9.2 Immer im Vordergrund


Nach Anwahl dieser Option tritt die Bedienoberfläche der Robotersoftware bis zum Beenden
des Editors nicht mehr in den Vordergrund.

NOTIZEN:

ProgExpPHR4.1.7 12.03.06 de

213 von 214


Programmierung Experte

ProgExpPHR4.1.7 12.03.06 de

214 von 214


Index

Zeichen $TOOL, 63, 70


.ERR, 12 $VEL.CP, 77
!, 108 $VEL.ORI1, 77
!--Zeichen, 104 $VEL.ORI2, 77
$VEL_AXIS, 66
?, 109
$WORLD, 63, 70
:, 110
# -- Zeichen, 41
#BASE, 65, 79 Zahlen
#CONSTANT, 78 2--dimens., 36
#INITMOV, 78, 79 3--dimens., 37
#PATH, 79
#TCP, 65 A
#VAR, 78
A10.DAT, 8
$ -- Zeichen, 55
A10.SRC, 8
$ACC.CP, 77
A10_INI.DAT, 8
$ACC.ORI1, 77
A10_INI.SRC, 8
$ACC.ORI2, 77
A20.DAT, 8
$ACC_AXIS, 66
A20.SRC, 8
$ADVANCE, 86
A50.DAT, 8
$ALARM_STOP, 55, 56 A50.SRC, 8
$APO.CDIS, 93, 96 ABS(X), 52
$APO.CORI, 93, 96 Abweisende Schleife, 122
$APO.CPTP, 90 Achsbeschleunigung, 68
$APO.CVEL, 93, 96 Achsgeschwindigkeit, 68
$APO_DIS_PTP, 90 achsspezifisches Koordinatensystem, 59
$BASE, 63, 70 Achsspiegeln, 191
$CIRC_TYPE, 79, 82 ACOS(x), 52
$CONFIG.DAT, 8, 57 Aggregat, 38
$CUSTOM.DAT, 56 aktuelle FOLD öff/schl, 19
$CYCFLAG, 55 alle FOLDs öffnen, 19
$FLAG, 54 alle FOLDs schließen, 19
$IBUS_ON, 56 Analoge Ausgänge, 142
$IPO_MODE, 65 Analoge Eingänge, 145
$MACHINE.DAT, 56 Ändern von Programmen, 14
$MASCHINE.DAT, 8 ANIN, 145
$NULLFRAME, 70 ANIN OFF, 145
$NUM_AX, 56 ANIN ON, 145
$ORI_TYPE, 78, 82 ANIN/ANOUT, 142
$OUT_C, 137 ANOUT OFF, 142
$POS_ACT, 64, 65 ANOUT ON, 142
$PRO_MODE, 22 Anweisung, 10
$PSER, 56 Anweisungsteil, 9
$ROBCOR.DAT, 8, 57 ARCSPS.SUB, 8
$ROBROOT, 63, 70 Arcuscosinus, 52
$SET_IO_SIZE, 137 Arcussinus, 52
$TIMER, 54 Arcustangens, 52
$TIMER_FLAG, 54 Arithmetische Operatoren, 42
$TIMER_STOP, 54 ATAN2(Y,X), 52

Index -- i
Index

Aufbau und Struktur von Programmen, 7 CIRC, 84, 115


Aufzählungstypen, 40 CIRC !, 104
Ausblenden von Bits, 50 CIRC REL, 115
Ausschneiden, 15 CIRC--CIRC--Überschleifen, 96
automatischer Vorlaufstop, 87 CIRC--LIN--Überschleifen, 96
AXIS, 40, 60, 109 CIRC_REL, 84
Compiler, 12
CONFIRM, 130
B
Continous Path, 77
B_AND, 49, 51 CONTINUE, 88
B_EXOR, 49, 51 COS(X), 52
B_NOT, 49, 51 CP--Bewegungen, 77
B_OR, 49, 51 CSTEP, 22
Bahnbegleitendes Technologie--Dreibein, 200 CTRL--C, 14
Bahnbewegungen, 77 CTRL--V, 15
BAS.SRC, 8, 72 CTRL--X, 15
BASE, 65
BASE--Anpassung, 197
D
basisbezogene Interpolation, 64
Dateikonzept, 9
Basiskoordinatensystem, 64
Dateiliste, 10
Bedingte Verzweigung, 118
Dateistruktur, 9
Beschleunigung, 77
Datenliste, 10
Betrag, 52
Datenliste reinigen, 196
Bewegungsanweisungen, 59
Datenlisten, 179
Bewegungsparameter, 105
Datenmanipulation, 42
Bewegungsprogrammierung, 59
Datenobjekte, 31
Bin Dez, 34
Datentyp, 31
Binäre Ein--/Ausgänge, 132
DECL, 31
Binärsystem, 33
DEF, 9, 149
Binden, 12
DEFDAT, 179
Binder, 12
DEFFCT, 150
Bit--Operatoren, 49
Dezimalsystem, 33
Blockfunktionen, 14
DIGIN, 147
Blockkennung, 119 DIGIN OFF, 147
Blockweises Ändern, 196 DIGIN ON, 147
BOOL, 33, 34 Digitale Ein--/Ausgänge, 135
BOSCH.SRC, 8 Digitaleingänge, 147
BRAKE, 164 DISTANCE, 170
Distanzkriterium, 93
C Dreidimensionales Feld, 37
C_DIS, 93, 96, 111
C_ORI, 93, 96, 111 E
C_PTP, 90, 111 E6AXIS, 40, 109
C_VEL, 93, 96, 111 E6POS, 109
CA, 84 Editier--Cursor, 107
CELL.DAT, 8 Editieren, 12
CELL.SRC, 8, 9 Editor, 14
CHAR, 33, 35 Ein--/Ausgabeanweisungen, 131

Index -- ii
Index

Einblenden von Bits, 50 Greiferbezogene Interpolation, 65


Eindimensionales Feld, 35 Grundbereich, 74
Einfache Datentypen, 33
Einfügen, 15 H
ELSE, 118
H50.SRC, 8
END, 9
H70.SRC, 8
ENDFOLD, 19
HALT, 129
ENDFOR, 120
Handwurzelpunkt, 74
ENDLOOP, 125
Hauptlauf, 86
Endlosschleife, 125
Herausfiltern von Bits, 50
ENDWHILE, 122 Hex Dez, 34
ENUM, 40 Hexadezimalsystem, 33
Ersetzen, 16 Höheres Fahrprofil, 67
Erstellen eines neuen Programms, 11 Home--Fahrt, 73
EXIT, 125
Exklusive ODER--Verknüpfung, 49
I
EXT, 72
Externer Editor, 183 IF, 118
Impulsausgänge, 140
Index, 35
F INI, 72
Fehlerbehandlung, 24 INT, 33
Felder, 35 INTERRUPT, 158
Feldindex, 35 Interrupt ausschalten, 160
Flags, 55, 168 Interrupt einschalten, 160
flankengetriggert, 160 Interrupt--Behandlung, 157
Fliegendes Messen, 167 Invertierung, 49
FLT_SERV.DAT, 8 IR_STOPM.SRC, 8
FLT_SERV.SRC, 8 ISTEP, 22
FOLD, 19
FOR, 120 K
FRAME, 40, 109
kartesische Koordinatentransformation, 60
Frameverknüpfung, 43
Kinematik--Singularität, 73
Funktionen, 9, 149
Kinematische Kette, 64, 65
Kommentare, 27
G Kompilieren, 12
Geometrische Datentypen, 40 konstant + bahnbezogen, 79
geometrische Datentypen, 40 konstant + raumbezogen, 81
Geometrischer Operator, 43 Koordinatensysteme, 59, 70
Geometrischer Operator ”:”, 110 Koordinatentransformation, 60
Geschwindigkeit, 77 Kopieren, 14
Geschwindigkeitskriterium, 93 Korrekturkoordinatensystem, 200
GLOBAL, 181 Kreisbewegungen, 84
global, 150 Kreiswinkel, 84
Globale Datenlisten, 180 KRL--Assistent, 107
Globale Variable, 181 KUKA--Robot--Language, 107
GO, 22
GOTO, 117 L

Index -- iii
Index

Lebensdauer, 30 Priorität, 51, 160, 169, 173


LIN, 83, 113 Prioritäten von Operatoren, 51
LIN !, 104 Programm--Korrektur, 14
LIN REL, 113 Programmablaufarten, 22
LIN--CIRC Überschleif, 98 Programmablaufkontrolle, 117
LIN--LIN--Überschleifen, 93 Programme erstellen und editieren, 11
LIN_REL, 83 Programmverzweigungen, 117
Linearbewegungen, 83 PROKOR, 14
Logische Operatoren, 48 PSTEP, 22
Logische Verknüpfung, 48 PTP, 66, 69, 111
lokal, 150 PTP !, 104
Lokale Datenlisten, 179 PTP REL, 111
LOOP, 125 PTP--Bahnüberschleifen, 99
Löschen, 15 PTP--PTP--Überschleifen, 90
PTP_REL, 69
PUBLIC, 180
M
PULSE, 140
Manuelles Verschieben, 192 Punkt--Separator, 38
Maschinensprache, 12 Punkt--zu--Punkt Bewegungen, 66
Mechanische Nullstellung, 68
Mehrdeutige Roboterkinematiken, 74
R
Mehrdeutigkeit, 74
REAL, 33, 34
MERKER, 117
Rechnervorlauf, 86
MSG_DEMO.SRC, 8
REPEAT, 123
MSTEP, 22
RESUME, 165
Roboterkoordinatensystem, 63
N Rückwärtstransformation, 60
Namen, 29
NEW_SERV.SRC, 8 S
Nicht abweisende Schleife, 123
S und T, 73
SAK, 73
O Satzkoinzidenz, 73
ODER--Verknüpfung, 49 Schaltaktion, 173
Operand, 42 Schleifen, 120
Operator, 42 SIGNAL, 132
Orientierungsführung, 78 SIN(X), 52
Orientierungskriterium, 93 Sinus, Cosinus, Tangens, 52
Sperren / Freigeben, 160
Sprunganweisung, 117
P SPS.SUB, 8
P00.DAT, 8 SQRT(X), 52
P00.SRC, 8 Status, 70, 73
Parameterliste, 152 STRUC, 38
Parameterübergabe, 152 Strukturen, 38
PERCEPT.SRC, 9 SWITCH, 119
Platzhalter, 108 Synchron--PTP, 66
POS, 40, 109 Systemdateien, 54
Positionsangabe, 109 Systemvariablen, 54

Index -- iv
Index

T Warteanweisungen, 126
TAN(X), 52 WEAV_DEF.SRC, 9
TCP, 65 Weltkoordinatensystem, 63
TCP--Anpassung, 197 Werkzeug, feststehendes, 65
Teachen von Punkten, 104 Werkzeugkoordinatensystem, 63
Timer, 54 Werkzeugwechsel, 103
Tool Center Point, 66
Wertzuweisung, 29
Touch Up, 109
WHILE, 122
Translationen, 62
TRIGGER, 169 Wurzel, 52
Trigger, 169
TTS, 200 Z
Turn, 70, 73
Zählschleife, 120
U Zeichenketten, 38
Überkopfbereich, 74 Zweidimensionales Feld, 36
Überschleif Bahn -- PTP, 100 Zyklische Flags, 55
Überschleif PTP -- Bahn, 99
Überschleifbeginn, 93
Überschleifbewegungen, 89
Überschleifen, 89
Überschleifkontur, 89
UND--Verknüpfung, 49
Unterprogramme, 9, 149
UNTIL, 123
USER_GRP.DAT, 9
USER_GRP.SRC, 9
USERSPOT.SRC, 9

V
VAR, 108
variabel + bahnbezogen, 79
variabel + raumbezogen, 82
Variablen und Namen, 29
Variablen und Vereinbarungen, 29
Vereinbarung, 10
Vereinbarungsteil, 9
Vergleichsoperatoren, 47
Verstecken von Programmteilen, 19
vordefinierte Strukturen, 40
Vorlauf, 86
Vorlaufstop, 87, 131
Vorwärtstransformation, 60

W
WAIT, 126

Index -- v
SOFTWARE

KR C...

Zusatzfunktionen

KUKA System Software (KSS)


Release 4.1

Stand: 16.01.2004 Version: 06


ZusatzPHR4.1.7 12.03.06 de

1 von 14
e Copyright 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

ZusatzPHR4.1.7 12.03.06 de

2 von 14
Inhaltsverzeichnis

1 Standardprogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1 COR_T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 1. Schritt: Teachmodus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.3 2. Schritt: Korrekturmodus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.4 Verwendete Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.5 Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 CorrTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 Werkzeugkorrektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.3 Verwendete Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.4 Fehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

ZusatzPHR4.1.7 12.03.06 de

3 von 14
Zusatzfunktionen

ZusatzPHR4.1.7 12.03.06 de

4 von 14
1 Standardprogramme

1 Standardprogramme

Im Lieferumfang der Robotersteuerung befinden sich einige Hilfsprogramme, die dem An-
wender in bestimmten Situationen dienlich sind. Diese Hilfsprogramme befinden sich stan-
dardmäßig im Verzeichnis “C:\KRC\Roboter\KRC\R1\TP\”.

Datei Bedeutung Informationen in...


A10.DAT Technologiepaket zum Bahnschweißen mit
A10.SRC analogen Leitspannungen
A10_INI.DAT Technologiepaket zur Initialisierung des [Arc Tech 10]
A10_INI.SRC Bahnschweißens mit analogen Leitspan-
nungen
A20.DAT Technologiepaket zum Bahnschweißen mit
[Arc Tech 20]
A20.SRC digitalen Programmnummern
A50.DAT Technologiepaket für die Verwendung des
[Libo Sensor A50]
A50.SRC Libo (Lichtbogen) -- Sensors
ARC_MSG.SRC Programm zur Programmierung von Mel-
dungen für das Schutzgasschweißen. [Arc Tech]
ARCSPS.SUB Submitfile für Bahnschweißen
COR_T1.SRC Programm zur Werkzeugkorrektur (alte
Abschnitt 1.1
Version)
CORRTOOL.DAT Programm zur Werkteugkorrektur
Abschnitt 1.2
CORRTOOL.SRC
FLT_SERV.DAT Programm zur benutzerdefinierten Fehler-
[Arc Tech]
FLT_SERV.SRC behandlung beim Bahnschweißen
H50.SRC Greifer--Paket [Gripper Tech H50]
H70.SRC Touchsensor--Paket [Touch Sensor H70]
MSG_DE- Programm mit Beispielen für Benutzermel- [Programmieren
MO.SRC dungen von Anwendermel-
dungen]
NEW_SERV.SRC Programm zur Änderung von Fehlerreak-
[Arc Tech]
tionen für FLT_SERV
P00.DAT Programmpaket zur Kopplung an eine Prog.--Handbuch,
P00.SRC SPS Kap. Konfiguration,
Abschnitt
[Automatik Extern]
PERCEPT.SRC Programm zum Aufruf des PERCEP- [Serielle Sensor-
TRON--Protokolls schnittstelle]
USER_GRP.DAT Programm zur benutzerdefinierten Greife-
[Gripper Tech H50]
USER_GRP.SRC ransteuerung
USERSPOT.DAT Programmpaket zum benutzerdefinierten
[Spot Tech]
USERSPOT.SRC Punktschweißen
WEAV_DEF.SRC Programm für Pendelbewegungen beim
[Arc Tech]
Schutzgasschweißen

ZusatzPHR4.1.7 12.03.06 de

5 von 14
Zusatzfunktionen

1.1 COR_T1
Mit diesem Programm kann nach einem Crash der TCP überprüft und gegebenenfalls korri-
giert werden. Das Werkzeug braucht dann nicht neu vermessen zu werden. Dazu sind aller-
dings einige Voraussetzungen nötig.

1.1.1 Vorbereitung
Die folgenden Schritte müssen erfolgt sein, bevor eine Werkzeugkorrektur durchgeführt
werden kann. Nach einer Kollision ist dies nicht mehr möglich, da der Bezugspunkt fehlt.

Referenzpunkt
Zunächst wird ein fester Referenzpunkt im Raum benötigt. Dies kann beispielsweise eine
an der Wand befestigte Meßspitze sein. Dieser Referenzpunkt darf nicht entfernt oder be-
wegt werden (eine auf den Tisch gestellte Meßspitze ist also nicht ausreichend)!

Vermessen
Anschließend vermessen Sie das Werkzeug (z.B. einen Brenner) mit einem der Vermes-
sungsprogramme (z.B. der XYZ--4--Punkt Methode). Achten Sie darauf, daß sich das Werk-
zeug möglichst weit von der Meßspitze entfernt befindet und diese nur noch in einem, leicht
zu merkenden, Punkt berührt. In genau dieser Orientierung wird der Referenzpunkt bei Aus-
führung des Programms wieder angefahren. Steht das Werkzeug nun ungünstig zur Meß-
spitze, kann das Werkzeug mit der Meßspitze kollidieren und beide damit beschädigen.
Während das Werkzeug noch im letzten Vermessungspunkt steht, rufen Sie über die Varia-
blenkorrektur die Variable “REF_PT[x]” auf. Geben Sie als neuen Wert “$POS_ACT” ein.
Damit werden die Koordinaten der aktuellen Position als Referenzpunkt verwendet.

Umfangreiche Informationen zum Vermessen finden Sie im Bedienhandbuch im Haupt-


kapitel [Inbetriebnahme], Kapitel [Vermessen].

Zulässige Abweichung (MAX_CRASH)


Die maximal zulässige Abweichung zwischen Referenzpunkt und Werkzeugspitze in [mm],
mit der automatisch korrigiert wird, kann mit der Variablen “MAX_CRASH” verändert wer-
den. Sie können den Wert über die Variablenkorrektur oder direkt in der Datei “C:\KRC\Robo-
ter\KRC\R1\System\$CONFIG.DAT” verändern.

Auszug aus der Datei “$CONFIG.DAT”

;******************************************
; Variables Tool Correction
;******************************************
BOOL FLAG=FALSE
INT MAX_CRASH=5

ZusatzPHR4.1.7 12.03.06 de

6 von 14
1 Standardprogramme (Fortsetzung)

1.1.2 1. Schritt: Teachmodus


Schalten Sie die Betriebsart auf “T1” und Verfahren den Roboter in seine Home--Position.
Wählen Sie das Programm “Cor_T1” an. Öffnen Sie anschließend alle Folds (Menü ”Bear-
beiten” --> “Fold” --> “alle Fold’s öffnen”), da die entsprechenden Einträge sonst nicht ange-
zeigt werden.
Vergewissern Sie sich, daß die Variable “STOP_BY_REF” auf “TRUE” gesetzt ist.
Suchen Sie den Eintrag “COR_TOOL_NO” und tragen die Nummer des von Ihnen verwen-
deten Werkzeugs ein. Wurde dieses Werkzeug noch nicht vermessen, erfolgt die Ausgabe
einer Fehlermeldung.
Anschließend verfahren Sie den Roboter in die Nähe des Referenzpunktes. Bewegen Sie
den Editier--Cursor im Programm auf die erste Zeile “PTP !” und betätigen den Softkey “Sat-
zanwahl”. Durch Drücken des Softkeys “TouchUp” weisen Sie dem PTP--Kommando die ak-
tuellen Koordinaten zu.
Bewegen Sie den Editier--Cursor auf die zweite “PTP !”--Zeile, machen erneut eine Satzan-
wahl und drücken noch einmal den Softkey “TouchUp”.

Die beiden “PTP !”--Zeilen dienen in erster Linie dazu, daß der Roboter von seiner Home--
Position zum Referenzpunkt und wieder zurück einer definierten Bahn folgt.
Achten Sie auf Hindernisse, die sich im Weg befinden! Falls notwendig, müssen mehrere
PTP--Punkte geteacht werden.

1.1.3 2. Schritt: Korrekturmodus


Ändern Sie den Wert der Variablen “STOP_BY_REF” auf “FALSE”. Jetzt kann das Pro-
gramm zurückgesetzt werden. Starten Sie das Programm mit der Taste “Programmstart vor-
wärts”. Der Roboter fährt nun zum ersten PTP--Punkt und bewegt sich anschließend auf den
vorher vermessenen Referenzpunkt zu.
Jetzt werden Sie aufgefordert, mittels Handverfahren, die Meßspitze mit dem Werkzeug
anzufahren. Nachdem der neue Meßpunkt angefahren wurde, muß die Meldung im Mel-
dungsfenster quittiert werden. Jetzt kann das Programm mit der Programmstart--vorwärts--
Taste fortgesetzt werden.

Fahren Sie den Referenzpunkt langsam an, damit Sie den Roboter rechtzeitig stop-
pen können, um Beschädigungen am Werkzeug oder der Meßspitze zu vermeiden.

Insgesamt gibt es 3 verschiedene Möglichkeiten:


G Ist der Abstand zwischen Referenzpunkt und Werkzeugspitze maximal 1/10mm groß,
ist keine Korrektur erforderlich;
G Ist der Abstand kleiner als der maximal zulässige Wert von “MAX_CRASH”, erfolgt die
Korrektur;
G Wird “MAX_CRASH” dagegen überschritten, muß das Werkzeug neu vermessen und
die letzte Vermessungsposition wieder in “REF_PT[x]” übernommen werden.

ZusatzPHR4.1.7 12.03.06 de

7 von 14
Zusatzfunktionen

1.1.4 Verwendete Variablen

Variable Wertebereich Bedeutung


COR_TOOL_NO 1 ... 16 Legt das zu prüfende Werkzeug fest
Legt die maximal zulässige Abweichung für die
MAX_CRASH 5 (Defaultwert)
automatische Korrektur fest
Referenzpunkt (z.B. Meßspitze) für das je-
REF_PT[x] x = 1 ... 16
weilige Werkzeug
STOP_BY_REF TRUE Teachmodus für PTP!--Punkte
FALSE Korrekturmodus

1.1.5 Fehlermeldungen
Die folgenden Meldungen können im Zusammenhang mit “Cor_T1” auftreten:

Meldung Bedeutung Abhilfe


Abstand der Werkzeug-
Korrekturgrösse bei Werkzeug- spitze vom Referenzpunkt Werkzeug neu vermes-
vermessen überschritten. größer, als durch Variable sen
“MAX_CRASH” definiert
Programmablauf nur in T1--Be-
Falsche Betriebsart Betriebsart T1 einstellen
trieb zulässig.
Touchup Mode. Fahren Sie auf
Referenzpunkt.
Ungültige Meldungsnummer.
Werkzeugnummer nicht Korrekte Werkzeug--
Unzulässige Werkzeugnummer.
zwischen 1...16 nummer eintragen
Werkzeug über die Meßspitze
Referenzpunkt definie-
deckendverfahrenundStartdrük-
ren
ken.
Abstand von Werkzeug-
Werkzeugdaten sind gleich ge- spitze zu Referenzpunkt ist nicht notwendig
blieben.
± 1/10mm
Werkzeugdaten sind neu berech-
Korrektur erfolgreich
net worden.

ZusatzPHR4.1.7 12.03.06 de

8 von 14
1 Standardprogramme (Fortsetzung)

1.2 CorrTool
Dieses Programm ist im wesentlichen eine neue Version von “COR_T1”. Der Vorteil ist, daß
keinerlei Änderungen in der Programmdatei vorgenommen werden müssen. Mit diesem Pro-
gramm kann nach einem Crash der TCP überprüft und gegebenenfalls korrigiert werden.
Das Werkzeug braucht dann nicht neu vermessen zu werden.

1.2.1 Vorbereitung
Die folgenden Schritte müssen erfolgt sein, bevor eine Werkzeugkorrektur durchgeführt
werden kann. Nach einer Kollision ist dies nicht mehr möglich, da der Bezugspunkt fehlt.

Referenzpunkt
Zunächst wird ein fester Referenzpunkt im Raum benötigt. Dies kann beispielsweise eine
an der Wand befestigte Meßspitze sein. Dieser Referenzpunkt darf nicht entfernt oder be-
wegt werden (eine auf den Tisch gestellte Meßspitze ist also nicht ausreichend)!

Vermessen
Anschließend vermessen Sie das Werkzeug (z.B. einen Brenner) mit einem der Vermes-
sungsprogramme (z.B. der XYZ--4--Punkt Methode). Achten Sie darauf, daß sich das Werk-
zeug möglichst weit von der Meßspitze entfernt befindet und diese nur noch in einem, leicht
zu merkenden, Punkt berührt. In genau dieser Orientierung wird der Referenzpunkt bei Aus-
führung des Programms wieder angefahren. Steht das Werkzeug nun ungünstig zur Meß-
spitze, kann das Werkzeug mit der Meßspitze kollidieren und beide damit beschädigen.
Während das Werkzeug noch im letzten Vermessungspunkt steht, rufen Sie über die Varia-
blenkorrektur die Variable “REF_PT[x]” auf. Geben Sie als neuen Wert “$POS_ACT” ein.
Damit werden die Koordinaten der aktuellen Position als Referenzpunkt verwendet.

Umfangreiche Informationen zum Vermessen finden Sie im Bedienhandbuch im Haupt-


kapitel [Inbetriebnahme], Kapitel [Vermessen].

Zulässige Abweichung (MAX_CRASH)


Die maximal zulässige Abweichung zwischen Referenzpunkt und Werkzeugspitze in [mm],
mit der automatisch korrigiert wird, kann mit der Variablen “MAX_CRASH” verändert wer-
den. Sie können den Wert über die Variablenkorrektur oder direkt in der Datei “C:\KRC\Robo-
ter\KRC\R1\System\$CONFIG.DAT” verändern.

Auszug aus der Datei “$CONFIG.DAT”

;******************************************
; Variables Tool Correction
;******************************************
BOOL FLAG=FALSE
INT MAX_CRASH=5

ZusatzPHR4.1.7 12.03.06 de

9 von 14
Zusatzfunktionen

1.2.2 Werkzeugkorrektur
Programm anwählen
Schalten Sie die Betriebsart auf “T1” und Verfahren den Roboter in die Nähe des Referenz-
punktes.

Laden Sie das Programm “CorrTool”, in dem Sie die Option “Anwählen” --> “mit Parametern”
ausführen. Diese Funktion ist nur über die Menüleiste erreichbar.

Als Parameter geben Sie die Nummer des verwendeten Werkzeugs ein. Mit der Eingabe--Ta-
ste übergeben Sie die Werkzeugnummer an die Steuerung. Anschließend wird das Pro-
gramm geladen und im Programmfenster angezeigt.

Hilfspunkte teachen
Zwischen der Home--Position und dem Referenzpunkt müssen wenigstens 2 Punkte ge-
teacht werden. Bewegen Sie den Editier--Cursor auf den ersten PTP--Befehl und drücken
den Softkey “Satzanwahl”. Verfahren Sie den Roboter, am besten aus der Home--Position,
in die Nähe des Referenzpunktes. Dort machen Sie einen Touchup. Verfahren Sie mit dem
nächsten Punkte in gleicher Weise. Damit wird im nächsten Schritt sichergestellt, daß der
Roboter bei der Programmausführung nicht unerwartet gegen ein Hindernis fährt. Anschlie-
ßend setzen Sie das Programm mit dem Befehl “Bearbeiten” --> “Programm zurücksetzen”
zurück.

ZusatzPHR4.1.7 12.03.06 de

10 von 14
1 Standardprogramme (Fortsetzung)

Die “PTP”--Befehle dienen in erster Linie dazu, daß der Roboter von seiner Home--Position
zum Referenzpunkt und wieder zurück einer definierten Bahn folgt.
Achten Sie auf Hindernisse, die sich im Weg befinden! Falls notwendig, müssen weitere
PTP--Punkte geteacht werden.

Programm anstarten
Starten Sie das Programm mit der Programmstart--vorwärts--Taste bis Satzkoinzidenz er-
reicht ist. Lassen Sie anschließend die Start--Taste los und drücken Sie sie erneut. Sobald
der zuletzt vermessene Referenzpunkt erreicht wird, erfolgt ein Stop.

Quittieren Sie die Meldung im Meldungsfenster, da der Roboter sonst nicht verfahren werden
kann. Jetzt verfahren Sie den Roboter über die Verfahrtasten oder Space--Mouse, bis das
Werkzeug die Meßspitze gerade berührt.

Fahren Sie den Referenzpunkt langsam an, damit Sie den Roboter rechtzeitig stop-
pen können, um Beschädigungen am Werkzeug oder der Meßspitze zu vermeiden.

Bringen Sie das Werkzeug nach Möglichkeit in die gleiche Orientierung, die es im letzten
Punkt der Werkzeugvermessung hatte. Ansonsten besteht eventuell Kollisionsgefahr zwi-
schen Werkzeug und Meßspitze.

Nachdem Sie das Werkzeug soweit verfahren haben, daß es die Meßspitze berührt, setzen
Sie das Programm durch einen Druck auf die Programmstart--vorwärts--Taste fort. Jetzt gibt
es drei Möglichkeiten:

Werkzeugdaten sind gleich geblieben

In diesem Fall ist die Abweichung zum früher vermessenen Referenzpunkt kleiner als
1/10mm. Eine Korrektur ist somit nicht notwendig.

Werkzeugdaten sind neu berechnet worden

Die Abweichung zum früheren Referenzpunkt sind kleiner als in der Variablen
“MAX_CRASH” definiert. Die Werkzeugkorrektur wurde automatisch durchgeführt.

Korrekturgröße bei Werkzeugvermessen überschritten

ZusatzPHR4.1.7 12.03.06 de

11 von 14
Zusatzfunktionen

Im letzten Fall ist die Abweichung größer, als es Wert der Variablen “MAX_CRASH” zuläßt.
Eine Korrektur ist nicht möglich, das Werkzeug muß somit neu vermessen werden.

Quittieren Sie die Stop--Meldung im Meldungsfenster. Mit Abwählen des Programms ist die
eigentliche Werkzeugkorrektur abgeschlossen.
Falls notwendig, muß das Werkzeug neu vermessen werden. Vergessen Sie in diesem Fall
nicht, daß Sie wie unter “Vorbereitung” beschrieben, dem Referenzpunkt “REF_PT[x]” die
aktuelle Position “$POS_ACT” zuweisen.

1.2.3 Verwendete Variablen

Variable Wertebereich Bedeutung


CorrToolNo 1 ... 16 Legt das zu prüfende Werkzeug fest
Legt die maximal zulässige Abweichung für die
MAX_CRASH 5 (Defaultwert)
automatische Korrektur fest
Referenzpunkt (z.B. Meßspitze) für das je-
REF_PT[x] x = 1 ... 16
weilige Werkzeug

1.2.4 Fehlermeldungen
Die folgenden Meldungen können im Zusammenhang mit “CorrTool” auftreten:

Meldung Bedeutung Abhilfe


Werkzeug über die Meßspitze
deckendverfahrenundStartdrük-
ken.
Werkzeugdaten sind neu berech-
Korrektur erfolgreich
net worden.
Werkzeugnummer nicht Korrekte Werkzeug--
Unzulässige Werkzeugnummer.
zwischen 1...16 nummer eintragen
Ungültige Meldungsnummer.
Abstand von Werkzeug-
Werkzeugdaten sind gleich ge- spitze zu Referenzpunkt ist nicht notwendig
blieben.
± 1/10mm
Programmablauf nur in T1--Be-
Falsche Betriebsart Betriebsart T1 einstellen
trieb zulässig.
Abstand der Werkzeug-
Korrekturgrösse bei Werkzeug- spitze vom Referenzpunkt Werkzeug neu vermes-
vermessen überschritten. größer, als durch Variable sen
“MAX_CRASH” definiert
Touchup Mode. Fahren Sie auf
Referenzpunkt.

ZusatzPHR4.1.7 12.03.06 de

12 von 14
1 Standardprogramme (Fortsetzung)

NOTIZEN:

ZusatzPHR4.1.7 12.03.06 de

13 von 14
Zusatzfunktionen

ZusatzPHR4.1.7 12.03.06 de

14 von 14
Index

A U
A10.DAT, 5 USER_GRP.DAT, 5
A10.SRC, 5 USER_GRP.SRC, 5
A10_INI.DAT, 5
USERSPOT.SRC, 5
A10_INI.SRC, 5
A20.DAT, 5
A20.SRC, 5 W
A50.DAT, 5 WEAV_DEF.SRC, 5
A50.SRC, 5
Werkzeugkorrektur, 6
ARCSPS.SUB, 5

C
CELL.DAT, 5
CELL.SRC, 5
COR_T1, 6
COR_TOOL_NO, 8

F
FLT_SERV.DAT, 5
FLT_SERV.SRC, 5

H
H50.SRC, 5
H70.SRC, 5

M
MAX_CRASH, 8
MSG_DEMO.SRC, 5

N
NEW_SERV.SRC, 5

P
P00.DAT, 5
P00.SRC, 5
PERCEPT.SRC, 5

R
REF_PT[x], 8
Referenzpunkt, 6

S
Standardprogramme, 5
STOP_BY_REF, 8

Index -- i
SOFTWARE

KR C...

Applikationen

KUKA System Software


Release 4.1

Stand: 16.01.2004 Version: 06


ApplikationenPHR4.1.7 12.03.06 de

1 von 6
e Copyright 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

ApplikationenPHR4.1.7 12.03.06 de

2 von 6
Inhaltsverzeichnis

1 Applikationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

ApplikationenPHR4.1.7 12.03.06 de

3 von 6
Applikationen

ApplikationenPHR4.1.7 12.03.06 de

4 von 6
1 Applikationen

1 Applikationen

Dieses Kapitel ist für zusätzlich erworbene Applikationen vorgesehen.

ApplikationenPHR4.1.7 12.03.06 de

5 von 6
Applikationen

ApplikationenPHR4.1.7 12.03.06 de

6 von 6
SOFTWARE

KR C...

Systemvariablen

KUKA System Software (KSS)

Stand: 24.05.2005 Version: 03

SysVar 08.02.03 de 1 von 170


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 170 SysVar 08.02.03 de


Inhaltsverzeichnis

1 Benutzungshinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 A ............................................................... 7

3 B ............................................................... 29

4 C ............................................................... 34

5 D ............................................................... 41

6 E ................................................................ 53

7 F ................................................................ 63

8 G ............................................................... 66

9 H ............................................................... 68

10 I ................................................................ 70

11 J ................................................................ 77

12 K ............................................................... 78

13 L ................................................................ 81

14 M ............................................................... 85

15 N ............................................................... 92

16 O ............................................................... 95

17 P ................................................................ 100

18 R ............................................................... 115

19 S ................................................................ 124

20 T ................................................................ 139

21 U ............................................................... 158

22 V ................................................................ 159

23 W ............................................................... 166

24 Z ................................................................ 170

SysVar 08.02.03 de 3 von 170


Systemvariablen

4 von 170 SysVar 08.02.03 de


1 Benutzungshinweise

1 Benutzungshinweise
Diese tabellarische Zusammenfassung der Systemvariablen dient als Hilfsmittel für die Pro-
grammierer, die über gute Kenntnisse der Funktionalität des KUKA--Robotersystems und
der KR C...-- Steuerung verfügen und mit der Programmierung gut vertraut sind.
Viele Variablenwerte sind vom Hersteller voreingestellt (Vorgabewerte) und sollten nicht
ohne zwingenden Grund geändert werden. Sollten dennoch Änderungen notwendig sein, so
sind diese entweder über die Variablenkorrektur oder durch Editieren der Dateien möglich.

Ändern Sie Variablenwerte nur, wenn Ihnen Funktion und Wirkungsweise der
Systemvariablen hinreichend bekannt ist!

Für Schäden jeder Art, die durch unsachgemäße oder nicht bestimmungs-
gemäße Änderungen von Variablenwerten verursacht werden, übernimmt
der Hersteller keine Haftung und Gewährleistung!

Bitte beachten Sie auch im Handbuch das Kapitel [Sicherheit].

Bitte beachten SIe:

Allen Tabellen ist jeweils eine Überschrift mit Namen und Funktion der Systemvariablen
vorangestellt, z. B.:

Variablenname Funktion der Variablen

Datentyp min.
Wert
Einheit max.
In Datei
Originalzeile
Bemerkung

Optionen Auswirkung

Sind keine Optionen angegeben, so entfällt die zweite Tabelle.

SysVar 08.02.03 de 5 von 170


Systemvariablen

Tabelleneinträge:

Datentyp Real, Integer, Boolean, Character, Structure, Signalvereinbarung, Enum,


Frame , Array

Einheit ms, mm, m/s2, s, °, %, V, A, Inkr, Bit, Bitfolge, Bewegungssätze

In Datei KRC\Roboter\ KRC\ R1\ Mada\ ...


... \ Steu\ Mada\ ...

Originalzeile Quelltext
;Kommentar

Bemerkung Funktionsbeschreibung

Wert min. Je nach Datentyp abhängige Minimum-- bzw. Maximumwerte


max.

Option Vom Datentyp abhängige Optionen (TRUE, FALSE, 1, 2, etc.)

Eine Gruppe von Systemvariablen wird am Anfang mit gerahmtem Namensfeld dargestellt:

Variablenname Funktion der Variablen

Datentyp Structure min.


Wert
Einheit max.
In Datei
Originalzeile
Bemerkung

Bei gleichbleibender inhaltlicher Beschreibung werden die folgenden Systemvariablen nur


als Überschriftzeile dargestellt.

Variablenname.1 Funktion der Variablen

Tritt eine Änderung ein, so wird der entsprechende Tabellenteil unter der Überschriftzeile
dargestellt. Diese Änderung ist dann für alle folgenden Variablen der Gruppe maßgeblich.

Variablenname.2 Funktion der Variablen

Datentyp Real min. 0


Wert
Einheit mm, ° max.

Variablenname.3 Funktion der Variablen

6 von 170 SysVar 08.02.03 de


2 A

2 A
$A4PAR Achse 4 parallel zur letzten rotatorischen Grundachse schalten

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $A4PAR
Bemerkung

Optionen Auswirkung
0 Nicht geschaltet
1 Geschaltet

$ABS_ACCUR Absolutgenaues Robotermodell ein-- / ausschalten

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $ABS_ACCUR=FALSE
;Absolutgenaues Robotermodell
Bemerkung

Optionen Auswirkung
TRUE eingeschaltet
FALSE ausgeschaltet

Konvertierung von Punktkoordinaten in absolutgenaues


$ABS_CONVERT
Robotermodell

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile BOOL $ABS_CONVERT=FALSE
;Konvertierung der Punktkoordinaten
Bemerkung

Optionen Auswirkung
TRUE
FALSE

SysVar 08.02.03 de 7 von 170


Systemvariablen

$ABS_RELOAD Absolutgenaues Robotermodell nachladen.

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $ABS_RELOAD
Bemerkung

$ACC Bahn--, Schwenk-- und Drehbeschleunigungen im Vorlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL CP $ACC
Bemerkung Beschleunigungen im Vorlauf
CP = m/s2, ORI1 = Grad/s2, ORI2 = Grad/s2

$ACC_ACT_MA Grenzwert der axialen Sollbeschleunigung

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $ACC_ACT_MA
;Grenzwert Sollbeschleunigung [%]
Bemerkung

$ACC_AXIS[n] Beschleunigung der Achsen im Vorlauf

Datentyp Integer min.


Wert
Einheit % max.
In Datei ------
Originalzeile INT $ACC_AXIS[n]
Beschleunigung der Achsen [%] Vorlauf
Bemerkung [n] = [1] ... [6] Achsen A1 ... A6

8 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$ACC_AXIS_C[n] Beschleunigung der Achsen im Hauptlauf

Datentyp Integer min.


Wert
Einheit % max.
In Datei ------
Originalzeile INT $ACC_AXIS_C[n]
Beschleunigung der Achsen [%] Hauptlauf
Bemerkung [n] = [1] ... [6] Achsen A1 ... A6

$ACC_C Bahn--, Schwenk-- und Drehbeschleunigungen im Hauptlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL CP $ACC_C
Bemerkung Beschleunigungen im Hauptlauf
CP = m/s2, ORI1 = Grad/s2, ORI2 = Grad/s2

$ACC_CAR_ACT Aktuelle Werte der Beschleunigungskomponenten und der


Gesamtbeschleunigung

Datentyp Frame min.


Wert
Einheit m/s2 max.
In Datei ------
Originalzeile DECL ACC_CAR $ACC_CAR_ACT
Bemerkung Die X--, Y-- und Z--Komponenten von “$ACC_CAR_ACT” beinhalten die
Beschleunigungsanteile entlang der Achsen von “$ACC_CAR_TOOL”.
“$ACC_CAR_ ACT.ABS” beinhaltet den Betrag der zugehörigen Gesamt-
beschleunigung. Die Komponenten A, B und C sind jeweils auf “0” gesetzt.
Die Variable ist schreibgeschützt.
Die Beschleunigung aufgrund der Erdanziehungskraft (9,81m/s2) wird
automatisch in die durch die Bewegung hervorgerufene Beschleunigung
mit eingerechnet.

SysVar 08.02.03 de 9 von 170


Systemvariablen

$ACC_CAR_LIMIT Setzt den maximal zulässigen Höchstwert für die Beschleuni-


gungskomponenten bzw. die Gesamtbeschleunigung

Datentyp Frame min.


Wert
Einheit m/s2 max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL ACC_CAR $ACC_CAR_LIMIT={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C
0.0,ABS 0.0}
Bemerkung Ist die Variable “$ACC_CAR_STOP” auf “TRUE” gesetzt, wird der Roboter
bei Überschreitung des Beschleunigungswertes gestoppt (Rampenstopp)
und eine Quittungsmeldung ausgegeben.
Eine Änderung der Werte ist nur durch Editieren der Maschinendaten mög-
lich.

$ACC_CAR_MAX Speichert die betragsmäßig größten Werte von “$ACC_CAR_ACT”

Datentyp Frame min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL ACC_CAR $ACC_CAR_MAX
Bemerkung Die Variable kann auf “0” gesetzt werden, um die maximalen Werte zu er-
mitteln.

$ACC_CAR_STOP Der Roboter kann angehalten werden, wenn “$ACC_CAR_LIMIT”


überschritten wird

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile BOOL $ACC_CAR_STOP=FALSE
Bemerkung Ein-- bzw. Ausschalten der Stoppreaktion bei Überschreiten des in
“$ACC_CAR_LIMIT” angegebenen Wertes.
Eine Änderung der Werte ist nur durch Editieren der Maschinendaten mög-
lich.

Optionen Auswirkung
TRUE Stoppreaktion ist eingeschaltet
FALSE Stoppreaktion ist ausgeschaltet

10 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$ACC_CAR_TOOL Ein Punkt eines am Roboter montierten Werkzeugs, an dem die


aktuell wirkende Beschleunigung gemessen wird.

Datentyp Frame min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $ACC_CAR_TOOL={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
Bemerkung Analog zu “$TOOL” wird auch $ACC_CAR_TOOL relativ zum Flansch über
die X, Y und Z--Koordinaten angegeben. Die Drehwinkel A, B und C geben
die Lage der 3 Achsen des Koordinatensystems an, in dem die Beschleuni-
gungskomponenten dann angegeben werden. Die Auswertung sowohl der
Beschleunigungskomponenten als auch der Gesamtbeschleunigung er-
folgt zyklisch.
Beschleunigungen, die ihre Ursache in Getriebeverdrehungen oder Durch-
biegen des Roboters haben, werden nicht berücksichtigt. Eine Änderung
der Werte ist nur durch Editieren der Maschinendaten möglich .

$ACC_EXTAX[6] Beschleunigung der externen Achsen im Vorlauf

Datentyp Integer min.


Wert
Einheit % max.
In Datei ------
Originalzeile INT $ACC_EXTAX[6]
;Beschleunigung der externen Achsen [%] Vorlauf
Bemerkung

$ACC_EXTAX_C[6] Beschleunigung der externen Achsen im Hauptlauf

Datentyp Integer min.


Wert
Einheit % max.
In Datei ------
Originalzeile INT $ACC_EXTAX_C[6]
;Beschleunigung der externen Achsen [%] Hauptlauf
Bemerkung

SysVar 08.02.03 de 11 von 170


Systemvariablen

$ACC_MA Maximalwerte der Bahnbeschleunigung, Schwenkbeschleunigung


und Drehbeschleunigung

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL CP $ACC_MA={CP 4.6,ORI1 200.0,ORI2 200.0}
Bemerkung CP = Max. Bahnbeschleunigung [m/s2],
ORI1 = Max. Schwenkbeschleunigung [Grad/s2],
ORI2 = Max. Drehbeschleunigung [Grad/s2]
Bei Ermitteln der Werte beachten, daß keine Achse an der Stromgrenze
fährt.

$ACC_OV Beschleunigungswerte bei Override--Änderungen

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL CP $ACC_MA={CP 4.6,ORI1 200.0,ORI2 200.0}
Bemerkung CP = Bahnbeschleunigung bei Override--Änderungen [m/s2],
ORI1 = Schwenkbeschleunigung bei Override--Änderungen [Grad/s2],
ORI2 = Drehbeschleunigung bei Override--Änderungen [Grad/s2]

$ACT_BASE Nummer des aktuellen Base--Systems

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $ACT_BASE
;Aktuelle Base--Nummer
Bemerkung

$ACT_EX_AX Nummer der aktuellen externen Basis--Kinematik

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $ACT_EX_AX
;Aktuelle externe Kinematik
Bemerkung

12 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$ACT_TOOL Nummer des aktuellen Tool--Koordinatensystems

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $ACT_TOOL
;Aktuelle Toolnummer
Bemerkung

$ACT_VAL_DIF Maximal zulässige Differenz der Geber--Istwerte beim


Aus--/Einschalten der Steuerung

Datentyp Integer min.


Wert
Einheit Inkr max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $ACT_VAL_DIF
;Geberistwertdifferenz [Inkr]
Bemerkung Bei Grenzwertüberschreitung erscheint die Meldung:
“Justage durchführen”.

$ADAP_ACC Aktivieren der Beschleunigungsanpassung

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile DECL ADAP_ACC $ADAP_ACC=#STEP1
;Beschleunigungsanpassung
(#NONE, #STEP1 )
Bemerkung *) #STEP1 bzw. #STEP2 erfordern gültige
Dynamikdaten ($DYN_DAT)

Optionen Auswirkung
#NONE Nicht aktiviert
#STEP1 Dynamikmodell ohne kinetische Energie *)
#STEP2 Dynamikmodell mit kinetischer Energie *)

SysVar 08.02.03 de 13 von 170


Systemvariablen

$ADVANCE Angabe des Vorlaufes (max. 5 Bewegungssätze)

Datentyp Integer min. 0


Wert
Einheit Bewegungssätze max. 5
In Datei ------
Originalzeile INT $ADVANCE
;Vorlauf [max. 5 Bewegungssätze]
Bemerkung

$ALARM_STOP Signalvereinbarung für die Kurzschlußbremsung (generatorischer


Stopp)

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $ALARM_STOP $OUT[1013]
Bemerkung

$ANA_DEL_FLT Analog--Ausgangsfilter

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL SW_ONOFF $ANA_DEL_FLT=#OFF
Bemerkung

Optionen Auswirkung
#ON Eingeschaltet
#OFF Ausgeschaltet

$ANIN[n] Analogeingänge

Datentyp Real min. --1.0


Wert
Einheit V max. +1.0
In Datei ------
Originalzeile REAL $ANIN[n]
Bemerkung [n] = [1] ... [8]
--1.0 ----> --10 V
+1.0 ----> +10 V

14 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$ANOUT[n] Analogausgänge

Datentyp Real min. --1.0


Wert
Einheit V max. +1.0
In Datei ------
Originalzeile REAL $ANOUT[n]
Bemerkung [n] = [1] ... [16]
--1.0 ----> --10 V
+1.0 ----> +10 V

$APO_DIS_PTP[n] Maximaler Überschleifweg PTP--Achse[n]

Datentyp Real min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $APO_DIS_PTP[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$ASYNC_AX Verfahreingang für asynchrone Zusatzachsen E1 -- E6


negativer oder positiver Ausrichtung

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile
Bemerkung

$ASYNC_AX1_M
Verfahreingang für asynchrone Zusatzachsen E1 -- E6
... negativer Ausrichtung
$ASYNC_AX6_M

Originalzeile SIGNAL $ASYNC_AX1_M $IN[1026]


...
SIGNAL $ASYNC_AX6_M $IN[1026]

SysVar 08.02.03 de 15 von 170


Systemvariablen

$ASYNC_AX1_P
Verfahreingang für asynchrone Zusatzachsen E1 -- E6
... positiver Ausrichtung
$ASYNC_AX6_P

Originalzeile SIGNAL $ASYNC_AX1_P $IN[1026]


...
SIGNAL $ASYNC_AX6_P $IN[1026]

$ASYNC_AXIS Bit--Feld, um Zusatzachsen asynchron zu schalten

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $ASYNC_AXIS
;Aktive asynchrone Zusatzachsen
Bemerkung Mit einer Zuweisung von $ASYNC_AXIS im KRL--Programm gelten ab
dieser Stelle die neu festgelegten asynchronen Achsen, solange, bis eine
neue Zuweisung erfolgt.
Beim Beschreiben von $ASYNC_AXIS wird ein Vorlaufstopp ausgelöst,
wenn sich der Wert von $ASYNC_AXIS ändert. Vor Übernahme eines
neuen Wertes von $ASYNC_AXIS wird gewartet, bis alle synchronen
Bewegungen (durch Vorlaufstopp) und alle asynchronen Bewegungen
beendet sowie alle Achsen in Position sind. Daher ist die Anweisung
”$ASYNC_AXIS=...” -- neben der Systemvariablen $ASYNC_STATE eine
Möglichkeit, synchrone und asynchrone Bewegungen zeitlich zu synchro-
nisieren.
$ASYNC_AXIS kann nur im KRL--Programm, nicht aber im Interrupt und
nicht im SUBMIT--Interpreter verändert werden.
Die Bits entsprechen in aufsteigender Reihenfolge den Zusatzachsen:
Bit 0 = Zusatzachse 1,
Bit 1 = Zusatzachse 2 usw.
Ist das Bit gesetzt, wird die Zusatzachse asynchron geschaltet. Ist das Bit
zurückgesetzt, wird die Zusatzachse wieder synchron geschaltet.

Optionen Auswirkung
Bit = 1 entsprechende Zusatzachse ist asynchron geschaltet
Bit = 0 entsprechende Zusatzachse ist synchron geschaltet

16 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$ASYNC_FLT Filter für asynchrone Zusatzachsen

Datentyp Integer min. 0


Wert
Einheit ms max. 16
In Datei ------
Originalzeile INT $ASYNC_FLT
Bemerkung Der Wert von $ASYNC_FLT ist die Filterlänge für alle asynchronen koordi-
nierten Bewegungen in Millisekunden, dies entspricht der Systemvariablen
$FILTER für synchrone Bewegungen.

$ASYNC_MODE Mode für asynchrone Zusatzachsen

Datentyp Integer min. 0


Wert
Einheit max. 16
In Datei Steu\Mada\$custom.dat
Originalzeile INT $ASYNC_MODE=’B0000’
;Mode für asynchrone Zusatzachsen
Bemerkung In den Maschinendaten der Steuerung können mit der Bitmaske
$ASYNC_MODE verschiedene Modi der asynchronen Bewegungsausfüh-
rung fest eingestellt werden.
Eine Änderung bei laufender Robotersteuerung ist nicht möglich.
Die Modi sind beliebig kombinierbar.
Die Einstellung bestimmter Modi ist speziell für den Einsatz bei Sonderap-
plikationen notwendig.
Bei der Standardeinstellung (Default--Mode) ist kein Bit von
$ASYNC_MODE gesetzt.
Zur Zeit wird nur Bit 0 verwendet:
Bit 0 = 0 (1. Bit): Default--Mode
Bit 0 = 1 (1. Bit): Mode 1
Bit 1 ( 2. Bit ): Mode 2 Verhalten bei Satzanwahl

$ASYNC_OPT Optionsflag für: “Asynchrone Achsen sind möglich”

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $ASYNC_OPT=FALSE
Bemerkung

Optionen Auswirkung
TRUE Asynchrone Achsen sind möglich
FALSE Asynchrone Achsen sind nicht möglich

SysVar 08.02.03 de 17 von 170


Systemvariablen

$ASYNC_STATE Aktueller Zustand der asynchronen Bewegungsausführung

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL ASYNC_STATE $ASYNC_STATE
;Zustand der asynchronen Achsen
Bemerkung Mit Hilfe von $ASYNC_STATE kann der aktuelle Zustand der asynchronen
Bewegungsausführung geprüft werden.
Der Wert ist nur lesbar, eine Zuweisung ist nicht möglich.
Diese Variable kann zur Synchronisierung zwischen asynchronen und
“normalen” Roboterbewegungen verwendet werden.

Optionen Auswirkung
Asynchrone Bewegungen aktiv, angehalten oder zwischengespei-
#BUSY
chert.
Keine asynchronen Bewegungen aktiv bzw. angehalten (Queue leer),
#IDLE
letzte Bewegung ohne Unterbrechung beendet.
Keine asynchrone Bewegung aktiv oder angehalten (Queue leer),
#CANCELLED
letzte Bewegung wurde abgebrochen.
#PEND Asynchrone Bewegung ist geplant, wird aber gerade nicht ausgeführt.

$ASYNC_T1_FAST Steuerung der Geschwindigkeitsreduzierung im Test1--Betrieb

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $ASYNC_T1_FAST=’B0000’
;Geschw.--Red. Deaktiviert ( T1 )
Bemerkung

Optionen Auswirkung
0 aktiviert
1 deaktiviert

18 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$ASYS Belegung der Handverfahrtasten

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL ASYS $ASYS
;Verfahrtastenbelegung (ROBOT = Roboter, EXTAX = Externe Achsen)
Bemerkung

Optionen Auswirkung
#ROBOT Roboterachsen A1--A6
#EXTAX Zusatzachsen E1 -- E6
#EXTAX2 Externe Kinematik

$AUT Signalvereinbarung ”Betriebsart Automatik”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $AUT $OUT[995]
;Betriebsart Automatik
Bemerkung

$AUX_POWER Signalvereinbarung Externe Spannungsversorgung

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $AUX_POWER $IN[1026]
;Externe Spannungsversorgung aktiv
Bemerkung Besitzt “$AUX_POWER” den Wert “TRUE”, ist die externe Spannungsver-
sorgung aktiv, bei “FALSE” ist sie nicht aktiv.

SysVar 08.02.03 de 19 von 170


Systemvariablen

Simulation des geschlossenen Drehzahlregelkreises für die einzel-


$AX_SIM_ON nen Achsen im Office--Betrieb

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $AX_SIM_ON=’B111111’
;Achssimulation
Bemerkung Bitfolge:
LSB: Achse 1
MSB: Achse 12

$AXIS_ACT Aktuelle achsspezifische Roboterposition

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6AXIS $AXIS_ACT
;Aktuelle Roboterposition achsspezifisch [mm,Grad]
Bemerkung

$AXIS_ACT.A1
... Aktuelle achsspezifische Roboterposition, Achse 1 -- 6
$AXIS_ACT.A6

Datentyp Real min. 0


Wert
Einheit mm, ° max.

$AXIS_ACT.E1
... Aktuelle achsspezifische Roboterposition, Zusatzachse 1 -- 6
$AXIS_ACT.E6

$AXIS_ACTMOD Anzeige der Achswinkel modulo 180°

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile E6AXIS $AXIS_ACTMOD
Bemerkung

20 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$AXIS_BACK Startposition des aktuellen Bewegungssatzes, achsspezifisch

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6AXIS $AXIS_BACK
;Anfangsposition des aktuellen Bewegungssatzes achsspezifisch
[mm,Grad]
Bemerkung

$AXIS_BACK.A1
Startposition des aktuellen Bewegungssatzes
... Achse A1 -- A6
$AXIS_BACK.A6

Datentyp Real min. 0


Wert
Einheit mm, ° max.

$AXIS_BACK.E1
Startposition des aktuellen Bewegungssatzes
... Zusatzachse E1 -- E6
$AXIS_BACK.E6

$AXIS_CAL Anzeige, ob Achse referenziert ist

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL AXIS_CAL $AXIS_CAL
Bemerkung Anzeige referenzierter Achsen

$AXIS_CAL.A1
... Anzeige, ob Achse A1 ... A6 referenziert ist
$AXIS_CAL.A6

Datentyp Boolean min.


Wert
Einheit max.

Optionen Auswirkung
TRUE Achse ist referenziert
FALSE Achse ist nicht referenziert

SysVar 08.02.03 de 21 von 170


Systemvariablen

$AXIS_CAL.E1
... Anzeige, ob Zusatzachse E1 ... E6 referenziert ist
$AXIS_CAL.E6

$AXIS_DIR[n] Drehrichtung der Achse[n]

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $AXIS_DIR[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

Optionen Auswirkung
1 Mathematisch positiv
--1 Mathematisch negativ

$AXIS_FOR Zielposition des aktuellen Bewegungssatzes, achsspezifisch

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6AXIS $AXIS_FOR
;Zielposition des aktuellen Bewegungssatzes achsspezifisch [mm,Grad]
Bemerkung

$AXIS_FOR.A1
... Zielposition des aktuellen Bewegungssatzes, Achse A1 ... A6
$AXIS_FOR.A6

Datentyp Real min. 0


Wert
Einheit mm, ° max.

$AXIS_FOR.E1
... Zielposition des aktuellen Bewegungssatzes, Zusatzachse E1 ... E6
$AXIS_FOR.E6

22 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$AXIS_HOME[5] Definition der verschiedenen Home--Positionen

Datentyp Array min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile E6AXIS $AXIS_HOME[5]
Bemerkung

$AXIS_INC Inkrementelle Istwerte der Achsen

Datentyp Structure min.


Wert
Einheit Inkr max.
In Datei ------
Originalzeile DECL AXIS_INC $AXIS_INC
Bemerkung Darstellung der Achsposition in Inkrementen.

$AXIS_INC.I1
... Inkrementeller Istwert Achse A1 ... A6
$AXIS_INC.I6

Datentyp Integer min. 0


Wert
Einheit Inkr max.

$AXIS_INC.E1
... Inkrementeller Istwert Zusatzachse E1 ... E6
$AXIS_INC.E6

$AXIS_INT Roboterposition zum Zeitpunkt eines Interrupts

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6AXIS $AXIS_INT
;Unterbrechungsposition achsspezifisch [mm,Grad]
Bemerkung

SysVar 08.02.03 de 23 von 170


Systemvariablen

$AXIS_INT.A1
Roboterposition zum Zeitpunkt eines Interrupts
... Achse A1 ... A6
$AXIS_INT.A6

Datentyp Real min. 0


Wert
Einheit mm, ° max.

$AXIS_INT.E1
Roboterposition zum Zeitpunkt eines Interrupts
... Zusatzachse E1 ... E6
$AXIS_INT.E6

$AXIS_JUS Anzeige, ob Achse justiert ist

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL AXIS_CAL $AXIS_JUS
;Anzeige justierter Achsen
Bemerkung

$AXIS_JUS.A1
... Anzeige, ob Achse A1 ... A6 justiert ist
$AXIS_JUS.A6

Datentyp Boolean min.


Wert
Einheit max.

Optionen Auswirkung
TRUE Achse justiert
FALSE Achse nicht justiert

$AXIS_JUS.E1
... Anzeige, ob Zusatzachse E1 ... E6 justiert ist
$AXIS_JUS.E6

$AXIS_RESO Auflösung des Meßsystems

Datentyp Integer min.


Wert
Einheit Inkr / Umdrehung max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $AXIS_RESO[12]
;Auflösung des Meßsystems Achse(i) (i=1:A1, i=7:E1) [Inkr]
Bemerkung Anzahl der Impulse pro Geberumdrehung

24 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$AXIS_RET Achsstellungen bei Verlassen der programmierten Bahn,


achsspezifisch

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6AXIS $AXIS_RET
;Rückpositionieren achsspezifisch [mm,Grad]
Bemerkung

$AXIS_RET.A1
... Stellung Achse A1 ... A6 bei Verlassen der programmierten Bahn
$AXIS_RET.A6

Datentyp Character min. 0


Wert
Einheit mm, ° max.

$AXIS_RET.E1
Stellung Zusatzachse E1 ... E6 bei Verlassen der programmierten
... Bahn
$AXIS_RET.E6

$AXIS_SEQ[n] Umordnung von Achse ... zu Achse ...

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $AXIS_SEQ[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

SysVar 08.02.03 de 25 von 170


Systemvariablen

$AXIS_TYPE[n] Achsenkennung

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $AXIS_TYPE[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]:Zusatzachse E1 ... E6

Optionen Auswirkung
1 Linear
2 Spindel
3 Rotatorisch
4 Endlich drehend
5 Endlos drehend

$AXWORKSPACE[n] Definition der achsspezifischen Arbeitsraumüberwachung

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL AXBOX$AXWORKSPACE[n]
Bemerkung [n] = [1] ... [8]

26 von 170 SysVar 08.02.03 de


2 A (Fortsetzung)

$AXWORKSPACE[n].MODE Funktionsweise der achsspezifischen Arbeitsraumüberwachung

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL AXBOX$AXWORKSPACE[n]
Bemerkung [n] = [1] ... [8]

Optionen Auswirkung
#OFF Überwachung des Arbeitsraumes ausgeschaltet.
Ausgang wird gesetzt, wenn sich der TCP innerhalb des Arbeitsrau-
#INSIDE
mes befindet.
Ausgang wird gesetzt, wenn sich der TCP außerhalb des Arbeitsrau-
#OUTSIDE
mes befindet.
Befindet sich der TCP innerhalb des Arbeitsraumes, wird der Aus-
#INSIDE_STOP
gang gesetzt und der Roboter gestoppt.
Befindet sich der TCP außerhalb des Arbeitsraumes, wird der Aus-
#OUTSIDE_STOP
gang gesetzt und der Roboter gestoppt.

$AXWORKSPACE[n].STATE Verletzung des achsspezifischen Arbeitsraumes

Datentyp Boolean min.


Wert
Einheit max.

Optionen Auswirkung
TRUE Der achsspezifische Arbeitsraum ist verletzt
FALSE Der achsspezifische Arbeitsraum ist nicht verletzt

$AXWORKSPACE_NAMEn[] Bezeichnung des jeweiligen achsspezifischen Arbeitsraumes

Datentyp Character min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile CHAR $AXWORKSPACE_NAMEn[24]
$AXWORKSPACE_NAMEn[]=”AXWORKSPACE_NAME n”
Bemerkung [n] = [1] ... [8]

SysVar 08.02.03 de 27 von 170


Systemvariablen

$AXWORKSTATE1
... Signalvereinbarung “Arbeitsraumverletzung”
$AXWORKSTATE8

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $AXWORKSTATE1 $OUT[969]
...
SIGNAL $AXWORKSTATE8 $OUT[976]
;Ausgang der Achsarbeitsraumüberwachung .
Bemerkung

Optionen Auswirkung
$OUT[n] Ausgang Nr. 1 ... 4096
Nicht benötigte Ausgänge können auf “FALSE” rangiert werden,
FALSE
z. B. SIGNAL $AXWORKSTATE1 FALSE

28 von 170 SysVar 08.02.03 de


3 B

3 B

$BASE Verschiebung und Verdrehung des Basis--Koordinatensystems


gegenüber dem Welt--Koordinatensystem im Vorlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$operate.dat
Originalzeile FRAME $BASE
;Basis im Weltkoordinatensystem Vorlauf
Bemerkung

Verdrehung des Basis--Koordinatensystems gegenüber dem Welt--


$BASE.A Koordinatensystem im Vorlauf um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

Verdrehung des Basis--Koordinatensystems gegenüber dem Welt--


$BASE.B Koordinatensystem im Vorlauf um die Y--Achse

Verdrehung des Basis--Koordinatensystems gegenüber dem Welt--


$BASE.C Koordinatensystem im Vorlauf um die X--Achse

Verschiebung des Basis--Koordinatensystems gegenüber dem


$BASE.X Welt--Koordinatensystem im Vorlauf in X--Richtung

Datentyp Real min.


Wert
Einheit mm max.

Verschiebung des Basis--Koordinatensystems gegenüber dem


$BASE.Y Welt--Koordinatensystem im Vorlauf in Y--Richtung

Verschiebung des Basis--Koordinatensystems gegenüber dem


$BASE.Z Welt--Koordinatensystem im Vorlauf in Z--Richtung

Verschiebung und Drehung des Basis--Koordinatensystems


$BASE_C gegenüber dem Welt--Koordinatensystem im Hauptlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile FRAME $BASE_C
;Basis im Weltkoordinatensystem Hauptlauf
Bemerkung

SysVar 08.02.03 de 29 von 170


Systemvariablen

Drehung des Basis--Koordinatensystems gegenüber dem


$BASE_C.A Welt--Koordinatensystem im Hauptlauf um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

Drehung des Basis--Koordinatensystems gegenüber dem


$BASE_C.B Welt--Koordinatensystem im Hauptlauf um die Y--Achse

Drehung des Basis--Koordinatensystems gegenüber dem


$BASE_C.C Welt--Koordinatensystem im Hauptlauf um die X--Achse

Verschiebung des Basis--Koordinatensystems gegenüber dem


$BASE_C.X Welt--Koordinatensystem im Hauptlauf in X--Richtung

Datentyp Real min.


Wert
Einheit mm max.

Verschiebung des Basis--Koordinatensystems gegenüber dem


$BASE_C.Y Welt--Koordinatensystem im Hauptlauf in Y--Richtung

Verschiebung des Basis--Koordinatensystems gegenüber dem


$BASE_C.Z Welt--Koordinatensystem im Hauptlauf in Z--Richtung

$BASE_KIN Externe Kinematik / Achsen in Base

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $BASE_KIN[29]
;Externe Kinematik / Achsen in Base
Bemerkung

$BOUNCE_TIME Prellzeit für EMT--Signale.

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $BOUNCE_TIME
;Prellzeit EMT--Taster [ms]
Bemerkung Das Signal wird nur akzeptiert, wenn es über den gesamten Zeitraum defi-
niert durch $BOUNCE_TIME stabil bleibt.

30 von 170 SysVar 08.02.03 de


3 B (Fortsetzung)

$BRAKE_SIG Bitfeld für Achsbremsen, A1 ... A6 sowie E1 ... E6

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $BRAKE_SIG
;Bit--Feld Bremsensignale
Bemerkung

Optionen Auswirkung
0 Bremse geschlossen.
1 Bremse offen.

Zeit, nach der die Achsbremsen nach erfolgter Positionierung beim


$BRK_DEL_COM Handverfahren geschlossen werden

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $BRK_DEL_COM
;Bremsverzoegerungszeitkommando--Modus [ms]
Bemerkung

$BRK_DEL_EX Bremsverzögerungszeit für Zusatzachsen

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $BRK_DEL_EX
;Bremsverzoegerungszeit für Zusatzachsen
Bemerkung

SysVar 08.02.03 de 31 von 170


Systemvariablen

Zeit, nach der die Achsbremsen nach erfolgter Positionierung im


$BRK_DEL_PRO Programm geschlossen werden

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $BRK_DEL_PRO
;Bremsverzoegerungszeit im Programm [ms]
Bemerkung

$BRK_MAX_TM Maximale Bremszeit beim bahntreuen NOT--AUS

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $BRK_MAX_TM
Bemerkung

$BRK_MODE Bremsensteuerungsmodus

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $BRK_MODE=’B0101’
Bemerkung Die Zählung der Bits erfolgt von rechts.
Bit 0: Achsen A1 -- A6 schließen bei Kommando--Ende (Bit 0 = 1) /
nicht (Bit 0 = 0)
Bit 1: Achsen A1 -- A6 schließen einzeln1) (Bit 1 = 1) /
gemeinsam (Bit 1 = 0)
Bit 2: Achsen A1 -- A6 schließen bei Bewegungspausen (Bit 2 = 1) /
nicht (Bit 2 = 0)
Bit 3: Zusatzachsbremsen schließen bei Bewegungspausen
einzeln (Bit 3 = 1) / gemeinsam mit Achsen A1 -- A6 (Bit 3 = 0)
1)Sonderfall

32 von 170 SysVar 08.02.03 de


3 B (Fortsetzung)

Zeitverzögerung der Sollwertausgabe, nach Öffnung


$BRK_OPENTM der Achsbremsen

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $BRK_OPENTM
;Bremsoeffnungszeit [ms]
Bemerkung

$BUS_PAR L2--Busschnittstelle (KRC32)

Datentyp Structure min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile DECL BUS $BUS_PAR={PROTO 1,PROC 5,RCO 5,BL 128,PT 0,TS
1,BAUD 187500,TSL --1,MIN_TDSR --1,MAX_TDSR --1,TTR --1,HSA
--1,G --1,DFLT_SAP --1}
Bemerkung

SysVar 08.02.03 de 33 von 170


Systemvariablen

4 C
$CABLE2_MON Überwachung zusätzlicher Motorkabel

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile BOOL $CABLE2_MON=FALSE
Bemerkung Angabe, ob der Anschluß des zweiten Motorkabels überprüft werden soll
(TRUE bei Sondermaschinen).

Optionen Auswirkung
TRUE Überwachung aktiviert.
FALSE Überwachung deaktiviert.

$CAL_DIFF Justageunterschied bei EMT--Justage mit Checkfahrt

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $CAL_DIFF
;Justage--Differenz
Bemerkung

Referenzpunktverschiebung zwischen mathematischem Nullpunkt


$CALP und Geber--Nullpunkt

Datentyp Structure min. 0


Wert
Einheit max.
In Datei ------
Originalzeile E6AXIS $CALP
;Referenzpunktverschiebung
Bemerkung

34 von 170 SysVar 08.02.03 de


4 C (Fortsetzung)

$CALP.A1
Referenzpunktverschiebung zwischen mathematischem Nullpunkt
... und Geber--Nullpunkt, Achse A1 ... A6
$CALP.A6

Datentyp Real min. 0


Wert
Einheit ° max.

$CALP.E1
Referenzpunktverschiebung zwischen mathematischem Nullpunkt
... und Geber--Nullpunkt, Zusatzachse E1 ... E6
$CALP.E6

$CIRC_TYPE Orientierungsführung bei CIRC--Sätzen im Vorlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL CIRC_TYPE $CIRC_TYPE
;Bezugssystem für die Orientierungsinterpolation bei CIRC--Saetzen
(Vorlauf)
Bemerkung

Optionen Auswirkung
#BASE Raumbezogene Orientierungsführung.
#PATH Bahnbezogene Orientierungsführung.

$CIRC_TYPE_C Orientierungsführung bei CIRC--Sätzen im Hauptlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL CIRC_TYPE $CIRC_TYPE_C
;Bezugssystem für die Orientierungsinterpolation bei CIRC--Saetzen
(Hauptlauf)
Bemerkung

Optionen Auswirkung
#BASE Raumbezogene Orientierungsführung
#PATH Bahnbezogene Orientierungsführung

SysVar 08.02.03 de 35 von 170


Systemvariablen

$CMD Anzeige der Zuordnungsnummer (Handle) für den Kommandokanal

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $CMD
Bemerkung

$COM_NAME Kommando, welches beim nächsten Start abgearbeitet wird

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $COM_NAME[486]
;Kommando, welches beim naechsten Start abgearbeitet wird
Bemerkung

$COM_VAL_MI[n] Begrenzung der Soll--Drehzahl Achse[n]

Datentyp Real min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $COM_VAL_MI[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n]= [7] ... [12]: Zusatzachse E1 ... E6

$CONF_MESS Signalvereinbarung ”Quittierungssmeldungen löschen”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $CONF_MESS $IN[1026]
Bemerkung Externe Quittierung

36 von 170 SysVar 08.02.03 de


4 C (Fortsetzung)

$COSYS Koordinatensystem im Handverfahren

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL COSYS $COSYS
Bemerkung

Optionen Auswirkung
#AX Bewegungen beziehen sich auf achsbezogenes Koordinatensystem.
#CAR Bewegungen beziehen sich auf kartesisches Koordinatensystem.

$COUNT_I[n] Frei verwendbare Ganzzahl--Variablen

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $COUNT_I[n]
Bemerkung [n]=[1] ... [32]
Wird beim VW--Paket als Zähler verwendet

$COUP_COMP[N,D] Achskopplungsfaktoren

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL FRA $COUP_COMP[6,6]
Bemerkung Achskopplungsfaktor N = Zähler, D = Nenner

SysVar 08.02.03 de 37 von 170


Systemvariablen

$CP_VEL_TYPE Reduzierung der CP--Bahngeschwindigkeit

Datentyp Enum min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile DECL CP_VEL_TYPE $CP_VEL_TYPE=#CONSTANT
Bemerkung Bei Ueberschreiten der Achsgrenzwerte wird die CP--Bahngeschwindigkeit
reduziert.
Beim kartesischen Handverfahren ist die Reduzierung immer aktiviert

Optionen Auswirkung
#Constant Keine Reduzierung
#VAR_T1 Reduzierung im Handbetrieb SStep(T1)
#VAR_ALL Reduzierung in allen Betriebsarten

$CPVELREDMELD Meldungsausgabe bei Reduzierung der Bahngeschwindigkeit

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $CPVELREDMELD
Bemerkung Die Meldung beinhaltet den Punktnamen sowie die maximale Absenkung
im jeweiligen Befehlssatz.

Optionen Auswirkung
0 Meldungsausgabe deaktiviert.
1 Ausgabe einer Meldung beim Satzwechsel im Handbetrieb.
100 Ausgabe einer Meldung beim Satzwechsel in allen Betriebsarten.

$CURR_ACT Aktueller Strom der Achsen 1 -- 12

Datentyp Real min.


Wert
Einheit % max.
In Datei ------
Originalzeile REAL $CURR_ACT[12]
;Aktueller Motorstrom in %
Bemerkung Aktueller Strom der Achse 1 -- 12 in % vom maximalen Verstärker--Strom
$CURR_MAX (--100% bis +100%)

38 von 170 SysVar 08.02.03 de


4 C (Fortsetzung)

$CURR_CAL Stromkalibrierung im Powermodul

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $CURR_CAL[12]
;Stromkalibrierung Powermodul (Stromwandler)
Bemerkung Für KRC 1a und KRC 2 sind die Kalibrierungen =1

Optionen Auswirkung
1 Hohe Leistung
2 Mittlere / geringe Leistung
4 Geringe Leistung

$CURR_COM_EX Strombegrenzung für externe Achsen im Handverfahren

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $CURR_COM_EX[6]
;Stromgrenze externer Achsen für Handverfahren
Bemerkung

$CURR_LIM[n] Strombegrenzung an der Achse[n]

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $CURR_LIM[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$CURR_MAX Maximaler Effektivstrom am Powermodulausgang

Datentyp Real min.


Wert
Einheit A max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $CURR_MAX[12]
Bemerkung Es muß Effektivstrom anliegen

SysVar 08.02.03 de 39 von 170


Systemvariablen

$CURR_MON[n] Zulässiger Nennstrom

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $CURR_MON[n]
;Zulässiger Nennstrom
Bemerkung Definiert die Grenze für i2t--Überwachung für 55 ° C
[n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$CURR_RED Strombegrenzung der Achsen 1 -- 12 in % vom maximalen Strom

Datentyp Real min.


Wert
Einheit % max.
In Datei ------
Originalzeile REAL $CURR_RED[12,2]
Bemerkung 1. Ziffer: Achse
2. Ziffer: 1 = positive Grenze
2 = negative Grenze

$CYC_DEF1 ... 32 Eingabetext zum entsprechenden Cycflag

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $CYC_DEF1[470]
...
CHAR $CYC_DEF32[470]
Bemerkung

$CYCFLAG[n] Zyklische Flags

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $CYCFLAG[256]
Bemerkung [n]=[1] ... [256]
Es stehen 256 Zyklische Flags zur Verfügung, diese Flags werden unab-
hängig vom Programmlauf zyklisch aktualisiert. Vorgabewert ist FALSE.

40 von 170 SysVar 08.02.03 de


5 D

5 D

Anzahl der gelesenen seriellen Empfangstelegramme


$DATA_SERx im Puffer des Kanals x

Datentyp Integer min. 1


Wert
Einheit max. 4
In Datei ------
Originalzeile INT $DATA_SER1
;Zaehler für Datenpakete die ueber: SER1 eintreffen
Bemerkung

Eine Variable vom Typ “Signal” wird entweder bit-- oder gruppen-
$DATA_INTEGRITY weise ausgegeben

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $DATA_INTEGRITY=FALSE
;Signal--Datenkonsistenz Ein/Aus
Bemerkung Wird die Signal--Variable gruppenweise ausgegeben, muß die Signaldefini-
tion in eines der definierten Datenobjekte “OUTB”, “OUTW” oder “OUTDW”
erfolgen.

Optionen Auswirkung
TRUE Daten werden als eine Gruppe von Bits ausgegeben
FALSE Daten werden bitweise ausgegeben

SRC--Name, auf dessen Variablen in der Datenliste mit Variablen-


$DATAPATH korrektur zugegriffen werden soll

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $DATAPATH[16]
;Kommandocompiler--Suchpfad
Bemerkung

SysVar 08.02.03 de 41 von 170


Systemvariablen

$DATE Systemzeit und Systemdatum

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL DATE $DATE
;Interne Systemzeit
Bemerkung

$DECEL_MB Abbremszeit bei Drehzahlstop

Datentyp Real min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $DECEL_MB[12]
Bemerkung Bremsrampe bei generatorischem Stopp [ms].
Beim Drehzahl--Stopp wird der aktuelle Drehzahlistwert als Drehzahlsoll-
wert genommen und mit der im $DECEL_MB eingestellten Rampe auf Null
heruntergefahren.

$DEF_A4FIX Fixieren der Achse 4 beim Palettieren

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile BOOL $DEF_A4FIX=FALSE
;Achse 4 fixiert
Bemerkung Legt fest, ob der Roboter 5 oder 6 Achsen besitzt.
Beim Laden und Programmreset wird $PAL_MODE = $DEF_A4FIX ge-
setzt; das heißt, für den 5--Achsroboter ist der Palettiermodus damit auto-
matisch aktiviert und für den normalen 6--Achser nicht.

Optionen Auswirkung
TRUE 5--Achsroboter (Achse 4 fixiert)
FALSE 6--Achsroboter

42 von 170 SysVar 08.02.03 de


5 D (Fortsetzung)

$DEF_FLT_CP Default--Filter CP--Fahren

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $DEF_FLT_CP
;Defaultfilter CP
Bemerkung

$DEF_FLT_PTP Default--Filter PTP--Fahren

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $DEF_FLT_PTP
;Defaultfilter PTP
Bemerkung

Schwerpunkt--Frame der Defaultmasse am Flansch im


$DEF_L_CM Flansch--Koordinatensystem

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile FRAME $DEF_L_CM={x 230.0,y 0.0,z 210.0,a 0.0,b 0.0,c 0.0}
;Massenschwerpunkt--Frame
Bemerkung

$DEF_L_CM.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit max.

$DEF_L_CM.B Drehung um die Y--Achse

$DEF_L_CM.C Drehung um die X--Achse

$DEF_L_CM.X Verschiebung in X--Richtung

$DEF_L_CM.Y Verschiebung in Y--Richtung

$DEF_L_CM.Z Verschiebung in Z--Richtung

SysVar 08.02.03 de 43 von 170


Systemvariablen

Default--Eigenträgheit der Last am Flansch im


$DEF_L_J Default--Massenschwerpunkts--Koordinatensystem der Last

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile DECL INERTIA $DEF_L_J={X 17,5,Y 17,5,Z 17,5}
;Eigentraegheitsmomente der Last
Bemerkung

$DEF_L_M Defaultmasse der Last am Flansch

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile REAL $DEF_L_M
Bemerkung

$DEF_LA3_CM Schwerpunkt--Frame der Defaultmasse der Zusatzlast auf der


Achse 3 im Flansch--Koordinatensystem

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile FRAME $DEF_LA3_CM={x +505.0,y 0.0,z --1110.0,a 0.0,b 0.0,c 0.0}
;Massenschwerpunkt--Frame A3
Bemerkung

$DEF_LA3_CM.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit max.

$DEF_LA3_CM.B Drehung um die Y--Achse

$DEF_LA3_CM.C Drehung um die X--Achse

$DEF_LA3_CM.X Verschiebung in X--Richtung

$DEF_LA3_CM.Y Verschiebung in Y--Richtung

$DEF_LA3_CM.Z Verschiebung in Z--Richtung

44 von 170 SysVar 08.02.03 de


5 D (Fortsetzung)

$DEF_LA3_J Defaulteigenträgheit der Zusatzlast auf der Achse 3

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile DECL INERTIA $DEF_LA3_J={X 16,8,Y 16,8,Z 16,8}
Bemerkung

$DEF_LA3_M Defaultmasse der Zusatzlast auf der Achse 3

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile REAL $DEF_LA3_M
Bemerkung

$DEF_OV_JOG Vorgabewert für Override im Handbetrieb

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $DEF_OV_JOG
Bemerkung

$DEVICE Bediengerätezustand

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL DEVICE $DEVICE
;Bediengeraetezustand (ACTIVE, BLOCK, PASSIVE, OFF)
Bemerkung

Optionen Auswirkung
#ACTIVE
#BLOCK
#PASSIVE
#OFF

SysVar 08.02.03 de 45 von 170


Systemvariablen

$DH_4 Denavit--Hartenberg--Parameter der Hand


(Frame zwischen A4 und A5)

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL DHART $DH_4={DHART_A 0.0,DHART_D 0.0,DHART_ALPHA
90.0}
;A = Laenge A, D = Laenge D, ALPHA = Winkel ALPHA
Bemerkung Damit wird das Frame zwischen den Achsen 4 und 5 beschrieben.

$DH_4.DHART_A Denavit--Hartenberg--Parameter der Hand -- Länge A

Datentyp Real min.


Wert
Einheit mm max.

$DH_4.DHART_D Denavit--Hartenberg--Parameter der Hand -- Länge D

$DH_4.DHART_ALPHA Denavit--Hartenberg--Parameter der Hand -- Winkel Alpha

Datentyp Real min.


Wert
Einheit ° max.

$DH_5 Denavit--Hartenberg--Parameter der Hand


(Frame zwischen A5 und A6)

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL DHART $DH_5={DHART_A 0.0,DHART_D 0.0,DHART_ALPHA
--90.0}
;A = Laenge A, D = Laenge D, ALPHA = Winkel ALPHA
Bemerkung Damit wird das Frame zwischen den Achsen 5 und 6 beschrieben.

$DH_5.DHART_A Denavit--Hartenberg--Parameter der Hand -- Länge A

Datentyp Real min.


Wert
Einheit mm max.

$DH_5.DHART_D Denavit--Hartenberg--Parameter der Hand -- Länge D

$DH_5.DHART_ALPHA Denavit--Hartenberg--Parameter der Hand -- Winkel Alpha

Datentyp Real min.


Wert
Einheit ° max.

46 von 170 SysVar 08.02.03 de


5 D (Fortsetzung)

$DIGIN1
Signalvereinbarung, welcher Eingang dem Digitaleingang
... “$DIGIN1 ... 6” zugewiesen wird
$DIGIN6

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $DIGIN1 $IN[1026] TO $IN[1026]
...
SIGNAL $DIGIN6 $IN[1026] TO $IN[1026]
Bemerkung Zuweisen der Digitaleingänge 1 bis 6

$DIGIN1CODE
Festlegung, ob der Wert für “$DIGIN1 ... 6” mit oder ohne Vorzei-
... chen ist
$DIGIN6CODE

Datentyp Enum min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile DECL DIGINCODE $DIGIN1CODE=#UNSIGNED
...
DECL DIGINCODE $DIGIN6CODE=#UNSIGNED
Bemerkung Vorzeichenbelegung für $DIGIN1 ... 6

Optionen Auswirkung
#SIGNED Mit Vorzeichen.
#UNSIGNED Ohne Vorzeichen.

$DIR_CAL Festlegung der Referier--Richtung für jede Achse

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $DIR_CAL=’B000111111111’
;Referier--Richtung
Bemerkung

Optionen Auswirkung
Bit (n)= 0 Referenzpunkt der Achse n wird in positiver Richtung angefahren.
Bit (n)= 1 Referenzpunkt der Achse n wird in negativer Richtung angefahren.

SysVar 08.02.03 de 47 von 170


Systemvariablen

Richtung der Starttaste -- Programm wird entweder vorwärts oder


$DIRECTION rückwärts abgefahren.

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL DIRECTION $DIRECTION
Bemerkung

Optionen Auswirkung
#FORWARD Vorwärtsbearbeitung
#BACKWARD Rückwärtsbearbeitung

Mittlerer Abstand vom Handpunkt zur Singularität 1


$DIS_WRP1 (Alpha 1--Singularität)

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $DIS_WRP1
;Mittlerer Abstand Handpunkt zur Singularitaet1
Bemerkung

Mittlerer Abstand vom Handpunkt zur Singularität 2


$DIS_WRP2 (Alpha 5--Singularität)

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $DIS_WRP2
;Mittlerer Abstand Handpunkt zur Singularitaet2
Bemerkung

48 von 170 SysVar 08.02.03 de


5 D (Fortsetzung)

$DISPLAY_REF Formularneuausgabe bei Änderung von “$DISPLAY_VAR”

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $DISPLAY_REF
;Formularneuausgabe bei Aenderung von $DISPLAY_VAR
Bemerkung

$DISPLAY_VAR.NAME[32] Name der beobachtbaren Variablen

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL DISPLAY_VAR $DISPLAY_VAR[32]
;Beobachtbare Variablen
Bemerkung

$DISPLAY_VAR[1]...[32] Beobachtbare Variablen

$DISPLAY_VAR.PATH[12] Zugehöriger Dateilisten--Name

Datentyp Character min.


Wert
Einheit max.

$DISPLAY_VAR.TITLE[12] Auszugebender Name für die Variable

$DIST_NEXT Noch bis zum nächsten Punkt zurückzulegender Weg

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile REAL $DIST_NEXT
Bemerkung

SysVar 08.02.03 de 49 von 170


Systemvariablen

$DISTANCE Bogenlänge CP--Bewegung

Datentyp Real min.


Wert
Einheit mm max.
In Datei ------
Originalzeile REAL $DISTANCE
;Bogenlaenge CP--Bewegung in [mm]
Bemerkung

$DRIVE_CART Optionsbit: PTP--Punkte mit kartesischen Koordinaten

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $DRIVE_CART=TRUE
;PTP mit kartesischen Koordinaten
Bemerkung

Optionen Auswirkung
TRUE PTP--Punkte können kartesische Koordinaten haben
FALSE PTP--Punkte können keine kartesischen Koordinaten haben

$DRIVE_CP Optionsbit: Kartesisches Fahren des Roboters möglich (LIN, CIRC)

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $DRIVE_CP=TRUE
Bemerkung

Optionen Auswirkung
TRUE Kartesisches Fahren des Roboters möglich
FALSE Kartesisches Fahren des Roboters nicht möglich

50 von 170 SysVar 08.02.03 de


5 D (Fortsetzung)

$DRIVES_OFF Signalvereinbarung ”Antriebe AUS”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $DRIVES_OFF $IN[1025]
Bemerkung Antriebe AUS

$DRIVES_ON Signalvereinbarung ”Antriebe EIN”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $DRIVES_ON $IN[1026]
Bemerkung Antriebe EIN

Zuordnung der Achsen auf Kanäle der digitalen Servoelektronik


$DSECHANNEL (DSE)

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $DSECHANNEL[12]
;Achszuordnung auf DSE
Bemerkung

Modelldaten des Roboters für Beschleunigungsanpassung, Höhe-


$DYN_DAT[350] res Fahrprofil und kinetische Energie

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile REAL $DYN_DAT[350]
Bemerkung Enthält die Modelldaten des Roboters, die für die Beschleunigungsanpas-
sung, das höhere Fahrprofil sowie der Berechnung der kinetischen Energie
benötigt werden (Trägheiten, Reibwerte, etc.)

SysVar 08.02.03 de 51 von 170


Systemvariablen

52 von 170 SysVar 08.02.03 de


6 E

6 E
$EMSTOP_ADAP Modellbasierter NOT--AUS

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile BOOL $EMSTOP_ADAP=FALSE
;NOT--AUS mit Dynamikmodell
Bemerkung Die Systemvariable “$ADAP_ACC” darf nicht auf “#NONE” gesetzt sein
(Dynamikmodell für die Kinematik muß vorliegen)
Die bahntreue NOT--AUS--Bewegung für PTP-- und CP--Bahnen wird mit
maximaler Bremsverzögerung ausgeführt, die von den errechneten Motor--
und Getriebemomenten des Dynamik--Modells bestimmt wird.
Die Bremsverzögerung der Zusatzachsen wird nach dem bisherigen
Verfahren durchgeführt, was die Roboterachsen beeinflußt.
Intern werden sowohl die neue, als auch die alte Funktionalität berechnet
und miteinander verglichen. Ergibt dieser Vergleich eine deutlich höhere
Bremsung zugunsten der bisherigen Methode (z.B. aufgrund vollkommen
falscher Modell--oder Lastdaten), wird mit der alten Funktionalität
gebremst.

Optionen Auswirkung
TRUE Modellbasierter NOT--AUS aktiviert.
FALSE Modellbasierter NOT--AUS nicht aktiviert (alte Funktionalität).

$EMSTOP_GEARTORQ[n] Maximales Getriebemoment beim NOT--AUS

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile REAL $EMSTOP_GEARTORQ[n]
;Max. Getriebemoment bei modellbasiertem NOT--AUS [Nm]
Bemerkung [n] = [1] ... [6]

$EMSTOP_MOTTORQ[n] Maximales Motormoment beim NOT--AUS

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile REAL $EMSTOP_MOTTORQ[n]
;Max. Motormomente bei modellbasiertem NOT--AUS [Nm]
Bemerkung [n] = [1] ... [6]

SysVar 08.02.03 de 53 von 170


Systemvariablen

$EMSTOP_PATH Projektierung des bahntreuen NOT--AUS für die Betriebsarten


T1, T2, AUT, EX

Datentyp Structure min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile DECL EMSTOP_PATH $EMSTOP_PATH={T1 #ON,T2 #ON,AUT
#ON,EX #ON}
;Projektierung des bahntreuen NOT--AUS für T1, T2, AUT, EX
Bemerkung

Optionen Auswirkung
#ON Bahntreuer NOT--AUS für entsprechende Betriebsart ein.
#OFF Bahntreuer NOT--AUS für entsprechende Betriebsart aus.

$EMSTOP_PATH.AUT Projektierung des bahntreuen NOT--AUS für die Betriebsart “AUT”

Datentyp Enum min.


Wert
Einheit max.

Optionen Auswirkung
#ON Bahntreuer NOT--AUS für Betriebsart “AUT” ein
#OFF Bahntreuer NOT--AUS für Betriebsart “AUT” aus

$EMSTOP_PATH.EX Projektierung des bahntreuen NOT--AUS für die Betriebsart “EX”

Optionen Auswirkung
#ON Bahntreuer NOT--AUS für Betriebsart “EX” ein
#OFF Bahntreuer NOT--AUS für Betriebsart “EX” aus

$EMSTOP_PATH.T1 Projektierung des bahntreuen NOT--AUS für die Betriebsart “T1”

Optionen Auswirkung
#ON Bahntreuer NOT--AUS für Betriebsart “T1” ein
#OFF Bahntreuer NOT--AUS für Betriebsart “T1” aus

$EMSTOP_PATH.T2 Projektierung des bahntreuen NOT--AUS für die Betriebsart “T2”

Optionen Auswirkung
#ON Bahntreuer NOT--AUS für Betriebsart “T2” ein
#OFF Bahntreuer NOT--AUS für Betriebsart “T2” aus

54 von 170 SysVar 08.02.03 de


6 E (Fortsetzung)

$EMSTOP_TIME Zeitüberwachung für den bahntreuen NOT--AUS

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $EMSTOP_TIME
;Zeitueberwachung für bahntreuen NOT--AUS [ms]
Bemerkung

$EMSTOP_TORQRATE Maximale Änderung der Motor-- und Getriebemomente

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile REAL $EMSTOP_TORQRATE
;Max. Aenderung der Momente bei NOT--AUS mit Dynamikmodell
[Nm/ms]
Bemerkung Zur Einstellung einer Ruckbegrenzung beim modellbasierten NOT--AUS

$EMT_MODE Methode für die EMT--Justage

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL EMT_MODE $EMT_MODE
Bemerkung

Optionen Auswirkung
#FIRST_CAL Erstjustage
#TOOL_TEACH Werkzeuggewicht lernen
#CHECK_CAL Prüffahrt
#RECALC_CAL Justage restaurieren

SysVar 08.02.03 de 55 von 170


Systemvariablen

$ENDLESS Flag für endlos drehende Achsen

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $ENDLESS=TRUE
;Endlos drehende Achsen
Bemerkung

Optionen Auswirkung
TRUE Endlos drehende Achsen möglich.
FALSE Endlos drehende Achsen nicht möglich.

$ENERGY_MON Soll--Energieüberwachung (Kinetische Energie)

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile BOOL $ENERGY_MON=FALSE
;Ueberwachung kinetische Energie bei Crash
Bemerkung

Optionen Auswirkung
TRUE Energieüberwachung aktiviert
FALSE Energieüberwachung deaktiviert

$ERROFFMASK Abschaltung einzelner Fehlerbits

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $ERROFFMASK[12]
;Abschaltung einzelner Fehlerbits
Bemerkung

56 von 170 SysVar 08.02.03 de


6 E (Fortsetzung)

Auf Weltkoordinatensystem bezogene Verschiebung und Orientie-


$ERSYSROOT rung des Roboters bei vorhandenen Zusatzachsen

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $ERSYSROOT={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
;Roboterfußpunktkinematik im Weltkoordinatensystem [mm,Grad]
Bemerkung Nur gültig bei vorhandenen Zusatzachsen. Ist “$ERSYSROOT” gültig,
dann wird “$ROBROOT” ignoriert.

$ET1_AX
... Zuordnung externer Achsen zur Zusatzachskinematik ET1 ... ET6
$ET6_AX

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL ET_AX $ET1_AX={TR_A1 #NONE,TR_A2 #NONE,TR_A3
#NONE}
...
DECL ET_AX $ET6_AX={TR_A1 #NONE,TR_A2 #NONE,TR_A3
#NONE}
;Externe Achsen #NONE, #E1, #E2, #E3, #E4, #E5, #E6
Bemerkung Aufzählung der externen Achsen, die in der 1. ... 6. externen Transforma-
tion ET1 ... ET6 verwendet werden.

Optionen Auswirkung
#NONE
#E1 -- #E6

$ET1_NAME
... Name der Zusatzachskinematik ET1 ... ET6
$ET6_NAME

Datentyp Character min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile CHAR $ET1_NAME[20]
...
CHAR $ET6_NAME[20]
Bemerkung Der Name darf maximal 20 Zeichen haben

SysVar 08.02.03 de 57 von 170


Systemvariablen

$ET1_TA1KR
Verschiebung zwischen Achse 1 und dem Fußpunkt
... der Zusatzachskinematik ET1 ... ET6
$ET6_TA1KR

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $ET1_TA1KR={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
...
FRAME $ET6_TA1KR={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
Bemerkung FRAME zwischen A1 und Fußpunkt der KIN in Trafo ET1 ... ET6

$ET1_TA2A1
Verschiebung zwischen Achse 2 und Achse 1
... der Zusatzachskinematik ET1 ... ET6
$ET6_TA2A1

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $ET1_TA2A1={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
...
FRAME $ET6_TA2A1={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
Bemerkung

$ET1_TA3A2
Verschiebung zwischen Achse 3 und Achse 2
... der Zusatzachskinematik ET1 ... ET6
$ET6_TA3A2

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $ET1_TA3A2={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
...
FRAME $ET6_TA3A2={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
Bemerkung

58 von 170 SysVar 08.02.03 de


6 E (Fortsetzung)

$ET1_TFLA3
Verschiebung zwischen Flansch und Achse 3
... der Zusatzachskinematik ET1 ... ET6
$ET6_TFLA3

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $ET1_TFLA3={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
...
FRAME $ET6_TFLA3={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
Bemerkung

$ET1_TPINFL
Verschiebung zwischen Meßpunkt und Flansch
... der Zusatzachskinematik ET1 ... ET6
$ET6_TPINFL

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $ET1_TPINFL={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
...
FRAME $ET6_TPINFL={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
Bemerkung

$EX_AX_ASYNC Zusatzachsen asynchron schalten

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $EX_AX_ASYNC=’B000000’
;Externe Achsen asynchron
Bemerkung

Optionen Auswirkung
Bit = 1 Achse asynchron, Bit 0 Zusatzachse E1 bis Bit 5 Zusatzachse E6

SysVar 08.02.03 de 59 von 170


Systemvariablen

$EX_AX_NUM Anzahl externer Achsen

Datentyp Integer min. 0


Wert
Einheit max. 6
In Datei R1\Mada\$machine.dat
Originalzeile INT $EX_AX_NUM=0
;Anzahl externer Achsen (0--6)
Bemerkung

Zuordnung externes Basis--Koordinatensystem --


$EX_KIN Zusatzachsen--Kinematik

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL EX_KIN $EX_KIN={ET1 #NONE,ET2 #NONE,ET3 #NONE,ET4
#NONE,ET5 #NONE,ET6 #NONE}
;Externe Kinematiken #NONE,#EASYS,#EBSYS,#ECSYS,#ED-
SYS,#EESYS,#EFSYS,#ERSYS
Bemerkung

$EXCOUP_COMP Kopplungsfaktoren der Achsen 7 (Index 1) bis 12 (Index 6)

Datentyp Array min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL FRA $EXCOUP_COMP[6,6]
;Kopplungsfaktoren Achse 7 (Index 1) bis Achse 12 (Index12),
N = Zaehler, D =Nenner
Bemerkung N = Zähler, D = Nenner

60 von 170 SysVar 08.02.03 de


6 E (Fortsetzung)

$EXT Signalvereinbarung “Betriebsart Extern”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $EXT $OUT[996]
;Betriebsart extern
Bemerkung

Optionen Auswirkung
1 Betriebsart EXTERN
0 Andere Betriebsart

$EXT_AXIS Anzeige, ob Zusatzachsen vorhanden sind

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $EXT_AXIS=FALSE
Bemerkung

Optionen Auswirkung
TRUE Zusatzachsen vorhanden.
FALSE Zusatzachsen nicht vorhanden.

$EXT_START Signalvereinbarung “Externer Start aktiv”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $EXT_START $IN[1026]
;Externer Start
Bemerkung

SysVar 08.02.03 de 61 von 170


Systemvariablen

$EXTSTARTTYP Flag für Automatikbetrieb ohne externe Signale

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $EXTSTARTTYP
Bemerkung

Optionen Auswirkung
TRUE Automatikbetrieb möglich
FALSE Automatikbetrieb nicht möglich

62 von 170 SysVar 08.02.03 de


7 F

7 F

$FAN_FOLLOW_UP_TIME Signalvereinbarung “Lüfterüberwachung”

Datentyp Signalvereinbarung min. 5.0


Wert
Einheit max. 1000.0
In Datei Steu\Mada\$machine.dat
Originalzeile REAL $FAN_FOLLOW_UP_TIME
Bemerkung Nachlaufzeit für die Lüfter--Ansteuerung.
Bei entsprechender Temperatur wird der Außenlüfter für die eingestellte
Zeitdauer eingeschaltet. Wird als Nachlaufzeit “1000.0” eingestellt, läuft
der Lüfter ununterbrochen.

$FFC_TORQ Momentenvorsteuerung

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile BOOL $FFC_TORQ=FALSE
;Momentenvorsteuerung EIN/AUS
Bemerkung

Optionen Auswirkung
TRUE Momentenvorsteuerung aktiviert.
FALSE Momentenvorsteuerung nicht aktiviert.

$FFC_VEL Geschwindigkeitsvorsteuerung

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $FFC_VEL=’B000000’
;Geschwindigkeitsvorsteuerung EIN/AUS
Bemerkung

Optionen Auswirkung
0 Aus, LSB: Achse 1, MSB: Achse 12
1 Ein

SysVar 08.02.03 de 63 von 170


Systemvariablen

$FILTER Weiche Rampe im Vorlauf

Datentyp Integer min. 0


Wert
Einheit max. 16
In Datei ------
Originalzeile INT $FILTER
Bemerkung Der Filter verhindert die sprunghafte Beschleunigung auf den maximalen
Beschleunigungswert von 16 Interpolationstakten.

$FILTER_C Weiche Rampe im Hauptlauf

Datentyp Integer min. 0


Wert
Einheit max. 16
In Datei ------
Originalzeile INT $FILTER_C
Bemerkung Es wird der aktuelle Filterwert angezeigt.

$FLAG[n] Flag 1 bis 1024 als globale Merker

Datentyp Boolean min. 0


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $FLAG[1024]
Bemerkung [n] = [1] ... [1024]
Werden als globale Merker eingesetzt und mit FALSE initialisiert.

Optionen Auswirkung
TRUE
FALSE

$FOL_ERR_MA Faktor für Schleppfehlerüberwachung

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $FOL_ERR_MA[12]
;Faktor fuer Schleppfehlerueberwachung
Bemerkung

64 von 170 SysVar 08.02.03 de


7 F (Fortsetzung)

$FOL_ERROR[n] Geschwindigkeitsbezogener Schleppfehler der Achse

Datentyp Real min. 0


Wert
Einheit ms max.
In Datei ------
Originalzeile REAL $FOL_ERROR[n]
;Bezogener Schleppfehler
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

SysVar 08.02.03 de 65 von 170


Systemvariablen

8 G
$G_COE_CUR[n] Proportionalverstärkung des Stromreglers

Datentyp Integer min. 1


Wert
Einheit % max. 100
In Datei R1\Mada\$machine.dat
Originalzeile INT $G_COE_CUR[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$G_VEL_CAL[n] Geschwindigkeits--Faktor für Drehzahlreglerverstärkung

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $G_VEL_CAL[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$G_VEL_CP[n] Proportionalverstärkung des Drehzahlreglers beim CP--Fahren

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $G_VEL_CP[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$G_VEL_PTP[n] Proportionalverstärkung des Drehzahlreglers beim PTP--Fahren

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $G_VEL_PTP[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]:Zusatzachse E1 ... E6

66 von 170 SysVar 08.02.03 de


8 G (Fortsetzung)

$GEARTORQ_MON Steuerung der Getriebe--Momentenüberwachung

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile BOOL $GEARTORQ_MON=FALSE
Bemerkung

Optionen Auswirkung
Aktiviert, mit den in $robcor.dat in den Daten $DYN_DAT[231] ...
TRUE $DYN_DAT[236] definierten Grenzen in % der maximalen
Beschleunigungsmomente.
FALSE Steuerung AUS

SysVar 08.02.03 de 67 von 170


Systemvariablen

9 H
$H_POS Home--Position des Roboters

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile 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}
Bemerkung

$H_POS_TOL Zulässige Toleranz für ”Roboter in Home--Position”

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile E6AXIS $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}
Bemerkung

$HOME[3] HOME--Verzeichniseinstellung des Compilers

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $HOME[3]
;HOME--Einstellung (/ = Steuerungsspezifisch, /R1 = Rob.System 1,
/R2 = Rob.System 2 )
Bemerkung

Optionen Auswirkung
/R1 Robotersystem 1
/R2 Robotersystem 2

68 von 170 SysVar 08.02.03 de


9 H (Fortsetzung)

$HW_WARNING Signalvereinbarung “Hardware--Warnung”

Datentyp Signalvereinbarung min. FALSE, 1


Wert
Einheit max. 4096
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $HW_WARNING $OUT[148] ;Projektierbare Systemvariable
Bemerkung Sobald eine Hardware--Warnung auftritt, wird der projektierte Ausgang ge-
setzt.
Reagiert auf:
268: Warnung PC--Lüfterdrehzahl
284: Warnung Akkuspannung
1066: Warnung Mainboard--Temperatur

Optionen Auswirkung
FALSE Kein Ausgang wird gesetzt.
1 ... 4096 Entsprechender Ausgang wird gesetzt.

$HWEND Signalvereinbarung “Endschalter überfahren”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $HWEND $IN[1002]
;HW--Endschalter für alle Achsen
Bemerkung

SysVar 08.02.03 de 69 von 170


Systemvariablen

10 I
$I_O_ACT Signalvereinbarung “E/A--Schnittstellen aktiv”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $I_O_ACT $IN[1025]
;E/A--Schnittstelle aktiv
Bemerkung

$I_O_ACTCONF Signalvereinbarung ”Externes Gerät aktiv”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $I_O_ACTCONF $OUT[1009]
;E/A--Schnittstelle aktiv Qittung
Bemerkung

$I_VEL_CP[n] Integral--Faktor des Drehzahlreglers beim CP--Fahren

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $I_VEL_CP[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$I_VEL_PTP[n] Integral--Faktor des Drehzahlreglers beim PTP--Fahren

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $I_VEL_PTP[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

70 von 170 SysVar 08.02.03 de


10 I (Fortsetzung)

$IBS_SLAVEIN[10] Vom Interbus--Slave belegte Steuerungeingangsworte

Datentyp Integer min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile INT $IBS_SLAVEIN[10]
Bemerkung

$IBUS_OFF Ausschalten alternativer Interbusgruppen

Datentyp Integer min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile INT $IBUS_OFF
Bemerkung

$IBUS_ON Einschalten alternativer Interbusgruppen

Datentyp Integer min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile INT $IBUS_ON
Bemerkung

$IDENT_OPT Abfrage, ob Lastdatenermittlung durchführbar

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $IDENT_OPT=FALSE
Bemerkung

Optionen Auswirkung
TRUE Lastdatenermittlung möglich.
FALSE Lastdatenermittlung nicht möglich.

SysVar 08.02.03 de 71 von 170


Systemvariablen

$IDENT_STARTP Startposition für Lastdatenermittlung

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile E6AXIS $IDENT_STARTP
Bemerkung

$IDENT_STATE Status der Lastdatenermittlung

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL IDENT_STATE $IDENT_STATE
Bemerkung

Optionen Auswirkung
#I_END Lastdatenermittlung beendet.
#I_READY Bereit für Lastdatenermittlung.
#I_TEST Testlauf wird durchgeführt.
#I_MEAS Messung wird durchgeführt.
#I_MEAS_OK Messung war fehlerfrei.
#I_CALC Berechnung wird durchgeführt.

$IN[n] Eingänge

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $IN[4096]
;Eingang [1 bis 4096]
Bemerkung [n]=[1] ... [4096]
Die Anzahl der Eingänge kann durch Setzen von $SET_IO_SIZE auf 2048
bzw. 1024 reduziert werden.

72 von 170 SysVar 08.02.03 de


10 I (Fortsetzung)

$IN_HOME Signalvereinbarung “Roboter in Home--Position”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.d
Originalzeile SIGNAL $IN_HOME $OUT[1000]
Bemerkung

$IN_HOME1
... Signalvereinbarung “Home--Position1 ... 5”
$IN_HOME5

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $IN_HOME1 $OUT[977]
...
SIGNAL $IN_HOME5 $OUT[981]
Bemerkung

$IN_POS_MA[n] Positionierfenster zur Schleppfehlerüberwachung

Datentyp Real min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $IN_POS_MA[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$IN_STILL_MA Faktor zur Berechnung des Stillstandsfensters

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $IN_STILL_MA
Bemerkung Wenn alle Achsen in Position sind und kein neuer Sollwert vorgegeben ist,
wird geprüft, ob eine Achse aus der Position wandert.

SysVar 08.02.03 de 73 von 170


Systemvariablen

$INC_AXIS[1]...[6] Schrittmaß, achsspezifisch -- für Achsen A1 ... A6

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $INC_AXIS[6]
Bemerkung

$INC_CAR[1]...[6] Schrittmaß, kartesisch werkzeugbezogen, für Achsen A1 ... A6

Datentyp Real min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $INC_CAR[6]
Bemerkung

$INC_EXTAX Schrittmaß, achsspezifisch, für externe Achsen

Datentyp Real min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $INC_EXTAX[6]
Bemerkung

$INPOSITION Bitfeld für “Achse in Position” aller Achsen A1 ... A6, E1 ... E6

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $INPOSITION
Bemerkung

Optionen Auswirkung
Bit=0 Achse in Bewegung.
Bit=1 Achse im Positionierfenster.

74 von 170 SysVar 08.02.03 de


10 I (Fortsetzung)

$INTERPRETER Anwahl des Submit-- oder Roboter--Interpreters

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $INTERPRETER
Bemerkung

Optionen Auswirkung
0 Submit--Interpreter
1 Roboter--Interpreter

$INTERRUPT Programm bearbeitet Interrupt

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$operate.dat
Originalzeile BOOL $INTERRUPT
;Interruptbearbeitung
Bemerkung

$IOSIM_OPT Simulierung der Ein--/Ausgänge

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $IOSIM_OPT
Bemerkung

Optionen Auswirkung
TRUE E/A--Simulation eingeschaltet.
FALSE E/A--Simulation ausgeschaltet.

SysVar 08.02.03 de 75 von 170


Systemvariablen

$IPO_MODE Interpolationsart Vorlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL IPO_MODE $IPO_MODE
;Interpolationsart Vorlauf
Bemerkung

Optionen Auswirkung
#BASE
#TCP

$IPO_MODE_C Interpolationsart Hauptlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei
Originalzeile DECL IPO_MODE $IPO_MODE_C
;Interpolationsart Hauptlauf
Bemerkung

Optionen Auswirkung
#BASE
#TCP

Anzahl der Iterationen für Bahnplanung bei aktivierter Beschleuni-


$ITER gungsanpassung und höherem Fahrprofil

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile INT $ITER
;Anzahl der Iterationen
Bemerkung

76 von 170 SysVar 08.02.03 de


11 J

11 J
$JUS_TOOL_NO Nummer des aktuellen Werkzeugs bei EMT--Justage

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $JUS_TOOL_NO
Bemerkung

SysVar 08.02.03 de 77 von 170


Systemvariablen

12 K
$KCP_CONNECT Anzeige, ob KCP an der Steuerung angeschlossen ist

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $KCP_CONNECT
Bemerkung

Optionen Auswirkung
TRUE KCP ist angeschlossen.
FALSE KCP ist nicht angeschlossen.

$KEYMOVE Zuordnung Handverfahrtasten -- Achsen

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL KEYMOVE $KEYMOVE
Bemerkung In den sechs Feldern (T1 bis T6) ist hinterlegt, welche Achse durch die ent-
sprechende Plus--Minus--Wippe verfahren wird.
Ob die Handverfahrtasten aktiv sind, ist vom Zustand der Systemvariablen
$KEYMOVE abhängig.

$KEYMOVE.T1
... Status für Plus--/Minustaste 1 ... 6 (von oben am KCP)
$KEYMOVE.T6

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile STRUC KEYMOVE INT T1,T2,T3,T4,T5,T6
Bemerkung

78 von 170 SysVar 08.02.03 de


12 K (Fortsetzung)

$KINCLASS Kinematik--Klassen

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL KINCLASS $KINCLASS=#STANDARD
;Kinematikklassen (STANDARD,SPECIAL,TEST,NONE)
Bemerkung

Optionen Auswirkung
#STANDARD
#SPECIAL
#TEST
#NONE

$KPS_CURR_MAX[8] Maximalstrom eines KPS über 1 sec

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $KPS_CURR_MAX[8]
;Maximalstrom eines KPS über 1 s
Bemerkung KPS = KUKA Power Supply

$KPS_CURR_RATED[8] Nennstrom KPS für die Zeitdauer von 60 Sekunden

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $KPS_CURR_RATED[8]
;Nennstrom eines KPS über 60 s
Bemerkung KPS = KUKA Power Supply

SysVar 08.02.03 de 79 von 170


Systemvariablen

$KR_SERIALNO Seriennummer des Roboters

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $KR_SERIALNO
;Roboter--Seriennummer
Bemerkung

KT--Faktor der Motoren (Verhältnis zwischen Strom und Drehmo-


$KT_MOT ment)

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $KT_MOT[12]
;KT--Faktor der Motoren
Bemerkung

KT0--Faktor der Servomotoren


$KT0_MOT[n] (definiert im Arbeitspunkt mit Drehzahl=0)

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $KT0_MOT[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

80 von 170 SysVar 08.02.03 de


13 L

13 L
$L_EMT_MAX[n] Maximale Weglänge bei EMT--Justage

Datentyp Real min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $L_EMT_MAX[n]
Bemerkung [n] = [1] ... [6]: Achse 1 ... 6
[n] = [7] ... [12]: Zusatzachse 1 ... 6
Wird die Weglänge überschritten, wird eine Fehlermeldung ausgegeben.

$LAST_BUFFERING_NOTOK Signalvereinbarung “Akkumeldung”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $LAST_BUFFERING_NOTOK $OUT[1003]
;Ausgang signalisiert eine anstehende Akkumeldung
Bemerkung Besitzt die Variable “$LAST_BUFFERING_NOTOK” den Wert “TRUE”,
war die Akkuspannung beim letzten Herunterfahren zu niedrig.
Andernfalls besitzt sie den Wert “FALSE”.

$LENGTH_A Grundachslänge A, Exzentrizität von Achse 2 zur Achse 1

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $LENGTH_A
;Grundachslaenge A
Bemerkung

SysVar 08.02.03 de 81 von 170


Systemvariablen

$LENGTH_B Grundachslänge B, Schwingenlänge

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $LENGTH_B
;Grundachslaenge B
Bemerkung

$LG_CP Proportionalverstärkung des Lagereglers für Bahnfahren

Datentyp Real min.


Wert
Einheit 1/ms max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $LG_CP[12]
;KV--Faktor Bahn--Fahren [1/ms]
Bemerkung

$LG_PTP Proportionalverstärkung des Lagereglers für PTP--Fahren

Datentyp Real min.


Wert
Einheit 1/ms max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $LG_PTP[12]
;KV--Faktor PTP Achse [I] (i=1:A1,i=7:E1) [1/ms]
Bemerkung

$LINE_SEL_OK Anzeige, ob Satzanwahl erfolgte

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $LINE_SEL_OK
Bemerkung

Optionen Auswirkung
TRUE Satzanwahl ist erfolgt.
FALSE Satzanwahl ist nicht erfolgt.

82 von 170 SysVar 08.02.03 de


13 L (Fortsetzung)

$LINE_SELECT Editieren mit oder ohne implizierter Satzanwahl

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $LINE_SELECT
Bemerkung

Optionen Auswirkung
TRUE Editieren mit Satzanwahl.
FALSE Editieren ohne Satzanwahl.

$LOOP_CONT Simulationsergebnis für Schleifenabbruchbedingung

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $LOOP_CONT=FALSE
Bemerkung Als Schleifenabruchbedingung einsetzbares Simulationsergebnis.
$LOOP_CONT nimmt den Wert FALSE an, sobald die Simulationstaste
gedrückt wurde. Muß auf den Wert TRUE geschaltet werden, bevor mittels
$LOOP_MSG eine Simulation gestartet wird.

Optionen Auswirkung
TRUE Simulationstaste wurde nicht betätigt.
FALSE Simulationstaste wurde betätigt.

$LOOP_MSG Start Simulation, wenn Wert ungleich Leerstring

Datentyp Character min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile CHAR $LOOP_MSG[128]
Bemerkung Startet die Simulation, sobald der Wert ungleich Leerstring ist und bringt
den enthaltenen Text sowie die Simulationstaste zur Anzeige.
Zur Beendigung der Simulation muß auf Leerstring zurückgesetzt werden.

SysVar 08.02.03 de 83 von 170


Systemvariablen

84 von 170 SysVar 08.02.03 de


14 M

14 M

$MAIN_AXIS Grundachsen--Kennung

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL MAIN_AXIS $MAIN_AXIS=#NR
;Grundachsenkennung
(SS = Portal, CC = Scara, NR = Gelenkroboter)
Bemerkung

Optionen Auswirkung
#SS Portal--Roboter
#CC SCARA--Roboter
#NR Gelenk--Roboter

Verschiebung zwischen mechanischem und


$MAMES[n] mathematischem Nullpunkt der Achse n

Datentyp Real min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $MAMES[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n]= [7] ... [12]: Zusatzachse E1 ... E6

$MEAS_PULSE Schnelles Messen aktivieren

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $MEAS_PULSE[5]
;Messpuls
Bemerkung

SysVar 08.02.03 de 85 von 170


Systemvariablen

$MODE_MOVE Verfahrart im Handbetrieb

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL MODE_MOVE $MODE_MOVE
Bemerkung

Optionen Auswirkung
#MM Handverfahren
#MC Handreferieren
#MI Schrittmaßfahren

$MODE_OP Anzeigen der aktuellen Betriebsart

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL MODE_OP $MODE_OP
;Betriebsart (T1, T2, AUT, EX)
Bemerkung

Optionen Auswirkung
#T1 Test 1
#T2 Test 2
#AUT Automatik
#EX Automatik extern

$MODEL_NAME Robotertyp

Datentyp Character min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile CHAR $MODEL_NAME[32]
Bemerkung Beschreibt den Robotertyp.

86 von 170 SysVar 08.02.03 de


14 M (Fortsetzung)

$MOUSE_ACT Status der Space--Mouse

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $MOUSE_ACT
Bemerkung

Optionen Auswirkung
TRUE Space--Mouse aktiv.
FALSE Space--Mouse nicht aktiv.

Modus für Space--Mouse


$MOUSE_DOM Dominante Koordinaten / Alle Koordinaten

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $MOUSE_DOM
Bemerkung

Optionen Auswirkung
TRUE Space--Mouse im Modus “Dominante Koordinate aktiv”.
FALSE Space--Mouse im Modus ”Alle Koordinaten aktiv”.

$MOUSE_ROT Space--Mouse -- Rotatorische Bewegungen aktiv schalten

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $MOUSE_ROT
Bemerkung

Optionen Auswirkung
TRUE Space--Mouse Bewegungen “rotatorisch” eingeschaltet.
FALSE Space--Mouse Bewegungen “rotatorisch” ausgeschaltet.

SysVar 08.02.03 de 87 von 170


Systemvariablen

$MOUSE_TRA Space--Mouse -- Translatorische Bewegungen aktiv schalten

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $MOUSE_TRA
Bemerkung

Optionen Auswirkung
TRUE Space--Mouse Bewegungen “translatorisch” eingeschaltet
FALSE Space--Mouse Bewegungen “translatorisch” ausgeschaltet

$MOVE_BCO Satzkoinzidenzfahrt (SAK)

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $MOVE_BCO
;Aktuelle Bewegung ist SAK--Fahrt
Bemerkung

Optionen Auswirkung
TRUE Aktuelle Bewegung ist SAK--Fahrt.
FALSE Keine SAK--Fahrt.

$MOVE_ENABLE Signalvereinbarung ”Fahrfreigabe gesamt”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $MOVE_ENABLE $IN[1025]
;Fahrfreigabe gesamt
Bemerkung

88 von 170 SysVar 08.02.03 de


14 M (Fortsetzung)

$MOVE_ENA_ACK Rückmeldung des Fahrfreigabesignals

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $MOVE_ENA_ACK $OUT[150]
;Rueckmeldung $MOVE_ENABLE an PLC
Bemerkung

$MOVE_STATE Aktueller Bewegungsstatus

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL MOVE_STATE $MOVE_STATE
Bemerkung Mittels $MOVE_STATE werden in der Bahnplanung die einzelnen Bewe-
gungsabschnitte gekennzeichnet.
Bei RESET, CANCEL, Satzanwahl und ohne angewähltes Programm hat
$MOVE_STATE den Wert #NONE.
$MOVE_STATE setzt sich aus zwei Teilen zusammen. Zum einen aus der
Bezeichnung für die jeweilige Bewegungsart (PTP, LIN, CIRC), zum ande-
ren aus der Kennung für den momentanen Bahnabschnitt.
#xxx_SINGLE bezeichnet eine Bewegung außerhalb eines Überschleifbe-
reichs;
#xxx_APO1 bezeichnet eine Bewegung im Überschleifbereich bis Satz-
mitte;
#xxx_APO2 bezeichnet eine Bewegung im Überschleifbereich ab Satz-
mitte;
#NONE kennzeichnet den Zustand ohne angewähltes Programm, bei
RESET und CANCEL.

$MS_DA[n] Status der Lageregel--Überwachung

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $MS_DA[n]
Bemerkung [n]= [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

SysVar 08.02.03 de 89 von 170


Systemvariablen

$MSG_T Struktur für Meldungsausgabe

Datentyp Structure min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile DECL MSG_T $MSG_T={VALID FALSE,RELEASE FALSE,TYP #NO-
TIFY,MODUL[] ” ”,KEY[] ” ”,PARAM_TYP #VALUE,PARAM[] ”
”,DLG_FORMAT[] ” ”,ANSWER 0}
Bemerkung

$MSG_T.ANSWER Nummer des betätigten Softkeys

Datentyp Integer min.


Wert
Einheit max.

$MSG_T.DLG_FORMAT Beschriftung der Softkeys

Datentyp Character min.


Wert
Einheit max.

$MSG_T.KEY Schlüssel zum Meldungstext der Datenbank

$MSG_T.MODUL Modulbezeichner für Datenbankzugriff

$MSG_T.PARAM Mit dem Meldungstext zur Anzeige gebrachter Zusatzparameter

$MSG_T.PARAM_TYP Typ--Definition von “PARAM”

Datentyp Enum min.


Wert
Einheit max.

Optionen Auswirkung
#VALUE
#WORDS
#KEY

$MSG_T.RELEASE Löschen der Zustandsmeldung

Datentyp Boolean min.


Wert
Einheit max.

90 von 170 SysVar 08.02.03 de


14 M (Fortsetzung)

$MSG_T.TYP Definition des Meldungstyps

Datentyp Enum min.


Wert
Einheit max.

Optionen Auswirkung
#NOTIFY Hinweismeldung
#STATE Zustandsmeldung
#QUIT Quittierungsmeldung
#DIALOG Dialoganfrage

$MSG_T.VALID Ausgabe des Meldungstextes

Datentyp Boolean min.


Wert
Einheit max.

SysVar 08.02.03 de 91 von 170


Systemvariablen

15 N
$NEAR_POSRET Roboter innerhalb einer Kugel um “$POS_RET” (Toleranzfenster)

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $NEAR_POSRET $OUT[997]
;Roboter in Toleranzfenster
Bemerkung Signal wird gesetzt, wenn der Roboter innerhalb einer Kugel um
$POS_RET steht.
Der Radius dieser Kugel wird in $NEARPATHTOL festgelegt.

$NEARPATHTOL Radius der Kugel um “$POS_RET”

Datentyp Real min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile REAL $NEARPATHTOL
;Toleranz für die Abweichung von $POS_RET
Bemerkung

$NULLFRAME Nullframe

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile FRAME $NULLFRAME
Bemerkung Alle Werte für Verschiebung (X, Y, Z) und Drehung (A, B, C) werden auf Null
gesetzt.

92 von 170 SysVar 08.02.03 de


15 N (Fortsetzung)

$NULLFRAME.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit mm, ° max.

$NULLFRAME.B Drehung um die Y--Achse

$NULLFRAME.C Drehung um die X--Achse

$NULLFRAME.X Verschiebung in X--Richtung

$NULLFRAME.Y Verschiebung in Y--Richtung

$NULLFRAME.Z Verschiebung in Z--Richtung

$NUM_AX Anzahl der Roboterachsen

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $NUM_AX=6
;Achsen des Robotersystems
Bemerkung

$NUM_IN Maximalzahl der digitalen Eingänge ($IN)

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $NUM_IN
;Anzahl der Eingaenge
Bemerkung

$NUM_OUT Maximalzahl der digitalen Ausgänge ($OUT)

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $NUM_OUT
;Anzahl der Ausgaenge
Bemerkung

SysVar 08.02.03 de 93 von 170


Systemvariablen

$NUMSTATE Zustand der Num--Lock--Taste

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $NUMSTATE
Bemerkung

Optionen Auswirkung
TRUE Num--Lock--Taste ein.
FALSE Num--Lock--Taste aus.

94 von 170 SysVar 08.02.03 de


16 O

16 O
Signalvereinbarung “Bahnkontrolle”--
$ON_PATH Roboter befindet sich auf der programmierten Bahn.

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $ON_PATH $OUT[997]
Bemerkung

$OPT_MOVE Aktivieren des höheren Fahrprofils

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile DECL ADAP_ACC $OPT_MOVE=#NONE
Bemerkung

Optionen Auswirkung
#NONE Höheres Fahrprofil deaktiviert.
#STEP1 Höheres Fahrprofil ohne Energieplanung aktiviert.
#STEP2 Höheres Fahrprofil mit Energieplanung aktiviert.

$OPT_VAR_IDX Index angewählter Korrektur--Variabler aus der Liste “$OPT_VAR[]”

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $OPT_VAR_IDX
;Index Korr.--Var. in der Var.--Liste $OPT_VAR[]
Bemerkung

SysVar 08.02.03 de 95 von 170


Systemvariablen

Orientierungsprüfung an CP--Endpunkten (nur bei Fünfachs--Robo-


$ORI_CHECK tern)

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $ORI_CHECK
Bemerkung

$ORI_TYPE Orientierungsführung bei CP--Sätzen (LIN, CIRC) im Vorlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL ORI_TYPE $ORI_TYPE
;Orientierungsfuehrung bei CP--Saetzen (Vorlauf)
Bemerkung

Optionen Auswirkung
Variable Orientierung mit möglicher Reduzierung von Geschwindigkeit
#VAR
und Beschleunigung.
#CONSTANT Konstante Orientierung.
Variable Orientierung ohne Reduzierung von Geschwindigkeit und
#JOINT
Beschleunigung.

$ORI_TYPE_C Orientierungsführung bei CP--Sätzen (LIN, CIRC) im Hauptlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL ORI_TYPE $ORI_TYPE_C
;Orientierungsfuehrung bei CP--Saetzen (Hauptlauf)
Bemerkung

Optionen Auswirkung
Variable Orientierung mit möglicher Reduzierung von Geschwindigkeit
#VAR
und Beschleunigung
#CONSTANT Konstante Orientierung
Variable Orientierung ohne Reduzierung von Geschwindigkeit und
#JOINT
Beschleunigung

96 von 170 SysVar 08.02.03 de


16 O (Fortsetzung)

$OUT[n] Ausgänge

Datentyp Boolean min. 1


Wert
Einheit max. 4096
In Datei ------
Originalzeile BOOL $OUT[4096]
;Ausgang [1 bis 4096] )*
Bemerkung [n] = [1] ... [4096]
)*Durch entsprechendes Setzen der Variablen “$SET_IO_SIZE” können
1024, 2048 oder 4096 Ausgänge gesetzt werden.

$OUT_C[n] Ausgänge

Datentyp Boolean min. 1


Wert
Einheit max. 4096
In Datei ------
Originalzeile BOOL $OUT_C[4096]
;Ausgang [1 bis 4096] )*
Bemerkung [n] = [1] ... [4096]
Zum Setzen von Ausgängen bei Genauhaltbewegungen im Zielpunkt und
bei Überschleifbewegungen im Scheitelpunkt.
)* Durch entsprechendes Setzen der Variablen “$SET_IO_SIZE” können
1024, 2048 oder 4096 Ausgänge gesetzt werden

$OV_ASYNC Override für asynchrone Zusatzachsen

Datentyp Integer min. 0


Wert
Einheit % max. 100
In Datei ------
Originalzeile INT $OV_ASYNC
;OVERRIDE asynchrone Zusatzachsen
Bemerkung

SysVar 08.02.03 de 97 von 170


Systemvariablen

$OV_JOG Einricht--Override

Datentyp Integer min. 0


Wert
Einheit % max. 100
In Datei ------
Originalzeile INT $OV_JOG
;Einricht--OVERRIDE
Bemerkung

$OV_PRO Programm--Override

Datentyp Integer min. 0


Wert
Einheit % max. 100
In Datei ------
Originalzeile INT $OV_PRO
Bemerkung

$OV_PRO1 Steuerungsinterne Anwendung

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $OV_PRO1
Bemerkung

$OV_ROB Roboter--Override

Datentyp Integer min.


Wert
Einheit % max.
In Datei ------
Originalzeile INT $OV_ROB
Bemerkung

98 von 170 SysVar 08.02.03 de


16 O (Fortsetzung)

$OV_ROB1 Steuerungsinterne Anwendung

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $OV_ROB1
Bemerkung

SysVar 08.02.03 de 99 von 170


Systemvariablen

17 P

$PAL_MODE Palettiermodus aktivieren

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $PAL_MODE
;Achse A4 wird auf null Grad fixiert
Bemerkung Achse 4 wird auf null Grad fixiert. Beim Laden und Programmreset wird
$PAL_MODE = $DEF_A4FIX gesetzt.
Dabei ist für den 5--Achs--Roboter der Palettiermodus automatisch aktiviert
und für den normalen 6--Achs--Roboter nicht.

Optionen Auswirkung
TRUE Palettiermodus ein.
FALSE Palettiermodus aus.

$PERI_RDY Signalvereinbarung “Antriebe EIN”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $PERI_RDY $OUT[1012]
Bemerkung

$PHGBRIGHT Display--Kontrast einstellen

Datentyp Integer min. 0


Wert
Einheit max. 15
In Datei ------
Originalzeile INT $PHGBRIGHT
Bemerkung Der eingestellte Wert geht beim Ausschalten der Robotersteuerung
verloren.

Optionen Auswirkung
0 Display dunkel.
15 Display hell.

100 von 170 SysVar 08.02.03 de


17 P (Fortsetzung)

$PHGCONT Einstellen des Display--Kontrastes

Datentyp Integer min. 0


Wert
Einheit max. 15
In Datei ------
Originalzeile INT $PHGCONT
Bemerkung Der eingestellte Wert geht beim Ausschalten der Robotersteuerung
verloren.

Optionen Auswirkung
0 Weniger Kontrast, dunkel.
15 Mehr Kontrast, hell.

$PHGINFO Seriennummer der KCP--CPU und Software--Version

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $PHGINFO[24]
Bemerkung

$PHGTEMP Aktuelle Temperatur im Inneren des KCP

Datentyp Integer min.


Wert
Einheit °C max.
In Datei ------
Originalzeile INT $PHGTEMP
Bemerkung

Zuordnung der Achsen auf die Antriebsschnittstellen im


$PMCHANNEL[n] Powermodul

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $PMCHANNEL[n]
;Antriebsschnittstellen--Nr. auf dem Powermodul
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

SysVar 08.02.03 de 101 von 170


Systemvariablen

$POS_ACT Aktuelle Roboterposition, kartesisch

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6POS $POS_ACT
;Aktuelle Roboterposition kartesisch [mm,Grad]
Bemerkung

$POS_ACT.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit mm, ° max.

$POS_ACT.B Drehung um die Y--Achse

$POS_ACT.C Drehung um die X--Achse

$POS_ACT.X Verschiebung in X--Richtung

$POS_ACT.Y Verschiebung in Y--Richtung

$POS_ACT.Z Verschiebung in Z--Richtung

$POS_ACT_MES Gemessene Istposition, kartesisch

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile E6POS $POS_ACT_MES
Bemerkung

102 von 170 SysVar 08.02.03 de


17 P (Fortsetzung)

$POS_BACK Startposition des aktuellen Bewegungssatzes, kartesisch

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6POS $POS_BACK
;Anfangsposition des aktuellen Bewegungssatzes kartesisch [mm,Grad]
Bemerkung

$POS_BACK.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

$POS_BACK.B Drehung um die Y--Achse

$POS_BACK.C Drehung um die X--Achse

$POS_BACK.X Verschiebung in X--Richtung

Datentyp Real min.


Wert
Einheit mm max.

$POS_BACK.Y Verschiebung in Y--Richtung

$POS_BACK.Z Verschiebung in Z--Richtung

SysVar 08.02.03 de 103 von 170


Systemvariablen

$POS_FOR Zielposition des aktuellen Bewegungssatzes, kartesisch

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6POS $POS_FOR
;Zielposition des aktuellen Bewegungssatzes kartesisch [mm,Grad]
Bemerkung

$POS_FOR.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

$POS_FOR.B Drehung um die Y--Achse

$POS_FOR.C Drehung um die X--Achse

$POS_FOR.X Verschiebung in X--Richtung

$POS_FOR.Y Verschiebung in Y--Richtung

$POS_FOR.Z Verschiebung in Z--Richtung

104 von 170 SysVar 08.02.03 de


17 P (Fortsetzung)

$POS_INT Position bei Auslösung des Interrupts, kartesisch

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6POS $POS_INT
;Unterbrechungsposition kartesisch [mm,Grad]
Bemerkung

$POS_INT.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

$POS_INT.B Drehung um die Y--Achse

$POS_INT.C Drehung um die X--Achse

$POS_INT.X Verschiebung in X--Richtung

Datentyp Real min.


Wert
Einheit mm max.

$POS_INT.Y Verschiebung in Y--Richtung

$POS_INT.Z Verschiebung in Z--Richtung

SysVar 08.02.03 de 105 von 170


Systemvariablen

$POS_RET Position beim Verlassen der Bahn, kartesisch

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile E6POS $POS_INT
;Rückpositionieren kartesisch [mm,Grad]
Bemerkung

$POS_RET.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

$POS_RET.B Drehung um die Y--Achse

$POS_RET.C Drehung um die X--Achse

$POS_RET.X Verschiebung in X--Richtung

Datentyp Real min.


Wert
Einheit mm max.

$POS_RET.Y Verschiebung in Y--Richtung

$POS_RET.Z Verschiebung in Z--Richtung

$POWER_FAIL Anzeige Spannungsausfall

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $POWER_FAIL
Bemerkung

Optionen Auswirkung
TRUE Spannungsausfall
FALSE Kein Spannungsausfall

106 von 170 SysVar 08.02.03 de


17 P (Fortsetzung)

$POWERMODUL1
... Informationen zum Powermodul 1 ... 4 für Diagnosezwecke
$POWERMODUL4

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL POWERMODUL $POWERMODUL1
...
DECL POWERMODUL $POWERMODUL4
Bemerkung

$POWERMODUL1.BUSVOLTAGE
... Zwischenkreisspannung, Powermodul 1
$POWERMODUL4.BUSVOLTAGE

Datentyp Integer min.


Wert
Einheit max.

$POWERMODUL1.CURRCAL
... Stromkalibrierung, Powermodul 1
$POWERMODUL4.CURRCAL

$POWERMODUL1.CURRERROR
... Stromfehler, Powermodul 1
$POWERMODUL4.CURRERROR

$POWERMODUL1.PMERROR
... Register für Fehlermeldungen, Powermodul 1
$POWERMODUL4.PMERROR

$POWERMODUL1.PMSTATE
... Status Powermodul 1
$POWERMODUL4.PMSTATE

SysVar 08.02.03 de 107 von 170


Systemvariablen

$POWEROFF_DELAYTIME Wartezeit zum Herunterfahren des Systems

Datentyp Real min. 0


Wert
Einheit s max. 30000
In Datei ------
Originalzeile INT $POWEROFF_DELAYTIME
Bemerkung

Optionen Auswirkung
0 Herunterfahren der Steuerung trotz externer Spannungsversorgung.
1...30000 Wartezeit in Sekunden, bevor das System heruntergefahren wird.

HINWEIS
Bei den Steuerungen des Typs KR C3A, KR C3E und COBRA darf die Variable
$POWEROFF_DELAYTIME auf max. 180s eingestellt werden. Ansonsten ist mit Da-
tenverlust zu rechnen.

$PR_MODE Signalvereinbarung ”Testbetriebsart”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $PR_MODE $OUT[998]
Bemerkung

$PRO_ACT Signalvereinbarung “Programmstatus”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile SIGNAL $PRO_ACT $OUT[1021]
Bemerkung

Optionen Auswirkung
TRUE Prozeß aktiv.
FALSE Prozeß nicht aktiv.

108 von 170 SysVar 08.02.03 de


17 P (Fortsetzung)

$PRO_I_O Externes Programm für Steuerungsknoten

Datentyp Character min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile CHAR $PRO_I_O[64]
Bemerkung Festlegung des externen Programmes für Steuerungsknoten, welches
nach dem Herunterladen automatisch gestartet wird.

$PRO_IP Prozeßzeiger auf aktuellen KRL--Prozeß

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL PRO_IP $PRO_IP
Bemerkung Name = Bausteinname im Vor-- und Hauptlauf;
SNR = Satznummer im Vor-- und Hauptlauf

$PRO_IP.I_EXECUTED KRL--Anweisung ausgeführt

Datentyp Boolean min.


Wert
Einheit max.

Optionen Auswirkung
TRUE KRL--Anweisung ausgeführt.
FALSE KRL--Anweisung nicht ausgeführt.

$PRO_IP.NAME[32] Name des Bausteins im Vorlauf

Datentyp Character min.


Wert
Einheit max.

$PRO_IP.NAME_C[32] Name des Bausteins im Hauptlauf

SysVar 08.02.03 de 109 von 170


Systemvariablen

$PRO_IP.P_ARRIVED Bahnstatus für programmierten Punkt

Datentyp Integer min.


Wert
Einheit max.

$PRO_IP.P_NAME[24] Name oder Aggregat des Ziel-- oder Hilfspunktes

Datentyp Character min.


Wert
Einheit max.

$PRO_IP.SNR Satznummer im Vorlauf

Datentyp Integer min.


Wert
Einheit max.

$PRO_IP.SNR_C Satznummer im Hauptlauf

$PRO_MODE Programmablaufart in Abhängigkeit von “$INTERPRETER”

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL PRO_MODE $PRO_MODE
Bemerkung Programmablaufarten: ISTEP, PSTEP, MSTEP, CSTEP, GO, BSTEP

Optionen Auswirkung
Inkremental Step: Satzweise Bearbeitung mit Stopp nach jeder
#ISTEP
Anweisung (ohne Vorlaufbearbeitung).
Programm Step: Komplette Bearbeitung von Unterprogrammen
#PSTEP
(ohne Vorlaufbearbeitung).
Motion Step: Schrittweise Bearbeitung mit Stopp nach jedem
#MSTEP
Bewegungssatz (ohne Vorlaufbearbeitung).
Continuous Step: Schrittweise Bearbeitung mit Stopp nach jedem
#CSTEP Bewegungssatz mit Genauhalt
(mit Vorlaufbearbeitung).
#GO Durchgehende Bearbeitung bis zum Programmende
Back Step: Durchgehende, rückwärts bis zum Programmstart
#BSTEP
gerichtete Bearbeitung.

110 von 170 SysVar 08.02.03 de


17 P (Fortsetzung)

$PRO_MODE0 Prozeßlaufart des Submit--Interpreters

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL PRO_MODE $PRO_MODE0
Bemerkung Steuerungsinterne Anwendung.

Optionen Auswirkung
#ISTEP
#PSTEP
#MSTEP
#CSTEP
#GO
#BSTEP

$PRO_MODE1 Prozeßlaufart des Roboter--Interpreters

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL PRO_MODE $PRO_MODE1
Bemerkung Steuerungsinterne Anwendung.

Optionen Auswirkung
#ISTEP
#PSTEP
#MSTEP
#CSTEP
#GO
#BSTEP

$PRO_MOVE Signalvereinbarung “Bewegungsstatus”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile SIGNAL $PRO_MOVE $OUT[1022]
;Programmbewegung aktiv
Bemerkung

SysVar 08.02.03 de 111 von 170


Systemvariablen

$PRO_NAME[24] Prozeßname in Abhängigkeit von “$INTERPRETER”

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $PRO_NAME[24]
Bemerkung

$PRO_NAME0[24] Prozeßname des Submit--Interpreters

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $PRO_NAME0[24]
Bemerkung Steuerungsinterne Anwendung.

$PRO_NAME1[24] Prozeßname des Roboter--Interpreters

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $PRO_NAME1[24]
Bemerkung Steuerungsinterne Anwendung.

$PRO_START START -- Programmbearbeitung / Kommandobearbeitung

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $PRO_START
;Start wirkt auf Programm
Bemerkung

Optionen Auswirkung
TRUE Programmbearbeitung
FALSE Kommandobearbeitung

112 von 170 SysVar 08.02.03 de


17 P (Fortsetzung)

$PRO_STATE Prozeßzustand in Abhängigkeit von “$INTERPRETER”

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL PRO_STATE $PRO_STATE
Bemerkung

Optionen Auswirkung
#P_FREE Programm nicht angewählt
#P_RESET Programm zurückgesetzt
#P_ACTIVE Programm aktiv
#P_STOP Programm gestoppt
#P_END Programmende erreicht

$PRO_STATE0 Prozeßzustand des Submit--Interpreters

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL PRO_STATE $PRO_STATE0
Bemerkung Steuerungsinterne Anwendung.

$PRO_STATE1 Prozeßzustand des Roboter--Interpreters

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL PRO_STATE $PRO_STATE1
Bemerkung Steuerungsinterne Anwendung.

SysVar 08.02.03 de 113 von 170


Systemvariablen

$PROG_EEPOT Programmierung EE--Potentiometer DSE -- Eingabe Achsnummer

Datentyp Integer min. 1


Wert
Einheit max. 12
In Datei ------
Originalzeile INT $PROG_EEPOT
;Programmierung der EEPOTIS DSE
Bemerkung EE--Potentiometer auf dem Powermodul werden programmiert; dazu muß
Achsnummer eingegeben werden.

$PROG_TORQ_MON Soll--Momentenüberwachung

Datentyp Boolean min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile BOOL $PROG_TORQ_MON=FALSE
;Ueberwachung der Soll--Momente Motor und Getriebe
Bemerkung Bei einem Wechsel der Betriebsart wird bei aktivierter Meldung (TRUE)
folgende, quittierbare Meldung ausgegeben:
1467 Achtung! Maximale Geschwindigkeit könnte programmiert sein.

Optionen Auswirkung
TRUE Soll--Momentenüberwachung aktiviert.
FALSE Soll--Momentenüberwachung deaktiviert.

114 von 170 SysVar 08.02.03 de


18 R

18 R
$RAISE_T_MOT[n] Motor--Hochlaufzeit ohne Achsbelastung, Achsen 1 ... 12

Datentyp Real min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $RAISE_T_MOT[n]
Bemerkung Zeit, in der der Motor ohne Achsbelastung auf Nenndrehzahl beschleunigt.
[n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$RAISE_TIME[n] Achs--Hochlaufzeit, Achsen 1 ... 12

Datentyp Real min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $RAISE_TIME[n]
Bemerkung Zeit, in der die Achse auf Nenndrehzahl beschleunigt werden kann.
[n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$RAT_MOT_AX[n] Übersetzungsverhältnis (Motor : Achse), Achsen 1 ... 12

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL FRA $RAT_MOT_AX[n]
;Uebersetzung Motor--Achse N = Zaehler, D = Nenner
Bemerkung Format: N--Motor, D--Achse
[n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

SysVar 08.02.03 de 115 von 170


Systemvariablen

$RAT_MOT_ENC[n] Übersetzungsverhältnis (Motor : Drehgeber), Achsen 1 ... 12

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL FRA $RAT_MOT_ENC[n]
;Uebersetzung Motor--Geber N = Zaehler, D = Nenner
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$RC_RDY1 Signalvereinbarung “Bereit für Programm--Start”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $RC_RDY1 $OUT[1014]
;RC--Betriebsbereit 1
Bemerkung

$RCV_INFO Version des Grundsystems

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $RCV_INFO[128]
Bemerkung Kennzeichnung der Version des Grundsystems.
Beispiel:
”KS V5.46 (krc1adm@ks_build_01) #1 Tue Aug 13 12:59:31 WS 2002
RELEASE”
Bedeutung: Grundsystem Version V5.46, kompiliert vom KRC1ADM auf
dem ks_build_01--Rechner am 13. August 2002 um 12:59.

116 von 170 SysVar 08.02.03 de


18 R (Fortsetzung)

$REBOOTDSE Flag für Neuinitialisierung der digitalen Servoelektronik DSE

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $REBOOTDSE
Bemerkung Nur für Softwareentwicklung!

Optionen Auswirkung
TRUE DSE wird neu initialisiert.

Reduzierungsfaktor für axiale Beschleunigung bei achsspezi--


$RED_ACC_AXC[n] fischem Handverfahren und Kommandobetrieb, Achsen 1 ... 12

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_ACC_AXC[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

Reduzierungsfaktor für Bahn-- und Orientierungsbeschleunigun-


$RED_ACC_CPC gen bei kartesischem Handverfahren und Kommandobetrieb

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_ACC_CPC
Bemerkung

$RED_ACC_DYN Reduzierungsfaktor für Beschleunigung

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_ACC_DYN
Bemerkung

SysVar 08.02.03 de 117 von 170


Systemvariablen

$RED_ACC_EMX Reduzierungsfaktor für bahntreue NOT--AUS Rampe

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_ACC_EMX[12]
Bemerkung

Reduzierung der Beschleunigung für Override--Änderungen,


$RED_ACC_OV[n] Achsen 1 ... 12

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_ACC_OV[n]
Bemerkung [n]= [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

Reduzierungsfaktor der Geschwindigkeit beim Referenzieren nach


$RED_CAL_SD dem Erreichen des Referenzpunktnockens

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_CAL_SD
Bemerkung Nur bei Inkremental--Gebern erforderlich.

Reduzierungsfaktor der Geschwindigkeit beim Referenzieren vor


$RED_CAL_SF dem Erreichen des Referenzpunktnockens

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_CAL_SF
Bemerkung

118 von 170 SysVar 08.02.03 de


18 R (Fortsetzung)

$RED_JUS_UEB Reduzierungsfaktor für Übernahmefahrt

Datentyp Real min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $RED_JUS_UEB
Bemerkung

$RED_T1 Reduzierungsfaktor bei T1--Betrieb

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_T1
Bemerkung

Art der Reduzierung der Bahngeschwindigkeit bei


$RED_T1_OV_CP CP--Bewegungen im T1--Betrieb

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile BOOL $RED_T1_OV_CP=TRUE
Bemerkung

Optionen Auswirkung
Die Bahngeschwindigkeit wird um den in $RED_T1 eingestellten Prozent-
TRUE
wert erniedrigt.
Die Bahngeschwindigkeit wird bis auf den in $VEL_CP_T1 eingestellten
FALSE
Wert erniedrigt.

$RED_VEL Reduzierungsfaktor für Programm im Vorlauf

Datentyp Integer min. 1


Wert
Einheit % max. 100
In Datei ------
Originalzeile INT $RED_VEL
Bemerkung

SysVar 08.02.03 de 119 von 170


Systemvariablen

Reduzierungsfaktor für axiale Geschwindigkeit bei achsspezifi-


$RED_VEL_AXC[n] schem Handverfahren und Kommandobetrieb (PTP)

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_VEL_AXC[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$RED_VEL_C Reduzierungsfaktor für Programm im Hauptlauf

Datentyp Integer min. 1


Wert
Einheit % max. 100
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_VEL_C
Bemerkung

Reduzierungsfaktor für Bahn--, Schwenk-- und Drehgeschwindig-


$RED_VEL_CPC keit bei kartesischem Handverfahren und Kommandobetrieb (CP)

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $RED_VEL_CPC
Bemerkung

$REVO_NUM[n] Umdrehungszähler bei Endlosachsen

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $REVO_NUM[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

120 von 170 SysVar 08.02.03 de


18 R (Fortsetzung)

$RINT_LIST Liste der Interrupts auf Roboterebene

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL INT_INFO $RINT_LIST[32]
Bemerkung Diese Informationen werden im Menü “Anzeige -- Diagnose -- Interrupts”
angezeigt.

$ROB_CAL Signalvereinbarung ”Referier--Status”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile SIGNAL $ROB_CAL $OUT[1001]
;Roboter synchron
Bemerkung

$ROB_STOPPED Signalvereinbarung “Bewegungskontrolle”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile SIGNAL $ROB_STOPPED $OUT[1023]
;Roboter steht
Bemerkung

$ROB_TIMER Taktgeber

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $ROB_TIMER
Bemerkung Dient als Taktgeber, wenn keine genaue Zeitmessung erforderlich ist.

SysVar 08.02.03 de 121 von 170


Systemvariablen

$ROBROOT Lage des Roboters im Welt--Koordinatensystem

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile FRAME $ROBROOT={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
;Roboter im Weltkoordinatensystem [mm,Grad]
Bemerkung

Lage des Roboterfußpunkts im Welt--Koordinatensystem im


$ROBROOT_C Hauptlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile FRAME $ROBROOT_C
;Roboterfusspunkt im Weltkoordinatensystem Hauptlauf
Bemerkung

$ROBROOT_KIN Name der externen Robroot--Kinematik

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $ROBROOT_KIN[29]
;Externe Kinematikachsen in ROBROOT
Bemerkung

$ROBRUNTIME Betriebszeitzähler

Datentyp Integer min.


Wert
Einheit min max.
In Datei ------
Originalzeile INT $ROBRUNTIME
Bemerkung

122 von 170 SysVar 08.02.03 de


18 R (Fortsetzung)

$ROBTRAFO Robotername

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $ROBTRAFO[32]
Bemerkung

$ROTSYS Rotationsbezugssystem bei Relativsätzen im Vorlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL ROTSYS $ROTSYS
Bemerkung

Optionen Auswirkung
#AS_TRA
#TCP
#BASE

$ROTSYS_C Rotationsbezugssystem bei Relativsätzen im Hauptlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL ROTSYS $ROTSYS_C
Bemerkung

Optionen Auswirkung
#AS_TRA
#TCP
#BASE

SysVar 08.02.03 de 123 von 170


Systemvariablen

19 S

$SAFEGATE_OP Auslösen eines bahntreuen Stopps bei Bedienerschutzverletzung

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $SAFEGATE_OP $IN[1025]
Bemerkung

$SAFETY_SW Status der Zustimmschalter (gültig ab KSS 6.0)

Datentyp Enum min.


Wert
Einheit max.
In Datei
Originalzeile DECL SIG_STATE $SAFETY_SW
Bemerkung

Optionen Auswirkung
Kein Zustimmtaster gedrückt (Grundstellung) oder ein Taster durchge-
#RELEASED
drückt (Panikstellung).
#PRESSED Ein oder mehrere Zustimmtaster gedrückt (Zustimmstellung).

$SEN_DEL[n] Zurückgelegter Weg während der Signallaufzeit im EMT--Taster

Datentyp Integer min.


Wert
Einheit Inkr max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $SEN_DEL[n]
Bemerkung Zurückgelegter Weg während der Signallaufzeit im EMT in Inkrementen
aufgrund zeitlicher Verzögerung zwischen Durchlaufen der Justagekerbe
und Signalausgabe.
[n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

124 von 170 SysVar 08.02.03 de


19 S (Fortsetzung)

Austausch von Integer--Werten im Vorlauf zwischen Steuerung und


$SEN_PINT[1]...[20] Programm der Sensorschnittstelle

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $SEN_PINT[20]
Bemerkung

Austausch von Integer--Werten im Hauptlauf zwischen Steuerung


$SEN_PINT_C[1]...[20] und Programm der Sensorschnittstelle

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $SEN_PINT_C[20]
Bemerkung

Austausch von Real--Werten im Vorlauf zwischen Steuerung und


$SEN_PREA[1]...[20] Programm der Sensorschnittstelle

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile REAL $SEN_PREA[20]
Bemerkung

Austausch von Real--Werten im Hauptlauf zwischen Steuerung und


$SEN_PREA_C[1]...[20] Programm der Sensorschnittstelle

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile REAL $SEN_PREA_C[20]
Bemerkung

SysVar 08.02.03 de 125 von 170


Systemvariablen

$SEQ_CAL Referier--Reihenfolge der Achsen

Datentyp Integer min.


Wert
Einheit Bitfolge max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $SEQ_CAL[12]
Bemerkung

Optionen Auswirkung
LSB Achse 1
MSB Achse 12

Zeit, in der Achsregelung und Achsbremse überlappen, um die


$SERV_OFF_TM[n] Achse sicher zu fixieren

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $SERV_OFF_TM[n]
;Reglersperrzeit Achse[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$SERVOFILE
... Servoparameter 1 ... 12 für DSE beim Hochlauf der Steuerung
$SERVOFILE12

Datentyp Character min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile CHAR $SERVOFILE1[16]
...
CHAR $SERVOFILE12[16]
Bemerkung Beim Steuerungshochlauf können Servoparameter für jede Achse zur DSE
gesendet werden. Dazu müssen die Parameter in einem File ”Filename” im
Verzeichnis R1\Mada stehen.
Der Name des Files muß in den roboterseitigen Maschinendaten eingetra-
gen werden z.B. $SERVOFILE1[]= “dumper.servo”.
“DEFAULT” als Parameterfilename ist nicht zulässig.

126 von 170 SysVar 08.02.03 de


19 S (Fortsetzung)

$SERVOPARA Online--Änderung von Servoparametern

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL SERVOPARA $SERVOPARA
Bemerkung

$SET_IO_SIZE Legt die Anzahl der maximal verwendbaren Ein--/Ausgänge fest

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $SET_IO_SIZE
Bemerkung Reichen die standardmäßigen 1024 Ein-- bzw. Ausgänge nicht aus, können
durch Setzen der Variablen “$SET_IO_SIZE” 2048 bzw. 4096 E/A’s ver-
wendet werden.

Optionen Auswirkung
1 Standardmäßig 1024 Ein--/Ausgänge
2 2048 Ein--/Ausgänge
4 4096 Ein--/Ausgänge

$SIMULATE Standpunkt des Beobachters mit 6D--Mouse simulieren (AnySim)

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $SIMULATE
Bemerkung Für die Offline--Programmierung mit AnySim besteht die Möglichkeit, den
Standpunkt des Beobachters mit der 6D--Mouse zu verändern. Dazu muß
die Systemvariable $SIMULATE gesetzt sein. Die Mausdaten werden dann
nicht mehr im Grundsystem verarbeitet, sondern über die Socketschnitt-
stelle an Cross gesendet.

Optionen Auswirkung
TRUE Simulation aktiv.
FALSE Simulation nicht aktiv.

SysVar 08.02.03 de 127 von 170


Systemvariablen

Maximaler Orientierungsfehler für singularitätenfreies Fahren


$SINGUL_ERR_JOG im Handbetrieb

Datentyp Structure min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile FRAME $SINGUL_ERR_JOG={a 5.0,b 5.0,c 5.0}
Bemerkung

Maximaler Orientierungsfehler für singularitätenfreies Fahren


$SINGUL_ERR_PRO im Automatik--Betrieb

Datentyp Structure min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile FRAME $SINGUL_ERR_PRO={a 0.0,b 0.0,c 0.0}
Bemerkung

Verhalten von Achse 1 im Fall einer Überkopf--Singularität


$SINGUL_POS[1] (a1--Stellung)

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile $SINGUL_POS[1]
Bemerkung Behandlung einer undefinierten Gelenkstellung

Optionen Auswirkung
0 Der Winkel der Achse 1 wird auf “0” Grad festgelegt.
1 Der Winkel der Achse 1 bleibt vom Start-- bis zum Zielpunkt gleich.

128 von 170 SysVar 08.02.03 de


19 S (Fortsetzung)

Verhalten von Achse 2 im Fall einer Strecklagen--Singularität


$SINGUL_POS[2] (a2--Stellung)

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile $SINGUL_POS[2]
Bemerkung Behandlung einer undefinierten Gelenkstellung

Optionen Auswirkung
0 Der Winkel der Achse 2 wird auf “0” Grad festgelegt.
1 Der Winkel der Achse 2 bleibt vom Start-- bis zum Zielpunkt gleich.

Verhalten von Achse 4 im Fall einer Handachsen--Singularität


$SINGUL_POS[3] (a5--Stellung)

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile $SINGUL_POS[3]
Bemerkung Behandlung einer undefinierten Gelenkstellung

Optionen Auswirkung
0 Der Winkel der Achse 4 wird auf “0” Grad festgelegt.
1 Der Winkel der Achse 4 bleibt vom Start-- bis zum Zielpunkt gleich.

$SINGUL_STRATEGY Strategie für singularitätenfreies Fahren

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $SINGUL_STRATEGY
Bemerkung

Optionen Auswirkung
0 Keine Strategie.
Approximationsstrategie: Durchfahren der Singularität durch
1
Orientierungsänderungen.

SysVar 08.02.03 de 129 von 170


Systemvariablen

$SINT_LIST Liste der Interrupts auf Submit--Ebene

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL INT_INFO $SINT_LIST[32]
Bemerkung Diese Infos werden im Menü Anzeige ® Diagnose ® Interrupts angezeigt.

$SLAVE_AXIS_INC Istposition von Master--/Slave--Achsen in Inkrementen

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL SLAVE_AXIS_INC $SLAVE_AXIS_INC[12]
Bemerkung M: Master S1 -- S5: Slaves
Bsp.: $SLAVE_AXIS_INC[6].S2 ----> 2. Slave der Achse 6
$SLAVE_AXIS_INC[1].M ----> Master der Achse 1

Lage der Software--Endschalter am negativen Achsende


$SOFTN_END[n] (Achsen 1 ... 12)

Datentyp Real min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $SOFTN_END[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

Lage der Software--Endschalter am positiven Achsende


$SOFTP_END[n] (Achsen 1 ... 12)

Datentyp Real min.


Wert
Einheit mm, ° max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $SOFTP_END[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

130 von 170 SysVar 08.02.03 de


19 S (Fortsetzung)

$SOFTPLCBOOL[n] Datenaustausch zwischen KRC und SoftPLC

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $SOFTPLCBOOL[n]
Bemerkung [n] = [1] ... [1024]
Wert lesen:
Einzeln: T_INT16 RdPLC_BOOL(T_UINT16 Index, T_FLAG * Erg);
Schreiben: T_INT16 RdPLC_BOOL_EX(T_FLAG * pBoolArray,
T_UINT16 nIndex, T_UINT16 nAmount);
Wert schreiben:
Einzeln: T_INT16 WrPLC_BOOL(T_UINT16 Index, T_FLAG Wert);
Mehrere: T_INT16 WrPLC_BOOL_EX(T_FLAG * pBoolArray,
T_UINT16 nIndex, T_UINT16 nAmount);
nIndex: Definierte Position, ab der gelesen wird
nAmount: Anzahl der verwendeten Variablen
Als Rückgabewert wird entweder “0” (Lese-- bzw. Schreibvorgang OK)
oder “--1” (Fehler beim Lese-- bzw. Schreibvorgang) geliefert.

Optionen Auswirkung
TRUE Keine, da Anwendervariable.
FALSE Keine, da Anwendervariable.

$SOFTPLCINT[n] Datenaustausch zwischen KRC und SoftPLC

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $SOFTPLCINT[n]
Bemerkung [n] = [1] ... [1024]
Wert schreiben:
Einzeln: T_INT16 RdPLC_INT(T_UINT16 Index, T_INT32 * Erg);
Mehrere: T_INT16 RdPLC_INT_EX(T_INT32* pIntArray,
T_UINT16 nIndex, T_UINT16 nAmount);
Wert schreiben:
Einzeln: T_INT16 WrPLC_INT(T_UINT16 Index, T_INT32 Wert);
Mehrere: T_INT16 WrPLC_INT_EX(T_INT32* pIntArray,
T_UINT16 nIndex, T_UINT16 nAmount);
nIndex: Definierte Position, ab der gelesen wird
nAmount: Anzahl der verwendeten Variablen
Als Rückgabewert wird entweder “0” (Lese-- bzw. Schreibvorgang OK)
oder “--1” (Fehler beim Lese-- bzw. Schreibvorgang) geliefert.

Optionen Auswirkung
TRUE Keine, da Anwendervariable.
FALSE Keine, da Anwendervariable.

SysVar 08.02.03 de 131 von 170


Systemvariablen

$SOFTPLCREAL[n] Datenaustausch zwischen KRC und SoftPLC

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile REAL $SOFTPLCREAL[n]
Bemerkung [n] = [1] ... [1024]
Wert lesen:
Einzeln: T_INT16 RdPLC_REAL(T_UINT16 Index, T_FLOAT * Erg);
Mehrere: T_INT16 RdPLC_REAL_EX(T_FLOAT* pFloatArray,
T_UINT16 nIndex, T_UINT16 nAmount);
Wert schreiben:
Einzeln: T_INT16 WrPLC_INT(T_UINT16 Index, T_FLOAT Wert);
Mehrere: T_INT16 WrPLC_REAL_EX(T_FLOAT* pRealArray,
T_UINT16 nIndex, T_UINT16 nAmount);
nIndex: Definierte Position, ab der gelesen wird
nAmount: Anzahl der verwendeten Variablen
Als Rückgabewert wird entweder “0” (Lese-- bzw. Schreibvorgang OK)
oder “--1” (Fehler beim Lese-- bzw. Schreibvorgang) geliefert.

Optionen Auswirkung
TRUE Keine, da Anwendervariable.
FALSE Keine, da Anwendervariable.

$SPC_KIN Daten für Sonderkinematiken

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $SPC_KIN[30]
;Sonderkinematiken
Bemerkung

132 von 170 SysVar 08.02.03 de


19 S (Fortsetzung)

$SPIN_A Beschreibung des Spindelantriebs

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL SPIN $SPIN_A={SPIN_AXIS 0,SPIN_RAD_G 0.0,
SPIN_RAD_H 0.0,SPIN_SG 0,SPIN_BETA 0.0}
Bemerkung

$SPIN_A.SPIN_AXIS Achsnummer, auf die die Spindel wirkt

Datentyp Integer min.


Wert
Einheit max.

Versatz vom Winkel zwischen den Trapezschenkeln “g” und “h”


$SPIN_A.SPIN_BETA und Ausgangswinkel

Datentyp Real min.


Wert
Einheit max.

$SPIN_A.SPIN_RAD_G Länge des ruhenden Schenkels “g” der Spindel

$SPIN_A.SPIN_RAD_H Länge des beweglichen Schenkels ”h” der Spindel

$SPIN_A.SPIN_SG Vorzeichen für die Drehrichtung

Datentyp Integer min.


Wert
Einheit max.

SysVar 08.02.03 de 133 von 170


Systemvariablen

$SPIN_B Beschreibung des Spindelantriebs

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL SPIN $SPIN_B={SPIN_AXIS 0,SPIN_RAD_G 0.0,
SPIN_RAD_H 0.0,SPIN_SG 0,SPIN_BETA 0.0}
Bemerkung

$SPIN_B.SPIN_AXIS Achsnummer, auf die die Spindel wirkt

Datentyp Integer min.


Wert
Einheit max.

Versatz vom Winkel zwischen den Trapezschenkeln “g” und “h”


$SPIN_B.SPIN_BETA und Ausgangswinkel

Datentyp Real min.


Wert
Einheit max.

$SPIN_B.SPIN_RAD_G Länge des ruhenden Schenkels “g” der Spindel

$SPIN_B.SPIN_RAD_H Länge des beweglichen Schenkels ”h” der Spindel

$SPIN_B.SPIN_SG Vorzeichen für die Drehrichtung

134 von 170 SysVar 08.02.03 de


19 S (Fortsetzung)

$SPIN_C Beschreibung des Spindelantriebs

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL SPIN $SPIN_C={SPIN_AXIS 0,SPIN_RAD_G 0.0,
SPIN_RAD_H 0.0,SPIN_SG 0,SPIN_BETA 0.0}
Bemerkung

$SPIN_C.SPIN_AXIS Achsnummer, auf die die Spindel wirkt

Datentyp Integer min.


Wert
Einheit max.

Versatz vom Winkel zwischen den Trapezschenkeln “g” und “h”


$SPIN_C.SPIN_BETA und Ausgangswinkel

Datentyp Real min.


Wert
Einheit max.

$SPIN_C.SPIN_RAD_G Länge des ruhenden Schenkels “g” der Spindel

$SPIN_C.SPIN_RAD_H Länge des beweglichen Schenkels ”h” der Spindel

$SPIN_C.SPIN_SG Vorzeichen für die Drehrichtung

Datentyp Integer min.


Wert
Einheit max.

$SPINDLE Spindeln

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $SPINDLE
Bemerkung

Optionen Auswirkung
0 Nein
1 Ja

SysVar 08.02.03 de 135 von 170


Systemvariablen

$SS_MODE Signalvereinbarung “Betriebsart Einzelschritt”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $SS_MODE $OUT[999]
Bemerkung

$ST_TOL_TIME Erkennungszeit Stillstand

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $ST_TOL_TIME
Bemerkung Zeit in ms, die der Roboter im Geschwindigkeitsband $ST_TOL_VEL liegen
muß, damit Stillstand erkannt wird.

$ST_TOL_VEL[n] Geschwindigkeitsgrenze für Erkennung Stillstand

Datentyp Real min.


Wert
Einheit 1/min max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $ST_TOL_VEL[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$STOPMB_ID Kennung der Mailbox für Stoppmeldungen

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $STOPMB_ID
Bemerkung

136 von 170 SysVar 08.02.03 de


19 S (Fortsetzung)

$STOPMESS Signalvereinbarung “Stopp--Meldung”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $STOPMESS $OUT[1010]
Bemerkung

Optionen Auswirkung
TRUE Stopp--Meldung; der zugeordnete Ausgang wird auf TRUE gesetzt.
Keine Stopp--Meldung; der zugeordnete Ausgang wird auf FALSE
FALSE
gesetzt.

$STOPNOAPROX Meldung “Überschleifen nicht möglich” mit oder ohne Quittierung

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $STOPNOAPROX
Bemerkung Festlegung, ob bei “Überschleifen nicht möglich” eine Hinweis-- oder Quit-
tierungsmeldung ausgegeben wird.

Optionen Auswirkung
T1--/T2--Betrieb: Quittierungsmeldung “Überschleifen nicht möglich”.
TRUE Roboter stoppt.
AUT--/EXT--Betrieb: Hinweismeldung “Überschleifen nicht möglich”
T1--/T2--Betrieb: Hinweismeldung “Überschleifen nicht möglich”.
FALSE
AUT--/EXT--Betrieb: Keine Meldung

$STROBE1
... Meßwertabfrage Strobe Digitaleingang 1 ... 6
$STROBE6

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $STROBE1 $OUT[1015]
...
SIGNAL $STROBE6 $OUT[1020]
Bemerkung Strobe--Ausgang fuer Digitaleingang 1 ... 6

SysVar 08.02.03 de 137 von 170


Systemvariablen

$STROBE1LEV
... Strobe--Impuls Digitaleingang 1 ... 6 High oder Low
$STROBE6LEV

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile BOOL $STROBE1LEV
...
BOOL $STROBE6LEV
Bemerkung Aktiv--Flanke des Strobe--Ausganges für Digitaleingang 1 ... 6

Optionen Auswirkung
TRUE Strobe ist ein High--Impuls.
FALSE Strobe ist ein Low--Impuls.

$SYNC Erzeugen phasensynchroner Profile

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile INT $SYNC
;Phasenanpassung (1 = synchron, 0 = nicht synchron)
Bemerkung Phasensynchrone Profile erzeugen Ein/Aus. Bei eingeschalteter Beschleu-
nigungsanpassung und deaktiviertem höheren Fahrprofil werden bei PTP--
Einzelsätzen -- falls gleichzeitig $SYNC > 0 ist -- phasensynchrone Profile
erzeugt. Damit erfolgen die Beschleunigungs--, Konstantfahr-- und Verzö-
gerungsphasen für alle Achsen simultan.
Dadurch verändert sich die geometrische Bahn bei veränderten Bewe-
gungsparametern nicht. Bei $SYNC=0 ist dies nicht der Fall, die Achsen
starten und beenden die Bewegung lediglich zur selben Zeit.

Optionen Auswirkung
0 Profile nur zeitsynchron.
1 Profile zeit-- und phasensynchron.

138 von 170 SysVar 08.02.03 de


20 T

20 T
$T1 Signalvereinbarung “Betriebsart TEST 1” -- “T 1”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $T1 $OUT[993]
Bemerkung

$T2 Signalvereinbarung “Betriebsart TEST 2” -- “T 2”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $T2 $OUT[994]
Bemerkung

$T2_OUT_WARNING Warnung bei Betriebsartwechsel auf “T2” oder “AUT”

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\MaDa\$option.dat
Originalzeile BOOL $T2_OUT_WARNING=FALSE
Bemerkung

Optionen Auswirkung
TRUE Warnung aktiviert.
FALSE Warnung deaktiviert.

SysVar 08.02.03 de 139 von 170


Systemvariablen

$T2_OV_REDUCE Reduzieren des Overrides bei Umschalten nach “T2”

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\MaDa\$option.dat
Originalzeile BOOL $T2_OV_REDUCE=FALSE
Bemerkung Bei einem Wechsel der Betriebsart auf “T2” wird der Override automatisch
auf 10% reduziert.
Der “T1”--Override wird gespeichert und steht beim Umschalten auf “T1”
wieder zur Verfügung (Kundenversion 1). Der “T1”--Standardwert (z. B.
nach einem Kaltstart) liegt bei 100%.

Optionen Auswirkung
Override bei Umschalten nach “T2” auf 10% reduzieren und “T1”--Over-
TRUE
ride speichern.
Override bei Umschalten nach “T2” nicht reduzieren. “T1”--Override nicht
FALSE
speichern.

$TARGET_STATUS Auswahl Status Bewegung Start -- Zielpunkt

Datentyp Enum min.


Wert
Einheit max.
In Datei Steu\MaDa\$custom.dat
Originalzeile DECL TARGET_STATUS $TARGET_STATUS=#SOURCE
Bemerkung Wird von der KRL--Funktion INVERSE() benutzt, wenn der übergebene
Zielpunkt keinen gültigen STATUS--Wert hat.

Optionen Auswirkung
#SOURCE Status wird vom Startpunkt übernommen.
Berechnen aller acht Status--Kombinationen; Auswahl derjenigen, bei
#BEST
der die Bewegung Start -- Zielpunkt im Achsraum am kürzesten ist.

140 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

$TC_SYM Zeitkonstante Symmetrierfilter

Datentyp Real min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $TC_SYM
Bemerkung Die Symmetrierung der Achsen erfolgt mit dem Maschinen--Datum
“$TC_SYM”. Zum optimalen Bahnfahren sollte hier der Wert der Ersatz-
kreiskonstanten des langsamsten Drehzahlregelkreises eingetragen wer-
den.

$TCP_IPO Flag für Modus “TCP--bezogene Interpolation”

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $TCP_IPO=FALSE
Bemerkung

Optionen Auswirkung
TRUE “TCP--bezogene Interpolation” ein.
FALSE “TCP--bezogene Interpolation” aus.

$TECH Funktionsparameter für Funktionsgenerator im Vorlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$operate.dat
Originalzeile DECL TECH $TECH[6]
Bemerkung

SysVar 08.02.03 de 141 von 170


Systemvariablen

$TECH_ANA_FLT_OFF[n] Analog--Ausgangsfilter für Techval deaktivieren

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile BOOL $TECH_ANA_FLT_OFF[n]
;Zykl. Analogausgabe des TECHVALS gefiltert
Bemerkung [n] = [1] ... [6]
Der Wert der Systemvariablen “$ANA_DEL_FLT” wird ignoriert, sobald
eine der Variablen “$TECH_ANA_FLT_OFF[1] ... [6]” ebenfalls den Wert
“TRUE” besitzt.
Wenn “$ANA_DEF_FLT” verwendet werden soll, müssen die sechs Varia-
blen “$ANA_DEF_FLT_OFF[1] ... [6]” sowie “$VEL_FLT_OFF” auf
“FALSE” gesetzt werden.

Optionen Auswirkung
Das Signal wird nicht gefiltert, wodurch die programmierte Amplitude exakt
TRUE
und ohne Phasenverschiebung erreicht wird.
Das Signal wird wie bisher über einen Filter ausgegeben, wobei das Ana-
FALSE log--Signal nicht ganz die programmierte Amplitude erreicht und außerdem
von der Geschwindigkeit sowie dem Override abhängig ist.

$TECH_C Funktionsparameter für Funktionsgenerator im Hauptlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL TECH $TECH_C[6]
;Funktionsparameter
Funktionsgenerator Hauptlauf
Bemerkung

$TECH_FUNC Funktionalitätsbits für den Funktionsgenerator

Datentyp Integer min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile INT $TECH_FUNC=’B0000’
Bemerkung

142 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

$TECH_MAX Maximalzahl der Funktionsgeneratoren

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $TECH_MAX
;Max. Anzahl Funktionsgeneratoren
Bemerkung

$TECH_OPT Optionsbit für den Funktionsgenerator

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile BOOL $TECH_OPT=FALSE
;Funktionsgenerator
Bemerkung

Optionen Auswirkung
TRUE Funktionsgenerator ein.
FALSE Funktionsgenerator aus.

$TECHANGLE Drehung des Technologiedreibeins im Vorlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL TECHANGLE $TECHANGLE
;Verdrehung Technologiedreibein im Vorlauf
Bemerkung

$TECHANGLE_C Drehung des Technologiedreibeins im Hauptlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL TECHANGLE $TECHANGLE_C
Bemerkung

SysVar 08.02.03 de 143 von 170


Systemvariablen

$TECHIN Eingangswert für Funtionsgenerator

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile REAL $TECHIN[6]
;Eingangswert Funktionsgenarator
Bemerkung

$TECHPAR Parametrierung des Funktionsgenerators im Vorlauf

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile REAL $TECHPAR[6,10]
;Parameter Funktionsgenerator
Bemerkung

$TECHPAR_C Parametrierung des Funktionsgenerators im Hauptlauf

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile REAL $TECHPAR_C[6,10]
;Parameter Funktionsgenerator
Bemerkung

$TECHSYS Technologiedreibein im Vorlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL TECHSYS $TECHSYS
;Technologiedreibein im Vorlauf
Bemerkung

144 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

$TECHSYS_C Technologiedreibein im Hauptlauf

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL TECHSYS $TECHSYS
;Technologiedreibein im Hauptlauf
Bemerkung

$TECHVAL Funktionswert für Funktionsgenerator

Datentyp Real min.


Wert
Einheit max.
In Datei ------
Originalzeile REAL $TECHVAL[6]
;Funktionswert Funktionsgenerator
Bemerkung

Verschiebung zwischen Flanschpunkt und Handpunkt--Koordina-


$TFLWP tensystem

Datentyp Structure min.


Wert
Einheit Frame max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $TFLWP={x 0.0,y 0.0,z 210.0,a 0.0,b 0.0,c 0.0}
;Frame zwischen Flansch-- und Handpunktkoordinatensystem
Bemerkung

$TIME_POS[n] Achs--Positionierzeit

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $TIME_POS[n]
Bemerkung Maximale Zeit zum Positionieren der Achse.
[n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

SysVar 08.02.03 de 145 von 170


Systemvariablen

$TIMER[n] Timer

Datentyp Integer min.


Wert
Einheit ms max.
In Datei ------
Originalzeile INT $TIMER[n]
Bemerkung [n]= [1] ... [32]
Wert von Timer[n] erhöht sich alle ms um 1, wenn $TIMER_STOP = FALSE

$TIMER_FLAG[n] Anzeige Timer größer oder gleich Null

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $TIMER_FLAG[n]
Bemerkung [n] = [1] ... [36]

Optionen Auswirkung
TRUE Wert für Timer n ist größer Null.
FALSE Wert für Timer n ist gleich Null.

$TIMER_STOP[n] Starten und Stoppen des Timers

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $TIMER_STOP[n]
Bemerkung [n] = [1] ... [32]

Optionen Auswirkung
TRUE Timer ist gestoppt.
FALSE Timer wird gestartet.

146 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

Verschiebung zwischen internem Roboter--Koordinatensystem und


$TIRORO aktuellem Roboter--Koordinatensystem

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $TIRORO={x 0.0,y 0.0,z 865.0,a 0.0,b 0.0,c 0.0}
Bemerkung

$TL_COM_VAL Toleranzzeit nach Überschreitung der Soll--Drehzahl--Begrenzung

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $TL_COM_VAL=50
;Toleranzzeit Solldrehzahlbegrenzung [ms]
Bemerkung

$TM_CON_VEL Definition einer minimalen Konstantfahrphase

Datentyp Integer min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $TM_CON_VEL
;Minimale Konstantfahrphase [ms]
Bemerkung Zur Vermeidung stoßartiger Belastungen der Mechanik bei abruptem
Wechsel von Beschleunigung und Bremsen, für kurze Punktabstände.

SysVar 08.02.03 de 147 von 170


Systemvariablen

$TOOL Werkzeug--Koordinatensystem relativ zum Flansch--


Koordinatensystem im Vorlauf

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile FRAME $TOOL
;Werkzeug im Flanschkoordinatensystem Vorlauf
Bemerkung

$TOOL.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

$TOOL.B Drehung um die Y--Achse

$TOOL.C Drehung um die X--Achse

$TOOL.X Verschiebung in X--Richtung

Datentyp Real min.


Wert
Einheit mm max.

$TOOL.Y Verschiebung in Y--Richtung

$TOOL.Z Verschiebung in Z--Richtung

148 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

$TOOL_C Werkzeug--Koordinatensystem relativ zum Flansch--


Koordinatensystem im Hauptlauf

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile FRAME $TOOL_C
;Werkzeug im Flanschkoordinatensystem Hauptlauf
Bemerkung

$TOOL_C.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

$TOOL_C.B Drehung um die Y--Achse

$TOOL_C.C Drehung um die X--Achse

$TOOL_C.X Verschiebung in X--Richtung

Datentyp Real min.


Wert
Einheit mm max.

$TOOL_C.Y Verschiebung in Y--Richtung

$TOOL_C.Z Verschiebung in Z--Richtung

$TOOL_KIN Name der externen TOOL--Kinematik

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $TOOL_KIN[29]
;Externe Kinematikachsen in TOOL
Bemerkung

SysVar 08.02.03 de 149 von 170


Systemvariablen

$TORQ_DIFF[n] Maximale Momentenabweichung der einzelnen Achsen

Datentyp Integer min.


Wert
Einheit % max.
In Datei ------
Originalzeile INT $TORQ_DIFF[n]
Bemerkung [n] = [1] ... [6]
Gibt die maximale Momentenabweichung in % an, die vom Anwender nur
auf Null gesetzt werden kann.
Diese Systemvariable kann zur Optimierung der Momentenüberwachung
(Collisiondetection) genutzt werden.
Vor einem Bewegungsabschnitt wird die Variable im KRL--Programm auf
Null gesetzt; am Ende eines Bewegungssatzes oder eines Bewegungsab-
schnittes kann $TORQ_DIFF[] ausgelesen und der Überwachungs-
schlauch $TORQMON[] auf den Wert von $TORQ_DIFF[] (+5...10%
Sicherheit) gesetzt werden.

Geschwindigkeitsgrenze zur Überwachung der momenten--


$TORQ_VEL[n] betriebenen Achse

Datentyp Real min.


Wert
Einheit % max.
In Datei ------
Originalzeile REAL $TORQ_VEL[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6
Geschwindigkeitsgrenze in % der Maximalgeschwindigkeit zur Überwa-
chung der momentenbetriebenen Achse [n].
Wenn eine Achse im Momentenbetrieb ist, sind alle Überwachungen abge-
schaltet.
Um trotzdem Hardwaredefekte oder ein “Durchgehen” der Achse zu erken-
nen, wird die Geschwindigkeit überwacht.
Mit $TORQ_VEL kann im Programm die maximal zulässige Geschwindig-
keit in Automatik-- und T2--Betrieb eingestellt werden. Für T1 Betrieb gilt die
Geschwindigkeit, die in den Maschinendaten eingestellt ist.
Wird die Geschwindigkeit überschritten, werden die Antriebe abgeschaltet
und eine entsprechende Meldung ausgegeben.

150 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

$TORQMON[6] Momentenüberwachungsschlauch im Programmbetrieb

Datentyp Integer min.


Wert
Einheit % max.
In Datei ------
Originalzeile INT $TORQMON[6]
;Momentenueberwachungsschlauch im Programmbetrieb [%]
Bemerkung

$TORQMON_COM[6] Momentenüberwachungsschlauch im Kommandobetrieb

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $TORQMON_COM[6]
;Momentenueberwachungsschlauch im Kommandobetrieb [%]
Bemerkung

Vorgabewerte für den Momentenüberwachungsschlauch


$TORQMON_COM_DEF[6] im Kommandobetrieb

Datentyp Integer min.


Wert
Einheit % max.
In Datei Steu\Mada\$custom.dat
Originalzeile INT $TORQMON_COM_DEF[6]
Bemerkung

Default--Vorgabewerte für den Momentenüberwachungsschlauch


$TORQMON_DEF[6] im Programmbetrieb

Datentyp Integer min.


Wert
Einheit % max.
In Datei Steu\Mada\$custom.dat
Originalzeile INT $TORQMON_DEF[6]
Bemerkung

SysVar 08.02.03 de 151 von 170


Systemvariablen

$TORQMON_TIME Ansprechzeit der Fahrmomentenüberwachung

Datentyp Real min.


Wert
Einheit ms max.
In Datei Steu\Mada\$custom.dat
Originalzeile REAL $TORQMON_TIME
Bemerkung Zeit nach der die Fahrmomentenüberwachung anspricht.

$TORQUE_AXIS Achse in Position, wenn Sollwert erreicht -- A1 ... A6, E1 ... E6

Datentyp Integer min.


Wert
Einheit max.
In Datei ------
Originalzeile INT $TORQUE_AXIS
Bemerkung Bitfeld für momentenbetriebene Achsen A1 -- A6, E1 -- E6.
Wird ein Bit für die entsprechende Achse gesetzt, so wird am Ende der
Bewegung nicht gewartet, bis die Achse ihr Positionierfenster erreicht hat.
Sobald der Sollwert die Zielposition erreicht hat, wird der nächste Satz
abgefahren.
Die Achsüberwachungen werden abgeschaltet.
Das Beschreiben dieser Variablen löst Vorlaufstopp aus.
Beispiel:
Achse 1 in Momentenbetrieb schalten: $TORQUE_AXIS = ‘B000001‘

$TOUCH_ACC Rückzugsbeschleunigung für Touch--Sensor

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $TOUCH_ACC
Bemerkung

152 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

$TOUCH_SVEL Startgeschwindigkeit Touch--Sensor

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $TOUCH_SVEL
Bemerkung Startgeschwindigkeit des Touch--Sensors in Prozent der Suchgeschwin-
digkeit.

$TOUCH_VEL Maximale Rückfahrgeschwindigkeit des Touch--Sensors

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $TOUCH_VEL
Bemerkung

$TRACE Parameter für Trace--Funktion

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL TRACE $TRACE
Bemerkung

$TRACE.MODE Steuerung der Trace--Funktion

Datentyp Enum min.


Wert
Einheit max.

Optionen Auswirkung
#START Start TRACE

SysVar 08.02.03 de 153 von 170


Systemvariablen

$TRACE.NAME Name der Datenaufzeichnungsdatei

Datentyp Character min.


Wert
Einheit max.

$TRACE.STATE Zustand der Trace--Funktion

Datentyp Enum min.


Wert
Einheit max.

Optionen Auswirkung
#T_WAIT
#TRIGGERED
#T_END

$TRAFO_AXIS Anzahl der transformierten Achsen

Datentyp Integer min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $TRAFO_AXIS=6
;Anzahl der transformierten Achsen
Bemerkung

$TRAFONAME Name der Koordinatentransformation

Datentyp Character min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile CHAR $TRAFONAME[32]
;Name der Koordinatentransformation
Bemerkung

154 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

$TRANSSYS Translations--Bezugssystem

Datentyp Enum min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL TRANSSYS $TRANSSYS
;WORLD, BASE, ROBROOT, TCP
Bemerkung

Optionen Auswirkung
#WORLD
#BASE
#ROBROOT
#TCP

$TRP_A Trapezverbindung bei den Achsantrieben

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL TRPSPIN $TRP_A={TRPSP_AXIS 0,TRPSP_COP_AX 0,
TRPSP_A 0.0,TRPSP_B 0.0,TRPSP_C 0.0,TRPSP_D 0.0}
Bemerkung Beschreibt eine Trapezverbindung bei den Achsantrieben.
TRP_A.TRPSP_AXIS: angetriebenen Achse.
TRP_A.TRPSP_COP_AXIS: gekoppelte Achse.
TRP_A.TRPSP_A, B, C und D: Längen der vier Trapezseiten

$TRP_A.TRPSP_A Länge der Trapezseite “A”

Datentyp Real min.


Wert
Einheit max.

$TRP_A.TRPSP_AXIS Angetriebene Achse

Datentyp Integer min.


Wert
Einheit max.

SysVar 08.02.03 de 155 von 170


Systemvariablen

$TRP_A.TRPSP_B Länge der Trapezseite “B”

Datentyp Real min.


Wert
Einheit max.

$TRP_A.TRPSP_C Länge der Trapezseite “C”

$TRP_A.TRPSP_COP_AX Gekoppelte Achse

Datentyp Integer min.


Wert
Einheit max.

$TRP_A.TRPSP_D Länge der Trapezseite “D”

Datentyp Real min.


Wert
Einheit max.

Aktuelles Technologiedreibein in Bezug auf das


$TSYS Basis--Koordinatensystem

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile FRAME $TSYS
;Aktuelles Technologie--Dreibein bezogen auf BASE
Bemerkung

$TURN Drehjustage aktiv

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $TURN
;Drehjustage aktiv
Bemerkung

Optionen Auswirkung
TRUE Drehjustage aktiv.
FALSE Drehjustage nicht aktiv.

156 von 170 SysVar 08.02.03 de


20 T (Fortsetzung)

$TX3P3 Verschiebung der Roboterhand, ausgehend von Achse 3

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile FRAME $TX3P3={x 1000.0,y 0.0,z 45.0,a 0.0,b 90.0,c 0.0}
Bemerkung

SysVar 08.02.03 de 157 von 170


Systemvariablen

21 U
$USER_SAF Signalvereinbarung “Schutzgitterabfrage”

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $USER_SAF $OUT[1011]
Bemerkung

158 von 170 SysVar 08.02.03 de


22 V

22 V

$V_CUSTOM Versionskennung der Datei “$Custom.dat”

Datentyp Character min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile CHAR $V_CUSTOM[32]
Bemerkung

$V_OPTION Versionskennung der Datei “$Option.dat”

Datentyp Character min.


Wert
Einheit max.
In Datei Steu\Mada\$option.dat
Originalzeile CHAR $V_OPTION[32]
Bemerkung

$V_R1MADA Versionskennung Maschinendaten im Verzeichnis R1

Datentyp Character min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile CHAR $V_R1MADA[32]
Bemerkung

$V_ROBCOR Versionskennung der Datei “Robcor.dat”

Datentyp Character min.


Wert
Einheit max.
In Datei R1\Mada\$robcor.dat
Originalzeile CHAR $V_ROBCOR[32]
Bemerkung

SysVar 08.02.03 de 159 von 170


Systemvariablen

$V_STEUMADA Versionskennung der Datei “$machine.dat” im Verzeichnis \Steu

Datentyp Character min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile CHAR $V_STEUMADA[32]
Bemerkung

$VEL Geschwindigkeiten im Vorlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL CP $VEL
Bemerkung Geschwindigkeiten im Vorlauf
CP = m/s, ORI1 = Grad/s, ORI2 = Grad/s

$VEL.CP Bahngeschwindigkeit im Vorlauf

Datentyp Real min. > 0


Wert
Einheit m/s max.

$VEL.ORI1 Schwenkgeschwindigkeit im Vorlauf

Datentyp Real min.


Wert
Einheit °/s max.

$VEL.ORI2 Drehgeschwindigkeit im Vorlauf

$VEL_ACT Aktuelle Bahngeschwindigkeit

Datentyp Real min. > 0


Wert
Einheit m/s max. $VEL_MA.CP
In Datei R1\Mada\$machine.dat
Originalzeile REAL $VEL_ACT
Bemerkung

160 von 170 SysVar 08.02.03 de


22 V (Fortsetzung)

$VEL_ACT_MA Grenzwert der axialen Sollgeschwindigkeit

Datentyp Integer min.


Wert
Einheit % max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $VEL_ACT_MA
;Grenzwert Sollgeschwindigkeit [%]
Bemerkung Im Hand-- und T1--Betrieb werden die Grenzen um den Wert der Geschwin-
digkeitsreduzierung in T1 verringert.
Bei PTP--Bewegungen wird die Beschleunigung vom höheren Fahrprofil
über Robotermodell berechnet.

$VEL_AX_JUS[n] Geschwindigkeit der einzelnen Achsen bei EMT--Justage

Datentyp Real min.


Wert
Einheit °/s, mm/s max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $VEL_AX_JUS[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$VEL_AXIS[n] Geschwindigkeit der Achsen im Vorlauf

Datentyp Integer min. 1


Wert
Einheit % max. 100
In Datei ------
Originalzeile INT $VEL_AXIS[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6

Aktuelle Achsgeschwindigkeit im Verhältnis zur Maximalgeschwin-


$VEL_AXIS_ACT[n] digkeit

Datentyp Real min. --100


Wert
Einheit % max. 100
In Datei ------
Originalzeile REAL $VEL_AXIS_ACT[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

SysVar 08.02.03 de 161 von 170


Systemvariablen

$VEL_AXIS_C[n] Geschwindigkeit der Achsen im Hauptlauf

Datentyp Integer min. 1


Wert
Einheit % max. 100
In Datei ------
Originalzeile INT $VEL_AXIS_C[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6

$VEL_AXIS_MA[n] Nenndrehzahl der Motoren der einzelnen Achsen

Datentyp Real min.


Wert
Einheit 1/min max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $VEL_AXIS_MA[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$VEL_C Geschwindigkeiten im Hauptlauf

Datentyp Structure min.


Wert
Einheit max.
In Datei ------
Originalzeile DECL CP $VEL_C
Bemerkung Geschwindigkeiten im Hauptlauf
CP = m/s, ORI1 = Grad/s, ORI2 = Grad/s

$VEL_C.CP Bahngeschwindigkeit im Hauptlauf

Datentyp Real min. > 0


Wert
Einheit m/s max.

$VEL_C.ORI1 Schwenkgeschwindigkeit im Hauptlauf

Datentyp Real min.


Wert
Einheit °/s max.

$VEL_C.ORI2 Drehgeschwindigkeit im Hauptlauf

162 von 170 SysVar 08.02.03 de


22 V (Fortsetzung)

Reduzierungsfaktor für die Flanschgeschwindigkeit bei


$VEL_CP_COM Umorientierungsbewegungen des Werkzeugs

Datentyp Real min.


Wert
Einheit m/s max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $VEL_CP_COM
;Reduzierung der Flanschgeschwindigkeit in [m/s]
Bemerkung

$VEL_CP_T1 Bahngeschwindigkeit im Test--1--Betrieb

Datentyp Real min.


Wert
Einheit m/s max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $VEL_CP_T1
;Bahngeschwindigkeit in T1 [m/s]
Bemerkung

Drehzahl--Sollwertschwelle für Geberüberwachung


$VEL_ENC_CO (Wandler--Inkrement)

Datentyp Integer min.


Wert
Einheit Inkr max.
In Datei R1\Mada\$machine.dat
Originalzeile INT $VEL_ENC_CO
Bemerkung

$VEL_EXTAX[n] Achsgeschwindigkeit der Zusatzachsen im Vorlauf

Datentyp Integer min.


Wert
Einheit % max.
In Datei
Originalzeile INT $VEL_EXTAX[n]
Bemerkung [n]= [1] ... [6]: Zusatzachse E1 ... E6

SysVar 08.02.03 de 163 von 170


Systemvariablen

$VEL_EXTAX_C[n] Achsgeschwindigkeit der Zusatzachsen im Hauptlauf

Datentyp Integer min.


Wert
Einheit % max.
In Datei
Originalzeile INT $VEL_EXTAX_C[n]
Bemerkung [n] = [1] ... [6]: Zusatzachse E1 ... E6

$VEL_FILT[n] Tacho--Filter

Datentyp Real min.


Wert
Einheit ms max.
In Datei R1\Mada\$machine.dat
Originalzeile REAL $VEL_FILT[n]
Bemerkung [n] = [1] ... [6]: Achse A1 ... A6
[n] = [7] ... [12]: Zusatzachse E1 ... E6

$VEL_FLT_OFF Berechnung der Geschwindigkeit aus gefilterten oder ungefilterten


Sollwerten

Datentyp Boolean min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile BOOL $VEL_FLT_OFF=TRUE
Bemerkung Bei “TRUE” muß zuvor der Wert der Systemvariablen “$ANA_DEL_FLT”
auf “ON” eingestellt sein.

Optionen Auswirkung
Berechnung der Geschwindigkeit aus gefilterten Sollwerten.
TRUE
Die Geschwindigkeitswerte müssen nicht mehr gefiltert werden.
Berechnung der Geschwindigkeit aus ungefilterten Sollwerten.
FALSE
Die Geschwindigkeitswerte müssen gefiltert werden.

164 von 170 SysVar 08.02.03 de


22 V (Fortsetzung)

$VEL_MA Daten für maximale Bahn--, Schwenk-- und Drehgeschwindigkeit

Datentyp Structure min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL CP $VEL_MA={CP 1.75,ORI1 400.0,ORI2 400.0}
Bemerkung ;CP = max. Bahngeschwindigkeit [m/s]
ORI1 = max. Schwenkgeschwindigkeit [Grad/s]
ORI2 = max. Drehgeschwindigkeit [Grad/s]

$VEL_MA.CP Maximale Bahngeschwindigkeit

Datentyp Real min.


Wert
Einheit m/s max.
Bemerkung Kartesische Bewegungen erfolgen mit der Geschwindigkeit
$RED_VEL_CPC*$VEL_MA.CP

$VEL_MA.ORI1 Maximale Schwenkgeschwindigkeit

Datentyp Real min.


Wert
Einheit °/s max.
Bemerkung Kartesische Schwenkbewegungen erfolgen mit der Geschwindigkeit
$RED_VEL_CPC*$VEL_MA.ORI.1

$VEL_MA.ORI2 Maximale Drehgeschwindigkeit

Bemerkung Drehbewegungen erfolgen mit der Geschwindigkeit


$RED_VEL_CPC*$VEL_MA.ORI2

SysVar 08.02.03 de 165 von 170


Systemvariablen

23 W
$WAIT_FOR[470] Warten des Interpreters an einer WAIT--FOR--Anweisung

Datentyp Character min.


Wert
Einheit max.
In Datei ------
Originalzeile CHAR $WAIT_FOR[470]
Bemerkung

$WAIT_FOR_ON Warten des Interpreters an einer Bedingung

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $WAIT_FOR_ON
Bemerkung

Optionen Auswirkung
TRUE Interpreter wartet.
FALSE Interpreter wartet nicht.

$WBOXDISABLE Arbeitsraumüberwachung ein-- oder ausgeschaltet

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $WBOXDISABLE
Bemerkung

Optionen Auswirkung
TRUE Arbeitraumüberwachung eingeschaltet.
FALSE Arbeitraumüberwachung ausgeschaltet.

166 von 170 SysVar 08.02.03 de


23 W (Fortsetzung)

$WORKSPACE[n] Definition der Arbeitsraumüberwachung

Datentyp Structure min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile DECL BOX $WORKSPACE[n]
Bemerkung [n] = [1] ... [8]

$WORKSPACE[n].MODE Funktionsweise der Arbeitsraumüberwachung

Datentyp Enum min.


Wert
Einheit max.

Optionen Auswirkung
#OFF Überwachung des Arbeitsraumes ausgeschaltet.
Ausgang wird gesetzt, wenn sich der TCP innerhalb des Arbeits-
#INSIDE
raumes befindet.
Ausgang wird gesetzt, wenn sich der TCP außerhalb des Arbeits-
#OUTSIDE
raumes befindet.
Befindet sich der TCP innerhalb des Arbeitsraumes, wird der Aus-
#INSIDE_STOP
gang gesetzt und der Roboter gestoppt.
Befindet sich der TCP außerhalb des Arbeitsraumes, wird der
#OUTSIDE_STOP
Ausgang gesetzt und der Roboter gestoppt.

$WORKSPACE[n].STATE Verletzung des Arbeitsraumes

Datentyp Boolean min.


Wert
Einheit max.

Optionenx Auswirkung
TRUE Der Arbeitsraum ist verletzt.
FALSE Der Arbeitsraum ist nicht verletzt.

$WORKSPACE_NAMEn[24] Bezeichnung des jeweiligen Arbeitsraumes

Datentyp Character min.


Wert
Einheit max.
In Datei Steu\Mada\$custom.dat
Originalzeile CHAR $WORKSPACE_NAME1[24]
$WORKSPACE_NAME1[]=”WORKSPACE 1”
Bemerkung n = 1 ... 8

SysVar 08.02.03 de 167 von 170


Systemvariablen

$WORKSTATE1
... Signalvereinbarung “Arbeitsraumverletzung”
$WORKSTATE8

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $WORKSTATE1 $OUT[984]
...
SIGNAL $WORKSTATE8 $OUT[991]
Bemerkung

Optionen Auswirkung
$OUT[n] Ausgang Nr. 1 ... 4096
Nicht benötigte Ausgänge können auf “FALSE” rangiert werden,
FALSE
z. B. SIGNAL $WORKSTATE1 FALSE

$WORLD Welt--Koordinatensystem relativ zum Initial--Koordinatensystem

Datentyp Structure min.


Wert
Einheit mm, ° max.
In Datei ------
Originalzeile FRAME $WORLD
Bemerkung Initial--Koordinatensystem: Sog. Ur--Koordinatensystem, daß bei der
KRC--Steuerung mit dem Welt--Koordinatensystem identisch ist.

$WORLD.A Drehung um die Z--Achse

Datentyp Real min.


Wert
Einheit ° max.

$WORLD.B Drehung um die Y--Achse

$WORLD.C Drehung um die X--Achse

$WORLD.X Verschiebung in X--Richtung

Datentyp Real min.


Wert
Einheit mm max.

$WORLD.Y Verschiebung in Y--Richtung

$WORLD.Z Verschiebung in Z--Richtung

168 von 170 SysVar 08.02.03 de


23 W (Fortsetzung)

$WRIST_AXIS Handachsenkennung

Datentyp Enum min.


Wert
Einheit max.
In Datei R1\Mada\$machine.dat
Originalzeile DECL WRIST_AXIS $WRIST_AXIS=#ZEH
Bemerkung

Optionen Auswirkung
#NOH Keine Hand
#ZEH Zentralhand
#SRH Schräghand
#DSH Doppelschräghand
#WIH Winkelhand
#WSH Winkelschräghand

SysVar 08.02.03 de 169 von 170


Systemvariablen

24 Z
$ZERO_MOVE Ausführung eines Bewegungsnullsatzes

Datentyp Boolean min.


Wert
Einheit max.
In Datei ------
Originalzeile BOOL $ZERO_MOVE
Bemerkung Der Wert TRUE gilt nur für einen Interpolationstakt. Interpolation von Null-
sätzen nur während eines IPO--Takts.

Optionen Auswirkung
TRUE Bewegungsnullsatz wird ausgeführt.
FALSE Bewegungsnullsatz wird nicht ausgeführt.

$ZUST_ASYNC Freigabe asynchroner Zusatzachsen

Datentyp Signalvereinbarung min.


Wert
Einheit max.
In Datei Steu\Mada\$machine.dat
Originalzeile SIGNAL $ZUST_ASYNC $IN[1026]
Bemerkung

Optionen Auswirkung
TRUE Asynchrone Zusatzachsen freigegeben.
FALSE Asynchrone Zusatzachsen nicht freigegeben.

170 von 170 SysVar 08.02.03 de


Index

Zahlen Auflösung Meßsystem, 24


6D--Mouse, 127 Ausführung eines Bewegungsnullsatzes, 170
Ausgabe des Meldungstextes, 91
Ausgänge, 97
A Automatik, 19
Abbremszeit bei Drehzahlstop, 42
Absolutgenaues Robotermodell, 7, 8 B
Achs--Hochlaufzeit, 115
Bahnbeschleunigung, 8, 9, 12
Achs--Positionierzeit , 145
Bahngeschwindigkeit, 160, 162
Achsbremse, 126
Bahngeschwindigkeit im Test 1--Betrieb, 163
Achsbremsen, 31, 32
Bahngeschwindigkeit im Vorlauf, 160
Achse 4, 7
Bahnkontrolle, 95
Achse in Position, 152
Bahnstatus für programmierten Punkt, 110
Achsenkennung, 26
Bahntreuer Notaus, 54
Achsgeschwindigkeit der Zusatzachsen, 163
Bahntreuer Stop bei Bedienerschutzverletzung,
Achskopplungsfaktoren, 37 124
Achsregelung, 126 Base--System, 12
Achswinkel, 20 Basis--Koordinatensystem, 29
Aggregat des Ziel-- oder Hilfspunktes, 110 Bediengerätezustand, 45
Akkumeldung, 81 Begrenzung der Soll--Drehzahl, 36
Aktivieren des höheren Fahrprofils, 95 Belegung der Handverfahrtasten, 19
Aktuelle achsspezifische Roboterposition, 20 Beobachtbare Variablen, 49
Aktuelle Bahngeschwindigkeit, 160 Bereit für Programm--Start, 116
Aktuelle Temperatur im Inneren des KCP, 101 Beschleunigung der Achsen im Hauptlauf, 9
Aktueller Strom der Achsen, 38 Beschleunigung der Achsen im Vorlauf, 8
Aktueller Zustand der asynchronen Bewe- Beschleunigung der externen Achsen, 11
gungsausführung, 18 Beschleunigungsanpassung, 13
Alpha--1--Stellung, 128 Beschleunigungswerte bei Override--Änderun-
Alpha--2--Stellung, 129 gen, 12
Alpha--5--Stellung, 129 Beschreibung des Spindelantriebs, 133, 134,
Analog--Ausgangsfilter, 14 135
Analogausgänge, 15 Betriebsart, 19
Analogeingänge, 14 Betriebsart Einzelschritt, 136
Ansprechzeit der Fahrmomentenüberwachung, Betriebsart Extern, 61
152 Betriebsstundenzähler, 122
Antriebe AUS, 51 Bewegungskontrolle, 121
Antriebe EIN, 51, 100 Bewegungsnullsatz, 170
Antriebsschnittstellen, 101 Bewegungsstatus, 89, 111
Anzahl der externen Achsen, 60 Bezeichnung des jeweiligen Arbeitsraumes,
Anzahl der Roboterachsen, 93 27, 167
Anzahl der transformierten Achsen, 154 Bitfeld für Achsbremsen, 31
Bogenlänge CP--Bewegung, 50
Anzeige Achse justiert, 24
Bremsensteuerungsmodus, 32
Anzeige der Achswinkel, 20
Bremsverzögerungszeit für Zusatzachsen, 31
Anzeige Spannungsausfall, 106
Anzeige Timer, 146
Arbeitsraumüberwachung, 166 C
Arbeitsraumverletzung, 28, 168 CP--Bewegung, 50

Index -- i
Index

Cycflag, 40 Externe Spannungsversorgung, 19


Externer Start aktiv, 61
D Externes Gerät aktiv, 70
Externes Programm für Steuerungsknoten,
Daten für Sonderkinematiken, 132 109
Datenbankzugriff, 90
Default--Eigenträgheit der Last, 44
Default--Filter CP--Fahren, 43
F
Default--Filter PTP--Fahren, 43 Fahrfreigabe, 88
Default--Massenschwerpunkt, 44 Fahrfreigabesignal, 89
Defaultmasse der Last am Flansch, 44 Fahrmomentenüberwachung, 152
Defaultwerte für den Momentenüberwachung, Fehlermeldungen, 107
151 Fixieren der Achse 4 beim Palettieren, 42
Definition des Meldungstyps, 91 Flag 1 bis 1024 als globale Merker, 64
Denavit--Hartenberg--Parameter, 46 Flag für Automatikbetrieb, 62
Diagnose, 107 Flag für endlos drehende Achsen, 56
Digitaleingang, 47 Flag für Neuinitialisierung der DSE, 117
Display--Helligkeit, 100 Freigabe asynchroner Zusatzachsen, 170
Drehbeschleunigung, 8, 9, 12 Fünfachs--Roboter, 96
Drehgeschwindigkeit, 160 Funktionsgenerator, 141
Drehgeschwindigkeit im Hauptlauf, 162 Funktionsparameter für Funktionsgenerator,
Drehjustage aktiv, 156 141
Drehrichtung der Achse, 22 Funktionswert für Funktionsgenerator, 145
Drehung Basis--Koordinatensystem, 30
Drehung Technologiedreibein, 143 G
Drehzahl--Sollwertschwelle für Geberüberwa-
Ganzzahl--Variablen, 37
chung, 163
Geber--Istwerte, 13
Drehzahlregelkreis, 20
Gekoppelte Achse, 156
Drehzahlreglerverstärkung, 66
Geschwindigkeit der Achsen, 161
Drehzahlstop, 42
Geschwindigkeitsgrenze Überwachung momen-
DSE, 51
tenbetriebene Achsen, 150
Geschwindigkeitsreduzierung im Test1--Betrieb,
E 18
E/A--Schnittstellen aktiv, 70 Geschwindigkeitsvorsteuerung, 63
Editieren, 83 Getriebemomentenüberwachung, 67
Ein--/Ausgänge, 75 Grenzwert der axialen Sollbeschleunigung, 8
Eingänge, 72 Grenzwert der axialen Sollgeschwindigkeit,
161
Eingangswert für Funtionsgenerator, 144
Grundachsenkennung, 85
Einricht--Override, 98
Grundsystem, 116
EMT, 124
EMT--Justage, 55, 77, 81, 161
Endlos drehende Achsen, 56 H
Endlosachsen, 120 Handachsen--Singularität, 129
Endschalter überfahren, 69 Handachsenkennung, 169
Erkennungszeit Stillstand, 136 Handbetrieb, 86
Externe Kinematik, 30 Handverfahren, 31
Externe Robroot--Kinematik, 122 Handverfahrtasten, 19, 78

Index -- ii
Index

Höheres Fahrprofil, 51, 76, 95 M


Home--Position, 23, 68 Master/Slave--Achsen, 130
HOME--Verzeichniseinstellung des Compilers, Maximale Anzahl der digitalen Ausgänge, 93
68
Maximale Anzahl der digitalen Eingänge, 93
Maximale Anzahl der Funktionsgeneratoren,
I 143
Maximale Bahngeschwindigkeit, 165
Inkrementelle Istwerte, 23
Maximale Bremszeit beim bahntreuen Not--Aus,
Integral--Faktor des Drehzahlreglers, 70 32
Interbus--Slave, 71 Maximale Drehgeschwindigkeit, 165
Interbusgruppen, 71 Maximale Momentenabweichung, 150
Interpolationsart, 76 Maximale Schwenkgeschwindigkeit, 165
Interrupt, 105 Maximaler Effektivstrom am Powermodulaus-
Interrupts auf Roboterebene, 121 gang, 39
Interrupts auf Submitebene, 130 Maximaler Orientierungsfehler für Singularitä-
Istposition, kartesisch, 102 tenfreies Fahren, 128
Maximaler Überschleifweg, 15
Iterationen für Bahnplanung, 76
Maximalstrom KPS, 79
Maximalwerte der Bahnbeschleunigung, 12
J Meldungsausgabe, 90
Justageunterschied bei EMT--Justage, 34 Meldungstyp, 91
Meßwertabfrage Strobe, 137
Methode für die EMT--Justage, 55
K Mode für asynchrone Zusatzachsen, 17
Kartesischen Koordinaten, 50 Modelldaten des Roboters, 51
Kartesisches Fahren des Roboters, 50 Modulbezeichner für Datenbankzugriff, 90
Kinematik--Klassen, 79 Modus für Space--Mouse, 87
Kinetische Energie, 56 Momentenabweichung, 150
Kommandobearbeitung, 112 Momentenüberwachungsschlauch im Komman-
Konstantfahrphase, 147 dobetrieb, 151
Konvertierung von Punktkoordinaten, 7 Momentenüberwachungsschlauch im Pro-
grammbetrieb, 151
Koordinatensystem im Handverfahren, 37
Momentenvorsteuerung, 63
Koordinatentransformation, 154
Motor--Hochlaufzeit ohne Achsbelastung, 115
Kopplungsfaktoren der Achsen, 60
Korrektur--Variablen, 95
N
KRL--Anweisung ausgeführt, 109
kt--Faktor der Motoren, 80 Name der externen Robroot--Kinematik, 122
Kt0--Faktor der Servomotoren, 80 Name der externen TOOL--Kinematik, 149
Name der Koordinatentransformation, 154
Name des Bausteins, 109
L Name des Ziel-- oder Hilfspunktes, 110
Lage des Roboterfußpunkts im Welt--Koordina- Name für die Variable, 49
tensystem, 122 Nenndrehzahl der Motoren, 162
Lage des Roboters im Welt--Koordinatensy- Nennstrom, 40
stem, 122 Nennstrom KPS, 79
Lageregel--Überwachung, 89 Neuinitialisierung der digitalen Servoelektronik
Lastdatenermittlung, 71 DSE, 117
Lüfterüberwachung, 63 Not--Aus Rampe, 118

Index -- iii
Index

Notstop, 14 Q
Nullframe, 92 Quittierungsmeldungen löschen, 36
Nummer des betätigten Softkeys, 90

R
O Reduzierung der Beschleunigung, 118
Online--Änderung von Servoparametern, 127 Reduzierung der CP--Bahngeschwindigkeit, 38
Optionsbit für den Funktionsgenerator, 143 Reduzierungsfaktor bei T1--Betrieb, 119
Orientierung, 57 Reduzierungsfaktor der Geschwindigkeit beim
Referenzieren (Referenzpunktnocken), 118
Orientierungsfehler, 128
Reduzierungsfaktor für axiale Beschleunigung,
Orientierungsführung bei CIRC--Sätzen, 35
117
Orientierungsprüfung, 96
Reduzierungsfaktor für axiale Geschwindigkeit
Override, 98 bei achsspezifischem Handverfahren und Kom-
Override für asynchrone Zusatzachsen, 97 mandobetrieb (PTP), 120
Override im Handbetrieb, 45 Reduzierungsfaktor für Bahn-- und Orientie-
rungsbeschleunigungen, 117
Reduzierungsfaktor für bahntreue NOT--AUS--
P Rampe, 118
Reduzierungsfaktor für Beschleunigung, 117
Palettieren, 42
Reduzierungsfaktor für Programm im Vorlauf,
Palettiermodus aktivieren, 100
119
Parameter für Trace--Funktion, 153 Reduzierungsfaktor für Übernahmefahrt, 119
Parametrierung des Funktionsgenerators, 144 Referenzpunktverschiebung, 34
Plus/Minustaste, 78 Referier--Reihenfolge der Achsen, 126
Position bei Auslösung des Interrupts, 105 Referier--Richtung, 47
Position beim Verlassen der Bahn, kartesisch, Referier--Status, 121
106
Register für Fehlermeldungen, 107
Powermodul, 101, 107 Relativsätze, 123
Prellzeit für EMT--Signale, 30 Richtung der Starttaste, 48
Programm bearbeitet Interrupt, 75 Roboter in Home--Position, 73
Programm--Override, 98 Roboter--Interpreter, 75
Programmablaufart, 110 Roboter--Override, 98
Programmbearbeitung, 112 Roboterhand, 157
Programmierung EE Potentiometer DSE, 114 Robotername, 123
Programmstatus, 108 Roboterposition, 20
Proportionalverstärkung des Drehzahlreglers, Roboterposition zum Zeitpunkt eines Interrupts,
66 23
Proportionalverstärkung des Lagereglers, 82 Roboterposition, kartesisch, 102
Proportionalverstärkung des Stromreglers, 66 Robotertyp, 86
Prozeßlaufart des Roboterinterpreters, 111 Rotationsbezugssystem bei Relativsätzen, 123
Prozeßlaufart des Submitinterpreters, 111 Rückfahrgeschwindigkeit Touch--Sensor, 153
Prozeßname, 112 Rückzugsbeschleunigung für Touch--Sensor,
152
Prozeßname des Roboterinterpreters, 112
Prozeßname des Submitinterpreters, 112
Prozeßzeiger auf aktuellen KRL--Prozeß, 109 S
Prozeßzustand, 113 SAK, 88
PTP--Punkte mit kartesischen Koordinaten, 50 Satzanwahl, 82

Index -- iv
Index

Satzkoinzidenzfahrt, 88 Status für Plus/Minustaste, 78


Satznummer, 110 Status Powermodul, 107
Schleppfehlerüberwachung, 64, 73 Steuerung der Trace--Funktion, 153
Schlüssel zum Meldungstext der Datenbank, Stillstandsfenster, 73
90 Stoppmeldungen, 136
Schnelles Messen, 85 Strategie für Singularitätenfreies Fahren, 129
Schrittmaß für externe Achsen, 74 Strecklage--Singularität, 129
Schrittmaß, achsspezifisch, 74 Strombegrenzung an der Achse, 39
Schrittmaß, kartesisch werkzeugbezogen, 74 Strombegrenzung der Achsen, 40
Schutzgitterabfrage, 158 Strombegrenzung für externe Achsen, 39
Schwenkbeschleunigung, 8, 9, 12 Stromfehler, Powermodul, 107
Schwenkgeschwindigkeit, 160, 162 Stromkalibrierung im Powermodul, 39
Schwerpunkt--Frame der Defaultmasse, 43 Stromkalibrierung, Powermodul, 107
Sensorschnittstelle, 125 Struktur für Meldungsausgabe, 90
Seriennummer der KCP--CPU und Softwarever- Submit--Interpreter, 75
sion, 101 Symmetrierfilter, 141
Seriennummer des Roboters, 80 Systemzeit und Systemdatum, 42
Servoparameter für DSE, 126
Signallaufzeit im EMT, 124 T
Simulationsergebnis für Schleifenabbruchbedin-
Tacho--Filter, 164
gung, 83
Taktgeber, 121
Simulierung der Ein--/Ausgänge, 75
TCP--bezogene Interpolation, 141
Singularität, 48
Technologiedreibein, 143, 144
Singularitätenfreies Fahren, 128, 129
Technologiedreibein in Bezug auf das Basis--
Softkey, 90 Koordinatensystem, 156
SoftPLC, 131, 132 Test1--Betrieb, 18
Software--Endschalter, 130 Testbetriebsart, 108
Soll--Energieüberwachung, 56 Timer, 146
Soll--Momentenüberwachung, 114 Toleranzfenster, 92
Sollbeschleunigung, 8 Toleranzzeit, 147
Sollgeschwindigkeit, 161 Tool--Koordinatensystem, 13
Sonderkinematiken, 132 Touch--Sensor, 152
Space--Mouse, 87 Trace--Funktion, 153
Spannungsausfall, 106 Transformierte Achsen, 154
Spindelantrieb, 133, 134, 135 Translations--Bezugssystem, 155
Standpunkt des Beobachters mit 6D--Mouse Trapezverbindung, 155
simulieren, 127
START, 112
U
Start Simulation, 83
Überkopf--Singularität, 128
Startgeschwindigkeit Touch--Sensor, 153
Überschleifen nicht möglich, 137
Startposition Bewegungssatz kartesisch, 103
Überschleifweg, 15
Startposition des aktuellen Bewegungssatzes,
21 Übersetzungsverhältnis, 115
Starttaste, 48 Umdrehungszähler bei Endlosachsen, 120
Status Bewegung Start-- zu Zielpunkt, 140 Umorientierung, 163
Status der Lageregel--Überwachung, 89
Status der Space--Mouse, 87 V

Index -- v
Index

Verfahrart im Handbetrieb, 86
Verletzung des achsspez. Arbeitsraumes, 27
Verletzung des Arbeitsraumes, 167
Verschiebung, 57
Verschiebung der Roboterhand, 157
Verschiebung zwischen Flanschpunkt und
Handpunkt--Koordinatensystem, 145
Verschiebung zwischen mechanischem und
mathematischem Nullpunkt, 85
Version des Grundsystems, 116

W
WAIT--FOR--Anweisung, 166
Warten Interpreter, 166
Weg bis zum nächsten Genauhalt, 49
Weg während der Signallaufzeit im EMT, 124
Weglänge bei EMT--Justage, 81
Weiche Rampe, 64
Welt--Koordinatensystem, 29, 122
Welt--Koordinatensystem relativ zum Initial--Ko-
ordinatensystem, 168
Werkzeug--Koordinatensystem relativ zum
Flansch--Koordinatensystem, 148, 149

Z
Zeitkonstante Symmetrierfilter, 141
Zielposition Bewegungssatz, kartesisch, 104
Zielposition des aktuellen Bewegungssatzes,
22
Zulässiger Nennstrom, 40
Zuordnung der Achsen, 51
Zuordnung externe Achsen zur Zusatzachsen-
kinematik, 57
Zuordnung Handverfahrtasten, 78
Zusatzachsen, 16, 97
Zusatzachsen asynchron schalten, 59
Zusatzachsenkinematik, 57
Zusatzlast auf Achse 3, 45
Zustand der Num--Lock--Taste, 94
Zustimmschalter, 124
Zwischenkreisspannung, Powermodul, 107
Zyklische Flags, 40

Index -- vi
SOFTWARE

KR C...

Anhang

KUKA System Software (KSS)


Release 4.1

Stand: 22.11.2004 Version: 07


AnhangPHR4.1.7 12.03.07 de

1 von 25
e Copyright 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

AnhangPHR4.1.7 12.03.07 de

2 von 25
Inhaltsverzeichnis

1 Glossar --> Siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Historie Programmierhandbuch von V4.1.6 - > V4.1.7 . . . . . . . . . . . . . . . 4


2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Bedienung --> siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Inbetriebnahme --> siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6 Programmierung Anwender --> siehe Bedienhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7 Programmierung Experte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.8 Zusatzfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.9 Applikationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.10 Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Gesamtindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

AnhangPHR4.1.7 12.03.07 de

3 von 25
Anhang

1 Glossar - > Siehe Bedienhandbuch


2 Historie Programmierhandbuch von V4.1.6 - > V4.1.7

2.1 Einleitung
Globales Kapitel

2.2 Sicherheit
Globales Kapitel

2.3 Bedienung --> siehe Bedienhandbuch

2.4 Inbetriebnahme --> siehe Bedienhandbuch

2.5 Konfiguration
System konfigurieren

System konfigurieren Experte


G Geschwindigkeitsreduzierung beim Warmfahren
G Meldungen in Automatik Extern quittieren

Automatik Extern

2.6 Programmierung Anwender --> siehe Bedienhandbuch

2.7 Programmierung Experte


Allgemeines zu KRL--Programmen

Variablen und Vereinbarungen

Bewegungsprogrammierung
G Verbessertes Überschleifen

KRL--Assistent

AnhangPHR4.1.7 12.03.07 de

4 von 25
2 Historie Programmierhandbuch von V4.1.6 --> V4.1.7 (Fortsetzung)

Programmablaufkontrolle

Ein--/Ausgabeanweisungen

Unterprogramme und Funktionen

Interrupt--Behandlung

Trigger -- Bahnbezogene Schaltfunktionen

Datenlisten

Externer Editor
G Anpassung an aktuelle Version

2.8 Zusatzfunktionen
Standardprogramme

2.9 Applikationen

2.10 Anhang
Glossar --> Siehe Bedienhandbuch

Historie
G Die Datei, welche Sie gerade lesen...

Gesamt--Index
G Neu generiert

AnhangPHR4.1.7 12.03.07 de

5 von 25
Anhang

3 Gesamtindex

Zeichen
.ERR: Prog. Experte 12
!: Prog. Experte 108
!--Zeichen: Prog. Experte 104
?: Prog. Experte 109
:: Prog. Experte 110
# -- Zeichen: Prog. Experte 41
#BASE: Prog. Experte 65, 79
#CONSTANT: Prog. Experte 78
#INITMOV: Prog. Experte 78, 79
#INSIDE: Konfiguration 63, 77
#INSIDE_STOP: Konfiguration 63, 77
#OUTSIDE: Konfiguration 63, 77
#OUTSIDE_STOP: Konfiguration 64, 77
#PATH: Prog. Experte 79
#PGNO_ACKN: Konfiguration 103
#PGNO_FAULT: Konfiguration 104
#PGNO_GET: Konfiguration 103
#STEP1: Konfiguration 94
#TCP: Prog. Experte 65
#VAR: Prog. Experte 78
$ -- Zeichen: Prog. Experte 55
$_I_O_ACTCONF: Konfiguration 100
$ACC.CP: Prog. Experte 77
$ACC.ORI1: Prog. Experte 77
$ACC.ORI2: Prog. Experte 77
$ACC_AXIS: Prog. Experte 66
$ADAP_ACC: Konfiguration 94
$ADVANCE: Prog. Experte 86
$ALARM_STOP: Prog. Experte 55, 56
$APO.CDIS: Prog. Experte 93, 96
$APO.CORI: Prog. Experte 93, 96
$APO.CPTP: Prog. Experte 90
$APO.CVEL: Prog. Experte 93, 96
$APO_DIS_PTP: Prog. Experte 90
$BASE: Prog. Experte 63, 70
$CIRC_TYPE: Prog. Experte 79, 82
$CONFIG.DAT: Konfiguration 123; Prog. Experte 8, 57
$CURR_LIM: Konfiguration 92

AnhangPHR4.1.7 12.03.07 de

6 von 25
3 Gesamtindex (Fortsetzung)

$CURR_MAX: Konfiguration 92
$CURR_RED[x,x]: Konfiguration 90, 91, 92
$CUSTOM.DAT: Konfiguration 94; Prog. Experte 56
$CYCFLAG: Prog. Experte 55
$EXT_START: Konfiguration 100, 117
$EXT_START$IN[ ]: Konfiguration 124
$FLAG: Prog. Experte 54
$I_O_ACTCONF: Konfiguration 100
$I_O_ACTCONF $OUT[ ]: Konfiguration 124
$IBUS_ON: Prog. Experte 56
$IN[x]: Konfiguration 58
$INSIM_TBL[x]: Konfiguration 58
$IOBLK_EXT: Konfiguration 58
$IOSIM_IN[ ]: Konfiguration 58
$IOSIM_OPT: Konfiguration 58
$IOSIM_OUT[ ]: Konfiguration 58
$IPO_MODE: Prog. Experte 65
$MACHINE.DAT: Konfiguration 124; Prog. Experte 56
$MASCHINE.DAT: Prog. Experte 8
$NEARPATHTOL: Konfiguration 113
$NULLFRAME: Prog. Experte 70
$NUM_AX: Prog. Experte 56
$ORI_TYPE: Prog. Experte 78, 82
$OUT[x]: Konfiguration 58
$OUT_C: Prog. Experte 137
$OUT_NODRIVE: Konfiguration 58
$OUTSIM_TBL[x]: Konfiguration 58
$POS_ACT: Prog. Experte 64, 65
$POS_RET: Konfiguration 109, 113
$PRO_I_O[]: Konfiguration 100
$PRO_MODE: Prog. Experte 22
$PSER: Prog. Experte 56
$RED_T1: Konfiguration 90
$ROBCOR.DAT: Konfiguration 94; Prog. Experte 8, 57
$ROBROOT: Prog. Experte 63, 70
$SET_IO_SIZE: Prog. Experte 137
$STOPMESS $OUT[ ]: Konfiguration 124
$TIMER: Prog. Experte 54
$TIMER_FLAG: Prog. Experte 54
$TIMER_STOP: Prog. Experte 54
$TOOL: Konfiguration 64; Prog. Experte 63, 70
$TORQ_DIFF: Konfiguration 95

AnhangPHR4.1.7 12.03.07 de

7 von 25
Anhang

$TORQ_VEL[]: Konfiguration 91, 93


$TORQMON_COM: Konfiguration 95
$TORQMON_COM_DEF: Konfiguration 95
$TORQMON_TIME: Konfiguration 94
$TORQUE_AXIS: Konfiguration 91, 92
$VEL.CP: Prog. Experte 77
$VEL.ORI1: Prog. Experte 77
$VEL.ORI2: Prog. Experte 77
$VEL_AXIS: Prog. Experte 66
$WORLD: Prog. Experte 63, 70

Zahlen
2--dimens.: Prog. Experte 36
3--dimens.: Prog. Experte 37
5 Home--Positionen: Konfiguration 59

A
A10.DAT: Prog. Experte 8; Zusatzfunktionen 5
A10.SRC: Prog. Experte 8; Zusatzfunktionen 5
A10_INI.DAT: Prog. Experte 8; Zusatzfunktionen 5
A10_INI.SRC: Prog. Experte 8; Zusatzfunktionen 5
A20.DAT: Prog. Experte 8; Zusatzfunktionen 5
A20.SRC: Prog. Experte 8; Zusatzfunktionen 5
A50.DAT: Prog. Experte 8; Zusatzfunktionen 5
A50.SRC: Prog. Experte 8; Zusatzfunktionen 5
ABS(X): Prog. Experte 52
Abschn: RobSysEinleitung_11.04_00 8
Absicherung: Sicherheit KRC de 18
Absperrungen: Sicherheit KRC de 14
Abweisende Schleife: Prog. Experte 122
Achsbeschleunigung: Prog. Experte 68
Achse mit definiertem Moment: Konfiguration 92
Achsgeschwindigkeit: Prog. Experte 68
achsspezifisches Koordinatensystem: Prog. Experte 59
Achsspiegeln: Prog. Experte 191
Achtung: RobSysEinleitung_11.04_00 6
ACOS(x): Prog. Experte 52
Aggregat: Prog. Experte 38
aktuelle FOLD öff/schl: Prog. Experte 19
ALARM_STOP: Konfiguration 112
alle FOLDs öffnen: Prog. Experte 19
alle FOLDs schließen: Prog. Experte 19

AnhangPHR4.1.7 12.03.07 de

8 von 25
3 Gesamtindex (Fortsetzung)

Allgemein: Konfiguration 89
Analoge Ausgänge: Prog. Experte 142
Analoge Eingänge: Prog. Experte 145
Ändern von Programmen: Prog. Experte 14
Änderungen oder Einträge erforderlich: RobSysEinleitung_11.04_00 7
Änderungen oder Einträge nicht zulässig: RobSysEinleitung_11.04_00 7
Anführungszeichen: RobSysEinleitung_11.04_00 8
ANIN: Prog. Experte 145
ANIN OFF: Prog. Experte 145
ANIN ON: Prog. Experte 145
ANIN/ANOUT: Prog. Experte 142
ANOUT OFF: Prog. Experte 142
ANOUT ON: Prog. Experte 142
Anpassungen: Sicherheit KRC de 8
Anschlußbedingungen: Sicherheit KRC de 18
Ansprechzeit: Konfiguration 94
Anweisung: Prog. Experte 10
Anweisungsteil: Prog. Experte 9
Anwender: Konfiguration 25
Anwender--HALT: Konfiguration 121
APPL_RUN: Konfiguration 111, 123
Applikation: RobSysEinleitung_11.04_00 9
Arbeitsbereich: Sicherheit KRC de 14
Arbeitsbereichsbegrenzung: Sicherheit KRC de 14
Arbeitsbühnen: Sicherheit KRC de 20
Arbeitsraumüberwachung: Konfiguration 40, 61
ARCSPS.SUB: Prog. Experte 8; Zusatzfunktionen 5
Arcuscosinus: Prog. Experte 52
Arcussinus: Prog. Experte 52
Arcustangens: Prog. Experte 52
Arithmetische Operatoren: Prog. Experte 42
ATAN2(Y,X): Prog. Experte 52
Aufbau und Struktur von Programmen: Prog. Experte 7
Aufstellung: Sicherheit KRC de 8, 18
Aufstiegshilfen: Sicherheit KRC de 20
Aufzählungstypen: Prog. Experte 40
Ausblenden von Bits: Prog. Experte 50
Ausgangsvorbesetzung: Sicherheit KRC de 17
Ausschneiden: Prog. Experte 15
Außenlüfter: Konfiguration 54
Außerbetriebnahme: Sicherheit KRC de 19
Austausch: Sicherheit KRC de 8

AnhangPHR4.1.7 12.03.07 de

9 von 25
Anhang

Austauscharbeiten: Sicherheit KRC de 19


AUT: Konfiguration 112
Automatik Extern: Konfiguration 16, 97
Automatischer Anlagenanlauf: Konfiguration 100
automatischer Vorlaufstop: Prog. Experte 87
AXIS: Prog. Experte 40, 60, 109

B
B_AND: Prog. Experte 49, 51
B_EXOR: Prog. Experte 49, 51
B_NOT: Prog. Experte 49, 51
B_OR: Prog. Experte 49, 51
Bahnbegleitendes Technologie--Dreibein: Prog. Experte 200
Bahnbewegungen: Prog. Experte 77
BAS.SRC: Prog. Experte 8, 72
BASE: Prog. Experte 65
BASE--Anpassung: Prog. Experte 197
basisbezogene Interpolation: Prog. Experte 64
Basiskoordinatensystem: Prog. Experte 64
Bauhinweise: Sicherheit KRC de 14
BCD--Wert: Konfiguration 107
Bedienerschutz: Konfiguration 118
Bedienung: Sicherheit KRC de 8
Bedingte Verzweigung: Prog. Experte 118
Beispiel: RobSysEinleitung_11.04_00 7
Beispiel Momentenbetrieb: Konfiguration 89
Belastungen: Sicherheit KRC de 14
Benutzerebene: Konfiguration 25
Benutzerebenen: Konfiguration 25
Benutzergruppe: Konfiguration 25
Bereichsendschalter: Sicherheit KRC de 16
Berufsgenossenschaft: Sicherheit KRC de 17, 18
Beschädigung des Robotersystems: Sicherheit KRC de 7
Beschleunigung: Prog. Experte 77
Beschleunigungen: Sicherheit KRC de 14
Bestimmungsgemäße Verwendung: Sicherheit KRC de 6
Betrag: Prog. Experte 52
Betrieb: Sicherheit KRC de 18, 19
Betriebsanleitung: Sicherheit KRC de 5
Betriebsart Automatik Extern: Konfiguration 57
Betriebsstoffe: Sicherheit KRC de 11, 20
Bewegungsanweisungen: Prog. Experte 59

AnhangPHR4.1.7 12.03.07 de

10 von 25
3 Gesamtindex (Fortsetzung)

Bewegungsparameter: Prog. Experte 105


Bewegungsprogrammierung: Prog. Experte 59
Bezeichnungsschilder: Sicherheit KRC de 13
Bildschirmschoner: Konfiguration 11
Bin Dez: Prog. Experte 34
Binäre Ein--/Ausgänge: Prog. Experte 132
Binärsystem: Prog. Experte 33
Binärzahl: Konfiguration 107
Binden: Prog. Experte 12
Binder: Prog. Experte 12
Bit--Operatoren: Prog. Experte 49
Blockfunktionen: Prog. Experte 14
Blockkennung: Prog. Experte 119
Blockweises Ändern: Prog. Experte 196
Bodenmontage: Konfiguration 89
BOF Reinitialisieren: Konfiguration 43
BOOL: Prog. Experte 33, 34
BOSCH.SRC: Prog. Experte 8
BRAKE: Prog. Experte 164

C
C_DIS: Prog. Experte 93, 96, 111
C_ORI: Prog. Experte 93, 96, 111
C_PTP: Prog. Experte 90, 111
C_VEL: Prog. Experte 93, 96, 111
CA: Prog. Experte 84
CELL.DAT: Prog. Experte 8; Zusatzfunktionen 5
CELL.SRC: Konfiguration 100, 101, 115; Prog. Experte 8, 9; Zusatzfunktionen 5
CHAR: Prog. Experte 33, 35
CHCK_MOVENA: Konfiguration 109
CIRC: Prog. Experte 84, 115
CIRC !: Prog. Experte 104
CIRC REL: Prog. Experte 115
CIRC--CIRC--Überschleifen: Prog. Experte 96
CIRC--LIN--Überschleifen: Prog. Experte 96
CIRC_REL: Prog. Experte 84
Compiler: Prog. Experte 12
CONF_MESS: Konfiguration 109
ConfigMon.ini bearbeiten: Konfiguration 48
CONFIRM: Prog. Experte 130
Continous Path: Prog. Experte 77
CONTINUE: Prog. Experte 88

AnhangPHR4.1.7 12.03.07 de

11 von 25
Anhang

Conveyor: Sicherheit KRC de 10, 16


COR_T1: Zusatzfunktionen 6
COR_TOOL_NO: Zusatzfunktionen 8
COS(X): Prog. Experte 52
CP--Bewegungen: Prog. Experte 77
CSTEP: Prog. Experte 22
CTRL--C: Prog. Experte 14
CTRL--V: Prog. Experte 15
CTRL--X: Prog. Experte 15

D
Dateikonzept: Prog. Experte 9
Dateiliste: Prog. Experte 10
Dateistruktur: Prog. Experte 9
Datenliste: Prog. Experte 10
Datenliste reinigen: Prog. Experte 196
Datenlisten: Prog. Experte 179
Datenmanipulation: Prog. Experte 42
Datenobjekte: Prog. Experte 31
Datentyp: Prog. Experte 31
Deckenmontage: Konfiguration 89
DECL: Prog. Experte 31
DEF: Prog. Experte 9, 149
DEF--Zeile: Konfiguration 35
DEFDAT: Prog. Experte 179
DEFFCT: Prog. Experte 150
Detailansicht: Konfiguration 36
Dezimalsystem: Prog. Experte 33
DIGIN: Prog. Experte 147
DIGIN OFF: Prog. Experte 147
DIGIN ON: Prog. Experte 147
Digitale Ein--/Ausgänge: Prog. Experte 135
Digitaleingänge: Prog. Experte 147
DISTANCE: Prog. Experte 170
Distanzkriterium: Prog. Experte 93
Drehzahlreglerausgang: Konfiguration 90
Dreidimensionales Feld: Prog. Experte 37
DRIVES_OFF: Konfiguration 110
DRIVES_ON: Konfiguration 110
Durchsacken: Konfiguration 89

AnhangPHR4.1.7 12.03.07 de

12 von 25
3 Gesamtindex (Fortsetzung)

E
E/A--Schnittstelle: Konfiguration 100
E/A--Treiber: Konfiguration 17
E6AXIS: Prog. Experte 40, 109
E6POS: Prog. Experte 109
eckige Klammern: RobSysEinleitung_11.04_00 8
Editier--Cursor: Prog. Experte 107
Editieren: Prog. Experte 12
Editor: Konfiguration 35; Prog. Experte 14
EG--Maschinenrichtlinien: Sicherheit KRC de 5
EG--Niederspannungsrichtlinie: Sicherheit KRC de 5
EGB--Richtlinien: Sicherheit KRC de 21
Ein--/Ausgabeanweisungen: Prog. Experte 131
Ein/Ausgänge: Konfiguration 15, 97
Einblenden von Bits: Prog. Experte 50
Eindimensionales Feld: Prog. Experte 35
Eindringen von Schmutz: Sicherheit KRC de 18
Einfache Datentypen: Prog. Experte 33
Einfügen: Prog. Experte 15
Eingeschränkter Bewegungsbereich -- Arbeitsraumbegrenzug: Sicherheit KRC de 11
Einschränkungen: Konfiguration 89
Einstellarbeiten: Sicherheit KRC de 19
Einstellung: Sicherheit KRC de 8
Elektrofachkraft: Sicherheit KRC de 9
Elektromagnetischen Verträglichkeit: Sicherheit KRC de 5
ELSE: Prog. Experte 118
END: Prog. Experte 9
ENDFOLD: Prog. Experte 19
ENDFOR: Prog. Experte 120
ENDLOOP: Prog. Experte 125
Endlosschleife: Prog. Experte 125
ENDWHILE: Prog. Experte 122
ENUM: Prog. Experte 40
EPROMs: Sicherheit KRC de 18
ERR_FILE: Konfiguration 105
ERR_TO_PLC: Konfiguration 114
Ersetzen: Prog. Experte 16
Erstellen eines neuen Programms: Prog. Experte 11
EXIT: Prog. Experte 125
Exklusive ODER--Verknüpfung: Prog. Experte 49
Experte: Konfiguration 25
EXT: Prog. Experte 72

AnhangPHR4.1.7 12.03.07 de

13 von 25
Anhang

EXT_ERR: Konfiguration 105


EXT_PGNO: Konfiguration 103, 104
EXT_PGNO.SRC: Konfiguration 115
EXT_START: Konfiguration 108
EXTERN: Konfiguration 112
Externer Editor: Prog. Experte 183
Externer NOT--AUS: Sicherheit KRC de 12
Externer Zustimmungsschalter: Sicherheit KRC de 12
Extras: Konfiguration 32

F
Fahrfreigabe: Konfiguration 120
Farbkennzeichnungen: Sicherheit KRC de 9
Fehlerbehandlung: Prog. Experte 24
Felder: Prog. Experte 35
Feldindex: Prog. Experte 35
Feststehende Schutzeinrichtungen: Sicherheit KRC de 14
Fettdruck: RobSysEinleitung_11.04_00 8
Flags: Prog. Experte 55, 168
flankengetriggert: Prog. Experte 160
Fliegendes Messen: Prog. Experte 167
FLT_SERV.DAT: Prog. Experte 8; Zusatzfunktionen 5
FLT_SERV.SRC: Prog. Experte 8; Zusatzfunktionen 5
Fokus: Konfiguration 97
FOLD: Prog. Experte 19
FOR: Prog. Experte 120
FRAME: Prog. Experte 40, 109
Frameverknüpfung: Prog. Experte 43
Fremdkörper: Sicherheit KRC de 19
Frequenz: Sicherheit KRC de 18
Fundamente: Sicherheit KRC de 14
Funktionen: Prog. Experte 9, 149

G
Gefahren: Sicherheit KRC de 8
Gefahren für Leib und Leben: Sicherheit KRC de 5
Gefahrenbereiche: Sicherheit KRC de 9
Generat. Stop: Konfiguration 118
Geometrische Datentypen: Prog. Experte 40
geometrische Datentypen: Prog. Experte 40
Geometrischer Operator: Prog. Experte 43
Geometrischer Operator ”:”: Prog. Experte 110

AnhangPHR4.1.7 12.03.07 de

14 von 25
3 Gesamtindex (Fortsetzung)

Gerätetyp: RobSysEinleitung_11.04_00 10
Geschwindigkeit: Prog. Experte 77
Geschwindigkeit zum Zurückfahren: Konfiguration 122
Geschwindigkeitskriterium: Prog. Experte 93
Gewichte: Sicherheit KRC de 14
Gewichtsausgleichssystem: Sicherheit KRC de 9, 18
GLOBAL: Prog. Experte 181
global: Prog. Experte 150
Globale Datenlisten: Prog. Experte 180
Globale Variable: Prog. Experte 181
GO: Prog. Experte 22
GOTO: Prog. Experte 117
Greifer: Sicherheit KRC de 10; Konfiguration 16
Greiferbezogene Interpolation: Prog. Experte 65
Grundbereich: Prog. Experte 74

H
H50.SRC: Prog. Experte 8; Zusatzfunktionen 5
H70.SRC: Prog. Experte 8; Zusatzfunktionen 5
Haftungshinweis: Sicherheit KRC de 5
HALT: Prog. Experte 129
Handachsen: Konfiguration 92
Handachsgetriebe: Konfiguration 89
Handoverride: Konfiguration 24
Handverfahren: Konfiguration 24
Handverfahrgeschwindigkeit: Sicherheit KRC de 10
Handwurzelpunkt: Prog. Experte 74
Hardwarewarnung: Konfiguration 54
Häufigkeit der Störung: RobSysEinleitung_11.04_00 9
Hauptlauf: Prog. Experte 86
Hauptschalter: Sicherheit KRC de 8
HB: RobSysEinleitung_11.04_00 8
Hebezeugen: Sicherheit KRC de 18
Herausfiltern von Bits: Prog. Experte 50
Hersteller--Erklärung: Sicherheit KRC de 5, 6
Hex Dez: Prog. Experte 34
Hexadezimalsystem: Prog. Experte 33
Hilfe bei Serviceanfragen: RobSysEinleitung_11.04_00 5
Hilfsstoffe: Sicherheit KRC de 20
Hinweis: RobSysEinleitung_11.04_00 7; Sicherheit KRC de 7
Historie Programmierhandbuch: Anhang PHB 4
HK: RobSysEinleitung_11.04_00 8

AnhangPHR4.1.7 12.03.07 de

15 von 25
Anhang

Höheres Fahrprofil: Prog. Experte 67


Home--Fahrt: Prog. Experte 73
HOV: Konfiguration 24

I
IF: Prog. Experte 118
Impulsausgänge: Prog. Experte 140
IN_HOME: Konfiguration 114
Inbetriebnahme: Sicherheit KRC de 6, 19
Index: Prog. Experte 35
Industrieroboter: Sicherheit KRC de 5
Info: RobSysEinleitung_11.04_00 7
INI: Prog. Experte 72
INSIDE_STOP: Konfiguration 64, 77
Instandsetzung: Sicherheit KRC de 8
Instandsetzungsarbeiten: Sicherheit KRC de 19
INT: Prog. Experte 33
INT $TORQUE_AXIS: Konfiguration 93
Interface--Eigenschaften: Sicherheit KRC de 16
INTERRUPT: Prog. Experte 158
Interrupt ausschalten: Prog. Experte 160
Interrupt einschalten: Prog. Experte 160
Interrupt--Behandlung: Prog. Experte 157
Invertierung: Prog. Experte 49
IO--Simulation: Konfiguration 55
IR_STOPM.SRC: Prog. Experte 8
ISTEP: Prog. Experte 22

K
Kaltstart erzwingen: Konfiguration 31
Kap: RobSysEinleitung_11.04_00 8
kartesische Koordinatentransformation: Prog. Experte 60
Kcpsaver: Konfiguration 13
Kein Momentenbetrieb möglich: Konfiguration 89
Kinematik--Singularität: Prog. Experte 73
Kinematische Kette: Prog. Experte 64, 65
Kleidung: Sicherheit KRC de 18
Kollisionsschutz: Sicherheit KRC de 16
Kollisionsüberwachung: Konfiguration 94
Kommentare: Prog. Experte 27
Kompilieren: Prog. Experte 12
konstant + bahnbezogen: Prog. Experte 79

AnhangPHR4.1.7 12.03.07 de

16 von 25
3 Gesamtindex (Fortsetzung)

konstant + raumbezogen: Prog. Experte 81


Koordinatensysteme: Prog. Experte 59, 70
Koordinatentransformation: Prog. Experte 60
Kopieren: Prog. Experte 14
Korrekturkoordinatensystem: Prog. Experte 200
Kreisbewegungen: Prog. Experte 84
Kreiswinkel: Prog. Experte 84
KRL: Konfiguration 25
KRL--Assistent: Prog. Experte 107
KUKA Robot Group: RobSysEinleitung_11.04_00 5
Kuka--Langtextdatenbank: Konfiguration 49
KUKA--Robot--Language: Prog. Experte 107
KUKA--Screen--Saver: Konfiguration 11
kursiv: RobSysEinleitung_11.04_00 8

L
Langtext: Konfiguration 49
Lebensdauer: Prog. Experte 30
Leistungsschild: Sicherheit KRC de 13
Leitrechner: Konfiguration 97
Leitungsquerschnitt: Sicherheit KRC de 18
Lesehinweise: RobSysEinleitung_11.04_00 6
Lichtschranken: Sicherheit KRC de 14
Lichtvorhang: Sicherheit KRC de 14, 16
LimitedVisibility: Konfiguration 36
LIN: Prog. Experte 83, 113
LIN !: Prog. Experte 104
LIN REL: Prog. Experte 113
LIN--CIRC Überschleif: Prog. Experte 98
LIN--LIN--Überschleifen: Prog. Experte 93
LIN_REL: Prog. Experte 83
Linearbewegungen: Prog. Experte 83
Lineareinheit: RobSysEinleitung_11.04_00 9
Logische Operatoren: Prog. Experte 48
Logische Verknüpfung: Prog. Experte 48
lokal: Prog. Experte 150
Lokale Datenlisten: Prog. Experte 179
LOOP: Prog. Experte 125
Löschen: Prog. Experte 15

AnhangPHR4.1.7 12.03.07 de

17 von 25
Anhang

M
Makro--Zuweisungsliste: Konfiguration 49
Mängel: Sicherheit KRC de 19
Manuelles Verschieben: Prog. Experte 192
Maschinensprache: Prog. Experte 12
MAX_CRASH: Zusatzfunktionen 8
Mechanische Nullstellung: Prog. Experte 68
Mehrdeutige Roboterkinematiken: Prog. Experte 74
Mehrdeutigkeit: Prog. Experte 74
**Leer**: Konfiguration 44
Menü ”Konfig.”: Konfiguration 15
Menükey: RobSysEinleitung_11.04_00 8
Menütaste: RobSysEinleitung_11.04_00 8
MERKER: Prog. Experte 117
Modul P00: Konfiguration 103
Momente: Sicherheit KRC de 14
Momentenbetrieb: Konfiguration 89
Momentenbetrieb möglich: Konfiguration 89
Momentengrenzen: Konfiguration 94
Motorkabelüberwachung: Konfiguration 54
MOVE_ENABLE: Konfiguration 109
MSG_DEMO.SRC: Prog. Experte 8; Zusatzfunktionen 5
MSTEP: Prog. Experte 22

N
Namen: Prog. Experte 29
NEAR_POSRET: Konfiguration 113
NEW_SERV.SRC: Prog. Experte 8; Zusatzfunktionen 5
Nicht abweisende Schleife: Prog. Experte 123
Nicht bestimmungsgemäße Verwendung: Sicherheit KRC de 5
Norm für Industrieroboter--Sicherheit: Sicherheit KRC de 8
NOT--AUS: Sicherheit KRC de 11
NOT--AUS: Sicherheit KRC de 14, 16; Konfiguration 119
NOT--AUS--Einrichtung: Sicherheit KRC de 16

O
ODER--Verknüpfung: Prog. Experte 49
Office--Option ein/aus: Konfiguration 38
ON_PATH: Konfiguration 112
Operand: Prog. Experte 42
Operator: Prog. Experte 42

AnhangPHR4.1.7 12.03.07 de

18 von 25
3 Gesamtindex (Fortsetzung)

Orientierungsführung: Prog. Experte 78


Orientierungskriterium: Prog. Experte 93
OUTSIDE_STOP: Konfiguration 64, 77
Override: Konfiguration 24

P
P00.DAT: Prog. Experte 8; Zusatzfunktionen 5
P00.SRC: Prog. Experte 8; Zusatzfunktionen 5
Parameterliste: Prog. Experte 152
Parameterübergabe: Prog. Experte 152
Passiver Stop: Konfiguration 122
Paßwort: Konfiguration 25
Paßwort ändern: Konfiguration 34
PC--Lüfter: Konfiguration 54
PERCEPT.SRC: Prog. Experte 9; Zusatzfunktionen 5
PERI_RDY: Konfiguration 111
Peripherie--Schnittstellen: Konfiguration 17
Personenschäden: RobSysEinleitung_11.04_00 6
Persönlicher Schutz: Sicherheit KRC de 18
PGNO: Konfiguration 115, 123
PGNO_ERROR: Konfiguration 115, 123
PGNO_FBIT: Konfiguration 107, 123
PGNO_FBIT_REFL: Konfiguration 111
PGNO_LENGTH: Konfiguration 107, 123
PGNO_PARITY: Konfiguration 108, 123
PGNO_REQ: Konfiguration 103, 111, 123
PGNO_TYPE: Konfiguration 107, 123
PGNO_VALID: Konfiguration 108, 116
Piktogramme: RobSysEinleitung_11.04_00 7
Änderungen oder Einträge erforderlich: RobSysEinleitung_11.04_00 7
Änderungen oder Einträge nicht zulässig: RobSysEinleitung_11.04_00 7
Beispiel: RobSysEinleitung_11.04_00 7
Hinweis: RobSysEinleitung_11.04_00 7
Info: RobSysEinleitung_11.04_00 7
Siehe auch: RobSysEinleitung_11.04_00 7
Tip: RobSysEinleitung_11.04_00 7
Piktogramme : RobSysEinleitung_11.04_00 6
Planungshinweise: Sicherheit KRC de 14
Platzhalter: Prog. Experte 108
POS: Prog. Experte 40, 109
Positionsangabe: Prog. Experte 109
Positionsmarkierungen: Sicherheit KRC de 13
POV: Konfiguration 24
Priorität: Prog. Experte 51, 160, 169, 173

AnhangPHR4.1.7 12.03.07 de

19 von 25
Anhang

Prioritäten von Operatoren: Prog. Experte 51


PRO_ACT: Konfiguration 113
Problembeschreibung: RobSysEinleitung_11.04_00 9
Prog.--Nr.--Quitt.: Konfiguration 116
Programm--Korrektur: Prog. Experte 14
Programmablaufarten: Prog. Experte 22
Programmablaufkontrolle: Prog. Experte 117
Programme erstellen und editieren: Prog. Experte 11
Programmoverride: Konfiguration 24
Programmtaste: RobSysEinleitung_11.04_00 8
Programmverzweigungen: Prog. Experte 117
Projektierbarer Ausgang für Hardwarewarnung: Konfiguration 54
PROKOR: Prog. Experte 14
PSTEP: Prog. Experte 22
PTP: Prog. Experte 66, 69, 111
PTP !: Prog. Experte 104
PTP REL: Prog. Experte 111
PTP--Bahnüberschleifen: Prog. Experte 99
PTP--PTP--Überschleifen: Prog. Experte 90
PTP_REL: Prog. Experte 69
PUBLIC: Prog. Experte 180
PULSE: Prog. Experte 140
Punkt--Separator: Prog. Experte 38
Punkt--zu--Punkt Bewegungen: Prog. Experte 66

Q
Querverweis
Abschn: RobSysEinleitung_11.04_00 8
HB: RobSysEinleitung_11.04_00 8
HK: RobSysEinleitung_11.04_00 8
Kap: RobSysEinleitung_11.04_00 8
Querverweise: RobSysEinleitung_11.04_00 8

R
Raumabtastungen: Sicherheit KRC de 14
REAL: Prog. Experte 33, 34
REAL $CURR_ACT[12]: Konfiguration 92
REAL $CURR_RED[12,2]: Konfiguration 92
Rechnervorlauf: Prog. Experte 86
REF_PT[x]: Zusatzfunktionen 8
Referenzpunkt: Zusatzfunktionen 6
REFLECT_PROG_NR: Konfiguration 108
Reinitialisierung: Konfiguration 43

AnhangPHR4.1.7 12.03.07 de

20 von 25
3 Gesamtindex (Fortsetzung)

REPEAT: Prog. Experte 123


RESUME: Prog. Experte 165
Risiken: Konfiguration 89
Roboter: Sicherheit KRC de 5
Roboterkoordinatensystem: Prog. Experte 63
Robotersystem: Sicherheit KRC de 5
Rückwärtstransformation: Prog. Experte 60
Rückwirkungsgrad: Konfiguration 89, 92

S
S und T: Prog. Experte 73
Sachschäden: RobSysEinleitung_11.04_00 6
SAK: Prog. Experte 73
Satzkoinzidenz: Prog. Experte 73
Schaltaktion: Prog. Experte 173
Schilder: Sicherheit KRC de 9, 13
Schleifen: Prog. Experte 120
Schnittstelle konfigurieren: Konfiguration 97
Schnittstellenbelegung: Konfiguration 124
Schräglage des Roboters: Konfiguration 90
Schraubenverbindungen: Sicherheit KRC de 20
Schrittweise Programmausführung: Konfiguration 122
Schutzbekleidung: Sicherheit KRC de 18
Schutzkleidung: Sicherheit KRC de 11
Schutzmaßnahmen: Sicherheit KRC de 19
Schutzzäune: Sicherheit KRC de 14
Schwebende Lasten: Sicherheit KRC de 18
Sensorbetrieb: Sicherheit KRC de 10
Serien--Nummer: Sicherheit KRC de 6
Seriennummer: RobSysEinleitung_11.04_00 10
Seriennummer Roboter: RobSysEinleitung_11.04_00 9
Seriennummer Steuerung: RobSysEinleitung_11.04_00 9
Serifenschrift: RobSysEinleitung_11.04_00 8
Serifenschrift fett: RobSysEinleitung_11.04_00 8
Serviceanfragen: RobSysEinleitung_11.04_00 9
Servicestützpunkte: RobSysEinleitung_11.04_00 14
Sicherheitsbelehrungen: Sicherheit KRC de 11
Sicherheitsbereich: Sicherheit KRC de 14
Sicherheitseinrichtungen: Sicherheit KRC de 10, 19
Sicherheitsfunktionen: Sicherheit KRC de 11
Sicherheitshinweise: Sicherheit KRC de 8
Sicherheitskennzeichnung: Sicherheit KRC de 13

AnhangPHR4.1.7 12.03.07 de

21 von 25
Anhang

Sicherheitsmaßnahmen: Sicherheit KRC de 10


Sicherheitsschuhe: Sicherheit KRC de 18
Sicherheitssymbole: RobSysEinleitung_11.04_00 6; Sicherheit KRC de 7, 13
Achtung: RobSysEinleitung_11.04_00 6
Warnung: RobSysEinleitung_11.04_00 6
Sicherheitstrittplatten: Sicherheit KRC de 16
Sicherheitsvorschriften: Sicherheit KRC de 8, 19
Siehe auch: RobSysEinleitung_11.04_00 7
SIGNAL: Prog. Experte 132
Signalbeschreibungen: Konfiguration 107
Simulierte Ein--/Ausgänge: Konfiguration 55
SIN(X): Prog. Experte 52
Sinus, Cosinus, Tangens: Prog. Experte 52
Softkey: RobSysEinleitung_11.04_00 8
Software: Sicherheit KRC de 19
Software--Versionsnummern: RobSysEinleitung_11.04_00 12
Spannung: Sicherheit KRC de 18
Speicherabzug : RobSysEinleitung_11.04_00 9
Sperren / Freigeben: Prog. Experte 160
Sprache: Konfiguration 32
Sprunganweisung: Prog. Experte 117
SPS.SUB: Prog. Experte 8
SQRT(X): Prog. Experte 52
Standardprogramme: Zusatzfunktionen 5
Status: Prog. Experte 70, 73
Statustasten: Konfiguration 23
Steuerschrank: Sicherheit KRC de 5
Steuerung: RobSysEinleitung_11.04_00 9
STOP_BY_REF: Zusatzfunktionen 8
STOPMESS: Konfiguration 111
STRUC: Prog. Experte 38
Strukturen: Prog. Experte 38
Submit--Interpreter: Konfiguration 22
SWITCH: Prog. Experte 119
Synchron--PTP: Prog. Experte 66
Systemdateien: Prog. Experte 54
Systemvariablen: Prog. Experte 54

T
T1: Konfiguration 112
T2: Konfiguration 112
TAN(X): Prog. Experte 52

AnhangPHR4.1.7 12.03.07 de

22 von 25
3 Gesamtindex (Fortsetzung)

TCP: Prog. Experte 65


TCP--Anpassung: Prog. Experte 197
Teachen von Punkten: Prog. Experte 104
Technische Daten: Sicherheit KRC de 6
Technologiespezifisches Organisationsprogramm: Konfiguration 101
Teilekatalog: Sicherheit KRC de 11
Textauszeichnung
Anführungszeichen: RobSysEinleitung_11.04_00 8
eckige Klammern: RobSysEinleitung_11.04_00 8
Fettdruck: RobSysEinleitung_11.04_00 8
kursiv: RobSysEinleitung_11.04_00 8
Serifenschrift: RobSysEinleitung_11.04_00 8
Serifenschrift fett: RobSysEinleitung_11.04_00 8
Textauszeichnungen: RobSysEinleitung_11.04_00 8
Texthervorhebungen: RobSysEinleitung_11.04_00 6
Timer: Prog. Experte 54
Tip: RobSysEinleitung_11.04_00 7
Tool Center Point: Prog. Experte 66
Touch Up: Prog. Experte 109
Tragkraft: Sicherheit KRC de 18
Traglasteinwirkung: Sicherheit KRC de 10
Translationen: Prog. Experte 62
Transport: Sicherheit KRC de 18
Transportstellung: Sicherheit KRC de 18
TRIGGER: Prog. Experte 169
Trigger: Prog. Experte 169
Trittplatte: Sicherheit KRC de 16
TTS: Prog. Experte 200
Türendschalter: Sicherheit KRC de 14
Turn: Prog. Experte 70, 73
Typenschild
KR C3: RobSysEinleitung_11.04_00 11
Roboter: RobSysEinleitung_11.04_00 10
Typenschilder: RobSysEinleitung_11.04_00 10

U
Überbrücken der Arbeitsraumüberwachung: Konfiguration 66
Überkopfbereich: Prog. Experte 74
Überschleif Bahn -- PTP: Prog. Experte 100
Überschleif PTP -- Bahn: Prog. Experte 99
Überschleifbeginn: Prog. Experte 93
Überschleifbewegungen: Prog. Experte 89
Überschleifen: Prog. Experte 89
Überschleifkontur: Prog. Experte 89

AnhangPHR4.1.7 12.03.07 de

23 von 25
Anhang

Überwachungsschlauch: Konfiguration 94
Umbauten: Sicherheit KRC de 11
Umgang mit der Produktdokumentation: RobSysEinleitung_11.04_00 5
UND--Verknüpfung: Prog. Experte 49
Unfälle: Sicherheit KRC de 7
Unfallverhütung: Sicherheit KRC de 17
Unsachgemäße Verwendung: Sicherheit KRC de 5
Unterbau: Sicherheit KRC de 14
Untermenütaste: RobSysEinleitung_11.04_00 8
Unterprogramme: Prog. Experte 9, 149
UNTIL: Prog. Experte 123
USER_GRP.DAT: Prog. Experte 9; Zusatzfunktionen 5
USER_GRP.SRC: Prog. Experte 9; Zusatzfunktionen 5
USER_SAF: Konfiguration 112
USERSPOT.SRC: Prog. Experte 9; Zusatzfunktionen 5
USERTech reinitialisieren: Konfiguration 43
UV-- und Verschmutzungsschutz: Sicherheit KRC de 18

V
VAR: Prog. Experte 108
variabel + bahnbezogen: Prog. Experte 79
variabel + raumbezogen: Prog. Experte 82
Variablen für den Momentenbetrieb: Konfiguration 92
Variablen und Namen: Prog. Experte 29
Variablen und Vereinbarungen: Prog. Experte 29
Veränderungen: Sicherheit KRC de 11
Verbindungsleitungen: Sicherheit KRC de 5, 13
Vereinbarung: Prog. Experte 10
Vereinbarungsteil: Prog. Experte 9
Vergleichsoperatoren: Prog. Experte 47
Verletzungen: Sicherheit KRC de 7
Verriegelung trennender Schutzeinrichtungen (Bedienerschutz): Sicherheit KRC de 12
Verschmutzungsschutz: Sicherheit KRC de 18
Versionsnummern Software: RobSysEinleitung_11.04_00 9
Verstecken von Programmteilen: Prog. Experte 19
Viren: Sicherheit KRC de 19
vordefinierte Strukturen: Prog. Experte 40
Vorhängeschloß: Sicherheit KRC de 8
Vorkehrung für Bewegung in Notfällen: Sicherheit KRC de 12
Vorlauf: Prog. Experte 86
Vorlaufstop: Konfiguration 93; Prog. Experte 87, 131
Vorschriften: Sicherheit KRC de 17

AnhangPHR4.1.7 12.03.07 de

24 von 25
3 Gesamtindex (Fortsetzung)

Vorwärtstransformation: Prog. Experte 60


Vorwort: RobSysEinleitung_11.04_00 5

W
WAIT: Prog. Experte 126
Wandmontage: Konfiguration 89
Warnhinweise: Sicherheit KRC de 11, 13
Warnung: RobSysEinleitung_11.04_00 6
Warteanweisungen: Prog. Experte 126
Wartung: Sicherheit KRC de 8
Wartungsarbeiten: Sicherheit KRC de 19
Wartungsvorschriften: Sicherheit KRC de 6
Wartungszyklen: Sicherheit KRC de 11
WEAV_DEF.SRC: Prog. Experte 9; Zusatzfunktionen 5
Weichschaltung Achse 1: Konfiguration 91
WAIT FOR $IN[]: Konfiguration 91
Weichschaltung Achse 3: Konfiguration 91
Weltkoordinatensystem: Prog. Experte 63
Werk--Nummer: Sicherheit KRC de 6
Werkzeug, feststehendes: Prog. Experte 65
Werkzeugkoordinatensystem: Prog. Experte 63
Werkzeugkorrektur: Zusatzfunktionen 6
Werkzeugwechsel: Sicherheit KRC de 16; Prog. Experte 103
Wertzuweisung: Prog. Experte 29
WHILE: Prog. Experte 122
Wiederanlauf: Konfiguration 118, 122
Wiederinbetriebnahme: Sicherheit KRC de 19
Wurzel: Prog. Experte 52

Z
Zählschleife: Prog. Experte 120
Zeichenketten: Prog. Experte 38
Zeilenumbruch ein/aus: Konfiguration 37
Zubehör: Sicherheit KRC de 11
Zuführungen: Sicherheit KRC de 10
Zugangs--Kennwort: Konfiguration 34
Zusatzachsen: RobSysEinleitung_11.04_00 9
Zusatzausrüstungen: Sicherheit KRC de 11
Zustimmtaste: Konfiguration 57
Zustimmungsschalter: Sicherheit KRC de 12
Zweidimensionales Feld: Prog. Experte 36
Zyklische Flags: Prog. Experte 55
1

AnhangPHR4.1.7 12.03.07 de

25 von 25

Das könnte Ihnen auch gefallen