robotics anwendungshandbuch steuerungssoftwareirc5 ·...

480
ROBOTICS Anwendungshandbuch Steuerungssoftware IRC5

Upload: others

Post on 19-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

ROBOTICS

AnwendungshandbuchSteuerungssoftware IRC5

Page 2: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Trace back information:Workspace R18-2 version a16Checked in 2018-10-31Skribenta version 5.3.012

Page 3: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

AnwendungshandbuchSteuerungssoftware IRC5

RobotWare 6.08

Dokumentnr: 3HAC050798-003Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.Spezifikationen können ohne vorherige Ankündigung geändert werden.

Page 4: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Die Informationen in diesem Handbuch können ohne vorherige Ankündigung geändertwerden und stellen keine Verpflichtung von ABB dar. ABB übernimmt keinerleiVerantwortung für etwaige Fehler, die dieses Handbuch enthalten kann.Wenn nicht ausdrücklich in vorliegendem Handbuch angegeben, gibt ABB für keinehierin enthaltenen Informationen Sachmängelhaftung oder Gewährleistung fürVerluste, Personen- oder Sachschäden, Verwendbarkeit für einen bestimmten Zweckoder Ähnliches.In keinem Fall kann ABB haftbar gemacht werden für Schäden oder Folgeschäden,die sich aus der Anwendung dieses Dokuments oder der darin beschriebenenProdukte ergeben.Dieses Handbuch darf weder ganz noch teilweise ohne vorherige schriftlicheGenehmigung von ABB vervielfältigt oder kopiert werden.Zur späteren Verwendung aufbewahren.Zusätzliche Kopien dieses Handbuchs können von ABB bezogen werden.

Übersetzung der Originalbetriebsanleitung.

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.Spezifikationen können ohne vorherige Ankündigung geändert werden.

ABB AB, RoboticsRobotics and MotionSe-721 68 Västerås

Schweden

Page 5: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Inhaltsverzeichnis13Überblick über dieses Handbuch .....................................................................................................

171 Einführung in RobotWare

192 RobotWare-OS192.1 Advanced RAPID ..............................................................................................192.1.1 Einführung in Advanced RAPID .................................................................202.1.2 Bit-Funktionalität .....................................................................................202.1.2.1 Überblick ...................................................................................212.1.2.2 RAPID-Komponenten ...................................................................232.1.2.3 Beispiel für Bit-Funktionalität .........................................................242.1.3 Funktionalität zum Suchen von Daten .........................................................242.1.3.1 Überblick ...................................................................................252.1.3.2 RAPID-Komponenten ...................................................................262.1.3.3 Beispiele für die Funktionalität zum Suchen von Daten .......................272.1.4 Alias-E/A-Signale ....................................................................................272.1.4.1 Überblick ...................................................................................282.1.4.2 RAPID-Komponenten ...................................................................292.1.4.3 Beispiel für Alias-E/A-Funktionalität ................................................302.1.5 Konfigurationsfunktionalität .......................................................................302.1.5.1 Überblick ...................................................................................312.1.5.2 RAPID-Komponenten ...................................................................322.1.5.3 Beispiel für Konfigurationsfunktionalität ...........................................332.1.6 Stromausfallfunktionalität .........................................................................332.1.6.1 Überblick ...................................................................................342.1.6.2 RAPID-Komponenten und Systemparameter ....................................352.1.6.3 Beispiel für Stromausfallfunktionalität ..............................................362.1.7 Prozessunterstützungsfunktionalität ...........................................................362.1.7.1 Überblick ...................................................................................372.1.7.2 RAPID-Komponenten ...................................................................382.1.7.3 Beispiele für die Prozessunterstützungsfunktionalität .........................402.1.8 Interrupt-Funktionalität .............................................................................402.1.8.1 Überblick ...................................................................................412.1.8.2 RAPID-Komponenten ...................................................................422.1.8.3 Beispiele für Interrupt-Funktionalität ................................................432.1.9 Benutzermeldungsfunktionalität .................................................................432.1.9.1 Überblick ...................................................................................442.1.9.2 RAPID-Komponenten ...................................................................452.1.9.3 Beispiele für Benutzermeldungsfunktionalität ...................................472.1.9.4 Texttabellendateien ......................................................................482.1.10 RAPID-Unterstützungsfunktionalität ............................................................482.1.10.1 Überblick ...................................................................................492.1.10.2 RAPID-Komponenten ...................................................................502.1.10.3 Beispiele für die RAPID-Unterstützungsfunktionalität .........................512.2 Analog Signal Interrupt .......................................................................................512.2.1 Einführung in Analog Signal Interrupt ..........................................................522.2.2 RAPID-Komponenten ...............................................................................532.2.3 Codebeispiel ..........................................................................................542.3 Cyclic bool .......................................................................................................542.3.1 Zyklisch bewertete logische Bedingungen ...................................................572.3.2 Cyclic bool Beispiele ................................................................................602.3.3 Systemparameter ....................................................................................612.3.4 RAPID-Komponenten ...............................................................................622.4 Electronically Linked Motors ................................................................................622.4.1 Übersicht ...............................................................................................642.4.2 Konfiguration ..........................................................................................642.4.2.1 Systemparameter ........................................................................

Anwendungshandbuch - Steuerungssoftware IRC5 53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Inhaltsverzeichnis

Page 6: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

662.4.2.2 Konfigurationsbeispiel ..................................................................672.4.3 Verwaltung einer Folgeachse ....................................................................672.4.3.1 Verwendung des Dienstprogramms ................................................692.4.3.2 Calibrate follower axis position .......................................................712.4.3.3 Folgeachse zurücksetzen ..............................................................732.4.4 Abstimmen eines Drehmomentfolgers .........................................................732.4.4.1 Beschreibungen des Drehmomentfolgers .........................................752.4.4.2 Verwendung des Dienstprogramms ................................................772.4.5 Daten-Einrichtung ...................................................................................772.4.5.1 Daten für Dienstprogramm einrichten ..............................................792.4.5.2 Beispiel für Daten-Einrichtung ........................................................812.5 Fixed Position Events ........................................................................................812.5.1 Überblick ...............................................................................................822.5.2 RAPID-Komponenten und Systemparameter ................................................852.5.3 Codebeispiele ........................................................................................872.6 File and Serial Channel Handling .........................................................................872.6.1 Einführung in File and Serial Channel Handling ............................................882.6.2 Binäre und zeichenorientierte Kommunikation ..............................................882.6.2.1 Übersicht ...................................................................................892.6.2.2 RAPID-Komponenten ...................................................................912.6.2.3 Codebeispiele .............................................................................932.6.3 Kommunikation mit unformatierten Daten ....................................................932.6.3.1 Übersicht ...................................................................................942.6.3.2 RAPID-Komponenten ...................................................................962.6.3.3 Codebeispiele .............................................................................982.6.4 Datei- und Verzeichnisverwaltung ..............................................................982.6.4.1 Übersicht ...................................................................................992.6.4.2 RAPID-Komponenten ...................................................................

1012.6.4.3 Codebeispiele .............................................................................1032.7 Device Command Interface .................................................................................1032.7.1 Einführung in Device Command Interface ....................................................1042.7.2 RAPID-Komponenten und Systemparameter ................................................1052.7.3 Codebeispiel ..........................................................................................1072.8 Logical Cross Connections .................................................................................1072.8.1 Einführung in Logical Cross Connections ....................................................1082.8.2 Konfigurieren von Logical Cross Connections ..............................................1102.8.3 Beispiele ...............................................................................................1122.8.4 Einschränkungen ....................................................................................1142.9 Connected Services ...........................................................................................1142.9.1 Überblick ...............................................................................................1162.9.2 Connected Services – Konnektivität ............................................................1182.9.3 Konfiguration - Systemparameter ...............................................................1202.9.4 Konfigurieren von Connected Services ........................................................1232.9.5 Konfigurieren von Connected Services mithilfe von Gateway-Box ....................1272.9.6 Connected Services auf LAN 3. ..................................................................1292.9.7 Connected Services – Registrierung ...........................................................1312.9.8 Connected Services Informationen .............................................................1362.10 User logs .........................................................................................................1362.10.1 Einführung in User logs ............................................................................

1373 Motion performance1373.1 Absolute Accuracy [603-1, 603-2] .........................................................................1373.1.1 Über Absolute Accuracy ...........................................................................1393.1.2 Verwendung von Absolute Accuracy ...........................................................1403.1.3 Nützliche Funktionen ...............................................................................1413.1.4 Konfiguration ..........................................................................................1433.1.5 Wartung ................................................................................................1433.1.5.1 Die Genauigkeit beeinträchtigende Wartung .....................................1453.1.5.2 Verlust der Genauigkeit ................................................................

6 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Inhaltsverzeichnis

Page 7: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

1463.1.6 Kompensationstheorie .............................................................................1463.1.6.1 Fehlerquellen ..............................................................................1473.1.6.2 Absolute Accuracy-Kompensation ..................................................1493.1.7 Vorbereitung des Absolute Accuracy-Roboters .............................................1493.1.7.1 ABB Kalibriervorgang ...................................................................1513.1.7.2 Geburtsurkunde ..........................................................................1523.1.7.3 Kompensationsparameter .............................................................1553.1.8 Zellenausrichtung ....................................................................................1553.1.8.1 Überblick ...................................................................................1563.1.8.2 Messen der Befestigungsausrichtung ..............................................1573.1.8.3 Messen der Roboterausrichtung .....................................................1583.1.8.4 Bezugsrahmen ............................................................................1593.1.8.5 Werkzeugkalibrierung ...................................................................1603.2 Advanced robot motion [687-1] ............................................................................1613.3 Advanced Shape Tuning [enthalten in 687-1] ..........................................................1613.3.1 Über das Advanced Shape Tuning .............................................................1623.3.2 Automatische Reibungsanpassung .............................................................1653.3.3 Manuelle Reibungsabstimmung .................................................................1673.3.4 Systemparameter ....................................................................................1673.3.4.1 Systemparameter ........................................................................1683.3.4.2 Setzen von Abstimmungssystemparametern ....................................1693.3.5 RAPID-Komponenten ...............................................................................1703.4 Motion Process Mode [enthalten in 687-1] ..............................................................1703.4.1 Über Motion Process Mode .......................................................................1723.4.2 Benutzerdefinierte Modi ...........................................................................1753.4.3 Allgemeine Informationen zur Roboterabstimmung ........................................1783.4.4 Zusätzliche Informationen .........................................................................1793.5 Wrist Move [enthalten in 687-1] ............................................................................1793.5.1 Einführung in Wrist Move ..........................................................................1813.5.2 Koordinatensystem der ausgeschnittenen Ebene ..........................................1833.5.3 RAPID-Komponenten ...............................................................................1843.5.4 RAPID-Code, Beispiele ............................................................................1863.5.5 Fehlerbehebung ......................................................................................

1874 Motion coordination1874.1 Machine Synchronization [607-1], [607-2] ...............................................................1874.1.1 Überblick ...............................................................................................1894.1.2 Was benötigt wird ...................................................................................1914.1.3 Synchronisierungsfunktionen ....................................................................1924.1.4 Allgemeine Beschreibung des Synchronisierungsprozesses ...........................1934.1.5 Einschränkungen ....................................................................................1944.1.6 Installation der Hardware für Sensor Synchronization ....................................1944.1.6.1 Encoder-Spezifikation ..................................................................1954.1.6.2 Encoder-Beschreibung .................................................................1964.1.6.3 Empfehlungen für die Installation ...................................................1974.1.6.4 Verbinden von Encoder und Encoder-Schnittstelleneinheit ..................1994.1.7 Installation der Hardware für Analog Synchronization ....................................1994.1.7.1 Erforderliche Hardware .................................................................2004.1.8 Installation der Software ...........................................................................2004.1.8.1 Sensorinstallation ........................................................................2024.1.8.2 Erneutes Laden der gespeicherten Motion-Parameter ........................2034.1.8.3 Installation mehrerer Sensoren ......................................................2054.1.9 Programmierung der Synchronisierung .......................................................

2054.1.9.1 Allgemeine Probleme bei der Programmierung mit der

Synchronisierungsoption ..............................................................2074.1.9.2 Programmierbeispiele ..................................................................

2094.1.9.3 Eintreten in und Beenden von koordinierter Bewegung in

Verschleifzonen ..........................................................................2114.1.9.4 Mehrere Sensoren verwenden .......................................................

Anwendungshandbuch - Steuerungssoftware IRC5 73HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Inhaltsverzeichnis

Page 8: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2124.1.9.5 Feinpunktprogrammierung ............................................................2134.1.9.6 Trennen des Sensorobjektes .........................................................2144.1.9.7 Informationen zum FlexPendant .....................................................2154.1.9.8 Hinweise zur Programmierung .......................................................2174.1.9.9 Betriebsarten ..............................................................................2194.1.10 Roboter-zu-Roboter-Synchronisierung ........................................................2194.1.10.1 Einleitung ...................................................................................2204.1.10.2 Das Konzept der Roboter-zu-Roboter-Synchronisierung .....................2214.1.10.3 Konfigurationsparameter des Master-Roboters .................................2244.1.10.4 Konfigurationsparameter des Slave-Roboters ...................................2274.1.10.5 Programmierbeispiel für den Master-Roboter ....................................2294.1.10.6 Programmierbeispiel für einen Slave-Roboter ...................................

2304.1.11 Synchronisieren mit dem hydraulischen Presswerkzeug unter Verwendung des

aufgezeichneten Profils ............................................................................2304.1.11.1 Einführung .................................................................................2314.1.11.2 Konfiguration von Systemparametern ..............................................2334.1.11.3 Programmbeispiel .......................................................................

2344.1.12 Synchronisieren mit Gussmaschine unter Verwendung des aufgezeichneten

Profils ...................................................................................................2344.1.12.1 Einführung .................................................................................2354.1.12.2 Konfiguration von Systemparametern ..............................................2374.1.12.3 Programmbeispiel .......................................................................2384.1.13 Überwachung .........................................................................................2404.1.14 Systemparameter ....................................................................................2444.1.15 E/A-Signale ............................................................................................2454.1.16 RAPID-Komponenten ...............................................................................

2475 Motion Events2475.1 World Zones [608-1] ..........................................................................................2475.1.1 Überblick ...............................................................................................2495.1.2 RAPID-Komponenten ...............................................................................2515.1.3 Codebeispiele ........................................................................................

2536 Motion functions2536.1 Independent Axes [610-1] ...................................................................................2536.1.1 Überblick ...............................................................................................2556.1.2 Systemparameter ....................................................................................2566.1.3 RAPID-Komponenten ...............................................................................2576.1.4 Codebeispiele ........................................................................................2596.2 Path Recovery [611-1] ........................................................................................2596.2.1 Überblick ...............................................................................................2606.2.2 RAPID-Komponenten ...............................................................................2626.2.3 Speichern der aktuellen Bahn ....................................................................2696.2.4 Bahnaufzeichnung ...................................................................................2766.3 Path Offset [612-1] .............................................................................................2766.3.1 Überblick ...............................................................................................2786.3.2 RAPID-Komponenten ...............................................................................2796.3.3 Zugehörige RAPID-Funktionalität ...............................................................2806.3.4 Codebeispiel ..........................................................................................

2817 Motion Supervision2817.1 Collision Detection [613-1] ..................................................................................2817.1.1 Überblick ...............................................................................................2837.1.2 Einschränkungen ....................................................................................2857.1.3 Was passiert bei einer Kollision .................................................................2877.1.4 Zusätzliche Informationen .........................................................................2887.1.5 Konfiguration und Programmierung von Vorrichtungen ..................................2887.1.5.1 Systemparameter ........................................................................

8 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Inhaltsverzeichnis

Page 9: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2907.1.5.2 RAPID-Komponenten ...................................................................2917.1.5.3 Signale ......................................................................................2927.1.6 Verwenden von Collision Detection ............................................................2927.1.6.1 Einrichten von Systemparametern ..................................................2937.1.6.2 Überwachung des FlexPendant einstellen ........................................2947.1.6.3 Überwachung über das RAPID-Programm einstellen ..........................2957.1.6.4 Vermeiden falscher Auslöser .........................................................2967.1.7 Collision Avoidance .................................................................................

2998 Communication2998.1 FTP Client [614-1] .............................................................................................2998.1.1 Einführung in FTP Client ...........................................................................3028.1.2 Systemparameter ....................................................................................3038.1.3 Beispiele ...............................................................................................3048.2 SFTP Client [614-1] ............................................................................................3048.2.1 Einführung in SFTP Client .........................................................................3068.2.2 Systemparameter ....................................................................................3078.2.3 Beispiele ...............................................................................................3088.3 NFS Client [614-1] .............................................................................................3088.3.1 Einführung in NFS Client ..........................................................................3108.3.2 Systemparameter ....................................................................................3118.3.3 Beispiele ...............................................................................................3128.4 PC Interface [616-1] ...........................................................................................3128.4.1 Einführung in PC Interface ........................................................................3138.4.2 Senden einer Variablen von RAPID ............................................................3158.4.3 ABB Software, die PC Interface verwendet ...................................................3168.5 Socket Messaging [616-1] ...................................................................................3168.5.1 Einführung in Socket Messaging ................................................................3178.5.2 Schemadarstellung der Socket-Kommunikation ............................................3188.5.3 Technische Informationen zu Socket Messaging ...........................................3198.5.4 RAPID-Komponenten ...............................................................................3218.5.5 Codebeispiele ........................................................................................3248.6 RAPID Message Queue [enthalten in 616-1, 623-1] ..................................................3248.6.1 Einführung in RAPID Message Queue .........................................................3258.6.2 Verhalten der RAPID Message Queue .........................................................3298.6.3 Systemparameter ....................................................................................3308.6.4 RAPID-Komponenten ...............................................................................3328.6.5 Codebeispiele ........................................................................................

3379 Engineering tools3379.1 Multitasking [623-1] ...........................................................................................3379.1.1 Einführung in Multitasking ........................................................................3409.1.2 Systemparameter ....................................................................................3429.1.3 RAPID-Komponenten ...............................................................................3449.1.4 Taskkonfiguration ...................................................................................3449.1.4.1 Debug-Strategien zum Einrichten von Tasks .....................................3469.1.4.2 Prioritäten ..................................................................................3489.1.4.3 Taskfeldeinstellungen ..................................................................3499.1.4.4 Auswählen der mit der START-Taste zu startenden Tasks ..................3529.1.5 Kommunikation zwischen Tasks ................................................................3529.1.5.1 Persistente Variablen ...................................................................3549.1.5.2 Warten auf andere Tasks ..............................................................3569.1.5.3 Synchronisieren von Tasks ...........................................................3589.1.5.4 Verwenden eines Dispatchers ........................................................3609.1.6 Weitere Programmierungsthemen ..............................................................3609.1.6.1 Gemeinsame Verwendung von Ressourcen durch Tasks ...................3619.1.6.2 Überprüfen, ob Task mechanische Einheit steuert .............................3629.1.6.3 taskid ........................................................................................3639.1.6.4 Vermeiden von rechenintensiven Schleifen ......................................

Anwendungshandbuch - Steuerungssoftware IRC5 93HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Inhaltsverzeichnis

Page 10: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3649.2 Sensor Interface [628-1] .....................................................................................3649.2.1 Einführung in Sensor Interface ..................................................................3659.2.2 Konfigurieren von Sensoren ......................................................................3659.2.2.1 Über die Sensoren .......................................................................3669.2.2.2 Konfigurieren von Sensoren auf seriellen Kanälen .............................3679.2.2.3 Konfigurieren von Sensoren auf Ethernet-Kanälen .............................3699.2.3 RAPID ...................................................................................................3699.2.3.1 RAPID-Komponenten ...................................................................3739.2.4 Beispiele ...............................................................................................3739.2.4.1 Codebeispiele .............................................................................3759.3 Externally Guided Motion [689-1] ..........................................................................3759.3.1 Einführung in EGM ..................................................................................3759.3.1.1 Überblick ...................................................................................3789.3.1.2 Einführung in EGM Position Stream ................................................3799.3.1.3 Einführung in EGM Position Guidance .............................................3809.3.1.4 Einführung in EGM Path Correction ................................................3819.3.2 Verwendung von EGM .............................................................................3819.3.2.1 Grundlegende Methode ................................................................3839.3.2.2 Abarbeitungsstatus ......................................................................3849.3.2.3 Eingangsdaten ............................................................................3879.3.2.4 Ausgangsdaten ...........................................................................3889.3.2.5 Konfiguration ..............................................................................3899.3.2.6 Koordinatensysteme ....................................................................3919.3.3 Das EGM-Sensorprotokoll .........................................................................3969.3.4 Systemparameter ....................................................................................3979.3.5 RAPID Komponenten ...............................................................................3999.3.6 RAPID Codebeispiele ...............................................................................3999.3.6.1 Verwendung des EGM-Positionsdatenstroms ...................................4029.3.6.2 Verwendung von EGM Position Guidance mit einem UdpUc-Gerät .......4049.3.6.3 Verwendung von EGM Position Guidance mit Signalen als Eingang ......

4109.3.6.4 Verwendung von EGM Path Correction mit verschiedenen

Protokolltypen .............................................................................4139.3.7 UdpUc Codebeispiele ..............................................................................4149.4 Robot Reference Interface [enthalten in 689-1] .......................................................4149.4.1 Einführung in Robot Reference Interface .....................................................4159.4.2 Installation .............................................................................................4159.4.2.1 Verbinden des Kommunikationskabels ............................................4169.4.2.2 Voraussetzungen ........................................................................4179.4.2.3 Datenorchestrierung ....................................................................4189.4.2.4 Unterstützte Datentypen ...............................................................4199.4.3 Konfiguration ..........................................................................................4199.4.3.1 Schnittstellenkonfiguration ............................................................4209.4.3.2 Schnittstelleneinstellungen ............................................................4219.4.3.3 Gerätebeschreibung .....................................................................4249.4.3.4 Gerätekonfiguration .....................................................................4279.4.4 Konfigurationsbeispiele ............................................................................4279.4.4.1 RAPID-Programmierung ...............................................................4289.4.4.2 Beispielkonfiguration ....................................................................4339.4.5 RAPID-Komponenten ...............................................................................4349.5 Auto Acknowledge Input .....................................................................................

43710 Tool control options43710.1 Servo Tool Change [630-1] ..................................................................................43710.1.1 Überblick ...............................................................................................43810.1.2 Anforderungen und Einschränkungen .........................................................44010.1.3 Konfiguration ..........................................................................................44110.1.4 Verbindungsrelais ...................................................................................44310.1.5 Vorgehensweise für den Werkzeugwechsel ..................................................44410.1.6 Bewegungs-Servowerkzeuge bei Aktivierung deaktiviert ................................

10 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Inhaltsverzeichnis

Page 11: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

44510.2 Tool Control [1180-1] .........................................................................................44510.2.1 Überblick ...............................................................................................44610.2.2 Bewegungen des Servowerkzeugs .............................................................44710.2.3 Elektrodenverwaltung ..............................................................................44910.2.4 Überwachung .........................................................................................45010.2.5 RAPID-Komponenten ...............................................................................45110.2.6 Systemparameter ....................................................................................45610.2.7 Inbetriebnahme und Wartung ....................................................................45810.2.8 Kalibrierungen der mechanischen Einheit ....................................................45910.2.9 RAPID-Codebeispiel ................................................................................46010.3 I/O Controlled Axes [enthalten in 1180-1] ...............................................................46010.3.1 Überblick ...............................................................................................46110.3.2 Contouring error (Schleppfehler) ................................................................46210.3.3 Die Position korrigieren ............................................................................46310.3.4 Werkzeugwechsel ...................................................................................46410.3.5 Installation .............................................................................................46510.3.6 Konfiguration ..........................................................................................46710.3.7 Systemparameter ....................................................................................47010.3.8 RAPID-Programmierung ...........................................................................

471Index

Anwendungshandbuch - Steuerungssoftware IRC5 113HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Inhaltsverzeichnis

Page 12: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Diese Seite wurde absichtlich leer gelassen

Page 13: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Überblick über dieses HandbuchÜber dieses Handbuch

In diesem Handbuch werden die Grundlagen erklärt, wann und wie dieverschiedenen RobotWare-Optionen und -Funktionen verwendet werden.

VerwendungIn diesem Handbuch können Sie nachschlagen, ob sich eine Option für die Lösungeines Problems eignet. Außerdem beschreibt es, wie eine Option verwendet wird.Ausführliche Informationen zur Syntax für RAPID-Routinen und Ähnliches sind indiesem Handbuch nicht enthalten. Diese Informationen erhalten Sie imentsprechenden Referenzhandbuch.

Wer sollte dieses Handbuch lesen?Dieses Handbuch richtet sich an Programmierer von Robotern.

VoraussetzungenDer Leser muss...

• Industrierobotern und ihren Grundbegriffen,• mit der RAPID-Programmiersprache vertraut sein.• sowie mit Systemparametern und ihrer Konfiguration vertraut sein.

Referenzen

DokumentnummerReferenz

3HAC050945-003Produktspezifikation - Steuerungssoftware IRC5IRC5 mit Hauptcomputer DSQC1000 und RobotWare 6.

3HAC047400-003Produktspezifikation - IRC5-SteuerungIRC5 mit Hauptcomputer DSQC1000.

3HAC032104-003Bedienungsanleitung - RobotStudio

3HAC050941-003Bedienungsanleitung - IRC5 mit FlexPendant

3HAC050917-003TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionenund Datentypen

3HAC050947-003Technisches Referenzhandbuch - RAPID Overview

3HAC050948-003Technisches Referenzhandbuch - Systemparameter

Revisionen

BeschreibungRevision

Veröffentlicht mit RobotWare 6.0.-Erste Ausgabe.

Veröffentlicht mit RobotWare 6.01.• Auto Acknowledge Input hinzugefügt, siehe Auto Acknowledge Input

auf Seite 434.• Die Funktionalität von RAPID Message Queue wurde korrigiert, siehe

RAPID Message Queue [enthalten in 616-1, 623-1] auf Seite 324.• Geringfügige Korrekturen.

A

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 133HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Überblick über dieses Handbuch

Page 14: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungRevision

Veröffentlicht mit RobotWare 6.02.• Die Bahn zu den Voreinstellungsdateien wurde aktualisiert, sieheUdpUc

Codebeispiele auf Seite413 und Inbetriebnahme undWartung auf Sei-te 456.

• Die TCP-Ports und Protokolle werden für die Option Sensor Interface[628-1] aktualisiert, siehe Konfigurieren von Sensoren auf Ethernet-Kanälen auf Seite 367.

• Die Funktionalität EGM Path Correction mit entsprechenden RAPID-In-struktionen wurde hinzugefügt, siehe Externally Guided Motion [689-1] auf Seite 375.

• Gebündelte Optionen werden im Handbuch gemäß der übergeordnetenOption neu geordnet.

• Die Liste der für optische Nachverfolgung verfügbaren LTAPP-Variablenwurde aktualisiert, siehe Konstanten auf Seite 370.

B

Veröffentlicht mit RobotWare 6.03.• Die Funktionalität Cyclic bool auf Seite 54 hinzugefügt.• Die Funktionalität Remote Service Embedded hinzugefügt.• Funktionalität wurde hinzugefügt und für Option Motion Process Mode

[enthalten in 687-1] auf Seite 170 aktualisiert.• Die Option Servo Tool Control [included in 635-6] wurde ersetzt durch

die Option Tool Control [1180-1] auf Seite 445.• Die Option I/O Controlled Axes [enthalten in 1180-1] auf Seite460wurde

hinzugefügt.• Geringfügige Korrekturen.

C

Veröffentlicht mit RobotWare 6.04.• Die Möglichkeit zum Konfigurieren von Cyclic bool, hinzugefügt, siehe

Konfiguration auf Seite 55.• Der AbschnittAllgemeine Einschränkungen für EGMwurde aktualisiert.• Informationen dazu hinzugefügt, wie ein 7-achsiger Roboter mit dem

EGM-Achsenmodus verwendet werden kann, siehe Externally GuidedMotion [689-1] auf Seite 375.

• Neue Konstanten für die Option Sensor Interface hinzugefügt, sieheKonstanten auf Seite 370.

• Die Option I/O Controlled Axes aktualisiert, siehe I/O Controlled Axes[enthalten in 1180-1] auf Seite 460.

• Remote Service Embedded wurde aktualisiert und in Connected Ser-vices umbenannt. Siehe Connected Services auf Seite 114.

• Verfahren für das Konfigurieren von Connected Services wurde hinzu-gefügt. Siehe Konfigurieren von Connected Services auf Seite 120.

D

Veröffentlicht mit RobotWare 6.05.• Die Funktionalität User logs auf Seite 136 hinzugefügt.• Ein neuer Abschnitt wurde hinzugefügt,siehe Connected Services auf

LAN 3. auf Seite 127.• Die Funktionalität Fernsteuerung des Betriebsmodus auf Seite434 hin-

zugefügt.• Geringfügige Korrekturen.

E

Veröffentlicht mit RobotWare 6.06.• Geringfügige Korrekturen.

F

Fortsetzung auf nächster Seite14 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Überblick über dieses HandbuchFortsetzung

Page 15: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungRevision

Veröffentlicht mit RobotWare 6.07.• Korrekturen in den Codebeispielen für Robot Reference Interface.• Informationen zum Kopieren der Serviceprogrammdatei und Laden

von cfg-Dateien für die Funktion Electronically Linked Motors auf Sei-te 62 hinzugefügt.

• Protokoll LTPROTOBUF zu Sensor Interface [628-1] auf Seite 364 hin-zugefügt.

• Hinzugefügter Abschnitt SFTP Client [614-1] auf Seite 304.• Informationen zum EGM Position Stream in AbschnittExternally Guided

Motion [689-1] auf Seite 375hinzugefügt.

G

Veröffentlicht mit RobotWare 6.08.• Es wurde Press tending mode zu Motion Process Mode hinzugefügt.• Informationen über die Variante der Verzeichnisauflistung wurde zu

FTP Client hinzugefügt.• Informationen über mehrere mechanische Einheiten und Bewegungs-

tasks wurden hinzugefügt zu Externally Guided Motion [689-1] aufSeite 375.

• Die maximale Länge für Dateipfade im NFS Client wurde auf 248 Zei-chen erhöht.

• Informationen über die SFTP-Einstellung wurden hinzugefügt zu SFTPClient [614-1] auf Seite 304.

• Collision Avoidance auf Seite 296 wurde hinzugefügt.

H

Anwendungshandbuch - Steuerungssoftware IRC5 153HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Überblick über dieses HandbuchFortsetzung

Page 16: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Diese Seite wurde absichtlich leer gelassen

Page 17: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

1 Einführung in RobotWareSoftwareprodukte

RobotWare bezeichnet eine Serie von Softwareprodukten von ABB Robotics. DieProdukte steigern die Produktivität und senken die Gesamtbetriebskosten für denRoboter. ABB Robotics hat viele Jahre in die Entwicklung dieser Produkte investiertund repräsentiert Fachwissen und Erfahrung auf der Basis von mehreren tausendRoboterinstallationen.

ProduktklassenDie RobotWare-Serie enthält verschiedene Produktklassen:

BeschreibungProduktklassen

Dies ist das Betriebssystem des Roboters. RobotWare-OS bietetalle erforderlichen Funktionen für grundlegende Programmierungund den Betrieb von Robotern. Es ist Teil des Roboters, aber auchseparat als Upgrade erhältlich.

RobotWare-OS

Für eine Beschreibung von RobotWare-OS siehe Produktspezifika-tion - IRC5-Steuerung.

Diese Produkte sind Optionen, die auf der Basis von RobotWare-OS ausgeführt werden können. Sie sind für Roboter gedacht, diezusätzliche Funktionalität für Bewegungssteuerung, Kommunikation,System Engineering oder Anwendungen benötigen.

Hinweis

In diesem Handbuch werden nicht alle RobotWare-Optionen beschrie-ben. Einige Optionen sind umfassender und werden daher in sepa-raten Handbüchern beschrieben. Weitere Informationen finden Sieunter Produktspezifikation - Steuerungssoftware IRC5.

RobotWare Optionen(Erweiterte Optionen)

Dies sind umfassende Pakete für spezielle Prozessanwendungenwie Punktschweißen, Lichtbogenschweißen und Materialauftrag.Sie dienen in erster Linie der Verbesserung des Prozessergebnissesund der Vereinfachung von Installation und Programmierung derAnwendungen.

Optionen für Prozess-anwendungen

Alle Optionen für Prozessanwendungen werden in separatenHandbüchern beschrieben. Weitere Informationen finden Sie unterProduktspezifikation - Steuerungssoftware IRC5.

Ein RobotWare Add-in ist ein unabhängiges Paket, das die Funktio-nen des Robotersystems erweitert.

RobotWare Add-ins

Manche Softwareprodukte von ABB Robotics werden als Add-insgeliefert, zum Beispiel IRBT-Verfahreinheit, IRBP-Positionierer undStandalone-Steuerung. Weitere Informationen finden Sie unterProduktspezifikation - Steuerungssoftware IRC5.Der Zweck von RobotWare Add-ins ist auch, dass Entwickler vonRoboterprogrammen außerhalb von ABB Optionen für ABB-Robo-tersysteme erstellen und diese Optionen an Ihre Kunden verkaufenkönnen. Wenden Sie sich für weitere Informationen zur Erstellungvon RobotWare Add-ins an Ihren örtlichen Kundendienstmitarbeitervon ABB Robotics unter www.abb.com/contacts.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 173HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

1 Einführung in RobotWare

Page 18: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

OptionsgruppenFür IRC5 wurden die RobotWare-Optionen in Gruppen zusammengefasst, um demAnwender die Kombination zu erleichtern. Damit soll der Nutzen dieser Optionenverdeutlicht werden. Jedoch müssen alle Optionen separat erworben werden. DieGruppen sind wie folgt eingeteilt:

BeschreibungOptionsgruppen

Optionen, die die Leistung Ihres Roboters optimierenMotion performance

Optionen, mit deren Hilfe Ihr Roboter mit externer Ausrüstung oderanderen Robotern koordiniert wird

Motion coordination

Optionen, die die Position des Roboters überwachen.Motion Events

Optionen, die die Bahn des Roboters steuern.Motion functions

Optionen, die die Bewegung des Roboters überwachen.Motion Supervision

Optionen, über die der Roboter mit anderer Ausrüstung kommuni-zieren kann (externe PCs etc.)

Communication

Optionen für den erfahrenen RoboterintegratorEngineering tools

Optionen, mit deren Hilfe die Robotersteuerung externe Motorenunabhängig vom Roboter betreiben kann

Servo motor control

Hinweis

In diesem Handbuch werden nicht alle RobotWare-Optionen beschrieben. EinigeOptionen sind umfassender und werden daher in separaten Handbüchernbeschrieben. Weitere Informationen finden Sie unterProduktspezifikation - Steuerungssoftware IRC5.

18 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

1 Einführung in RobotWareFortsetzung

Page 19: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2 RobotWare-OS2.1 Advanced RAPID

2.1.1 Einführung in Advanced RAPID

Einführung in Advanced RAPIDDie RobotWare-BasisfunktionalitätAdvanced RAPID ist für Roboterprogrammierervorgesehen, die Anwendungen entwickeln, für die erweiterte Funktionalitäterforderlich ist.Advanced RAPID umfasst viele verschiedene Funktionalitätstypen, die in diefolgenden Gruppen unterteilt werden können:

BeschreibungFunktionalitätsgruppe

Bit-weise Operationen an einem ByteBit-Funktionalität

Suchen und Abfragen/Festlegen von Datenobjekten(z. B. Variablen)

Funktionalität zum Suchen von Da-ten

Festlegen eines optionalen Aliasnamens für ein E/A-Signal.

Alias-E/A-Funktionalität

Abrufen/Festlegen von SystemparameternKonfigurationsfunktionalität

Wiederherstellen von Signalen nach StromausfallStromausfallfunktionalität

Beim Erstellen von Prozessanwendungen von NutzenProzessunterstützungsfunktionalität

Umfangreichere Interrupt-Funktionalität als in derRobotWare-Basisfunktionalität

Interrupt-Funktionalität

Fehlermeldungen und anderer TextBenutzermeldungsfunktionalität

Diverse Unterstützung für den ProgrammiererRAPID-Unterstützungsfunktionalität

Anwendungshandbuch - Steuerungssoftware IRC5 193HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.1 Einführung in Advanced RAPID

Page 20: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.2 Bit-Funktionalität

2.1.2.1 Überblick

ZweckMit der Bit-Funktionalität werden Operationen an einem Byte (8 digitale Bits)ermöglicht. Ein einzelnes Bit kann abgerufen oder festgelegt werden, oder eskönnen logische Operationen an einem Byte ausgeführt werden. Diese Operationenbieten sich an, wenn z. B. eine serielle Kommunikation oder eine Gruppe digitalerE/A-Signale verwendet wird.

Enthaltene KomponentenKomponenten der Bit-Funktionalität:

• Der Datentyp byte.• Instruktionen zum Festlegen eines Bitwerts: BitSet und BitClear.• Funktion zum Abrufen eines Bitwerts: BitCheck.• Funktionen für die Ausführung logischer Operationen an einem Byte: BitAnd,

BitOr, BitXOr, BitNeg, BitLSh und BitRSh.

20 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.2.1 Überblick

Page 21: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.2.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps, der für dieBit-Funktionalität verwendet wird. Weitere Informationen finden Sie unter demjeweiligen Datentyp im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungDatentyp

Der Datentyp byte stellt einen Dezimalwert zwischen 0 und 255 dar.byte

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für dieBit-Funktionalität verwendet wird. Weitere Informationen finden Sie unter derjeweiligen Instruktion im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungInstruktion

Mit BitSet wird ein bestimmtes Bit in einem definierten Datenbyte auf 1gesetzt.

BitSet

Mit BitClear wird ein bestimmtes Bit in einem definierten Datenbyte ge-löscht (auf 0 gesetzt).

BitClear

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion, die für dieBit-Funktionalität verwendet wird. Weitere Informationen finden Sie unter derjeweiligen Funktion im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungFunktion

Mit BitAnd wird eine logische bitweise AND-Operation an Daten vom Typbyte ausgeführt.

BitAnd

Mit BitOr wird eine logische bitweise OR-Operation an Daten vom Typbyte ausgeführt.

BitOr

Mit BitXOr (Bit eXclusive OR) wird eine logische bitweise XOR-Operationan Daten vom Typ byte ausgeführt.

BitXOr

Mit BitNeg wird eine logische bitweise Negationsoperation (1-er Komple-ment) an Daten vom Typ byte ausgeführt.

BitNeg

Mit BitLSh (Bit Left Shift) wird eine logische bitweise Linksverschiebungan Daten vom Typ byte ausgeführt.

BitLSh

Mit BitRSh (Bit Right Shift) wird eine logische bitweise Rechtsverschiebungan Daten vom Typ byte ausgeführt.

BitRSh

Mit BitCheck wird überprüft, ob ein bestimmtes Bit in einem definiertenDatenbyte auf 1 gesetzt ist.

BitCheck

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 213HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.2.2 RAPID-Komponenten

Page 22: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Tipp

Obwohl sie kein Bestandteil der Option sind, werden die Funktionen für dieKonvertierung zwischen byte und string StrToByte und ByteToStr häufiggemeinsam mit der Bit-Funktionalität verwendet.

22 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.2.2 RAPID-KomponentenFortsetzung

Page 23: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.2.3 Beispiel für Bit-Funktionalität

ProgrammcodeCONST num parity_bit := 8;

!Set data1 to 00100110

VAR byte data1 := 38;

!Set data2 to 00100010

VAR byte data2 := 34;

VAR byte data3;

!Set data3 to 00100010

data3 := BitAnd(data1, data2);

!Set data3 to 00100110

data3 := BitOr(data1, data2);

!Set data3 to 00000100

data3 := BitXOr(data1, data2);

!Set data3 to 11011001

data3 := BitNeg(data1);

!Set data3 to 10011000

data3 := BitLSh(data1, 2);

!Set data3 to 00010011

data3 := BitRSh(data1, 1);

!Set data1 to 10100110

BitSet data1, parity_bit;

!Set data1 to 00100110

BitClear data1, parity_bit;

!If parity_bit is 0, set it to 1

IF BitCheck(data1, parity_bit) = FALSE THEN

BitSet data1, parity_bit;

ENDIF

Anwendungshandbuch - Steuerungssoftware IRC5 233HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.2.3 Beispiel für Bit-Funktionalität

Page 24: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.3 Funktionalität zum Suchen von Daten

2.1.3.1 Überblick

ZweckDie Funktionalität zum Suchen von Daten dient zum Suchen und Abfragen/Festlegenvon Werten für Datenobjekte eines bestimmten Typs.Einige Anwendungsbeispiele für die Funktionalität zum Suchen von Daten:

• Festlegen eines Wertes auf eine Variable, wenn der Variablenname nur ineiner Zeichenfolge verfügbar ist

• Auflisten aller Variablen eines bestimmten Typs• Festlegen eines neuen Wertes für eine Gruppe ähnlicher Variablen mit

ähnlichen Namen

Enthaltene KomponentenKomponenten der Funktionalität zum Suchen von Daten:

• Der Datentyp datapos.• Instruktionen zum Suchen einer Gruppe von Datenobjekten und Abrufen

oder Festlegen ihrer Werte: SetDataSearch, GetDataVal, SetDataValund SetAllDataVal.

• Eine Funktion zum Traversieren des Suchergebnisses: GetNextSym.

24 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.3.1 Überblick

Page 25: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.3.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps, der für die Funktionalitätzum Suchen von Daten verwendet wird. Weitere Informationen finden Sie unterdem jeweiligen Datentyp im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungDatentyp

datapos ist der Block, in den ein Datenobjekt (interne Systemdaten)eingeschlossen wird, das mit der Funktion GetNextSym abgerufen wird.

datapos

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für die Funktionalitätzum Suchen von Daten verwendet wird. Weitere Informationen finden Sie unterder jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungInstruktion

SetDataSearchwird gemeinsam mit GetNextSym verwendet, um Date-nobjekte vom System abzufragen.

SetDataSearch

GetDataVal ermöglicht das Abrufen eines Wertes aus einem Datenob-jekt, das mit einer Zeichenfolgenvariablen angegeben wird, oder aus ei-nem Datenobjekt, das mit GetNextSym abgerufen wird.

GetDataVal

SetDataVal ermöglicht das Setzen eines Wertes für ein Datenobjekt,das mit einer Zeichenfolgenvariablen angegeben wird, oder von einemDatenobjekt, das mit GetNextSym abgerufen wird.

SetDataVal

SetAllDataVal ermöglicht das Festlegen eines neuen Wertes für alleDatenobjekte eines bestimmten Typs, die mit der angegebenen Gramma-tik übereinstimmen.

SetAllDataVal

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion, die für die Funktionalitätzum Suchen von Daten verwendet wird. Weitere Informationen finden Sie unterder jeweiligen Funktion im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungFunktion

GetNextSym (Get Next Symbol) wird gemeinsam mit SetDataSearchverwendet, um Datenobjekte vom System abzufragen.

GetNextSym

Anwendungshandbuch - Steuerungssoftware IRC5 253HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.3.2 RAPID-Komponenten

Page 26: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.3.3 Beispiele für die Funktionalität zum Suchen von Daten

Festlegen einer unbekannten VariablenIn diesem Beispiel wird gezeigt, wie der Wert einer Variablen festgelegt wird, wennder Name beim Programmieren nicht bekannt ist und nur in einer Zeichenfolgeangegeben wird.

VAR string my_string;

VAR num my_number;

VAR num new_value:=10;

my_string := "my_number";

!Set value to 10 for variable specified by my_string

SetDataVal my_string,new_value;

Zurücksetzen einer Gruppe von VariablenIn diesem Beispiel werden alle numerischen Variablen, die mit „my“ beginnen, auf0 zurückgesetzt.

VAR string my_string:="my.*";

VAR num zerovar:=0;

SetAllDataVal "num"\Object:=my_string,zerovar;

Auflisten/Festlegen bestimmter VariablenIn diesem Beispiel werden alle numerischen Variablen im Modul „mymod“, die mit„my“ beginnen, auf dem FlexPendant aufgelistet und dann auf 0 zurückgesetzt.

VAR datapos block;

VAR string name;

VAR num valuevar;

VAR num zerovar:=0;

!Search for all num variables starting with "my" in the module"mymod"

SetDataSearch "num"\Object:="my.*"\InMod:="mymod";

!Loop through the search result

WHILE GetNextSym(name,block) DO

!Read the value from each found variable

GetDataVal name\Block:=block,valuevar;

!Write name and value for each found variable

TPWrite name+" = "\Num:=valuevar;

!Set the value to 0 for each found variables

SetDataVal name\Block:=block,zerovar;

ENDWHILE

26 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.3.3 Beispiele für die Funktionalität zum Suchen von Daten

Page 27: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.4 Alias-E/A-Signale

2.1.4.1 Überblick

ZweckMithilfe der Alias-E/A-Funktionalität kann der Programmierer einen beliebigenNamen für ein Signal verwenden und diesen Namen mit einem konfiguriertenE/A-Signal verknüpfen.Dies bietet sich an, wenn ein RAPID-Programm in verschiedenen Systemenverwendet wird. Statt den Code neu zu schreiben, kann der im Programmverwendete Signalname unter Verwendung eines im neuen System vorhandenenSignalnamens als Aliasname definiert werden.

Enthaltene KomponentenDie Alias-E/A-Funktionalität besteht aus der Instruktion AliasIO.

Anwendungshandbuch - Steuerungssoftware IRC5 273HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.4.1 Überblick

Page 28: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.4.2 RAPID-Komponenten

DatentypenFür die Alias-E/A-Funktionalität sind keine RAPID-Datentypen vorhanden.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für dieAlias-E/A-Funktionalität verwendet wird. Weitere Informationen finden Sie unterder jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungInstruktion

AliasIO wird verwendet, um ein Signal eines beliebigen Typs mit einemAliasnamen zu definieren, oder um Signale in integrierten Taskmodulenzu verwenden. Der Aliasname wird mit einem konfigurierten E/A-Signalverknüpft.

AliasIO

Die Instruktion AliasIOmuss vor der Verwendung des eigentlichen Signalsausgeführt werden.

FunktionenFür die Alias-E/A-Funktionalität sind keine RAPID-Funktionen vorhanden.

28 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.4.2 RAPID-Komponenten

Page 29: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.4.3 Beispiel für Alias-E/A-Funktionalität

Zuweisen eines Aliasnamens zu einem SignalIn diesem Beispiel wird gezeigt, wie das digitale Ausgangssignal alias_do definiertwird, das mit dem konfigurierten digitalen E/A-Ausgangssignal config_doverbunden wird.Die Routine prog_start ist mit dem START-Ereignis verknüpft.Hierdurch wird sichergestellt, dass „alias_do“ im RAPID-Code verwendet werdenkann, obwohl kein konfiguriertes Signal mit diesem Namen vorhanden ist.

VAR signaldo alias_do;

PROC prog_start()

AliasIO config_do, alias_do;

ENDPROC

Anwendungshandbuch - Steuerungssoftware IRC5 293HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.4.3 Beispiel für Alias-E/A-Funktionalität

Page 30: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.5 Konfigurationsfunktionalität

2.1.5.1 Überblick

ZweckMithilfe der Konfigurationsfunktionalität kann der Programmierer in derBearbeitungszeit auf die Systemparameter zugreifen. Die Parameterwerte könnengelesen und bearbeitet werden. Die Steuerung kann neu gestartet werden, um dieneuen Parameterwerte zu übernehmen.

Enthaltene KomponentenDie Konfigurationsfunktionalität enthält die folgenden Instruktionen: ReadCfgData,WriteCfgData und WarmStart.

30 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.5.1 Überblick

Page 31: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.5.2 RAPID-Komponenten

DatentypenFür die Konfigurationsfunktionalität sind keine RAPID-Datentypen vorhanden.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für dieKonfigurationsfunktionalität verwendet wird. Weitere Informationen finden Sie unterder jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungInstruktion

Mit ReadCfgData wird ein Attribut eines benannten Systemparameters(Konfigurationsdaten) gelesen.

ReadCfgData

Mit WriteCfgDatawird ein Attribut eines benannten Systemparameters(Konfigurationsdaten) geschrieben.

WriteCfgData

WarmStartwird für einen Neustart der Steuerung zur Laufzeit verwendet.WarmStart

Dies bietet sich an, nachdem Systemparameter mit der InstruktionWriteCfgData geändert wurden.

FunktionenFür die Konfigurationsfunktionalität sind keine RAPID-Funktionen vorhanden.

Anwendungshandbuch - Steuerungssoftware IRC5 313HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.5.2 RAPID-Komponenten

Page 32: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.5.3 Beispiel für Konfigurationsfunktionalität

Konfiguration von SystemparameternIn diesem Beispiel wird der Systemparameter cal_offset für rob1_1 gelesen, um0,2 mm erhöht und dann zurückgeschrieben. Damit diese Änderung in Kraft tritt,wird die Steuerung neu gestartet.

VAR num old_offset;

VAR num new_offset;

ReadCfgData "/MOC/MOTOR_CALIB/rob1_1", "cal_offset",old_offset;

new_offset := old_offset + (0.2/1000);

WriteCfgData "/MOC/MOTOR_CALIB/rob1_1", "cal_offset",new_offset;

WarmStart;

32 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.5.3 Beispiel für Konfigurationsfunktionalität

Page 33: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.6 Stromausfallfunktionalität

2.1.6.1 Überblick

ZweckWenn der Roboter bei dem Stromausfall in der Ausführung einer Bahnbewegungbegriffen war, müssen möglicherweise zusätzliche Aktionen ausgeführt werden,wenn die Roboterbewegung fortgesetzt wird. Mit der Stromausfallfunktionalitätkönnen Sie feststellen, ob der Stromausfall während einer Bahnbewegungaufgetreten ist.

Hinweis

Weitere Informationen finden Sie in den Beschreibungen des Typs Signal SafeLevel in der Parametergruppe I/O System in TechnischesReferenzhandbuch - Systemparameter.

Enthaltene KomponentenDie Stromausfallfunktionalität enthält eine Funktion, die überprüft, ob eine Bahnunterbrochen wurde: PFRestart

Anwendungshandbuch - Steuerungssoftware IRC5 333HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.6.1 Überblick

Page 34: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.6.2 RAPID-Komponenten und Systemparameter

DatentypenFür die Stromausfallfunktionalität gibt es keine RAPID-Datentypen.

InstruktionenFür die Stromausfallfunktionalität gibt es keine RAPID-Instruktionen.

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion, die für dieStromausfallfunktionalität verwendet wird. Weitere Informationen finden Sie unterder jeweiligen Funktion im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungFunktion

Mit PFRestart (Power Failure Restart) wird überprüft, ob die Bahn bei ei-nem Stromausfall unterbrochen wurde. Wenn dies der Fall ist, müssenmöglicherweise bestimmte Aktionen ausgeführt werden. Die Funktionüberprüft die Bahn auf der aktuellen Ebene, auf der Basisebene oder aufder Interrupt-Ebene.

PFRestart

SystemparameterFür die Stromausfallfunktionalität sind keine Systemparameter vorhanden.Unabhängig davon, ob Optionen installiert sind, können Sie jedoch den ParameterStore signal at power fail verwenden.Weitere Informationen finden Sie im TechnischesReferenzhandbuch - Systemparameter.

34 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.6.2 RAPID-Komponenten und Systemparameter

Page 35: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.6.3 Beispiel für Stromausfallfunktionalität

Überprüfen auf BahnunterbrechungIn diesem Beispiel wird beim Fortsetzen der Arbeit nach einem Stromausfallüberprüft, ob der Stromausfall während einer Bahn (während der Bewegung desRoboters) aufgetreten ist.

!Test if path was interrupted

IF PFRestart() = TRUE THEN

SetDO do5,1;

ELSE

SetDO do5,0;

ENDIF

Anwendungshandbuch - Steuerungssoftware IRC5 353HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.6.3 Beispiel für Stromausfallfunktionalität

Page 36: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.7 Prozessunterstützungsfunktionalität

2.1.7.1 Überblick

ZweckDie Prozessunterstützungsfunktionalität stellt einige RAPID-Instruktionen bereit,die beim Erstellen von Prozessanwendungen von Nutzen sein können.Anwendungsbeispiele:

• Analoge Ausgangssignale, die in einer fortlaufenden Prozessanwendungverwendet werden, können als zur Geschwindigkeit des Roboter-TCPproportionale Signale festgelegt werden.

• Eine fortlaufende Prozessanwendung, die mit Programmstopp oder Not-Ausangehalten wird, kann an der Stelle fortgesetzt werden, an der sie angehaltenwurde.

Enthaltene KomponentenKomponenten der Prozessunterstützungsfunktionalität:

• Der Datentyp restartdata.• Instruktion zum Festlegen eines analogen Ausgangssignals: TriggSpeed.• Instruktionen, die in Verbindung mit einem Neustart verwendet werden:

TriggStopProc und StepBwdPath.

EinschränkungenDie Instruktion TriggSpeed kann nur verwendet werden, wenn dieBasisfunktionalität Fixed Position Events vorhanden ist.

36 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.7.1 Überblick

Page 37: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.7.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps, der für dieProzessunterstützungsfunktionalität verwendet wird. Weitere Informationen findenSie unter dem jeweiligen Datentyp im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

restartdata kann die vorher und nachher vorhandenen Werte angege-bener E/A-Signale (Prozesssignale) bei der Stoppsequenz der Roboter-bewegung enthalten.

restartdata

restartdata wird gemeinsam mit der Instruktion TriggStopProcverwendet, um die Daten für den Neustart nach dem Programmstoppoder Not-Aus selbst entwickelter Prozessinstruktionen beizubehalten.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für dieProzessunterstützungsfunktionalität verwendet wird. Weitere Informationen findenSie unter der jeweiligen Instruktion im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

Mit TriggSpeed wird definiert, dass ein analoges Ausgangssignal aufeinen der TCP-Geschwindigkeit proportionalen Wert gesetzt wird.

TriggSpeed

TriggSpeed kann nur gemeinsam mit der Option Fixed Position Eventsverwendet werden.

Mit TriggStopProcwerden die vorher und nachher vorhandenen Wertealler verwendeten Prozesssignale gespeichert.

TriggStopProc

Mit TriggStopProc und dem Datentyp restartdatawerden Daten fürden Neustart nach dem Programmstopp oder Not-Aus selbst entwickelterProzessinstruktionen beibehalten.

Mit StepBwdPath wird der TCP auf der Roboterbahn nach einer REST-ART-Ereignisroutine auf der Roboterbahn zurückbewegt.

StepBwdPath

FunktionenFür die Prozessunterstützungsfunktionalität sind keine RAPID-Funktionenvorhanden.

Anwendungshandbuch - Steuerungssoftware IRC5 373HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.7.2 RAPID-Komponenten

Page 38: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.7.3 Beispiele für die Prozessunterstützungsfunktionalität

Zur Geschwindigkeit proportionales SignalIn diesem Beispiel wird das analoge Ausgangssignal, das die Klebermenge steuert,als proportional zur Geschwindigkeit festgelegt.Jede Geschwindigkeitsverringerung des Roboters wird zeitlich so kompensiert,dass das analoge Ausgangssignal glue_ao 0,04 s vor derGeschwindigkeitsverringerung des TCP reagiert. Wenn ein Überlauf desberechneten Wertes für das logische analoge Ausgangssignal glue_ao erfolgt,wird das digitale Ausgangssignal glue_err gesetzt.

VAR triggdata glueflow;

!The glue flow is set to scale value 0.8 0.05 s before point p1

TriggSpeed glueflow, 0, 0.05, glue_ao, 0.8 \DipLag=:0.04,\ErrDO:=glue_err;

TriggL p1, v500, glueflow, z50, gun1;

!The glue flow is set to scale value 1 10 mm plus 0.05 s

! before point p2

TriggSpeed glueflow, 10, 0.05, glue_ao, 1;

TriggL p2, v500, glueflow, z10, gun1;

!The glue flow ends (scale value 0) 0.05 s before point p3

TriggSpeed glueflow, 0, 0.05, glue_ao, 0;

TriggL p3, v500, glueflow, z50, gun1;

Tipp

Beachten Sie, dass mit TriggSpeed und dem NOSTEPIN-Routinenkonzept auchselbst entwickelte Prozessinstruktionen erstellt werden können.

Wiederherstellen von Signalen nach dem Anhalten der AusführungIn diesem Beispiel wird nach einem Programmstopp oder Not-Aus der Wert einesAusgangssignals wiederhergestellt.Die Prozedur supervise ist als NETZ_EIN-Ereignisroutine und resume_signalsals NEUSTART-Ereignisroutine definiert.

PERS restartdata myproc_data :=[FALSE,FALSE,0,0,0,0,0,0,0,0,0,0,0,0,0];

...

PROC myproc()

MoveJ p1, vmax, fine, my_gun;

SetDO do_close_gun, 1;

MoveL p2,v1000,z50,my_gun;

MoveL p3,v1000,fine,my_gun;

SetDO do_close_gun, 0;

ENDPROC

...

Fortsetzung auf nächster Seite38 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.7.3 Beispiele für die Prozessunterstützungsfunktionalität

Page 39: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PROC supervise()

TriggStopProc myproc_data \DO1:=do_close_gun, do_close_gun;

ENDPROC

PROC resume_signals()

IF myproc_data.preshadowval = 1 THEN

SetDO do_close_gun,1;

ELSE

SetDO do_close_gun,0;

ENDIF

ENDPROC

Zurückbewegen des TCPIn diesem Beispiel wird der TCP in 1 Sekunden auf derselben Bahn wie vor demNeustart um 30 mm zurückbewegt.Die Prozedur move_backward ist als NEUSTART-Ereignisroutine definiert.

PROC move_backward()

StepBwdPath 30, 1;

ENDPROC

Anwendungshandbuch - Steuerungssoftware IRC5 393HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.7.3 Beispiele für die Prozessunterstützungsfunktionalität

Fortsetzung

Page 40: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.8 Interrupt-Funktionalität

2.1.8.1 Überblick

ZweckDie Interrupt-Funktionalität in Advanced RAPID verfügt außer den in RAPID immervorhandenen Funktionen über einige zusätzliche Funktionen. Weitere Informationenüber die grundlegende Interrupt-Funktionalität finden Sie im TechnischesReferenzhandbuch - RAPID Overview.Beispiele für Interrupt-Anwendungen, die von Advanced RAPID unterstützt werden:

• Generieren eines Interrupts, wenn sich der Wert einer persistenten Variablenändert

• Generieren eines Interrupts, wenn ein Fehler auftritt, und Ermitteln vonInformationen über den Fehler

Enthaltene KomponentenKomponenten der Interrupt-Funktionalität in Advanced RAPID:

• Datentypen für Fehler-Interrupts: trapdata, errdomain und errtype.• Instruktionen zum Generieren von Interrupts: IPers und IError.• Instruktionen zum Ermitteln von Informationen über einen Fehler-Interrupt:

GetTrapData und ReadErrData.

40 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.8.1 Überblick

Page 41: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.8.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps in derInterrupt-Funktionalität. Weitere Informationen finden Sie unter dem jeweiligenDatentyp im Technisches Referenzhandbuch - RAPID Instruktionen, Funktionenund Datentypen.

BeschreibungDatentyp

trapdata stellt die internen Informationen über den Interrupt dar, der dieAusführung der aktuellen Interrupt-Routine verursacht hat.

trapdata

Mit errdomainwird eine Fehlerdomäne angegeben. Je nach Art des Fehlerswird dieser in unterschiedlichen Domänen protokolliert.

errdomain

Mit errtype wird ein Fehlertyp (Fehler, Warnung, Statusänderung) ange-geben.

errtype

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in derInterrupt-Funktionalität. Weitere Informationen finden Sie unter der jeweiligenInstruktion im Technisches Referenzhandbuch - RAPID Instruktionen, Funktionenund Datentypen.

BeschreibungInstruktion

Mit IPers (Interrupt Persistent) wird angefordert, dass bei jeder Änderungdes Wertes einer persistenten Variablen ein Interrupt generiert wird.

IPers

Mit IError (Interrupt Errors) wird angefordert, dass bei jedem Auftreteneines Fehlers ein Interrupt generiert wird.

IError

GetTrapData wird in mit der Instruktion IError generierten Interrupt-Routinen verwendet. GetTrapData ruft alle Informationen über den Interruptab, der die Ausführung der Interrupt-Routine verursacht hat.

GetTrapData

ReadErrDatawird in Interrupt-Routinen verwendet, die mit der InstruktionIError generiert werden. ReadErrData liest die mit GetTrapData abge-rufenen Informationen.

ReadErrData

Mit ErrRaise wird ein Fehler im Programm ausgelöst und die Fehlerbe-handlung der Routine aufgerufen. ErrRaise kann in der Fehlerbehandlungauch zum Übergeben des aktuellen Fehlers an die Fehlerbehandlung deraufrufenden Routine verwendet werden.

ErrRaise

FunktionenFür die Interrupt-Funktionalität sind keine RAPID-Funktionen vorhanden.

Anwendungshandbuch - Steuerungssoftware IRC5 413HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.8.2 RAPID-Komponenten

Page 42: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.8.3 Beispiele für Interrupt-Funktionalität

Interrupt bei Änderungen persistenter VariablenIn diesem Beispiel wird eine Interrupt-Routine aufgerufen, wenn sich der Wert derpersistenten Variablen counter ändert.

VAR intnum int1;

PERS num counter := 0;

PROC main()

CONNECT int1 WITH iroutine1;

IPers counter, int1;

...

counter := counter + 1;

...

Idelete int1;

ENDPROC

TRAP iroutine1

TPWrite "Current value of counter = " \Num:=counter;

ENDTRAP

Fehler-InterruptIn diesem Beispiel wird eine Interrupt-Routine aufgerufen, wenn ein Fehler auftritt.Die Interrupt-Routine bestimmt die Fehlerdomäne sowie die Fehlernummer undübermittelt diese Informationen über Ausgangssignale.

VAR intnum err_interrupt;

VAR trapdata err_data;

VAR errdomain err_domain;

VAR num err_number;

VAR errtype err_type;

PROC main()

CONNECT err_interrupt WITH trap_err;

IError COMMON_ERR, TYPE_ERR, err_interrupt;

...

a:=3;

b:=0;

c:=a/b;

...

IDelete err_interrupt;

ENDPROC

TRAP trap_err

GetTrapData err_data;

ReadErrData err_data, err_domain, err_number, err_type;

SetGO go_err1, err_domain;

SetGO go_err2, err_number;

ENDTRAP

42 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.8.3 Beispiele für Interrupt-Funktionalität

Page 43: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.9 Benutzermeldungsfunktionalität

2.1.9.1 Überblick

ZweckMit der Benutzermeldungsfunktionalität werden Ereignisnummern eingerichtet unddie Behandlung von Ereignismeldungen und anderen Texten unterstützt, die aufder Benutzeroberfläche dargestellt werden.Anwendungsbeispiele:

• Abrufen von Benutzermeldungen aus einer Texttabellendatei, umAktualisierungen und Übersetzungen zu vereinfachen

• Hinzufügen von Systemfehlernummern für die Verwendung inFehlerbehebungskonstanten in RAISE-Instruktionen und zum Überprüfen inFehlerbehandlungsroutinen

Enthaltene KomponentenKomponenten der Benutzermeldungsfunktionalität:

• Instruktion TextTabInstall für die Handhabung von Texttabellen.• Funktionen für die Handhabung von Texttabellen: TextTabFreeToUse,

TextTabGet und TextGet.• Instruktion für die Handhabung von Fehlernummern: BookErrNo.

Anwendungshandbuch - Steuerungssoftware IRC5 433HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.9.1 Überblick

Page 44: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.9.2 RAPID-Komponenten

DatentypenFür die Benutzermeldungsfunktionalität sind keine RAPID-Datentypen vorhanden.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für dieBenutzermeldungsfunktionalität verwendet wird. Weitere Informationen finden Sieunter der jeweiligen Instruktion im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

Mit BookErrNo wird eine neue RAPID-Systemfehlernummer definiert.BookErrNo

Mit TextTabInstall wird eine Texttabelle im System installiert.TextTabInstall

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion, die für dieBenutzermeldungsfunktionalität verwendet wird. Weitere Informationen finden Sieunter der jeweiligen Funktion im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungFunktion

Mit TextTabFreeToUse wird überprüft, ob der Texttabellenname ver-wendet werden kann (nicht bereits im System installiert ist).

TextTabFreeToUse

Mit TextTabGetwird die Nummer einer benutzerdefinierten Texttabelleabgerufen.

TextTabGet

Mit TextGetwird eine Zeichenfolge aus den Systemtexttabellen abge-rufen.

TextGet

44 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.9.2 RAPID-Komponenten

Page 45: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.9.3 Beispiele für Benutzermeldungsfunktionalität

Vergeben einer FehlernummerIn diesem Beispiel wird gezeigt, wie eine neue Fehlernummer hinzugefügt wird.

VAR intnum sig1int;

!Introduce a new error number in a glue system.

!Note: The new error variable must be declared with the

! initial value -1

VAR errnum ERR_GLUEFLOW := -1;

PROC main()

!Book the new RAPID system error number

BookErrNo ERR_GLUEFLOW;

!Raise glue flow error if di1=1

IF di1=1 THEN

RAISE ERR_GLUEFLOW;

ENDIF

ENDPROC

!Error handling

ERROR

IF ERRNO = ERR_GLUEFLOW THEN

ErrWrite "Glue error", "There is a problem with the glue flow";

ENDIF

Fehlermeldung aus TexttabellendateiIn diesem Beispiel wird gezeigt, wie Benutzermeldungen aus einer Texttabellendateiabgerufen werden.In der Datei HOME:/language/en/text_file.xml befindet sich die Texttabelletext_table_name. Diese Tabelle enthält Fehlermeldungen in Englisch.Die Prozedur install_text wird beim Eintreten des Ereignisses POWER ONausgeführt. Bei der ersten Ausführung wird die Texttabellendatei text_file.xmlinstalliert. Bei der nächsten Ausführung gibt die Funktion TextTabFreeToUse

den Wert FALSE zurück und die Installation wird nicht wiederholt.Anschließend wird die Tabelle zum Abrufen von Meldungen für dieBenutzeroberfläche verwendet.

VAR num text_res_no;

PROC install_text()

!Test if text_table_name is already installed

IF TextTabFreeToUse("text_table_name") THEN

!Install the table from the file HOME:/language/en/text_file.xml

TextTabInstall "HOME:/language/en/text_file.xml";

ENDIF

!Assign the text table number for text_table_name to text_res_no

text_res_no := TextTabGet("text_table_name");

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 453HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.9.3 Beispiele für Benutzermeldungsfunktionalität

Page 46: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

ENDPROC

...

!Write error message with two strings from the table text_res_no

ErrWrite TextGet(text_res_no, 1), TextGet(text_res_no, 2);

46 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.9.3 Beispiele für BenutzermeldungsfunktionalitätFortsetzung

Page 47: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.9.4 Texttabellendateien

ÜberblickTexttabellen werden in einer XML-Datei gespeichert (jede Datei kann eine Tabellein einer Sprache enthalten). Die Tabelle kann eine beliebige Anzahl vonZeichenfolgen enthalten.

Erläuterung der TexttabellendateiIm Folgenden werden die in Texttabellendateien verwendeten XML-Tags undArgumente beschrieben.

BeschreibungArgumentTag

Stellt eine Texttabelle dar. Eine Datei kann nur eine Instanz vonResource enthalten.

Resource

Der Name der Texttabelle. Wird von der RAPID-InstruktionTextTabGet verwendet.

Name

Sprachcode für die Sprache der Zeichenfolgen.LanguageGegenwärtig wird dieses Argument nicht verwendet. Die RAPID-InstruktionTextTabInstall kann nur englische Texte behandeln.

Stellt eine Zeichenfolge dar.Text

Die Nummer der Zeichenfolge in der Tabelle.Name

Die zu verwendende Zeichenfolge.Value

Kommentare zur Zeichenfolge und ihrer Verwendung.Comment

Beispiel für Texttabellendatei<?xml version="1.0" encoding="iso-8859-1" ?>

<Resource Name="text_table_name" Language="en">

<Text Name="1">

<Value>This is a text that is </Value>

<Comment>The first part of my text</Comment>

</Text>

<Text Name="2">

<Value>displayed in the user interface.</Value>

<Comment>The second part of my text</Comment>

</Text>

</Resource>

Anwendungshandbuch - Steuerungssoftware IRC5 473HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.9.4 Texttabellendateien

Page 48: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.10 RAPID-Unterstützungsfunktionalität

2.1.10.1 Überblick

ZweckDie RAPID-Unterstützungsfunktionalität besteht aus verschiedenen Routinen, diesich für einen erfahrenen Roboterprogrammierer als nützlich erweisen können.Anwendungsbeispiele:

• Aktivieren eines neuen Werkzeugs, Werkobjekts oder einer neuen Nutzlast.• Ermitteln, welches Argument außerhalb der gegenwärtigen Routine

aufgerufen wird• Überprüfen, ob der Programmzeiger während des letzten Programmstopps

verschoben wurde

Enthaltene KomponentenKomponenten der RAPID-Unterstützungsfunktionalität:

• Instruktion zum Aktivieren angegebener Systemdaten: SetSysData.• Funktion, die den Namen des ursprünglichen Datenobjekts abruft: ArgName.• Funktion, die Informationen über die Bewegung des Programmzeigers

zurückgibt: IsStopStateEvent.

48 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.10.1 Überblick

Page 49: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.10.2 RAPID-Komponenten

DatentypenFür die RAPID-Unterstützungsfunktionalität sind keine Datentypen vorhanden.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für dieRAPID-Unterstützungsfunktionalität verwendet wird. Weitere Informationen findenSie unter der jeweiligen Instruktion im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

SetSysData aktiviert das (oder ändert das gegenwärtig aktive) Werk-zeug, Werkobjekt oder die Nutzlast für den Roboter.

SetSysData

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion, die für dieRAPID-Unterstützungsfunktionalität verwendet wird. Weitere Informationen findenSie unter der jeweiligen Funktion im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungFunktion

Mit ArgName wird der Name des ursprünglichen Datenobjekts für dasaktuelle Argument oder die aktuellen Daten abgerufen.

ArgName

IsStopStateEvent ruft Informationen über die Bewegung des Pro-grammzeigers ab.

IsStopStateEvent

Anwendungshandbuch - Steuerungssoftware IRC5 493HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.10.2 RAPID-Komponenten

Page 50: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.1.10.3 Beispiele für die RAPID-Unterstützungsfunktionalität

Aktivieren eines WerkzeugsIn diesem Beispiel wird gezeigt, wie ein bekanntes Werkzeug aktiviert wird:

!Activate tool1

SetSysData tool1;

In diesem Beispiel wird gezeigt, wie ein Werkzeug aktiviert wird, wenn der Namedes Werkzeugs nur in einer Zeichenfolge verfügbar ist:

VAR string tool_string := "tool2";

!Activate the tool specified in tool_string

SetSysData tool0 \ObjectName := tool_string;

Abrufen eines ArgumentnamensIn diesem Beispiel wird der ursprüngliche Name von par1 abgerufen. Die Ausgabelautet „Argument name my_nbr with value 5“.

VAR num my_nbr :=5;

proc1 my_nbr;

PROC proc1 (num par1)

VAR string name;

name:=ArgName(par1);

TPWrite "Argument name "+name+" with value " \Num:=par1;

ENDPROC

Überprüfen, ob der Programmzeiger verschoben wurdeIn diesem Beispiel wird überprüft, ob der Programmzeiger während des letztenProgrammstopps verschoben wurde.

IF IsStopStateEvent (\PPMoved) = TRUE THEN

TPWrite "The program pointer has been moved.";

ENDIF

50 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.1.10.3 Beispiele für die RAPID-Unterstützungsfunktionalität

Page 51: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.2 Analog Signal Interrupt

2.2.1 Einführung in Analog Signal Interrupt

ZweckMit Analog Signal Interrupt wird ein analoges Signal überwacht und beim Erreicheneines angegebenen Wertes ein Interrupt generiert.Analog Signal Interrupt ist schneller, leichter zu implementieren und erfordertweniger Computerkapazität als Abrufmethoden.Anwendungsbeispiele:

• Verkürzen der Zyklusdauer mit besserer Zeitsteuerung (Starten derRoboterbewegung genau zu dem Zeitpunkt, wenn ein Signal denangegebenen Wert erreicht, statt auf den Abruf zu warten).

• Anzeigen einer Warn- oder Fehlermeldung, wenn ein Signalwert außerhalbdes zulässigen Bereichs liegt.

• Anhalten des Roboters, wenn ein Signalwert eine kritische Höhe erreicht.

Enthaltene KomponentenDie RobotWare-Basisfunktionalität Analog Signal Interrupt bietet Ihnen Zugriff auffolgende Instruktionen:

• ISignalAI

• ISignalAO

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung von Analog Signal Interrupt.Ein ausführlicheres Beispiel hierfür finden Sie unter Codebeispiel auf Seite 53.

1 Erstellen Sie eine Interrupt-Routine.2 Verbinden Sie die Interrupt-Routine mithilfe der Instruktion CONNECT.3 Definieren Sie die Interrupt-Bedingungen mit der Instruktion ISignalAI

oder ISignalAO.

EinschränkungenAnaloge Signale können nur verwendet werden, wenn Sie über eine industrielleNetzwerkoption (z. B. DeviceNet oder PROFIBUS) verfügen.

Anwendungshandbuch - Steuerungssoftware IRC5 513HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.2.1 Einführung in Analog Signal Interrupt

Page 52: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.2.2 RAPID-Komponenten

DatentypenAnalog Signal Interrupt enthält keine Datentypen.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Analog SignalInterrupt. Weitere Informationen finden Sie unter der jeweiligen Instruktion imTechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen undDatentypen.

BeschreibungInstruktion

Definiert die Werte eines analogen Eingangssignals, für die eine Interrupt-Routine aufgerufen werden soll.

ISignalAI

Es kann festgelegt werden, dass ein Interrupt erfolgt, wenn der Signalwertüber oder unter einem bestimmten Wert oder innerhalb oder außerhalb einesbestimmten Bereichs liegt. Außerdem kann angegeben werden, ob der In-terrupt einmal oder mehrfach erfolgen soll.

Definiert die Werte eines analogen Ausgangssignals, für die eine Interrupt-Routine aufgerufen werden soll.

ISignalAO

Es kann festgelegt werden, dass ein Interrupt erfolgt, wenn der Signalwertüber oder unter einem bestimmten Wert oder innerhalb oder außerhalb einesbestimmten Bereichs liegt. Außerdem kann angegeben werden, ob der In-terrupt einmal oder mehrfach erfolgen soll.

FunktionenAnalog Signal Interrupt enthält RAPID-Funktionen:

52 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.2.2 RAPID-Komponenten

Page 53: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.2.3 Codebeispiel

TemperaturüberwachungIn diesem Beispiel ist ein Temperatursensor mit dem Signal ai1 verbunden.Es wird festgelegt, dass bei jeder Erhöhung der Temperatur um 0,5 Grad im Bereichvon 120-130 Grad eine Interrupt-Routine mit einer Warnung ausgeführt wird. Füreine weitere Interrupt-Routine, die den Roboter anhält, wird festgelegt, dass ihreAusführung erfolgt, sobald die Temperatur über 130 Grad angestiegen ist.

VAR intnum ai1_warning;

VAR intnum ai1_exeeded;

PROC main()

CONNECT ai1_warning WITH temp_warning;

CONNECT ai1_exeeded WITH temp_exeeded;

ISignalAI ai1, AIO_BETWEEN, 130, 120, 0.5, \DPos, ai1_warning;

ISignalAI \Single, ai1, AIO_ABOVE_HIGH, 130, 120, 0, ai1_exeeded;

...

IDelete ai1_warning;

IDelete ai1_exeeded;

ENDPROC

TRAP temp_warning

TPWrite "Warning: Temperature is "\Num:=ai1;

ENDTRAP

TRAP temp_exeeded

TPWrite "Temperature is too high";

Stop;

ENDTRAP

Anwendungshandbuch - Steuerungssoftware IRC5 533HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.2.3 Codebeispiel

Page 54: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.3 Cyclic bool

2.3.1 Zyklisch bewertete logische Bedingungen

ZweckDer Zweck der zyklisch bewerteten logischen Bedingungen, Cyclic bool, ist es,einem RAPID Programmierer zu ermöglichen, eine logische Bedingung mit einerpersistenten booleschen Variablen zu verbinden. Die logische Bedingungen wirdalle 12 ms bewertet, und das Ergebnis wird in die verbundene Variable geschrieben.

Enthaltene KomponentenDie RobotWare Basisfunktion Cyclic bool umfasst:

• Anweisungen für das Setup Cyclic bool: SetupCyclicBool,RemoveCyclicBool, RemoveAllCyclicBool

• Funktionen für das Abrufen des Status von Cyclic bool:GetMaxNumberOfCyclicBool, GetNextCyclicBool,GetNumberOfCyclicBool.

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung vonCyclic bool. AusführlichereBeispiele hierfür finden Sie unter Cyclic bool Beispiele auf Seite 57.

1 Deklarieren Sie eine persistente boolesche Variable, z.B.:PERS bool cyclicbool1;

2 Verbinden Sie eine logische Bedingung mit der Variablen, z.B.:SetupCyclicBool cyclicbool1, doSafetyIsOk = 1;

3 Verwenden Sie die Variable beim Programmieren, z.B.:WHILE cyclicbool1 = 1 DO

! Do what’s only allowed when all safety is ok

...

ENDWHILE

4 Entfernen Sie die Verbindung, wenn sie nicht länger nützlich ist, z.B.:RemoveCyclicBool cyclicbool1;

Neustart- und ZurücksetzverhaltenIn der untenstehenden Tabelle wird die Funktionalität von Cyclic bool beschrieben,wenn der Programmzeiger bewegt wird oder wenn die Steuerung neu gestartetwird.

BeschreibungAktion

Das Verhalten, wenn der Programmzeiger auf main gesetzt wird,ist konfigurierbar, siehe Konfiguration auf Seite 55.

Programmzeiger aufmain

Dies hat keine Auswirkung.Neustart oder Strom-ausfall Alle verbundenen Cyclic bool-Bedingungen verbleiben und die

Auswertung wird sofort neu gestartet.

Fortsetzung auf nächster Seite54 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.3.1 Zyklisch bewertete logische Bedingungen

Page 55: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungAktion

Dadurch werden alle verbundenenCyclic bool-Bedingungen entfernt.RAPID zurücksetzen

System zurücksetzen

KonfigurationDas folgende Verhalten der Cyclic bool-Funktionalität kann konfiguriert werden:

BeschreibungParameter

Es ist möglich, zu konfigurieren, ob die zyklisch ausgewerteten logi-schen Bedingungen entfernt werden sollen oder nicht, wenn derProgrammzeiger auf main gesetzt wird.

• On – entfernen.• Off – nicht entfernen (Standardverhalten).

RemoveAtPpToMain

Es ist möglich, zu konfigurieren, welcher Fehlercode verwendetwerden soll, wenn die Auswertung einer Cyclic bool fehlschlägt.

• SysStopError i – RAPID-Abarbeitung anhalten und ein Fehler-protokoll erstellen (Standardverhalten).

• Warning – ein Warnungsprotokoll erstellen.• None – nichts tun.

ErrorMode

Es ist möglich, zu konfigurieren, ob eine ausgefallene Cyclic boolwiederhergestellt werden soll oder nicht.

• On – versuchen, die Auswertung einer ausgefallenen Cyclicbool wiederherzustellen (Standardverhalten).

• Off – nicht versuchen, die Auswertung einer Cyclic bool wie-derherzustellen.

RecoveryMode

i Fehlermodus SysStopError kann nur mit RecoveryMode - "On" kombiniert werden.Weitere Informationen finden Sie unter Systemparameter auf Seite 60.

Syntax

SetupCyclicBool Flag Cond [\Signal]

Flag muss vom• Datentyp: bool

- Objekttyp: PERS oder TASK PERS sein.Cond muss ein bool Ausdruck sein, der bestehen kann aus:

• Datentypen num, dnum und bool.- Objekttyp: PERS, TASK PERS, oder CONST

• Datentypen: signaldi, signaldo oder physische DI und DO- Objekttyp: VAR

• Operanden: 'NOT', 'AND', 'OR', 'XOR', '=', '(', ')'\Signal muss vom

• Objekttyp: signaldo

RemoveCyclicBool Flag

Flag muss vom• Datentyp: bool

- Objekttyp: PERS oder TASK PERS sein.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 553HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.3.1 Zyklisch bewertete logische Bedingungen

Fortsetzung

Page 56: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Einschränkungen• Aufzeichnungen und Bereiche sind in der logischen Bedingung nicht erlaubt.• Maximal 60 Bedingungen können gleichzeitig verbunden sein.• Jede PERS num- oder dnum-, CONST num- oder dnum- oder literale num- oder

dnum-Wert, der in einer Bedingung verwendet wird, muss vom Typ Ganzzahlsein. Die Verwendung eines Dezimalwerts führt zu einem schwerwiegendenFehler.

56 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.3.1 Zyklisch bewertete logische BedingungenFortsetzung

Page 57: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.3.2 Cyclic bool Beispiele

Verwendung von digitalen Eingangs- und Ausgangssignalen! Wait until all signals are set

PERS bool cyclicbool1 := FALSE;

PROC main()

SetupCyclicBool cyclicbool1, di1=1 AND do2=1;

WaitUntil cyclicbool1=TRUE;

! All is ok

...

! Remove connection when no longer in use

RemoveCyclicBool cyclicbool1;

ENDPROC

Verwendung von boolVariablen! Wait until all flags are TRUE

PERS bool cyclicbool1 := FALSE;

TASK PERS bool flag1 := FALSE;

PERS bool flag2 := FALSE;

PROC main()

SetupCyclicBool cyclicbool1, flag1=TRUE AND flag2=TRUE;

WaitUntil cyclicbool1=TRUE;

! All is ok

...

! Remove connection when no longer in use

RemoveCyclicBool cyclicbool1;

ENDPROC

Verwendung von num und dnum Variablen! Wait until all conditions are met

PERS bool cyclicbool1 := FALSE;

PERS bool cyclicbool2 := FALSE;

PERS num num1 := 0;

PERS dnum1 := 0;

PROC main()

SetupCyclicBool cyclicbool1, num1=7 OR dnum1=10000000;

SetupCyclicBool cyclicbool2, num1=8 OR dnum1=11000000;

WaitUntil cyclicbool1=TRUE;

...

WaitUntil cyclicbool2=TRUE;

...

! Remove all connections when no longer in use

RemoveAllCyclicBool;

ENDPROC

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 573HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.3.2 Cyclic bool Beispiele

Page 58: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Verwendung von aliasVariablen! Wait until all conditions are met

ALIAS bool aliasBool;

ALIAS num aliasNum;

ALIAS dnum aliasDnum;

PERS bool cyclicbool1 := FALSE;

PERS aliasBool flag1 := FALSE;

PERS aliasNum num1 := 0;

PERS aliasDnum dnum1 := 0;

PROC main()

SetupCyclicBool cyclicbool1, flag1=TRUE AND (num1=7 ORdnum1=10000000);

WaitUntil cyclicbool1=TRUE;

! All is ok

...

! Remove connection when no longer in use

RemoveCyclicBool cyclicbool1;

ENDPROC

Verwendung von benutzerdefinierten Konstanten zum Vergleich! Wait until all conditions are met

PERS bool cyclicbool1;

PERS bool flag1 := FALSE;

PERS num num1 := 0;

PERS dnum dnum1 := 0;

CONST bool MYTRUE := TRUE;

CONST num NUMLIMIT := 10;

CONST dnum DNUMLIMIT := 10000000;

PROC main()

SetupCyclicBool cyclicbool1, flag1=MYTRUE AND num1=NUMLIMIT ANDdnum1=DNUMLIMIT;

WaitUntil cyclicbool1=TRUE;

! All is ok

...

! Remove connection when no longer in use

RemoveCyclicBool cyclicbool1;

ENDPROC

Fortsetzung auf nächster Seite58 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.3.2 Cyclic bool BeispieleFortsetzung

Page 59: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Übergabe von Argumenten nach ReferenzWenn die Anweisung SetupCyclicBool innerhalb eines aufgerufenen Verfahrensverwendet wird, ist es möglich, Bedingungen als Argumente an dieses Verfahrenzu übergeben.Verwendung von Bedingungen durch Referenzarbeiten übergeben nur fürSetupCyclicBool. Bedingungen, übergeben durch Referenz haben dieselbenEinschränkungen wie Bedingungen für SetupCyclicBool.Diese Funktionalität arbeitet unabhängig davon, ob die Module Nostepin sindoder andere Modulattribute haben.

MODULE MainModule

CONST robtarget p10 := [[600,500,225.3], [1,0,0,0], [1,1,0,0],[11,12.3,9E9,9E9,9E9,9E9]];

PERS bool m1;

PERS bool Flag2 := FALSE;

PROC main()

! The Expression (di_1 = 1) OR Flag2 = TRUE shall be

! used by SetupCyclicBool

my_routine (di_1 = 1) OR Flag2 = TRUE;

ENDPROC

PROC my_routine(bool X)

! It is possible to pass arguments between several procedures

MySetCyclicBool X;

ENDPROC

PROC MySetCyclicBool (bool Y)

RemoveCyclicBool m1;

! Only SetupCyclicBool can pass arguments

SetupCyclicBool m1, Y;

! If conditions passed by reference shall be used by any other

! instruction, the condition must be setup with SetupCyclicBool

! before it can be used.

WaitUntil m1;

MoveL p10, v1000, z30, tool2;

ENDPROC

ENDMODULE

Anwendungshandbuch - Steuerungssoftware IRC5 593HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.3.2 Cyclic bool Beispiele

Fortsetzung

Page 60: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.3.3 Systemparameter

Über die SystemparameterDies ist eine kurze Beschreibung der Systemparameter, die von Cyclic boolverwendet werden. Weitere Informationen über die Parameter finden Sie unterTechnisches Referenzhandbuch - Systemparameter.

Typ Cyclic bool settingsDie Systemparameter, die von Cyclic bool verwendet werden, gehören zum TypCyclic bool settings in der Parametergruppe Controller.

BeschreibungParameter

Es kann nur eine Instanz jedes zulässigen Werts geben, wasein Maximum von drei Instanzen im System bedeutet. Alledrei Instanzen werden im System installiert (Standard) undkönnen nicht entfernt werden.

• RemoveAtPpToMain• ErrorMode• RecoveryMode

Name

Der Aktionswert RemoveAtPpToMain wird verwendet, umzu konfigurieren, ob eine verbundene Cyclic bool entferntwerden soll oder nicht, wenn der Programmzeiger auf Maingesetzt wird.

RemoveAtPpToMain

Der Aktionswert ErrorMode wird verwendet, um zu konfigu-rieren, welcher Fehlermodus verwendet werden soll, wenndie Auswertung fehlschlägt.

ErrorMode

Der Aktionswert RecoveryMode wird verwendet, um zukonfigurieren, welcher Fehlerbehebungsmodus verwendetwerden soll, wenn die Auswertung fehlschlägt.

RecoveryMode

60 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.3.3 Systemparameter

Page 61: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.3.4 RAPID-Komponenten

Informationen zu den RAPID-KomponentenDies ist ein Überblick über alle RAPID Anweisungen, Funktionen und Datentypenin Cyclic bool.Weitere Informationen finden Sie unter Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen

Instruktionen

BeschreibungInstruktion

SetupCyclicBool verbindet eine logische Bedingung mit einerbooleschen Variablen.

SetupCyclicBool

RemoveCyclicBool entfernt eine spezifisch verbundene logi-sche Bedingung.

RemoveCyclicBool

RemoveAllCyclicBool entfernt alle logischen Verbindungen.RemoveAllCyclicBool

Funktionen

BeschreibungFunktion

GetMaxNumberOfCyclicBool ruft die maximale Anzahlder zyklisch bewerteten logischen Bedingungen ab, diegleichzeitig verbunden werden können.

GetMaxNumberOfCyclicBool

GetNextCyclicBool ruft den Namen der verbundenenzyklisch bewerteten logischen Bedingungen ab.

GetNextCyclicBool

GetNumberOfCyclicBool ruft die Anzahl der verbun-denen zyklisch bewerteten logischen Bedingungen ab.

GetNumberOfCyclicBool

IsCyclicBool wird verwendet, um zu testen, ob einepersistente boolesche Variable eine Cyclic bool ist odernicht, das heißt, ob eine logische Bedingung durch dieInstruktion SetupCyclicBool mit der persistentenbooleschen Variable verbunden wurde.

IsCyclicBool

DatentypenCyclic bool enthält keine Datentypen.

Anwendungshandbuch - Steuerungssoftware IRC5 613HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.3.4 RAPID-Komponenten

Page 62: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4 Electronically Linked Motors

2.4.1 Übersicht

BeschreibungElectronically Linked Motors nimmt eine Master-/Folgeachsenkonfiguration derMotoren (zum Beispiel zwei zusätzliche Achsen) vor. Die Folgeachse folgt derMasterachse kontinuierlich in Bezug auf Position, Geschwindigkeit undBeschleunigung.Für die steife mechanische Verbindung zwischen den Master- und Folgeachsenkann die Drehmomentfolger-Funktion verwendet werden. Statt genau die gleichePosition für Master- und Folgeachse einzustellen, wird das Drehmoment zwischenden Achsen verteilt. Je nach Spiel und mechanischer Fehlausrichtung tritt einkleiner Positionsfehler zwischen Master- und Folgeachse auf.

ZweckDer Hauptzweck von Electronically Linked Motors ist es, die Antriebswellen vonPortalmaschinen zu ersetzen, aber die Basisfunktionalität kann auch zur Steuerungjeder anderen Motorengruppe verwendet werden.

Enthaltene KomponentenDie RobotWare-Basisfunktionalität Electronically Linked Motors bietet IhnenFolgendes:

• Dienstprogramm zum Definieren verbundener Motorengruppen und zumKürzen der Achsenpositionen

• Systemparameter, die verwendet werden, um eine Folgeachse zukonfigurieren

Grundlegende MethodeDies ist die allgemeine Methode zum Einrichten von Electronically Linked Motors.Eine ausführlichere Beschreibung zur Vorgehensweise finden Sie imentsprechenden Abschnitt.

1 Konfigurieren Sie die zusätzlichen Achsen als mechanische Einheit. SieheAnwendungshandbuch - Zusätzliche Achsen und Standalone-Steuerung.

2 Konfigurieren Sie die Toleranzgrenzen in den Systemparametern, in denTypen Linked M Process, Process und Joint.

3 Starten Sie die Steuerung neu, damit die Änderungen wirksam werden.4 Stellen Sie die Werte auf Datenvariablen ein, indem Sie die verbundene

Motorengruppe definieren und die Folge- und Masterachsen verbinden.5 Verwenden Sie das Dienstprogramm, um Positionen zu kürzen oder die

Folgeachse nach einem Positionsfehler zurückzusetzen.

Fortsetzung auf nächster Seite62 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.1 Übersicht

Page 63: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

EinschränkungenEs können bis zu 5 Folgeachsen vorhanden sein. Die Folgeachsen können sokonfiguriert werden, dass jede einer Masterachse folgt oder dass mehrereFolgeachsen einer Masterachse folgen. Die Gesamtzahl der Folgeachsen kannjedoch nicht mehr als 5 betragen.Die Folgeachse kann kein ABB-Roboter (IRB-Roboter) sein. Die Masterachse kannentweder eine zusätzliche Achse oder eine Roboterachse sein.Die Drehmomentfolger-Funktion kann nur verwendet werden, wenn die Folgeachsemit dem gleichen Antriebsmodul wie die Masterachse verbunden ist.Die Verwendung der Drehmomentfolger-Funktion kann die Anzahl der Folgeachsenverringern, je nach Anzahl der Achsen, die im Antriebsmodul verfügbar sind, indem die Masterachse konfiguriert wird.Die RAPID-Instruktion IndReset (Independent Reset) kann nicht in Kombinationmit Electronically Linked Motors verwendet werden.

Anwendungshandbuch - Steuerungssoftware IRC5 633HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.1 Übersicht

Fortsetzung

Page 64: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.2 Konfiguration

2.4.2.1 Systemparameter

Über die SystemparameterDies ist eine kurze Beschreibung aller Parameter, die für Electronically LinkedMotors verwendet werden. Weitere Informationen finden Sie unter dem jeweiligenParameter im Technisches Referenzhandbuch - Systemparameter.

JointDiese Parameter gehören zur Parametergruppe Motion und zum Typ Joint.

BeschreibungParameter

Gibt an, welcher Masterachse diese Achse folgen soll. Bezieht sich aufden Parameter Name im Typ Joint. Roboterachsen werden als rob1 be-zeichnet, gefolgt von einem Unterstrich und der Achsennummer (zumBeispiel rob1_6).

Follower to Joint

ID-Name des Prozesses, der aufgerufen wird. Bezieht sich auf den Para-meter Name im Typ Process.

Use Process

Ein Flag, das die Achse sperrt, damit sie nicht in der Bahninterpolationverwendet wird.

Lock Joint in Ipol

Dieser Parameter muss auf TRUE eingestellt werden, wenn die Achseelektronisch mit einer anderen Achse verknüpft ist.

ProcessDiese Parameter gehören zur Parametergruppe Motion und zum Typ Process.

BeschreibungParameter

ID-Name des Prozesses.Name

ID-Name des elektronisch verknüpften Motorprozesses. Bezieht sich aufden Parameter Name im Typ Linked M Process.

Use Linked MotorProcess

Linked M ProcessDiese Parameter gehören zur Parametergruppe Motion und zum Typ Linked MProcess.

BeschreibungParameter

ID-Name für den verknüpften Motorprozess.Name

Zeitverzögerung ab dem Einschalten der Steuerung, bis die Folge-achse beginnt, ihrer Masterachse zu folgen.

Offset Adjust Delay Ti-me

Dies kann verwendet werden, um der Masterachse etwas Zeit zurStabilisierung zu lassen, bevor die Folgeachse beginnt, der Master-achse zu folgen.

Die maximal zulässige Differenz des Abstands (in Bogenmaß oderMetern) zwischen der Masterachse und der Folgeachse.

Max Follower Offset

Wenn Max Follower Offset überschritten wird, wird der Not-Ausaktiviert.

Fortsetzung auf nächster Seite64 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.2.1 Systemparameter

Page 65: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

Die maximal zulässige Differenz der Geschwindigkeit (in rad/s oderm/s) zwischen der Masterachse und der Folgeachse.

Max Offset Speed

Wenn Max Offset Speed überschritten wird, wird der Not-Aus akti-viert.

Definiert, wie groß ein Teil von Max Offset Speed sein darf, der zurKompensierung eines Positionsfehlers verwendet werden kann.

Offset Speed Ratio

Zeit für Beschleunigung bis zu Max Offset Speed.Ramp TimeDie Proportionskonstante für die Positionsregulierung wird von Nullbis zu ihrem endgültigen Wert (Master Follower kp) hochgefahren;während Ramp Time.

Die Proportionskonstante für die Positionsregulierung. Bestimmt,wie schnell der Positionsfehler kompensiert wird.

Master Follower kp

Stellen Sie sie auf True ein, wenn die Folgeachse und Masterachsedas Drehmoment teilen sollen, anstatt an der genauen Position re-guliert zu werden.

Torque follower

Dies kann nur verwendet werden, wenn die Folgeachse mit demgleichen Antriebsmodul wie die Masterachse verbunden ist.

Das Verhältnis (des Gesamtdrehmoments), das auf die Folgeachseangewendet werden soll (zum Beispiel 0,3 führt zu 30 % auf derFolgeachse und 70 % auf der Masterachse). Wenn der Antrieb unddie Motoren gleich sind, wird dies normalerweise auf 0,5 eingestellt.

Torque distribution

Dieser Wert wird eingestellt, um die Schleifengenauigkeit der Fol-geachsenposition zu verringern. Dies wird benötigt, wenn die me-chanische Struktur zwischen den Motoren wegen des großen Posi-tionskonflikts in einem steifen mechanischen Anschluss usw. hoheDrehmomente vorgibt.

• 0: Genauigkeitsverringerung nicht aktiv• 10–30 typische Werte

Follower axis pos. acc.reduction

Anwendungshandbuch - Steuerungssoftware IRC5 653HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.2.1 Systemparameter

Fortsetzung

Page 66: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.2.2 Konfigurationsbeispiel

Über dieses BeispielDies ist ein Beispiel für die Konfiguration der zusätzlichen Achse M8DM1, damitsie der Achse M7DM1 folgt und für die Konfiguration der Achse M9DM1, damit sieder Roboterachse 6 folgt.

Joint

Lock Joint in IpolUse ProcessFollower to JointName

M7DM1

TrueELM_1M7DM1M8DM1

TrueELM_2rob1_6M9DM1

Process

Use Linked Motor ProcessName

Linked_m_1ELM_1

Linked_m_2ELM_2

Linked M Process

Master Fol-lower kp

RampTime

OffsetSpeed Ra-tio

MaxOffsetSpeed

Max Fol-lower Offset

Offset AdjustDelay Time

Name

0.0510.330.050.050.2Linked_m_1

0.081.50.40.10.10.1Linked_m_2

66 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.2.2 Konfigurationsbeispiel

Page 67: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.3 Verwaltung einer Folgeachse

2.4.3.1 Verwendung des Dienstprogramms

Über das DienstprogrammWenn die Folgeachse als mechanische Einheit konfiguriert wird und mit derMaster-Achse verbunden ist, kann das Serviceprogramm für die folgenden Aktionengenutzt werden:

• Kalibrieren der Folgeachse• Zurücksetzen der Folgeachse nach einem Positionsfehler• Abstimmen einer Drehmomentfolgeachse, siehe Abstimmen eines

Drehmomentfolgers auf Seite 73.

Serviceprogrammdatei nach HOME kopierenDie Datei linked_m.sys aus Verzeichnis:hd0a\<active system>\PRODUCTS\RobotWare_6.0x.xxxx\utility\LinkedMotorsin das HOME-Verzeichnis des aktiven Systems kopieren.

Laden von cfg-DateienDie Konfigurationsdateien LINKED_M_MMC.cfg und LINKED_M_SYS.cfg laden.Diese befinden sich im Verzeichnis:hd0a\<active system>\PRODUCTS\RobotWare_6.0x.xxxx\utility\LinkedMotors.Das Laden von Konfigurationsdateien kann mit RobotStudio oder FlexPendanterfolgen. Dies ist beschrieben in:

Beschreibung des Ladens von cfg-DateienWerkzeug

Abschnitt Laden einer Konfigurationsdatei inBedienungsanleitung - Ro-botStudio.

RobotStudio

Abschnitt Laden von Systemparametern in Operating manual - IRC5 In-tegrator's guide.

FlexPendant

Die Steuerung nach dem Laden der Konfigurationsdateien erneut starten.

DatenvariablenBeim Starten der Serviceroutine werden Werte aus den Systemparametern gelesenund die Werte für eine Gruppe von Datenvariablen eingestellt, die für dieServiceroutine verwendet werden. Diese Variablen müssen nur manuell eingestelltwerden, wenn ein Fehler auftritt, siehe Daten-Einrichtung auf Seite 77.

Dienstprogramm starten

Hinweis

Die Steuerung muss sich im manuellen oder automatischen Modus befinden,um dieses Dienstprogramm auszuführen.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 673HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.3.1 Verwendung des Dienstprogramms

Page 68: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

AktionSchritt

Tippen Sie in der Programmansicht auf Test und dann auf Routine aufrufen....1

Wählen Sie Linked_m aus, und tippen Sie auf Gehe zu.2

Drücken Sie die Starttaste, um das Dienstprogramm zu starten.Das Dienstprogramm wird auf dem Bildschirm angezeigt.

3

Tippen Sie auf Menü 1.Die Folgeachsen, die im System eingerichtet sind, werden in der Taskleiste ange-zeigt.

4

Tippen Sie auf die Folgeachse, für die Sie das Dienstprogramm verwendenmöchten.Das Hauptmenü des Dienstprogramms wird jetzt angezeigt.

5

Menüschaltflächen

BeschreibungTaste

Bewegt die Folgeachse automatisch an die Position, die der Masterachse ent-spricht. Siehe Folgeachse automatisch zurücksetzen auf Seite 71.

AUTOMA-TIK

Stoppt die Bewegung der Folgeachse. Kann beim Bewegen oder zusammenmit AUTOMATIK verwendet werden, wenn die Bewegung sofort gestoppt werdenmuss.

STOPP

Manuelle Schrittbewegung der Folgeachse. Siehe Jog follower axis auf Seite69.BEWE-GEN Wenn die Folgeachse mit der Masterachse synchronisiert wird, kehrt sie an ihre

Position zurück, wenn Sie auf AUTOMATIK tippen, oder wenn Sie das Dienst-programm beenden.

Wird verwendet, um die Synchronisierung zwischen Folge- und Masterachseanzuhalten. Siehe Unsynchronize auf Seite 69.

UNSYNC

Zeigt eine Hilfe für die Verwendung des Dienstprogramms an. Die SchaltflächeWeiter zeigt das nächste Hilfethema an.

HILFE

68 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.3.1 Verwendung des DienstprogrammsFortsetzung

Page 69: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.3.2 Calibrate follower axis position

OverviewBefore the follower axis can follow the master axis, you must define the calibrationpositions for both master and follower.

Master axis

calibrate position

Desired

follower

position

Follower

position

en0400000963

This calibration is done by following the procedures below:1 Jog the master axis to its calibration position.2 Unsynchronize the follower and master axes. SeeUnsynchronize auf Seite69.3 Jog the follower to the desired position. See Jog follower axis auf Seite 69.4 Fine calibrate follower axis. See Fine calibrate auf Seite 70.

Unsynchronize

ActionStep

In the main menu of the service program, tap UNSYNC.1

Confirm that you want to unsynchronize the axes by tapping YES.2

Restart the controller when an information text tells you to do it.After the restart the follower axis is no longer synchronized with the master axis.

3

Jog follower axis

ActionStep

In the main menu of the service program, tap JOG.1

Select the speed with which the follower axis should move when you jog it.2

Select the step size with which the follower axis should move for each step youjog it.

3

Tap on Positive or Negative, depending on in which direction you want to movethe follower axis.

4

Jog the follower axis until it is exactly in the calibration position (the position thatcorresponds to the master axis calibration position).

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 693HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.3.2 Calibrate follower axis position

Page 70: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Fine calibrate

ActionStep

In the ABB menu, select Calibration.1

Select the mechanical unit that the follower axis belongs to.2

Tap the button Calib. Parameters.3

Tap Fine Calibration....4

In the warning dialog that appears, tap Yes.5

Select the axis that is used as follower axis and tap Calibrate.6

In the warning dialog that appears, tap Calibrate.The follower axis is now calibrated. As soon as the follower is calibrated, it is alsosynchronized with the master again.

7

70 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.3.2 Calibrate follower axis positionFortsetzung

Page 71: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.3.3 Folgeachse zurücksetzen

ÜberblickWenn der Folgeversatz die Toleranzgrenzen überschreitet (konfiguriert mit denSystemparametern Max follower offset), muss das Dienstprogramm verwendetwerden, um die Folgeachse innerhalb der Toleranzgrenzen zurückzubewegen.Dies kann im Dienstprogramm automatisch erfolgen, wenn sich die Folgeachseinnerhalb des Bereichs AUTOMATIK befindet. Anderenfalls muss die Folgeachsemanuell bewegt werden.Der Bereich, in dem AUTOMATIK verwendet werden kann, wird vomSystemparameter Max Follower Offset multipliziert mit der Datenvariablenoffset_ratio bestimmt.

Master axis

position

Desired

follower

position

Range where follower

automatically follow master

Range where AUTO in service program can be used

Max Follower

Offset

Max Follower Offset * offset_ratio

en0400000962

Folgeachse automatisch zurücksetzen

AktionSchritt

Tippen Sie im Hauptmenü des Dienstprogramms auf AUTOMATIK.1

Wählen Sie die Geschwindigkeit aus, mit der die Folgeachse an die gewünschtePosition verschoben wird.

2

Folgeachse durch manuelles Bewegen zurücksetzen

AktionSchritt

Tippen Sie im Hauptmenü des Dienstprogramms auf BEWEGEN.1

Wählen Sie die Geschwindigkeit aus, mit der die Folgeachse verschoben wird,wenn Sie sie bewegen.

2

Wählen Sie die Schrittgröße aus, mit der die Folgeachse bei jedem Schritt verscho-ben wird, wenn Sie sie bewegen.

3

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 713HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.3.3 Folgeachse zurücksetzen

Page 72: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

AktionSchritt

Tippen Sie auf Positiv oder Negativ, je nachdem in welche Richtung Sie die Fol-geachse bewegen möchten.

4

Bewegen Sie die Folgeachse, bis sie sich innerhalb der Toleranz von Max FollowerOffset befindet (oder verwenden Sie AUTOMATIK, wenn sie sich nah genug ander Toleranz befindet).

72 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.3.3 Folgeachse zurücksetzenFortsetzung

Page 73: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.4 Abstimmen eines Drehmomentfolgers

2.4.4.1 Beschreibungen des Drehmomentfolgers

Über DrehmomentfolgerDie Folgeachse kann so eingestellt werden, dass das Drehmoment zwischen derMaster- und Folgeachse geteilt wird. Dies ist nur zulässig, wenn die Folgeachsemit dem gleichen Antriebsmodul wie die Masterachse verbunden ist.Nachfolgend finden Sie ein vereinfachtes Bild der Steuerungsschleife derFolgeachse.

en0900000679

DrehmomentverteilungDas Teilen des Drehmoments erfolgt auf dem integralen Bestandteil derSteuerungsschleifen. Durch Einstellung der Drehmomentverteilung auf 0,5 habenMaster- und Folgeachse den gleichen Anteil des integralen Bestandteils desGesamtdrehmoments. Ein Wert von 0,3 führt dazu, dass die Folgeachse über 30% und die Masterachse über 70 % des integralen Drehmoments verfügt.

Verringerung der PositionsgenauigkeitWenn die mechanische Struktur sehr steif ist und eine mechanische Fehlausrichtungoder ein großes Spiel aufweist, ist der proportionale Bestandteil ein hoherBestandteil des Gesamtdrehmoments. Wenn dies aufgrund eines zu großenDrehmomentunterschieds zwischen der Master- und Folgeachse problematischwird, kann die Funktion Verringerung der Positionsgenauigkeit (PAR in derAbbildung) verwendet werden. Dadurch wird die Folgeachse ungenauer, wenn siesich an eine Position bewegt. Die Folgeachse verhält sich also eher wie ein echterDrehmomentfolger.Zu den Testsignalen, die hilfreich sein können, um das Verhalten zu überprüfen,gehören:

PrüfsignalnummerPrüfsignal

37Integraler Bestandteil des Drehmoments

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 733HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.4.1 Beschreibungen des Drehmomentfolgers

Page 74: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PrüfsignalnummerPrüfsignal

36Proportionaler Bestandteil des Drehmoments

9Gesamtdrehmomentreferenz (schließt außerdem jeglicheDrehmomentvorsteuerung ein)

74 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.4.1 Beschreibungen des DrehmomentfolgersFortsetzung

Page 75: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.4.2 Verwendung des Dienstprogramms

Über das Dienstprogramm für den DrehmomentfolgerDer Bestandteil des Dienstprogramms für den Drehmomentfolger wird verwendet,um nach geeigneten Werten einiger Parameter zu suchen. Sobald diese Wertegefunden werden, werden die Systemparameter aktualisiert, und eine neueFeinkalibrierung wird durchgeführt. Danach muss der Drehmomentfolger nichtmehr abgestimmt werden.

Öffnen des Abstimmmenüs für den Drehmomentfolger

AbbildungAktion

Starten Sie das Dienstprogramm (wie inden ersten Schritten unter Dienstpro-gramm starten auf Seite67 beschrieben).

1

Tippen Sie auf Menü 2.2

Tippen Sie auf den Namen der Folgeach-se, die abgestimmt werden soll.

3

Verwenden Sie das Abstimmmenü fürden Drehmomentfolger wie unten be-schrieben.

4

Abstimmen der DrehmomentverteilungVerwenden Sie diese Vorgehensweise, um die Verteilung des Drehmomentszwischen Master- und Folgeachse zu ändern.

AbbildungAktion

Tippen Sie auf Torque distribution(Drehmomentverteilung).

1

Geben Sie eine Zahl (zwischen 0 und 1)für den Anteil der Folgeachse am Gesamt-drehmoment ein.

2

0,3 führt beispielsweise zu 30 % desDrehmoments auf der Folgeachse und70 % auf der Masterachse.

Tippen Sie zum Aktualisieren der System-parameter unter Verwendung des neuenWerts auf Store to cfg (Als cfg spei-chern).

3

Wenn der neue Wert nicht als cfg gespei-chert wird, wird er verwendet, bis dieRobotersteuerung neu gestartet wird. Beieinem Neustart geht der Wert jedochverloren.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 753HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.4.2 Verwendung des Dienstprogramms

Page 76: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Abstimmung der Verringerung der PositionsgenauigkeitVerwenden Sie dieses Verfahren, um die Verringerung der Positionsgenauigkeitder Drehmomentfolgeachse einzustellen.

AbbildungAktion

Tippen Sie auf Position accuracy reduc-tion (Verringerung der Positionsgenauig-keit).

1

Geben Sie eine Zahl für die verringertePositionsgenauigkeit ein.

2

0 bedeutet keine Verringerung der Posi-tionsgenauigkeit.10–30 wird normalerweise für einenDrehmomentfolger verwendet, um dieDrehmomentspannung zwischen Master-und Folgeachse zu verringern.

Tippen Sie zum Aktualisieren der System-parameter unter Verwendung des neuenWerts auf Store to cfg (Als cfg spei-chern).

3

Wenn der neue Wert nicht als cfg gespei-chert wird, wird er verwendet, bis dieRobotersteuerung neu gestartet wird. Beieinem Neustart geht der Wert jedochverloren.

Abstimmen des temporären PositionsdeltaVerwenden Sie diese Vorgehensweise, um das Positionsdelta derDrehmomentfolgeachse abzustimmen. Dieser Deltawert wird anschließendverwendet, um die Feinkalibrierung der Folgeachse anzupassen.

AbbildungAktion

Tippen Sie auf Temp. position delta(Temp. Positionsdelta).

1

Geben Sie eine Zahl ein (Grad auf derMotorseite), die zur Referenzposition fürdie Folgeachse hinzugefügt wird.

2

Testen Sie, welcher Wert zur geringstenDrehmomentspannung führt, und führenSie eine Feinkalibrierung der Masterach-se durch. Dadurch wird die Folgeachsemit dem aktuellen Positionsdelta aktuali-siert.

3

76 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.4.2 Verwendung des DienstprogrammsFortsetzung

Page 77: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.5 Daten-Einrichtung

2.4.5.1 Daten für Dienstprogramm einrichten

ÜberblickZu Beginn der Serviceroutine für Electronically Linked Motors werden einige Datenvon der verknüpften Motorkonfiguration gelesen. Diese Variablen werden vomDienstprogramm verwendet. Wenn sie nicht richtig gelesen werden, müssen dieVariablen im Dienstprogramm bearbeitet werden.

Datenbeschreibungen

BeschreibungDatenvariable

Ein Name für die Folgeachse, der am FlexPendant angezeigt wird.l_f_axis_nameZeichenfolgenarray mit 5 Elementen, eines für jede Folgeachse. WennSie nur einen verbundenen Motor haben, verwenden Sie nur das ersteElement.

Der Name der mechanischen Einheit für die Folgeachse. Bezieht sich aufden Systemparameter Name im Typ Mechanical Unit.

l_f_mecunt_n

Zeichenfolgenarray mit 5 Elementen, eines für jede Folgeachse. WennSie nur einen verbundenen Motor haben, verwenden Sie nur das ersteElement.

Definiert, welche Achse in der mechanischen Einheit (l_f_mecunt_n) dieFolgeachse ist.

l_f_axis_no

Zahlenarray mit 5 Elementen, eines für jede Folgeachse. Wenn Sie nureinen verbundenen Motor haben, verwenden Sie nur das erste Element.

Der Name der mechanischen Einheit für die Masterachse. Bezieht sichauf den Systemparameter Name im Typ Mechanical Unit.

l_m_mecunt_n

Zeichenfolgenarray mit 5 Elementen, eines für jede Masterachse. WennSie nur einen verbundenen Motor haben, verwenden Sie nur das ersteElement.

Definiert, welche Achse in der mechanischen Einheit (l_m_mecunt_n)die Masterachse ist.

l_m_axis_no

Zahlenarray mit 5 Elementen, eines für jede Masterachse. Wenn Sie nureinen verbundenen Motor haben, verwenden Sie nur das erste Element.

Definiert den Bereich, in dem die AUTOMATIK-Funktion im Dienstpro-gramm die Folgeachse zurücksetzt. offset_ratio definiert diesen Be-reich als Vielfaches des Bereichs, in dem die Folgeachse automatischder Masterachse folgt (definiert mit dem Parameter Max Follow Offset).

offset_ratio

Wenn die Folgeachse einen Positionsfehler aufweist, der größer ist alsMax Follower Offset * offset_ratio, muss sie manuell zurückgesetztwerde. Weitere Informationen finden Sie unter Folgeachse zurücksetzenauf Seite 71.

Definiert die Geschwindigkeit der Folgeachse, bei der sie vom Dienstpro-gramm gesteuert wird. Die Werte werden als Teil der maximal zulässigenmanuellen Geschwindigkeit angegeben (d. h. der Wert 0,5 steht für dieHälfte der maximalen manuellen Geschwindigkeit).

speed_ratio

Zahlenarray mit 20 Elementen. Die Elemente 1–5 definieren die Geschwin-digkeit „sehr langsam“ für jede Folgeachse. Die Elemente 6–10 definieren„langsam“, die Elemente 11–15 definieren „normal“ und die Elemente16–20 definieren „schnell“. Wenn Sie nur einen verbundenen Motor haben,verwenden Sie nur die Elemente 1, 6, 11 und 16.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 773HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.5.1 Daten für Dienstprogramm einrichten

Page 78: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungDatenvariable

Definiert die Strecke, die die Folgeachse mit jedem Tippen auf Positivoder Negativ zurücklegt, wenn die Folgeachse vom Dienstprogramm ausbewegt wird. Die Werte werden in Grad oder Metern angegeben, jenachdem, ob die Folgeachse rund oder linear ist.

displacement

Zahlenarray mit 20 Elementen. Die Elemente 1–5 definieren die Verschie-bung „sehr kurz“ für jede Folgeachse. Die Elemente 6–10 definieren „kurz“,die Elemente 11–15 definieren „normal“ und die Elemente 16–20 definieren„lang“. Wenn Sie nur einen verbundenen Motor haben, verwenden Sienur die Elemente 1, 6, 11 und 16.

Datenvariablen bearbeitenDies ist eine Beschreibung zum Einstellen von Werten für die Datenvariablen desFlexPendant.

AktionSchritt

Wählen Sie im ABB-Menü Programmdaten aus.1

Wählen Sie Zeichenfolge aus, und tippen Sie auf Daten anzeigen.2

Wählen Sie l_f_axis_name aus, und tippen Sie auf Wert bearbeiten.3

Tippen Sie auf das erste Element.4

Tippen Sie auf die Zeile, um sie zu bearbeiten.5

Geben Sie den Namen ein, den Sie der ersten Folgeachse geben möchten.6

Wenn Sie mehr als eine Folgeachse haben, wiederholen Sie Schritt 4–6 für dienächsten Elemente.

7

Wiederholen Sie Schritt 3–7 für l_f_mecunt_n und l_m_mecunt_n.8

Wählen Sie im Menü Programmdaten num aus, und wiederholen Sie Schritt 3–7für l_f_axis_no, l_m_axis_no, offset_ratio, speed_ratio und Verschiebung.

9

78 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.5.1 Daten für Dienstprogramm einrichtenFortsetzung

Page 79: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.4.5.2 Beispiel für Daten-Einrichtung

Über dieses BeispielDies ist ein Beispiel für die Einrichtung der Datenvariablen für zwei Folgeachsen.Die erste Folgeachse ist M8C1B1, die der zusätzlichen Achse folgt M7C1B1. Diezweite Folgeachse ist M9C1B1, die der Roboterachse 6 folgt.

l_f_axis_name

Element und Wert in l_f_axis_nameDargestellte Achse

{1}: "follow_external"Follower 1

{2}: "follow_axis6"Follower 2

{3}: ""Follower 3

{4}: ""Follower 4

{5}: ""Follower 5

l_f_mecunt_n

Element und Wert in l_f_mecunt_nDargestellte Achse

{1}: "M8DM1"Follower 1

{2}: "M9DM1"Follower 2

{3}: ""Follower 3

{4}: ""Follower 4

{5}: ""Follower 5

l_f_axis_no

Element und Wert in l_f_axis_noDargestellte Achse

{1}: 1Follower 1

{2}: 1Follower 2

{3}: 0Follower 3

{4}: 0Follower 4

{5}: 0Follower 5

l_m_mecunt_n

Element und Wert in l_m_mecunt_nDargestellte Achse

{1}: "M7DM1"Master 1

{2}: "rob1"Master 2

{3}: ""Master 3

{4}: ""Master 4

{5}: ""Master 5

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 793HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.5.2 Beispiel für Daten-Einrichtung

Page 80: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

l_m_axis_no

Element und Wert in l_m_axis_noDargestellte Achse

{1}: 1Master 1

{2}: 6Master 2

{3}: 0Master 3

{4}: 0Master 4

{5}: 0Master 5

offset_ratio

Element und Wert in offset_ratioDargestellte Achse

{1}: 10Follower 1

{2}: 15Follower 2

{3}: 0Follower 3

{4}: 0Follower 4

{5}: 0Follower 5

speed_ratio

schnellnormallangsamsehr langsamDargestellte Achse

{16}: 1{11}: 0.2{6}: 0.05{1}: 0.01Follower 1

{17}: 1{12}: 0.2{7}: 0.05{2}: 0.01Follower 2

{18}: 0{13}: 0{8}: 0{3}: 0Follower 3

{19}: 0{14}: 0{9}: 0{4}: 0Follower 4

{20}: 0{15}: 0{10}: 0{5}: 0Follower 5

displacement

langnormalkurzsehr kurzDargestellte Achse

{16}: 0.1{11}: 0.02{6}: 0.005{1}: 0.001Follower 1

{17}: 10{12}: 1{7}: 0.1{2}: 0.01Follower 2

{18}: 0{13}: 0{8}: 0{3}: 0Follower 3

{19}: 0{14}: 0{9}: 0{4}: 0Follower 4

{20}: 0{15}: 0{10}: 0{5}: 0Follower 5

80 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.4.5.2 Beispiel für Daten-EinrichtungFortsetzung

Page 81: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.5 Fixed Position Events

2.5.1 Überblick

ZweckMit Fixed Position Events wird sichergestellt, dass eine Programmroutine ausgeführtwird, wenn die Position des TCP ordnungsgemäß definiert ist.Wenn ein Bewegungsinstruktion aufgerufen wird und das Zonenargument auffine gesetzt ist, wird immer die nächste Routine ausgeführt, sobald der TCP seinePosition erreicht hat. Wenn ein Bewegungsinstruktion aufgerufen wird und dasZonenargument auf eine Strecke (z. B z20 gesetzt ist, wird möglicherweise dienächste Routine schon ausgeführt, bevor sich der TCP nahe an seiner Positionbefindet. Der Grund hierfür ist, dass zwischen der Ausführung derRAPID-Instruktionen und den Roboterbewegungen immer eine Verzögerungvorhanden ist.Durch den Aufruf der Bewegungsinstruktion mit auf fine gesetztem Zonenargumentwerden die Bewegungen verlangsamt. Mit Fixed Position Events kann eine Routineohne Verlangsamung der Bewegung ausgeführt werden, wenn sich der TCP aneiner angegebenen Position an einer beliebigen Stelle der TCP-Bahn befindet.

Enthaltene KomponentenDie RobotWare-Basisfunktionalität Fixed Position Events bietet Ihnen Folgendes:

• Instruktionen zum Definieren eines Positionsereignisses• Instruktionen zum Bewegen des Roboters und gleichzeitigen Ausführen des

Positionsereignisses• Instruktionen zum Bewegen des Roboters und Aufrufen einer Prozedur

während des Weitergebens der Position, ohne zunächst ein Positionsereigniszu definieren

Grundlegende MethodeFixed Position Events kann entweder mit einer vereinfachten Instruktion zumAufrufen einer Prozedur verwendet oder mit den folgenden allgemeinen Schrittenkonfiguriert werden. Ausführlichere Beispiele zur Vorgehensweise finden Sie unterCodebeispiele auf Seite 85.

1 Deklarieren Sie das Positionsereignis.2 Definieren Sie das Positionsereignis:

• wann (in Bezug auf die Zielposition) es erfolgen soll• aus welcher Aktion es bestehen soll

3 Rufen Sie eine Bewegungsinstruktion auf, die das Positionsereignisverwendet. Wenn sich der TCP in der definierten Entfernung von der Positionbefindet, tritt das Ereignis ein.

Anwendungshandbuch - Steuerungssoftware IRC5 813HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.5.1 Überblick

Page 82: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.5.2 RAPID-Komponenten und Systemparameter

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps in Fixed Position Events.Weitere Informationen finden Sie unter dem jeweiligen Datentyp im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

Mit triggdatawerden Daten zu einem Positionsereignis gespeichert.triggdata

Bei einem Positionsereignis kann es sich um das Setzen eines Aus-gangssignals oder um das Ausführen einer Interrupt-Routine an einerbestimmten Position auf der Bewegungsbahn des Roboters handeln.triggdata enthält auch Informationen über den Zeitpunkt der Aktion,die z. B. auf den Zeitpunkt festgelegt werden kann, wenn sich derTCP in einer definierten Entfernung von der Zielposition befindet.triggdata ist ein Datentyp ohne einen Wert (Non-Value).

Mit triggioswerden Daten zu einem Positionsereignis gespeichert,das von der Instruktion TriggLIOs verwendet wird.

triggios

triggios legt den Wert eines Ausgangssignals mittels einesnum-Wertes fest.

Mit triggiosdnumwerden Daten zu einem Positionsereignis gespei-chert, das von der Instruktion TriggLIOs verwendet wird.

triggiosdnum

triggiosdnum legt den Wert eines Ausgangssignals mittels einesdnum-Wertes fest.

Mit triggstrgo werden Daten zu einem Positionsereignis gespei-chert, das von der Instruktion TriggLIOs verwendet wird.

triggstrgo

triggstrgo legt den Wert eines Ausgangssignals mittels einesstringdig-Wertes fest (Zeichenfolge, die eine Nummer enthält).

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Fixed Position Events.Weitere Informationen finden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

TriggIO definiert die Einstellung für ein Ausgangssignal und denZeitpunkt zum Setzen des Signals. Die Definition wird in einer Varia-blen vom Typ triggdata gespeichert.

TriggIO

Mit TriggIO kann definiert werden, dass das Signal in einer bestimm-ten Entfernung (in mm) von der Zielposition oder zu einem bestimmtenZeitpunkt vor Erreichen der Zielposition gesetzt wird. Das Signal kannauch in einer bestimmten Entfernung von der Startposition oder zueinem bestimmten Zeitpunkt nach Verlassen der Startposition gesetztwerden.Durch Festlegen der Entfernung auf 0 (null) wird das Signal gesetzt,wenn sich der TCP in der kürzesten Entfernung von der Zielposition(die Mitte der Zonenbahn) befindet.

TriggEquip wird wie TriggIO ausgeführt, mit dem Unterschied,dass TriggEquip die interne Verzögerung der externen Ausrüstungausgleichen kann.

TriggEquip

Beispielsweise muss das Signal an eine Klebstoffpistole kurz vor demHerausdrücken des Klebstoffs und dem Beginn des Klebevorgangsgesetzt werden.

Fortsetzung auf nächster Seite82 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.5.2 RAPID-Komponenten und Systemparameter

Page 83: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungInstruktion

TriggInt definiert, wann eine Interrupt-Routine ausgeführt wird. DieDefinition wird in einer Variablen vom Typ triggdata gespeichert.

TriggInt

TriggInt definiert, bei welcher Entfernung (in mm) von der Zielposi-tion (oder von der Startposition) die Interrupt-Routine aufgerufen wird.Durch Festlegen der Entfernung auf 0 (null) erfolgt der Interrupt, wennsich der TCP in der kürzesten Entfernung von der Zielposition (dieMitte der Zonenbahn) befindet.

TriggCheckIO definiert die Überprüfung eines Eingangs- oder Aus-gangssignals und den Zeitpunkt der Überprüfung. Die Definition wirdin einer Variablen vom Typ triggdata gespeichert.

TriggCheckIO

TriggCheckIO definiert eine Überprüfung, bei der ein Eingangs- oderAusgangssignal mit einem Wert verglichen wird. Wenn die Überprü-fung fehlschlägt, wird eine Interrupt-Routine aufgerufen. Die Roboter-bewegung kann optional angehalten werden, wenn das Interrupt-Er-eignis erfolgt.Mit TriggCheckIO kann definiert werden, dass die Überprüfung ineiner bestimmten Entfernung (in mm) von der Zielposition oder zueinem bestimmten Zeitpunkt vor Erreichen der Zielposition erfolgt.Die Überprüfung kann auch in einer definierten Entfernung von derStartposition oder zu einem bestimmten Zeitpunkt nach Verlassender Startposition ausgeführt werden.Durch Festlegen der Entfernung auf 0 (null) wird die Interrupt-Routineaufgerufen, wenn sich der TCP in der kürzesten Entfernung von derZielposition (die Mitte der Zonenbahn) befindet.

TriggRampAO definiert die Beschleunigung oder Verzögerung einanaloges Ausgangssignals und den jeweiligen Zeitpunkt. Die Definitionwird in einer Variablen vom Typ triggdata gespeichert.

TriggRampAO

TriggRampIO definiert den Ort und die Länge der Beschleunigungbzw. Verzögerung des Signals.

TriggL ist wie MoveL eine Bewegungsinstruktion. Mit derTriggL-Instruktion können zusätzlich zur Bewegung Ausgangssignalegesetzt, Interrupt-Routinen ausgeführt und Eingangs- oder Ausgangs-signale an festen Positionen überprüft werden.

TriggL

TriggL führt bis zu 8 Positionsereignisse aus, die als triggdatagespeichert werden. Diese müssen vor Aufruf von TriggL definiertwerden.

TriggC ist wie MoveC eine Bewegungsinstruktion. Mit derTriggC-Instruktion können zusätzlich zur Bewegung Ausgangssignalegesetzt, Interrupt-Routinen ausgeführt und Eingangs- oder Ausgangs-signale an festen Positionen überprüft werden.

TriggC

TriggC führt bis zu 8 Positionsereignisse aus, die als triggdatagespeichert werden. Diese müssen vor Aufruf von TriggC definiertwerden.

TriggJ ist wie MoveJ eine Bewegungsinstruktion. Mit derTriggJ-Instruktion können zusätzlich zur Bewegung Ausgangssignalegesetzt, Interrupt-Routinen ausgeführt und Eingangs- oder Ausgangs-signale an festen Positionen überprüft werden.

TriggJ

TriggJ führt bis zu 8 Positionsereignisse aus, die als triggdatagespeichert werden. Diese müssen vor Aufruf von TriggJ definiertwerden.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 833HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.5.2 RAPID-Komponenten und Systemparameter

Fortsetzung

Page 84: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungInstruktion

TriggLIOs ist wie MoveL eine Bewegungsinstruktion. Mit derTriggLIOs-Instruktion können zusätzlich zur Bewegung Ausgangs-signale an festen Positionen eingestellt werden.

TriggLIOs

TriggLIOs entspricht der Kombination von TriggEquip und TriggL.Der Unterschied ist, dass TriggLIOs bis zu 50 Positionsereignisseausführen kann, die als Datenfeld vom Datentyp triggios,triggiosdnum oder triggstrgo gespeichert sein können.

MoveLSync ist eine lineare Bewegungsinstruktion, die in der Mitteder Zonenbahn eine Prozedur aufruft.

MoveLSync

MoveCSync ist eine Kreisbewegungsinstruktion, die in der Mitte derZonenbahn eine Prozedur aufruft.

MoveCSync

MoveJSync ist eine Achsenbewegungsinstruktion, die in der Mitteder Zonenbahn eine Prozedur aufruft.

MoveJSync

FunktionenFixed Position Events enthält RAPID-Funktionen:

SystemparameterHier erhalten Sie eine kurze Beschreibung jedes Parameters in Fixed PositionEvents. Weitere Informationen finden Sie unter dem jeweiligen Parameter imTechnisches Referenzhandbuch - Systemparameter.

BeschreibungParameter

TriggEquip nutzt die Verzögerung von ca. 70 ms zwischen der RA-PID-Ausführung und der Roboterbewegung. Wenn die Verzögerungder Ausrüstung 70 ms übersteigt, kann die Verzögerung der Roboter-bewegung durch Konfigurieren von Event preset time erhöht werden.

Event Preset Time

Event preset time gehört zum Typ Motion System in der Parameter-gruppe Motion.

84 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.5.2 RAPID-Komponenten und SystemparameterFortsetzung

Page 85: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.5.3 Codebeispiele

Beispiel ohne Fixed Position EventsOhne Verwendung von Fixed Position Events kann der folgende Code geschriebenwerden:

MoveJ p1, vmax, fine, tool1;

MoveL p2, v1000, z20, tool1;

SetDO do1, 1;

MoveL p3, v1000, fine, tool1;

ErgebnisDer Code gibt an, dass der TCP p2 erreichen muss, bevor do1 gesetzt wird. Dadie Roboterbahn in Bezug auf die Instruktionsausführung eine Verzögerungaufweist, wird do1 gesetzt, wenn sich der TCP an der mit X markierten Position(siehe Abbildung) befindet.

xx0300000151

Beispiel mit TriggIO- und TriggL-InstruktionDas Ausgangssignal kann in einer Entfernung von 30 mm von der Zielpositiongesetzt werden, indem das Positionsereignis definiert und anschließend der Roboterbewegt wird, während das System das Positionsereignis ausführt.

VAR triggdata do_set;

!Define that do1 shall be set when 30 mm from target

TriggIO do_set, 30 \DOp:=do1, 1;

MoveJ p1, vmax, fine, tool1;

!Move to p2 and let system execute do_set

TriggL p2, v1000, do_set, z20, tool1;

MoveL p3, v1000, fine, tool1;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 853HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.5.3 Codebeispiele

Page 86: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

ErgebnisDas Signal do1 wird gesetzt, wenn der TCP 30 mm von p2 entfernt ist. do1 wirdgesetzt, wenn sich der TCP an der mit X markierten Position (siehe Abbildung)befindet.

xx0300000158

Beispiel mit MoveLSync-InstruktionDer Aufruf einer Prozedur, wenn sich die Roboterbahn so nah wie möglich an derZielposition befindet, kann mit einem einzigen Instruktionsaufruf erfolgen.

MoveJ p1, vmax, fine, tool1;

!Move to p2 while calling a procedure

MoveLSync p2, v1000, z20, tool1, "proc1";

MoveL p3, v1000, fine, tool1;

ErgebnisDie Prozedur wird aufgerufen, wenn sich der TCP an der mit X (siehe Abbildung)markierten Position befindet.

xx0300000165

86 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.5.3 CodebeispieleFortsetzung

Page 87: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6 File and Serial Channel Handling

2.6.1 Einführung in File and Serial Channel Handling

Über File and Serial Channel HandlingDie RobotWare-Basisfunktionalität File and Serial Channel Handling ermöglichtdem Roboterprogrammierer die Steuerung von Dateien, Feldbussen und seriellenKanälen über den RAPID-Code. Dies bietet sich z. B. für folgende Zwecke an:

• Lesen von Daten von einem Strichcodeleser• Ausgeben von Produktionsstatistiken in eine Protokolldatei oder an einen

Drucker• Übertragen von Daten zwischen dem Roboter und einem PC.

Die in File and Serial Channel Handling enthaltene Funktionalität kann in Gruppenunterteilt werden:

BeschreibungFunktionalitätsgruppe

Grundlegende Kommunikationsfunktionalität. Kommu-nikation mit binären oder zeichenorientierten Dateienund binären oder zeichenorientierten seriellen Kanälen.

Binäre und zeichenorientierteKommunikation

In einen Container gepackte Daten. Insbesondere fürdie Feldbuskommunikation vorgesehen.

Kommunikation mit unformatiertenDaten

Durchsuchen und Bearbeiten von Dateistrukturen.Datei- und Verzeichnisverwaltung

Anwendungshandbuch - Steuerungssoftware IRC5 873HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.1 Einführung in File and Serial Channel Handling

Page 88: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.2 Binäre und zeichenorientierte Kommunikation

2.6.2.1 Übersicht

ZweckZweck der binären und zeichenorientierten Kommunikation:

• Speichern von Informationen in einem entfernten Speicher oder auf einerentfernten Festplatte

• Kommunikation des Roboters mit anderen Geräten

Enthaltene KomponentenFür die binäre und zeichenorientierte Kommunikation ermöglicht Ihnen dieRobotWare-Basisfunktionalität File and Serial Channel Handling den Zugriff auffolgende Elemente:

• Instruktionen für die Bearbeitung einer Datei oder eines seriellen Kanals• Instruktionen zum Schreiben in eine Datei oder einen seriellen Kanal• Instruktionen zum Lesen aus einer Datei oder einem seriellen Kanal• Funktionen zum Lesen aus einer Datei oder einem seriellen Kanal

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung der binären undzeichenorientierten Kommunikation. Ein ausführlicheres Beispiel hierfür findenSie unter Codebeispiele auf Seite 91.

1 Öffnen Sie eine Datei oder einen seriellen Kanal.2 Lesen Sie Daten aus der Datei oder aus dem seriellen Kanal oder schreiben

Sie Daten in die Datei oder den seriellen Kanal.3 Schließen Sie die Datei oder den seriellen Kanal.

EinschränkungenDer Zugriff auf Dateien, serielle Kanäle und Feldbusse kann nicht durch mehrereRAPID-Tasks gleichzeitig erfolgen. Ein Zugriff auf diese Elemente erfolgt durchalle Instruktionen in binärer und zeichenorientierter Kommunikation sowie durchWriteRawBytes und ReadRawBytes. Wenn z. B. in einer Task eineReadBin-Instruktion ausgeführt wird, muss sie abgeschlossen sein, bevor in eineranderen Task WriteRawBytes ausgeführt werden kann.

88 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.2.1 Übersicht

Page 89: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.2.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps, der für die binäre undzeichenorientierte Kommunikation verwendet wird. Weitere Informationen findenSie unter dem jeweiligen Datentyp im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

iodev enthält einen Verweis auf eine Datei oder einen seriellen Kanal.Er kann mithilfe der Instruktion Openmit der physischen Einheit verknüpftund anschließend zum Lesen und Schreiben verwendet werden.

iodev

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für die binäre undzeichenorientierte Kommunikation verwendet wird. Weitere Informationen findenSie unter der jeweiligen Instruktion im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

Openwird verwendet, um eine Datei oder einen seriellen Kanal zum Lesenoder Schreiben zu öffnen.

Open

Close wird verwendet, um eine Datei oder einen seriellen Kanal zuschließen.

Close

Rewind setzt den Dateizeiger an den Beginn der Datei.Rewind

ClearIOBuff wird verwendet, um den Eingangspuffer eines seriellenKanals zu löschen. Alle gepufferten Zeichen aus dem seriellen Eingangs-kanal werden verworfen.

ClearIOBuff

Write wird verwendet, um Daten in eine zeichenorientierte Datei odereinen zeichenorientierten seriellen Kanal zu schreiben.

Write

WriteBin wird verwendet, um eine Anzahl von Bytes in einen binärenseriellen Kanal oder eine binäre Datei zu schreiben.

WriteBin

WriteStrBin wird verwendet, um eine Zeichenfolge in einen binärenseriellen Kanal oder eine binäre Datei zu schreiben.

WriteStrBin

WriteAnyBinwird verwendet, um beliebige Datentypen in einen binärenseriellen Kanal oder eine binäre serielle Datei zu schreiben.

WriteAnyBin

ReadAnyBinwird verwendet, um einen beliebigen Datentypen aus einembinären seriellen Kanal oder einer binären Datei zu lesen.

ReadAnyBin

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion, die für die binäre undzeichenorientierte Kommunikation verwendet wird. Weitere Informationen findenSie unter der jeweiligen Instruktion im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungFunktion

ReadNum wird verwendet, um eine Zahl aus einer zeichenorientierten Dateioder einem zeichenorientierten seriellen Kanal zu lesen.

ReadNum

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 893HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.2.2 RAPID-Komponenten

Page 90: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungFunktion

ReadStrwird verwendet, um eine Zeichenfolge aus einer zeichenorientiertenDatei oder einem zeichenorientierten seriellen Kanal zu lesen.

ReadStr

ReadBin wird verwendet, um ein Byte (8 Bit) aus einer Datei oder einemseriellen Kanal zu lesen. Diese Funktion kann sowohl für binäre als auch fürzeichenorientierte serielle Kanäle oder Dateien verwendet werden.

ReadBin

ReadStrBin wird verwendet, um eine Zeichenfolge aus einem binären seri-ellen Kanal oder einer Binärdatei zu lesen.

ReadStrBin

90 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.2.2 RAPID-KomponentenFortsetzung

Page 91: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.2.3 Codebeispiele

Kommunikation mit zeichenorientierter DateiIn diesem Beispiel wird das Schreiben in eine zeichenorientierte Datei und dasLesen aus einer zeichenorientierten Datei gezeigt. Die Zeile „The number is :8“wird in die Datei FILE1.DOC geschrieben. Anschließend wird der Inhalt vonFILE1.DOC gelesen, und die Ausgabe im FlexPendant lautet „The number is :8“gefolgt von „The number is 8“.

PROC write_to_file()

VAR iodev file;

VAR num number:= 8;

Open "HOME:" \File:= "FILE1.DOC", file;

Write file, "The number is :"\Num:=number;

Close file;

ENDPROC

PROC read_from_file()

VAR iodev file;

VAR num number;

VAR string text;

Open "HOME:" \File:= "FILE1.DOC", file \Read;

TPWrite ReadStr(file);

Rewind file;

text := ReadStr(file\Delim:=":");

number := ReadNum(file);

Close file;

TPWrite text \Num:=number;

ENDPROC

Kommunikation mit einem binären seriellen KanalIn diesem Beispiel wird die Zeichenfolge „Hello“, die aktuelle Roboterposition unddie Zeichenfolge „Hi“ in den binären seriellen Kanal com1 geschrieben.

PROC write_bin_chan()

VAR iodev channel;

VAR num out_buffer{20};

VAR num input;

VAR robtarget target;

Open "com1:", channel\Bin;

! Write control character enq

out_buffer{1} := 5;

WriteBin channel, out_buffer, 1;

! Wait for control character ack

input := ReadBin (channel \Time:= 0.1);

IF input = 6 THEN

! Write "Hello" followed by new line

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 913HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.2.3 Codebeispiele

Page 92: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

WriteStrBin channel, "Hello\0A";

! Write current robot position

target := CRobT(\Tool:= tool1\WObj:= wobj1);

WriteAnyBin channel, target;

! Set start text character (2=start text)

out_buffer{1} := 2;

! Set character "H" (72="H")

out_buffer{2} := 72;

! Set character "i"

out_buffer{3} := StrToByte("i"\Char);

! Set new line character (10=new line)

out_buffer{4} := 10;

! Set end text character (3=end text)

out_buffer{5} := 3;

! Write the buffer with the line "Hi"

! to the channel

WriteBin channel, out_buffer, 5;

ENDIF

Close channel;

ENDPROC

92 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.2.3 CodebeispieleFortsetzung

Page 93: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.3 Kommunikation mit unformatierten Daten

2.6.3.1 Übersicht

ZweckDie Kommunikation mit unformatierten Daten wird verwendet, um unterschiedlicheDatentypen in einen Container zu packen, diesen an eine Datei oder einen seriellenKanal zu senden und die Daten zu lesen und zu entpacken. Dies ist besonderssinnvoll, wenn die Kommunikation über einen Feldbus, z. B. DeviceNet oderProfibus, erfolgt.

Enthaltene KomponentenFür die Kommunikation mit unformatierten Daten ermöglicht Ihnen dieRobotWare-Basisfunktionalität File and Serial Channel Handling den Zugriff auffolgende Elemente:

• Instruktionen zum Verarbeiten des Inhalts einer rawbytes-Variablen• Instruktionen zum Lesen und Schreiben von unformatierten Daten• eine Funktion, um die Länge der gültigen Daten einer rawbytes-Variablen

abzurufen.

Grundlegende MethodeDies ist die allgemeine Methode für die Kommunikation mit unformatierten Daten.Ein ausführlicheres Beispiel hierfür finden Sie unter Schreiben und Lesen vonrawbytes auf Seite 96.

1 Packen Sie Daten in eine rawbytes-Variable (Datentyp num, byte oderstring).

2 Schreiben Sie die rawbytes-Variable in eine Datei oder einen seriellen Kanal.3 Lesen Sie eine rawbytes-Variable aus einer Datei oder einem seriellen

Kanal.4 Entpacken Sie die rawbytes-Variable in num, byte oder string.

EinschränkungenFür die Gerätebefehlskommunikation sind außerdem die Basisfunktionalität DeviceCommand Interface und die Option für das betreffende industrielle Netzwerkerforderlich.Der Zugriff auf Dateien, serielle Kanäle und Feldbusse kann nicht durchverschiedene RAPID-Tasks gleichzeitig erfolgen. Ein Zugriff auf diese Elementeerfolgt durch alle Instruktionen in binärer und zeichenorientierter Kommunikationsowie durch WriteRawBytes und ReadRawBytes. Wenn z. B. in einer Task eineReadBin-Instruktion ausgeführt wird, muss sie abgeschlossen sein, bevor in eineranderen Task eine WriteRawBytes-Instruktion ausgeführt werden kann.

Anwendungshandbuch - Steuerungssoftware IRC5 933HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.3.1 Übersicht

Page 94: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.3.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps, der für dieKommunikation mit unformatierten Daten verwendet wird. Weitere Informationenfinden Sie unter dem jeweiligen Datentyp im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

rawbytes dient als allgemeiner Datencontainer. Er kann mit beliebigenDaten vom Typ num, byte oder string gefüllt werden. In ihm wirdaußerdem die Länge der gültigen Daten (in Byte) gespeichert.

rawbytes

rawbytes kann Daten von bis zu 1024 Byte enthalten. Folgende Da-tenformate werden unterstützt:

• Hex (1 Byte)• long (4 Byte)• float (4 Byte)• ASCII (1-80 Zeichen)

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für dieKommunikation mit unformatierten Daten verwendet wird. Weitere Informationenfinden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

Mit ClearRawByteswird der gesamte Inhalt einer rawbytes-Variablenauf 0 gesetzt. Die Länge der gültigen Daten in der rawbytes-Variablenwird auf 0 gesetzt.

ClearRawBytes

Mit ClearRawBytes kann auch nur der letzte Teil einerrawbytes-Variablen gelöscht werden.

PackRawByteswird verwendet, um den Inhalt von Variablen des Typsnum, byte oder string in eine Variable des Typs rawbytes zu packen.

PackRawBytes

UnpackRawBytes wird verwendet, um den Inhalt einer Variablen vomTyp rawbytes in Variablen vom Typ byte, num oder string zu entpa-cken.

UnpackRawBytes

CopyRawByteswird verwendet, um den vollständigen Inhalt oder Teiledes Inhalts von einer rawbytes-Variablen in eine andere zu kopieren.

CopyRawBytes

Mit WriteRawBytes werden Daten vom Typ rawbytes in eine Binär-datei, einen binären seriellen Kanal oder einen binären Feldbus ge-schrieben.

WriteRawBytes

Mit ReadRawByteswerden Daten vom Typ rawbytes aus einer Binär-datei, einem binären seriellen Kanal oder einem binären Feldbus gele-sen.

ReadRawBytes

Fortsetzung auf nächster Seite94 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.3.2 RAPID-Komponenten

Page 95: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion, die für die Kommunikationmit unformatierten Daten verwendet wird. Weitere Informationen finden Sie unterder jeweiligen Funktion im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungFunktion

Mit RawBytesLen wird die Länge der gültigen Daten in einerrawbytes-Variablen abgerufen.

RawBytesLen

Anwendungshandbuch - Steuerungssoftware IRC5 953HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.3.2 RAPID-Komponenten

Fortsetzung

Page 96: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.3.3 Codebeispiele

Über die BeispieleIn diesen Beispielen wird die Verwendung von rawbytes vereinfacht dargestellt.Ein realitätsgetreueres Beispiel für die Verwendung von rawbytes in derDeviceNet-Kommunikation finden Sie unter Schreiben von rawbytes in DeviceNetauf Seite 105.

Schreiben und Lesen von rawbytesIn diesem Beispiel wird gezeigt, wie Daten in eine rawbytes-Variable gepackt undauf ein Gerät geschrieben werden. Im Beispiel wird außerdem das Lesen undEntpacken einer rawbytes-Variablen veranschaulicht.

VAR iodev io_device;

VAR rawbytes raw_data;

PROC write_rawbytes()

VAR num length := 0.2;

VAR string length_unit := "meters";

! Empty contents of raw_data

ClearRawBytes raw_data;

! Add contents of length as a 4 byte float

PackRawBytes length, raw_data,(RawBytesLen(raw_data)+1) \Float4;

! Add the string length_unit

PackRawBytes length_unit, raw_data,(RawBytesLen(raw_data)+1)\ASCII;

Open "HOME:" \File:= "FILE1.DOC", io_device \Bin;

! Write the contents of raw_data to io_device

WriteRawBytes io_device, raw_data;

Close io_device;

ENDPROC

PROC read_rawbytes()

VAR string answer;

! Empty contents of raw_data

ClearRawBytes raw_data;

Open "HOME:" \File:= "FILE1.DOC", io_device \Bin;

! Read from io_device into raw_data

ReadRawBytes io_device, raw_data \Time:=1;

Close io_device;

Fortsetzung auf nächster Seite96 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.3.3 Codebeispiele

Page 97: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

! Unpack raw_data to the string answer

UnpackRawBytes raw_data, 1, answer \ASCII:=10;

ENDPROC

Kopieren von rawbytesIn diesem Beispiel werden alle Daten aus raw_data_1 und raw_data_2 nachraw_data_3 kopiert.

VAR rawbytes raw_data_1;

VAR rawbytes raw_data_2;

VAR rawbytes raw_data_3;

VAR num my_length:=0.2;

VAR string my_unit:=" meters";

PackRawBytes my_length, raw_data_1, 1 \Float4;

PackRawBytes my_unit, raw_data_2, 1 \ASCII;

! Copy all data from raw_data_1 to raw_data_3

CopyRawBytes raw_data_1, 1, raw_data_3, 1;

! Append all data from raw_data_2 to raw_data_3

CopyRawBytes raw_data_2, 1, raw_data_3,(RawBytesLen(raw_data_3)+1);

Anwendungshandbuch - Steuerungssoftware IRC5 973HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.3.3 Codebeispiele

Fortsetzung

Page 98: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.4 Datei- und Verzeichnisverwaltung

2.6.4.1 Übersicht

ZweckDie Datei- und Verzeichnisverwaltung ermöglicht das Durchsuchen und Bearbeitenvon Dateistrukturen (Verzeichnisse und Dateien).

Enthaltene KomponentenSie können zur Datei- und Verzeichnisverwaltung mit derRobotWare-Basisfunktionalität File and Serial Channel Handling auf folgendeElemente zugreifen:

• Instruktionen für die Handhabung von Verzeichnissen• eine Funktion zum Lesen von Verzeichnissen• Instruktionen für die Handhabung von Dateien auf Dateistrukturebene• Funktionen zum Abrufen von Informationen über Größe und Typ

Grundlegende MethodeDies ist die allgemeine Methode für die Datei- und Verzeichnisverwaltung.Ausführlichere Beispiele hierfür finden Sie unter Codebeispiele auf Seite 101.

1 Öffnen Sie ein Verzeichnis.2 Lesen Sie Daten aus dem Verzeichnis und durchsuchen Sie es, bis Sie das

gesuchte Element gefunden haben.3 Schließen Sie das Verzeichnis.

98 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.4.1 Übersicht

Page 99: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.4.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps, der für die Datei- undVerzeichnisverwaltung verwendet wird. Weitere Informationen finden Sie unterdem jeweiligen Datentyp im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungDatentyp

dir enthält einen Verweis auf ein Verzeichnis auf einem Datenträger oderin einem Netzwerk. Er kann mithilfe der Instruktion OpenDir mit einemphysischen Verzeichnis verknüpft werden.

dir

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die für die Datei- undVerzeichnisverwaltung verwendet wird. Weitere Informationen finden Sie unter derjeweiligen Instruktion im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungInstruktion

Mit OpenDir wird ein Verzeichnis geöffnet.OpenDir

Mit CloseDir wird ein Verzeichnis geschlossen.CloseDir

Mit MakeDir wird ein neues Verzeichnis erstellt.MakeDir

Mit RemoveDir wird ein leeres Verzeichnis entfernt.RemoveDir

CopyFile wird verwendet, um von einer bereits vorhandenen Datei eineKopie zu erstellen.

CopyFile

Mit RenameFilewird einer vorhandenen Datei ein neuer Name zugewiesen.Mit diesem Befehl kann auch eine Datei von einem Speicherort an einenanderen Speicherort in der Verzeichnisstruktur verschoben werden.

RenameFile

RemoveFile wird verwendet, um Dateien zu löschen.RemoveFile

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion, die für die Datei- undVerzeichnisverwaltung verwendet wird. Weitere Informationen finden Sie unter derjeweiligen Instruktion in Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungFunktion

ReadDir wird verwendet, um den Namen der nächsten Datei oder desnächsten Unterverzeichnisses unter einem Verzeichnis abzurufen, das mitder Instruktion OpenDir geöffnet wurde.

ReadDir

Beachten Sie, dass die ersten mit der Funktion ReadDir gelesenen Elemente. (Punktzeichen) und .. (Doppelpunktzeichen) sind und das aktuelle Ver-zeichnis sowie dessen übergeordnetes Verzeichnis darstellen.

Mit FileSize wird die Größe (in Byte) der angegebenen Datei abgerufen.FileSize

Mit FSSize (Dateisystemgröße) wird die Größe (in Byte) des Dateisystemsabgerufen, in dem sich eine angegebene Datei befindet. Mit FSSize kannentweder die gesamte Größe oder die Größe des freien Speichers des Sys-tems abgerufen werden.

FSSize

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 993HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.4.2 RAPID-Komponenten

Page 100: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungFunktion

Mit IsFile wird überprüft, ob die angegebene Datei vom angegebenen Typist. Mit der Funktion kann auch überprüft werden, ob die Datei überhauptvorhanden ist.

IsFile

100 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.4.2 RAPID-KomponentenFortsetzung

Page 101: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.6.4.3 Codebeispiele

Auflisten von DateienIn diesem Beispiel wird gezeigt, wie die Dateien in einem Verzeichnis aufgelistetwerden, wobei das Verzeichnis selbst und das übergeordnete Verzeichnis (. und.) ausgeschlossen werden.

PROC lsdir(string dirname)

VAR dir directory;

VAR string filename;

! Check that dirname really is a directory

IF IsFile(dirname \Directory) THEN

! Open the directory

OpenDir directory, dirname;

! Loop though the files in the directory

WHILE ReadDir(directory, filename) DO

IF (filename <> "." AND filename <> ".." THEN

TPWrite filename;

ENDIF

ENDWHILE

! Close the directory

CloseDir directory;

ENDIF

ENDPROC

Verschieben einer Datei in ein neues VerzeichnisIn diesem Beispiel wird ein neues Verzeichnis erstellt, eine Datei umbenannt undin das neue Verzeichnis verschoben, und das alte Verzeichnis wird entfernt.

VAR dir directory;

VAR string filename;

! Create the directory newdir

MakeDir "HOME:/newdir";

! Rename and move the file

RenameFile "HOME:/olddir/myfile", "HOME:/newdir/yourfile";

! Remove all files in olddir

OpenDir directory, "HOME:/olddir";

WHILE ReadDir(directory, filename) DO

IF (filename <> "." AND filename <> ".." THEN

RemoveFile "HOME:/olddir/" + filename;

ENDIF

ENDWHILE

CloseDir directory;

! Remove the directory olddir (which must be empty)

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1013HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.4.3 Codebeispiele

Page 102: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

RemoveDir "HOME:/olddir";

Überprüfen von GrößenIn diesem Beispiel wird die Größe der Datei mit dem freien Speicher im Dateisystemverglichen. Wenn genügend Speicher frei ist, wird die Datei kopiert.

VAR num freefsyssize;

VAR num f_size;

! Get the size of the file

f_size := FileSize("HOME:/myfile");

! Get the free size on the file system

freefsyssize := FSSize("HOME:/myfile" \Free);

! Copy file if enough space free

IF f_size < freefsyssize THEN

CopyFile "HOME:/myfile", "HOME:/yourfile";

ENDIF

102 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.6.4.3 CodebeispieleFortsetzung

Page 103: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.7 Device Command Interface

2.7.1 Einführung in Device Command Interface

ZweckDevice Command Interface bietet eine Schnittstelle, um mit E/A-Geräten inindustriellen Netzwerken zu kommunizieren.Diese Schnittstelle wird für die Kommunikation mit unformatierten Daten verwendet,siehe Kommunikation mit unformatierten Daten auf Seite 93.

Enthaltene KomponentenDie RobotWare-Basisfunktionalität Device Command Interface bietet IhnenFolgendes:

• Instruktion zum Erstellen eines DeviceNet-Headers

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung von Device CommandInterface. Ein ausführlicheres Beispiel hierfür finden Sie unter Schreiben vonrawbytes in DeviceNet auf Seite 105.

1 Fügen Sie einer rawbytes-Variablen einen DeviceNet-Header hinzu.2 Fügen Sie der rawbytes-Variablen die Daten hinzu.3 Schreiben Sie die rawbytes-Variable auf das DeviceNet-E/A.4 Lesen Sie Daten vom DeviceNet-E/A in eine rawbytes-Variable.5 Extrahieren Sie die Daten aus der rawbytes-Variablen.

EinschränkungenFür die Gerätebefehlskommunikation sind außerdem die Basisfunktionalität Fileand Serial Channel Handling und die Option für das betreffende industrielleNetzwerk erforderlich.Device Command Interface wird von den folgenden industriellen Netzwerktypenunterstützt:

• DeviceNet• EtherNet/IP

Anwendungshandbuch - Steuerungssoftware IRC5 1033HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.7.1 Einführung in Device Command Interface

Page 104: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.7.2 RAPID-Komponenten und Systemparameter

DatentypenFür Device Command Interface sind keine RAPID-Datentypen vorhanden.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Device CommandInterface. Weitere Informationen finden Sie unter der jeweiligen Instruktion imTechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen undDatentypen.

BeschreibungInstruktion

PackDNHeader fügt einen DeviceNet-Header einerrawbytes-Variablenhinzu. Im Header werden ein auszuführender Dienst (z. B. Set oderGet) und ein Parameter für ein DeviceNet E/A-Gerät angegeben.

PackDNHeader

FunktionenEs sind keine RAPID-Funktionen für Device Command Interface vorhanden.

SystemparameterEs sind keine spezifischen Systemparameter in Device Command Interfacevorhanden. Weitere allgemeine Informationen zu Systemparametern finden Sieunter Technisches Referenzhandbuch - Systemparameter.

104 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.7.2 RAPID-Komponenten und Systemparameter

Page 105: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.7.3 Codebeispiel

Schreiben von rawbytes in DeviceNetIn diesem Beispiel werden als rawbytes-Variable gepackte Daten auf ein DeviceNetE/A-Gerät geschrieben. Weitere Informationen über rawbytes finden Sie unterKommunikation mit unformatierten Daten auf Seite 93.

PROC set_filter_value()

VAR iodev dev;

VAR rawbytes rawdata_out;

VAR rawbytes rawdata_in;

VAR num input_int;

VAR byte return_status;

VAR byte return_info;

VAR byte return_errcode;

VAR byte return_errcode2;

! Empty contents of rawdata_out and rawdata_in

ClearRawBytes rawdata_out;

ClearRawBytes rawdata_in;

! Add DeviceNet header to rawdata_out with service

! "SET_ATTRIBUTE_SINGLE" and path to filter attribute on

! DeviceNet I/O device

PackDNHeader "10", "6,20 1D 24 01 30 64,8,1", rawdata_out;

! Add filter value to send to DeviceNet I/O device

input_int:= 5;

PackRawBytes input_int, rawdata_out,(RawBytesLen(rawdata_out) +1) \IntX := USINT;

! Open I/O device

Open "/FCI1:" \File:="board328", dev \Bin;

! Write the contents of rawdata_out to the I/O device

WriteRawBytes dev, rawdata_out \NoOfBytes :=RawBytesLen(rawdata_out);

! Read the answer from the I/O device

ReadRawBytes dev, rawdata_in;

! Close the I/O device

Close dev;

! Unpack rawdata_in to the variable return_status

UnpackRawBytes rawdata_in, 1, return_status \Hex1;

IF return_status = 144 THEN

TPWrite "Status OK from device. Status code:"\Num:=return_status;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1053HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.7.3 Codebeispiel

Page 106: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

ELSE

! Unpack error codes from device answer

UnpackRawBytes rawdata_in, 2, return_errcode \Hex1;

UnpackRawBytes rawdata_in, 3, return_errcode2 \Hex1;

TPWrite "Error code from device: " \Num:=return_errcode;

TPWrite "Additional error code from device: "\Num:=return_errcode2;

ENDIF

ENDPROC

106 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.7.3 CodebeispielFortsetzung

Page 107: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.8 Logical Cross Connections

2.8.1 Einführung in Logical Cross Connections

ZweckMit Logical Cross Connections werden Kombinationen digitaler E/A-Signale (DO,DI) oder Gruppen-E/A-Signale (GO, GI) überprüft und beeinflusst. Diese Optionkann zum Überprüfen oder Steuern von externer Prozessausrüstung verwendetwerden. Die Funktionalität ist vergleichbar mit der einer einfachen SPS.Wenn Sie das E/A-System logische Operationen mit E/A-Signalen verarbeitenlassen, kann ein großer Teil der Ausführung von RAPID-Code vermieden werden.Das Lesen von E/A-Signalwerten, das Berechnen neuer Werte und das Schreibender Werte in Signale kann durch Logical Cross Connections ersetzt werden.Anwendungsbeispiele:

• Unterbrechen der Programmausführung, wenn eins von drei Eingangssignalenauf 1 gesetzt ist.

• Setzen eines Ausgangssignals auf 1, wenn beide Eingangssignale auf 1gesetzt sind.

BeschreibungMit Logical Cross Connections werden die Abhängigkeiten eines E/A-Signals vonanderen E/A-Signalen definiert. Mit den logischen Operatoren AND und OR undinvertierten Signalwerten lassen sich komplexere Abhängigkeiten konfigurieren.Bei den E/A-Signalen, aus denen der logische Ausdruck besteht(Akteur-E/A-Signale), und de E/A-Signal, das das Ergebnis des Ausdrucks ist(resultierendes E/A-Signal), kann es sich entweder um digitale E/A-Signale (DO,DI) oder um Gruppen-E/A-Signale (GO, GI) handeln.

Enthaltene KomponentenLogical Cross Connections ermöglicht Ihnen das Erstellen logischer Ausdrückemit bis zu 5 Akteur-E/A-Signalen sowie den logischen Operationen AND, OR undinvertierten Signalwerten.

Anwendungshandbuch - Steuerungssoftware IRC5 1073HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.8.1 Einführung in Logical Cross Connections

Page 108: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.8.2 Konfigurieren von Logical Cross Connections

SystemparameterHier erhalten Sie eine kurze Beschreibung der Parameter für Logical CrossConnections. Weitere Informationen finden Sie unter dem jeweiligen Parameterim Konfigurieren von Logical Cross Connections auf Seite 108.Diese Parameter gehören zum Typ Cross Connection in der Parametergruppe I/OSystem.

BeschreibungParameter

Gibt den Namen der Querverbindung an.Name

Das E/A-Signal, das als neuen Wert das Ergebnis der Querverbindung er-hält.

Resultant

Das erste E/A-Signal, das für die Auswertung von Resultant zu verwendenist.

Actor 1

Wenn Invert actor 1 auf Yes gesetzt ist, wird der umgekehrte Wert vonActor1 in der Auswertung von Resultant verwendet.

Invert actor 1

Ein Operand zwischen Actor 1 und Actor 2.Operator 1Hierbei kann es sich um einen der beiden Operanden handeln:

• AND – Hat als Ergebnis den Wert 1, wenn beide Eingangswerte 1sind.

• OR – Hat als Ergebnis den Wert 1, wenn mindestens einer der Ein-gangswerte 1 ist.

Hinweis

Die Operatoren werden von links nach rechts berechnet (zuerst Operator1 und zuletzt Operator 4).

Das zweite E/A-Signal (wenn mehr als ein Signal vorhanden ist), das fürdie Auswertung von Resultant zu verwenden ist.

Actor 2

Wenn Invert actor 2 auf Yes gesetzt ist, wird der umgekehrte Wert vonActor2 in der Auswertung von Resultant verwendet.

Invert actor 2

Ein Operand zwischen Actor 2 und Actor 3.Operator 2(siehe Operator 1).

Das dritte E/A-Signal (wenn mehr als zwei Signale vorhanden sind), dasfür die Auswertung von Resultant zu verwenden ist.

Actor 3

Wenn Invert actor 3 auf Yes gesetzt ist, wird der umgekehrte Wert vonActor3 in der Auswertung von Resultant verwendet.

Invert actor 3

Ein Operand zwischen Actor 3 und Actor 4.Operator 3(siehe Operator 1).

Das vierte E/A-Signal (wenn mehr als drei Signale vorhanden sind), dasfür die Auswertung von Resultant zu verwenden ist.

Actor 4

Wenn Invert actor 4 auf Yes gesetzt ist, wird der umgekehrte Wert vonActor4 in der Auswertung von Resultant verwendet.

Invert actor 4

Ein Operand zwischen Actor 4 und Actor 5.Operator 4(siehe Operator 1).

Das fünfte E/A-Signal (wenn alle fünf Signale verwendet werden), das fürdie Auswertung von Resultant zu verwenden ist.

Actor 5

Fortsetzung auf nächster Seite108 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.8.2 Konfigurieren von Logical Cross Connections

Page 109: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

Wenn Invert actor 5 auf Yes gesetzt ist, wird der umgekehrte Wert vonActor5 in der Auswertung von Resultant verwendet.

Invert actor 5

Anwendungshandbuch - Steuerungssoftware IRC5 1093HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.8.2 Konfigurieren von Logical Cross Connections

Fortsetzung

Page 110: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.8.3 Beispiele

Logisch ANDDie folgende logische Struktur ...

xx0300000457

... wird wie unten gezeigt erstellt.

Invertactor 3

Actor3

Operator 2Invertactor 2

Actor2

Operator 1Invertactor 1

Actor 1Resultant

Nodo10ANDNodo2ANDNodi1do26

Logisch ORDie folgende logische Struktur ...

xx0300000459

... wird wie unten gezeigt erstellt.

Invertactor 3

Actor3

Operator 2Invertactor 2

Actor2

Operator 1Invertactor 1

Actor1

Resultant

Nodo10ORNodo2ORNodi1do26

Umgekehrte SignaleDie folgende logische Struktur (ein Kreis stellt ein invertiertes Signal dar) ...

xx0300000460

... wird wie unten gezeigt erstellt.

Invertactor 3

Actor3

Operator 2Invertactor 2

Actor2

Operator 1Invertactor 1

Actor1

Resultant

Yesdo10ORNodo2ORYesdi1do26

Mehrere ResultanteDie folgende logische Struktur kann nicht mit einer einzigen Querverbindungimplementiert werden, ...

xx0300000462

Fortsetzung auf nächster Seite110 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.8.3 Beispiele

Page 111: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

... doch sie lässt sich mit drei Querverbindungen implementieren, wie unten gezeigt.

Invert actor 2Actor 2Operator 1Invert actor 1Actor 1Resultant

Nodo2ANDNodi1di17

Nodo2ANDNodi1do26

Nodo2ANDNodi1do13

Komplexe BedingungenDie folgende logische Struktur ...

xx0300000461

... wird wie unten gezeigt erstellt.

Invertactor 3

Actor3

Operator 2Invert ac-tor 2

Actor 2Operator 1Invertactor 1

Actor1

Resultant

Nodo3ANDNodi2do11

Yesdo3ANDNodi12do14

Nodo3ANDNodi13di11

Nodo3ANDNodi13do23

Nodo3ANDNodi13do17

Yesdi11ORNodo14ORNodo11do15

Nodo23ANDNodi11do33

Nodo3ANDNodo17do61

Yesdo33ORNodo15do54

Anwendungshandbuch - Steuerungssoftware IRC5 1113HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.8.3 Beispiele

Fortsetzung

Page 112: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.8.4 Einschränkungen

Reihenfolge der BerechnungWenn in einer Querverbindung mehr als zwei E/A-Signale verwendet werden,erfolgt die Berechnung von links nach rechts. Dies bedeutet, dass zunächst dieOperation zwischen Actor 1 und Actor 2 berechnet und das Ergebnis in derOperation mit Actor 3 verwendet wird.Wenn alle Operatoren in einer Querverbindung denselben Typ aufweisen (nur ANDoder nur OR), ist die Reihenfolge der Berechnung unerheblich. Die gemeinsameVerwendung der Operatoren AND und OR ohne Berücksichtigung derBerechnungsreihenfolge kann jedoch zu einem unvorhergesehenen Ergebnisführen.

Tipp

Verwenden Sie mehrere Querverbindungen, statt AND und OR in derselbenQuerverbindung gemeinsam zu verwenden.

Maximale Anzahl von Akteur-E/A-SignalenEine Querverbindung kann nicht mehr als fünf Akteur-E/A-Signale besitzen. Wennmehr Akteur-E/A-Signale erforderlich sind, verwenden Sie mehrereQuerverbindungen.

Maximale Anzahl an QuerverbindungenDie maximale Anzahl an Querverbindungen, die das Robotersystem handhabenkann, ist 300.

Maximale TiefeDie maximal zulässige Anzahl von Querverbindungsberechnungen beträgt 20.Ein Ergebnissignal aus einer Querverbindung kann als Akteursignal in einer anderenQuerverbindung verwendet werden. Das Ergebnissignal aus dieser Querverbindungkann wiederum als Akteursignal in der nächsten Querverbindung verwendet werden.Die Tiefe dieser Abfolge voneinander abhängiger Querverbindungen kann jedochnicht mehr als 20 Schritte betragen.

Bilden Sie keine SchleifeQuerverbindungen dürfen keine zirkuläre Verkettung bilden, die eine unendlicheBerechnung und Oszillierung verursachen würden. Eine zirkuläre Verkettung trittauf, wenn Querverbindungen so miteinander verbunden werden, dass sie einengeschlossenen Kreis ergeben.

Besitzen denselben Resultant höchstens einmal.Mehrdeutige E/A-Ergebnissignale sind nicht erlaubt, da das Ergebnis von derReihenfolge der Berechnung abhängen würde (was nicht beeinflusst werden kann).Mehrdeutige E/A-Ergebnissignale können auftreten, wenn dasselbe E/A-Signaldas Ergebnis von mehreren Querverbindungen ist.

Fortsetzung auf nächster Seite112 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.8.4 Einschränkungen

Page 113: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Überlagernde GerätezuordnungenEin resultierendes E/A-Signal aus einer Querverbindung darf keine überlagerndeGerätezuordnung mit einem der Akteur-E/A-Signale besitzen, die in derQuerverbindung definiert sind. Die Verwendung von E/A-Signalen mit einerüberlagernden Gerätezuordnung kann zu Endlosschleifen der Signaleinstellungführen.

Anwendungshandbuch - Steuerungssoftware IRC5 1133HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.8.4 Einschränkungen

Fortsetzung

Page 114: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.9 Connected Services

2.9.1 Überblick

BeschreibungConnected Services (war vorher als Remote Service bekannt) ist eine Funktionalität,die für ABB-Robotersteuerungen verfügbar ist, und eine Verbindung mit ABB-Cloudherstellt.Früher war die Connected Services Funktion auf einer externen Hardware (RemoteService Box) implementiert, die mit dem Serviceport des Controllers verbundenwar. Remote Service Box hatte Datenerfassung und externe Konnektivität geboten(drahtloses GPRS, 3G, oder verkabelt).Connected Services ist die Softwareversion von Remote Service Kästchen innenRobotWare.

ZweckDer primäre Zweck von Connected Services ist es, den Bedarf von externerHardware zu entfernen, wenn die Robotersteuerung mit dem Internet vom Kundenmit seinem WAN-Port verbunden ist.Connected Services ist dann als Plug-und-Connect-Lösung in RobotWare verfügbar.Dabei wird das folgende Konfigurationskonzept angewandt:

• Internet-Konnektivität zum Controller zu bieten.• die verbundene Steuerung zu aktivieren und mit Connected Services zu

registrieren.Ein ABB 3G/4G/Wifi-Gateway oder andere externe Geräte werden künftig für dieVerwendung von drahtloser Konnektivität verfügbar sein.

Enthaltene KomponentenDie RobotWare-Basisfunktionalität Connected Services ermöglicht Ihnen denZugriff auf folgende Elemente:

• Eine Connected Services Agent Software, um die Konnektivität und dieServicedatenerfassung zu verwalten.

• Systemparameter, die verwendet werden, um die Konnektivität zu aktivierenund zu konfigurieren.

• spezielle Ereignisprotokolle für Schlüsselereignisse von Connected Services.• Status und Informationsseiten verfügbar in System Info.

Fortsetzung auf nächster Seite114 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.1 Überblick

Page 115: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

VoraussetzungenDie Connected Services-Funktion erfordert, dass die Steuerung in einerServicevereinbarung definiert ist. Kontaktieren Sie den örtlichen ABB Service, umeine Servicevereinbarung bezüglich der Connected Services zu erstellen undZugang zur MyRobot Webseite zu erhalten, damit Sie sich nach derVerbindungsherstellung registrieren können.

Hinweis

MyRobot ist die ABB Webseite, die gemäß einer Servicevereinbarung Zugangzu den Service-Informationen einer Robotersteuerung bietet.

Grundlegender ArbeitsablaufDies ist dder grundlegende Arbeitsablauf für das Setup von Connected Services.

1 Internet-Konnektivität mit der Steuerung konfigurieren.2 Connected Services und Startup Connection aktivieren.3 Registrieren Sie den Controller auf der MyRobot Registrierungsseite.

Wenn die Connected Services Software verbunden und registriert ist, läuft dieServicedatenerfassung transparent im Hintergrund.

Hinweis

Verwenden Sie die System Info Connected Services Seiten für Informationenund lokale Registrierung.Verwenden Sie die MyRobot-Webseite für alle Connected Service Funktionenund die Connected Service Side Registrierung

EinschränkungenDas Folgende sind die Beschränkungen von Connected Services:

• Die Steuerungsidentifikation erfolgt unter Verwendung derSteuerungsseriennummer und muss mit der Seriennummer übereinstimmen,die in der Service-Level-Vereinbarung definiert ist.

• Der Kunde muss für die Robotersteuerung auch die Verbindung mit demöffentlichen Internet bereitstellen und den ABB Wireless Gateway oder einenDrittanbieter verwenden, falls verfügbar.

Anwendungshandbuch - Steuerungssoftware IRC5 1153HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.1 Überblick

Fortsetzung

Page 116: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.9.2 Connected Services – Konnektivität

Connected Services – VerbindungskonzeptConnected Services basiert auf dem folgenden Konzept: Ein virtuellerSoftware-Agent wird in die Steuerung implementiert und kommuniziert sicher mitder ABB Connected Services Cloud über das Internet. Die Kommunikation istgesichert und verschlüsselt durch HTTPS (Secure HTTP) und verläuft lediglichvon der Steuerung zum ABB CSC Connector, um das Kundennetzwerk von allenexternen Internetzugängen getrennt zu halten. Die folgende Abbildungveranschaulicht diese drei Konzepte:

xx1500003224

Fortsetzung auf nächster Seite116 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.2 Connected Services – Konnektivität

Page 117: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

FehlerbehebungSie können die Konnektivität von der Steuerung zum Connected Services PublicConnector Server von Ihrem Standort aus überprüfen. Dies erfolgt durch denAnschluss eines PCs (anstatt der Steuerung) mit derselben Netzwerkkonfiguration(WAN IP/Mask, DNS, Route) und das Öffnen des Pfads zum Root des Servers(https://rseprod.abb.com) in einem Browser. Die Konnektivität wird validiert, wennder DNS-Name aufgelöst wurde. Der Browser zeigt eine Seite, die den CS Serverangibt und mit einem ABB Zertifikat gesichert ist, wie in der folgenden Abbildungdargestellt.

xx1500003225

Anwendungshandbuch - Steuerungssoftware IRC5 1173HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.2 Connected Services – Konnektivität

Fortsetzung

Page 118: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.9.3 Konfiguration - Systemparameter

EinleitungDieser Abschnitt bietet eine Kurzbeschreibung der Systemparameter, die fürConnected Services verwendet werden. Weitere Informationen siehe TechnischesReferenzhandbuch - Systemparameter - Connected Services.

Connected Services VerbindungDie folgenden Parameter gehören zum Thema Communication und dem TypConnected Services. Weitere Informationen siehe entsprechender Parameter inTechnisches Referenzhandbuch - Systemparameter - Connected Services.

BeschreibungParameter

CS aktivieren oder deaktivieren. Wenn CS deaktiviert ist, gibt eskeine Kommunikation von der Steuerung.

Enabled

Gibt an, ob die Kommunikation auf dem Kundennetzwerk erfolgtoder durch die Verwendung der ABB Mobile Gateway Lösung (inzukünftige Lieferungen zu implementieren).

Connection Type

Anpassen der Pollraten und des Verkehrsvolumens an die Art derverfügbaren Konnektivität:

• Befehl Abrufen (niedrig) 1 min, (mittel) 10 min, (hoch) 1Stunde.

• Registrierung Abrufen (niedrig) 10 min, (mittel) 30 min, (hoch)2 Stunden.

Connection Cost

Gibt an, ob ein Proxy für den Internetzugang erforderlich ist undseinen Namen und Port.

Proxy Used, Name,Port

Legt fest, ob der Proxy durch entsprechende Anmeldeinformationen(Benutzername, Passwort) authentifiziert ist.

WARNUNG

Das Proxypasswort wird im Klartext gespeichert.

Proxy Auth, User,password

IP-Adresse der ABB Mobile Gateway Lösung, falls verwendet (inkünftigen Lieferungen).

Gateway IP Address

WAN KonfigurationDie Konfiguration von WAN IP/Maske/Gateway erfolgt in den Einstellungen derStartanwendung. Die Konfiguration des WAN-Ethernet-Anschlusses, die denZugang zum Internet ermöglicht, muss auf der Steuerung erfolgen. Der Anschlusswird durch seine IP, Maske und das mögliche Gateway definiert. Für Details überdie WAN-Konfiguration, siehe Hardware-Übersicht imAnwendungshandbuch - EtherNet/IP Scanner/Adapter.

Fortsetzung auf nächster Seite118 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.3 Konfiguration - Systemparameter

Page 119: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

DNS KonfigurationDiese Parameter gehören zur ParametergruppeCommunication und dem TypDNSClient. Ein DNS-Server muss festgelegt werden, um den Namen des ABB ConnectedServices Connectors (rseprod.abb.com) für die entsprechende IP-Adresseaufzuschlüsseln, wenn ABB Mobile Gateway nicht verwendet wird. WeitereInformationen siehe Type DNS Client unter TechnischesReferenzhandbuch - Systemparameter.

Hinweis

Verwenden Sie für einen Schnelltest DNS als 8.8.8.8. (Google DNS) und schaltenSie dann um auf die für Kunden empfohlene DNS-Server-IP-Adresse.

IP-Routingkonfiguration.Diese Parameter gehören zum Thema Communication und dem Typ IP Routing.In einigen Fällen ist es notwendig, einige Routing-Parameter zu definieren, umanzuzeigen, welches spezifische externe Gerät als Gateway verwendet wird, umauf das Internet im Kundennetz zuzugreifen. Standardmäßig wird eine IP Routeerstellt, basierend auf dem Gateway, der am WAN Port definiert ist. Aber es istauch möglich, eine spezifische Route hinzuzufügen, wenn der Standard-Gatewaynicht verwendet werden soll. Weitere Details siehe Type IP Route in TechnischesReferenzhandbuch - Systemparameter.

Hinweis

Wenn der Internet-Gateway nicht der Haupt-Gateway ist, müssen die Übertragungan rseprod.abb.com sowie die DNS-Übertragung als zusätzliche Routen festgelegtwerden.Wenn der Internet-Gateway beispielsweise die IP-Adresse 100.100.100.22 hat,rseprod.abb.com die IP-Adresse 138.227.175.43 (dies kann mittels nslookupüberprüft werden) und der DNS-Server die IP-Adresse 8.8.8.8 hat, müssen Siedie folgenden beiden Routen festlegen:

• Route von 138.227.175.43/31 nach 100.100.100.22• Route von 8.8.8.8/31 nach 100.100.100.22

Anwendungshandbuch - Steuerungssoftware IRC5 1193HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.3 Konfiguration - Systemparameter

Fortsetzung

Page 120: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.9.4 Konfigurieren von Connected Services

ÜberblickIn diesem Abschnitt wird erklärt, wie die Connected Services-Funktion mit derSteuerung konfiguriert wird, wenn das Internet auf dem Standard-Gateway verfügbarist. Es gibt zwei separate Netzwerkeinrichtungen:

• Direkte Internetverbindung ohne Proxy.• Internetkonnektivität mittels Proxy.

Direkte InternetverbindungDas folgende Verfahren bietet Informationen über das Konfigurieren von ConnectedServices über das FlexPendant, wenn eine direkte Internetverbindung von derSteuerung vorhanden ist.

AbbildungAktion

Wählen Sie imABB-MenüSystemeinstel-lungen aus.

1

Wählen Sie Konfiguration.2

Wählen Sie unterParametergruppen dieOption Kommunikation aus.

3

xx1600001326

Wählen Sie Connected Services undbearbeiten Sie RSCON.

4

xx1600001327

Wählen Sie unter Aktiviert die OptionYes aus.

5

Tippen Sie auf OK und starten Sie dieSteuerung neu, damit die Änderungenwirksam werden.

6

Fortsetzung auf nächster Seite120 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.4 Konfigurieren von Connected Services

Page 121: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Direkte Internetverbindung mit manuellem DNSDas folgende Verfahren bietet Informationen über das Konfigurieren von ConnectedServices über das FlexPendant, wenn eine direkte Internetverbindung mitmanuellem DNS vorhanden ist.

AbbildungAktion

Wählen Sie imABB-MenüSystemeinstel-lungen aus.

1

Wählen Sie Konfiguration.2

Wählen Sie unterParametergruppen dieOption Kommunikation aus.

3

xx1600001329

Wählen Sie DNS Client und bearbeitenSie DNS Client.

4

xx1600001330

Bearbeiten Sie „1st Name Server“.5

Tippen Sie auf OK und starten Sie dieSteuerung neu, damit die Änderungenwirksam werden.

6

Internetverbindung mit ProxyDas folgende Verfahren bietet Informationen über das Konfigurieren von ConnectedServices über das FlexPendant, wenn eine Internetverbindung mit Proxy vorhandenist.

AbbildungAktion

Wählen Sie im ABB-Menü Control Panelaus.

1

Tippen Sie auf Konfiguration.2

Wählen Sie unterParametergruppen dieOption Kommunikation aus.

3

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1213HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.4 Konfigurieren von Connected Services

Fortsetzung

Page 122: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

AbbildungAktion

Wählen Sie Connected Services undwählen Sie unter Proxy verwendet dieOption Yes aus.

4

xx1600001331

Wählen Sie unter Proxy Auth die OptionNone für keine Authentifizierung aus derDropdown-Liste aus.

5

xx1600001332

Wählen Sie unter Proxy Auth die OptionBasic für Standardauthentifizierung ausder Dropdown-Liste aus.

• Geben Sie den Proxy-Namen, denProxy-Port, den Benutzernamenund das Passwort für die Standar-dauthentifizierung an.

6

Tippen Sie auf OK und starten Sie dieSteuerung neu, damit die Änderungenwirksam werden.

7

Hinweis

Manuelle Festlegung des DNS-Servers, wenn dieser bei Proxy-Verwendung nichtautomatisch bereitgestellt wird.

122 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.4 Konfigurieren von Connected ServicesFortsetzung

Page 123: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.9.5 Konfigurieren von Connected Services mithilfe von Gateway-Box

ÜberblickIn diesem Abschnitt wird erklärt, wie die Connected Services-Funktion mithilfeeines externen Internet-Gateways (3G/4G, WiFi, usw.) konfiguriert wird, der in derSteuerung nicht als Standard-Gateway festgelegt ist. In diesem Fall werdenzusätzliche Routen benötigt, um den externen Internet-Gateway zu erreichen.

Steuerung mit DHCPDas folgende Verfahren bietet Informationen über das Konfigurieren von ConnectedServices über das FlexPendant, wenn eine Steuerung mit DHCP vorhanden ist.

AbbildungAktion

Wählen Sie imABB-MenüSystemeinstel-lungen aus.

1

Wählen Sie Konfiguration.2

Wählen Sie unterParametergruppen dieOption Kommunikation aus.

3

xx1600001333

Wählen Sie IP Route und tippen Sie aufHinzufügen.

4

xx1600001334

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1233HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.5 Konfigurieren von Connected Services mithilfe von Gateway-Box

Page 124: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

AbbildungAktion

xx1600001335

Geben Sie die Details für Ziel, Gatewayund Bezeichnung ein.

• In diesem Beispiel istDestination:138.227.175.43/31 die rse-pro.abb.com-IP.

• Gateway: 192.168.125.83

5

Tippen Sie auf OK und starten Sie dieSteuerung neu, damit die Änderungenwirksam werden.

6

Steuerung mit NHCP und manuellem DNSDas folgende Verfahren bietet Informationen über das Konfigurieren von ConnectedServices über das FlexPendant für eine Steuerung mit DHCP und manuellem DNS.

AbbildungAktion

Wählen Sie imABB-MenüSystemeinstel-lungen aus.

1

Wählen Sie Konfiguration.2

Wählen Sie unterParametergruppen dieOption Kommunikation aus.

3

Wählen Sie IP Route und tippen Sie aufHinzufügen.

4

xx1600001337

Geben Sie die Details für Ziel, Gatewayund Bezeichnung ein.

• Wenn die DNS-IP manuell einge-geben wird, fügen Sie das Routingfür die DNS-IP hinzu.

• In diesem Beispiel istDestination:8.8.8.8/31 die Google-DNS.

5

Tippen Sie auf OK und starten Sie dieSteuerung neu, damit die Änderungenwirksam werden.

6

Fortsetzung auf nächster Seite124 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.5 Konfigurieren von Connected Services mithilfe von Gateway-BoxFortsetzung

Page 125: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Gateway-Box in KundennetzwerkWenn eine Gateway-Box für mehrere Steuerungen konfiguriert ist, dann ändertsich die LAN-IP der Gateway-Box. Weitere Informationen über das Einstellen derGateway-Box für mehrere Steuerungen siehe Produkthandbuch – ConnectedServices.Die Gateway-Boy muss mit dem Kundennetzwerk verbunden sein und die LAN-IPsollte so geändert werden, dass sie mit dem IP-Segment des Kundennetzwerksübereinstimmt. Eine typische Netzwerkinfrastruktur ist unten dargestellt.

xx1600001338

Hinweis

Die Netzwerkinfrastruktur ist ein Beispiel zum Veranschaulichen derNetzwerktopologie.

Schritte zur manuellen DNS-Konfiguration

AbbildungAktion

Wählen Sie imABB-MenüSystemeinstel-lungen aus.

1

Wählen Sie Konfiguration.2

Wählen Sie unterParametergruppen dieOption Kommunikation aus.

3

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1253HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.5 Konfigurieren von Connected Services mithilfe von Gateway-Box

Fortsetzung

Page 126: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

AbbildungAktion

Wählen Sie IP Route und tippen Sie aufHinzufügen.

4

xx1600001339

Geben Sie die Details für Ziel, Gatewayund Bezeichnung ein.

• Geben Sie die Gateway-IP alsBox-IP ein.In diesem Beispiel ist sie172.16.16.25.

5

Tippen Sie auf OK und starten Sie dieSteuerung neu, damit die Änderungenwirksam werden.

6

Hinweis

Legen Sie den DNS manuell fest, wenn er nicht automatisch bereitgestellt wird.Legen Sie auch eine Route für die DNS-IP fest, die durch die Gateway-Box führt.

126 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.5 Konfigurieren von Connected Services mithilfe von Gateway-BoxFortsetzung

Page 127: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.9.6 Connected Services auf LAN 3.

ÜberblickWenn das Internet nicht durch das Produktions-WAN-Netzwerk bereitgestellt wird,kann eine LAN-3-Konfiguration hergestellt und zur Verbindung mit dem ConnectedServices Server verwendet werden.LAN 3 (verfügbar über Port X5) fungiert als separater Switch und verfügt über eineIP, die manuell konfiguriert werden kann.

Schritte zur LAN-3-KonfigurationFühren Sie zur manuellen IP-Konfiguration die folgenden Schritte aus:

AktionSchritt

Wählen Sie im ABB-Menü Systemeinstellungen aus.1

Wählen Sie Konfiguration.2

Wählen Sie unter Parametergruppen die Option Kommunikation.

Wählen Sie IP-Einstellungen und tippen Sie auf Hinzufügen.• Geben Sie die Details für IP-Adresse, Schnittstelle und Bezeichnung ein.• Ändern Sie die Interface in LAN3.

3

Tippen Sie auf OK und starten Sie die Steuerung neu, damit die Änderungenwirksam werden.

4

Das folgende Diagramm zeigt ein Beispiel für die Verwendung einerInternet-Gateway-Box.

xx1700000061

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1273HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.6 Connected Services auf LAN 3.

Page 128: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Im Diagramm oben (zum Beispiel Robotersteuerung 1) wird gezeigt, wie Sie PortX5 (LAN 3) die IP-Adresse 172.16.16.21 zuweisen und die LAN-IP der Gateway-Boxin 172.16.16.25 ändern, sodass sie dasselbe IP-Segment enthält.Möglicherweise wird eine Route benötigt, um die Übertragung an den ABBConnected Services Server (rseprod.abb.com:138.227.175.43) zu leiten und dabeiden Internet-Gateway auf LAN 3 anstelle des Standard-Gateways auf WAN zuverwenden.Gehen Sie danach folgendermaßen vor, um den Routing-Eintrag hinzuzufügen:

• Ziel: 138.227.175.43/31• Gateway: 172.16.16.25 (Box-LAN-IP)

In diesem Beispiel wird LAN 3 für alle Steuerungen konfiguriert, sodass sie dasselbeIP-Segment (172.16.16.xx) enthalten. Auf diese Weise können mehrere Steuerungenmit der Gateway Box verbunden werden.Wenn über das Produktions-WAN-Netzwerk kein Kunden-DNS bereitgestellt wird,konfigurieren Sie den DNS manuell, damit er als Gateway-IP fungieren kann. SieheSchritte zur manuellen DNS-Konfiguration auf Seite 125.

Hinweis

Wenn die Gateway-Box lediglich Internetzugang ohne DNS-Auflösung bereitstellt,fügen Sie manuell einen externen DNS hinzu, beispielsweise 8.8.8.8. Gehen Siedanach folgendermaßen vor, um das zusätzliche Routing einzugeben:

• Ziel: 8.8.8.8/31• Gateway: 172.16.16.25 (Box-LAN-IP)

128 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.6 Connected Services auf LAN 3.Fortsetzung

Page 129: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.9.7 Connected Services – Registrierung

Connected Services – StartDas Startverfahren von Connected Services basiert auf den folgenden Schritten:

• (0) Connected Services: Vorbereitung• (1) Connected Services: Konfiguration• (2) Connected Services: Konnektivität• (3) Connected Services: Registrierung• (4) Connected Services: Verbunden und registriert

Wenn diese Schritte ausgeführt werden, ist der Software-Agent ordnungsgemäßmit einem Client-Zertifikat verbunden und wird mit diesem identifiziert. DieseKonzepte werden in der folgenden Abbildung beschrieben:

Internet

Customer/ABB CS Tech On Site

Connected Services Embedded

Registration

Controller S/N : 12-3456

RegIstra!on Code : 347685

Customer/ABB CS Admin

ABB Connected

Services Center

Internet

S/N 12-3456

Connected Services Embedded

Registration

Service Agreemnt #: ABCD1234

Controller S/N: 12-3456

=> Code 347685

My Robot

Register

So"ware

Agent

Client

Cer!ficate

Client C

erti�

cate

CS

CSE

CS

xx1500003226

Connected Services: Vorbereitung• Gleichen Sie die Steuerungsseriennummer mit derjenigen im

Steuerungsmodulschrank ab.• Internet-Konnektivität am Controller prüfen und bereitstellen.• Prüfen Sie, dass die Service-Vereinbarung für diesen Controller bei ABB

Robotics Service verfügbar ist.

Connected Services: Konfiguration• Konfigurieren Sie die Konnektivitäts-Parameter.• Aktivieren Sie Connected Services.

Connected Services – Konnektivität• Der Software-Agent verbindet sich mit dem ABB Connected Services Center.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1293HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.7 Connected Services – Registrierung

Page 130: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

• Ein anfänglicher Registrierungsprozess beginnt bei einer niedrigenPolling-Rate

• Die anfängliche Registrierung ist unvollständig und noch nichtvertrauenswürdig.

• Ein Registrierungscode wird empfangen, um die Vertrauensverbindungabzuschließen.

• Der Registrierungscode ist auf der Connected Services Registrierungsseiteverfügbar.

Connected Services – Registrierung• Der Kunde/ABB stellt dem Connected Services Administrator vor Ort die

Steuerungsseriennummer und den Registrierungscode für die Registrierungzur Verfügung.

• Der Connected Services Administrator validiert diesen Registrierungscodein MyRobot auf seiner Servicevereinbarung.

• Die Registrierung beginnt und implementiert ein Kundenzertifikat in denController.

Connected Services: Verbunden und registriert• Der Controller ist verbunden, registriert und in der Servicevereinbarung

identifiziert.• Für die Verbindung wird ein Client-Zertifikat installiert.• Connected Services läuft nun aktiv auf der Robotersteuerung.

130 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.7 Connected Services – RegistrierungFortsetzung

Page 131: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.9.8 Connected Services Informationen

Connected Services Seiten

EinleitungDie Connected Services Informationsseiten sind verfügbar unterSysteminformationen > Softwareressourcen > Kommunikation > ConnectedServices. Die folgenden 4 Seiten sind die Connected Services Informationsseiten:

• Überblick• Serververbindung• Registrierung• Erweitert

Hinweis

Die Informationen auf einer Seite können durch Ändern der Seite oder Drückender Taste Aktualisieren aktualisiert werden. Die Taste Aktualisieren forciertauch eine Verbindung mit dem Server, wenn der Software-Agent wartet (z. B.auf eine Registrierungsbestätigung von MyRobot). Dies ist nützlich bei einemlangsamen Abruf, wenn die Verbindungskosten auf High gesetzt sind.

ÜbersichtsseiteDie Seite Übersicht bietet eine Zusammenfassung der Connected ServicesStatusinformationen. Wenn der Status nicht aktiv ist, bieten die anderen Seitendetailliertere Informationen.

Beispiel:Mögliche WerteBeschreibungFeld

YesYes/NoZeigt den Wert des Masterkonfigura-tionsschalters zum Ein-/Ausschaltenvon Connected Services an.

Aktiviert

Active"-"Zeigt den aktuellen Status an, umzu sehen, ob man zur Seite Server-verbindung oderRegistrierung na-vigieren muss.

StatusFailedInitializingShutdownRegistration inprogressTrying to connectActive

12-45678Controller Serialnumber

Zeigt die Kennung an, die verwen-det wird, um die Steuerung inConnected Service zu identifizieren.

Seriennummer

6.03.0088RobotWare versi-on name

Zeigt die RobotWare-Version, diean den Server gesendet wurde.

RobotWare-Versi-on

20-NZeigt an, wie oft der Software-Agentautomatisch neu gestartet wurde.Dies wird verwendet, um zu sehen,ob Watchdog den Software-Agentneu gestartet hat.

Zähler neu star-ten If not Enabled,

then display: 0

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1313HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.8 Connected Services Informationen

Page 132: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Beispiel:Mögliche WerteBeschreibungFeld

0116/ROBOTWA-RE-6.02.0000+/5196

"Data CollectorScript name""-"

Zeigt die heruntergeladene Datener-fassungs-Codeversion

Script Version

SA_FR12_16"Name der Ser-vicevereinba-rung"

Um zu prüfen, ob die Steuerung mitder erwarteten Servicevereinbarungverbunden ist.

Service-Verein-barung

"-"

ABB Robotics"Kundennameder Serviceverein-barung"

Um zu prüfen, ob die Steuerung mitder erwarteten Servicevereinbarungverbunden ist.

Kundenname

"-"

Frankreich"Land der Ser-vicevereinba-rung"

Um zu prüfen, ob die Steuerung mitder erwarteten Servicevereinbarungverbunden ist.

Land

"-"

Bei der Aktualisierung antwortet derSoftware-Agent mit den aktuellenDaten und unterbricht den Wartesta-tus (falls er wartet), um den Serverzu kontaktieren und die Informatio-nen zu aktualisieren.

Aktualisierungs-taste

SerververbindungsseiteDie Seite Serververbindung bietet eine Zusammenfassung der CS Konnektivitätmit dem Server.

Beispiel:Mögliche WerteBeschreibungFeld

Active"-"Zeigt den aktuellen Status an, umzu sehen, ob man zur Seite Server-verbindung oderRegistrierung na-vigieren muss.

StatusFailedInitializingShutdownRegistration inprogressTrying to connectActive

ConnectedInitializingZeigt den Kommunikationsstatusmit dem Server und die Art desFehlers an.

Verbindungs-Status Server not re-

achableServer not au-thenticatedServer error(HTTP xxxx)Connected

"vor HH:MM:SS"Zeigt die relative Zeit an, seitdemdie Information auf der SeiteServer-verbindung erzeugt wurde.

Letzter Update

rseprod.abb.com""Zeigt den Servernamen an, mit demder Software-Agent konfiguriert ist.

ServernameServername

Fortsetzung auf nächster Seite132 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.8 Connected Services InformationenFortsetzung

Page 133: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Beispiel:Mögliche WerteBeschreibungFeld

138.227.175.43""Zeigt die IP Adresse des Serversund die Port-Nummer an, die für dieVerbindung verwendet wird. Die IPAdresse ist das Ergebnis der Auflö-sung des DNS-Namens durch denSoftware-Agenten.

Server IPServer IP

rseprod.abb.com""Zeigt Informationen über den Server-zertifikatsnamen an.

Serverzertifikats-name Servername

Nicht zuverlässig(Server)

ABB AusstellungCA 6

""Aussteller

Zeigt den Namen über den Server-zertifikatsaussteller an.

Serverzertifikats-aussteller

Nicht zuverlässig(Aussteller)

Nov 21 07:09:282017 GMT

""Aussteller

Zeigt das Serverzertifikatsdatum an.Serverzertifikatgültig bis

Abgelaufen (Da-tum)

16-01-0813:52:33

Anzeige von Datum und Uhrzeit desControllers.

Hinweis

Es ist wichtig, dass in der Steuerungdie korrekte Zeit eingestellt wird, dadiese für den Zertifizierungsprozessbenötigt wird.

Controllerzeit

10.0.23.45Nicht verfügbarZeigt die DNS Information an.DNS ServerDNS Wert

Bei der Aktualisierung antwortet derSoftware-Agent mit den aktuellenDaten und unterbricht den Wartesta-tus (falls er wartet), um den Serverzu kontaktieren und die Informatio-nen zu aktualisieren.

Aktualisierungs-taste

RegistrierungsseiteDie Seite Registrierung bietet eine Zusammenfassung der Connected ServicesRegistrierung.

Beispiel:Mögliche WerteBeschreibungFeld

Active"-"Zeigt den aktuellen Status an, umzu sehen, ob man zur Seite Server-verbindung oderRegistrierung na-vigieren muss.

StatusFailedInitializingShutdownRegistration inprogressTrying to connectActive

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1333HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.8 Connected Services Informationen

Fortsetzung

Page 134: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Beispiel:Mögliche WerteBeschreibungFeld

Registrieren mitCode in MyRobot

Register with co-de in MyRobot

Zeigt den Registrierungsstatus undCode an.

Registrierungs-status

Registration inprogressRegisteredFailed

456735"-"Zeigt den Registrierungscode an.Dieser Code kann für den Login zuMyRobot verwendet werden.

Registrierungs-code Codewert

Bei der Aktualisierung antwortet derSoftware-Agent mit den aktuellenDaten und unterbricht den Wartesta-tus (falls er wartet), um den Serverzu kontaktieren und die Informatio-nen zu aktualisieren.

Aktualisierungs-taste

"Erweitert" SeiteDie Seite Erweitert bietet erweiterte Informationen über den Dialog zwischenSoftware-Agent und Server.

Beispiel:Mögliche WerteBeschreibungFeld

GetMessageRegisterZeigt die letzte versendete Meldungan

Letzte HTTP-Nachricht CheckRegister

GetLoginInfoGetMessage...

Gesendet vorhh:mm:ss

Zeigt das Datum und die Uhrzeit an,wann die letzte Meldung versendetwurde.

Letzte HTTP-Nachrichtenzeit

Nicht verfügbarNot AvailableZeigt den HTTP Fehler, als die letzteMeldung versendet wurde und dieNachricht-ID wenn 4XX.

Letzter HTTPFehler Fehler HTTP XXX

+ Nachricht

GetMessage in70 Sekunden

Zeigt die nächste zu versendendeMeldung und das Datum, an demsie versendet werden soll, an.

Nächste Nach-richt

Nicht verfügbarNot AvailableZeigt den letzten vom Server erhal-tenen Befehl an.

Leetzter BefehlRebootResetPingDiagnostic...

Bei der Aktualisierung antwortet derSoftware-Agent mit den aktuellenDaten und unterbricht den Wartesta-tus (falls er wartet), um den Serverzu kontaktieren und die Informatio-nen zu aktualisieren.

Aktualisierungs-taste

Fortsetzung auf nächster Seite134 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.8 Connected Services InformationenFortsetzung

Page 135: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Beispiel:Mögliche WerteBeschreibungFeld

0/1/0/3/4/0/1Fehler „0-N fürjeden Server“

Zeigt eine Anzahl der folgendenServerfehler an:

• Timeout-Fehler:• Abfragefehler:• Verbindungsfehler• Fehler „Verbindung nicht

verfügbar“• Unbekannte Fehler• Authentifizierungsfehler• Proxy-Fehler

Serverfehler

Connected Services ProtokolleDer CS Agent erzeugt einige Ereignisprotokolle im zentralenSteuerungs-Ereignisprotokoll. Ereignisprotokolle werden während des Startens,Registrierens, Abmeldens, Konnektivitätsverlusts und während andererSchlüsselereignisse erzeugt.Die Ereignisprotokolle liegen im Bereich von 170XXX und sind in derEreignisprotokolldokumentation beschrieben. Weitere Informationen sieheBedienungsanleitung - Fehlerbehebung an IRC5.

Ein Zurücksetzen des Software-Agenten erzwingenEs ist möglich, den Software-Agenten zurückzusetzen. Beim Zurücksetzen löschtder CS Agent alle seine Informationen, einschließlich derRegistrierungsinformationen, der Datenerfassungs-Skripts und aller lokalenService-Informationen. Die Konfiguration wird nicht zurückgesetzt, aber eine neueRegistrierung ist erforderlich, um Connected Services zu reaktivieren.Gehen Sie wie folgt vor, um den Software-Agent zurückzusetzen:

Aktion

Tippen Sie auf die ABB-Schaltfläche, um das ABB-Menü zu öffnen.Prozessanwendungen werden im Menü aufgelistet.

1

Tippen Sie auf Program Editor -> Debug -> Call Routine.

Hinweis

Tippen Sie auf PP to Main wenn Debug deaktiviert ist.

2

Tippen Sie auf Connected Services Reset -> Go to. Drücken Sie die Taste Motorson auf der Steuerung.

3

Drücken Sie die Taste Play, um die Resetroutine auszuführen - > tippen Sie aufReset.4

Anwendungshandbuch - Steuerungssoftware IRC5 1353HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.9.8 Connected Services Informationen

Fortsetzung

Page 136: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2.10 User logs

2.10.1 Einführung in User logs

BeschreibungDie RobotWare BasisfunktionUser logs erstellt Ereignisprotokolle für die häufigstenBenutzermaßnahmen. Die Ereignisprotokolle werden in der GruppeBetriebsereignisse erstellt, mit der Nummernfolge 1 xxxx.Für weitere Informationen zum Umgang mit dem Ereignisprotokoll sieheBedienungsanleitung - IRC5 mit FlexPendant undBedienungsanleitung - Fehlerbehebung an IRC5.

ZweckDer Zweck von User logs ist die Nachverfolgung von Änderungen in derRobotersteuerung, die in Zusammenhang mit Benutzermaßnahmen stehen. Dieskann hilfreich sein, wenn man bei einem Produktionsstopp nach derStörungsursache sucht.

Enthaltene KomponentenDie RobotWare BasisfunktionUser logs erstellt Ereignisprotokolle für die folgendenVeränderungen in Zusammenhang mit Benutzermaßnahmen:

BenutzermaßnahmeParametergruppe

Änderung der Geschwindigkeit oder des Abarbeitungsmodus(Einzelzyklus/kontinuierlich). Änderungen am Taskauswahl-feld. Einstellung oder Zurücksetzung des Nichtbewegungs-Abarbeitungsmodus.

Programmabarbeitung

Simulation von Warteinstruktionen, beispielsweiseWaitTime, WaitUntil, WaitDx, usw.

Simulation von Warteinstruk-tionen

Öffnen und Schließen von RAPID-Programmen oder Modu-len, Bearbeiten des RAPID-Codes oder Ändern der Roboter-positionen.

RAPID-Änderungen

Verschiebung des Programmanzeigers auf „Main“, in eineRoutine, in eine Position oder in eine Serviceroutine (Routineaufrufen).

Bewegungen des Programm-zeigers

Aktualisieren Sie die Umdrehungszähler oder Durchführeneiner Kalibrierung.

Änderungen an der mechani-schen Einheit

Ändern des Werkzeugs, des Werkobjekts, der Nutzlast oderdes Koordinatensystems, oder Einnehmen einer Position.

Bewegen

Einstellen oder Zurücksetzen der Verschiebe- oder Bahn-überwachung. Einstellen der Überwachungsebene.

Überwachung

Laden von Konfigurationsdaten oder Ändern eines Konfigu-rationsattributs.

Ändern der Konfiguration

Löschen des Ereignisprotokolls oder Ändern von Datum undZeit.

Systemänderungen

Ändern der Daten in der seriellen Messbaugruppe oder Än-dern der Daten im Roboter-Speicher.

Serielle Messsystemkarte

136 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

2 RobotWare-OS2.10.1 Einführung in User logs

Page 137: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3 Motion performance3.1 Absolute Accuracy [603-1, 603-2]

3.1.1 Über Absolute Accuracy

ZweckAbsolute Accuracy ist ein Kalibrierungskonzept, das in den meisten Fällen eineTCP-Genauigkeit von weniger als ±1 mm im gesamten Arbeitsraum gewährleistet.Der Unterschied zwischen einem idealen und einem echten Roboter kann einigeMillimeter betragen, was an mechanischen Toleranzen und der Durchbiegung derRoboterstruktur liegt. Absolute Accuracy kompensiert diese Unterschiede, indemes sicherstellt, dass die angegebenen Koordinaten mit der tatsächlichenRoboterposition übereinstimmen.Beispiele für eine dringend erforderliche Genauigkeit:

• Offline-Programmierung mit minimalem Aufwand.• Austauschbarkeit von Robotern• Online-Programmierung mit exakter Werkzeugumorientierung• Wiederverwendung von Programmen in mehreren Anwendungen

Enthaltene KomponentenJeder Absolute Accuracy-Roboter wird geliefert mit:

• Kompensationsparameter, die auf der seriellen Messbaugruppe des Robotersgespeichert sind

• einem Birth Certificate (Geburtsurkunde), dem AbsoluteAccuracy-Messprotokoll für die Kalibrierung und die Prüfungssequenz.

Erkennen eines Absolute Accuracy-RobotersEin Roboter mit Absolute Accuracy -Kalibrierung besitzt ein Schild auf demManipulator (in der Nähe des Typenschilds), mit folgendem Aussehen:

xx0300000314

Grundlegende MethodeDies sind die grundlegenden Schritte zum Einstellen von Absolute Accuracy aufIhrem Roboter. Eine ausführlichere Beschreibung finden Sie unterAktivierung vonAbsolute Accuracy auf Seite 141.

1 Aktivieren Sie Absolute Accuracy.2 Starten Sie die Steuerung neu.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1373HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.1 Über Absolute Accuracy

Page 138: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

EinschränkungenAbsolute Accuracy funktioniert bei Roboterpositionen mit kartesischen Koordinaten,aber nicht bei den einzelnen Achsen. Deshalb sind auf Achsen basierendeBewegungen (z. B. MoveAbsJ) nicht betroffen. Siehe Verwendung von AbsoluteAccuracy auf Seite 139.Falls der Roboter hängend montiert ist, muss die Absolute Accuracy-Kalibrierungbei hängendem Roboter durchgeführt werden. Denn die Kompensationsparameterunterscheiden sich für am Boden montierte und hängend montierte Roboter.

138 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.1 Über Absolute AccuracyFortsetzung

Page 139: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.2 Verwendung von Absolute Accuracy

AllgemeinesWenn Absolute Accuracy aktiviert ist, wird der Roboter wie gewohnt verwendet,jedoch mit aktiver Absolute Accuracy. Absolute Accuracy kann aber nur inVerbindung mit kartesischen Koordinaten (also robtargets) verwendet werden. AufAchsen basierende Bewegungen (also jointtargets) sind nicht von AbsoluteAccuracy betroffen.Die folgende Liste für Absolute Accuracy aktiv definiert, wann es aktiv ist. Zurweiteren Veranschaulichung folgen einige Beispiele, wann es nicht aktiv ist.

Absolute Accuracy aktivAbsolute Accuracy ist in folgenden Fällen aktiv:

• Jede Bewegungsfunktion basierend auf Roboterpositionen (z. B. MoveL)und ModPos auf Roboterpositionen.

• Umorientierung für manuelles Bewegen• Lineare Bewegung• Werkzeugdefinition (4-, 5-, 6-Punkt-Werkzeugdefinition, im Raum fixierter

TCP, stationäres Werkzeug)• Werkobjektdefinition

Absolute Accuracy nicht aktivNachstehend einige Beispiele, wann Absolute Accuracy nicht aktiv ist:

• Jede Bewegungsfunktion basierend auf einer Achsposition (MoveAbsJ).• Unabhängige Achse• Manuelle Bewegung basierend auf einer Achse• Zusätzliche Achsen• Verfahreinheit

Anwendungshandbuch - Steuerungssoftware IRC5 1393HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.2 Verwendung von Absolute Accuracy

Page 140: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.3 Nützliche Funktionen

ÜberblickFolgende Produkte werden für den Betrieb und die Wartung von AbsoluteAccurate-Roboter empfohlen:

• Load Identification• Kalibrierpendel (Standardwerkzeug zur Roboterkalibrierung)• CalibWare (Absolute Accuracy Kalibrierwerkzeug)

Load IdentificationAbsolute Accuracy berechnet die von der Nutzlast abhängige Roboterbiegung. Esist sehr wichtig, eine präzise Beschreibung der Last zu haben.Load Identification ist ein Werkzeug, das die Masse, den Schwerpunkt und dieTrägheit der Nutzlast bestimmt.Weitere Informationen finden Sie unter Bedienungsanleitung - IRC5 mitFlexPendant.

Calibration PendulumCalibration Pendulum wird dazu verwendet, den Resolver-Versatzwert des Roboterseinzustellen. Der Roboter befindet sich also in der Grundstellung (alle Achswinkelsind auf null gesetzt), und die Resolverwinkel werden kalibriert.Abhängig vom Robotermodell werden verschiedeneResolver-Versatz-Kalibrierwerkzeuge empfohlen. Das gängigste ist CalibrationPendulum. Informationen zur Kalibrierung eines speziellen Roboters finden Sieim Produkthandbuch des entsprechenden Roboters und unterBedienungsanleitung - Calibration Pendulum.Calibration Pendulum wird als Erstkalibrierung und bei der Wartung des Robotersverwendet.

CalibWareCalibWare ist ein Werkzeug von ABB zum Kalibrieren von Absolute Accuracy. DieDokumentation von CalibWare beschreibt ausführlich den Kalibriervorgang mitAbsolute Accuracy.CalibWare wird als Erstkalibrierung und bei der Wartung des Roboters verwendet.

140 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.3 Nützliche Funktionen

Page 141: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.4 Konfiguration

Aktivierung von Absolute AccuracyVerwenden Sie RobotStudio und führen Sie die folgenden Schritte aus (weitereInformationen finden Sie unter Bedienungsanleitung - RobotStudio):

Aktion

Wenn Sie nicht bereits über Schreibzugriff verfügen, klicken Sie auf Schreibzugriffanfordern und warten Sie auf die Gewährung des Zugriffs vom FlexPendant.

1

Klicken Sie auf Konfigurationseditor und wählen Sie Motion aus.2

Klicken Sie auf den Typ Robot.3

Konfigurieren Sie den Parameter Use Robot Calibration, und ändern Sie den Wertauf „r1_calib“.

4

Wiederholen Sie in MultiMove-Systemen Schritt 3 und 4 für jeden Roboter. UseRobot Calibration ist dann auf „r2_calib“ für Roboter 2, auf „r3_calib“ für Roboter3 und auf „r4_calib“ für Roboter 4 eingestellt.

5

Starten Sie die Steuerung neu, damit die Änderungen wirksam werden.6

Tipp

Schauen Sie zur Kontrolle, ob Absolute Accuracy aktiv ist, auf dasBewegen-Fenster am FlexPendant. Ist Absolute Accuracy aktiv, erscheint linksim Fenster der Text Absolute Accuracy On". In einem MultiMove-Systemüberprüfen Sie den Status aller mechanischen Einheiten.

Deaktivieren von Absolute AccuracyVerwenden Sie RobotStudio und führen Sie die folgenden Schritte aus (weitereInformationen finden Sie unter Bedienungsanleitung - RobotStudio):

Aktion

Wenn Sie nicht bereits über Schreibzugriff verfügen, klicken Sie auf Schreibzugriffanfordern und warten Sie auf die Gewährung des Zugriffs vom FlexPendant.

1

Klicken Sie aufKonfigurationseditor und wählen Sie die ParametergruppeMotionaus.

2

Klicken Sie auf den Typ Robot.3

Konfigurieren Sie den Parameter Use Robot Calibration und ändern Sie den Wertauf "r1_ uncalib".

4

Wiederholen Sie in MultiMove-Systemen Schritt 3 und 4 für jeden Roboter. Robo-terkalib. verwenden ist dann auf „r2_uncalib“ für Roboter 2, auf „r3_uncalib“ fürRoboter 3 und auf „r4_uncalib“ für Roboter 4 eingestellt.

5

Starten Sie die Steuerung neu, damit die Änderungen wirksam werden.6

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1413HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.4 Konfiguration

Page 142: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Kalibrierungsdaten ändernWenn Sie den Manipulator austauschen, müssen die calibration-Daten für denneuen Manipulator geladen werden. Hierzu werden die Kalibrierungsdaten aus derseriellen Messbaugruppe des Roboters in die Robotersteuerung kopiert.Verwenden Sie das FlexPendant und befolgen Sie diese Schritte (weitereInformationen finden Sie unter Bedienungsanleitung - IRC5 mit FlexPendant):

Aktion

Tippen Sie im Menü ABB auf Kalibrierung.1

Tippen Sie auf den Roboter, der aktualisiert werden soll.2

Tippen Sie auf die Registerkarte Roboter-Speicher.3

Tippen Sie auf Erweitert.4

Tippen Sie auf Controller-Speicher löschen.5

Tippen Sie auf Löschen und bestätigen Sie dann durch Tippen auf Ja.6

Tippen Sie auf Schließen.7

Tippen Sie auf Aktualisieren.8

Tippen Sie auf Schrank oder Roboter wurde ausgetauscht und bestätigen Siedurch Tippen auf Ja.

9

142 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.4 KonfigurationFortsetzung

Page 143: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.5 Wartung

3.1.5.1 Die Genauigkeit beeinträchtigende Wartung

ÜberblickDieser Abschnitt konzentriert sich auf jene Wartungsaktivitäten, die direkt dieGenauigkeit des Roboters beeinträchtigen, nämlich:

• Neukalibrierung des Werkzeugs• Austausch des Motors• Austausch einer Handgelenkeinheit (große Roboter)• Austausch eines Arms (Unterarm, Oberarm, Getriebe, Sockel)• Austausch des Manipulators• Verlust der Genauigkeit

Neukalibrierung des WerkzeugsInformationen zur Neukalibrierung von Werkzeugen finden Sie unterWerkzeugkalibrierung auf Seite 159.

Austausch des MotorsDer Austausch aller Motoren bei kleinen Robotern und der Motoren für die Achsen1 bis 4 bei großen Robotern (z. B. IRB 6700) erfordert eine Neukalibrierung derbetreffenden Resolver-Versatzparameter mit Calibration Pendulum.Eine Beschreibung des Kalibriervorgangs finden Sie im Produkthandbuch desentsprechenden Roboters.

Austausch der HandgelenkeinheitDer Austausch der Handgelenkeinheit bei großen Robotern (z. B. IRB 6700) erforderteine Neukalibrierung der Resolver-Versatzwerte für die Achsen 5 und 6 mitCalibration Pendulum.Eine Beschreibung des Kalibriervorgangs finden Sie im Produkthandbuch desentsprechenden Roboters.

Austausch eines ArmsDer Austausch eines beliebigen Roboterarms oder einer anderen mechanischenStruktur (außer der Handgelenkeinheit) verändert den Aufbau des Roboters derart,dass eine Neukalibrierung des Roboters vonnöten ist. Es wird empfohlen, dengesamten Roboter nach dem Austausch eines Arms neu zu kalibrieren, um dieoptimale Absolute Accuracy-Funktionalität zu gewährleisten. Dies wirdüblicherweise mit CalibWare und einem separaten Messsystem durchgeführt.CalibWare kann mit jedem generischen 3D-Messsystem verwendet werden.Weitere Informationen zum Kalibriervorgang finden Sie in der Dokumentation vonCalibWare.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1433HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.5.1 Die Genauigkeit beeinträchtigende Wartung

Page 144: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Eine Kurzfassung des Kalibriervorgangs stellt sich folgendermaßen dar:

Aktion

Tauschen Sie die betreffende Komponente aus.1

Führen Sie eine Resolver-Offsetkalibrierung für alle Achsen durch. Weitere Informa-tionen finden Sie im Produkthandbuch des entsprechenden Roboters.

2

Kalibrieren Sie den TCP neu.3

Überprüfen Sie die Genauigkeit anhand eines festen Referenzpunkts in der Zelle.4

Überprüfen Sie die Genauigkeit der Werkobjekte.

Hinweis

Eine Aktualisierung der definierten Werkobjekte führt zu einer geringeren Abwei-chung bei der Positionierung.

5

Überprüfen Sie die Genauigkeit der Positionen in der aktuellen Anwendung.6

Sollte die Genauigkeit unbefriedigend ausfallen, führen Sie eine Absolute Accura-cy-Kalibrierung des gesamten Roboters durch. Siehe Dokumentation über CalibWare.

7

Austausch des ManipulatorsWenn der Manipulator eines Roboters ohne gleichzeitigen Austausch desSteuerungsschranks gewechselt wird, müssen die Absolute Accuracy-Parameterim Steuerungsschrank aktualisiert und der Roboter in der Zelle neu ausgerichtetwerden. Die Absolute Accuracy-Parameter werden durch Laden derKalibrierungsparameter des Ersatzroboters in die Steuerung aktualisiert, wie inKalibrierungsdaten ändern auf Seite 142 beschrieben. Achten Sie darauf, dass dieKalibrierungsdaten geladen und Absolute Accuracy aktiviert ist.Die Ausrichtung des Ersatzroboters in der Zelle hängt von der bei der Installationgewählten Ausrichtungsmethode des Roboters ab. Wenn die Montagestifte desRoboters in der Zelle ausgerichtet sind, dann muss der Roboter nur auf den Stiftenplatziert werden. Es ist keine weitere Ausrichtung mehr nötig. Wurde der Robotermithilfe eines Roboterprogramms ausgerichtet, dann ist es erforderlich, dieZellenbefestigungen sowie den Roboter in verschiedenen Positionen zu messen(Sie erzielen die besten Ergebnisse, wenn Sie dasselbe Programm wie beimursprünglichen Roboter verwenden). Siehe Messen der Roboterausrichtung aufSeite 157.

144 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.5.1 Die Genauigkeit beeinträchtigende WartungFortsetzung

Page 145: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.5.2 Verlust der Genauigkeit

Ursache und MaßnahmeEin Verlust der Genauigkeit tritt normalerweise nach einer Kollision oder nachgroßen Temperaturschwankungen auf.Es ist notwendig, die Fehlerursache zu ermitteln, um geeignete Maßnahmenergreifen zu können.

Aktion:Situation

neu kalibrieren, wenn sich der TCP geändert hat.das Werkzeug istnicht korrekt kali-briert

verwenden Sie Load Identification, um die richtige Masse, Trägheitund den richtigen Schwerpunkt des aktiven Werkzeugs zu sicherzustel-len.

die Werkzeuglastist nicht korrekt de-finiert

1 Überprüfen Sie, ob die Achsenskalen bestätigen, dass der Ro-boter korrekt in der Grundstellung steht.

2 Sind die Anzeigen nicht ausgerichtet, bringen Sie den Roboterin die korrekte Position und aktualisieren Sie die Umdrehungs-zähler.

3 Wenn die Anzeigen fast ausgerichtet sind, aber noch nicht ganzkorrekt sind, muss mit Calibration Pendulum neu kalibriertwerden.

die Resolver-Offset-werte sind nichtmehr gültig

1 Überprüfen Sie dies, indem Sie den Roboter auf eine vorbestimm-te Position in der Befestigung bewegen.

2 Per Augenschein beurteilen, ob die Abweichung übermäßig ist.3 Falls ja, Roboter auf der Befestigung neu ausrichten.

die Verhältnis desRoboters zur Befes-tigung hat sich ge-ändert

1 Per Augenschein beurteilen, ob der Roboter beschädigt ist.2 Falls ja, gesamten Manipulator austauschen -oder- betroffene(n)

Arm(e) austauschen -oder- betroffene(n) Arm(e) neu kalibrieren.

die Roboterstrukturhat sich geändert

Anwendungshandbuch - Steuerungssoftware IRC5 1453HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.5.2 Verlust der Genauigkeit

Page 146: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.6 Kompensationstheorie

3.1.6.1 Fehlerquellen

FehlertypenDie Fehler, die in der Steuerung kompensiert werden, rühren von den mechanischenToleranzen der einzelnen Roboterteile her. Einige davon werden in dernachfolgenden Abbildung dargestellt.Compliance-Fehler treten aufgrund des Eigengewichts des Roboters zusammenmit dem Gewicht der aktuellen Nutzlast auf. Diese Fehler hängen vom Schwerpunktund den Eigenschaften der Ladung ab. Sie können aber sehr effektiv mithilfe vonLoad Identification kompensiert werden (siehe Bedienungsanleitung - IRC5 mitFlexPendant).Kinematikfehler werden von Positions- oder Orientierungsabweichungen in derRoboterachse verursacht. Diese sind ladungsunabhängig.

AbbildungIn jeder Achse können verschiedene Fehlertypen auftreten.

en0300000232

146 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.6.1 Fehlerquellen

Page 147: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.6.2 Absolute Accuracy-Kompensation

EinleitungSowohl Compliance- als auch Kinematikfehler werden durch „falsche Zielpositionen“kompensiert. Die Durchbiegung des Roboters (d. h. die Abweichung von derbefohlenen Position) kann von Absolute Accuracy kompensiert werden, indemdem Roboter eine falsche Zielposition angewiesen wird.Die Kompensation funktioniert bei Roboterpositionen in kartesischen Koordinaten,aber nicht bei den einzelnen Achsen. Das heißt, die Position des TCP (in denfolgenden Abbildungen durch einen Pfeil markiert) wird korrekt kompensiert.

Gewünschte PositionIn der folgenden Abbildung wird die von Ihnen gewünschte Position des Robotersgezeigt.

xx0300000225

Position aufgrund der DurchbiegungIn der folgenden Abbildung ist die tatsächliche Position des Roboters ohneAbsoluteAccuracy zu sehen. Das Gewicht des Roboterarms und das der Ladung führen zueiner Durchbiegung des Roboters. Beachten Sie bitte, dass die Durchbiegungübertrieben dargestellt ist.

xx0300000227

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1473HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.6.2 Absolute Accuracy-Kompensation

Page 148: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Falsche ZielpositionUm zur gewünschten Position zu gelangen, berechnet Absolute Accuracy einefalsche Zielposition. Wenn Sie eine gewünschte Position eingeben, rechnet dasSystem diese in eine falsche Zielposition um, in der die Durchbiegung berücksichtigist, und kommt somit zur gewünschten Position.

xx0300000226

Kompensierte PositionDie tatsächliche Position stimmt mit Ihrer gewünschten Position überein. AlsBenutzer werden Ihnen weder die falsche Zielposition noch die Durchbiegungauffallen. Der Roboter verhält sich, als fände keine Durchbiegung statt.

xx0300000224

148 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.6.2 Absolute Accuracy-KompensationFortsetzung

Page 149: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.7 Vorbereitung des Absolute Accuracy-Roboters

3.1.7.1 ABB Kalibriervorgang

ÜberblickDieser Abschnitt beschreibt den Kalibriervorgang, den ABB bei jedem AbsoluteAccuracy-Roboter unabhängig vom Robotertyp oder der Roboterfamilie vor derAuslieferung durchführt.Der Vorgang lässt sich in vier Schritte unterteilen:

1 Resolver-Offset-Kalibrierung2 Absolute Accuracy-Kalibrierung3 In der seriellen Messbaugruppe gespeicherte Kalibrierungsdaten4 Absolute Accuracy-Prüfung5 Erstellung von Birth Certificate

Resolver-Offset-KalibrierungDer Resolver-Offset-Kalibriervorgang wird dazu verwendet, dieResolver-Offsetparameter einzustellen.Informationen zum Ablauf finden Sie im Produkthandbuch des entsprechendenRoboters.

Absolute Accuracy-KalibrierungDie Absolute Accuracy -Kalibrierung wird zusätzlich zur Resolver-Offset-Kalibrierungdurchgeführt, deshalb ist es wichtig, wiederholbare Methoden für beide Vorgängezur Verfügung zu haben.Jeder Roboter wird mit Maximallast kalibriert, um sicherzustellen, dass die korrektenKompensationsparameter gefunden werden (die Kalibrierung mit geringerer Lastkönnte zu einer ungenauen Bestimmung der Flexibilitätsparameter des Robotersführen). Während des Vorgangs nimmt der Roboter 100 Achsenpositionen ein, beidenen jede entsprechende Messpunktkoordinate gemessen wird. Die Liste mitden Positionen und Messwerten wird in das CalibWare-Kalibrierpaket übertragenund eine Reihe von Parametern der Roboter-Kompensation wird erstellt.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1493HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.7.1 ABB Kalibriervorgang

Page 150: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Informationen zum Ablauf finden Sie in der Dokumentation zu CalibWare.

en0300000248

Absolute Accuracy-PrüfungDie Parameter werden in die Steuerung geladen und aktiviert. Dann wird derRoboter auf 50 Achspositionen gefahren. Jede der Positionen wird gemessen unddie Abweichung vom Nominalwert bestimmt.Informationen zum Ablauf finden Sie in der Dokumentation zu CalibWare.Die Akzeptanzanforderungen variieren von einem Robotertyp zum anderen, aberim Normalfall müssen 90 % der Positionen (alle nicht singulär) eine absoluteAbweichung von weniger als 1 mm aufweisen.

Kompensationsparameter und Birth CertificateDie Kompensationsparameter, die auf der seriellen Messbaugruppe des Robotersgespeichert sind (siehe Kompensationsparameter auf Seite 152).ein Birth Certificate wird erstellt, das dem Absolute Accuracy-Messprotokoll fürdie Kalibrierung und der Prüfungssequenz entspricht (siehe Geburtsurkunde aufSeite 151).

150 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.7.1 ABB KalibriervorgangFortsetzung

Page 151: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.7.2 Geburtsurkunde

Das Birth CertificateAlle Absolute Accuracy -Roboter werden mit Birth Certificate geliefert. Diesesentspricht dem Absolute Accuracy-Messprotokoll für die Kalibrierung und diePrüfungssequenz.Das Birth Certificate umfasst folgende Schüsseldaten:

• Roboterdaten (Robotertyp, Seriennummer)• Genauigkeitsinformationen (maximale, durchschnittliche und

Standard-Abweichung für die Feinpunkt-Fehlerverteilung)• Werkzeugdaten (TCP, Masse, Schwerpunkt)• Beschreibung des Messprotokolls (Mess- und Kalibriersystem, Anzahl der

Punkte, Messpunktposition)

Beispiel eines Birth Certificate

xx0300000230

Anwendungshandbuch - Steuerungssoftware IRC5 1513HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.7.2 Geburtsurkunde

Page 152: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.7.3 Kompensationsparameter

Über die KompensationsparameterAlle Absolute Accuracy-Roboter werden mit einem Satz Kompensationsparametergeliefert. Da die Resolver-Offset-Kalibrierung Teil der AbsoluteAccuracy-Kalibrierung ist, sind die Resolver-Offset-Parameter ebenfalls auf derseriellen Messbaugruppe des Roboters gespeichert.

Die KompensationsparameterThe compensation parameters enthält die folgenden Bereiche:

• ROBOT_CALIB• ARM_CALIB• JOINT_CALIB• PARALLEL_ARM_CALIB• TOOL_INTERFACE• MOTOR_CALIB

Der Abschnitt ROBOT_CALIB legt die oberste Ebene der Kalibrierungsstrukturfest. Im System ist standardmäßig "uncalib" eingestellt, wodurch Absolute Accuracydeaktiviert wird. Die Instanz "r1_calib" aktiviert die Funktion Absolute Accuracy,indem der Flag "-absacc" angegeben wird. Außerdem wird eineWerkzeugschnittstelle gewählt, in diesem Fall "r1_ tool". Beachten Sie, dassAbsolute Accuracy manuell aktiviert werden muss, sieheAktivierung von AbsoluteAccuracy auf Seite 141.Die Abschnitte ARM_CALIB, JOINT_CALIB, PARALLEL_ARM_CALIB undMOTOR_CALIB bleiben dem System vorbehalten und werden automatischausgewählt, sobald die Funktion Absolute Accuracy aktiviert wird. DieParameterwerte können durch Import einer neuen Konfigurationsdatei geändertwerden, allerdings müssen die Schlüsselwörter dieselben bleiben. Eine Änderungder Schlüsselwörter führt zu einer Beschädigung der Konfigurationsdatei.Die Kompensationsparameter können durch die Erstellung eines Backups undLesen der Datei moc.cfg eingesehen werden.

Beispiele für Kompensationsparameter (wie in der Backup-Datei moc.cfg)MOC:CFG_1.0::

# ROBOT_CALIB - ?

ROBOT_CALIB:

-name "r1_calib"

-use_tool_interface "r1_tool" -absacc

# ARM_CALIB - ?

ARM_CALIB:

-name "rob1_1"

-error_offset_x 0.0000000 -error_offset_y 0.0000000 -error_offset_z0.0000000 \

-error_roll 0.0000000 -error_pitch 0.0000000 -error_jaw 0.0000000

-arm_compliance_y 0.0000000

Fortsetzung auf nächster Seite152 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.7.3 Kompensationsparameter

Page 153: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

-name "rob1_2" \

-error_offset_x 0.0002967 -error_offset_y 0.0000000 -error_offset_z0.0000000 \

-error_roll 0.0001903 -error_pitch -0.0003469 -error_jaw 0.0000000

-name "rob1_3" \

-error_offset_x 0.0000000 -error_offset_y 0.0000000 -error_offset_z0.0005485 \

-error_roll 0.0000537 -error_pitch 0.0006959 -error_jaw 0.0003361

-arm_compliance_x 0.0000000 -arm_compliance_z 0.0000000

-name "rob1_4" \

-error_offset_x 0.0000000 -error_offset_y -0.0003586 -error_offset_z0.0004580 \

-error_roll 0.0000965 -error_pitch 0.0000000 -error_jaw -0.0002578

-name "rob1_5" \

-error_offset_x -0.0005467 -error_offset_y 0.0000000 -error_offset_z0.0000032 \

-error_roll 0.0000000 -error_pitch 0.0009360 -error_jaw -0.0002367

-name "rob1_6" \

-error_offset_x 0.0000000 -error_offset_y -0.0000449 -error_offset_z-0.0000365 \

-error_roll 0.0000000 -error_pitch 0.0000000 -error_jaw -0.0002168

# JOINT_CALIB - ?

JOINT_CALIB:

-name "rob1_1" -compl 0.00000000

-name "rob1_2" -compl 0.00000004

-name "rob1_3" -compl 0.00000107

-name "rob1_4" -compl 0.00000257

-name "rob1_5" -compl 0.00000490

-name "rob1_6" -compl 0.00000941

# PARALLEL_ARM_CALIB - ?

PARALLEL_ARM_CALIB:

-name "rob1_2" -error_length 0.0004324

-name "rob1_3" -error_length -0.0000744

# TOOL_INTERFACE - ?

TOOL_INTERFACE:

-name "r1_tool" -compl 0.0 -mass 0.0 -mass_centre_x 0.0 \

-offset_x -0.0000465 -offset_y 0.0011064 -offset_z -0.0005255 \

-orient_u0 1.0 -orient_u1 0.0 -orient_u2 0.0 -orient_u3 0.0

# MOTOR_CALIB - ?

MOTOR_CALIB:

-name "rob1_1" -valid_com_offset -cal_offset 1.301100-valid_cal_offset

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1533HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.7.3 Kompensationsparameter

Fortsetzung

Page 154: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

-name "rob1_2" -valid_com_offset -cal_offset 3.422110-valid_cal_offset

-name "rob1_3" -valid_com_offset -cal_offset 5.057730-valid_cal_offset

-name "rob1_4" -valid_com_offset -cal_offset 3.584140-valid_cal_offset

-name "rob1_5" -valid_com_offset -cal_offset 3.556740-valid_cal_offset

-name "rob1_6" -valid_com_offset -cal_offset 4.180770-valid_cal_offset

154 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.7.3 KompensationsparameterFortsetzung

Page 155: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.8 Zellenausrichtung

3.1.8.1 Überblick

Über die ZellenausrichtungDie Kompensationsparameter für den Absolute Accuracy-Roboter werden von derphysischen Sockelbasis bis zum Roboterwerkzeug bestimmt. Bei vielenAnwendungen genügt das und der Roboter kann wie jeder andere Roboterverwendet werden. Es ist jedoch üblich, dass Absolute Accuracy-Roboter anhandder Koordinaten ihrer Zellen ausgerichtet werden. In diesem Abschnitt wird derAusrichtungsvorgang beschrieben. Eine ausführlichere Beschreibung finden Siein der Dokumentation unter CalibWare.

AusrichtungDamit der Roboter im Verhältnis zur gesamten Roboterzelle genau ausgerichtetist, muss er korrekt installiert werden. Dies bedeutet kurz gesagt:

BeschreibungAktion

Bestimmen Sie das Verhältnis zwischen dem Mess-system und der Befestigung. Siehe Messen der Be-festigungsausrichtung auf Seite 156.

Befestigungsausrichtung mes-sen

1

Bestimmen Sie das Verhältnis vom Messsystem zumRoboter. Siehe Messen der Roboterausrichtung aufSeite 157.

Roboterausrichtung messen2

Bestimmen Sie beispielsweise das Verhältnis vomRoboter zur Befestigung. Siehe Bezugsrahmen aufSeite 158.

Berechnen der Bezugsrahmen3

Bestimmen Sie das Verhältnis vom Roboterwerkzeugzu anderen Zellenkomponenten. SieheWerkzeugkali-brierung auf Seite 159.

Kalibrieren des Werkzeugs4

Abbildung

en0300000239

Anwendungshandbuch - Steuerungssoftware IRC5 1553HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.8.1 Überblick

Page 156: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.8.2 Messen der Befestigungsausrichtung

Die BefestigungsausrichtungEine Befestigung wird definiert als eine Zellenkomponente, die mit einembestimmten Koordinatensystem verbunden ist. Roboter und Befestigung müssenim genauen Verhältnis zueinander stehen, um Absolute Accuracy zu gewährleisten.Absolute Accuracy -Befestigungen müssen mit mindestens drei (vorzugsweisevier) Referenzpunkten ausgestattet sein, von denen jeder über genau markiertePositionsdaten verfügen muss.

Messen der BefestigungDie Ausrichtung der Befestigung erfolgt in nachstehenden Schritten:

1 Geben Sie die Bezeichnung der Referenzpunkte und deren Positionen in dieAusrichtungssoftware (z. B. CalibWare) ein.

2 Messen Sie die Referenzpunkte und ordnen Sie ihnen dieselbenBezeichnungen zu.

3 Passen Sie mithilfe der Ausrichtungssoftware die Referenz an diegemessenen Punkte an und bestimmen Sie den Bezugsrahmen. AlleMesssysteme unterstützen diese Transformationsform.

Abbildung

en0300000237

156 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.8.2 Messen der Befestigungsausrichtung

Page 157: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.8.3 Messen der Roboterausrichtung

Wahl der MethodeDas Verhältnis zwischen dem Messsystem und dem Roboter kann auf zweiunterschiedlichen Wegen ermittelt werden:

BeschreibungAusrichtung

Das Äquivalent zur Befestigungsausrichtung, bei der diephysischen Sockelstifte gemessen und anhand der im Benut-zerhandbuch des betreffenden Roboters festgelegten Refe-renzpositionen ausgerichtet werden.

Ausrichtung am physischenSockel

Messung mehrerer Roboterpositionen und anschließendeBestimmung der Roboterausrichtung durch die Ausrichtungs-software.

Ausrichtung am theoreti-schen Sockel

Ausrichtung am physischen SockelDer Vorteil der Ausrichtung des Roboters an der Befestigung liegt in seinerEinfachheit – der Roboter wird wie jede andere Befestigung in der Zelle behandeltund seine Sockelpunkte entsprechend gemessen. Der Nachteil ist, dass kleineFehler in der anschließenden Positionierung des Roboters auf den Stiften zu großenTCP-Fehlern in der Reichweite des Roboters führen können (d. h. die Position desRoboters ist nicht kalibriert).Um die Referenzpunktkoordinaten bestimmen zu können, muss dasProdukthandbuch für diesen Robotertyp zu Rate gezogen werden.Sobald der korrekte Punkt gemessen wurde, wird anhand der Ausrichtungssoftwareder Bezugsrahmen zwischen dem Messsystem und dem Robotersockel ermittelt.

Ausrichtung am theoretischen SockelDer Vorteil, den Roboter an einem theoretischen Sockel auszurichten, bestehtdarin, dass keine Montagefehler auftreten können. Zudem legt derAusrichtungsvorgang die Genauigkeit des Roboters an den Messpunkten fest undgewährleistet so eine korrekte Funktionalität der Absolute Accuracy. Nachteiligwirkt sich aus, dass ein Roboterprogramm (entweder manuell oder automatischvon CalibWare) erstellt und der Roboter vermessen werden muss (idealerweisemit korrektem Werkzeug, jedoch kann der TCP auch als Teil dieses Vorgangskalibriert werden).Sobald der korrekte Punkt gemessen wurde, wird anhand der Ausrichtungssoftwareder Bezugsrahmen zwischen dem Messsystem und dem Robotersockel ermittelt.

Anwendungshandbuch - Steuerungssoftware IRC5 1573HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.8.3 Messen der Roboterausrichtung

Page 158: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.8.4 Bezugsrahmen

BezugsrahmenSobald das Verhältnis vom Messsystem zu allen anderen Zellenkomponentenvermessen wurde, kann das Verhältnis zwischen den Zellenkomponenten bestimmtwerden.Das Verhältnis des Weltkoordinatensystems zum Roboter muss im Robotersockelgespeichert werden. Das Verhältnis vom Roboter zur Befestigung muss imworkobject-Datentyp gespeichert werden.Das Messsystem ist zunächst das aktive Koordinatensystem, da sowohl dasWeltkoordinatensystem als auch der Roboter im Verhältnis zum Messsystemgemessen werden.

Bestimmen des RobotersockelsVerwenden Sie eine Standard-Messsystemsoftware, um den Robotersockel inWeltkoordinaten festzulegen:

1 Legen Sie das Weltkoordinatensystem als aktiv fest (der Ursprung).2 Lesen Sie die Koordinaten des Basis-Koordinatensystems des Roboters

(jetzt in Relation zur Welt).Das Verhältnis zur Befestigung wird ähnlich ermittelt, indem der Roboteraktiv gesetzt wird und die Koordinaten des Befestigungskoordinatensystemsabgelesen werden.

158 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.8.4 Bezugsrahmen

Page 159: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.1.8.5 Werkzeugkalibrierung

WerkzeugkalibrierungDie Absolute Accuracy-Parameter für die Roboterkompensation werden unabhängigvom Werkzeug berechnet. Das ermöglicht den Anschluss jedes Werkzeugs mitkorrekt vordefiniertem TCP an den Roboterflansch und die Verwendung ohneNeukalibrierung des Werkzeugs. In der Praxis ist es jedoch schwierig, eine korrekteTCP-Kalibrierung z. B. mit Coordinate Measurement Machine (CMM) durchzuführen,da diese weder die Verbindung des Werkzeugs mit dem Roboter noch die Flexibilitätdes Werkzeugs berücksichtigt.Jedes Werkzeug sollte regelmäßig kalibriert werden, wenn eine optimaleRobotergenauigkeit gewährleistet sein soll.

WerkzeugkalibrierungEmpfohlene Werkzeug-Neukalibrierungen werden nachfolgend aufgelistet:

• SBCU (Single Beam Calibration Unit) wie ABBs BullsEye für Anwendungenbeim Lichtbogen- und Punktschweißen.

• Geometriekalibrierungen wie die 4-, 5- oder6-Punkt-Werkzeugkalibrierungsroutine in der Steuerung. Um sicherzustellen,dass der verwendete Einzelpunkt genau ist, kann ein Messsystem benutztwerden.

• RAPID-Werkzeugkalibrierungsroutinen: MToolTCPCalib (Kalibrierung vonTCP zum Bewegen des Werkzeugs), SToolTCPCalib (Kalibrierung von TCPfür stationäre Werkzeuge), MToolRotCalib (Rotationskalibrierung fürbewegliche Werkzeuge), SToolRotCalib (Kalibrierung von TCP und Rotationfür stationäre Werkzeuge).

• Verwendung theoretischer Daten, z. B. aus einem CAD-Modell.

Tipp

Da die Werkzeuglasteigenschaften in den Absolute Accuracy-Modellen verwendetwerden, müssen alle Parameter unbedingt so genau wie möglich sein. LoadIdentification ist eine effiziente Methode, Werkzeuglasteigenschaften zubestimmen.

Anwendungshandbuch - Steuerungssoftware IRC5 1593HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.1.8.5 Werkzeugkalibrierung

Page 160: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.2 Advanced robot motion [687-1]

Über Advanced robot motionDie Option Advanced robot motion bietet Folgendes:

• Advanced Shape Tuning, siehe Advanced Shape Tuning [enthalten in 687-1]auf Seite 161.

• Motion Process Mode zu RAPID wechseln, siehe Motion Process Mode[enthalten in 687-1] auf Seite 170.

• Wrist Move, siehe Wrist Move [enthalten in 687-1] auf Seite 179.

160 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.2 Advanced robot motion [687-1]

Page 161: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.3 Advanced Shape Tuning [enthalten in 687-1]

3.3.1 Über das Advanced Shape Tuning

ZweckZweck von Advanced Shape Tuning ist die Reduzierung der Bahnabweichung,verursacht durch Achsenreibung des Roboters.Advanced Shape Tuning ist beim Schneiden mit niedriger Geschwindigkeit (10-100mm/s) von schwierigen Formen, wie z. B. kleinen Kreisen, von Nutzen.Reibungseffekte der Roboterachse können in solchen Fällen Bahnabweichungenvon normalerweise 0,5 mm verursachen. Durch Abstimmen der Parameter einesReibungsmodells in der Steuerung kann diese Bahnabweichung jedoch auf dieWiederholbarkeitsstufe des Roboters reduziert werden, z.B. bei einem mittelgroßenRoboter auf 0,1 mm.

Enthaltene KomponentenAdvanced Shape Tuning ist in der RobotWare-Option enthalten Advanced robotmotion und bietet Ihnen Folgendes:

• Instruktionen FricIdInit, FricIdEvaluate und FricIdSetFricLevels,die die Parameter des Reibungsmodells der Achse für einen programmiertenPfad automatisch optimieren.

• Die Systemparameter Friction FFWOn, Friction FFW level und Friction FFWRamp zur manuellen Abstimmung der Parameter der Achsenreibung.

• Die Abstimmungstypen tune_fric_lev und tune_fric_ramp, die mit derInstruktion TuneServo verwendet werden können.

Grundlegende MethodeDies ist eine kurze Beschreibung der Verwendung des Advanced Shape Tuning.

1 Setzen Sie den Parameter Friction FFW On auf TRUE. SieheSystemparameter auf Seite 167.

2 Führen Sie die automatische Abstimmung der Reibungsgröße der Achsenmithilfe der Instruktionen FricIdInit und FricIdEvaluate aus. SieheAutomatische Reibungsanpassung auf Seite 162.

3 Kompensieren Sie die Reibung mithilfe der InstruktionFricIdSetFricLevels.

Anwendungshandbuch - Steuerungssoftware IRC5 1613HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.1 Über das Advanced Shape Tuning

Page 162: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.3.2 Automatische Reibungsanpassung

Über die automatische ReibungsanpassungDie automatische Abstimmung der Reibungsgröße der Roboterachsen findetmithilfe der Instruktionen FricIdInit und FricIdEvaluate statt. DieseInstruktionen stimmen die Reibungsgröße jeder Achse für eine bestimmteBewegungssequenz ab.Die automatisch abgestimmten Größen werden mithilfe der InstruktionFricIdSetFricLevels auf die Reibungskompensation angewendet.

ProgrammabarbeitungZur Durchführung der automatischen Anpassung einer Bewegungssequenz mussdie Sequenz mit der Instruktion FricIdInit beginnen und mit der InstruktionFricIdEvaluate enden. Wenn die Programmabarbeitung FricIdEvaluate

erreicht, wiederholt der Roboter die Bewegungssequenz, bis die idealeReibungsgröße für jede Achse gefunden wurde. Jede Wiederholung besteht auseiner Vorwärts- und einer Rückwärtsbewegung, die beide dem programmiertenPfad folgen. Die Sequenz muss gewöhnlich etwa 20-30 Mal wiederholt werden,um ausreichend oft zur Korrektur der Reibungsgrößen der Achsen wiederholtworden zu sein.Wird die Programmabarbeitung auf irgend eine Art und Weise angehalten, währendder Programmzeiger sich bei Instruktion FricIdEvaluate befindet, und dannneu gestartet, werden die Ergebnisse ungültig sein. Nach einem Stopp muss daherdie Reibungsidentifikation neu gestartet werden.Sobald die korrekten Reibungsgrößen gefunden wurden, müssen sie mit derInstruktion FricIdSetFricLevels eingestellt werden, anderenfalls werden sienicht verwendet. Beachten Sie, dass die Reibungsgrößen für die spezielleBewegung zwischen FricIdInit und FricIdEvaluate abgestimmt werden. FürBewegungen in einer anderen Region im Arbeitsbereich des Roboters ist eineneue Abstimmung erforderlich, um die korrekten Reibungsgrößen zu erhalten.Eine ausführliche Beschreibung der Instruktionen finden Sie unter TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

EinschränkungenFür die Reibungsabstimmung gelten folgende Einschränkungen:

• Die Reibungsabstimmung kann nicht mit dem Synchronbewegungsmoduskombiniert werden. Das heißt, SyncMoveOn ist zwischen FricIdInit undFricIdEvaluate nicht erlaubt.

• Die Folge von Bewegungen, für die eine Reibungsabstimmung durchgeführtwird, muss mit einem Feinpunkt beginnen und enden. Wenn nicht, werdendie Feinpunkte während des Abstimmungsvorgangs eingefügt.

• Die automatische Reibungsabstimmung kann nur bei TCP-Roboternverwendet werden.

• Eine automatische Achsenreibungsabstimmung kann jeweils nur an einemRoboter durchgeführt werden.

Fortsetzung auf nächster Seite162 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.2 Automatische Reibungsanpassung

Page 163: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

• Die Einstellung kann bis zu einem Höchstwert von 500 % vorgenommenwerden. Falls das nicht reicht, müssen Sie einen höheren Wert für denParameter Friction FFW Level setzen, siehe Anfahrenmit einem geschätztenWert auf Seite 168.

• Während der automatischen Reibungsabstimmung können mit TuneMasterkeine Testsignale angezeigt werden.

• Die Bewegungsabfolge zwischen FricIdInit und FricIdEvaluate darfnicht länger als 10 Sekunden sein.

Hinweis

Für die Verwendung von Advanced Shape Tuning muss der Parameter FrictionFFW On auf TRUE gesetzt werden.

Beispiel:Dieses Beispiel zeigt, wie eine Schneide-Instruktion programmiert wird, die dieReibungsabstimmung kapselt. Wenn die Instruktion erstmalig, ohne berechneteReibungsparameter, ausgeführt wird, erfolgt die Reibungsabstimmung. Währenddes Abstimmungsprozesses bewegt sich der Roboter wiederholt auf demprogrammierten Pfad vor und zurück. Es sind etwa 25 Wiederholungen erforderlich.Bei sämtlichen darauf folgenden Läufen werden die Reibungsgrößen auf die imersten Lauf identifizierten Werte eingestellt. Durch Benutzen der InstruktionCutHole kann die Reibung für jede Öffnung einzeln abgestimmt werden.

PERS num friction_levels1{6} := [9E9,9E9,9E9,9E9,9E9,9E9];

PERS num friction_levels2{6} := [9E9,9E9,9E9,9E9,9E9,9E9];

CutHole p1,20,v50,tool1,friction_levels1;

CutHole p2,15,v50,tool1,friction_levels2;

PROC CutHole(robtarget Center, num Radius, speeddata Speed, PERStooldata Tool, PERS num FricLevels{*})

VAR bool DoTuning := FALSE;

IF (FricLevels{1} >= 9E9) THEN

! Variable is uninitialized, do tuning

DoTuning := TRUE;

FricIdInit;

ELSE

FricIdSetFricLevels FricLevels;

ENDIF

! Execute the move sequence

MoveC p10, p20, Speed, z0, Tool;

MoveC p30, p40, Speed, z0, Tool;

IF DoTuning THEN

FricIdEvaluate FricLevels;

ENDIF

ENDPROC

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1633HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.2 Automatische Reibungsanpassung

Fortsetzung

Page 164: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Hinweis

Ein echtes Programm würde die Deaktivierung der Schneideausrüstung vor derAbstimmungsphase beinhalten.

164 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.2 Automatische ReibungsanpassungFortsetzung

Page 165: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.3.3 Manuelle Reibungsabstimmung

ÜberblickDie Achsenreibung eines Roboters kann auch manuell abgestimmt werden (anstelleder automatischen Reibungsabstimmung). Die Reibungsgröße für jede Achse wirdmithilfe der Instruktion TuneServo abgestimmt. Dies wird in diesem Abschnittbeschrieben.Es ist normalerweise nicht erforderlich, die Rampe für die Reibungskompensationzu verändern.

Hinweis

Für die Verwendung von Advanced Shape Tuning muss der Parameter FrictionFFW On auf TRUE gesetzt werden.

AbstimmungstypenBei der Instruktion TuneServowird ein Abstimmungstyp als Argument verwendet.Weitere Informationen finden Sie unter Tunetype in TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen .Es gibt zwei Abstimmungstypen, die ausdrücklich für Advanced Shape Tuningverwendet werden:

BeschreibungAbstimmungstyp

Durch Aufruf der Instruktion TuneServo mit dem ArgumentTUNE_FRIC_LEV kann die Reibungsgröße einer Roboterachsewährend der Programmabarbeitung angepasst werden. Der Wertwird in Prozent (zwischen 1 und 500) von der Reibungsgröße ange-geben, die vom Parameter Friction FFW Level definiert wird.

TUNE_FRIC_LEV

Durch Aufruf der Instruktion TuneServo mit dem ArgumentTUNE_FRIC_RAMP kann die Geschwindigkeit der Motorwelle, bei derdie volle Reibungskompensation erreicht wird, während der Program-mabarbeitung angepasst werden. Der Wert wird in Prozent (zwischen1 und 500) von der Reibungskompensationsrampe angegeben, dievom Parameter Friction FFW Ramp definiert wird.

TUNE_FRIC_RAMP

Normalerweise besteht keine Notwendigkeit, die Rampe für die Rei-bungskompensation abzustimmen.

Konfigurieren der ReibungsgrößeDie Reibungsgröße wird für jede Roboterachse gesetzt. Führen Sie für jede einzelneAchse folgende Schritte durch:

Aktion

Überprüfen Sie den Roboter, indem Sie ihn die anspruchsvollsten Tasks ausführenlassen (die schwierigsten Formen). Wird der Roboter beim Schneiden eingesetzt,dann lassen Sie ihn mit demselben Werkzeug schneiden wie bei der Fertigung.

1

Achten Sie auf die Bahnabweichungen und prüfen Sie, ob die Achsenreibungsgrößeerhöht oder verringert werden muss.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1653HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.3 Manuelle Reibungsabstimmung

Page 166: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Aktion

Stellen Sie die Reibungsgröße mit der RAPID-Instruktion TuneServo und dem Abstim-mungstyp TUNE_FRIC_LEV ein. Die Größe wird in Prozent des Friction FFW Le-vel-Werts angegeben.

2

Beispiel: Die Instruktion zum Anheben der Reibungsgröße um 20 % lautet folgender-maßen:TuneServo MHA160R1, 1, 120 \Type:= TUNE_FRIC_LEV;

Wiederholen Sie Schritt 1 und 2 so oft, bis Sie mit der Bahnabweichung zufriedensind.

3

Die endgültigen Abstimmungswerte können in die Systemparameter übertragen werden.4Beispiel: Der Friction FFW Level beträgt 0,5 und der endgültige Abstimmungswert(TUNE_FRIC_LEV) liegt bei 120 %. Setzen Sie den Friction FFW Level auf 0,6 und denAbstimmungswert auf 100 % (Standardwert), was gleichbedeutend ist.

Tipp

Die Einstellung kann bis zu einem Höchstwert von 500 % vorgenommen werden.Falls das nicht reicht, müssen Sie einen höheren Wert für den Parameter FrictionFFWLevel setzen, sieheSetzen vonAbstimmungssystemparameternauf Seite168.

166 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.3 Manuelle ReibungsabstimmungFortsetzung

Page 167: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.3.4 Systemparameter

3.3.4.1 Systemparameter

Über die SystemparameterHier erhalten Sie eine kurze Beschreibung jedes Parameters in Advanced ShapeTuning. Weitere Informationen finden Sie unter dem jeweiligen Parameter imTechnisches Referenzhandbuch - Systemparameter.

Friction Compensation / Control ParametersDiese Parameter gehören zum Typ Friction Compensation in der ParametergruppeMotion, außer für die Roboter IRB 1400 und IRB 1410, wo sie zum Typ ControlParameters in der Parametergruppe Motion gehören.

BeschreibungParameter

Advanced Shape Tuning ist aktiv, wenn Friction FFW On auf TRUEgesetzt ist.

Friction FFW On

Friction FFW Level ist die Reibungsgröße der Roboterachse. Siehefolgende Abbildung.

Friction FFW Level

Friction FFW Ramp ist die Geschwindigkeit der Roboter-Motorwelle,bei der die Reibung die durch Friction FFW Level definierte Reibungs-größe erreicht hat. Siehe folgende Abbildung.

Friction FFW Ramp

Es ist normalerweise nicht erforderlich, Friction FFW Ramp zu verän-dern.

Abbildung

en0900000117

Anwendungshandbuch - Steuerungssoftware IRC5 1673HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.4.1 Systemparameter

Page 168: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.3.4.2 Setzen von Abstimmungssystemparametern

Automatische Anpassungen erfordern nur selten Änderungen an SystemparameternBei der automatischen Abstimmung bleibt, wenn die Reibungsgrößen in einempersistenten Datenfeld gespeichert werden, die Abstimmung nach einemStromausfall erhalten. Die automatische Abstimmung kann auch zum Setzenverschiedener Abstimmungsgrößen für verschiedene Bewegungssequenzen derRoboter verwendet werden, was mit Systemparametern nicht erreichbar ist. Wenndie automatische Abstimmung verwendet wird, müssen die Systemparameter nurgeändert werden, wenn die Standardwerte stark abweichen, siehe Anfahren miteinem geschätzten Wert auf Seite 168.

Abstimmung auf Systemparameter übertragenBei der manuellen Abstimmung werden die Werte bei einem Stromausfall auf dieVoreinstellung (100 %) zurückgesetzt. Systemparametereinstellungen sind jedochdauerhaft.Wird eine temporäre Abstimmung vorgenommen, die nur für einen Teil derProgrammabarbeitung gilt, sollten die Werte nicht übertragen werden.Führen Sie folgende Schritte durch, um den Abstimmungswert der Reibungsgröße(TUNE_FRIC_LEV) auf den Parameter Friction FFW Level zu übertragen:

Aktion

Öffnen Sie in RobotStudio den Konfigurationseditor, die Parametergruppe Motion,und wählen Sie den Typ Friction comp aus (außer für die Roboter IRB 1400 und IRB1410, da diese zum Typ Control parameters gehören).

1

Multiplizieren Sie den Friction FFWLevelmit dem Abstimmungswert. Setzen Sie diesenWert als neuen Friction FFW Level und stellen Sie den Abstimmungswert(TUNE_FRIC_LEV) auf 100 % ein.

2

Beispiel: Der Friction FFW Level beträgt 0,5 und der endgültige Abstimmungswert(TUNE_FRIC_LEV) liegt bei 120 %. Setzen Sie den Friction FFW Level auf 0,6 (1,20 x0,5) und den Abstimmungswert auf 100 % (Standardwert), was gleichbedeutend ist.

Starten Sie die Steuerung neu, damit die Änderungen wirksam werden.3

Anfahren mit einem geschätzten WertDer Parameter Friction FFW Level stellt den Anfangswert für die Abstimmung dar.Ist dieser Wert sehr weit vom richtigen Wert entfernt, könnte eine Abstimmung aufden richtigen Wert unmöglich sein. Das ist allerdings unwahrscheinlich, da derFriction FFW Level standardmäßig auf einen für die meisten Situationen annäherndrichtigen Wert eingestellt ist.Ist der Friction FFW Level-Wert aus irgendeinem Grund zu weit vom richtigen Wertentfernt, kann er in einen neuen geschätzten Wert geändert werden.

Aktion

Öffnen Sie in RobotStudio den Konfigurationseditor, die Parametergruppe Motion,und wählen Sie den Typ Friction comp aus (außer für die Roboter IRB 1400 und IRB1410, da diese zum Typ Control parameters gehören).

1

Setzen Sie den Parameter Friction FFW Level auf einen geschätzten Wert. Stellen Sienicht den Wert 0 (null) ein, weil das eine Abstimmung unmöglich macht.

2

Starten Sie die Steuerung neu, damit die Änderungen wirksam werden.3

168 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.4.2 Setzen von Abstimmungssystemparametern

Page 169: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.3.5 RAPID-Komponenten

Über die RAPID-KomponentenDies ist ein Überblick über alle Instruktionen, Funktionen und Datentypen inAdvanced Shape Tuning.Weitere Informationen finden Sie unter Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

Instruktionen

BeschreibungInstruktionen

Reibungsidentifikation initialisierenFricIdInit

Reibungsidentifikation evaluierenFricIdEvaluate

Reibungslevel nach Reibungsidentifikation einstellenFricIdSetFricLevels

FunktionenAdvanced Shape Tuning enthält keine Funktionen.

DatentypenAdvanced Shape Tuning enthält keine Datentypen.

Anwendungshandbuch - Steuerungssoftware IRC5 1693HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.3.5 RAPID-Komponenten

Page 170: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.4 Motion Process Mode [enthalten in 687-1]

3.4.1 Über Motion Process Mode

ZweckDer Zweck von Motion Process Mode ist die Vereinfachung der spezifiziertenAnwendungseinstellung, d. h. die Optimierung der Leistung des Roboters für einebestimmte Anwendung.Für die meisten Anwendungen ist der Standardmodus die beste Wahl.

Verfügbare Bewegungsprozess-ModiEin Bewegungsprozess-Modus besteht aus einem spezifischen SatzAbstimmungsparameter für einen Roboter. Jeder Satz Abstimmungsparameter,also jeder Modus, optimiert die Roboterabstimmung für eine bestimmteAnwendungsklasse.Es gibt drei vordefinierte Modi:

• Optimal cycle timemode - Dieser Modus bietet die kürzestmögliche Zykluszeitund ist in der Regel der Standardmodus.

• Accuracy mode - Dieser Modus verbessert die Bahngenauigkeit. DieZykluszeit wird im Vergleich zu Optimal cycle time mode leicht erhöht. Diesist die empfohlene Wahl zur Verbesserung der Bahngenauigkeit für kleineund mittelgroße Roboter, beispielsweise IRB 2400 und IRB 2600.

• Low speed accuracy mode - Dieser Modus verbessert die Bahngenauigkeit.Die Zykluszeit wird im Vergleich zu Accuracy mode leicht erhöht. Dies ist dieempfohlene Wahl zur Verbesserung der Bahngenauigkeit für große Roboter,beispielsweise IRB 4600.

• Low speed stiff mode – Dieser Modus wird für Kontaktanwendungenempfohlen, bei denen eine maximale Servo-Steifigkeit relevant ist. Er kannebenso für einige langsame Geschwindigkeitsanwendungen verwendetwerden, bei denen minimale Bahnvibrationen gewünscht wird. Die Zykluszeitwird im Vergleich zum Low speed accuracy mode höher sein.

• Press tending mode – Ändert den Kv Factor, Kp Factor sowie den Ti Factor,um Werkzeugvibrationen zu reduzieren. Dieser Modus ist in erster Linie fürden Einsatz in Pressenbedienungsanwendungen vorgesehen, wo flexibleGreifer mit großer Reichweite in y-Richtung eingesetzt werden.

Außerdem gibt es vier Modi für die anwendungsspezifische Benutzerabstimmung:• MPM User mode 1 – 4

Auswahl des ModusDer Standardmodus kann geändert werden, indem der Systemparameter UseMotion Process Mode für Typ Robot angepasst wird.Ändern des Motion Process Mode von RAPID ist nur möglich, wenn die OptionAdvanced Robot Motion installiert wurde. Der Modus kann nur geändert werden,wenn der Roboter still steht, andernfalls wird ein Feinpunkt erzwungen.

Fortsetzung auf nächster Seite170 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.1 Über Motion Process Mode

Page 171: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Das folgende Beispiel zeigt eine typische Anwendung der RAPID-InstruktionMotionProcessModeSet.

MotionProcessModeSet OPTIMAL_CYCLE_TIME_MODE;

! Do cycle-time critical movement

MoveL *, vmax, ...;

...

MotionProcessModeSet ACCURACY_MODE;

! Do cutting with high accuracy

MoveL *, v50, ...;

...

Einschränkungen• Das Motion Process Mode-Konzept ist aktuell für alle sechs- und

siebensachsigen Roboter verfügbar, mit Ausnahme der Lackierroboter.• Die Mounting Stiffness Factor-Parameter sind nur für die folgenden Roboter

verfügbar:IRB 120, IRB 140, IRB 1200, IRB 1520, IRB 1600, IRB 2600, IRB 4600, IRB6620 (nicht LX), IRB 6640, IRB 6700.

• Für IRB 1410 stehen nur die Parameter Accset und "geometrischeGenauigkeit" zur Verfügung.

• Die folgenden Robotermodelle unterstützen die Verwendung von World AccFactor nicht (d.h. nur World Acc Factor = -1 ist erlaubt):IRB 340, IRB 360, IRB 540, IRB 1400, IRB 1410

Anwendungshandbuch - Steuerungssoftware IRC5 1713HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.1 Über Motion Process Mode

Fortsetzung

Page 172: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.4.2 Benutzerdefinierte Modi

Verfügbare AbstimmungsparameterWenn eine spezifischere Einstellung benötigt wird, können einigeAbstimmungsparameter in jedem Bewegungsprozessmodus geändert werden. Dievordefinierten Modi und die Benutzermodi können alle geändert werden. Auf dieseWeise kann der Benutzer eine spezifische Abstimmung für eine spezifischeAnwendung erstellen.Die folgende Liste enthält eine kurze Beschreibung der verfügbarenAbstimmungsparameter.

• Use Motion Process Mode Type - wählt vordefinierte Parameter für einenNutzermodus.

• Accset Acc Factor – ändert die Beschleunigung• Accset Ramp Factor – ändert die Beschleunigungsrampe• Accset Fine Point Ramp Factor – ändert die Verzögerungsrampe in

Feinpunkten• Joint Acc Factor - ändert die Beschleunigung für ein spezifisches Gelenk.• World Acc Factor - aktiviert die dynamische World Acceleration Limitation

falls positiv, der typische Wert ist 1, deaktiviert wenn -1.• Geometric Accuracy Factor - verbessert die geometrische Genauigkeit falls

reduziert.• Dh Factor – ändert die Bahnglätte (effektive Systembandbreite)• Df Factor – ändert die erwartete Resonanzfrequenz für eine bestimmte Achse• Kp Factor – ändert die äquivalente Verstärkung der Positionssteuerung für

eine bestimmte Achse• Kv Factor – ändert die äquivalente Verstärkung der

Geschwindigkeitssteuerung für eine bestimmte Achse• Ti Factor – ändert die Nachstellzeit der Steuerung für eine bestimmte Achse• Mounting Stiffness Factor X – beschreibt die Steifigkeit des Robotersockels

in X-Richtung• Mounting Stiffness Factor Y – beschreibt die Steifigkeit des Robotersockels

in Y-Richtung• Mounting Stiffness Factor Z – beschreibt die Steifigkeit des Robotersockels

in Z-RichtungEine ausführliche Beschreibung finden Sie unter Motion Process Mode inTechnisches Referenzhandbuch - Systemparameter.

Fortsetzung auf nächster Seite172 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.2 Benutzerdefinierte Modi

Page 173: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Abstimmungsparameter von RAPIDDie meisten Parameter können geändert werden unter Verwendung von TuneServound AccSet Anweisungen.

Hinweis

Alle Parametereinstellungen sind relative Anpassungen der vordefiniertenParameterwerte. Obwohl es möglich ist, die Verwendung derBewegungsprozessmodi und der TuneServo/Accset-Instruktionen zukombinieren, wird empfohlen, entweder die Bewegungsprozessmodi oderTuneServo/AccSet auszuwählen.

Beispiel 1:Relative Anpassung der Beschleunigung = [Vordefiniert AccSet Acc Factor] *[AccSet Acc Factor] * [AccSet Instruktionsbeschleunigungsfaktor/100]

Beispiel 2:Relative Anpassung von Kv = [Vordefiniert Kv Factor] * [Kv Factor] *[Abstimmungswert der TuneServo(TYPE_KV)-Instruktion/100]

Vordefinierte ParameterwerteDie vordefinierten Parameterwerte für jeden Modus sind für verschiedeneRobotertypen unterschiedlich.Im Allgemeinen werden alle vordefinierten Parameter auf 1.0 für Optimal cycletime mode eingestellt.Für Low speed accuracy mode und Low speed stiff mode werden die ParameterAccSet und Dh für eine gleichmäßigere Bewegung und eine genauere Bahnverringert und Kv Factor, Kp Factor sowie Ti Factor werden für eine höhereServo-Steifigkeit geändert.Bei einigen Robotern ist es eventuell nicht möglich, Kv Factor in Low speedaccuracy mode und Low speed stiff mode zu erhöhen. Gehen Sie beim Einstellenvon Kv Factor stets vorsichtig vor, und achten Sie dabei auf erhöhteMotorgeräusche. Verwenden Sie zudem keine höheren Werte als für die Erfüllungder Anwendungsanforderungen benötigt werden. Ein Kp Factor, der zu hoch ist,oder ein Ti Factor, der zu niedrig ist, kann ebenfalls Vibrationen aufgrundmechanischer Resonanzen erhöhen.Accuracy Mode verwendet eine dynamische World Acceleration Limitation (WorldAcc Factor) und erhöhte geometrische Genauigkeit (Geometric Accuracy Factor),um die Pfadgenauigkeit zu verbessern.Df Factor und Mounting Stiffness Factors sind in den vordefinierten Modi immerauf 1.0 eingestellt, da die optimalen Werte dieser Parameter von der spezifischenInstallation abhängen, wie von der Steifigkeit des Sockels, auf dem der Robotermontiert wird. Diese Parameter können mithilfe von TuneMaster optimiert werden.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1733HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.2 Benutzerdefinierte Modi

Fortsetzung

Page 174: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Weitere Informationen finden Sie in der TuneMaster-Anwendung. Beachten Sieaußerdem die Begrenzungen von Mounting Stiffness Factor.

WARNUNG

Eine falsche Einstellung der Motion Process Mode-Parameter kann oszillierendeBewegungen oder Drehmomente verursachen, die den Roboter beschädigenkönnen.

174 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.2 Benutzerdefinierte ModiFortsetzung

Page 175: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.4.3 Allgemeine Informationen zur Roboterabstimmung

Minimieren der ZykluszeitFür die bestmögliche Zykluszeit muss der BewegungsprozessmodusOptimal cycletimemode verwendet werden. Dieser Modus ist normalerweise der Standardmodus.Der Anwender muss nur die Werkzeuglast, die Nutzlast und die Armlastendefinieren, falls vorhanden. Sobald die Roboterbahn programmiert wurde, berechnetdie ABB QuickMove-Bewegungstechnologie automatisch die optimalenBeschleunigungen und Geschwindigkeiten entlang der Bahn. Dies führt zu einerzeitoptimalen Bahn mit einer möglichst kurzen Zykluszeit. Daher wird keineAbstimmung der Beschleunigung benötigt. Die Zykluszeit kann nur verbessertwerden, indem die Geometrie der Bahn geändert oder in einem anderen Bereichdes Arbeitsbereichs gearbeitet wird. Dieser Optimierungstyp kann bei Bedarf durchSimulation in RobotStudio durchgeführt werden.

Erhöhen der Bahngenauigkeit und Verringern von VibrationenBei den meisten Anwendungen führt Optimal cycle time mode zu einemzufriedenstellenden Verhalten in Bezug auf Bahngenauigkeit und Vibrationen. Diesliegt an der ABB TrueMove-Bewegungstechnologie. Es gibt jedoch Anwendungen,bei denen die Genauigkeit durch Änderung der Einstellung des Roboters verbessertwerden muss. Diese Einstellung wurde zuvor mithilfe der Instruktionen TuneServound AccSet im RAPID-Programm vorgenommen.Das Konzept der Bewegungsprozessmodi vereinfacht diese anwendungsspezifischeEinstellung, und die drei vordefinierten Modi können in vielen Fällen hilfreich sein,ohne dass weitere Einstellungen erforderlich sind.Im Folgenden finden Sie allgemeine Hinweise für das Lösen vonGenauigkeitsproblemen, vorausgesetzt, dass die Standardauswahl Optimal cycletime mode getestet wurde und dass Genauigkeitsprobleme festgestellt wurden:

1 Stellen Sie sicher, dass die Werkzeuglast, die Nutzlast und die Armlastenrichtig definiert sind.

2 Überprüfen Sie an den Roboterarmen angeschlossene Werkzeuge undProzessausrüstung. Stellen Sie sicher, dass alle Teile richtig befestigt sindund dass die Starrheit des Werkzeugs angemessen ist.

3 Überprüfen Sie den Sockel, auf dem der Roboter montiert ist. SieheAusgleichder Sockelflexibilität auf Seite 175.

Ausgleich der SockelflexibilitätWenn der Sockel die Steifigkeitsanforderung des Produkthandbuchs des Robotersnicht erfüllt, muss die Sockelflexibilität ausgeglichen werden. Siehe AbschnittAnforderungen an den Sockel, Minimale Resonanzfrequenz im Produkthandbuchdes Roboters.Dies wird mithilfe von Df Factor für Achse 1 und 2 oder mithilfe vonMountingStiffness Factor ausgeführt, je nach Robotertyp. Siehe Einschränkungen aufSeite 178.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1753HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.3 Allgemeine Informationen zur Roboterabstimmung

Page 176: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

TuneMaster wird für die Suche nach dem optimalen Wert für Df Factor/MountingStiffness Factor verwendet. Der bezogene Df Factor/Mounting Stiffness Factorwird anschließend für das verwendete Motion Process Modes definiert.

Hinweis

Ein die Anforderungen nicht erfüllender Sockel beeinträchtigt die Genauigkeitimmer in gewissem Maße, sogar dann, wenn die beschriebene Kompensierungverwendet wird. Wenn die Starrheit des Sockels sehr niedrig ist, ist es eventuellnicht möglich, das Problem mithilfe von Df Factor/Mounting Stiffness Factor zulösen.In diesem Fall muss der Sockel ausgebessert oder eine der unten aufgeführtenLösungen verwendet werden, z. B. Optimal cycle timemode mit einem niedrigenDh Factor, Accset Acc Factor oder Accset Fine Point Ramp Factor, je nachAnwendung.

WARNUNG

Die nicht ordnungsgemäße Einstellung für eine sehr niedrige Montagesteifigkeitkann zu Schwenk- oder Kreiselbewegungen führen, die den Roboter beschädigenkönnen.

Wenn die Genauigkeit weiterhin verbessert werden muss• Für Anwendungen mit hohen Anforderungen an die Pfadgenauigkeit, z.B.

Schneiden, sollten Advanced Shape Tuning and Accuracy mode/Low speedaccuracy mode verwendet werden. Die Auswahl des Bewegungsmodushängt vom Robotertyp und der spezifischen Anwendung ab. Im Allgemeinenwird Accuracy mode empfohlen für kleine und mittlere Roboter (bis zu IRB2400/2600) und Low speed accuracy mode wird für größere Roboterempfohlen.

• Wenn die Pfadgenauigkeit noch verbessert werden muss, können dieGenauigkeitsmodi mit den Tuning-Parametern eingestellt werden, hier einigeBeispiele:

- Einstellung des Accuracy mode für verbesserte Genauigkeit:1) Verringern Sie World Acc Factor, beispielsweise von 1 auf 0.5.2) Dh Factor auf 0.5 oder weniger reduzieren. Beachten Sie, dass einniedriger Wert des Dh factor die Eckbereiche bei hohenGeschwindigkeiten verändern kann.

- Einstellung des Low speed accuracymode für verbesserte Genauigkeit:1) Setzen Sie denWorld Acc Factor auf 1, und denGeometric AccuracyFactor auf 0.1.2)Dh Factor auf 0.5 oder weniger reduzieren.

• Die programmierte Geschwindigkeit muss manchmal für die bestmöglicheGenauigkeit, z.B. bei Schnitt-Anwendungen, reduziert werden. Zum Beispielsollte ein Kreis mit dem Radius 1 mm nicht mit einer höheren Geschwindigkeitprogrammiert werden als 20 mm/s.

Fortsetzung auf nächster Seite176 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.3 Allgemeine Informationen zur RoboterabstimmungFortsetzung

Page 177: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

• Für Kontaktanwendungen, zum Beispiel Fräsen oder Vorbearbeitung, wirdLow speed stiff mode empfohlen. Dieser Modus kann auch für einigelangsame Geschwindigkeitsanwendungen (bis zu 100 mm/s) hilfreich sein,bei denen ein Minimum an Bahnvibrationen erforderlich ist, zum Beispielunter 0,1 mm. Beachten Sie, dass dieser Modus über eine sehr steifeServo-Abstimmung verfügt und dass es Fälle geben kann, in denenKv Factoraufgrund von Motorvibrationen und -geräuschen verringert werden muss.

• Wenn Überschwingungen und Vibrationen in Feinpunkten verringert werdenmüssen, verwenden Sie Optimal cycle time mode, und verringern Sie denWert von Accset Fine Point Ramp Factor oder Dh Factor, bis das Problemgelöst wurde.

• Wenn Genauigkeitsprobleme beim Starten oder Beenden der Umorientierungauftreten. Definieren Sie eine neue Zone mit erhöhten pzone_ori undpzone_eax. Diese müssen immer den gleichen Wert haben, auch wenn esim System keine externen Achsen gibt. Erhöhen Sie ebenfalls zone_ori.Streben Sie bei der Programmierung immer weiche Umorientierungen an.

• Wenn schließlich die Zykluszeit verringert werden muss, nachdem dieEinstellung der Genauigkeit abgeschlossen ist. Verwenden Sie verschiedeneBewegungsprozessmodi in unterschiedlichen Abschnitten desRAPID-Programms.

Anwendungshandbuch - Steuerungssoftware IRC5 1773HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.3 Allgemeine Informationen zur Roboterabstimmung

Fortsetzung

Page 178: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.4.4 Zusätzliche Informationen

Motion Process Mode im Vergleich zu TuneServo und AccSetDie Bewegungsprozessmodi vereinfachen die anwendungsspezifische Einstellungund ermöglichen die Definition der Einstellung mithilfe von Systemparameternanstelle des RAPID-Programms.Im Allgemeinen müssen die Bewegungsprozessmodi die erste Wahl für das Lösenvon Genauigkeitsproblemen sein. Eine anwendungsspezifische Einstellung kannjedoch auch noch mithilfe der TuneServo- und AccSet-Instruktionen imRAPID-Programm vorgenommen werden.Es gibt nur wenige Situationen, in denen TuneServo und AccSet eine bessereWahl darstellen. Ein Beispiel dafür ist, wenn eine Beschleunigungsverringerungin einem Abschnitt des RAPID-Programms das Genauigkeitsproblem löst und dieZykluszeit optimiert werden muss. In diesem Fall könnte es besser sein, AccSetzu verwenden, was ohne Feinpunkt geändert werden kann, während eine Änderungdes Bewegungsprozessmodus einen Feinpunkt erfordert.

Einschränkungen• Das Motion Process Mode-Konzept ist aktuell für alle sechs- und

siebensachsigen Roboter verfügbar, mit Ausnahme der Lackierroboter.• Die Mounting Stiffness Factor-Parameter sind nur für die folgenden Roboter

verfügbar:IRB 120, IRB 140, IRB 1200, IRB 1520, IRB 1600, IRB 2600, IRB 4600, IRB6620 (nicht LX), IRB 6640, IRB 6700.

• Für IRB 1410 stehen nur die Parameter Accset und "geometrischeGenauigkeit" zur Verfügung.

• Die folgenden Robotermodelle unterstützen die Verwendung von World AccFactor nicht (d.h. nur World Acc Factor = -1 ist erlaubt):IRB 340, IRB 360, IRB 540, IRB 1400, IRB 1410

Weitere Informationen

SieheInformation über

TechnischesReferenzhandbuch - Systempara-meter

Konfiguration der Parameter Motion Pro-cess Mode

Technisches Referenzhandbuch - RAPID In-struktionen, Funktionen und Datentypen

RAPID-Instruktionen:• AccSet – verringert die Beschleuni-

gung• MotionProcessModeSet - Einstel-

len des Bewegungsprozess-Modus• TuneServo – Abstimmen von Servos

178 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.4.4 Zusätzliche Informationen

Page 179: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.5 Wrist Move [enthalten in 687-1]

3.5.1 Einführung in Wrist Move

ZweckWrist Move Zweck vonWrist Move ist die Verbesserung der Bahngenauigkeit beimSchneiden von Geometrien mit kleinen Größen. Bei geometrischen Formen, wiez. B. kleine Öffnungen, verschlechtern die Reibungseffekte der Hauptachsen (1-3)des Roboters oft das optische Erscheinungsbild der Form. Die Idee ist nun, dassanstelle der Steuerung der Roboter-TCPs eine Handgelenksbewegung denSchnittpunkt zwischen Laserstrahl (oder Wasserstrahl, Leitspindel usw.) und derSchnittebene steuert. Für die Steuerung des Schnittpunktes werden nur zweiHandgelenkachsen benötigt. Anstatt die Verwendung aller Achsen des Roboterswerden nur zwei Handgelenkachsen verwendet, wodurch sich die Reibungseffekteauf der Bahn minimieren. Welches Handgelenkachsenpaar verwendet wird,entscheidet der Programmierer.

Verwendung vonWrist MoveWrist Move ist in der RobotWare-Option enthalten Advanced robot motion.Wrist Move wird zusammen mit der RAPID-Instruktion CirPathMode undBewegungsinstruktionen für kreisförmige Bögen verwendet, d. h. MoveC, TrigC,CapC, usw. Der Handgelenkbewegungsmodus wird durch die InstruktionCirPathMode zusammen mit einem der Flags Wrist45, Wrist46 oder Wrist56aktiviert. Ist dieser Modus aktiviert, resultieren alle anschließendenMoveC-Instruktionen in einer Handgelenkbewegung. Um wieder in denNormalzustand MoveC zurückzukehren, muss für CirPathMode ein anderes Flaggesetzt werden als für Wrist45, Wrist46 und Wrist56, wie z. B. PathFrame.

Hinweis

Während einer Handgelenkbewegung kann die TCP-Höhe über der Oberflächevariieren. Das ist eine unvermeidbare Konsequenz bei der Verwendung von nurzwei Achsen. Die Höhenabweichung ist abhängig von Roboterposition,Werkzeugdefinition und dem Radius des kreisförmigen Bogens. Je größer derRadius, desto größer ist auch die Höhenabweichung. Aufgrund derHöhenabweichung wird es empfohlen, dass die Bewegung beim ersten Versuchmit sehr niedriger Geschwindigkeit erfolgt, um zu prüfen, ob dieHöhenabweichung zu groß geworden ist. Ansonsten kann es möglich sein, dassdas Schneidwerkzeug mit der zu schneidenden Oberfläche kollidiert.

EinschränkungenDie Option Wrist Move kann nicht verwendet werden, wenn:

• Das Werkobjekt sich bewegt• Der Roboter fest auf einer Schiene oder einem anderen, sich bewegenden

Manipulator montiert ist

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1793HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.5.1 Einführung in Wrist Move

Page 180: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Die Option Wrist Move wird nur für Roboter unterstützt, die QuickMove in derzweiten Generation ausführen.Das Werkzeug wird während des Schneidens den korrekten Winkel gegen dieOberfläche nicht beibehalten. Als Konsequenz werden die Löcherschnitte mitdieser Methode leicht konisch sein. Normalerweise ist das bei dünnen Platten keinProblem, aber bei dicken Platten macht sich die Konizität bemerkbar.Die Höhe des TCPs über der Oberfläche variiert während des Schneidens. DieHöhenabweichung erhöht sich mit der auszuschneidenden Größe. Was die möglicheGröße der Kontur daher begrenzt, sind neben dem Risiko einer Kollision auchProzesscharakteristiken wie z. B. Brennweite des Laserstrahls oder desWasserstrahls.

180 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.5.1 Einführung in Wrist MoveFortsetzung

Page 181: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.5.2 Koordinatensystem der ausgeschnittenen Ebene

Definieren des Koordinatensystems der ausgeschnittenen EbeneÄußerst wichtig für das Konzept der Handgelenkbewegung ist die Definition einesKoordinatensystems der ausgeschnittenen Ebene. Dieses Koordinatensystemliefert Informationen über Position und Orientierung der Objektoberfläche. DasKoordinatensystem der ausgeschnittenen Ebene wird bei der Abarbeitung einerMoveC-Instruktion definiert. Das Koordinatensystem wird identisch mit demWerkzeug-Koordinatensystem an der Startposition definiert. Beachten Sie, dassfür eine Folge von MoveC-Instruktionen das Koordinatensystem derausgeschnittenen Ebene während der gesamten Folge gleich bleibt.

Abbildung, ausgeschnittene EbeneDie linke Abbildung zeigt, wie die ausgeschnittene Ebene definiert wird, und dierechte Abbildung zeigt Werkzeug-Koordinatensystem und das Koordinatensystemder ausgeschnittenen Ebene während des Schneidens.

en0900000118

VoraussetzungenAufgrund der Art und Weise, wie das Koordinatensystem der ausgeschnittenenEbene definiert ist, muss an der Startposition Folgendes erfüllt sein:

• Das Werkzeug muss sich senkrecht zur Oberfläche befinden• Die Z-Achse des Werkzeugs muss mit dem Laser- oder Wasserstrahl

übereinstimmen• Der TCP muss sich so nah wie möglich an der Oberfläche befinden

Wenn die ersten beiden Anforderungen nicht erfüllt werden, wirkt sich das auf dieForm der Schnittkontur aus. Beispiel: Ein kreisrundes Loch würde eher wie eineEllipse aussehen. Die dritte Anforderung ist normalerweise leicht zu erfüllen, dader TCP oft wenige Millimeter vor z. B. einer Wasserdüse eines Wasserstrahlsdefiniert wird. Wenn die dritte Anforderung jedoch nicht erfüllt wird, wirkt sich dasnur auf den Radius des sich daraus ergebenden Kreisbogens aus. Das heißt, der

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1813HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.5.2 Koordinatensystem der ausgeschnittenen Ebene

Page 182: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Radius des geschnittenen Bogens stimmt nicht mit dem programmierten Radiusüberein. Bei einem linearen Segment wirkt sich das auf die Länge aus.

Tipp

Im Bewegen-Fenster des FlexPendant gibt es eine Taste für die automatischeAbgleichung des Werkzeugs anhand eines ausgewählten Koordinatensystems.Mit dieser Funktionalität kann sichergestellt werden, dass sich das Werkzeugsenkrecht zur Oberfläche befindet, sobald mit der Handgelenkbewegungbegonnen wird.

Tipp

Die Handgelenkbewegung ist nicht auf Kreisbögen begrenzt: Sind die PositionenMoveC kollinear, wird eine gerade Linie erreicht.

182 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.5.2 Koordinatensystem der ausgeschnittenen EbeneFortsetzung

Page 183: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.5.3 RAPID-Komponenten

InstruktionHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Wrist Move. WeitereInformationen finden Sie unter der jeweiligen Beschreibung der Instruktion imTechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen undDatentypen.

BeschreibungInstruktion

CirPathMode macht es möglich, verschiedene Modi auszu-wählen, um das Werkzeug bei Drehbewegungen neu zu orien-tieren.

CirPathMode

Die Argumente Wrist45, Wrist46 und Wrist56 werdenspeziell für die Option Wrist Move verwendet.

Anwendungshandbuch - Steuerungssoftware IRC5 1833HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.5.3 RAPID-Komponenten

Page 184: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.5.4 RAPID-Code, Beispiele

Grundlegendes BeispielIn diesem Beispiel wird gezeigt, wir man zuerst unter Verwendung der Achsen 4und 5 und dann mit den Achsen 5 und 6 zwei Kreisbögen herstellt. Nach den beidenBögen wird die Handgelenkbewegung durch CirPathMode deaktiviert.

! This position will define the cut plane frame

MoveJ p10, v100, fine, tWaterJet;

CirPathMode \Wrist45;

MoveC p20, p30, v50, z0, tWaterJet;

! The cut-plane frame remains the same in a sequence of MoveC

CirPathMode \Wrist56;

MoveC p40, p50, v50, fine, tWaterJet;

! Deactivate Wrist Movement, could use \ObjectFrame

! or \CirPointOri as well

CirPathMode \PathFrame;

Erweitertes BeispielDieses Beispiel zeigt, wie man einen Slot mit dem Endradius R und der Länge L+2Runter Verwendung der Handgelenkbewegung schneidet. Siehe Abbildung, pSlotund wSlot auf Seite 185. Der Slot beginnt und endet an der Position pSlot, d. h.der Mitte des linken Halbkreises. Um Oszillationen im Roboter zu vermeiden,beginnt und endet der Schnitt mit halbkreisförmigen Zu- und Abführungspfaden,die sanft in die Slotkontur übergehen. Alle Koordinaten beziehen sich auf dasWerkobjekt wSlot.

! Set the dimensions of the slot

R := 5;

L := 30;

! This position defines the cut plane frame, it must be normal

! to the surface

MoveJ pSlot, v100, z1, tLaser, \wobj := wSlot;

CirPathMode \Wrist45;

! Lead-in curve

MoveC Offs(pSlot, R/2, R/2, 0), Offs(pSlot, 0, R, 0), v50, z0,tLaser, \wobj := wSlot;

! Left semi-circle

MoveC Offs(pSlot, -R, 0, 0), Offs(pSlot, 0, -R, 0), v50, z0, tLaser,\wobj := wSlot;

! Lower straight line, circle point passes through the mid-point

! of the line

MoveC Offs(pSlot, L/2, -R, 0), Offs(pSlot, L, -R, 0), v50, z0,tLaser, \wobj := wSlot;

Fortsetzung auf nächster Seite184 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.5.4 RAPID-Code, Beispiele

Page 185: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

! Right semi-circle

MoveC Offs(pSlot, L+R, 0, 0), Offs(pSlot, L, R, 0), v50, z0, tLaser,\wobj := wSlot;

! Upper straight line, circle point passes through the mid-point

! of the line

MoveC Offs(pSlot, L/2, R, 0), Offs(pSlot, 0, R, 0), v50, z0, tLaser,\wobj := wSlot;

! Lead-out curve back to the starting point

MoveC Offs(pSlot, -R/2, R/2, 0), pSlot, v50, z1, tLaser, \wobj :=wSlot;

Deactivate Wrist Movement

CirPathMode \ObjectFrame;

Abbildung, pSlot und wSlot

wSlot

pSlot

xx0900000111

Anwendungshandbuch - Steuerungssoftware IRC5 1853HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.5.4 RAPID-Code, Beispiele

Fortsetzung

Page 186: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

3.5.5 Fehlerbehebung

Unerwartete SchnittkonturIst die Schnittkontur unerwartet, überprüfen Sie Folgendes:

• Die Z-Achse des Werkzeugs muss mit dem Laser- oder Wasserstrahlübereinstimmen

• Die Z-Achse des Werkzeugs befindet sich senkrecht zur Oberfläche an derStartposition des ersten MoveC

• Wenn Sie über die Option Advanced Shape Tuning verfügen, versuchen Sie,die Reibung für die beteiligten Handgelenkachsen abzustimmen.

Nicht übereinstimmender RadiusStimmt der Radius des Kreisbogens nicht mit dem programmierten Radius überein,stellen Sie sicher, dass der TCP sich so nahe wie möglich an der Startpositionbefindet.

Bewegung des gewählten Achsenpaares nicht möglichIst die Bewegung mit dem ausgewählten Achsenpaar nicht möglich, versuchenSie die Aktivierung eines anderen Paares unter Verwendung eines der FlagsWrist45, Wrist46 oder Wrist56. Als letzte Möglichkeit versuchen Sie dasErreichen der Startposition mit einer anderen Roboterkonfiguration.

186 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

3 Motion performance3.5.5 Fehlerbehebung

Page 187: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4 Motion coordination4.1 Machine Synchronization [607-1], [607-2]

4.1.1 Überblick

Zwei OptionenMachine Synchronization besteht aus zwei Optionen, Sensor Synchronization undAnalog Synchronization. Die Funktionsweise ist bei beiden Optionen sehr ähnlich,jedoch unterscheiden sie sich in ihrer Hardware und Konfiguration.Der Unterschied zwischen den beiden Optionen ist Folgender:

• Analog Synchronization wird zusammen mit einem Sensor verwendet, derdie Position der externen mechanischen Einheit als analoges Eingangssignalanzeigt.

• Für Sensor Synchronization ist ein Encoder erforderlich, der Impulse alsBewegung der externen mechanischen Einheit erfasst, sowie eineEncoder-Schnittstelleneinheit, mit der die Impulse in eine Sensorpositionumgewandelt werden.

Die Informationen in diesem Kapitel beziehen sich alle auf beide Optionen, sofernnicht etwas anderes angegeben ist. Der Begriff Synchronisierungsoption beziehtsich auf beide Optionen. Informationen, die nur für eine der Optionen gelten, wirdals spezifisch fürSensor Synchronization oderAnalog Synchronization angegeben.

ZweckMit der Synchronisierungsoption wird die Robotergeschwindigkeit an ein externes,sich bewegendes Gerät (z. B. eine Presse oder einen Förderer) mithilfe einesSensors angepasst. Die Option lässt sich auch für die Synchronisierung zweierRoboter verwenden.

BeschreibungFür die Synchronisierung wird ein Sensor verwendet, um die Bewegungen einerDrucktür, eines Förderers, eines Drehtischs oder ähnlicher Geräte zu erkennen.Die Geschwindigkeit des Roboter-TCPs wird in Korrelation zum Sensorausgangangepasst, damit der Roboter das programmierte Ziel zum gleichen Zeitpunkterreicht wie das externe Gerät die programmierte Position.Die Synchronisierung mit dem externen Gerät hat keinen Einfluss auf die Bahndes Roboter-TCPs, aber auf die Geschwindigkeit, mit der der Roboter die Bahnentlang bewegt wird.

FunktionalitätDas an den Sensor angeschlossene externe Gerät kann nicht über dieRobotersteuerung gesteuert werden. Doch es weist gewisse Ähnlichkeiten miteiner mechanischen Einheit auf, die über die Robotersteuerung gesteuert wird:

• die Sensorpositionen werden imBewegen-Fenster am FlexPendant angezeigt

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1873HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.1 Überblick

Page 188: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

• die Sensorpositionen werden in robtarget angezeigt, wenn einKORPOS-Vorgang ausgeführt wird

• die mechanische Einheit kann aktiviert oder deaktiviert sein

Grundlegende MethodeDies ist die allgemeine Methode zum Einrichten von Synchronisierungsoptionen.Eine ausführlichere Beschreibung zur Vorgehensweise finden Sie imentsprechenden Abschnitt.

• Installieren Sie die Hardware, und schließen Sie diese an.• Installieren Sie die Synchronisierungssoftware.• Konfigurieren Sie die Systemparameter.• Schreibt ein Programm, das mit dem Sensor verbunden wird und verwendet

die Synchronisierung für Roboterbewegungen (oder ein Programm für eineMaster/Slave-Roboteranwendung).

188 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.1 ÜberblickFortsetzung

Page 189: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.2 Was benötigt wird

Sensor SynchronisationDie Sensor Synchronization-Anwendung besteht aus den folgenden Komponenten:

A

B

C

D E

F

en0400000655

Externes Gerät, das die Robotergeschwindigkeit bestimmt, z. B. eine DrucktürA

SynchronisierungsschalterB

EncoderC

Encoder-Schnittstelleneinheit (DSQC 377)D

SteuerungE

RoboterF

Verhält sich wie ein Sensor, der Eingaben an die Steuerung liefertB+C+D

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1893HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.2 Was benötigt wird

Page 190: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Analog SynchronizationDie Analog Synchronization-Anwendung besteht aus den folgenden Komponenten:

xx0700000431

Formpresse, die die Robotergeschwindigkeit bestimmtA

Analoger Sensor der PressenpositionB

SteuerungC

RoboterD

190 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.2 Was benötigt wirdFortsetzung

Page 191: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.3 Synchronisierungsfunktionen

FunktionenDie Synchronisierungsoption enthält die folgenden Funktionen:

BeschreibungMerkmal

Im Automatikbetrieb bei konstanter Sensorgeschwindigkeit verbleibt derWerkzeugarbeitspunkt (TCP) des Roboters innerhalb der programmiertenPosition, die dem Sensor entspricht, mit einer Fehlergrenze von:

• +/- 50 ms für Sensor Synchronization• +/- 100 ms für Analog Synchronization

Das tritt solange ein, wie sich der Roboter hinsichtlich der Bewegung deshinzugefügten Sensors innerhalb seiner dynamischen Grenzen befindet.Diese Abbildung hängt von der Kalibrierung des Roboters und Sensorsab und kann nur auf die lineare Synchronisierung angewendet werden.

Genauigkeit

Nur für Sensor Synchronization:ObjektqueueJedes Mal, wenn das externe Gerät den Synchronisierungsschalter auslöst,wird in der Objektqueue ein Sensorobjekt erstellt. Die Encoder-Schnittstel-leneinheit verbleibt in der Objektqueue, obwohl die Queue für SensorSynchronization normalerweise nicht mehr als ein Objekt enthält.

Ein RAPID-Programm hat über den Sensor Zugriff auf die aktuelle Positionund Geschwindigkeit des externen Geräts.

RAPID-Zugriffauf Sensorda-ten

Es werden bis zu 2 Sensoren unterstützt.Mehrere Senso-ren Bei Sensor Synchronization muss jeder Sensor über DSQC 377 verfügen.

Anwendungshandbuch - Steuerungssoftware IRC5 1913HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.3 Synchronisierungsfunktionen

Page 192: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.4 Allgemeine Beschreibung des Synchronisierungsprozesses

Beispiel mit einer PresseIm folgenden Beispiel werden die grundlegenden Schritte einer Synchronisierungzur Materialhandhabung einer Presse dargestellt.

Dann ...Funktion

weist ein Signal von der Robotersteuerung (oder SPS) diePresse an, zu starten.

die Presse ist geschlossenund betriebsbereit

Für Sensor Synchronization wird der Synchronisierungsschalterausgelöst, und ein Sensorobjekt wird in der Objektqueue er-stellt. Der Roboter wird mit dem Objekt verbunden.

die Presse beginnt sich zuöffnen

Der Roboter bewegt sich bei Sensor Synchronization sowieAnalog Synchronization synchron mit der Presse in Richtungder Presse. Der Roboter erreicht sie, wenn die Presse weitgenug geöffnet ist.

platziert (bzw. entfernt) der Roboter ein Werkstück in (bzw.aus) der Presse. Die Synchronisierung wird beendet.

die Presse ist so weit geöff-net, dass der Roboter ein-treten kann Das Sensorobjekt wird anschließend bei Sensor Synchroniza-

tion getrennt (aus der Objektqueue entfernt).

192 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.4 Allgemeine Beschreibung des Synchronisierungsprozesses

Page 193: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.5 Einschränkungen

Einschränkungen bei zusätzlichen AchsenJeder Sensor gilt als zusätzliche Achse. Aus diesem Grund muss dieSystemeinschränkung von 6 aktiven zusätzlichen Achsen um die Anzahl der aktivenund installierten Sensoren gesenkt werden.Der erste installierte Sensor wird den Messknoten 6 und der zweite Sensor denMessknoten 5 verwenden. Diese Messknoten sind für zusätzliche Achsen nichtverfügbar, und es dürfen keine Resolver an diese Knoten auf den Messplatinender zusätzlichen Achsen angeschlossen werden.

Verlust der Objektqueue bei einem Warmstart oder StromausfallNur für Sensor Synchronization:Die Objektqueue wird auf der Encoder-Schnittstelleneinheit (DSQC 377) verwaltet.Wenn das System neu gestartet wird oder wenn die Stromversorgung der Steuerungoder der Encoder-Schnittstelleneinheit ausfällt, geht die Objektqueue verloren.

MindestgeschwindigkeitEine Mindestgeschwindigkeit des erkannten externen Geräts muss gegeben sein,um eine fließende und genaue Bewegung aufrechtzuerhalten. Eine Bewegung desGeräts wird erst als solche angesehen, wenn sie über der Mindestgeschwindigkeitliegt. Diese Geschwindigkeit ist von der Encoder-Auswahl abhängig. Sie kannzwischen 4 mm/s und 8 mm/s liegen.

HöchstgeschwindigkeitEs gibt keine festgelegte Höchstgeschwindigkeit für das externe Gerät. DieGenauigkeit lässt bei Geschwindigkeiten, die über den Angaben liegen, nach. DerRoboter ist dann nicht mehr in der Lage, dem Sensor bei sehr hohenSensorgeschwindigkeiten (>1.000 mm/s) oder wenn er dynamische Grenzen hat,zu folgen.

Kompatibilität mit der Option Conveyor TrackingWenn die Optionen Machine Synchronization und Conveyor Tracking installiertsind, darf nur eine der mechanischen Einheiten SSYNC1 und CNV2 zur selbenZeit aktiv sein.Für Machine Synchronization (Sensor Synchronization oder AnalogSynchronization), muss CNV2 deaktiviert sein.Für Conveyor Tracking muss SSYNC1 deaktiviert sein.

Anwendungshandbuch - Steuerungssoftware IRC5 1933HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.5 Einschränkungen

Page 194: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.6 Installation der Hardware für Sensor Synchronization

4.1.6.1 Encoder-Spezifikation

Zweiphasiger TypDer Encoder muss für Quadraturimpulse zweiphasig sein, um die Registrierungder umgekehrten Sensorbewegung zu ermöglichen und falsche Zählwerte aufgrundvon Vibrationen usw. zu verhindern, wenn sich der Sensor nicht bewegt.

Technische Daten

PNP-Ausgang (offener Kollektor)Ausgangssignal:

10–30 V (in der Regel Zufuhr von 24 V DC über Encoder-Schnittstellen-einheit)

Spannung:

50 - 100 mAStrom:

2-phasig mit 90 Grad PhasenverschiebungPhase:

50%Betriebszyklus:

20 kHzMax. Frequenz:

Beispiel – EncoderEin Beispiel für einen Encoder, der diese Kriterien erfüllt, ist der Lenord & BauerGEL 262.

194 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.6.1 Encoder-Spezifikation

Page 195: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.6.2 Encoder-Beschreibung

ÜberblickDer Encoder stellt eine Reihe von Impulsen bereit, welche die vom Sensorfestgestellte Bewegung anzeigen. Dies wird verwendet, um die Bewegung zwischendem Roboter und den externen Geräten zu synchronisieren.

ImpulskanäleDer Encoder verfügt über zwei Impulskanäle, A und B, die sich in der Phase um90° voneinander unterscheiden. Jeder Kanal sendet eine feste Anzahl von Impulsenpro Umdrehung aus, die von der Konstruktionsweise des Encoders abhängt.

• Die Anzahl der Impulse pro Umdrehung muss für den Encoder im Verhältniszur Untersetzung zwischen den sich bewegenden Geräten ausgewähltwerden.

• Das Impulsverhältnis vom Encoder muss im Bereich von 1.250 bis 2.500Impulsen pro Meter der Sensorbewegung liegen.

• Die Impulse von den Kanälen A und B werden zur Quadratur verwendet, umdas Impulsverhältnis mit vier zu multiplizieren und dadurch Zählwerte zuerhalten.

Das bedeutet, dass die Steuersoftware 5.000 bis 10.000 Zählwerte pro Meter füreinen Encoder mit dem Impulsverhältnis von 1.250 bis 2.500 misst.

en0300000556

SynchronisierungFür eine präzise Synchronisierung müssen die Bewegungen der externen Geräteinnerhalb bestimmter Grenzen in Abhängigkeit von den Roboterbewegungenbleiben. Für jeden Meter, den sich der Roboter bewegt, muss die Bewegung desexternen Geräts zwischen 0,2 und 5 Meter (oder Radiant) betragen.

Anwendungshandbuch - Steuerungssoftware IRC5 1953HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.6.2 Encoder-Beschreibung

Page 196: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.6.3 Empfehlungen für die Installation

ÜberblickDer Encoder muss so installiert werden, dass man ein eindeutiges Feedback derSensorausgabe erhält (entspricht der tatsächlichen Bewegung des externen Geräts).Der Encoder muss demnach so nah wie praktisch möglich am Roboter installiertwerden, und nicht weiter entfernt als 30 Meter.Der Encoder wird normalerweise auf der Antriebseinheit des externen Gerätsinstalliert. Der Encoder kann direkt oder über eine Treibriemenbaugruppe an eineAbtriebswelle der Antriebseinheit angeschlossen werden.

Hinweis

Der Encoder ist ein empfindliches Messgerät. Deshalb ist es wichtig, dass nurdie Kräfte der Wellendrehung vom Sensor auf den Encoder übertragen werdenund dass der Encoder mit Stoßdämpfern, etc. montiert wird, um Beschädigungendurch Vibration zu vermeiden.

PlatzierungFolgendes muss vor dem Start beachtet werden

Dann ...Situation

Der Encoder muss an der Sensorseite der Kupplung ange-schlossen werden.

Die Antriebseinheit ist miteiner Kupplungsbaugruppeausgerüstet

Es ist wichtig, dass eine speziell entwickelte flexible Kupplunginstalliert wird, um zu verhindern, dass mechanische Kräfteauf den Rotor des Encoders einwirken.

Der Encoder wird direkt mitder Welle der Antriebseinheitverbunden

Das sich bewegende Gerät kann selbst Ursache für Ungenau-igkeiten sein, da es über die Strecke von der Antriebseinheitzur Encoderzelle gestreckt oder durchgebogen wird. In sol-chen Fällen ist es u. U. besser, den Encoder näher zur An-triebseinheit anzuordnen und eine andere Kupplungsbaugrup-pe zu verwenden.

Die Antriebseinheit des exter-nen Geräts ist weit vom En-coder entfernt

196 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.6.3 Empfehlungen für die Installation

Page 197: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.6.4 Verbinden von Encoder und Encoder-Schnittstelleneinheit

ÜberblickWenn das Kabel vom Roboter zum Encoder zu lang ist, werden durch die Induktivitätim Kabel Nadelimpulse am Encoder-Signal erzeugt. Dieses Signal beschädigt übereinen längeren Zeitraum die Optokoppler in der Encoder-Schnittstelleneinheit.Siehe Produkthandbuch - IRC5 für weitere Informationen zum Anschließen an dieEncoder-Schnittstelleneinheit.

Rauschen reduzierenVerbinden Sie den Encoder mit einem abgeschirmten Kabel, um Rauschen zureduzieren.

Nadelimpulse reduzierenInstallieren Sie für beide Phasen einen Kondensator zwischen Signalkabel undMasse, um Nadelimpulse zu reduzieren. Der korrekte Kapazitätswert lässt sichermitteln, wenn Sie das Encoder-Signal in einem Oszilloskop anzeigen.Der Kondensator:

• muss an die Anschlussplatine angeschlossen werden, an die auch derEncoder angeschlossen ist.

• Werte sind 100 nF bis 1 µF, abhängig von der Kabellänge.

Stromversorgung des EncodersDer Encoder wird normalerweise mit 24 V DC aus der Encoder-Schnittstelleneinheitversorgt.Beim Verbinden von zwei Encoder-Schnittstelleneinheiten mit demselben Encoderdarf nur eine der beiden Encoder-Schnittstelleneinheiten Energie an den Encoderliefern. Wenn beide Encoder-Schnittstelleneinheiten Energie liefern, muss eineDiode an beide 24-V-DC-Verbindungen angebracht werden, um sicherzustellen,dass sich die beiden Stromversorgungseinheiten nicht gegenseitig beeinträchtigen.

Verbinden von Encoder und SynchronisierungsschalterNachfolgend wird beschrieben, wie der Encoder und der Synchronisierungsschalteran der Encoder-Schnittstelleneinheit installiert werden.

• Es ist möglich, einen Encoder an mehrere Encoder-Schnittstelleneinheitenanzuschließen.

• Jede Steuerung muss über eine Encoder-Schnittstelleneinheit verfügen,wenn mehr als ein Roboter den Sensor nutzen soll.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 1973HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.6.4 Verbinden von Encoder und Encoder-Schnittstelleneinheit

Page 198: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

AbbildungAktion

en0300000611

Verbinden Sie den Encoder mit der Encoder-Schnittstelleneinheit (DSQC 377) auf derSteuerung.

1

Verbinden Sie den Synchronisierungsschaltermit der Encoder-Schnittstelleneinheit (DSQC377) auf der Steuerung.

2

Suchen der Encoder-DrehrichtungNachfolgend wird beschrieben, wie die Encoder-Drehrichtung ermittelt werdenkann.

AbbildungAktion

Tippen Sie am FlexPendant auf Eingänge undAusgänge.

1

Tippen Sie auf Ansicht, und wählen Sie E/A-Einheiten aus

2

Scrollen Sie nach unten, und wählen SieQtrack– d377 aus

3

Scrollen Sie nach unten zu c1position4

Encoder 1

+2-AX12

29

17

19

20

21

22

P_ENC1_A+

P_ENC1_A–

P_ENC1_B+

P_ENC1_B–

0 Volt

+24 VDC

30

18

23

24

25

26

Connection for PNP encoder

B (90°)

A (0°)

0V

24VDC

Encoder 2

P_ENC2_A+

P_ENC2_A–

P_ENC2_B+

P_ENC2_B–

0 Volt

+24 VDC

B (90°)

A (0°)

0V

24VDC

en0300000584

Führen Sie den Encoder in Vorwärtsrichtungaus, während der Wert für C1Position überprüftwird.Wenn die Zahl hochgezählt wird:

• Keine Aktion erforderlich.Wenn die Zahl heruntergezählt wird:

• Verbindung der beiden Encoder-Flächen(0° und 90°) muss ausgetauscht werden.

5

198 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.6.4 Verbinden von Encoder und Encoder-SchnittstelleneinheitFortsetzung

Page 199: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.7 Installation der Hardware für Analog Synchronization

4.1.7.1 Erforderliche Hardware

Analoge EingangsplatineEs wird eine analoge Eingangsplatine wie zum Beispiel DSQC355A benötigt. SieheAnwendungshandbuch - DeviceNet-Master/Slave.

Analoger linearer SensorEs wird ein analoger linearer Sensor mit analogem Signaleingang zwischen 0 und10 V benötigt.

Anwendungshandbuch - Steuerungssoftware IRC5 1993HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.7.1 Erforderliche Hardware

Page 200: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.8 Installation der Software

4.1.8.1 Sensorinstallation

ÜberblickNormalerweise werden die Synchronisierungsoption und die DeviceNet-Optionwerkseitig von ABB geladen. Eine Neuinstallation ist nicht erforderlich. WeitereInformationen zum Hinzufügen von Optionen zum System sieheBedienungsanleitung - RobotStudio.Die Synchronisierungsoption installiert automatisch einen Sensor in denSystemparametern. Informationen zum Hinzufügen von mehr als einem Sensorsiehe Installation mehrerer Sensoren auf Seite 203.

Über die InstallationDie Optionen installieren drei zusätzliche Konfigurationen:

• E/A für die Encoder-Schnittstelleneinheit (nur für Sensor Synchronization)• Prozessbeschreibung des Sensors• Beschreibung der Bewegung der mechanischen Einheit

Konfiguration der Standardinstallation für Sensor SynchronizationDiese Vorgehensweise beschreibt die Konfiguration von Systemparametern fürSensor Synchronization im Konfigurationseditor in RobotStudio.

Aktion

Ändern Sie den Parameter Connected to Bus für die Einheit von „Virtual1“ in denkorrekten Bus, z. B. „DeviceNet1“.

1

Geben Sie die korrekte Adresse für die Einheit ein, Parameter DeviceNet Address.2

Wenn der Parameter DeviceNet Master Address (in der Parametergruppe I/O, TypBus) geändert wird, muss der Parameter Default Value (in der Parametergruppe I/O,Typ Fieldbus Command Type) für die Instanz TimeKeeperInit auf den gleichen Wertgeändert werden.

3

Konfiguration der Standardinstallation für Analog SynchronizationDiese Vorgehensweise beschreibt die Konfiguration von Systemparametern fürAnalog Synchronization im Konfigurationseditor in RobotStudio.

Aktion

Ändern Sie den Einheitentyp, Parameter Type of Unit, der Einheit „Virtual“ zum richtigenEinheitentyp, zum Beispiel „d355A“.

1

Ändern Sie den ParameterConnected to Bus der Einheit von „Virtual1“ in den korrektenBus, z. B. „DeviceNet1“.

2

Geben Sie die korrekte Adresse für die Einheit ein, Parameter DeviceNet Address.3

Ändern Sie das Kommunikationsintervall des Einheitentyps (z. B. d355A) von 50 auf20 ms, Parameter Connection 1 Interval.

4

Weitere Informationen über diesen Parameter finden Sie unter Anwendungshand-buch - DeviceNet-Master/Slave.

Fortsetzung auf nächster Seite200 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.8.1 Sensorinstallation

Page 201: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Manuelles Hinzufügen eines Sensors für Sensor SynchronizationGehen Sie wie folgt vor, um einen Sensor manuell hinzuzufügen.

Aktion

Schließen Sie die Encoder-Schnittstelleneinheit an den CAN-Bus an. Beachten Siedie Adresse auf dem CAN-Bus.

1

Klicken Sie in RobotStudio auf Parameter laden.2

Wählen Sie: Parameter laden, falls keine Duplikate, und klicken Sie auf Öffnen.3

Installation einesMaster-Sensors, der an DeviceNet1 angeschlossen ist (erste Platine).4Laden Sie die folgenden Dateien nacheinander aus dem Verzeichnis „OPTIO-NEN/CNV“:

• syvm1_eio.cfg• syvm1_prc.cfg• syvm1_moc.cfg

Installation einesSlave-Sensors, der an DeviceNet2 angeschlossen ist (zweite Platine).5Laden Sie die folgenden Dateien nacheinander aus dem Verzeichnis „OPTIO-NEN/CNV“:

• syvs1_eio.cfg• syvs1_prc.cfg• syvs1_moc.cfg

Führen Sie einen Neustart des Systems aus.6

Korrigieren Sie bei Bedarf die Adresse für die neuen Encoder-Schnittstelleneinheiten.Die Standardadressen in der Datei syvxx_eio.cfg müssen durch die tatsächlicheAdresse der Platine ersetzt werden.

7

Manuelles Hinzufügen eines Sensors für Analog SynchronizationEs sind keine vorbereiteten Dateien für das Hinzufügen eines Sensors für AnalogSynchronization vorhanden. Dies kann durch Kopieren der folgenden Dateien unddas Bearbeiten dieser Dateien für den zweiten Sensor erfolgen:

• synvaileio.cfg• synvailprc.cfg• syim1.moc

Anwendungshandbuch - Steuerungssoftware IRC5 2013HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.8.1 Sensorinstallation

Fortsetzung

Page 202: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.8.2 Erneutes Laden der gespeicherten Motion-Parameter

ÜberblickWährend der Installation der Synchronisierungsoption, wird eine bestimmteSensorkonfiguration für zusätzliche Achsen in die Motion-Systemparameter geladen.

Hinweis

Wenn diese Parameter vor der Synchronisierungsoption geladen wurden, wirddie mechanische Einheit SSYNC1 nicht am FlexPendant unter demBewegen-Fenster angezeigt.

Erneutes Laden des SSYNC1-ParametersVerwenden Sie RobotStudio, und führen Sie die folgenden Schritte aus (weitereInformationen finden Sie unter Bedienungsanleitung - RobotStudio):

Aktion

Öffnen Sie den Konfigurationseditor, und wählen Sie die Parametergruppe Motion.1

Wählen Sie den Typ File aus.2

Klicken Sie auf Laden von Parametern, und wählen Sie den Modus aus.3

Klicken Sie aufÖffnen, und wählen Sie die Datei syn1_moc aus der RobotWare-Instal-lation aus.

4

Starten Sie die Steuerung neu, damit die Änderungen wirksam werden.5

ErgebnisDie mechanische Einheit SSYNC1 muss nun am FlexPendant unter demBewegen-Fenster verfügbar sein.

202 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.8.2 Erneutes Laden der gespeicherten Motion-Parameter

Page 203: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.8.3 Installation mehrerer Sensoren

Über die InstallationNormalerweise werden die Synchronisierungsoption und die DeviceNet-Optionwerkseitig von ABB geladen. Eine Neuinstallation ist nicht erforderlich. WeitereInformationen zum Hinzufügen von Optionen zum System sieheBedienungsanleitung - RobotStudio.Die Synchronisierungsoption installiert automatisch einen Sensor in denSystemparametern.

Duale Option DeviceNetWenn die duale Option DeviceNet enthalten ist, werden die folgenden drei Sensorenim System installiert:

• Ein Sensor mit „Synchronisierungstyp Roboter an Presse“: SSYNC1• Ein virtueller Master-Sensor: SSYNM1• Ein virtueller Slave-Sensor: SSYNCS1

Manuelles Hinzufügen von SensorenBis zu vier Sensoren können über dieselbe Steuerung verwendet werden. Dochdie Parameter für die drei zusätzlichen Sensoren müssen manuell geladen werden.Gehen Sie wie folgt vor, um die Sensoren manuell zu laden.

Aktion

Schließen Sie für Sensor Synchronization die Encoder-Schnittstelleneinheit an denCAN-Bus an. Beachten Sie die Adresse auf dem CAN-Bus.

1

Verwenden Sie RobotStudio, um neue Parameter hinzuzufügen.2

Klicken Sie auf Laden von Parametern.3

Wählen Sie: Parameter laden, falls keine Duplikate, und klicken Sie auf Öffnen.4

Installation einesMaster-Sensors, der an DeviceNet1 angeschlossen ist (erste Platine).5Laden Sie die folgenden Dateien nacheinander aus dem Verzeichnis „OPTION/CNV“:

• für den zweiten Sensor: syvm2_eio.cfg, syvm2_prc und syvm2_moc.cfg• für den dritten Sensor: syvm3_eio.cfg, syvm3_prc.cfg und syvm3_moc.cfg• für den vierten Sensor: syvm4_eio.cfg, syvm4_prc.cfg und syvm4_moc.cfg

Installation einesSlave-Sensors, der an DeviceNet2 angeschlossen ist (zweite Platine).6Laden Sie die folgenden Dateien nacheinander aus dem Verzeichnis „OPTION/CNV“:

• für den zweiten Sensor: syvs2_eio.cfg, syvs2_prc.cfg und syvs2_moc.cfg• für den dritten Sensor: syvs3_eio.cfg, syvs3_prc.cfg und syvs3_moc.cfg• für den vierten Sensor: syvs4_eio.cfg, syvs4_prc.cfg und syvs4_moc.cfg

Führen Sie einen Neustart des Systems aus.7

Für die Sensorsynchronisierung: Korrigieren Sie bei Bedarf die Adresse für die neuenEncoder-Schnittstelleneinheiten. Suchen Sie die jeweiligen Encoder-Schnittstellenein-heiten in den Systemparametern in der Parametergruppe I/O. Die Standardadressenin der Datei syvxx_eio.cfg muss durch die tatsächliche Adresse der Platine ersetztwerden.

8

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2033HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.8.3 Installation mehrerer Sensoren

Page 204: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Verfügbare SensorenDer zweite und der dritte Sensor (SSYNC2, SSYNC3) müssen jetzt unterMotion/mechanical unit und im Bewegen-Fenster am FlexPendant angezeigtwerden.

204 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.8.3 Installation mehrerer SensorenFortsetzung

Page 205: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9 Programmierung der Synchronisierung

4.1.9.1 Allgemeine Probleme bei der Programmierung mit derSynchronisierungsoption

Sensor aktivierenDer Sensor muss wie jede andere mechanische Einheit aktiviert werden, bevor erfür die Werkobjekt-Koordinierung genutzt werden kann. Die normaleActUnit-Instruktion wird genutzt, um den Sensor zu aktivieren, und DeactUnit

wird genutzt, um den Sensor zu deaktivieren.Standardmäßig wird der Sensor beim Start als inaktiv installiert. Falls gewünscht,kann der Sensor so konfiguriert werden, dass er beim Start immer aktiv ist. SieheMechanische Einheit auf Seite 242.

Automatische VerbindungNur für Sensor Synchronization:Wenn eine mechanische Sensoreinheit aktiviert ist, überprüft sie zunächst denStatus der Encoder-Schnittstelleneinheit, um festzustellen, ob der Sensor zuvorverbunden wurde. Zeigt die Encoder-Schnittstelleneinheit über das E/A-Signalc1Connected (c1 verbunden) eine Verbindung an, wird der Sensor bei Aktivierungautomatisch verbunden. Diese Funktion hat den Zweck, bei einem Stromausfallmit einer Ersatzstromversorgung an der Encoder-Schnittstelleneinheit eineautomatische Neuverbindung durchzuführen.

Verbindung über WaitSensor-InstruktionBewegungen, die mit dem externen Gerät synchronisiert werden müssen, könnenerst programmiert werden, wenn ein Objekt mit dem Sensor mithilfe einerWaitSensor-Instruktion verbunden wurde.Wenn das Objekt bereits mit einer früheren WaitSensor-Instruktion verbundenist, oder wenn die Verbindung während der Aktivierung zustande gekommen ist,wird durch Ausführung einer zweiten WaitSensor-Instruktion ein Fehlerhervorgerufen.Nach der Verbindung mit einem Objekt durch eine WaitSensor-Instruktion wirddie synchronisierte Bewegung durch Verwendung derSyncToSensor\On-Instruktion gestartet.Einzelheiten zu den Instruktionen WaitSensor und SyncToSensor\On, sieheTechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen undDatentypen.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2053HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.1 Allgemeine Probleme bei der Programmierung mit der Synchronisierungsoption

Page 206: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Programmieren der Sensor SynchronizationIn den folgenden Instruktionen gibt es Verweise auf Programmierbeispiele.

InformationAktion

Erstellen Sie ein Programm mit den folgenden Instruk-tionen:

ActUnit SSYNC1;

1

MoveL waitp, v1000, fine, tool;

WaitSensor SSYNC1;

Die Instruktion wird zurückge-geben, wenn sich ein Objektin der Objektqueue befindet.Wenn kein Objekt vorliegt,wird die Ausführung angehal-ten, während auf ein Objekt(d. h. ein Synchronisationssi-gnal) gewartet wird.

Führen Sie das Programm in einem einstufigen Verfah-ren bis einschließlich der WaitSensor-Instruktion aus.

2

WaitSensor muss über dasProgramm verlassen werden.Das Programm ist jetzt mitdem Objekt „verbunden“.

Bewegen Sie das externe Gerät, bis ein Synchronisati-onssignal vom Synchronisierungsschalter erzeugt wird.

3

Halten Sie das externe Gerät an der Position an, an derdas Roboterziel programmiert werden soll.

4

Starten Sie die synchronisierte Bewegung mit einerSyncToSensor SSYNC1\On-Instruktion. SieheProgram-mierbeispiele auf Seite 207.

5

Verwenden Sie für die Bewe-gungsinstruktionen Verschleif-zonen, siehe Feinpunktpro-grammierung auf Seite 212.

Programmierbewegungsinstruktionen.Bewegen Sie jedes Mal, wenn Sie eine Position ändern,das externe Gerät an die Position, die dem Roboterzielentsprechen muss.

6

Halten Sie die synchronisierte Bewegung mit einerSyncToSensor SSYNC1\Off-Instruktion an. SieheProgrammierbeispiele auf Seite 207.

7

Nur für Sensor Synchronization:8Programmieren Sie eineDropSensor SSYNC1;-Instruk-tion. Siehe Programmierbeispiele auf Seite 207.

Programmieren Sie eine DeactUnit SSYNC1;-Instruk-tion, wenn dies das Ende des Programms ist oder wennder Sensor nicht mehr benötigt wird. Siehe Program-mierbeispiele auf Seite 207.

9

Synchronisieren Sie den SensorWenn es nicht möglich ist, das externe Gerät an die gewünschte Position zubewegen, ändern Sie zunächst die Position, und bearbeiten Sie dann denSensorwert im Roboterziel (sowie für jede zusätzliche Achse).

206 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.1 Allgemeine Probleme bei der Programmierung mit der SynchronisierungsoptionFortsetzung

Page 207: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9.2 Programmierbeispiele

Sensor Synchronization-ProgrammMoveJ p0, vmax, fine, tool1;

!Activate sensor

ActUnit SSYNC1;

!Connect to the object

WaitSensor SSYNC1;

!Start the Synchronized motion

SyncToSensor SSYNC1\On;

!Instructions with coordinated robot targets

MoveL p10, v1000, z20, tool1;

MoveL p20, v1000, z20, tool1;

MoveL p30, v1000, z20, tool1;

!Stop the synchronized motion

SyncToSensor SSYNC1\Off;

!Exit coordinated motion

MoveL p40, v1000, fine, tool1;

!Disconnect from current object

DropSensor SSYNC1;

MoveL p0, v1000, fine;

!Deactivate sensor

DeactUnit SSYNC1;

Analog Synchronization-ProgrammVAR num startdist := 600;

MoveJ p0, vmax, fine, tool1;

!Activate sensor

ActUnit SSYNC1;

WaitSensor SSYNC1 \RelDist:=startdist;

!Start the Synchronized motion

SyncToSensor SSYNC1\On;

!Instructions with coordinated robot targets

MoveL p10, v1000, z20, tool1;

MoveL p20, v1000, z20, tool1;

MoveL p30, v1000, z20, tool1;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2073HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.2 Programmierbeispiele

Page 208: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

!Exit coordinated motion

MoveL p40, v1000, fine, tool1;

!Stop the synchronized motion

SyncToSensor SSYNC1\Off;

MoveL p0, v1000, fine;

!Deactivate sensor

DeactUnit SSYNC1;

208 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.2 ProgrammierbeispieleFortsetzung

Page 209: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9.3 Eintreten in und Beenden von koordinierter Bewegung in Verschleifzonen

Verschleifzonen können verwendet werdenSobald eine WaitSensor-Instruktion mit einem Objekt verbunden wird, ist esmöglich über Verschleifzonen mit dem Sensor in eine synchronisierte Bewegungeinzutreten und diese wieder zu beenden.

Trennen des Objekts nach der VerschleifzoneWenn eine Instruktion, die eine Verschleifzone nutzt, verwendet wird, um einekoordinierte Bewegung zu beenden, kann die DropSensor-Instruktion nicht direktauf diese folgen. Dies würde dazu führen, dass das Objekt getrennt wird, bevorder Roboter die Verschleifzone verlassen hat, während die Bewegung weiterhindas mit dem Förderer koordinierte Werkobjekt benötigt.Wenn das Werkobjekt getrennt wird, während die Bewegung weiterhin seinePosition benötigt, hält der Roboter an.Rufen Sie vor dem Trennen des Werkobjektes entweder eine Feinpunkt-Instruktionoder mindestens zwei Verschleifzonen-Instruktionen auf, um dies zu verhindern.

Richtiges BeispielDies ist ein Beispiel dafür, wie durch Verschleifzonen in eine koordinierte Bewegungeingetreten wird und wie diese beendet wird.

MoveL p10, v1000, fine, tool1;

WaitSensor SSYNC1;

MoveL p20, v500, z50, tool1;

!start synchronization after zone around p20

SyncToSensor SSYNC1\On

MoveL p30, v500, z20, tool1;

MoveL p40, v500, z20, tool1;

MoveL p50, v500, z20, tool1;

MoveL p60, v500, z50, tool1;

!Exit synchronization after zone around p60

SyncToSensor SSYNC1\Off;

MoveL p70, v500, fine, tool1;

DropSensor SSYNC1;

MoveL p10, v500, fine, tool1;

Falsches BeispielDies ist ein falsches Beispiel für das Beenden einer Koordinierung inVerschleifzonen. Dies führt dazu, dass das Programm wegen eines Fehlers beendetwird.

MoveL p50, v500, z20, tool1;

MoveL p60, v500, z50, tool1;

!Exit coordination in zone

SyncToSensor SSYNC1\Off;

DropSensor SSYNC1;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2093HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.3 Eintreten in und Beenden von koordinierter Bewegung in Verschleifzonen

Page 210: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Wenn eine koordinierte Bewegung in einer Verschleifzone beendet wird, musseine andere Bewegungsinstruktion ausgeführt werden, bevor der Sensor getrenntwird.

210 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.3 Eintreten in und Beenden von koordinierter Bewegung in VerschleifzonenFortsetzung

Page 211: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9.4 Mehrere Sensoren verwenden

ÜberblickWenn mehrere Sensoren verwendet werden, muss das Programm über mindestenseine Bewegungsinstruktion ohne Synchronisierung zwischen den Teilen der Bahnverfügen, die mit zwei verschiedenen Sensoren synchronisiert werden.

Programmbeispiel!Connect to the object

WaitSensor SSYNC1\RelDist:=Pickdist;

!Start the Synchronized motion

SyncToSensor SSYNC1\MaxSync:=1653\On;

!Instructions with coordinated robot targets

MoveL p30, v400, z20, currtool;

!Stop the synchronized motion

SyncToSensor SSYNC1\Off;

!Instructions with coordinated robot targets

MoveL p31, v400, z20, currtool;

!Connect to the object

WaitSensor SSYNC2\RelDist:=1720;

!Instructions with coordinated robot targets

MoveL p32, v400, z50, currtool;

!Start the Synchronized motion

SyncToSensor SSYNC2\MaxSync:=2090\On;

!Instructions with coordinated robot targets

MoveL p33, v400, z20, currtool;

!Stop the synchronized motion

SyncToSensor SSYNC2\Off;

Anwendungshandbuch - Steuerungssoftware IRC5 2113HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.4 Mehrere Sensoren verwenden

Page 212: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9.5 Feinpunktprogrammierung

ÜberblickVermeiden Sie den Gebrauch von Feinpunkten während der synchronisiertenBewegung. Der Roboter stoppt und verliert die Synchronisierung mit dem Sensorfür 100 ms. Anschließend fährt die RAPID-Ausführung fort.Feinpunktprogrammierung kann auf die letzte synchronisierte Bewegungsinstruktionangewandt werden, wenn die Synchronisierung auf der letzten Position nicht exaktsein muss.

ProgrammbeispielDas folgenden Programmbeispiel zeigt, wie die synchronisierte Bewegungangehalten werden kann.

WaitSensor SSYNC1;

SyncToSensor SSYNC1 \On;

MoveL p1, v500, z20, tool1;

MoveL p2, v500, fine, tool1;

SyncToSensor SSYNC1 \Off;

MoveL p3, v500, z20, tool1;

MoveL p4, v500, fine, tool1;

DropSensor SSYNC1;

Bei p4 ist der Roboter nicht mehr mit dem externen Gerät synchronisiert, und esgibt keine Beschränkungen für den Gebrauch von Feinpunkten.Bei p2 endet die Synchronisierung, und ein Feinpunkt kann verwendet werden,die Genauigkeit der Synchronisierung wird jedoch verringert.

212 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.5 Feinpunktprogrammierung

Page 213: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9.6 Trennen des Sensorobjektes

ÜberblickEin verbundenes Objekt wird für Sensor Synchronization möglicherweise mit einerDropSensor-Instruktion getrennt, sobald die synchronisierte Bewegungabgeschlossen ist.Beispiel: DropSensor SSYNC1;Für Analog Synchronization darf die Instruktion DropSensor nicht verwendetwerden.

HinweiseDie folgenden Hinweise müssen beim Trennen eines Objektes beachtet werden:

• Sie müssen sicherstellen, dass die Roboterbewegung nicht mehr dieSensorposition verwendet, wenn das Objekt getrennt wird. Wenn dieRoboterbewegung immer noch die Sensorpositionen benötigt, hält derRoboter an, wenn das Objekt getrennt wird.

• So lange die SyncToSensor \Off-Instruktion nicht ausgegeben wordenist, wird die Roboterbewegung mit dem Sensor synchronisiert.

• Eine Verbindung ist nicht zwingend notwendig, um eineDropSensor-Instruktion auszuführen. Wenn kein Objekt verbunden ist, wirdkein Fehler zurückgegeben.

Anwendungshandbuch - Steuerungssoftware IRC5 2133HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.6 Trennen des Sensorobjektes

Page 214: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9.7 Informationen zum FlexPendant

ÜberblickDer Benutzer kann über das FlexPendant auf die Sensorposition und-geschwindigkeit zugreifen

Bewegen-FensterDie Position (in Millimetern) des Sensorobjekts wird imBewegen-Fenster angezeigt.Dieser Wert ist negativ, wenn ein Queue Tracking Distance definiert ist. BeimAuslösen des Synchronisierungsschalters wird die Position automatisch imBewegen-Fenster aktualisiert.

E/A-Fenster

Sensor SynchronizationÜber das E/A-Fenster kann der Benutzer auf alle Signale, die auf derEncoder-Schnittstelleneinheit definiert sind, zugreifen. Über dieses Fenster ist esmöglich, die Sensorobjektposition (in Metern) und die Sensorobjektgeschwindigkeit(in m/s) anzuzeigen. Bis der Synchronisierungsschalter ein Sensorobjekt erfassthat, liegt die Geschwindigkeit bei 0 m/s.

Analog SynchronizationFür Analog Synchronization wird nur die Sensorposition im E/A-Fenster angezeigt.

214 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.7 Informationen zum FlexPendant

Page 215: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9.8 Hinweise zur Programmierung

LeistungseinschränkungenDie Synchronisierung wird nicht fortgesetzt, wenn die Geschwindigkeitsgrenzenfür die Achsen erreicht werden. Dies gilt insbesondere für Singularitäten. DerProgrammierer muss sicherstellen, dass das Geschwindigkeits- undBewegungspotenzial des Roboters während der synchronisierten Bewegungennicht von der Bahn überschritten wird.

BewegungsbefehleWährend der Synchronisierung sind alle Bewegungsbefehle zulässig.

EinrichtbetriebDie Synchronisierung ist im Einrichtbetrieb nicht aktiv.

Schaltfläche zur Geschwindigkeitsreduzierung %Die Synchronisierung kann nur bei einer Geschwindigkeit von 100 % durchgeführtwerden. Wenn die Robotergeschwindigkeit an die Sensorbewegungen angepasstwird, wird der definierte Prozentsatz der Robotergeschwindigkeit überschrieben.

Programmierte GeschwindigkeitDie beste Synchronisierungsleistung wird erreicht, wenn die programmierteGeschwindigkeit nah an der realen Ausführungsgeschwindigkeit liegt. Für dieprogrammierte Geschwindigkeit muss die wahrscheinlichsteAusführungsgeschwindigkeit gewählt werden. GroßeGeschwindigkeitsveränderungen zwischen zwei Instruktionen müssen vermiedenwerden.

FeinpunkteFeinpunkte sind während der Synchronisierungsbewegung zulässig, doch wenndas externe Gerät weiterhin bewegt wird, wird der Roboter am Feinpunktangehalten, und die Synchronisierung geht verloren. SieheFeinpunktprogrammierung auf Seite 212.

PositionswarnungenWenn das Positionsverhältnis von robot_to_sensor höher als 10 oder niedrigerals 0,1 ist, wird eine Warnung angezeigt. Der Benutzer muss dierobtarget-Position oder den Sensorwert in robtarget entsprechend derWarnungsinformation ändern.

GeschwindigkeitswarnungenWenn sensor_speed programmiert höher ist als:

• (max_sync_speed*sensor_nominal_speed)/robot_tcp_speed

Es wird eine Warnung angezeigt, und der Benutzer muss dieRobotergeschwindigkeit oder sensor_nominal_speed oder max_sync_speedentsprechend der Warnungsinformation ändern.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2153HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.8 Hinweise zur Programmierung

Page 216: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Wenn sensor_speed programmiert geringer ist als:• (min_sync_speed*sensor_nominal_speed)/robot_tcp_speed

Es wird eine ähnliche Warnung angezeigt:• Programmed_sensor_speed equals sensor_distance/robot_interpolation_time.

Wechsel von WerkzeugenBei der Verwendung von Corvec ist der Wechsel eines Werkzeugs während derSynchronisierung nicht zulässig.

Instruktionen, mit denen die Synchronisierung deaktiviert wirdMit den Instruktionen ActUnit, DeactUnit und ClearPath werden alleSyncToSensor- oder SupSyncSensorOn-Instruktionen deaktiviert. Deshalb dürfendie Instruktionen ActUnit, DeactUnit und ClearPath nicht zwischenSyncToSensor- oder SupSyncSensorOn-Instruktionen und denBewegungsinstruktionen, die synchronisierten oder überwachten Bahnenzugeordnet sind, verwendet werden.Die richtige Reihenfolge sieht wie folgt aus:

ActUnit SSYNC1;

WaitSensor SSYNC1;

SyncToSensor SSYNC1\On;

! move instructions

...

SyncToSensor SSYNC1\Off;

Andere RAPID-Einschränkungen• Die Befehle StorePath und RestoPath funktionieren während der

Synchronisierung nicht.• EoffsSet, EoffsOn und EoffsOff wirken sich auf die programmierte

Sensorposition aus.• Ein Neustart nach Netzfehler ist mit der Option „Synchronization“ nicht

möglich.

216 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.8 Hinweise zur ProgrammierungFortsetzung

Page 217: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.9.9 Betriebsarten

Betrieb unter manuell reduzierter Geschwindigkeit (< 250 mm/s)Mit der Vorwärts- und Rückwärtstaste kann das Programm schrittweise abgearbeitetwerden. Neue Instruktionen können hinzugefügt und programmierte Positionenmit KORPOS geändert werden.Der Roboter wird den Normalbetrieb wiederherstellen, wenn derDreipositionen-Zustimmungsschalter während der Bewegung freigegeben wird.Der Roboter führt die synchronisierten Bewegungen zum Sensor nicht aus, solangeder Modus der manuell reduzierten Geschwindigkeit aktiv ist.

Betrieb im AutomatikmodusNachdem eine SyncToSensor-Instruktion ausgeführt wurde, und wenn sich derSensor bewegt, kann das Programm über die Vorwärts- und Rückwärtstasten nichtmehr schrittweise abgearbeitet werden.

Start/StoppDer Roboter hält an und verlässt die Synchronisierung mit dem Sensor, wenn dieSTOPP-Taste gedrückt oder die RAPID-Instruktion Stop oder StopMove zwischenden SyncToSensor und DropSensor-Instruktionen ausgeführt wurde.Das Sensorobjekt geht nicht verloren, doch wenn sich der Sensor bewegt, wirddas Objekt schnell aus dem maximalen Abstand bewegt. Wenn sich der Sensorbewegt, ist ein Neustart der Synchronisierung von der aktuellen Instruktion nichterlaubt. Das Programm muss über MAIN neu gestartet werden. Bei erzwungenemNeustart stoppt der Roboter mit einem max_dist-Fehler dort, wo der Sensorangehalten hatte.

Not-Aus/NeustartWenn der Not-Aus-Schalter gedrückt wird, hält der Roboter sofort an. Falls dasProgramm nach SyncToSensor angehalten wurde, geht das Sensorobjekt nichtverloren, doch wenn sich der Sensor bewegt, wird das Objekt schnell aus demmaximalen Abstand bewegt. Ein Neustart der Synchronisierung von der aktuellenInstruktion ist nicht möglich, und das Programm muss über MAIN neu gestartetwerden. Bei erzwungenem Neustart nach der Frage „Möchten Sie fortfahren“bewegt sich der Roboter unsynchronisiert mit Programmgeschwindigkeit zumSensor.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2173HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.9 Betriebsarten

Page 218: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Betrieb bei manuell eingestellter voller Geschwindigkeit (100 %)Der Betrieb bei manuell eingestellter voller Geschwindigkeit entspricht dem Betriebim Automatikmodus. Das Programm kann durch Gedrückthalten der Starttasteausgeführt werden. Sobald aber eine SyncToSensor-Instruktion ausgeführt wirdund sich der Sensor bewegt, ist es nicht mehr möglich, das Programm schrittweisedurch Drücken der Vorwärts- und Rückwärtstasten abzuarbeiten.

Schaltfläche für TippbetriebDurch das abwechselnde Drücken und Loslassen der Schaltfläche für Tippbetriebwird der Roboter angehalten und neu gestartet. Die Synchronisierung geht verloren,wenn der Roboter anhält. Beim Neustart versucht der Roboter, mit derSynchronisierung an max_adjustment_speed fortzufahren.

Aus/NeustartWenn die Stopptaste oder der Not-Aus-Schalter gedrückt wird, hält der Robotersofort an. Falls das Programm nach SyncToSensor angehalten wurde, geht dassynchronisierte Objekt nicht verloren, doch wenn sich der Sensor bewegt, wirddas Objekt schnell aus dem maximalen Abstand bewegt. Ein Neustart von deraktuellen Instruktion ist nicht möglich, und das Programm muss über MAIN neugestartet werden.

218 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.9.9 BetriebsartenFortsetzung

Page 219: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.10 Roboter-zu-Roboter-Synchronisierung

4.1.10.1 Einleitung

ÜberblickEs ist möglich, zwei Robotersysteme in einer Synchronisierungsanwendung zusynchronisieren. Dies erfolgt über das Einrichten eines Master-Roboters und einesSlave-Roboters.

AnforderungenKabelverbindung und Einrichtung sieheAnwendungshandbuch - DeviceNet-Master/Slave.

Anwendungshandbuch - Steuerungssoftware IRC5 2193HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.1 Einleitung

Page 220: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.10.2 Das Konzept der Roboter-zu-Roboter-Synchronisierung

BeschreibungDie grundlegende Idee der Roboter-zu-Roboter-Synchronisierung ist, dass zweiRoboter einen gemeinsamen virtuellen Sensor benutzen. Der Master-Robotersteuert die virtuelle Bewegung dieses Sensors. Der Slave-Roboter verwendet dievirtuelle Position und Geschwindigkeit des Sensors, um seine Geschwindigkeitanzupassen.Die Synchronisierung wird durch Definieren der Positionen erreicht, an denen sichzwei Roboter gleichzeitig befinden sollen, und durch Zuweisen eines Sensorwertszu jedem dieser Punkte.

Abbildung

0 200 400 800600 1000

A

B

C

1

4

3

2

1

2

3

4

1 2 3 4

xx0400001145

220 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.2 Das Konzept der Roboter-zu-Roboter-Synchronisierung

Page 221: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.10.3 Konfigurationsparameter des Master-Roboters

ÜberblickVerwenden Sie zur Einrichtung des Master-Roboters die folgenden Parameter.Verwenden Sie RobotStudio, um die Parameter zu ändern.

Parametergruppe: Motion

WertSINGLE_TYPE/Parameter

SSYNC2Name

SS_LINmechanics

SSYNC2process_name

PSSYNCuse_path

Parametergruppe: Prozess

WertSENSOR_SYSTEM/Parameter

SSYNC1Name

CANsensor_type

CAN1use_sensor

1000adjustment_speed

600min_dist

20000max_dist

10correction_vector_ramp_length

Parametergruppe: I/O

EIO_UNIT

WertEIO_UNIT/Parameter

MASTER1Name

DN_SLAVEUnitType

DeviceNet1Bus

1DN_Address

EIO_SIGNAL

WertEIO_SIGNAL/Parameter

ao1PositionName

AOSignalType

MASTER1Unit

0-15UnitMap

10,0MaxLog

1MaxPhys

1MaxPhysLimit

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2213HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.3 Konfigurationsparameter des Master-Roboters

Page 222: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

WertEIO_SIGNAL/Parameter

32767MaxBitVal

–10,0MinLog

-1MinPhys

-1MinPhysLimit

-32767MinBitVal

WertEIO_SIGNAL/Parameter

ao1SpeedName

AOSignalType

MASTER1Unit

16-31UnitMap

10,0MaxLog

1MaxPhys

1MaxPhysLimit

32767MaxBitVal

–10,0MinLog

-1MinPhys

-1MinPhysLimit

-32767MinBitVal

WertEIO_SIGNAL/Parameter

ao1PredTimeName

AOSignalType

MASTER1Unit

32-47UnitMap

10,0MaxLog

1MaxPhys

1MaxPhysLimit

32767MaxBitVal

–10,0MinLog

-1MinPhys

-1MinPhysLimit

-32767MinBitVal

WertEIO_SIGNAL/Parameter

do1DreadyName

DOSignalType

MASTER1Unit

48UnitMap

Fortsetzung auf nächster Seite222 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.3 Konfigurationsparameter des Master-RobotersFortsetzung

Page 223: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

WertEIO_SIGNAL/Parameter

do1Sync2Name

DOSignalType

MASTER1Unit

50UnitMap

Anwendungshandbuch - Steuerungssoftware IRC5 2233HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.3 Konfigurationsparameter des Master-Roboters

Fortsetzung

Page 224: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.10.4 Konfigurationsparameter des Slave-Roboters

ÜberblickWeitere Informationen zur Standardkonfiguration siehe Systemparameter aufSeite 240.Verwenden Sie RobotStudio, um die Parameter zu ändern und um denSlave-Roboter einzurichten.

BeschreibungSo stoppen Sie den Slave-Roboter und den synchronisierten Neustart mit demMaster-Roboter:

• Stellen Sie den Parameterwert min_sync_speed auf 0,0 einDer Slave-Roboter wird auch angehalten, wenn in der Masterroboterbahn einFeinpunkt definiert ist.

Parametergruppe: Process

SENSOR_SYSTEM

WertSENSOR_SYSTEM/Parameter

SSYNCS1Name

CANsensor_type

CAN1use_sensor

1000adjustment_speed

600min_dist

20000max_dist

10correction_vector_ramp_length

1000nominal_speed

CAN_INTERFACE

WertCAN_INTERFACE/Parameter

CAN1Name

34Signal delay

c1ConnectedConnected signal

c1PositionPosition signal

c1SpeedVelocity signal

c1NullSpeedNull speed signal

Data ready signal

c1WaitWObjWaitwobj signal

c1DropWobjDropwobj signal

c1DTimestampData Time stamp

c1RemAllPObjRemAllPObj signal

NOVirtual sensor

Fortsetzung auf nächster Seite224 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.4 Konfigurationsparameter des Slave-Roboters

Page 225: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

WertCAN_INTERFACE/Parameter

0,33Sensor Speed filter

Parametergruppe: I/O

EIO_UNIT

WertEIO_UNIT/Parameter

SLAVE1Name

DN_SLAVEUnitType

DeviceNet2Bus

1DN_Address

EIO_SIGNAL

WertEIO_SIGNAL/Parameter

ai1PositionName

AISignalType

SLAVE1Unit

0-15UnitMap

10,0MaxLog

1MaxPhys

1MaxPhysLimit

32767MaxBitVal

–10,0MinLog

-1MinPhys

-1MinPhysLimit

-32767MinBitVal

WertEIO_SIGNAL/Parameter

ai1SpeedName

AISignalType

SLAVE1Unit

16-31UnitMap

10,0MaxLog

1MaxPhys

1MaxPhysLimit

32767MaxBitVal

–10,0MinLog

-1MinPhys

-1MinPhysLimit

-32767MinBitVal

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2253HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.4 Konfigurationsparameter des Slave-Roboters

Fortsetzung

Page 226: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

WertEIO_SIGNAL/Parameter

ai1PredTimeName

AISignalType

SLAVE1Unit

32-47UnitMap

10,0MaxLog

1MaxPhys

1MaxPhysLimit

32767MaxBitVal

–10,0MinLog

-1MinPhys

-1MinPhysLimit

-32767MinBitVal

WertEIO_SIGNAL/Parameter

di1DreadyName

DISignalType

SLAVE1Unit

48UnitMap

WertEIO_SIGNAL/Parameter

di1Sync2Name

DISignalType

SLAVE1Unit

50UnitMap

226 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.4 Konfigurationsparameter des Slave-RobotersFortsetzung

Page 227: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.10.5 Programmierbeispiel für den Master-Roboter

ÜberblickMit dem folgenden Programmierbeispiel wird gezeigt, wie ein Master-Roboterprogrammiert wird.

Programmierung eines Master-Roboterssyncstart:=20;

Syncpos1:=300;

Syncpos2:=600;

Syncpos3:=900;

Syncpos4:=1200;

!Synchronized motion between master and slave

robpos1.extax.eax_e:=syncpos1;

robpos2.extax.eax_e:=syncpos2;

robpos3.extax.eax_e:=syncpos3;

robpos4.extax.eax_e:=syncpos4;

robpos5.extax.eax_e:=syncstart;

!Init of external axis

pOutsideNext.extax.eax_e:=syncstart;

!Activate sensor

ActUnit SSYNC1;

!Instruction with coordinated robot targets

MoveJ pOutsideNext, v1000, fine, tool1;

!Init of external axis

robposstart.extax.eax_e:=syncstart;

!Set digital output

SetDO Dosync 1,0

!Instructions with coordinated robot targets

MoveJ robposstart, v2000, z50, tool1;

!Set digital output

PulseDO\PLength:= 0.1, doSync1;

!Instructions with coordinated robot targets

MoveJ robpos1, v2000, z10, tool1;

MoveJ robpos2, v2000, z10, tool1;

MoveJ robpos3, v2000, z10, tool1;

MoveJ robpos4, v2000, z10, tool1;

MoveJ robpos5, v2000, z10, tool1;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2273HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.5 Programmierbeispiel für den Master-Roboter

Page 228: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

HinweiseFolgendes muss beachtet werden

• Die Werte von extax.eax_e müssen bei jedem Roboterziel während derSynchronisierung erhöht werden. Die erste Bewegungsinstruktion desMaster-Roboters muss nach der Synchronisierung ebenfalls einen höherenextax.eax_e-Wert als die vorherige Instruktion aufweisen. Andernfalls kannsich der Wert von extax.eax_e verringern und die Synchronisierung beendetwerden, bevor das Ziel vom Slave-Roboter erreicht wurde.

• Die Bewegung zurück zu syncstart (im Beispiel Bewegungsinstruktion zurobpos5) ist möglicherweise langsamer als die angeforderte Geschwindigkeit(v2000). Bei einer kurzen Roboterbewegung und einem hohen Wert vonextax.eax_ewird die maximale Geschwindigkeit über den virtuellen Sensorbegrenzt.

• Verwenden Sie weder WaitSensor noch DropSensor.• Stellen Sie sicher, dass die maximale Geschwindigkeit des virtuellen Sensors

(speed_out) nicht mehr als 1m/s beträgt.

228 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.5 Programmierbeispiel für den Master-RoboterFortsetzung

Page 229: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.10.6 Programmierbeispiel für einen Slave-Roboter

ÜberblickMit dem folgenden Programmierbeispiel wird gezeigt, wie ein Slave-Roboterprogrammiert wird.

Programmierung eines Slave-Roboterssyncstart:=20;

Syncpos1:=300;

Syncpos2:=600;

Syncpos3:=900;

!Synchronized motion between master and slave

robpos1.extax.eax_e:=syncpos1;

robpos2.extax.eax_e:=syncpos2;

robpos3.extax.eax_e:=syncpos3;

!Instructions with coordinated robot targets

MoveJ posstart, v500, z50, tool1;

!Wait for digital input

WaitDI diSync1; 1;

!Connect to the object

WaitSensor SSYNC1;\RelDist:=100;

!Start the Synchronized motion

SyncToSensor SSYNC1\On;

!Instructions with coordinated robot targets

MoveJ robpos1, v2000, z10, tool1;

MoveJ robpos2, v2000, z10, tool1;

MoveJ robpos3, v2000, z10, tool1;

!Stop the synchronized motion

SyncToSensor SSYNC1\Off;

HinweiseFolgendes muss beachtet werden:

• Verwenden Sie DropSensor nicht.• Verwenden Sie keine Corvecs.

Anwendungshandbuch - Steuerungssoftware IRC5 2293HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.10.6 Programmierbeispiel für einen Slave-Roboter

Page 230: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.11 Synchronisieren mit dem hydraulischen Presswerkzeug unter Verwendungdes aufgezeichneten Profils

4.1.11.1 Einführung

ÜberblickIn diesem Abschnitt wird beschrieben, wie ein aufgezeichnetes Maschinenprofilverwendet wird, um die Genauigkeit der Robotersynchronisierung mit einerHydraulikpresse zu verbessern. Dieses Profil wird zur Modellierung einerPressenbahn verwendet. Wenn kein aufgezeichnetes Profil verwendet wird, mussder Abstand zwischen Roboter und Pressenmodell beim Programmieren der Bahngrößer sein.

Prinzipien der Synchronisierung einer Hydraulikpresse1 Zeichnen Sie die Bewegung der Hydraulikpresse auf.2 Aktivieren Sie den für den nächsten Zyklus zu verwendenden Datensatz.3 Aktivieren Sie die Sensorsynchronisierung mit der RAPID-Instruktion

SyncToSensor.

230 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.11.1 Einführung

Page 231: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.11.2 Konfiguration von Systemparametern

EinleitungIn diesem Abschnitt wird beschrieben, wie die Parameter konfiguriert werdenmüssen, um bei der Benutzung eines aufgezeichneten Sensorprofils mit einemhydraulischen Presswerkzeug das beste Ergebnis zu erzielen. Beginnen Sie dieAbstimmung mit den allgemeinen Einstellungen. Siehe Einstellungen für analogenEingang ohne DSQC377A-Encoder auf Seite 231, wenn das System keinenDSQC377A-Encoder nutzt. Siehe Einstellungen für einen Gruppeneingangnutzenden Sensor auf Seite 232, wenn der Sensor einen Gruppeneingang nutzt.Beschreibungen zu den Systemparametern können unter Systemparameter aufSeite 240 gefunden werden.

Allgemeine EinstellungenDieser Parameter gehört zum Konfigurationstyp Feldbusbefehl in derParametergruppe E/A.

WertParameter

10–15 Hz. Ändern Sie diesen Wert, um beim Starten undStoppen eine hohe Genauigkeit zu erzielen.

Wert des Parameters fürdie Instanz, in der der Typdes Feldbusbefehls IIRFFPist.

Dieser Parameter gehört zum Konfigurationstyp Bahnsensorsynchronisierung inder Parametergruppe Bewegung.

WertParameter

ROBOT_TO_HPRESSynchronisierungstyp

Die Parameter gehören zum Konfigurationstyp Sensor systems (Sensorsysteme)in der Parametergruppe Prozess.

WertParameter

Geben Sie den Namen des E/A-Signals einSensorstartsignal

Geben Sie den Namen des E/A-Signals einSignal „Presse anhalten“

Geben Sie den Namen des E/A-Signals einSync-Alarmsignal

Einstellungen für analogen Eingang ohne DSQC377A-EncoderDie Parameter gehören zum Konfigurationstyp Can Interface (Can-Schnittstelle)in der Parametergruppe Prozess.

WertParameter

JaVirtueller Sensor

Geben Sie den Namen des analogen Eingangs ein.Positionssignal

Hinweis

Alle übrigen Signale außer dem Positionssignal müssen leer sein (d. h. "").

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2313HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.11.2 Konfiguration von Systemparametern

Page 232: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Tipp

WaitSensor und DropSensor werden im RAPID-Programm nicht benötigt.

Einstellungen für einen Gruppeneingang nutzenden SensorDie Parameter gehören zum Konfigurationstyp Sensor systems (Sensorsysteme)in der Parametergruppe Prozess.

WertParameter

Bestimmen Sie die Anzahl der Eingangsdaten pro Meter, derStandardwert beträgt 10.000.

Pos.-Gruppe EA-Skala

Die Parameter gehören zum Konfigurationstyp Can Interface (Can-Schnittstelle)in der Parametergruppe Prozess.

WertParameter

JaVirtueller Sensor

Geben Sie den Namen des genutzten Gruppeneingangs ein.Positionssignal

Hinweis

Alle übrigen Signale außer dem Positionssignal müssen leer sein (d. h. "")

Tipp

WaitSensor und DropSensor werden im RAPID-Programm nicht benötigt.

232 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.11.2 Konfiguration von SystemparameternFortsetzung

Page 233: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.11.3 Programmbeispiel

ÜberblickIn diesem Abschnitt werden die für die Programmierung von hydraulischemPresswerkzeug typischen Programmierungszyklen beschrieben.

Programmbeispiel

Erster PressenzyklusMit einem Impuls in sensor_start_signal wird mit der Speicherung der Position ineinem Datensatz-Array begonnen.Während dieses Zyklus wird der Roboter nicht mit der Presse synchronisiert.

ActUnit SSYNC1;

WaitSensor SSYNC1;

! Set up a recording for 2 seconds

PrxStartRecord SSYNC1, 2, PRX_HPRESS_PROF;

! Process waiting for sensor_start_signal

! then waiting for press movement and record it during 2 sec.

Zweiter PressenzyklusEin Impuls in sensor_start_signal wird für die Synchronisierung von Datensätzenund tatsächlichen Positionen für jeden Zyklus benötigt.Während des Öffnens der Presse wird der Roboter synchronisiert zur Pressebewegt.

PrxActivAndStoreRecord SSYNC1, 0, "profile.log";

WaitSensor Ssync1;

MoveL p10, v1000, z10, tool, \WObj:=wobj0;

SyncToSensor Ssync1\On;

MoveL p20, v1000, z20, tool, \WObj:=wobj0;

MoveL p30, v1000, z20, tool, \WObj:=wobj0;

SyncToSensor Ssync1\Off;

Dritter PressenzyklusKeine besonderen Instruktionen erforderlich, aber ein Impuls in sensor_start_signalwird für die Synchronisierung von Datensätzen und tatsächlichen Positionen fürjeden Zyklus benötigt. Zudem kann eine neue Aufzeichnung gestartet werden.Während des Öffnens der Presse wird der Roboter synchronisiert zur Pressebewegt.

WaitSensor Ssync1;

MoveL p10, v1000, z10, tool, \WObj:=wobj0;

SyncToSensor Ssync1\On;

MoveL p20, v1000, z20, tool, \WObj:=wobj0;

MoveL p30, v1000, z20, tool, \WObj:=wobj0;

SyncToSensor Ssync1\Off;

Anwendungshandbuch - Steuerungssoftware IRC5 2333HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.11.3 Programmbeispiel

Page 234: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.12 Synchronisieren mit Gussmaschine unter Verwendung des aufgezeichnetenProfils

4.1.12.1 Einführung

ÜberblickIn diesem Abschnitt wird beschrieben, wie ein aufgezeichnetes Maschinenprofilverwendet wird, um die Genauigkeit der Robotersynchronisierung mit einerGussmaschine zu verbessern. Dieses Profil wird zur Modellierung einer Gießformverwendet. Wenn kein aufgezeichnetes Profil verwendet wird, muss der Abstandzwischen Roboter und Maschinenmodell beim Programmieren der Bahn größersein.

Prinzipien der Gusssynchronisierung1 Zeichnen Sie die Bewegung der Gussmaschine auf.2 Aktivieren Sie den für den nächsten Zyklus zu verwendenden Datensatz.3 Aktivieren Sie die Sensorsynchronisierung mit der RAPID-Instruktion

SynctoSensor.

Tipp

Beim Schließen der Gussmaschine kann statt der Synchronisierung dieÜberwachung verwendet werden. Weitere Informationen siehe Überwachungauf Seite 238.

234 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.12.1 Einführung

Page 235: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.12.2 Konfiguration von Systemparametern

EinleitungIn diesem Abschnitt wird beschrieben, wie die Parameter konfiguriert werdenmüssen, um bei der Benutzung eines aufgezeichneten Sensorprofils mit einerGussmaschine das beste Ergebnis zu erzielen. Beginnen Sie das Einstellen mitden allgemeinen Einstellungen. Siehe Einstellungen für analogen Eingang ohneDSQC377A-Encoder auf Seite 235, wenn das System keinen DSQC377A-Encodernutzt. Wenn der Sensor einen Gruppeneingang nutzt siehe Einstellungen für einenGruppeneingang nutzenden Sensor auf Seite 236. Für Beschreibungen zu denSystemparametern siehe Systemparameter auf Seite 240.

Allgemeine EinstellungenDieser Parameter gehört zum Konfigurationstyp Feldbusbefehl in derParametergruppe E/A.

WertParameter

10–15 Hz. Ändern Sie diesen Wert, um beim Starten undStoppen eine hohe Genauigkeit zu erzielen.

Wert des Parameters fürdie Instanz, in der der Typdes Feldbusbefehls IIRFFPist.

Dieser Parameter gehört zum Konfigurationstyp Bahnsensorsynchronisierung inder Parametergruppe Bewegung.

WertParameter

SYNC_TO_IMMSynchronisierungstyp

Die Parameter gehören zum Konfigurationstyp Sensor systems (Sensorsysteme)in der Parametergruppe Prozess.

WertParameter

Geben Sie den Namen des E/A-Signals einSensorstartsignal

Geben Sie den Namen des E/A-Signals einSignal „Presse anhalten“

Geben Sie den Namen des E/A-Signals einSync-Alarmsignal

Einstellungen für analogen Eingang ohne DSQC377A-EncoderDie Parameter gehören zum Konfigurationstyp Can Interface (Can-Schnittstelle)in der Parametergruppe Prozess.

WertParameter

JaVirtueller Sensor

Geben Sie den Namen des analogen Eingangs ein.Positionssignal

Hinweis

Alle übrigen Signale außer dem Positionssignal müssen leer sein (d. h. "").

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2353HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.12.2 Konfiguration von Systemparametern

Page 236: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Tipp

WaitSensor und DropSensor werden im RAPID-Programm nicht benötigt.

Einstellungen für einen Gruppeneingang nutzenden SensorDie Parameter gehören zum Konfigurationstyp Sensor systems (Sensorsysteme)in der Parametergruppe Prozess.

WertParameter

Bestimmen Sie die Anzahl der Steigungen pro Meter für denGruppeneingang. Der Standardwert beträgt 10.000.

Pos.-Gruppe EA-Skala

Die Parameter gehören zum Konfigurationstyp Can Interface (Can-Schnittstelle)in der Parametergruppe Prozess.

WertParameter

JaVirtueller Sensor

Geben Sie den Namen des genutzten Gruppeneingangs ein.Positionssignal

Hinweis

Alle übrigen Signale außer dem Positionssignal müssen leer sein (d. h. "")

Tipp

WaitSensor und DropSensor werden im RAPID-Programm nicht benötigt.

236 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.12.2 Konfiguration von SystemparameternFortsetzung

Page 237: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.12.3 Programmbeispiel

ÜberblickIn diesem Abschnitt werden die für die Programmierung einer Gussmaschinetypischen Programmierungszyklen beschrieben.

Programmbeispiel

Erster PressenzyklusMit einem Impuls in sensor_start_signal wird mit der Speicherung der Position ineinem Datensatz-Array begonnen.Während dieses Zyklus wird der Roboter nicht mit der Presse synchronisiert.

ActUnit SSYNC1;

WaitSensor SSYNC1;

! Set up a recording for 2 seconds

PrxStartRecord SSYNC1, 2, PRX_PROFILE_T1;

! Process waiting for sensor_start_signal

! then waiting for press movement and record it during 2 sec.

Zweiter PressenzyklusEin Impuls in sensor_start_signal wird für die Synchronisierung von Datensätzenund tatsächlichen Positionen für jeden Zyklus benötigt.Während des Öffnens der Presse wird der Roboter synchronisiert zur Pressebewegt.

PrxActivAndStoreRecord SSYNC1, 0, "profile.log";

WaitSensor Ssync1;

MoveL p10, v1000, z10, tool, \WObj:=wobj0;

SyncToSensor Ssync1\On;

MoveL p20, v1000, z20, tool, \WObj:=wobj0;

MoveL p30, v1000, z20, tool, \WObj:=wobj0;

SyncToSensor Ssync1\Off;

Dritter PressenzyklusKeine besonderen Instruktionen erforderlich, aber ein Impuls in sensor_start_signalwird für die Synchronisierung von Datensätzen und tatsächlichen Positionen fürjeden Zyklus benötigt. Zudem kann eine neue Aufzeichnung gestartet werden.Während des Öffnens der Presse wird der Roboter synchronisiert zur Pressebewegt.

WaitSensor Ssync1;

MoveL p10, v1000, z10, tool, \WObj:=wobj0;

SyncToSensor Ssync1\On;

MoveL p20, v1000, z20, tool, \WObj:=wobj0;

MoveL p30, v1000, z20, tool, \WObj:=wobj0;

SyncToSensor Ssync1\Off;

Anwendungshandbuch - Steuerungssoftware IRC5 2373HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.12.3 Programmbeispiel

Page 238: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.13 Überwachung

EinleitungDie Überwachung kann verwendet werden, um die Zykluszeit zu speichern, wennsich der Roboter aus der Gießform oder der Presse herausbewegt. Anstatt daraufzu warten, dass er sich außerhalb der Maschine befindet, um das Schließen derGießform zu aktivieren, aktiviert der Roboter das Schließen der Gießform, wenner nach dem Aufnehmen eine Teils beginnt, sich aus der Gießformherauszubewegen.Die Überwachung kann die Gießform anhalten, wenn sie dem Roboter zu nahekommt, indem das Ausgangssignal eingestellt wird, das vom SystemparameterSync Alarm signal (Sync-Alarmsignal) definiert wird.SupSyncSensorOn wird verwendet, um die Bewegung des Roboters mit derGießform oder der Presse zu überwachen. Normalerweise wird die Überwachungverwendet, bis sich der Roboter aus der Gießform oder Presse herausbewegt hat.Mit der Überwachung ist es möglich, die Synchronisierung auszuschalten und dieÜberwachung einzuschalten, wenn ein Werkstück getrennt oder in derGussmaschine gesammelt wird. SupSyncSensorOn schützt den Roboter und dieMaschine vor Schäden.Die Überwachung deaktiviert die Synchronisierung nicht.

Beispiel:Für den Fall, dass Sie den Sensor nicht zur definierten Position verschieben können,müssen Sie den Wert für die externe Achse im RAPID-Programm einstellen.

p10.extax.eax_f:=sens10;

p20.extax.eax_f:=sens20;

p30.extax.eax_f:=sens30;

WaitSensor Ssync1;

MoveL p10, v1000, fine, tool, \WObj:=wobj0;

SupSyncSensorOn Ssync1, 150, -100, 650\SafetyDelay:=0;;

MoveL p20, v1000, z20, tool, \WObj:=wobj0;

MoveL p30, v1000, fine, tool, \WObj:=wobj0;

SupSyncSensorOff Ssync1;

Sens10 ist die erwartete Position der Maschine (Modell der Maschinenbewegungin Bezug auf die Roboterbewegung), wenn sich der Roboter bei p10 befindet, undsens20 ist die erwartete Position der Maschine, wenn sich der Roboter bei p20befindet.Die Überwachung erfolgt zwischen der Sensorposition 650 und 150 mm und löstdie Ausgabe aus, wenn der Abstand zwischen dem Roboter und der Gießformweniger als 100 mm beträgt.Safetydist (in diesem Fall -100) ist der Grenzwert für die Differenz zwischender erwarteten Maschinenposition und der echten Maschinenposition. Er mussnegativ sein, d. h., das Modell sollte sich immer vor der echten Maschine bewegen.Bei abnehmenden Maschinenpositionen muss der Grenzwert negativ sein,entsprechend des maximalen negativen Positionsunterschieds (und der minimalenVorwärtsentfernung). Bei zunehmenden Maschinenpositionen muss der Grenzwert

Fortsetzung auf nächster Seite238 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.13 Überwachung

Page 239: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

positiv sein, entsprechend des minimalen positiven Positionsunterschieds (undder minimalen Vorwärtsentfernung).

Anwendungshandbuch - Steuerungssoftware IRC5 2393HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.13 Überwachung

Fortsetzung

Page 240: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.14 Systemparameter

Über SystemparameterIn diesem Abschnitt werden die Systemparameter auf allgemeine Weisebeschrieben. Weitere Informationen über die Parameter finden Sie unterTechnisches Referenzhandbuch - Systemparameter.

Feldbus-BefehlNur für Sensorsynchronisierung.Es gibt verschiedene Instanzen vom Typ Feldbus-Befehl in der ParametergruppeE/A.

BeschreibungTyp des Feldbus-Befehls

Die Anzahl der Zähler pro Meter der externen Gerätebewegung.Zähler pro Meter

Definiert den Mindestabstand, den das externe Gerät nach Ausgabeeines Sync-Signals zurücklegen muss, bevor ein neues Sync-Signalals gültiges Objekt akzeptiert wird.

Sync-Trennung

Für die Sensorsynchronisierung darf der Standardwert nicht geändertwerden.

Bestimmt die Platzierung des Synchronisierungsschalters relativzum 0,0-Meter-Punkt auf dem Sensor.

Queue-Tracking-Ab-stand

Für die Sensorsynchronisierung darf der Standardwert nicht geändertwerden.

Bestimmt die Größe des Startfensters. Es ist möglich, Objekte inner-halb dieses Fensters mit der Instruktion WaitSensor zu verbinden.

Breite des Startfens-ters

Für die Sensorsynchronisierung darf der Standardwert nicht geändertwerden.

Gibt den Ort des realen Teils der Pole auf der linken Fläche an (inHz).

IIRFFP

SensorsystemeDiese Parameter gehören zur Parametergruppe Prozess und zum TypSensorsystem.

BeschreibungParameter

Zu Beginn der Sensorsynchronisierung muss die Robotergeschwindig-keit an die Geschwindigkeit des externen Geräts angepasst werden.Die Geschwindigkeit (in mm/s), bei der der Roboter diese Geschwindig-keit für die erste Bewegung „einholt“, wird mit Anpassungsgeschwin-digkeit definiert.

Anpassungsge-schwindigkeit

Der minimale Abstand (in Millimetern), den ein verbundenes Objekthaben kann, bevor es automatisch verworfen wird.

Min. Abst.

Für die Sensorsynchronisierung darf der Standardwert nicht geändertwerden.Wird nicht für analoge Synchronisierung verwendet.

Der maximale Abstand (in Millimetern), den ein verbundenes Objekthaben kann, bevor es automatisch verworfen wird.

Max. Abst.

Für die Sensorsynchronisierung darf der Standardwert nicht geändertwerden.Wird nicht für analoge Synchronisierung verwendet.

Fortsetzung auf nächster Seite240 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.14 Systemparameter

Page 241: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

Die Nennarbeitsgeschwindigkeit des externen Geräts. Wenn die Ge-schwindigkeit des Geräts 200 mm/s überschreitet, muss dieser Parame-ter erhöht werden.

Nenngeschwindig-keit des Sensors

Der Name des digitalen Eingangssignals, der angibt, dass die Presseanhält. Dieses Signal wird für einen sicheren Stopp des Roboters benö-tigt.

Signal „Presse an-halten“

Name des digitalen Eingangssignals zur Synchronisierung des aufge-zeichneten Profils und der neuen Maschinenbewegung. Das Signalmuss vor Beginn der Maschinenbewegung festgelegt werden. Das Signalmuss 100 ms vor der Bewegung der Presse ausgelöst werden.

Sensorstartsignal

Definiert, wie viele Berechnungsschritte der Positionsfehler überschrei-ten kannMax. Vorwärtsentfernung. Während dieses Rampenzeitraumskann der Positionsfehler 5-mal Max. Vorwärtsentfernung sein.

Startrampe

Name des digitalen Ausgangssignals, um die synchronisierte Maschinezu stoppen. Dieses Signal kann während der Überwachung des Syn-chronisierungssensors festgelegt werden.

Sync-Alarmsignal

CAN-SchnittstelleDiese Parameter gehören zur Parametergruppe Prozess und zum TypCAN-Schnittstelle.

BeschreibungParameter

Der Name des digitalen Eingangssignals für die Verbindung.Verbundenes Si-gnal Wird nicht für analoge Synchronisierung verwendet.

Der Name des analogen Eingangssignals für die Sensorposition.Positionssignal

Der Name des analogen Eingangssignals für die Sensorgeschwindig-keit.

Geschwindigkeitssi-gnal

Der Name des digitalen Eingangssignals, das die Nullgeschwindigkeitauf dem Sensor anzeigt.

Nullgeschwindig-keitssignal

Wird nicht für analoge Synchronisierung verwendet.

Der Name des digitalen Eingangssignals, das ein Abfragen der Enco-der-Einheit anzeigt.

Bereitschaftssignalder Daten

Wird nicht für analoge Synchronisierung verwendet.

Der Name des digitalen Ausgangssignals, das anzeigt, dass eine Ver-bindung mit einem Objekt in der Warteschlange gewünscht wird.

Waitwobj-Signal

Wird nicht für analoge Synchronisierung verwendet.

Der Name des digitalen Ausgangssignals, um ein verbundenes Objektauf der Encoder-Einheit zu verwerfen

Dropwobj-Signal

Wird nicht für analoge Synchronisierung verwendet.

Der Name des digitalen Ausgangssignals, das anzeigt, dass ein unver-bundenes Objekt das Startfenster passiert hat.

PassStartW-Signal

Wird nicht für analoge Synchronisierung verwendet.

Zeit (in ms), als der Synchronisierungsprozess die Sensorpositiongelesen hat.

Aktualisierungszeitder Position

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2413HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.14 Systemparameter

Fortsetzung

Page 242: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BewegungsplanungDiese Parameter gehören zur Parametergruppe Bewegung und zum TypBewegungsplanung.

BeschreibungParameter

Der Zeitraum, in dem Schritte entlang der Bahn berechnet werden.Bahnauflösung

Die Zeit (in Sekunden), wenn der Sensorprozess die Roboterkine-matik auf der Sensorposition aktualisiert.

Prozessaktualisierungs-zeit

CPU load equalization (CPU-Auslastungsausgleich) muss für dieSynchronisierungsoption verringert werden. Der Standardwertist 2, aber für die Synchronisierungsoption muss er für eine stabileSynchronisierungsgeschwindigkeit auf 1 eingestellt werden.

CPU-Auslastungsaus-gleich

Mechanische EinheitDiese Parameter gehören zur Parametergruppe Bewegung und zum TypMechanische Einheit.

BeschreibungParameter

Der Name der Einheit (max. 7 Zeichen).Name

Der Sensor wird beim Start automatisch aktiviert.Bei Start aktivieren

Der Sensor kann nicht deaktiviert werden.Deaktivieren verboten

Single-TypDieser Parameter gehört zur ParametergruppeBewegung und zum TypSingle-Typ.

BeschreibungParameter

Gibt die mechanische Struktur des Sensors an.Mechanik

ÜbertragungsdatenDieser Parameter gehört zur Parametergruppe Bewegung und zum TypÜbertragung.

BeschreibungParameter

Gibt an, ob der Sensor drehend (Ja) oder linear (Nein) ist.Drehbewegung

BahnsensorsynchronisierungDiese Parameter gehören zur Parametergruppe Bewegung und zum TypBahnsensorsynchronisierung. Sie werden verwendet, um die zulässige Abweichungzwischen der berechneten und der tatsächlichen Position des externen Geräts unddie minimale/maximale TCP-Geschwindigkeit für den Roboter festzulegen.

BeschreibungParameter

Die maximal zulässige Vorwärtsentfernung von der berechnetenPosition zur tatsächlichen Position des externen Geräts.

Max. Vorwärtsentfer-nung

Die maximal zulässige Verzugsentfernung von der berechnetenPosition zur tatsächlichen Position des externen Geräts.

Max. Verzugsentfer-nung

Die maximal zulässige TCP-Geschwindigkeit des Roboters in m/s.Max. Synchronisie-rungsgeschwindigkeit

Fortsetzung auf nächster Seite242 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.14 SystemparameterFortsetzung

Page 243: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

Die minimal zulässige TCP-Geschwindigkeit des Roboters in m/s.Min. Synchronisie-rungsgeschwindigkeit

Anwendungshandbuch - Steuerungssoftware IRC5 2433HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.14 Systemparameter

Fortsetzung

Page 244: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.15 E/A-Signale

ÜberblickDie Sensorsynchronisierung bietet mehrere E/A-Signale, mit denen der Benutzeroder das RAPID-Programm die Objektqueue auf der Encoder-Schnittstelleneinheitüberwachen und steuern kann. Die Objektqueue ist für die Option„Fördererverfolgung“ vorgesehen und verfügt über mehr Funktionalitäten als vonder Sensorsynchronisierung benötigt werden. Da jedes Schließen einer Presseals Objekt in der Objektqueue betrachtet wird, können die Signale gelegentlichhilfreich für die Objektqueue sein.

ObjektqueuesignaleDie folgende Tabelle führt die E/A-Signale in der Encoder-Einheit DSQC 354 auf,die sich auf die Objektqueue auswirken.

BeschreibungInstruktion

Der Gruppeneingang zeigt die Anzahl der Objekte in der Objektqueue.Diese Objekte werden vom Synchronisierungsschalter erfasst und wurdennicht getrennt.

c1ObjectsInQ

Digitaler Ausgang, der das erste ausstehende Objekt aus der Objektqueueentfernt. Bei ausstehenden Objekten handelt es sich um Objekte in derQueue, die nicht mit einem Werkobjekt verbunden sind.

c1Rem1PObj

Digitaler Ausgang, der alle ausstehenden Objekte entfernt. Wenn einObjekt verbunden ist, wird es nicht entfernt.

c1RemAllPObj

Digitaler Ausgang, der verursacht, dass die Encoder-Schnittstelleneinheitdas verfolgte Objekt loslässt und trennt. Das Objekt wird aus der Warte-schlange entfernt.

c1DropWObj

Verwenden Sie c1DropWObj nicht im RAPID-Code. Verwenden Siestattdessen die DropWobj-Instruktion.

244 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.15 E/A-Signale

Page 245: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4.1.16 RAPID-Komponenten

Über die RAPID-KomponentenDies ist ein Überblick über alle Instruktionen, Funktionen und Datentypen inMachineSynchronization.Weitere Informationen finden Sie unter Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

Instruktionen

BeschreibungInstruktionen

Ablegen des Objekts am SensorDropSensor

Aktiviert und speichert die aufgezeichneten ProfildatenPrxActivAndStoreRecord

Aktiviert die aufgezeichneten ProfildatenPrxActivRecord

Aufgezeichnete Profildaten speichern und debuggenPrxDbgStoreRecord

Deaktiviert die AufzeichnungPrxDeactRecord

Setzt die Nullposition des Sensors zurückPrxResetPos

Alle Datensätze zurücksetzen und deaktivierenPrxResetRecords

Legt eine Referenzposition für den Sensor festPrxSetPosOffset

Abtastzeit für die Aufzeichnung eines Profils festlegenPrxSetRecordSampleTime

Verhalten bei Sync-Alarmen festlegenPrxSetSyncalarm

Aufzeichnung eines neuen ProfilsPrxStartRecord

Aufzeichnung eines Profils anhaltenPrxStopRecord

Speichert die aufgezeichneten ProfildatenPrxStoreRecord

Verwendung der aufgezeichneten ProfildatenPrxUseFileRecord

Stopp der synchronisierten SensorüberwachungSupSyncSensorOff

Start der synchronisierten SensorüberwachungSupSyncSensorOn

Synchr. mit SensorSyncToSensor

Wartet auf Verbindung zu SensorWaitSensor

Funktionen

BeschreibungFunktionen

Maximale Sensorposition abrufenPrxGetMaxRecordpos

DatentypenMachine Synchronization enthält keine Datentypen.

Anwendungshandbuch - Steuerungssoftware IRC5 2453HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

4 Motion coordination4.1.16 RAPID-Komponenten

Page 246: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Diese Seite wurde absichtlich leer gelassen

Page 247: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

5 Motion Events5.1 World Zones [608-1]

5.1.1 Überblick

ZweckMit World Zones (Weltzonen) wird der Roboter angehalten oder ein Ausgangssignalgesetzt, wenn sich der Roboter in einer speziellen benutzerdefinierten Zonebefindet. Anwendungsbeispiele:

• Die Arbeitsbereiche von zwei Robotern überschneiden sich teilweise. Mitder Überwachung durch die Option World Zones kann die Kollision zweierRoboter mit Sicherheit ausgeschlossen werden.

• Im Arbeitsbereich des Roboters befindet sich ein permanentes Hindernisoder eine temporäre externe Ausrüstung. Um eine Kollision des Robotersmit dieser Ausrüstung zu verhindern, kann eine verbotene Zone erstelltwerden.

• Angabe, dass sich der Roboter an einer Position befindet, an der das Startender Programmabarbeitung über eine speicherprogrammierbare Steuerung(SPS) zulässig ist.

Weltzonen werden während Roboterbewegungen sowohl bei derProgrammabarbeitung als auch bei manuellen Bewegungen überwacht. Wenn derTCP des Roboters die Weltzone erreicht oder wenn die Achsen die inAchsenkoordinaten definierte Weltzone erreichen, wird die Bewegung angehaltenoder ein digitales Ausgangssignal gesetzt.

WARNUNG

Aus Sicherheitsgründen darf diese Software nicht zum Schutz von Personalbenutzt werden. Verwenden Sie hierfür Hardware-Schutzausrüstung.

Enthaltene KomponentenDie RobotWare-Option World Zones bietet Ihnen Folgendes:

• Instruktionen zum Definieren der Volumenangaben verschiedener Formen• Instruktionen zum Definieren von Achsenzonen in Koordinaten für Achsen• Instruktionen zum Definieren und Aktivieren von Weltzonen

Grundlegende MethodeDies ist die allgemeine Methode zum Einrichten von World Zones. Einausführlicheres Beispiel zur Vorgehensweise finden Sie im Codebeispiele aufSeite 251.

1 Deklarieren Sie die Weltzone als stationär oder temporär.2 Deklarieren Sie die Formvariable.3 Definieren Sie die Form der Weltzone.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2473HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

5 Motion Events5.1.1 Überblick

Page 248: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4 Definieren Sie die Weltzone (dass beim Erreichen des Volumens der Roboterangehalten oder ein Ausgangssignal gesetzt wird).

EinschränkungenVolumen können nur für den TCP überwacht werden. Jede andere Komponentedes Roboters kann sich unerkannt durch das Volumen bewegen. Um dieszweifelsfrei zu verhindern, können Sie eine Achsenweltzone überwachen (definiertdurch WZLimJointDef oder WZHomeJointDef).Variablen vom Typ wzstationary oder wztemporary können nicht neu definiertwerden. Sie können nur einmal definiert werden (mit WZLimSup oder WZDOSet).

248 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

5 Motion Events5.1.1 ÜberblickFortsetzung

Page 249: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

5.1.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps in World Zones. WeitereInformationen finden Sie unter dem jeweiligen Datentyp im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

Mit wztemporary wird eine temporäre Weltzone festgelegt. DieserDatentyp kann an jeder Stelle des RAPID-Programms verwendetwerden.

wztemporary

Temporäre Weltzonen können mit RAPID-Instruktionen deaktiviert,erneut aktiviert oder gelöscht werden. Sie werden automatisch ge-löscht, wenn ein neues Programm geladen wird oder wenn die Pro-grammabarbeitung in der MAIN-Routine ab dem Beginn gestartetwird.

Mit wzstationary wird eine stationäre Weltzone festgelegt. DieserDatentyp kann nur in einer Ereignisroutine verwendet werden, die mitdem Ereignis POWER ON verknüpft ist. Informationen über das Defi-nieren von Ereignisroutinen erhalten Sie in der Bedienungsanlei-tung - IRC5 mit FlexPendant.

wzstationary

Stationäre Weltzonen sind immer aktiviert und werden durch einenNeustart (ausschalten und anschließend wieder einschalten oderSystemparameter ändern) erneut aktiviert. Stationäre Weltzonenkönnen über RAPID-Instruktionen weder deaktiviert, noch aktiviertoder gelöscht werden.Stationäre Weltzonen sollten verwendet werden, wenn Sicherheitsbe-lange berücksichtigt werden müssen.

Mit shapedata wird die Geometrie einer Weltzone beschrieben.shapedataWeltzonen können als 4 unterschiedliche geometrische Formen defi-niert werden:

• ein rechteckiges Feld, dessen 4 Seiten parallel zum Welt-Koor-dinatensystem ausgerichtet sind

• ein Zylinder, der parallel zur Z-Achse des Welt-Koordinatensys-tems ausgerichtet ist

• eine Kugel• ein Achsenwinkelbereich für die Roboterachsen und/oder ex-

ternen Achsen

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in World Zones. WeitereInformationen finden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

Mit WZBoxDef wird ein Volumen definiert, das die Form eines Recht-ecks aufweist und dessen vier Seiten parallel zu den Achsen desWelt-Koordinatensystems ausgerichtet sind. Die Definition wird ineiner Variablen vom Typ shapedata gespeichert.

WZBoxDef

Das Volumen kann auch als Inverse des Rechtecks (das gesamteVolumen ist außerhalb des Rechtecks) definiert werden.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2493HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

5 Motion Events5.1.2 RAPID-Komponenten

Page 250: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungInstruktion

Mit WZCylDefwird ein Volumen definiert, das die Form eines Zylindersaufweist, wobei die Zylinderachse parallel zur Z-Achse des Welt-Ko-ordinatensystems ausgerichtet ist. Die Definition wird in einer Varia-blen vom Typ shapedata gespeichert.

WZCylDef

Das Volumen kann auch als Inverse des Zylinders (das gesamte Vo-lumen ist außerhalb des Zylinders) definiert werden.

Mit WZSphDef wird ein Volumen mit der Form einer Kugel definiert.Die Definition wird in einer Variablen vom Typ shapedata gespeichert.

WZSphDef

Das Volumen kann auch als Inverse der Kugel (das gesamte Volumenist außerhalb der Kugel) definiert werden.

Mit WZLimJointDefwerden Achsenkoordinaten für Achsen definiert,mit denen der Arbeitsbereich begrenzt wird. Sowohl für Roboterachsenals auch für externe Achsen können Koordinatengrenzen festgelegtwerden.

WZLimJointDef

WZLimJointDef definiert für jede Achse eine obere und eine untereGrenze. Für Rotationsachsen werden die Grenzen in Grad und für li-neare Achsen in mm angegeben.Die Definition wird in einer Variablen vom Typ shapedata gespeichert.

Mit WZHomeJointDefwerden Achsenkoordinaten für Achsen definiert,um eine Position im Achsenraum festzulegen. Sowohl für Roboterach-sen als auch für externe Achsen können Koordinatengrenzen festge-legt werden.

WZHomeJointDef

WZHomeJointDef definiert für jede Achse eine Achsenkoordinatedes Mittelpunkts der Zone und die Deltaabweichung der Zone vomMittelpunkt. Für Rotationsachsen werden die Koordinaten in Gradund für lineare Achsen in mm angegeben.Die Definition wird in einer Variablen vom Typ shapedata gespeichert.

Mit WZLimSupwird das Anhalten des Roboters mit der Ausgabe einerFehlermeldung beim Erreichen der Weltzone durch den TCP definiertund aktiviert. Diese Überwachung ist sowohl während der Program-mabarbeitung als auch während manuellen Bewegungen aktiviert.

WZLimSup

Beim Aufruf von WZLimSup legen Sie fest, ob es sich um eine statio-näre Weltzone handelt, die in einer wzstationary-Variablen gespei-chert wird, oder um eine temporäre Weltzone, die in einerwztemporary-Variablen gespeichert wird.

Mit WZDOSet wird das Setzen eines digitalen Ausgangssignals beimErreichen der Weltzone durch den TPC definiert und aktiviert.

WZDOSet

Beim Aufruf von WZDOSet legen Sie fest, ob es sich um eine stationäreWeltzone handelt, die in einer wzstationary-Variablen gespeichertwird, oder um eine temporäre Weltzone, die in einerwztemporary-Variablen gespeichert wird.

Mit WZDisable wird die Überwachung einer temporären Weltzonedeaktiviert.

WZDisable

Mit WZEnable wird die Überwachung einer temporären Weltzone er-neut aktiviert.

WZEnable

Weltzonen werden bei der Erstellung automatisch aktiviert. Eine Akti-vierung ist nur erforderlich, wenn die Weltzone zuvor mit WZDisabledeaktiviert wurde.

Mit WZFree wird eine temporäre Weltzone deaktiviert und gelöscht.WZFree

FunktionenWorld Zones enthält keine RAPID-Funktionen.

250 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

5 Motion Events5.1.2 RAPID-KomponentenFortsetzung

Page 251: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

5.1.3 Codebeispiele

Erstellen eines geschützten FeldesUm die Kollision des Roboter-TCP mit stationärer Ausrüstung zu verhindern, richtenSie eine stationäre Weltzone um die Ausrüstung ein.Anschließend muss die Routine my_power_on mit dem Ereignis POWER ONverknüpft werden. Informationen über die Vorgehensweise finden Sie in derBeschreibung der Definition von Ereignisroutinen in derBedienungsanleitung - IRC5mit FlexPendant.

xx0300000178

VAR wzstationary obstacle;

PROC my_power_on()

VAR shapedata volume;

CONST pos p1 := [200, 100, 100];

CONST pos p2 := [600, 400, 400];

!Define a box between the corners p1 and p2

WZBoxDef \Inside, volume, p1, p2;

!Define and enable supervision of the box

WZLimSup \Stat, obstacle, volume;

ENDPROC

Ausgabe eines Signals, wenn sich der Roboter in Position befindetWenn zwei Roboter sich denselben Arbeitsbereich teilen, ist es wichtig zu wissen,wann ein Roboter die Bewegung des anderen Roboters nicht behindert.In diesem Beispiel wird eine Grundstellung definiert, in der sich der Roboter ineiner sicheren Position befindet, und es wird ein Ausgangssignal gesetzt, wennsich der Roboter in der Grundstellung befindet. Der Roboter befindet sich auf einerVerfahrschiene, die als externe Achse 1 behandelt wird. Es sind keine weiterenexternen Achsen aktiviert.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2513HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

5 Motion Events5.1.3 Codebeispiele

Page 252: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

In der Abbildung stellt der schattierte Bereich die Weltzone dar.

xx0300000206

VAR wztemporary home;

PROC zone_output()

VAR shapedata joint_space;

!Define the home position

CONST jointtarget home_pos := [[0, -20, 0, 0, 0, 0], [0, 9E9,9E9, 9E9, 9E9, 9E9]];

!Define accepted deviation from the home position

CONST jointtarget delta_pos := [[2, 2, 2, 2, 2, 2], [10, 9E9,9E9, 9E9, 9E9, 9E9]];

!Define the shape of the world zone

WZHomeJointDef \Inside, joint_space, home_pos, delta_pos;

!Define the world zone, setting the

!signal do_home to 1 when in zone

WZDOSet \Temp, home \Inside, joint_space, do_home, 1;

ENDPROC

252 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

5 Motion Events5.1.3 CodebeispieleFortsetzung

Page 253: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6 Motion functions6.1 Independent Axes [610-1]

6.1.1 Überblick

ZweckMit Independent Axes wird eine Achse unabhängig von anderen Achsen imRobotersystem bewegt. Anwendungsbeispiele:

• Bewegen einer externen Achse, auf der sich ein Objekt befindet (die z. B.ein Objekt dreht, während der Roboter das Objekt spritzlackiert).

• Verkürzen der Zyklusdauer durch Ausführen einer Roboteraufgabe, währendeine externe Achse eine andere Roboteraufgabe ausführt.

• Kontinuierliches Drehen von Roboterachse 6 (zum Polieren oder für ähnlicheAufgaben).

• Zurücksetzen des Messsystems nach mehreren Umdrehungen der Achsein derselben Richtung. Verkürzt die Zyklusdauer im Vergleich zum physischenZurückdrehen.

Eine Achse kann sich unabhängig bewegen, wenn sie in den unabhängigen Modusversetzt wurde. Eine Achse kann in den unabhängigen Modus versetzt und späterin den normalen Modus zurückgesetzt werden.

Enthaltene KomponentenDie RobotWare-Option Independent Axes bietet Ihnen Folgendes:

• Instruktionen zum Festlegen des unabhängigen Modus und zum Angebender Bewegung für eine Achse

• eine Instruktion zum Wiederherstellen des normalen Modus und/oderZurücksetzen des Messsystems

• Funktionen zum Überprüfen des Status einer unabhängigen Achse• Systemparameter für die Konfiguration

Grundlegende MethodeDies ist die allgemeine Methode zum unabhängigen Bewegen einer Achse.Ausführlichere Beispiele zur Vorgehensweise finden Sie unter Codebeispiele aufSeite 257.

1 Rufen Sie eine Instruktion für eine unabhängige Bewegung auf, um die Achsein den unabhängigen Modus zu versetzen und zu bewegen.

2 Lassen Sie den Roboter während der Bewegung der unabhängigen Achseeine weitere Instruktion ausführen.

3 Wenn sowohl Roboter als auch unabhängige Achse angehalten wurden,setzen Sie die unabhängige Achse in den normalen Modus zurück.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2533HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.1.1 Überblick

Page 254: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Zurücksetzen der AchseAuch wenn sich eine Achse nicht im unabhängigen Modus befindet, bewegt siesich möglicherweise nur in eine Richtung und die Genauigkeit der Bewegung nimmtschließlich ab. Dann kann das Messsystem mit der Instruktion IndReset

zurückgesetzt werden.Es wird empfohlen, das Messsystem für eine Achse zurückzusetzen, bevor ihrMotor 10.000 Umdrehungen in derselben Richtung ausgeführt hat.

EinschränkungenEine mechanische Einheit darf nicht deaktiviert werden, wenn sich eine ihrer Achseim unabhängigen Modus befindet.Achsen im unabhängigen Modus können nicht manuell bewegt werden.Die einzige Roboterachse, die im unabhängigen Modus verwendet werden kann,ist Achse Nummer 6. Bei den Modellen IRB 1600, 2600 und 4600 (mit Ausnahmeder ID-Version) kann die Instruktion IndReset auch für Achse 4 verwendet werden.

254 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.1.1 ÜberblickFortsetzung

Page 255: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.1.2 Systemparameter

Über die SystemparameterHier erhalten Sie eine kurze Beschreibung jedes Parameters in Independent Axes.Weitere Informationen finden Sie unter dem jeweiligen Parameter im TechnischesReferenzhandbuch - Systemparameter.

ArmDiese Parameter gehören zum Typ Arm in der Parametergruppe Motion.

BeschreibungParameter

Flag, das bestimmt, ob der unabhängige Modus für die Achse zulässigist.

Independent Joint

Definiert die Obergrenze des Arbeitsbereichs für die Achse beim Be-trieb im unabhängigen Modus.

Independent UpperJoint Bound

Definiert die Untergrenze des Arbeitsbereichs für die Achse beimBetrieb im unabhängigen Modus.

Independent LowerJoint Bound

ÜbertragungsdatenDiese Parameter gehören zum Typ Transmission in der Parametergruppe Motion.

BeschreibungParameter

Independent Axes erfordert eine hohe Auflösung des Übersetzungs-verhältnisses. Dieses wird daher als Transmission Gear High dividiertdurch Transmission Gear Low definiert. Sofern kein kleinerer Wertverwendet werden kann, ist das richtige Übersetzungsverhältnisausgewählt, wenn Transmission Gear High auf die Anzahl der Zähneauf der Seite der Roboterachse und Transmission Gear Low auf dieAnzahl der Zähne auf der Motorseite gesetzt ist.

Transmission GearHigh

(siehe Transmission Gear High).Transmission GearLow

Anwendungshandbuch - Steuerungssoftware IRC5 2553HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.1.2 Systemparameter

Page 256: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.1.3 RAPID-Komponenten

DatentypenFür Independent Axes sind keine Datentypen vorhanden.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Independent Axes.Weitere Informationen finden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.Eine Instruktion für eine unabhängige Bewegung wird sofort ausgeführt, auch wennzu diesem Zeitpunkt die Achse bewegt wird. Wenn eine neue Instruktion für eineunabhängige Bewegung vor Abschluss der vorherigen ausgeführt, wird, setzt dieneue Instruktion die alte Instruktion sofort außer Kraft.

BeschreibungInstruktion

IndAMove (Independent Absolute position Movement) versetzt eineAchse in den unabhängigen Modus und bewegt die Achse an dieangegebene Position.

IndAMove

IndCMove (Independent Continuous Movement) versetzt eine Achsein den unabhängigen Modus und bewegt die Achse kontinuierlich mitder angegebenen Geschwindigkeit.

IndCMove

IndDMove (Independent Delta position Movement) versetzt eineAchse in den unabhängigen Modus und bewegt die Achse um dieangegebene Strecke.

IndDMove

IndRMove (Independent Relative position Movement) versetzt eineRotationsachse in den unabhängigen Modus und bewegt die Achseinnerhalb einer Umdrehung an die angegebene Position.

IndRMove

Da an der Position keine Umdrehungsinformationen vorhanden sind,führt IndRMove niemals mehr als eine Achsenumdrehung aus.

Mit IndReset wird eine unabhängige Achse in den normalen Moduszurückgesetzt.

IndReset

Mit IndReset kann das Messsystem für eine Rotationsachse ummehrere Achsenumdrehungen bewegt werden. Die Auflösung derPositionen wird verringert, wenn der Abstand zur logischen Position0 zunimmt, und das Zurückdrehen der Achse beansprucht mehr Zeit.Durch Bewegen des Messsystems wird die Auflösung beibehalten,ohne die Achse physisch zurückzudrehen.Beim Aufruf von IndReset dürfen sich unabhängige Achse und Ro-boter nicht bewegen.

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion in Independent Axes.Weitere Informationen finden Sie unter der jeweiligen Funktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungFunktion

IndInpos gibt an, ob eine Achse die ausgewählte Position erreichthat.

IndInpos

IndSpeed gibt an, ob eine Achse die ausgewählte Geschwindigkeiterreicht hat.

IndSpeed

256 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.1.3 RAPID-Komponenten

Page 257: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.1.4 Codebeispiele

Verkürzen der ZyklusdauerEin Objekt an Station A muss an zwei Stellen geschweißt werden. Die externeAchse für Station A kann das Objekt in die Position für den zweiten Schweißvorgangdrehen, während der Roboter ein anderes Objekt schweißt. Dies führt zu einerkürzeren Zyklusdauer als bei einer Vorgehensweise, bei der der Roboter währendder Bewegung der externen Achse wartet.

!Perform first welding in station A

!Call subroutine for welding

weld_stationA_1;

!Move the object in station A, axis 1, with

!independent movement to position 90 degrees

!at the speed 20 degrees/second

IndAMove Station_A,1\ToAbsNum:=90,20;

!Let the robot perform another task while waiting

!Call subroutine for welding

weld_stationB_1;

!Wait until the independent axis is in position

WaitUntil IndInpos(Station_A,1 ) = TRUE;

WaitTime 0.2;

!Perform second welding in station A

!Call subroutine for welding

weld_stationA_2;

Polieren durch Drehen von Achse 6Um eine Objekt zu polieren, kann die Roboterachse 6 auf kontinuierliches Dreheneingestellt werden.Versetzen Sie Roboterachse 6 in den unabhängigen Modus, und lassen Sie siekontinuierlich drehen. Bewegen Sie den Roboter über den zu polierenden Bereich.Halten Sie die Bewegung für den Roboter und die unabhängige Achse an, bevorSie wieder in den normalen Modus wechseln. Nachdem die Achse zahlreicheUmdrehungen ausgeführt hat, setzen Sie das Messsystem zurück, um die Auflösungbeizubehalten.Beachten Sie, dass der Parameter Independent Joint für rob1_6 auf Yes gesetztsein muss, damit dieses Beispiel ordnungsgemäß ausgeführt werden kann.

PROC Polish()

!Change axis 6 of ROB_1 to independent mode and

!rotate it with 180 degrees/second

IndCMove ROB_1, 6, 180;

!Wait until axis 6 is up to speed

WaitUntil IndSpeed(ROB_1,6\InSpeed);

WaitTime 0.2;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2573HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.1.4 Codebeispiele

Page 258: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

!Move robot where you want to polish

MoveL p1,v10, z50, tool1;

MoveL p2,v10, fine, tool1;

!Stop axis 6 and wait until it's still

IndCMove ROB_1, 6, 0;

WaitUntil IndSpeed(ROB_1,6\ZeroSpeed);

WaitTime 0.2;

!Change axis 6 back to normal mode and

!reset measurement system (close to 0)

IndReset ROB_1, 6 \RefNum:=0 \Short;

ENDPROC

Zurücksetzen einer AchseIn diesem Beispiel wird gezeigt, wie das Messsystem für Achse 1 in Station Azurückgesetzt wird. Das Messsystem bewegt sich um eine ganzzahlige Anzahl anUmdrehungen, bis es nahe Null (±180°) ist.

IndReset Station_A, 1 \RefNum:=0 \Short;

258 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.1.4 CodebeispieleFortsetzung

Page 259: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.2 Path Recovery [611-1]

6.2.1 Überblick

ZweckMit Path Recovery wird die aktuelle Bewegungsbahn gespeichert, es werden einigeRoboterbewegungen ausgeführt und anschließend wird die unterbrochene Bahnwiederhergestellt. Dies ist sinnvoll, wenn während der Bahnbewegung ein Fehleroder Interrupt auftritt. Eine Fehlerbehandlungs- oder Interrupt-Routine kann eineTask ausführen und anschließend die Bahn wiederherstellen.Für Anwendungen wie Lichtbogenschweißen und Kleben muss die Arbeit an demPunkt fortgesetzt werden, an dem die Arbeit des Roboters unterbrochen wurde.Wenn der Roboter die Arbeit von vorne beginnt, muss das Werkstück verschrottetwerden.Wenn sich der Roboter in einem Werkstück befindet und ein Prozessfehler auftritt,kann das direkte Herausbewegen des Roboters eine Kollision verursachen. Mithilfeder Bahnaufzeichnung kann der Roboter hingegen auf derselben Bahnherausbewegt werden, auf der er hineinbewegt wurde.

Enthaltene KomponentenDie RobotWare-Option Path Recovery bietet Ihnen Folgendes:

• Instruktionen zum Unterbrechen und Fortsetzen des koordiniertenSynchronbewegungsmodus auf der Ebene des Fehlers oder Interrupts.

• eine Bahnaufzeichnung mit der Möglichkeit, den TCP auf derselben Bahnvon einer Position fortzubewegen, auf der er zu dieser Position bewegt wurde.

EinschränkungenMit den Instruktionen StorePath und RestoPath werden nurBewegungsbahndaten behandelt. Die Stoppposition muss ebenfalls gespeichertwerden.Bewegungen mithilfe der Bahnaufzeichnung müssen auf Interrupt-Ebene erfolgen,d. h., StorePath muss vor PathRecMoveBwd ausgeführt werden.

Anwendungshandbuch - Steuerungssoftware IRC5 2593HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.1 Überblick

Page 260: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.2.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps in Path Recovery.Weitere Informationen finden Sie unter dem jeweiligen Datentyp im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

Mit pathrecid wird ein Stopppunkt für die Bahnaufzeichnung ange-geben.

pathrecid

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Path Recovery.Weitere Informationen finden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

Mit StorePath wird die Bewegungsbahn gespeichert, die beim Auf-treten eines Fehlers oder Interrupts ausgeführt wird.

StorePath

StorePath ist in RobotWare Basis enthalten.

Mit RestoPath wird die von StorePath gespeicherte Bahn wieder-hergestellt.

RestoPath

RestoPath ist in RobotWare Basis enthalten.

Mit PathRecStartwird die Aufzeichnung der Roboterbahn gestartet.Die Bahnaufzeichnung speichert während der Abarbeitung des Robo-terprogramms Bahninformationen.

PathRecStart

Mit PathRecStop wird die Aufzeichnung der Roboterbahn beendet.PathRecStop

Mit PathRecMoveBwd wird der Roboter auf einer aufgezeichnetenBahn zurückbewegt.

PathRecMoveBwd

Mit PathRecMoveFwdwird der Roboter an die Position zurückbewegt,an der PathRecMoveBwd ausgeführt wurde.

PathRecMoveFwd

Der Roboter kann auch nur auf einer Teilstrecke nach vorne bewegtwerden, indem ein Bezeichner angegeben wird, der während derRückwärtsbewegung weitergegeben wurde.

Mit SyncMoveSuspend wird der Synchronbewegungsmodus unter-brochen und das System in den unabhängigen Bewegungsmodusversetzt.

SyncMoveSuspend

SyncmoveResumewird verwendet, um vom unabhängigen Bewegungs-modus zu synchronisierten Bewegungen zurückzuwechseln.

SyncMoveResume

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion in Path Recovery. WeitereInformationen finden Sie unter der jeweiligen Funktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungFunktion

Mit PathRecValidBwd wird überprüft, ob die Bahnaufzeichnung ak-tiviert ist und ob eine aufgezeichnete Rückwärtsbahn verfügbar ist.

PathRecValidBwd

Fortsetzung auf nächster Seite260 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.2 RAPID-Komponenten

Page 261: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungFunktion

Mit PathRecValidFwd wird überprüft, ob die Bahnaufzeichnung fürdie Vorwärtsbewegung verwendet werden kann. Damit eine Vorwärts-bewegung mit der Bahnaufzeichnung möglich ist, muss die Bahnauf-zeichnung zuvor angewiesen worden sein, eine Rückwärtsbewegungauszuführen.

PathRecValidFwd

Anwendungshandbuch - Steuerungssoftware IRC5 2613HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.2 RAPID-Komponenten

Fortsetzung

Page 262: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.2.3 Speichern der aktuellen Bahn

Warum soll die Bahn gespeichert werden?Bei der einfachsten Verwendung von Path Recovery wird nur die aktuelle Bahngespeichert, um sie nach dem Beheben eines Fehlers oder einer ähnlichen Aktionwiederherstellen zu können.Angenommen, während des Lichtbogenschweißens tritt ein Fehler auf. Um denFehler zu beheben, muss der Roboter möglicherweise vom Werkstück wegbewegtwerden. Wenn der Fehler behoben wurde, muss der Schweißvorgang an der Stellefortgesetzt werden, an der er unterbrochen wurde. Dies geschieht, indem dieBahninformationen und die Position des Roboters vor dem Entfernen von der Bahngespeichert werden. Nach der Behebung des Fehlers kann die Bahnwiederhergestellt und der Schweißvorgang fortgesetzt werden.

Grundlegende MethodeDies ist die allgemeine Methode zum Speichern der aktuellen Bahn:

1 Zu Beginn der Fehlerbehandlungs- oder Interrrupt-Routine:Halten Sie die Bewegung anSpeichern Sie die BewegungsbahnSpeichern Sie die Stoppposition

2 Am Ende der Fehlerbehandlungs- oder Interrrupt-Routine:Bewegen Sie den Roboter zur gespeicherten StopppositionStellen Sie die Bewegungsbahn wieder herStarten Sie die Bewegung

Beispiel:In diesem Beispiel wird die Verwendung von Path Recovery bei derFehlerbehandlung gezeigt. Zunächst werden Bahn und Position gespeichert undder Fehler wird korrigiert. Anschließend wird der Roboter an die Positionzurückbewegt und die Bahn wird wiederhergestellt.

MoveL p100, v100, z10, gun1;

...

ERROR

IF ERRNO=MY_GUN_ERR THEN

gun_cleaning();

ENDIF

...

PROC gun_cleaning()

VAR robtarget p1;

!Stop the robot movement, if not already stopped.

StopMove;

!Store the movement path and current position

StorePath;

p1 := CRobT(\Tool:=gun1\WObj:=wobj0);

Fortsetzung auf nächster Seite262 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.3 Speichern der aktuellen Bahn

Page 263: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

!Correct the error

MoveL pclean, v100, fine, gun1;

...

!Move the robot back to the stored position

MoveL p1, v100, fine, gun1;

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

Speichern der Bahn in einem MultiMove-SystemIn einem MultiMove-System können die Roboter nach StorePath mit demArgument KeepSync den Synchronbewegungsmodus beibehalten. Die Roboterkönnen jedoch nicht vom unabhängigen Modus in den Synchronmodus, sondernnur vom Synchronmodus in den unabhängigen Modus wechseln.Nachdem ein MultiMove-System mit dem Argument KeepSync eingestellt wurde,kann das System auf der StorePath-Ebene zwischen Synchronmodus,teilkoordiniertem Modus und unabhängigem Modus wechseln. Die Änderungenwerden mit den Instruktionen SyncMoveResume und SyncMoveSuspend.

durchgeführt.

Beispiel „SyncArc“ mit koordinierter synchroner BewegungIn diesem Beispiel werden die Verwendung von Path Recovery und das Beibehaltendes Synchronmodus bei der Fehlerbehandlung für ein MultiMove-Systemveranschaulicht. Zwei Roboter führen Bogenschweißarbeiten an demselbenWerkstück aus. Um das Beispiel einfach und allgemein zu halten, werden anstellevon Schweißinstruktionen Bewegungsinstruktionen verwendet. Das Werkstückwird von einem Positionierer gedreht. Weitere Informationen über dasSyncArc-Beispiel finden Sie im Anwendungshandbuch - MultiMove.

T_ROB1-TaskprogrammMODULE module1

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

PERS tasks all_tasks{3} := [["T_ROB1"],["T_ROB2"],["T_STN1"]];

PERS wobjdata wobj_stn1 := [ FALSE, FALSE, "STN_1", [ [0, 0, 0],[1, 0, 0 ,0] ], [ [0, 0, 250], [1, 0, 0, 0] ] ];

TASK PERS tooldata tool1 := ...

CONST robtarget p100 := ...

CONST robtarget p199 := ...

PROC main()

...

SyncMove;

ENDPROC

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2633HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.3 Speichern der aktuellen Bahn

Fortsetzung

Page 264: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PROC SyncMove()

MoveJ p100, v1000, z50, tool1;

WaitSyncTask sync1, all_tasks;

MoveL p101, v500, fine, tool1;

SyncMoveOn sync2, all_tasks;

MoveL p102\ID:=10, v300, z10, tool1 \WObj:=wobj_stn1;

MoveC p103, p104\ID:=20, v300, z10, tool1 \WObj:=wobj_stn1;

MoveL p105\ID:=30, v300, z10, tool1 \WObj:=wobj_stn1;

MoveC p106, p101\ID:=40, v300, fine, tool1 \WObj:=wobj_stn1;

SyncMoveOff sync3;

MoveL p199, v1000, fine, tool1;

ERROR

IF ERRNO = ERR_PATH_STOP THEN

gun_cleaning();

ENDIF

UNDO

SyncMoveUndo;

ENDPROC

PROC gun_cleaning()

VAR robtarget p1;

!Store the movement path and current position

! and keep syncronized mode.

StorePath \KeepSync;

p1 := CRobT(\Tool:=tool1 \WObj:=wobj_stn1);

!Correct the error

MoveL pclean1 \ID:=50, v100, fine, tool1 \WObj:=wobj_stn1;

...

!Move the robot back to the stored position

MoveL p1 \ID:=60, v100, fine, tool1 \WObj:=wobj_stn1;

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

ENDMODULE

T_ROB2-TaskprogrammMODULE module2

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

PERS tasks all_tasks{3};

PERS wobjdata wobj_stn1;

TASK PERS tooldata tool2 := ...

CONST robtarget p200 := ...

CONST robtarget p299 := ...

PROC main()

...

SyncMove;

ENDPROC

Fortsetzung auf nächster Seite264 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.3 Speichern der aktuellen BahnFortsetzung

Page 265: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PROC SyncMove()

MoveJ p200, v1000, z50, tool2;

WaitSyncTask sync1, all_tasks;

MoveL p201, v500, fine, tool2;

SyncMoveOn sync2, all_tasks;

MoveL p202\ID:=10, v300, z10, tool2 \WObj:=wobj_stn1;

MoveC p203, p204\ID:=20, v300, z10, tool2 \WObj:=wobj_stn1;

MoveL p205\ID:=30, v300, z10, tool2 \WObj:=wobj_stn1;

MoveC p206, p201\ID:=40, v300, fine, tool2 \WObj:=wobj_stn1;

SyncMoveOff sync3;

MoveL p299, v1000, fine, tool2;

ERROR

IF ERRNO = ERR_PATH_STOP THEN

gun_cleaning();

ENDIF

UNDO

SyncMoveUndo;

ENDPROC

PROC gun_cleaning()

VAR robtarget p2;

!Store the movement path and current position.

StorePath \KeepSync;

p2 := CRobT(\Tool:=tool2 \WObj:=wobj_stn1);

!Correct the error

MoveL pclean2 \ID:=50, v100, fine, tool2 \WObj:=wobj_stn1;

...

!Move the robot back to the stored position.

MoveL p2 \ID:=60, v100, fine, tool2 \WObj:=wobj_stn1;

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

ENDMODULE

T_STN1-TaskprogrammMODULE module3

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

PERS tasks all_tasks{3};

CONST jointtarget angle_neg20 :=[ [ 9E9, 9E9, 9E9, 9E9, 9E9,9E9], [ -20, 9E9, 9E9, 9E9, 9E9, 9E9] ];

...

CONST jointtarget angle_340 :=[ [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9],[340, 9E9, 9E9, 9E9, 9E9, 9E9] ];

PROC main()

...

SyncMove;

...

ENDPROC

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2653HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.3 Speichern der aktuellen Bahn

Fortsetzung

Page 266: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PROC SyncMove()

MoveExtJ angle_neg20, vrot50, fine;

WaitSyncTask sync1, all_tasks;

! Wait for the robots

SyncMoveOn sync2, all_tasks;

MoveExtJ angle_20\ID:=10, vrot100, z10;

MoveExtJ angle_160\ID:=20, vrot100, z10;

MoveExtJ angle_200\ID:=30, vrot100, z10;

MoveExtJ angle_340\ID:=40, vrot100, fine;

SyncMoveOff sync3;

ERROR

IF ERRNO = ERR_PATH_STOP THEN

gun_cleaning();

ENDIF

UNDO

SyncMoveUndo;

ENDPROC

PROC gun_cleaning()

VAR jointtarget resume_angle;

!Store the movement path and current angle.

StorePath \KeepSync;

resume_angle := CJointT();

!Correct the error

MoveExtJ clean_angle \ID:=50, vrot100, fine;

...

!Move the robot back to the stored position.

MoveExtJ resume_angle \ID:=60, vrot100, fine;

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

ENDMODULE

Unterbrechen und Fortsetzen synchronisierter Bewegungen im Beispiel „SyncArc“Mit SyncMoveSuspend wird der Synchronbewegungsmodus unterbrochen unddas System in den unabhängigen oder teilkoordinierten Bewegungsmodus versetzt.SyncMoveResume wird verwendet, um erneut in den Synchronbewegungsmoduszu wechseln.Diese Instruktionen können nur verwendet werden, nachdemStorePath\KeepSync ausgeführt wurde.

T_ROB1PROC gun_cleaning()

VAR robtarget p1;

!Store the movement path and current position

! and keep syncronized mode.

StorePath \KeepSync;

p1 := CRobT(\Tool:=tool1 \WObj:=wobj_stn1);

!Move in synchronized motion mode

Fortsetzung auf nächster Seite266 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.3 Speichern der aktuellen BahnFortsetzung

Page 267: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

MoveL p104 \ID:=50, v100, fine, tool1 \WObj:=wobj_stn1;

SyncMoveSuspend;

!Move in independent mode

MoveL pclean1, v100, fine, tool1;

...

!Move the robot back to the stored position

SyncMoveResume;

MoveL p1 \ID:=60, v100, fine, tool1 \WObj:=wobj_stn1;

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

T_ROB2PROC gun_cleaning()

VAR robtarget p2;

!Store the movement path and current position.

StorePath \KeepSync;

p2 := CRobT(\Tool:=tool2 \WObj:=wobj_stn1);

!Move in synchronized motion mode

MoveL p104 \ID:=50, v100, fine, tool2 \WObj:=wobj_stn1;

SyncMoveSuspend;

!Move in independent mode

MoveL pclean2 v100, fine, tool2;

...

!Move the robot back to the stored position.

SyncMoveResume;

!Move in synchronized motion mode

MoveL p2 \ID:=60, v100, fine, tool2 \WObj:=wobj_stn1;

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

T_STN1PROC gun_cleaning()

VAR jointtarget resume_angle;

!Store the movement path and current angle.

StorePath \KeepSync;

resume_angle := CJointT();

!Move in synchronized motion mode

MoveExtJ p1clean_angle \ID:=50, vrot100, fine;

SyncMoveSuspend;

! Move in independent mode

MoveExtJ p2clean_angle,vrot, fine;

...

!Move the robot back to the stored position.

SyncMoveResume;

! Move in synchronized motion mode

MoveExtJ resume_angle \ID:=60, vrot100, fine;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2673HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.3 Speichern der aktuellen Bahn

Fortsetzung

Page 268: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

268 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.3 Speichern der aktuellen BahnFortsetzung

Page 269: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.2.4 Bahnaufzeichnung

Was ist die Bahnaufzeichnung?In der Bahnaufzeichnung können mehrere Bewegungsinstruktionen gespeichertwerden. Anschließend kann der Roboter mithilfe dieses Speichers auf derselbenBahn zurückbewegt werden.

Verwendung der BahnaufzeichnungDies ist die allgemeine Methode für die Verwendung der Bahnaufzeichnung:

1 Starten der Bahnaufzeichnung2 Bewegen Sie den Roboter mit regulären Bewegungs- oder

Prozessinstruktionen.3 Speichern Sie die aktuelle Bahn4 Bewegen Sie den Roboter auf der aufgezeichneten Bahn zurück5 Beheben Sie den Fehler.6 Bewegen Sie den Roboter auf der aufgezeichneten Bahn vorwärts7 Stellen Sie die unterbrochene Bahn wieder her

Anheben des WerkzeugsWenn sich der Roboter auf der eigenen Bahn zurückbewegt, sollten Sie verhindern,dass das Werkzeug gegen das Werkstück stößt. Bei einem Prozess wieLichtbogenschweißen sollten Sie die Berührung mit der Schweißnaht vermeiden.Mithilfe des Arguments ToolOffs in den Instruktionen PathRecMoveBwd undPathRecMoveFwd können Sie einen Offset für den TCP einstellen. Dieser Offsetwird in Form von Werkzeug-Koordinaten festgelegt. Das bedeutet, wenn der Offsetauf [0,0,10] gesetzt ist, wird das Werkzeug in einer Entfernung von 10 mm vomWerkstück auf der aufgezeichneten Bahn zurückbewegt.

xx0400000828

Hinweis

Wenn sich ein MultiMove-System im Synchronmodus befindet und ein Werkzeugangehoben wird, müssen alle Tasks ToolOffs verwenden.Wenn Sie jedoch nur ein einziges Werkzeug anheben möchten, legen Sie in denanderen Tasks ToolOffs=[0,0,0] fest.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2693HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.4 Bahnaufzeichnung

Page 270: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Einfaches BeispielWenn zwischen p1 und p4 ein Fehler auftritt, kehrt der Roboter zu p1 zurück, woder Fehler behoben werden kann. Nachdem der Fehler behoben wurde, setzt derRoboter den Vorgang an der Stelle fort, an der der Fehler aufgetreten ist.Wenn p4 ohne Auftreten eines Fehlers erreicht wurde, wird die Bahnaufzeichnungausgeschaltet. Anschließend bewegt sich der Roboter ohne Bahnaufzeichnungvon p4 zu p5.

...

VAR pathrecid start_id;

...

MoveL p1, vmax, fine, tool1;

PathRecStart start_id;

MoveL p2, vmax, z50, tool1;

MoveL p3, vmax, z50, tool1;

MoveL p4, vmax, fine, tool1;

PathRecStop \Clear;

MoveL p5, vmax, fine, tool1;

ERROR

StorePath;

PathRecMoveBwd;

! Fix the problem

PathRecMoveFwd;

RestoPath;

StartMove;

RETRY;

ENDIF

...

Komplexes BeispielIn diesem Beispiel wird die Bahnaufzeichnung für zwei Zwecke verwendet:

• Wenn ein Fehler auftritt, kann der Bediener den Roboter zu p1 oder zu p2zurückbewegen. Nachdem der Fehler behoben wurde, wird die unterbrocheneBewegung fortgesetzt.

• Auch wenn kein Fehler auftritt, wird der Roboter mithilfe derBahnaufzeichnung von p4 zu p1 bewegt. Dieses Verfahren empfiehlt sich,wenn sich der Roboter an einer schmalen Position befindet, an der dasHerausbewegen des Roboters schwierig ist.

Beachten Sie, dass ein Zurückbewegen zu p2 nicht möglich ist, wenn ein Fehlerwährend der ersten Bewegungsinstruktion (zwischen p1 und p2) auftritt. Wenn derBediener den Roboter zu p2 zurückbewegen möchte, wird PathRecValidBwd

verwendet, um zu bestimmen, ob dies möglich ist. Bevor der Roboter vorwärts andie Position bewegt wird, an der der Vorgang unterbrochen wurde, wird mithilfevon PathRecValidFwd bestimmt, ob dies möglich ist, (wenn der Roboter niemalszurückbewegt wurde, befindet er sich bereits in Position).

...

VAR pathrecid origin_id;

VAR pathrecid corner_id;

Fortsetzung auf nächster Seite270 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.4 BahnaufzeichnungFortsetzung

Page 271: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

VAR num choice;

...

MoveJ p1, vmax, z50, tool1;

PathRecStart origin_id;

MoveJ p2, vmax, z50, tool1;

PathRecStart corner_id;

MoveL p3, vmax, z50, tool1;

MoveL p4, vmax, fine, tool1;

! Use path record to move safely to p1

StorePath;

PathRecMoveBwd \ID:=origin_id

\ToolOffs:=[0,0,10];

RestoPath;

PathRecStop \Clear;

Clear Path;

Start Move;

ERROR

StorePath;

! Ask operator how far to back up

TPReadFK choice,"Extract to:", stEmpty, stEmpty,

stEmpty, "Origin", "Corner";

IF choice=4 THEN

! Back up to p1

PathRecMoveBwd \ID:=origin_id

\ToolOffs:=[0,0,10];

ELSEIF choice=5 THEN

! Verify that it is possible to back to p2,

IF PathRecValidBwd(\ID:=corner_id) THEN

! Back up to p2

PathRecMoveBwd \ID:=corner_id

\ToolOffs:=[0,0,10];

ENDIF

ENDIF

! Fix the problem

! Verify that there is a path record forward

IF PathRecValidFwd() THEN

! Return to where the path was interrupted

PathRecMoveFwd \ToolOffs:=[0,0,10];

ENDIF

! Restore the path and resume movement

RestoPath;

StartMove;

RETRY;

...

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2713HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.4 Bahnaufzeichnung

Fortsetzung

Page 272: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Fortsetzen der BahnaufzeichnungWenn die Bahnaufzeichnung angehalten wurde, kann sie an derselben Positionerneut gestartet werden, ohne den Ereignisverlauf zu löschen.Im folgenden Beispiel wird der Roboter mit der PathRecMoveBwd-Instruktion zup1 zurückbewegt. Dies ist nicht möglich, wenn sich der Roboter beim erneutenStarten der Bahnaufzeichnung an einer anderen Position als p2 befindet.Weitere Informationen finden Sie im Abschnitt über PathRecStop im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

...

MoveL p1, vmax, z50, tool1;

PathRecStart id1;

MoveL p2, vmax, z50, tool1;

PathRecStop;

MoveL p3, vmax, z50, tool1;

MoveL p4, vmax, z50, tool1;

MoveL p2, vmax, z50, tool1;

PathRecStart id2;

MoveL p5, vmax, z50, tool1;

StorePath;

PathRecMoveBwd \ID:=id1;

RestoPath;

...

„SyncArc“-Beispiel mit koordinierter synchroner BewegungIn diesem Beispiel wird die Verwendung der Bahnaufzeichnung bei derFehlerbehandlung für ein MultiMove-System gezeigt.In diesem Beispiel führen zwei Roboter Bogenschweißarbeiten an demselbenWerkstück aus. Um das Beispiel einfach und allgemein zu halten, werden anstellevon Schweißinstruktionen Bewegungsinstruktionen verwendet. Das Werkstückwird von einem Positionierer gedreht.Weitere Informationen über das SyncArc-Beispiel finden Sie imAnwendungshandbuch - MultiMove.

T_ROB1-TaskprogrammMODULE module1

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

PERS tasks all_tasks{3} := [["T_ROB1"],["T_ROB2"],["T_STN1"]];

PERS wobjdata wobj_stn1 := [ FALSE, FALSE, "STN_1",[ [0, 0, 0],[1, 0, 0 ,0] ], [ [0, 0,250], [1, 0, 0, 0] ] ];

TASK PERS tooldata tool1 := ...

CONST robtarget p100 := ...

CONST robtarget p199 := ...

PROC main()

...

SyncMove;

ENDPROC

Fortsetzung auf nächster Seite272 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.4 BahnaufzeichnungFortsetzung

Page 273: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PROC SyncMove()

WaitSyncTask sync1, all_tasks;

MoveJ p100, v1000, z50, tool1;

! Start recording

PathRecStart HomeROB1;

MoveL p101, v500, fine, tool1;

SyncMoveOn sync2, all_tasks;

MoveL p102\ID:=10, v300, z10, tool1 \WObj:=wobj_stn1;

MoveC p103, p104\ID:=20, v300, z10, tool1 \WObj:=wobj_stn1;

MoveL p105\ID:=30, v300, z10, tool1 \WObj:=wobj_stn1;

MoveC p106, p101\ID:=40, v300, fine, tool1 \WObj:=wobj_stn1;

!Stop recording

PathRecStop \Clear;

SyncMoveOff sync3;

MoveL p199, v1000, fine, tool1;

ERROR

! Weld error in this program task

IF ERRNO = AW_WELD_ERR THEN

gun_cleaning();

ENDIF

UNDO

SyncMoveUndo;

ENDPROC

PROC gun_cleaning()

VAR robtarget p1;

!Store the movement path

IF IsSyncMoveOn() THEN

StorePath \KeepSync;

ELSE

StorePath;

ENDIF

!Move this robot backward to p100.

PathRecMoveBwd \ID:=HomeROB1 \ToolOffs:=[0,0,10];

!Correct the error

MoveJ pclean1 ,v100, fine, tool1;

...

!Move the robot back to p100

MoveJ p100, v100, fine, tool1;

PathRecMoveFwd \ToolOffs:=[0,0,10];

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

ENDMODULE

T_ROB2-TaskprogrammMODULE module2

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2733HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.4 Bahnaufzeichnung

Fortsetzung

Page 274: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PERS tasks all_tasks{3};

PERS wobjdata wobj_stn1;

TASK PERS tooldata tool2 := ...

CONST robtarget p200 := ...

CONST robtarget p299 := ...

PROC main()

...

SyncMove;

ENDPROC

PROC SyncMove()

WaitSyncTask sync1, all_tasks;

MoveJ p200, v1000, z50, tool2;

PathRecStart HomeROB2;

MoveL p201, v500, fine, tool2;

SyncMoveOn sync2, all_tasks;

MoveL p202\ID:=10, v300, z10, tool2 \WObj:=wobj_stn1;

MoveC p203, p204\ID:=20, v300, z10, tool2 \WObj:=wobj_stn1;

MoveL p205\ID:=30, v300, z10, tool2 \WObj:=wobj_stn1;

MoveC p206, p201\ID:=40, v300, fine, tool2 \WObj:=wobj_stn1;

PathRecStop \Clear;

SyncMoveOff sync3;

MoveL p299, v1000, fine, tool2;

ERROR

IF ERRNO = ERR_PATH_STOP THEN

gun_move_out();

ENDIF

UNDO

SyncMoveUndo;

ENDPROC

PROC gun_move_out()

IF IsSyncMoveOn() THEN

StorePath \KeepSync;

ELSE

StorePath;

ENDIF

! Move this robot backward to p201

PathRecMoveBwd \ToolOffs:=[0,0,10];

! Wait for the other gun to get clean

PathRecMoveFwd \ToolOffs:=[0,0,10];

!Restore the path and start the movement

RestoPath;

StartMove;

RETRY;

ENDPROC

ENDMODULE

T_STN1-TaskprogrammMODULE module3

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

Fortsetzung auf nächster Seite274 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.4 BahnaufzeichnungFortsetzung

Page 275: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PERS tasks all_tasks{3};

CONST jointtarget angle_neg20 :=[ [ 9E9, 9E9, 9E9, 9E9, 9E9,9E9], [ -20, 9E9, 9E9, 9E9, 9E9, 9E9] ];

...

CONST jointtarget angle_340 :=[ [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9],[340, 9E9, 9E9, 9E9,9E9, 9E9] ];

PROC main()

...

SyncMove;

...

ENDPROC

PROC SyncMove()

WaitSyncTask sync1, all_tasks;

MoveExtJ angle_neg20, vrot50, fine;

PathRecStart HomeSTN1;

SyncMoveOn sync2, all_tasks;

MoveExtJ angle_20\ID:=10, vrot100, z10;

MoveExtJ angle_160\ID:=20, vrot100, z10;

MoveExtJ angle_200\ID:=30, vrot100, z10;

MoveExtJ angle_340\ID:=40, vrot100, fine;

PathRecStop \Clear;

SyncMoveOff sync3;

ERROR

IF ERRNO = ERR_PATH_STOP THEN

gun_move_out();

ENDIF

UNDO

SyncMoveUndo;

ENDPROC

PROC gun_move_out()

!Store the movement

IF IsSyncMoveOn() THEN

StorePath \KeepSync;

ELSE

StorePath;

ENDIF

!Move the manipulator backward to angle_neg 20

PathRecMoveBwd \ToolOffs:=[0,0,0];

...

!Wait for the gun to get clean

PathRecMoveFwd \ToolOffs:=[0,0,0];

RestoPath;

StartMove;

RETRY;

ENDPROC

Anwendungshandbuch - Steuerungssoftware IRC5 2753HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.2.4 Bahnaufzeichnung

Fortsetzung

Page 276: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.3 Path Offset [612-1]

6.3.1 Überblick

ZweckMit Path Offset werden Online-Anpassungen der Roboterbahn entsprechend denEingangsdaten von Sensoren vorgenommen. Mit der Gruppe der Instruktionenvon Path Offset kann die Roboterbahn mit den Eingangsdaten von Sensorenverglichen und entsprechend angepasst werden.

Enthaltene KomponentenDie RobotWare-Option Path Offset bietet Ihnen Folgendes:

• den Datentyp corrdescr

• die Instruktionen CorrCon, CorrDiscon, CorrClear und CorrWrite

• die Funktion CorrRead

Grundlegende MethodeDas ist die allgemeine Methode zum Einrichten von Path Offset. Ein ausführlicheresBeispiel zur Vorgehensweise finden Sie im Codebeispiel auf Seite 280.

1 Deklarieren Sie den Korrekturgenerator.2 Verbinden Sie den Korrekturgenerator.3 Definieren Sie eine Interrupt-Routine, die den Offset bestimmt und diesen

in den Korrekturgenerator schreibt.4 Definieren Sie einen Interrupt, um die Interrupt-Routine häufig aufzurufen.5 Rufen Sie mithilfe der Korrektur eine Bewegungsinstruktion auf. Die Bahn

wird mehrfach korrigiert.

Hinweis

Wenn mit dem \Corr-Switch mehrere Bewegungsinstruktionen nacheinanderaufgerufen werden, ist zu beachten, dass bei jedem Starten des Roboters abeinem Feinpunkt alle \Corr-Offsets zurückgesetzt werden. Wenn Feinpunkteverwendet werden, verfügt die Steuerung daher bei der zweitenBewegungsinstruktion nicht über die Information, dass die Bahn bereits einenOffset aufweist. Um unerwartetes Verhalten zu verhindern, wird empfohlen,Zonen nur zusammen mit dem \Corr-Switch zu verwenden und Feinpunkte zuvermeiden.

EinschränkungenEs ist möglich, mehrere Korrekturgeneratoren gleichzeitig zu verbinden (z. B. einenfür Korrekturen auf der Z-Achse und einen weiteren für Korrekturen auf derY-Achse). Jedoch können nicht mehr als 5 Korrekturgeneratoren gleichzeitigverbunden werden.

Fortsetzung auf nächster Seite276 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.3.1 Überblick

Page 277: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Nach einem Neustart der Steuerung müssen die Korrekturgeneratoren erneutdefiniert werden. Die Definitionen und Verbindungen bleiben nach einem Neustartder Steuerung nicht erhalten.Die Instruktionen können nur in Bewegungstasks verwendet werden.

Anwendungshandbuch - Steuerungssoftware IRC5 2773HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.3.1 Überblick

Fortsetzung

Page 278: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.3.2 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps in Path Offset. WeitereInformationen finden Sie unter dem jeweiligen Datentyp im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

corrdescr ist ein Korrekturgenerator-Deskriptor, der als Verweis aufden Korrektorgenerator verwendet wird.

corrdescr

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Path Offset. WeitereInformationen finden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

CorrCon aktiviert die Bahnkorrektur. Durch Aufruf von CorrConwirdeine Verbindung mit einem Korrekturgenerator hergestellt. Nachdemdiese Verbindung hergestellt wurde, kann die Bahn kontinuierlich mitneuen Offset-Eingangsdaten (z. B. von einem Sensor) korrigiert wer-den.

CorrCon

CorrDiscon deaktiviert die Bahnkorrektur. Durch Aufruf vonCorrDiscon wird eine Verbindung mit einem Korrekturgeneratorgetrennt.

CorrDiscon

CorrClear deaktiviert die Bahnkorrektur. Durch Aufruf vonCorrClear wird die Verbindung mit allen Korrekturgeneratoren ge-trennt.

CorrClear

CorrWrite legt die Bahnkorrekturwerte fest. Durch Aufruf vonCorrWrite werden die Offset-Werte auf einen Korrekturgeneratorgesetzt.

CorrWrite

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion in Path Offset. WeitereInformationen finden Sie unter der jeweiligen Funktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungFunktion

CorrRead liest die gesamte von einem Korrekturgenerator ausgeführteKorrektur.

CorrRead

278 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.3.2 RAPID-Komponenten

Page 279: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.3.3 Zugehörige RAPID-Funktionalität

Das Argument \CorrFür einige Bewegungsinstruktionen kann das optionale Argument \Corr festgelegtwerden. Hierdurch werden Bahnkorrekturen während der Ausführung derBewegungsinstruktion ermöglicht.Die folgenden Instruktionen verfügen über das optionale Argument \Corr:

• MoveL• MoveC• SearchL• SearchC• TriggL (nur wenn die Steuerung über die Basisfunktionalität Fixed Position

Events verfügt)• TriggC (nur wenn die Steuerung über die Basisfunktionalität Fixed Position

Events verfügt)• CapL (nur wenn die Steuerung über die Option Continuous Application

Platform verfügt)• CapC (nur wenn die Steuerung über die Option Continuous Application

Platform verfügt)• ArcL (nur wenn die Steuerung über die Option RobotWare Arc verfügt)• ArcC (nur wenn die Steuerung über die Option RobotWare Arc verfügt)

Weitere Informationen über diese Instruktionen finden Sie unter der entsprechendenInstruktion in Technisches Referenzhandbuch - RAPID Instruktionen, Funktionenund Datentypen.

InterruptsUm Programme mithilfe von Path Offset zu erstellen, müssen Sie Interruptsbehandeln können. Weitere Informationen über Interrupts finden Sie im TechnischesReferenzhandbuch - RAPID Overview.

Anwendungshandbuch - Steuerungssoftware IRC5 2793HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.3.3 Zugehörige RAPID-Funktionalität

Page 280: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

6.3.4 Codebeispiel

Lineare Bewegung mit KorrekturDies ist ein einfaches Beispiel zum Programmieren einer linearen Bahn mitOnline-Bahnkorrektur. Dies erfolgt mithilfe eines Interrupts, der 5 Mal pro Sekundeausgeführt wird, und durch den Aufruf einer Interrupt-Routine, mit der dieOffset-Korrektur durchgeführt wird.

ProgrammcodeVAR intnum int_no1;

VAR corrdescr id;

VAR pos sens_val;

PROC PathRoutine()

!Connect to the correction generator

CorrCon id;

!Setup a 5 Hz timer interrupt.

CONNECT int_no1 WITH UpdateCorr;

ITimer\Single, 0.2, int_no1

!Position for start of contour tracking

MoveJ p10,v100,z10,tool1;

!Run MoveL with correction.

MoveL p20,v100,z10,tool1\Corr;

!Remove the correction generator.

CorrDiscon id;

!Remove the timer interrupt.

IDelete int_no1;

ENDPROC

TRAP UpdateCorr

!Call a routine that read the sensor

ReadSensor sens_val.x, sens_val.y, sens_val.z;

!Execute correction

CorrWrite id, sens_val;

!Setup interrupt again

IDelete int_no1;

CONNECT int_no1 WITH UpdateCorr;

ITimer\Single, 0.2, int_no1;

ENDTRAP

280 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

6 Motion functions6.3.4 Codebeispiel

Page 281: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7 Motion Supervision7.1 Collision Detection [613-1]

7.1.1 Überblick

ZweckDie Kollisionserkennung ist eine Softwareoption, durch die die Aufprallkräfte beieiner Kollision mit dem Roboter reduziert werden. Auf diese Weise können derRoboter und die externe Ausrüstung vor schweren Schäden bewahrt werden.

WARNUNG

Die Ausrüstung kann bei voller Kollisionsgeschwindigkeit durch dieKollisionserkennung nicht vor Beschädigungen geschützt werden.

BeschreibungMit der Softwareoption „Kollisionserkennung“ wird eine Kollision durch diehochempfindliche, modellbasierte Überwachung des Roboters erkannt. Abhängigvon den Kräften, die Sie beliebig auf den Roboter einwirken lassen, kann dieEmpfindlichkeit abgestimmt sowie ein- und ausgeschaltet werden. DieEmpfindlichkeit kann im Programmcode eingeschaltet werden, da die einwirkendenKräfte während der Programmausführung variieren können.Die Kollisionserkennung ist empfindlicher als die gewöhnliche Überwachung undverfügt über zusätzliche Funktionen. Wenn eine Kollision erkannt wird, wird derRoboter sofort angehalten, und die Restkräfte werden verringert, indem der Robotereine kurze Strecke in umgekehrter Richtung auf der Bahn bewegt wird. Nachdemeine Kollisionsfehlermeldung bestätigt wurde, kann die Bewegung fortgeführtwerden, ohne dass auf der Steuerung Motoren ein gedrückt werden muss.

Enthaltene KomponentenDie RobotWare-Option „Kollisionserkennung“ bietet Ihnen Folgendes:

• Systemparameter, über die festgelegt wird, ob die Kollisionserkennungaktiviert werden soll und wie empfindlich diese sein sollte (ohne diese Optionkann die Erkennung nur im Automatikbetrieb ein- oder ausgeschaltet werden)

• Instruktion für Online-Änderungen der Empfindlichkeit: MotionSup

Grundlegende MethodeKollisionserkennung ist standardmäßig immer aktiviert, wenn sich der Roboterbewegt. Das heißt, dass die Kollisionserkennung direkt verwendet werden kann,ohne dass vorher Einstellungen vorgenommen werden müssen.Sie können die Kollisionserkennung bei Bedarf ein- und ausschalten oder dieEmpfindlichkeit auf zwei Arten ändern:

• Vorläufige Änderungen können mit der RAPID-Instruktion MotionSup onlinedurchgeführt werden

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2813HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.1 Überblick

Page 282: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

• Dauerhafte Änderungen werden über die Systemparameter vorgenommen.

282 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.1 ÜberblickFortsetzung

Page 283: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.2 Einschränkungen

LastdefinitionDie Nutzlast des Roboters muss korrekt definiert werden, um Kollisionen richtigzu erkennen.

Tipp

Verwenden Sie die Lastidentifikation, um die Nutzlast zu definieren. WeitereInformationen siehe Bedienungsanleitung - IRC5 mit FlexPendant.

Nur RoboterachsenDie Kollisionserkennung ist nur für die Roboterachsen verfügbar. FürVerfahreinheiten, Orbit-Stations oder andere externe Achsen steht sie nicht zurVerfügung.

Unabhängige AchseDie Kollisionserkennung wird deaktiviert, wenn mindestens eine Achse imunabhängigen Achsenmodus ausgeführt wird. Dies ist auch der Fall, wenn eineexterne Achse als unabhängige Achse ausgeführt wird.

SoftservoDie Kollisionserkennung kann ohne eine Kollision ausgelöst werden, wenn derRoboter im „Soft Servo“-Modus betrieben wird. Daher ist es bei Verwendung diesesModus empfehlenswert, die Kollisionserkennung auszuschalten.

Keine Veränderung, bis der Roboter bewegt wirdDas Ausschalten der Kollisionserkennung über die RAPID-Instruktion MotionSupwird erst wirksam, wenn der Roboter seine Bewegung startet. Daher kann derdigitale Ausgang MotSupOn beim Programmstart vorübergehend einenunerwarteten Wert haben, bevor die Roboterbewegung gestartet wird.

Strecke der RückwärtsbewegungDie Strecke, die der Roboter nach einer Kollision auf der Bahn zurückbewegt wird,ist proportional zur Geschwindigkeit der Bewegung vor der Kollision. Bei wiederholteintretenden Kollisionen mit niedriger Geschwindigkeit wird der Roboter eventuellnicht weit genug zurückbewegt, um die Restenergien der Kollision abzubauen.Infolgedessen kann der Roboter möglicherweise nicht manuell bewegt werden,ohne dass die Überwachung ausgelöst wird. Schalten Sie in diesem Fall dieKollisionserkennung vorübergehend aus, und entfernen Sie den Roboter manuellvom Hindernis.

Verzögerung vor der RückwärtsbewegungBei einer harten Kollision während der Programmausführung kann es einigeSekunden dauern, bevor sich der Roboter auf seiner Bahn rückwärts bewegt.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2833HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.2 Einschränkungen

Page 284: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Roboter auf der VerfahreinheitWenn der Roboter auf einer Verfahreinheit montiert ist, muss dieKollisionserkennung deaktiviert werden, sobald sich die Verfahreinheit bewegt.Andernfalls kann die Kollisionserkennung während der Bewegung der Verfahreinheitausgelöst werden, ohne dass eine tatsächliche Kollision vorliegt.

284 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.2 EinschränkungenFortsetzung

Page 285: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.3 Was passiert bei einer Kollision

ÜberblickWenn die Kollisionserkennung ausgelöst wird, hält der Roboter so schnell wiemöglich an. Anschließend bewegt er sich in umgekehrter Richtung, um Restenergienabzubauen. Die Programmabarbeitung stoppt mit einer Fehlermeldung. Der Roboterbleibt im Status Motoren ein, sodass die Programmabarbeitung fortgesetzt werdenkann, nachdem die Kollisionsfehlermeldung bestätigt wurde.Nachfolgend wird eine typische Kollision gezeigt.

Kollisionsabbildung

xx0300000361

Roboterverhalten nach einer KollisionIn dieser Liste wird die Reihenfolge der Ereignisse nach einer Kollision aufgeführt.Eine Darstellung der Sequenz finden Sie im nachfolgenden Diagramm.

dann ...Wenn ...

werden die Motordrehmomente umgekehrt und die mechani-schen Bremsen aktiviert, um den Roboter zu stoppen

die Kollision erkannt wird,

bewegt sich der Roboter eine kurze Strecke entlang der Bahnin umgekehrter Richtung , um etwaige Restenergien aus einerKollision oder Blockade abzubauen

der Roboter angehalten hat,

stoppt der Roboter erneut und bleibt im Status Motoren eindie Restenergien abgebautwurden,

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2853HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.3 Was passiert bei einer Kollision

Page 286: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Geschwindigkeit und Drehmoment Diagramm

en0300000360

286 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.3 Was passiert bei einer KollisionFortsetzung

Page 287: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.4 Zusätzliche Informationen

Behandlung von BewegungsfehlernWeitere Informationen zur Fehlerbehandlung bei einer Kollision finden Sie unterTechnical reference manual manual - RAPID kernel.

Anwendungshandbuch - Steuerungssoftware IRC5 2873HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.4 Zusätzliche Informationen

Page 288: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.5 Konfiguration und Programmierung von Vorrichtungen

7.1.5.1 Systemparameter

Über SystemparameterFür die Parameter der Kollisionserkennung ist kein Neustart erforderlich, damitsie wirksam werden.Weitere Informationen über die Parameter finden Sie unter TechnischesReferenzhandbuch - Systemparameter.

Motion SupervisionDiese Parameter gehören zum Typ Motion Supervision in der ParametergruppeMotion.

BeschreibungParameter

Schalten Sie die Kollisionserkennung für die Programmabar-beitung ein oder aus.

Path Collision Detection

Path Collision Detection ist standardmäßig auf On eingestellt.

Schalten Sie die Kollisionserkennung für manuelle Bewegungein oder aus.

Jog Collision Detection

Jog Collision Detection ist standardmäßig auf On eingestellt.

Ändert die Überwachungsstufe der Kollisionserkennung fürdie Programmabarbeitung um den angegebenen Prozentwert.Je höher der Prozentwert, umso unempfindlicher ist dieFunktion.

Path Collision Detection Le-vel

Path Collision Detection Level ist standardmäßig auf 100 %eingestellt.

Ändert die Überwachungsstufe der Kollisionserkennung fürmanuelle Bewegung um den angegebenen Prozentwert. Jehöher der Prozentwert, umso unempfindlicher ist die Funktion.

Jog Collision Detection Level

Jog Collision Detection Level ist standardmäßig auf 100 %eingestellt.

Definiert, wie lange sich der Roboter nach einer Kollision inumgekehrter Richtung auf der Bahn bewegt (in Sekunden).Wenn sich der Roboter vor der Kollision schnell bewegt hat,bewegt er sich um eine größere Distanz weg, als wenn dieGeschwindigkeit langsam war.

Collision Detection Memory

Collision Detection Memory ist standardmäßig auf 75 mseingestellt.

Schaltet die Überwachung der Erkennung von losem Arm fürIRB 340 und IRB 360 ein oder aus. Ein loser Arm hält denRoboter an und erzeugt eine Fehlermeldung.

Manipulator Supervision

Manipulator Supervision ist standardmäßig auf On eingestellt.

Ändert die Überwachungsstufe der Erkennung von losemArm für die Manipulatoren IRB 340 und IRB 360. Je höher derProzentwert, umso unempfindlicher ist die Funktion.

Manipulator Supervision Le-vel

Manipulator Supervision Level ist standardmäßig auf 100 %eingestellt.

Fortsetzung auf nächster Seite288 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.5.1 Systemparameter

Page 289: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Motion PlannerDiese Parameter gehören zum TypMotion Planner in der ParametergruppeMotion.

BeschreibungParameter

Stellen Sie die Höchststufe ein, auf die die Kollisionserken-nung eingestellt werden kann. Sie ist standardmäßig auf300 % eingestellt.

Motion Supervision Max Le-vel

General RAPIDDiese Parameter gehören zum Typ General RAPID in der ParametergruppeController.

BeschreibungParameter

Aktiviert die RAPID-Fehlerbehandlung für die Kollision.Colli-sion Error Handler ist standardmäßig auf Off eingestellt.

Collision Error Handler

Weitere Informationen zur Fehlerbehandlung bei einer Kolli-sion finden Sie unter Technical reference manual manual -RAPID kernel.

Anwendungshandbuch - Steuerungssoftware IRC5 2893HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.5.1 Systemparameter

Fortsetzung

Page 290: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.5.2 RAPID-Komponenten

InstruktionenDies ist eine kurze Beschreibung der Instruktionen in der Kollisionserkennung.Weitere Informationen finden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

MotionSup wird für Folgendes verwendet:• Aktivieren oder Deaktivieren der Kollisionserkennung. Dies

kann nur erfolgen, wenn der Parameter Path Collision Detection(Bahnkollisionserkennung) aktiviert ist.

• Ändern der Überwachungsstufe mit einem bestimmten Prozent-wert (1–300 %). Je höher der Prozentwert, umso unempfindlicherist die Funktion.

MotionSup

290 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.5.2 RAPID-Komponenten

Page 291: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.5.3 Signale

Digitale AusgängeDies ist eine kurze Beschreibung der digitalen Ausgänge in der Kollisionserkennung.Weitere Informationen finden Sie unter dem jeweiligen digitalen Ausgang inTechnisches Referenzhandbuch - Systemparameter.

BeschreibungDigitaler Ausgang

MotSupOn ist gesetzt, wenn die Kollisionserkennung aktiv ist und nichtgesetzt, wenn sie nicht aktiv ist.

MotSupOn

Beachten Sie, dass eine Statusänderung wirksam wird, wenn eine Be-wegung beginnt. Wenn also die Kollisionserkennung aktiv ist und sichder Roboter bewegt, istMotSupOn gesetzt. Wenn der Roboter gestopptund die Kollisionserkennung deaktiviert wird, istMotSupOn immer nochgesetzt. Wenn der Roboter beginnt, sich zu bewegen, wird MotSupOnauf Tief geschaltet.

MotSupTrigg wird gesetzt, wenn die Kollisionserkennung ausgelöstwird, und bleibt gesetzt, bis der Fehlercode am FlexPendant bestätigtwird.

MotSupTrigg

Anwendungshandbuch - Steuerungssoftware IRC5 2913HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.5.3 Signale

Page 292: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.6 Verwenden von Collision Detection

7.1.6.1 Einrichten von Systemparametern

Überwachung aktivierenZum Verwenden der Kollisionserkennung während der Programmabarbeitung,muss der Parameter Path Collision Detection (Bahnkollisionserkennung) auf Eineingestellt werden.Zum Verwenden der Kollisionserkennung während des Bewegens, muss derParameter Jog Collision Detection (Bewegungskollisionserkennung) auf Eineingestellt werden.

Überwachungsstufen definierenStellen Sie den ParameterPath Collision Detection Level(Bahnkollisionserkennung)auf den Prozentwert ein, den Sie als Standardwert während derProgrammabarbeitung verwenden möchten.Stellen Sie den Parameter Jog Collision Detection Level(Bewegungskollisionserkennung) auf den Prozentwert ein, den Sie als Standardwertwährend des Bewegens verwenden möchten.

292 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.6.1 Einrichten von Systemparametern

Page 293: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.6.2 Überwachung des FlexPendant einstellen

Geschwindigkeitseingestellte ÜberwachungsstufeDie Kollisionserkennung verwendet eine verstellbare Überwachungsstufe. Beiniedrigen Geschwindigkeiten ist die Empfindlichkeit höher als bei hohenGeschwindigkeiten. Daher sind bei normalen Betriebsverhältnissen keineEinstellungen der Funktion durch den Anwender erforderlich. Es ist jedoch möglich,die Funktion ein- und auszuschalten und die Überwachungsstufen einzustellen.Separate Einstellparameter sind für manuelle Bewegungen und dieProgrammbearbeitung verfügbar. Diese Parameter werden in Systemparameterauf Seite 288 beschrieben.

Überwachung manueller Bewegungen am FlexPendant festlegenWählen Sie am FlexPendant im ABB-Menü das Bedienfeld aus, und tippen sieanschließend auf Überwachung.Die Überwachung kann ein- oder ausgeschaltet werden, und die Empfindlichkeitkann für programmierte Bahnen sowie manuelle Bewegungen eingestellt werden.Die Empfindlichkeitsstufe wird in Prozent eingestellt. Ein hoher Wert macht dieFunktion weniger empfindlich.Wenn die Bewegungsüberwachung für manuelle Bewegungen im Dialogfeldausgeschaltet ist und ein Programm ausgeführt wird, kann die Kollisionserkennungwährend der Programmausführung weiterhin aktiv sein.

Hinweis

Die Überwachungseinstellungen entsprechen den Systemparametern des TypsMotion Supervision. Diese können, wie oben beschrieben, mithilfe derÜberwachungseinstellungen am FlexPendant eingestellt werden. Sie könnenauch mithilfe des RobotStudios, des FlexPendant-Konfigurationseditors oderdes Quickset-Menüs „Mechanische Einheit“ geändert werden.

Anwendungshandbuch - Steuerungssoftware IRC5 2933HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.6.2 Überwachung des FlexPendant einstellen

Page 294: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.6.3 Überwachung über das RAPID-Programm einstellen

StandardwerteWenn die Kollisionserkennung mit den Systemparametern aktiviert ist, ist sie beider Programmausführung standardmäßig mit dem Abstimmungswert 100 % aktiviert.Folgende Werte werden automatisch eingestellt:

• bei Verwendung des Neustart-Modus System zurücksetzen.• beim Laden eines neuen Programms• und bei Beginn der Programmabarbeitung vom Anfang.

Hinweis

Wenn die Abstimmungswerte sowohl in den Systemparametern als auch in derRAPID-Instruktion eingestellt sind, werden beide Werte berücksichtigt.Beispiel: Wenn der Abstimmungswert in den Systemparametern 150 % und inder RAPID-Instruktion 200 % beträgt, ergibt sich daraus eine Überwachungsstufevon 300 %.

Überwachung vorübergehend deaktivierenWenn während eines Teils der Programmausführung externe Kräfte auf den Robotereinwirken, können Sie die Überwachung mit der folgenden Instruktionvorübergehend deaktivieren:

MotionSup \Off;

Überwachung reaktivierenWenn die Überwachung vorübergehend deaktiviert wurde, kann sie mit derfolgenden Instruktion aktiviert werden:

MotionSup \On;

Hinweis

Wenn die Überwachung mit den Systemparametern deaktiviert ist, kann sie nichtmit RAPID-Instruktionen aktiviert werden.

AbstimmungDie Überwachungsstufe kann während der Programmausführung mit der InstruktionMotionSup eingestellt werden. Die Abstimmungswerte werden in Prozent derGrundabstimmung eingestellt, wobei 100 % den Basiswerten entspricht. Ein höhererProzentsatz ergibt ein weniger empfindliches System.Folgendes ist ein Beispiel für eine Instruktion, die die Überwachungsstufe auf 200% erhöht:

MotionSup \On \TuneValue:=200;

294 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.6.3 Überwachung über das RAPID-Programm einstellen

Page 295: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.6.4 Vermeiden falscher Auslöser

Über falsche AuslöserDa die Überwachungsfunktion sehr empfindlich ist, kann sie unter Umständenausgelöst werden, wenn die Lastdaten fehlerhaft sind oder wenn großeProzesskräfte auf den Roboter wirken.

Maßnahmen

dann ...Wenn ...

Verwenden Sie zur Definition die Lastidentifikation. WeitereInformationen sieheBedienungsanleitung - IRC5mit FlexPen-dant.

die Nutzlast nicht korrektdefiniert ist

erhöhen Sie die Überwachungsstufedie Nutzlast eine großeMasse oder Trägheit besitzt

definieren Sie die Armlast manuell, oder erhöhen Sie dieÜberwachungsstufe

durch die Armlast (Kabeloder Ähnliches) Auslöseraktiviert werden

erhöhen Sie die Überwachungsstufe für Bewegung und Pro-grammausführung in 30 %-Schritten, bis der Fehlercode nichtmehr angezeigt wird.

die Anwendung viele externeProzesskräfte umfasst

verwenden Sie die MotionSup-Instruktion, um die Überwa-chungsstufe zu erhöhen oder die Funktion vorübergehendzu deaktivieren.

die externen Prozesskräftenur vorübergehend sind

deaktivieren Sie die Kollisionserkennung.alles andere fehlschlägt

Anwendungshandbuch - Steuerungssoftware IRC5 2953HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.6.4 Vermeiden falscher Auslöser

Page 296: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

7.1.7 Collision Avoidance

EinleitungMit der Funktion Collision Avoidance wird ein detailliertes geometrisches Modelldes Roboters überwacht. Durch die Definition zusätzlicher geometrischer Modellevon Körpern im Roboterarbeitsbereich warnt die Steuerung vor einervorhergesagten Kollision und hält den Roboter an, wenn sich zwei Körper zu nahekommen. Durch den Systemparameter Coll-Pred Safety Distance wird bestimmt,bei welchem Abstand zwei Objekte als auf Kollisionskurs betrachtet werden.Die Funktion Collision Avoidance ist z. B. beim Einrichten und Testen vonProgrammen nützlich oder für Programme, bei denen Positionen nicht statischsind, sondern von Sensoren erzeugt werden, wie bei Kameras(nicht-deterministische Programme).Die geometrischen Modelle werden in RobotStudio eingerichtet.Neben dem Roboter selbst überwacht die Funktion bis zu 10 Objekte, die über denKonfigurator in RobotStudio erstellt werden. Typische zu überwachende Objektesind Werkzeuge, die auf dem Roboterflansch montiert sind, zusätzliche Geräte,die auf dem Roboterarm (typischerweise Achse 3) montiert sind oder statischesVolumen um den Roboter herum.Die Funktion lässt sich durch die Systemeingabe Collision Avoidance aktivieren.Collision Avoidance ist sowohl beim Bewegen als auch bei der Ausführung vonProgrammen aktiv.

VORSICHT

Gehen Sie stets vorsichtig vor, um Kollisionen mit externer Ausrüstung zuvermeiden, da eine Kollision die mechanische Struktur des Arms beschädigenkönnte.Collision Avoidance stellt keine Garantie dafür dar, dass keine Kollisionenstattfinden.

EinschränkungenCollision Avoidance ist eine Funktion, die in der OptionCollision Detection enthaltenist.Collision Avoidance kann ausschließlich von Robotern (mit Rückwärtskrümmung)mit serieller Schnittstelle und sechs oder sieben Achsen genutzt werden.Collision Avoidance kann nicht zusammen mit „Responsive Jogging“ genutztwerden. Der Systemparameter Jog Mode muss auf Standard geändert werden.Die Collision Avoidance zwischen 2 Robotern (oder mehr) kann nur mit einemMultiMove-System erreicht werden.

VORSICHT

Collision Avoidance darf nicht zur Gewährleistung der Sicherheit von Personaleingesetzt werden.

Fortsetzung auf nächster Seite296 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.7 Collision Avoidance

Page 297: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Falsche KollisionswarnungEs gibt verschiedene Möglichkeiten, die Empfindlichkeit der Funktion CollisionAvoidance zu verringern, um falsche Warnungen zu vermeiden.

• Deaktivieren Sie Collision Avoidance vorübergehend, siehe Deaktivierungder Collision Avoidance auf Seite 297.

• Verringern Sie für IRB 14000 den Sicherheitsabstand für den Arm oder dasgeometrische Modell, der/das die falsche Kollisionswarnung auslöst, sieheEmpfindlichkeit zwischenVerbindungen für IRB 14000 verringern auf Seite297.

• Verringern Sie den allgemeinen Sicherheitsabstand mit dem SystemparameterColl-Pred Safety Distance.

Deaktivierung der Collision AvoidanceEs ist möglich, die FunktionCollision Avoidance zu deaktivieren, wenn der Roboterbereits kollidiert oder innerhalb des Standardsicherheitsabstands ist oder wenndie Roboterarme sehr nah aneinander liegen müssen und das Kollisionsrisikoakzeptabel ist.Stellen Sie das digitale Ausgangssignal Collision_Avoidance auf 0, umCollisionAvoidance zu deaktivieren. Es wird empfohlen, sie zu aktivieren(Collision_Avoidance auf 1 einstellen), sobald die Arbeiten, die dieDeaktivierung der Collision Avoidance erforderlich machen, abgeschlossen sind.

Empfindlichkeit zwischen Verbindungen für IRB 14000 verringernFür Roboter mit zwei Armen kann die Empfindlichkeit zwischen einzelnenRoboterarmverbindungen verringert werden. Dies ist nützlich, wenn zweiVerbindungen sich annähern aber der allgemeine Sicherheitsabstand gewahrtwerden soll.Öffnen Sie die Datei irb_14000_common_config.xml, die sich im Ordner<SystemName>\PRODUCT\ROBOTWARE_6.XX.XXXX\robots\CA\irb_14000befindet.Fügen Sie z. B. folgende Zeile hinzu, um den Sicherheitsabstand zwischen derVerbindung 3 des linken Arms und Verbindung 4 des rechten Arms auf 1 mm zuverringern:

<Pair object1="ROB_L_Link3" object2="ROB_R_Link4"safetyDistance="0.001"/>

Fügen Sie folgende Zeile hinzu, um den Sicherheitsabstand zwischen derVerbindung 5 des linken Arms und dem Robotersockel auf 2 mm zu verringern:

<Pair object1="ROB_L_Link5" object2="Base" safetyDistance="0.002"/>

Fügen Sie folgende Zeile hinzu, um die Kollisionsvermeidung zwischen derVerbindung 2 des linken Arms und Verbindung 3 des rechten Arms zu deaktivieren:

<Pair object1="ROB_L_Link2" object2="ROB_R_Link3" exclude="true"/>

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2973HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.7 Collision Avoidance

Fortsetzung

Page 298: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Hinweis

Der Sicherheitsabstand zwischen den beiden Verbindungen kann durchHinzufügen einer Zeile zu dieser XML-Datei verringert werden, er kann jedochnicht auf einen höheren Wert als den durch den Systemparameter Coll-PredSafety Distance definierten erhöht werden.

298 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

7 Motion Supervision7.1.7 Collision AvoidanceFortsetzung

Page 299: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8 Communication8.1 FTP Client [614-1]

8.1.1 Einführung in FTP Client

ZweckDie FTP Client wird dem Roboter der Zugriff auf fern-gemountete Datenträger, z.B. eine Festplatte auf einem PC, ermöglicht.Anwendungsbeispiele:

• Backup auf einen Remote-Computer• Laden von Programmen von einem Remote-Computer

Abbildung eines Netzwerks

en0300000505

BeschreibungMehrere Roboter können über ein Ethernet-Netzwerk auf denselben Computerzugreifen.Nachdem das FTP-Anwendungsprotokoll konfiguriert wurde, kann auf denRemote-Computer auf die gleiche Weise wie auf die interne Festplatte derSteuerung zugegriffen werden.

Enthaltene KomponentenMit der RobotWare-Option FTP and NFS Client können Sie auf denSystemparametertyp Application protocol und seine Parameter zugreifen: Name,Type, Transmission protocol, Server address, Server type, Trusted, Local path,Server path, Username, Password und Show Device.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 2993HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.1.1 Einführung in FTP Client

Page 300: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung von FTP Client. AusführlichereBeispiele hierfür finden Sie unter Beispiele auf Seite 303.

1 Konfigurieren Sie einAnwendungsprotokoll, so dass es auf einen Datenträgeroder ein Verzeichnis auf einem Remote-Computer verweist, auf den vomRoboter zugegriffen werden kann.

2 Führen Sie Lese- und Schreibvorgänge auf dem Remote-Computer auf diegleiche Weise wie auf der internen Festplatte der Steuerung aus.

AnforderungenDer externe Computer muss über folgende Elemente verfügen:

• TCP/IP-Stapel• FTP Server

Variante der Verzeichnisauflistung auf dem FTP-ServerAuf dem FTP-Server müssen Verzeichnisse in einer UNIX-Variante aufgelistetwerden.Beispiel:drwxrwxrwx 1 owner group 25 May 18 16:39 backups

Die MS-DOS-Variante funktioniert nicht.

Tipp

Für Internet Information Services (IIS) in Windows ist die Variante derVerzeichnisauflistung konfigurierbar.

EinschränkungenWenn Sie FTP Client verwenden, liegt die maximale Länge für einen Dateinamenbei 99 Zeichen.Wenn Sie FTP Client verwenden, liegt die maximale Länge für einen Dateipfadeinschließlich des Dateinamens bei 200 Zeichen. Nicht nur der Serverpfad, sondernder gesamte Pfad ist in den 200 Zeichen enthalten. Wenn eine Datensicherung aufeinem installierten Datenträger angefordert wird, müssen alle von derDatensicherung erstellten Verzeichnisse im maximalen Dateipfad enthalten sein.

Beispiel:

WertParameter

pc:Local path

C:\robot_1Server path

• Eine Datensicherung wird in pc:/Backups/Backup_20130109 gespeichert(27 Zeichen)

• Der Dateipfad auf dem PC lautet C:\robot_1\Backups\Backup_20130109(34 Zeichen)

Fortsetzung auf nächster Seite300 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.1.1 Einführung in FTP ClientFortsetzung

Page 301: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

• Der längste Dateipfad dieser Datensicherung lautetC:\robot_1\Backups\Backup_20130109\RAPID\TASK1\PROGMOD\myprogram.mod(54+13 Zeichen)

Die maximale Pfadlänge für dieses Beispiel erscheint auf den ersten Blick wie 27Zeichen, es sind aber tatsächlich 67 Zeichen.

Anwendungshandbuch - Steuerungssoftware IRC5 3013HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.1.1 Einführung in FTP Client

Fortsetzung

Page 302: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.1.2 Systemparameter

AnwendungsprotokollHier erhalten Sie eine kurze Beschreibung der Parameter, mit denen einAnwendungsprotokoll konfiguriert wird. Weitere Informationen finden Sie in demjeweiligen Parameter unten.Diese Parameter gehören zum Typ Application protocol in der ParametergruppeCommunication.

BeschreibungParameter

Name des AnwendungsprotokollsName

Typ des AnwendungsprotokollsTypeLegen Sie diesen auf „FTP“ fest.

Name des vom Protokoll zu verwendenden Übertragungsprotokolls(beispielsweise „TCPIP1“).

Transmission protocol

Die IP-Adresse des Computers mit dem FTP-Server.Server address

Der Typ des FTP-Servers, mit dem der FTP-Client verbunden ist.Server type

Dieses Flag bestimmt, ob der Computer vertrauenswürdig ist, d. h.,ob das Programm beim Verlust der Verbindung angehalten werdensoll.

Trusted

Definiert, wie die gemeinsame Einheit am Roboter genannt wird.Der Parameterwert muss mit einem Doppelpunkt (:) enden.

Local path

Wenn der Name der Einheit z. B. „pc:“ ist, lautet der Name von„test.mod“ für diese Einheit „pc:test.mod“.

Der Name des Datenträgers oder Ordners auf einem Remote-Computer, zu dem eine Verbindung hergestellt werden soll.

Server path

Wenn dieser Parameter nicht angegeben wird, verweist das Anwen-dungsprotokoll auf das Verzeichnis, das vom FTP-Server verwendetwird.Hinweis: Bei der Kommunikation über einen FTP-Server des TypsDistinct FTP, FileZilla oder MS IIS sollte der Exportpfad nicht ange-geben werden.

Der vom Roboter für die Anmeldung am Remote-Computer verwen-dete Benutzername.

Username

Das Benutzerkonto muss auf dem FTP-Server eingerichtet sein.

Das vom Roboter für die Anmeldung am Remote-Computer verwen-dete Passwort.

Password

Beachten Sie, dass das hier angegebene Passwort für alle sichtbarist, die Zugriff auf die Systemparameter haben.

Soll das Gerät auf externen Clients sichtbar sein, z. B. auf demFlexPendant?

Show Device

Transmission ProtocolFür Netzwerkgeräte wird die Verbindungsinstanz konfiguriert, indem der ParameterType auf „TCP/IP“ und der Parameter Name auf beispielsweise „TCPIP1“ gesetztwird.

302 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.1.2 Systemparameter

Page 303: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.1.3 Beispiele

BeispielkonfigurationIn diesem Beispiel wird gezeigt, wie ein Anwendungsprotokoll für FTP konfiguriertwerden kann.

WertParameter

my_FTP_protocolName

FTPType

TCPIP1Transmission protocol

100.100.100.100Server address

NotSetServer type

NoTrusted

pc:Local path

C:\robot_1Server path

Robot1Username

robot1Password

Hinweis: Der Wert von Server path sollte bei der Kommunikation mit einemFTP-Server vom Typ Distinct FTP, FileZilla oder MS IIS nicht den Exportpfadenthalten.

Beispiel mit FlexPendantIn diesem Beispiel wird gezeigt, wie mit FlexPendant ein Backup auf demRemote-PC erstellt wird. Wir gehen davon aus, dass die Konfiguration der obengezeigten Beispielkonfiguration entspricht.

1 Klicken Sie auf ABB und wählen Sie Backup und Restore aus.2 Tippen Sie auf Backup von aktuellem System.3 Speichern Sie das Backup unter pc:/Backup/Backup_20031008 (der Pfad

auf dem PC lautet C:\robot_1\Backup\Backup_20031008).

Beispiel mit RAPID-CodeIn diesem Beispiel wird gezeigt, wie die Datei C:\robot_1\files\file1.doc auf demRemote-PC über ein RAPID-Programm in der Steuerung geöffnet wird. Wir gehendavon aus, dass die Konfiguration der oben gezeigten Beispielkonfigurationentspricht.

Open "HOME:" \File:= "pc:/files/file1.doc", file;

Anwendungshandbuch - Steuerungssoftware IRC5 3033HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.1.3 Beispiele

Page 304: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.2 SFTP Client [614-1]

8.2.1 Einführung in SFTP Client

ZweckDer Zweck des SFTP Client besteht darin, dem Roboter Zugriff aufremotegemountete Datenträger, z. B. eine Festplatte auf einem PC, zu ermöglichen.Anwendungsbeispiele:

• Backup auf einen Remote-Computer• Laden von Programmen von einem Remote-Computer

Abbildung eines Netzwerks

en0300000505

BeschreibungMehrere Roboter können über ein Ethernet-Netzwerk auf denselben Computerzugreifen.Nachdem das SFTP-Anwendungsprotokoll konfiguriert wurde, kann auf denFerncomputer auf die gleiche Weise wie auf die interne Festplatte der Steuerungzugegriffen werden.

Enthaltene KomponentenMit der RobotWare-Option FTP and NFS Client können Sie auf denSystemparametertyp Application protocol und seine Parameter zugreifen: Name,Type, Transmission protocol, Server address, Trusted, Local path, Server path,Username, Password, Show Device und FingerPrint.

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung von SFTP Client.Ausführlichere Beispiele hierfür finden Sie unter Beispiele auf Seite 303.

1 Konfigurieren Sie einAnwendungsprotokoll, so dass es auf einen Datenträgeroder ein Verzeichnis auf einem Remote-Computer verweist, auf den vomRoboter zugegriffen werden kann.

Fortsetzung auf nächster Seite304 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.2.1 Einführung in SFTP Client

Page 305: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

2 Führen Sie Lese- und Schreibvorgänge auf dem Remote-Computer auf diegleiche Weise wie auf der internen Festplatte der Steuerung aus.

SFTP unterstützt die folgenden Server:• Rebex Version 1.0.3• CompleteFTP Version 11.0.0• Cerberus Version 9.0.4.0

Bei bestimmten SFTP-Servern, wie beim Complete SFTP-Server, gibt es eineKonfigurationseinstellung, Timeout für inaktive Sitzungen, die definiert, wie langedie Verbindung ruhen kann. Werden in diesem festgelegten Zeitintervall keineClient-Anfragen gestellt, wird die Verbindung abgebrochen. Wenn Sie den Wertauf Kein Timeout setzen, bleibt die Verbindung aktiv, auch wenn keineClient-Anfragen gestellt werden.

AnforderungenDer externe Computer muss über folgende Elemente verfügen:

• TCP/IP-Stapel• SFTP-Server

EinschränkungenWenn Sie SFTP Client verwenden, liegt die maximale Länge für einen Dateinamenbei 99 Zeichen.Wenn Sie SFTP Client verwenden, liegt die maximale Länge für einen Dateipfadeinschließlich des Dateinamens bei 200 Zeichen. Nicht nur der Serverpfad, sondernder gesamte Pfad ist in den 200 Zeichen enthalten. Wenn eine Datensicherung aufeinem installierten Datenträger angefordert wird, müssen alle von derDatensicherung erstellten Verzeichnisse im maximalen Dateipfad enthalten sein.

Beispiel:

WertParameter

pc:Local path

• Eine Datensicherung wird in pc:/Backups/Backup_20130109 gespeichert.(27 Zeichen)

• Der Dateipfad auf dem PC lautet \Backups\Backup_20130109-(24 Zeichen)

• Der längste Dateipfad dieser Datensicherung lautet\Backups\Backup_20130109\RAPID\TASK1\PROGMOD\myprogram.mod.(44+13 Zeichen)

Die maximale Pfadlänge für dieses Beispiel erscheint auf den ersten Blick wie 27Zeichen, es sind aber tatsächlich 57 Zeichen.

Anwendungshandbuch - Steuerungssoftware IRC5 3053HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.2.1 Einführung in SFTP Client

Fortsetzung

Page 306: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.2.2 Systemparameter

AnwendungsprotokollHier erhalten Sie eine kurze Beschreibung der Parameter, mit denen einAnwendungsprotokoll konfiguriert wird. Weitere Informationen finden Sie in demjeweiligen Parameter unten.Diese Parameter gehören zum Typ Application protocol in der ParametergruppeCommunication.

BeschreibungParameter

Name des AnwendungsprotokollsName

Typ des AnwendungsprotokollsTypeDies auf „SFTP“ setzen.

Name des vom Protokoll zu verwendenden Übertragungsprotokolls(beispielsweise „TCPIP1“).

Transmission protocol

Die IP-Adresse des Computers mit dem SFTP-Server.Server address

Dieses Flag bestimmt, ob der Computer vertrauenswürdig ist, d. h.,ob das Programm beim Verlust der Verbindung angehalten werdensoll.

Trusted

Definiert, wie die gemeinsame Einheit am Roboter genannt wird.Der Parameterwert muss mit einem Doppelpunkt (:) enden.

Local path

Wenn der Name der Einheit z. B. „pc:“ ist, lautet der Name von„test.mod“ für diese Einheit „pc:test.mod“.

Der vom Roboter für die Anmeldung am Remote-Computer verwen-dete Benutzername.

Username

Das Benutzerkonto muss auf dem SFTP-Server eingerichtet sein.

Das vom Roboter für die Anmeldung am Remote-Computer verwen-dete Passwort.

Password

Beachten Sie, dass das hier angegebene Passwort für alle sichtbarist, die Zugriff auf die Systemparameter haben.

Soll das Gerät auf externen Clients sichtbar sein, z. B. auf demFlexPendant?

Show Device

Um sicherzustellen, dass die Steuerung eine Verbindung mit demerwarteten SFTP-Server und nicht mit einem bösartigen Serverherstellt, kann ein Server-Fingerabdruck verwendet werden.

FingerPrint

Transmission ProtocolFür Netzwerkgeräte wird die Verbindungsinstanz konfiguriert, indem der ParameterType auf „TCP/IP“ und der Parameter Name auf beispielsweise „TCPIP1“ gesetztwird.

306 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.2.2 Systemparameter

Page 307: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.2.3 Beispiele

BeispielkonfigurationIn diesem Beispiel wird gezeigt, wie ein Anwendungsprotokoll für SFTP konfiguriertwerden kann.

WertParameter

my_SFTP_protocolName

SFTPType

TCPIP1Transmission protocol

100.100.100.100Server address

NoTrusted

pc:Local path

Robot1Username

robot1Password

JaShow Device

A2:3E:41:90:4C:F6:32:BD:0A:7E:FB:57:89:D4:8E:13:20:07:B6:AFFingerPrint

Beispiel mit FlexPendantIn diesem Beispiel wird gezeigt, wie mit FlexPendant ein Backup auf demRemote-PC erstellt wird. Wir gehen davon aus, dass die Konfiguration der obengezeigten Beispielkonfiguration entspricht.

1 Klicken Sie auf ABB und wählen Sie Backup und Restore aus.2 Tippen Sie auf Backup von aktuellem System.3 Die Datensicherung in pc:/Backup/Backup_20031008 speichern.

Beispiel mit RAPID-CodeDieses Beispiel zeigt, wie Sie die Datei files\file1.doc auf dem Remote-PC voneinem RAPID-Programm aus auf der Steuerung öffnen.

Open "HOME:" \File:= "pc:/files/file1.doc", file;

Anwendungshandbuch - Steuerungssoftware IRC5 3073HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.2.3 Beispiele

Page 308: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.3 NFS Client [614-1]

8.3.1 Einführung in NFS Client

ZweckDie NFS Client wird dem Roboter der Zugriff auf fern-gemountete Datenträger, z.B. eine Festplatte auf einem PC, ermöglicht.Anwendungsbeispiele:

• Backup auf einen Remote-Computer• Laden von Programmen von einem Remote-Computer

BeschreibungMehrere Roboter können über ein Ethernet-Netzwerk auf denselben Computerzugreifen.Nachdem das NFS-Anwendungsprotokoll konfiguriert wurde, kann auf denRemote-Computer auf die gleiche Weise wie auf die interne Festplatte derSteuerung zugegriffen werden.

Enthaltene KomponentenMit der RobotWare-Option FTP and NFS Client können Sie auf denSystemparametertyp Application protocol und seine Parameter zugreifen: Name,Type, Transmission protocol, Server address, Server type, Trusted, Local path,Server path, User ID, Group ID, and Show Device.

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung von NFS Client. AusführlichereBeispiele hierfür finden Sie unter Beispiele auf Seite 303.

1 Konfigurieren Sie einAnwendungsprotokoll, so dass es auf einen Datenträgeroder ein Verzeichnis auf einem Remote-Computer verweist, auf den vomRoboter zugegriffen werden kann.

2 Führen Sie Lese- und Schreibvorgänge auf dem Remote-Computer auf diegleiche Weise wie auf der internen Festplatte der Steuerung aus.

VoraussetzungenDer externe Computer muss über folgende Elemente verfügen:

• TCP/IP-Stapel• NFS Server

Fortsetzung auf nächster Seite308 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.3.1 Einführung in NFS Client

Page 309: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

EinschränkungenWenn Sie NFS Client verwenden, liegt die maximale Länge für einen Dateipfadeinschließlich des Dateinamens bei 248 Zeichen. Nicht nur der Serverpfad, sondernder gesamte Pfad ist in den 248 Zeichen enthalten. Wenn eine Datensicherung aufeinem installierten Datenträger angefordert wird, müssen alle von derDatensicherung erstellten Verzeichnisse im maximalen Dateipfad enthalten sein.

Beispiel:

WertParameter

pc:Local path

C:\robot_1Server path

• Eine Datensicherung wird in pc:/Backups/Backup_20130109 gespeichert(27 Zeichen)

• Der Dateipfad auf dem PC lautet C:\robot_1\Backups\Backup_20130109(34 Zeichen)

• Der längste Dateipfad dieser Datensicherung lautetC:\robot_1\Backups\Backup_20130109\RAPID\TASK1\PROGMOD\myprogram.mod(54+13 Zeichen)

Die maximale Pfadlänge für dieses Beispiel erscheint auf den ersten Blick wie 27Zeichen, es sind aber tatsächlich 67 Zeichen.

Anwendungshandbuch - Steuerungssoftware IRC5 3093HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.3.1 Einführung in NFS Client

Fortsetzung

Page 310: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.3.2 Systemparameter

AnwendungsprotokollHier erhalten Sie eine kurze Beschreibung der Parameter, mit denen einAnwendungsprotokoll konfiguriert wird. Weitere Informationen finden Sie in demjeweiligen Parameter unten.Diese Parameter gehören zum Typ Application Protocol in der ParametergruppeCommunication.

BeschreibungParameter

Name des AnwendungsprotokollsName

Typ des AnwendungsprotokollsTypeLegen Sie diesen auf „NFS“ fest.

Name des vom Protokoll zu verwendenden Übertragungsprotokolls(beispielsweise „TCPIP1“).

Transmission Protocol

Die IP-Adresse des Computers mit dem NFS-Server.Server Address

Der Typ des FTP-Servers, mit dem der FTP-Client verbunden ist.Servertyp

Dieses Flag bestimmt, ob der Computer vertrauenswürdig ist, d.h., ob das Programm beim Verlust der Verbindung angehaltenwerden soll.

Trusted

Definiert, wie die gemeinsame Einheit am Roboter genannt wird.Der Parameterwert muss mit einem Doppelpunkt (:) enden.

Local Path

Wenn der Name der Einheit z. B. „pc:“ ist, lautet der Name von„test.mod“ für diese Einheit „pc:test.mod“.

Der Name des exportierten Datenträgers oder Ordners auf demRemote-Computer.

Server Path

Für NFS muss Server Path angegeben werden.

Wird vom NFS-Protokoll als Methode zur Autorisierung des Benut-zers für den Zugriff auf einen bestimmten Server verwendet.

User ID

Wenn dieser Parameter nicht verwendet wird, wie dies gewöhnlichauf einem PC der Fall ist, setzen Sie ihn auf den Standardwert 0.Beachten Sie, dass User ID für alle Anmeldungen bei einer Robo-tersteuerung identisch sein muss.

Wird vom NFS-Protokoll als Methode zur Autorisierung des Benut-zers für den Zugriff auf einen bestimmten Server verwendet.

Group ID

Wenn dieser Parameter nicht verwendet wird, wie dies gewöhnlichauf einem PC der Fall ist, setzen Sie ihn auf den Standardwert 0.Beachten Sie, dass Group ID für alle Anmeldungen bei einer Ro-botersteuerung identisch sein muss.

Soll das Gerät auf externen Clients sichtbar sein, z. B. auf demFlexPendant?

Show Device

Transmission ProtocolFür Netzwerkgeräte wird die Verbindungsinstanz konfiguriert, indem der ParameterType auf „TCP/IP“ und der Parameter Name auf beispielsweise „TCPIP1“ gesetztwird.

310 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.3.2 Systemparameter

Page 311: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.3.3 Beispiele

BeispielkonfigurationIn diesem Beispiel wird gezeigt, wie ein Anwendungsprotokoll für NFS konfiguriertwerden kann.

WertParameter

my_NFS_protocolName

NFSTyp

TCP/IPTransmission Protocol

100.100.100.100Server Address

NotSetServertyp

NoTrusted

pc:Local Path

C:\robot_1Server Path

Robot1User ID

robot1Group ID

Beispiel mit FlexPendantIn diesem Beispiel wird gezeigt, wie mit FlexPendant ein Backup auf demRemote-PC erstellt wird. Wir gehen davon aus, dass die Konfiguration der obengezeigten Beispielkonfiguration entspricht.

1 Klicken Sie auf ABB und wählen Sie Backup und Restore aus.2 Tippen Sie auf Backup von aktuellem System.3 Speichern Sie das Backup unter pc:/Backup/Backup_20031008 (der Pfad

auf dem PC lautet C:\robot_1\Backup\Backup_20031008).

Beispiel mit RAPID-CodeIn diesem Beispiel wird gezeigt, wie die Datei C:\robot_1\files\file1.doc auf demRemote-PC über ein RAPID-Programm in der Steuerung geöffnet wird. Wir gehendavon aus, dass die Konfiguration der oben gezeigten Beispielkonfigurationentspricht.

Open "HOME:" \File:= "pc:/files/file1.doc", file;

Anwendungshandbuch - Steuerungssoftware IRC5 3113HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.3.3 Beispiele

Page 312: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.4 PC Interface [616-1]

8.4.1 Einführung in PC Interface

ZweckPC Interface wird für die Kommunikation zwischen der Steuerung und einem PCverwendet.Die Option PC Interface ist erforderlich, wenn Sie mit RobotStudio über LAN eineVerbindung zu einer Steuereinheit herstellen.Mit PC Interfacekönnen Daten an einen PC und von einem PC gesendet werden.Diese Möglichkeit wird z. B. für folgende Zwecke genutzt:

• Backup• Protokollierung der Produktionsstatistiken• Bedienerinformationen, die auf einem PC angezeigt werden.• Senden eines Befehls an den Roboter von einer PC-Bedienerschnittstelle

aus.• RobotStudio-Add-In, das Vorgänge an der Steuerung ausführt.

Hinweis

Wenn die Verbindung über den Service-Port erfolgt, ist die Funktion ohne dieOption PC Interface verfügbar.

Enthaltene KomponentenDie RobotWare-Option PC Interface bietet Ihnen Folgendes:

• Eine Ethernet-Kommunikationsschnittstelle, die von einigenABB-Softwareprodukten verwendet wird.

Grundlegende MethodeDer allgemeine Ansatz zur Verwendung von PC Interface ist der gleiche wie beider Einstellung einer PC-SDK-Client-Anwendung auf einem PC. WeitereInformationen finden Sie unter http://developercenter.robotstudio.com.

312 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.4.1 Einführung in PC Interface

Page 313: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.4.2 Senden einer Variablen von RAPID

SCWrite InstruktionMit der Instruktion SCWrite (Superior Computer Write) können einerClient-Anwendung an einem PC persistente Variablen gesendet werden. Für weitereInformationen siehe Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.Auf dem PC muss sich eine Client-Anwendung befinden, die Informationen, diean die Steuerung oder von der Steuerung gesendet werden, abonnieren kann.

CodebeispielIn diesem Beispiel bewegt der Roboter Objekte an eine Position, an der sie voneinem durch den PC gesteuerten Prozess bearbeitet werden können. Wenn dasObjekt bereit ist, wird es vom Roboter an die nächste Station bewegt.Mithilfe von SCWrite informiert das Programm den PC, wenn sich das Objekt inPosition befindet und wenn es zur nächsten Station bewegt wurde. Es sendetaußerdem eine Meldung über die Anzahl der bearbeiteten Objekte an den PC.

RAPID-Modul für den AbsenderVAR rmqslot destination_slot;

VAR user_def

RMQFindSlot destination_slot,"RMQ_Task2";

WHILE TRUE DO

! Wait for next object

WaitDI di1,1;

! Call first routine

move_obj_to_pos();

! Send message to PC that object is in position

user_def = 0;

in_position:=TRUE;

RMQSendMessage destination_slot, in_position \UserDef:=user_def;

! Wait for object to be ready

WaitDI di2,1;

! Call second routine

move_obj_to_next();

! Send message to PC that object is gone

in_position:=FALSE;

RMQSendMessage destination_slot, in_position \UserDef:=user_def;

! Inform PC how many object has been handled

nbr_objects:= nbr_objects+1;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3133HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.4.2 Senden einer Variablen von RAPID

Page 314: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

user_def = 1;

RMQSendMessage destination_slot, nbr_objects \UserDef:=user_def;

ENDWHILE

PC-SDK für den Empfängerpublic void ReceiveObjectPosition()

{

const string destination_slot = "RMQ_Task2";

IpcQueue queue = Controller.Ipc.CreateQueue(destination_slot,16, Ipc.MaxMessageSize);

// Until application is closed

while (uiclose)

{

IpcMessage message = new IpcMessage();

IpcReturnType retValue = IpcReturnType.Timeout;

retValue = queue.Receive(1000, message);

if (IpcReturnType.OK == retValue)

{

string receivemessage = message.Data.ToString().ToLower();

// if message.UserDef is 0 means Object position data elsenumber of objects

if (message.UserDef == 0)

{

if (receivemessage == "true")

{

// Object is in position

}

else

{

// Object is not in position

}

}

else

{

// number of objects in receivemessage

}

}

}

314 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.4.2 Senden einer Variablen von RAPIDFortsetzung

Page 315: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.4.3 ABB Software, die PC Interface verwendet

ÜberblickPC Interface bietet eine Kommunikationsschnittstelle zwischen der Steuerung undeinem PC, der mit einem Ethernet-Netzwerk verbunden ist.Diese Funktionalität kann von verschiedenen Softwareanwendungen von ABBverwendet werden. Beachten Sie, dass die im Folgenden genannten ProdukteBeispiele für Anwendungen sind, die PC Interface verwenden, und keinevollständige Liste darstellen.

RobotStudioRobotStudio ist ein Softwareprodukt, das mit dem Roboter geliefert wird. Für einigeFunktionen ist PC Interface erforderlich, wenn eine Verbindung über den LAN-Porterfolgt.Die folgende Tabelle enthält einige Beispiele für RobotStudio-Funktionen, die nurverfügbar sind, wenn PC Interface vorhanden ist:

BeschreibungFunktionalität

Auf dem PC können Fehlermeldungen und ähnliche Ereignisse angezeigtoder protokolliert werden.

Ereignisaufzeich-nung

Ermöglicht die Online-Bearbeitung der Steuerung über den PC.RAPID-Editor

Weitere Informationen finden Sie unter Bedienungsanleitung - RobotStudio.

Anwendungshandbuch - Steuerungssoftware IRC5 3153HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.4.3 ABB Software, die PC Interface verwendet

Page 316: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.5 Socket Messaging [616-1]

8.5.1 Einführung in Socket Messaging

ZweckMit Socket Messaging wird es einem RAPID-Programmierer ermöglicht,Anwendungsdaten mit dem TCP/IP-Netzwerkprotokoll zwischen Computern zuübertragen. Ein Socket stellt unabhängig vom verwendeten Netzwerkprotokolleinen allgemeinen Kommunikationskanal dar.Socket-Kommunikation ist ein Standard, der aus der UNIX-Variante BSD (BerkeleySoftware Distribution) stammt. Neben UNIX wird der Standard z. B. auch vonMicrosoft Windows unterstützt. Mit Socket Messaging kann ein RAPID-Programmin einer Robotersteuerung z. B. mit einem C/C++-Programm auf einem anderenComputer kommunizieren.

Enthaltene KomponentenMit der RobotWare-Option Socket Messaging können Sie auf RAPID-Datentypen,-Instruktionen und -Funktionen für die Socket-Kommunikation zwischen Computernzugreifen.

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung von Socket Messaging. Einausführlicheres Beispiel hierfür finden Sie unter Codebeispiele auf Seite 321.

1 Erstellen Sie sowohl auf dem Client als auch auf dem Server einen Socket.Eine Robotersteuerung kann als Client oder als Server fungieren.

2 Verwenden Sie auf dem Server SocketBind und SocketListen, um ihnfür eine Verbindungsanforderung vorzubereiten.

3 Legen Sie fest, dass der Server eingehendeSocket-Verbindungsanforderungen akzeptiert.

4 Fordern Sie vom Client eine Socket-Verbindung an.5 Senden und empfangen Sie Daten zwischen Client und Server.

316 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.5.1 Einführung in Socket Messaging

Page 317: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.5.2 Schemadarstellung der Socket-Kommunikation

Illustration der Socket-Kommunikation

en0600003224

Tipp

Erstellen und schließen Sie Sockets nicht häufiger als erforderlich. Lassen Sieden Socket geöffnet, bis die Kommunikation abgeschlossen ist. Der Socket isterst nach einer bestimmten Zeitspanne nach SocketClose tatsächlichgeschlossen (aufgrund der TCP/IP-Funktionalität).

Anwendungshandbuch - Steuerungssoftware IRC5 3173HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.5.2 Schemadarstellung der Socket-Kommunikation

Page 318: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.5.3 Technische Informationen zu Socket Messaging

ÜberblickBei der Verwendung der RAPID-Funktion Socket Messaging für die Kommunikationmit einem Client oder Server, der keine RAPID-Task ist, kann es von Nutzen sein,etwas über die Implementierung zu wissen.

Kein StringabschlussBeim Versenden einer Datenmeldung enthält die Meldung kein Abschlusszeichen.Die Zahl der versandten Bytes entspricht dem Rückgabewert der Funktionstrlen(str) in der Programmiersprache C.

Unbeabsichtigtes Zusammenfügen von MeldungenWerden zwei Meldungen direkt nacheinander ohne zeitliche Verzögerung versandt,kann es passieren, dass die zweite Meldung an die erste angefügt wird. Es wirdeine lange Meldung anstelle von zwei Meldungen versandt. Nutzen Sie zurVermeidung dieses Problems Bestätigungsmeldungen vom Datenempfänger, wennbeim Client/Server gerade Meldungen eingehen.

Nicht druckbare ZeichenWenn ein Client, bei dem es sich nicht um eine RAPID-Task handelt, in einerZeichenfolge nicht druckbare Zeichen (Binärdaten) von einer RAPID-Taskempfangen soll, kann dies über RAPID erfolgen, wie im folgenden Beispieldargelegt.

SocketSend socket1 \Str:="\0D\0A";

Weitere Informationen finden Sie unter Technical reference manual manual -RAPID kernel im Abschnitt Zeichenfolgenliteralen.

318 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.5.3 Technische Informationen zu Socket Messaging

Page 319: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.5.4 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps in Socket Messaging.Weitere Informationen finden Sie unter dem jeweiligen Datentyp im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

Ein Socket-Gerät zum Kommunizieren mit anderen Computern in einemNetzwerk.

socketdev

Kann Statusinformationen aus einer socketdev-Variablen enthalten.socketstatus

Instruktionen für den ClientHier erhalten Sie eine kurze Beschreibung jeder Instruktion, die von einem SocketMessaging-Client verwendet wird. Weitere Informationen finden Sie unter derjeweiligen Instruktion im Technisches Referenzhandbuch - RAPID Instruktionen,Funktionen und Datentypen.

BeschreibungInstruktion

Erstellt einen neuen Socket und weist diesen einer socketdev-Varia-blen zu.

SocketCreate

Fordert eine Verbindung bei einem Remote-Computer an. Wird vomClient für den Aufbau der Verbindung mit dem Server verwendet.

SocketConnect

Sendet Daten über eine Socket-Verbindung an einen Remote-Compu-ter. Bei den Daten kann es sich um eine string-Variable, einerawbytes-Variable oder um ein byte-Datenfeld handeln.

SocketSend

Empfängt Daten und speichert sie in einer string-Variablen, einerrawbytes-Variablen oder in einem byte-Datenfeld.

SocketReceive

Schließt einen Socket und gibt alle Ressourcen frei.SocketClose

Tipp

Verwenden Sie SocketClose nicht direkt nach SocketSend. Warten Sie aufdie Bestätigung, bevor Sie den Socket schließen.

Instruktionen für den ServerEin Socket Messaging-Server verwendet dieselben Instruktionen wie der Client,mit Ausnahme von SocketConnect. Zusätzlich verwendet der Server die folgendenInstruktionen:

BeschreibungInstruktion

Bindet den Socket an eine bestimmte Portnummer auf demServer. Wird vom Server verwendet, um den Port (auf demServer) zu definieren, der Verbindungen prüfen soll.

SocketBind

Die IP-Adresse definiert einen physischen Computer und derPort definiert einen logischen Kanal zu einem Programm aufdiesem Computer.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3193HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.5.4 RAPID-Komponenten

Page 320: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungInstruktion

Verwendet den Computer als Server und akzeptiert eingehen-de Verbindungen. Prüft Verbindungen an dem mitSocketBind angegebenen Port.

SocketListen

Akzeptiert eine eingehende Verbindungsanforderung. Wirdvom Server zum Akzeptieren der Anforderung des Clientsverwendet.

SocketAccept

Hinweis

Die Serveranwendung muss vor der Clientanwendung gestartet werden, so dassdie Instruktion SocketAccept ausgeführt wird, bevor ein Client SocketConnectausführt.

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion in Socket Messaging.Weitere Informationen finden Sie unter der jeweiligen Funktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungFunktion

Gibt Informationen über die letzte für den Socket ausgeführte Aktion(erstellen, verbinden, binden, überwachen, schließen) zurück.

SocketGetStatus

SocketGetStatus erkennt keine Änderungen außerhalb von RAPID(z. B. eine unterbrochene Verbindung).

320 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.5.4 RAPID-KomponentenFortsetzung

Page 321: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.5.5 Codebeispiele

Beispiel für Client/Server-KommunikationDieses Beispiel enthält Programmcode für einen Client und einen Server, diemiteinander kommunizieren.Der Server schreibt auf das FlexPendant:

Client wrote - Hello server

Client wrote - Shutdown connection

Der Client schreibt auf das FlexPendant:Server wrote - Message acknowledged

Server wrote - Shutdown acknowledged

In dem Beispiel werden sowohl auf dem Client als auch auf dem ServerRAPID-Programme verwendet. In der Realität wird eines der Programme häufigauf einem PC (oder einem ähnlichen Computer) ausgeführt und ist in einer anderenProgrammiersprache geschrieben.Codebeispiel für Client, der Verbindung zu dem Server mit der IP-Adresse192.168.0.2 aufbaut:

! WaitTime to delay start of client.

! Server application should start first.

WaitTime 5;

VAR socketdev socket1;

VAR string received_string;

PROC main()

SocketCreate socket1;

SocketConnect socket1, "192.168.0.2", 1025;

! Communication

SocketSend socket1 \Str:="Hello server";

SocketReceive socket1 \Str:=received_string;

TPWrite "Server wrote - " + received_string;

received_string := "";

! Continue sending and receiving

...

! Shutdown the connection

SocketSend socket1 \Str:="Shutdown connection";

SocketReceive socket1 \Str:=received_string;

TPWrite "Server wrote - " + received_string;

SocketClose socket1;

ENDPROC

Codebeispiel für Server (mit der IP-Adresse 192.168.0.2):VAR socketdev temp_socket;

VAR socketdev client_socket;

VAR string received_string;

VAR bool keep_listening := TRUE;

PROC main()

SocketCreate temp_socket;

SocketBind temp_socket, "192.168.0.2", 1025;

SocketListen temp_socket;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3213HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.5.5 Codebeispiele

Page 322: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

WHILE keep_listening DO

! Waiting for a connection request

SocketAccept temp_socket, client_socket;

! Communication

SocketReceive client_socket \Str:=received_string;

TPWrite "Client wrote - " + received_string;

received_string := "";

SocketSend client_socket \Str:="Message acknowledged";

! Shutdown the connection

SocketReceive client_socket \Str:=received_string;

TPWrite "Client wrote - " + received_string;

SocketSend client_socket \Str:="Shutdown acknowledged";

SocketClose client_socket;

ENDWHILE

SocketClose temp_socket;

ENDPROC

Beispiel für FehlerbehandlungDie folgenden Fehlerbehandlungen behandeln einen Stromausfall oder eineVerbindungsunterbrechung.Fehlerbehandlung für Client in vorherigem Beispiel:

! Error handler to make it possible to handle power fail

ERROR

IF ERRNO=ERR_SOCK_TIMEOUT THEN

RETRY;

ELSEIF ERRNO=ERR_SOCK_CLOSED THEN

SocketClose socket1;

! WaitTime to delay start of client.

! Server application should start first.

WaitTime 10;

SocketCreate socket1;

SocketConnect socket1, "192.168.0.2", 1025;

RETRY;

ELSE

TPWrite "ERRNO = "\Num:=ERRNO;

Stop;

ENDIF

Fehlerbehandlung für Server in vorherigem Beispiel:! Error handler for power fail and connection lost

ERROR

IF ERRNO=ERR_SOCK_TIMEOUT THEN

RETRY;

ELSEIF ERRNO=ERR_SOCK_CLOSED THEN

SocketClose temp_socket;

SocketClose client_socket;

SocketCreate temp_socket;

SocketBind temp_socket, "192.168.0.2", 1025;

SocketListen temp_socket;

SocketAccept temp_socket, client_socket;

RETRY;

Fortsetzung auf nächster Seite322 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.5.5 CodebeispieleFortsetzung

Page 323: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

ELSE

TPWrite "ERRNO = "\Num:=ERRNO;

Stop;

ENDIF

Anwendungshandbuch - Steuerungssoftware IRC5 3233HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.5.5 Codebeispiele

Fortsetzung

Page 324: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.6 RAPID Message Queue [enthalten in 616-1, 623-1]

8.6.1 Einführung in RAPID Message Queue

ZweckRAPID Message Queue dient zur Kommunikation mit anderen RAPID-Tasks odereiner PC-Anwendung mit PC SDK.Anwendungsbeispiele:

• Versenden von Daten zwischen zwei RAPID tasks.• Versenden von Daten zwischen einer RAPID task und einer PC-Anwendung.

RAPID Message Queue kann für den Interrupt- oder den Synchron-Modus definiertwerden. Standardmäßig ist der Interrupt-Modus eingestellt.

Enthaltene KomponentenDie RAPID Message Queue-Funktionalität gehört zu den RobotWare-Optionen:

• PC Interface• Multitasking

RAPID Message Queue ermöglicht Ihnen den Zugriff auf RAPID-Instruktionen,-Funktionen und -Datentypen zum Versenden und Empfangen von Daten.

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung von RAPID Message Queue.Ein ausführlicheres Beispiel hierfür finden Sie unter Codebeispiele auf Seite 332.

1 Beim Interrupt-Modus: Der Empfänger erstellt eine Interrupt-Routine, dieeine Meldung liest und eine Verbindung zu einem Interrupt herstellt, damitdie Interrupt-Routine aufgerufen wird, sobald eine neue Meldung eintrifft.Beim Synchron-Modus: Die Meldung wird von einer Warteinstruktion oderder nächsten ausgeführten RMQReadWait-Instruktion verarbeitet.

2 Der Absender ermittelt den Zeitschlitz der Warteschlange in derEmpfänger-Task.

3 Der Absender verschickt die Meldung.

324 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.1 Einführung in RAPID Message Queue

Page 325: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.6.2 Verhalten der RAPID Message Queue

Illustration der KommunikationDie Abbildung unten zeigt verschiedene mögliche Absender, Empfänger undWarteschlangen im System. Jeder Pfeil veranschaulicht eine Möglichkeit, wie eineMeldung an eine Warteschlange versandt werden kann.

PCPC SDK

Queue

Robotersteuerung

Queue

Queue

RAPID-Tasks

RAPID-Tasks

en0700000430

Erstellen eines PC SDK KlientenDieses Handbuch beschreibt lediglich, wie RAPID Message Queue verwendetwerden kann, damit RAPID task mit anderen RAPID tasks- und PC SDK-Clientskommuniziert. Nähere Informationen zum Aufbau einer Kommunikation mit einemPC SDK-Client finden Sie unter http://developercenter.robotstudio.com.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3253HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.2 Verhalten der RAPID Message Queue

Page 326: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Was in einer Meldung versendet werden kannDie Daten in einer Meldung können einem beliebigen Datentyp in RAPID angehören,mit Ausnahme von:

• Datentypen ohne Wert (Non-Value)• Semi-Value• motsetdata

Die Daten einer Meldung können auch als Datenfeld eines Datentyps vorliegen.Benutzerdefinierte Datensätze sind erlaubt, aber sowohl Sender als auch Empfängermüssen über identische Datensatzdeklarationen verfügen.

Tipp

Um die Rückwärtskompatibilität zu gewährleisten, sollte ein benutzerdefinierterDatensatz nicht mehr verändert werden, sobald er in einem freigegebenen Produktverwendet wird. In diesem Fall ist es besser, einen neuen Datensatz zu erstellen.Denn so ist es möglich, Meldungen von alten und neuen Anwendungen zuerhalten.

Name der WarteschlangeDer Name der für eine RAPID task konfigurierten Warteschlange entspricht demder zugehörigen Task, es wird lediglich „RMQ_“ vorangestellt, also z. B.„RMQ_T_ROB1“. Dieser Name findet in der Instruktion RMQFindSlotVerwendung.

Abarbeitung der WarteschlangeDie Meldungen in Warteschlangen werden in der Reihenfolge ihres Eingangsabgearbeitet. Diese Methode ist als FIFO bekannt, first in first out. Geht eineMeldung ein, während eine frühere Meldung verarbeitet wird, wird die neue Meldungin der Warteschlange platziert. Sobald die erste Meldung verarbeitet wurde, kommtdie nächste Meldung aus der Warteschlange an die Reihe.

Warteschlangen-ModiDer Warteschlangen-Modus wird über den SystemparameterRMQMode definiert.Standardmäßig ist der Interrupt-Modus eingestellt.

Interrupt-ModusIm Interrupt-Modus werden die Meldungen abhängig von ihrem Datentyp verarbeitet.Es werden nur Meldungen mit verbundenen Datentypen verarbeitet.Für jeden Datentyp, den der Empfänger verarbeiten muss, muss ein zyklischerInterrupt erstellt werden. Dieselbe Interrupt-Routine kann für mehrere Interrupts,d. h. für mehrere Datentypen, aufgerufen werden.Meldungen mit einem Datentyp, der nicht mit einem Interrupt verbunden ist, werdenverworfen. Es erscheint lediglich eine Warnmeldung im Ereignisprotokoll.Eine Antwort auf die Instruktion RMQSendWait führt nicht zu einem Interrupt. Fürden Erhalt dieser Antwort muss kein Interrupt festgelegt werden.

Fortsetzung auf nächster Seite326 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.2 Verhalten der RAPID Message QueueFortsetzung

Page 327: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Synchron-ModusDie Task führt im Synchron-Modus eine RMQReadWait-Instruktion aus, umMeldungen jedes Datentyps empfangen zu können. Alle Meldungen werden in dieWarteschlange gesetzt und in der Reihenfolge ihres Eingangs verarbeitet.Gibt es eine RMQReadWait-Warteinstruktion, wird die Meldung sofort verarbeitet.Gibt es keine RMQReadWait-Warteinstruktion, verarbeitet die nächste ausgeführteRMQReadWait-Instruktion die Meldung.

Inhalt der MeldungenEine RAPID Message Queue-Meldung besteht aus einem Header mit der Identitätdes Absenders und einer RAPID-Meldung. Die RAPID-Meldung ist eine formatierteZeichenfolge (pretty-printed) mit dem Namen des Datentyps (und denDatenfelddimensionen), gefolgt vom tatsächlichen Datenwert.Beispiele für RAPID-Meldungen:

"robtarget;[[930,0,1455],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]"

"string;"A message string""

"msgrec;[100,200]"

"bool{2,2};[[TRUE,TRUE],[FALSE,FALSE]]"

RAPID-Task wird nicht ausgeführtEs ist möglich, Meldungen an eine RAPID-Task-Warteschlange zu verschicken,auch wenn die RAPID-Task, welche die Warteschlange enthält, zu diesem Zeitpunktnoch nicht ausgeführt wird. Der Interrupt erfolgt erst, wenn die RAPID-Task erneutausgeführt wird.

Begrenzung der MeldungsgrößeBevor eine Meldung verschickt wird, wird die maximale Größe (für den spezifischenDatentyp und die Dimension) berechnet. Werden 5000 Bytes überschritten, wirddie Meldung verworfen und ein Fehler ausgelöst. Beim Absender kann derselbeFehler auftreten, wenn der Empfänger ein PC SDK-Client mit einer maximalenMeldungsgröße unter 400 Bytes ist. Das Versenden einer Meldung mit einembestimmten Datentyp und bestimmten Dimensionen ist entweder immer möglichoder nie.Geht eine Meldung ein (beim Aufrufen der Instruktion RMQGetMsgData), wird diemaximale Größe (für den spezifischen Datentyp und die Dimension) berechnet.Wird die für die Warteschlange dieser Task konfigurierte maximale Meldungsgrößeüberschritten, wird die Meldung verworfen und ein Fehler angemeldet. Der Erhalteiner Meldung mit einem bestimmten Datentyp und bestimmten Dimensionen istentweder immer möglich oder nie.

MeldungsverlustAlle Meldungen, die im Interrupt-Modus nicht von einer RAPID-Task empfangenwerden können, werden verworfen. Die Meldung geht verloren und imEreignisprotokoll erscheint eine Warnung.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3273HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.2 Verhalten der RAPID Message Queue

Fortsetzung

Page 328: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Mögliche Gründe für das Verwerfen einer Meldung:• Der versendete Datentyp wird von der Empfänger-Task nicht unterstützt.• Die Empfänger-Task hat für den gesendeten Datentyp keinen Interrupt

festgelegt und auf diesen Datentyp wartet keine RMQSendWait-Instruktion.• Die Interrupt-Warteschlange der Empfänger-Task ist voll.

Verlust der WarteschlangeDie Warteschlange wird bei einem Stromausfall gelöscht.Geht der Ausführungskontext in einer RAPID task verloren, z. B. wenn derProgrammzeiger auf Main verschoben wird, wird die entsprechende Warteschlangegeleert.

Weitere InformationenWeitere Informationen über Warteschlangen und Meldungen finden Sie im Technicalreference manual manual - RAPID kernel.

328 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.2 Verhalten der RAPID Message QueueFortsetzung

Page 329: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.6.3 Systemparameter

Über die SystemparameterHier erhalten Sie eine kurze Beschreibung jedes Parameters in RAPID MessageQueue. Weitere Informationen finden Sie unter dem jeweiligen Parameter imTechnisches Referenzhandbuch - Systemparameter.

Typ TaskDiese Parameter gehören zum Typ Task in der Parametergruppe Controller.

BeschreibungParameter

Kann einen der folgenden Werte annehmen:• None - Die gesamte Kommunikation mit RAPID Messa-

ge Queue für diese RAPID task.• Internal - Der Empfang von RAPID Message

Queue-Meldungen anderer Tasks der Steuerung istmöglich, nicht jedoch der von externen Clients (Flex-Pendant und PC-Anwendungen). Die Task ist jedochin der Lage, Meldungen an externe Clients zu senden.

• Remote - Die Kommunikation mit RAPID MessageQueue ist bei dieser Task aktiviert und zwar sowohlmit anderen Tasks dieser Steuerung als auch mit exter-nen Clients (FlexPendant und PC-Anwendungen).

Der Standardwert ist None.

RMQ Type

Definiert den Modus der Warteschlange.RMQ ModeKann einen der folgenden Werte annehmen:

• Interrupt - Eine Meldung kann nur empfangen werden,wenn eine Interrupt-Routine mit einem angegebenenMeldungstyp verbunden ist.

• Synchronous - Eine Meldung kann nur empfangenwerden, wenn eine RMQReadWait-Instruktion ausge-führt wird.

Der Standardwert ist Interrupt.

Die maximale Datenmenge einer Meldung, in Bytes.RMQ Max Message SizeDer Standardwert ist 400.Dieser Wert kann in RobotStudio oder auf dem FlexPendantnicht geändert werden. Der Wert kann nur geändert werden,indem die Datei „sys.cfg“ bearbeitet wird. Der Höchstwertbeträgt 3000.

Maximale Zahl der Meldungen in einer Warteschlange.RMQ Max No Of MessagesDer Standardwert ist 5.Dieser Wert kann in RobotStudio oder auf dem FlexPendantnicht geändert werden. Der Wert kann nur geändert werden,indem die Datei „sys.cfg“ bearbeitet wird. Der Höchstwertbeträgt 10.

Anwendungshandbuch - Steuerungssoftware IRC5 3293HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.3 Systemparameter

Page 330: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.6.4 RAPID-Komponenten

Informationen zu den RAPID-KomponentenHier erhalten Sie eine kurze Beschreibung aller Instruktionen, Funktionen undDatentypen der RAPID Message Queue. Weitere Informationen finden Sie unterdem jeweiligen Parameter im Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

Instruktionen

BeschreibungInstruktion

Ermittelt die Zeitschlitz-Identitätsnummer der für eine RAPIDtask oder einen Robot Application Builder-Client konfiguriertenWarteschlange.

RMQFindSlot

Versendet Daten an die für eine RAPID task oder einen RobotApplication Builder-Client konfigurierte Warteschlange.

RMQSendMessage

Fordert zyklische Interrupts für einen bestimmten Datentypan und aktiviert diese.

IRMQMessage

Ruft die erste Meldung von der Warteschlange dieser Taskab. Die Instruktion kann nur dann verwendet werden, wennRMQ Mode als Interrupt definiert ist.

RMQGetMessage

Ruft den Header einer Meldung ab.RMQGetMsgHeader

Ruft die Daten einer Meldung ab.RMQGetMsgData

Versendet eine Meldung und wartet auf die Antwort Die In-struktion kann nur dann verwendet werden, wennRMQModeals Interrupt definiert ist.

RMQSendWait

Wartet auf eine Meldung. Die Instruktion kann nur dann ver-wendet werden, wenn RMQ Mode als Synchronous definiertist.

RMQReadWait

Leert die Warteschlange.RMQEmptyQueue

Funktionen

BeschreibungFunktion

Ruft den Namen der für eine RAPID task oder einen RobotApplication Builder-Client konfigurierten Warteschlange ab,wenn eine Zeitschlitz-Identitätsnummer, d. h. ein rmqslot,angegeben ist.

RMQGetSlotName

Datentypen

BeschreibungDatentyp

Zeitschlitz-Identität einer RAPID task oder eines Robot App-lication Builder-Clients.

rmqslot

Fortsetzung auf nächster Seite330 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.4 RAPID-Komponenten

Page 331: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungDatentyp

Eine Meldung, die bei der Kommunikation mit der RAPIDMessage Queue zur Datenspeicherung verwendet wird. Sieenthält Informationen über den versendeten Datentyp, denZeitschlitz des Absenders und die eigentlichen Daten.

rmqmessage

Hinweis: Bei rmqmessage handelt es sich um einen großenDatentyp. Die Deklaration zu vieler Variablen dieses Datentypskann zu Speicherproblemen führen. Verwenden Sie so oftwie möglich dieselben rmqmessage-Variablen.

Der rmqheader beschreibt die Meldung und kann vom RA-PID-Programm gelesen werden.

rmqheader

Anwendungshandbuch - Steuerungssoftware IRC5 3313HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.4 RAPID-Komponenten

Fortsetzung

Page 332: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

8.6.5 Codebeispiele

Beispiel mit RMQSendMessage und RMQGetMessageHier handelt es sich um ein Beispiel, bei dem der Absender Daten erstellt (x- undy-Wert) und an eine andere Task verschickt. Die Empfänger-Task erhält die Meldungund extrahiert die Daten zur als data bezeichneten Variable.

SenderMODULE SenderMod

RECORD msgrec

num x;

num y;

ENDRECORD

PROC main()

VAR rmqslot destinationSlot;

VAR msgrec data;

VAR robtarget p_current;

! Connect to queue in other task

RMQFindSlot destinationSlot "RMQ_OtherTask";

! Perform cycle

WHILE TRUE DO

...

p_current := CRobT(\Tool:=tool1 \WObj:=wobj0);

data.x := p_current.trans.x;

data.y := p_current.trans.y;

! Send message

RMQSendMessage destinationSlot, data;

...

ENDWHILE

ERROR

IF ERRNO = ERR_RMQ_INVALID THEN

WaitTime 1;

! Reconnect to queue in other task

RMQFindSlot destinationSlot "RMQ_OtherTask";

! Avoid execution stop due to retry count exceed

ResetRetryCount;

RETRY;

ELSIF ERRNO = ERR_RMQ_FULL THEN

WaitTime 1;

! Avoid execution stop due to retry count exceed

ResetRetryCount;

RETRY;

ENDIF

ENDPROC

ENDMODULE

PC-SDK-Clientpublic void RMQReceiveRecord()

Fortsetzung auf nächster Seite332 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.5 Codebeispiele

Page 333: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

{

const string destination_slot = "RMQ_OtherTask";

IpcQueue queue = Controller.Ipc.CreateQueue(destination_slot,16, Ipc.MaxMessageSize);

// Till application is closed

while (uiclose)

{

IpcMessage message = new IpcMessage();

IpcReturnType retValue = IpcReturnType.Timeout;

retValue = queue.Receive(1000, message);

if (IpcReturnType.OK == retValue)

{

// PCSDK App will receive following record

// RECORD msgrec

// num x;

// num y;

// ENDRECORD

// num data type in RAPID is 3 bytes long, hence will receive6 bytes for x and y

// first byte do left shift by 16,

// second byte do left shift by 8 and OR all three byte toget x

// do similar for y

Int32 x = (message.Data[0] << 16) | (message.Data[1] << 8)| message.Data[2];

Int32 y = (message.Data[3] << 16) | (message.Data[4] << 8)| message.Data[5];

// Display x and y

}

}

if (Controller.Ipc.Exists(destination_slot))

Controller.Ipc.DeleteQueue(Controller.Ipc.GetQueueId(destination_slot));

}

Beispiel mit RMQSendWaitEs handelt sich hier um ein Beispiel für ein RAPID-Programm, das eine Meldungversendet und auf die Antwort wartet, bevor die Abarbeitung nach Erhalt derAntwortmeldung fortgesetzt wird.

MODULE SendAndReceiveMod

VAR rmqslot destinationSlot;

VAR rmqmessage recmsg;

VAR string send_data := "How many units should be produced?";

VAR num receive_data;

PROC main()

! Connect to queue in other task

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3333HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.5 Codebeispiele

Fortsetzung

Page 334: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

RMQFindSlot destinationSlot "RMQ_OtherTask";

! Send message and wait for the answer

RMQSendWait destinationSlot, send_data, recmsg, receive_data\Timeout:=30;

! Handle the received data

RMQGetMsgData recmsg, receive_data;

TPWrite "Units to produce: " \Num:=receive_data;

ERROR

IF ERRNO = ERR_RMQ_INVALID THEN

WaitTime 1;

! Reconnect to queue in other task

RMQFindSlot destinationSlot "RMQ_OtherTask";

! Avoid execution stop due to retry count exceed

ResetRetryCount;

RETRY;

ELSIF ERRNO = ERR_RMQ_FULL THEN

WaitTime 1;

! Avoid execution stop due to retry count exceed

ResetRetryCount;

RETRY;

ELSEIF ERRNO = ERR_RMQ_TIMEOUT THEN

! Avoid execution stop due to retry count exceed

ResetRetyCount;

RETRY;

ENDIF

ENDPROC

ENDMODULE

Beispiel mit RMQReceiveSendpublic void RMQReceiveSend()

{

const string destination_slot = "RMQ_OtherTask";

IpcQueue queue = Controller.Ipc.CreateQueue(destination_slot,16, Ipc.MaxMessageSize);

// Till application is closed

while (uiclose)

{

IpcMessage message = new IpcMessage();

IpcReturnType retValue = IpcReturnType.Timeout;

retValue = queue.Receive(1000, message);

if (IpcReturnType.OK == retValue)

{

// Received message "How many units should be produced?"

if (message.ToString() == "How many units should beproduced?")

Fortsetzung auf nächster Seite334 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.5 CodebeispieleFortsetzung

Page 335: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

{

Int32 UnitsToProduce = 100;

// num data type in Rapid is 3 bytes long, hence willsend 3 bytes to Rapid Module

byte[] @bytes = new byte[3];

bytes[0] = (byte)(UnitsToProduce >> 16);

bytes[1] = (byte)(UnitsToProduce >> 8);

bytes[2] = (byte)UnitsToProduce;

// Send UnitsToProduce to Rapid Module

message.SetData(@bytes);

queue.Send(message);

}

}

}

if (Controller.Ipc.Exists(destination_slot))

Controller.Ipc.DeleteQueue(Controller.Ipc.GetQueueId(destination_slot));

}

Anwendungshandbuch - Steuerungssoftware IRC5 3353HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

8 Communication8.6.5 Codebeispiele

Fortsetzung

Page 336: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Diese Seite wurde absichtlich leer gelassen

Page 337: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9 Engineering tools9.1 Multitasking [623-1]

9.1.1 Einführung in Multitasking

ZweckDie Option Multitasking ermöglicht die gleichzeitige Ausführung mehrererProgramme.Beispiele für Programme, die gleichzeitig mit dem Hauptprogramm ausgeführtwerden können:

• Ständige Überwachung von Signalen, auch wenn das Hauptprogrammangehalten wurde. Dies kann in einigen Fällen eine SPS ersetzen. DieReaktionszeit von Multitasking unterscheidet sich jedoch von derReaktionszeit einer SPS.

• Bedienereingabe über das FlexPendant, während der Roboter arbeitet.• Steuerung und Aktivierung/Deaktivierung externer Ausrüstung.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3373HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.1 Einführung in Multitasking

Page 338: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Grundlegende BeschreibungEs können bis zu 20 Tasks gleichzeitig ausgeführt werden.Jede Task besteht aus einem Programm (mit mehreren Programmmodulen) undmehreren Systemmodulen. Die Module gelten lokal in der entsprechenden Task.

en0300000517

Variablen und Konstanten gelten lokal in der entsprechenden Task, Persistentejedoch nicht.Jede Task verfügt über eine eigene Interrupt-Behandlung und Ereignisroutinenwerden nur für den Systemstatus der jeweiligen Task ausgelöst.

Enthaltene KomponentenDie RobotWare-Option Multitasking bietet Ihnen Folgendes:

• Die Möglichkeit, bis zu 20 Programme parallel auszuführen (ein Programmpro Task)

• Die Systemparameter – der Typ Task und alle zugehörigen Parameter.• Die Datentypen taskid, syncident und tasks.• Die Instruktion WaitSyncTask.• Die Funktionen TestAndSet, TaskRunMec und TaskRunRob.

Fortsetzung auf nächster Seite338 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.1 Einführung in MultitaskingFortsetzung

Page 339: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Hinweis

TestAndSet,TaskRunMec undTaskRunRob können ohne die Option Multitaskingverwendet werden, sind jedoch gemeinsam mit Multitasking von weitaus größeremNutzen.

Grundlegende MethodeDies ist die grundlegende Methode zum Einrichten von Multitasking. WeitereInformationen finden Sie unter Debug-Strategien zum Einrichten von Tasks aufSeite 344 und RAPID-Komponenten auf Seite 342.

1 Definieren Sie die benötigten Tasks.2 Schreiben Sie RAPID-Code für jede Task.3 Geben Sie an, welche Module in die einzelnen Tasks geladen werden sollen.

Anwendungshandbuch - Steuerungssoftware IRC5 3393HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.1 Einführung in Multitasking

Fortsetzung

Page 340: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.2 Systemparameter

Über die SystemparameterHier erhalten Sie eine kurze Beschreibung jedes Parameters in Multitasking. WeitereInformationen finden Sie unter dem jeweiligen Parameter im TechnischesReferenzhandbuch - Systemparameter.

TaskDiese Parameter gehören zum Typ Task in der Parametergruppe Controller.

BeschreibungParameter

Name der Task.TaskBeachten Sie, dass der Taskname eindeutig sein muss. Das bedeutet,dass er nicht mit dem Namen der mechanischen Einheit oder einer Va-riablen im RAPID-Programm identisch sein darf.Beachten Sie, dass durch Bearbeiten des Taskeintrags im Konfigurati-onseditor und Ändern des Tasknamens die alte Task entfernt und eineneue Task hinzugefügt wird. Daher sind nach einem auf diese Art vonÄnderungen erfolgenden Neustart Programme oder Module in der altenTask nicht mehr vorhanden.

Wird verwendet, um Prioritäten zwischen Tasks festzulegen.Task in fore-ground Task in foreground enthält den Namen der Task, die im Vordergrund der

betreffenden Task ausgeführt werden soll. Das bedeutet, dass das Pro-gramm der Task, für die der Parameter eingestellt wird, nur abgearbeitetwird, wenn die Vordergrundtask im Leerlauf ist.Wenn Task in foreground für eine Task auf eine leere Zeichenfolge ge-setzt ist, wird die Task auf der höchsten Ebene ausgeführt.

Steuert das Verhalten bei Start/Stopp und Systemneustart:• NORMAL – Das Taskprogramm wird manuell gestartet und ange-

halten (z. B. am FlexPendant). Die Task wird bei einem Not-Ausangehalten.

• STATIC – Bei einem Neustart fährt das Taskprogramm an derStelle fort, an der es unterbrochen wurde. Das Taskprogramm wirdnormalerweise nicht vom FlexPendant oder durch Drücken derNot-Aus-Taste angehalten.

• SEMISTATIC – Das Taskprogramm wird bei allen Neustarts vonAnfang an neu gestartet. Das Taskprogramm wird normalerweisenicht vom FlexPendant oder durch Drücken der Not-Aus-Tasteangehalten.

Eine Task, die eine mechanische Einheit steuert, muss vom Typ NORMALsein.

Type

Der Name der Startroutine für das Taskprogramm.Main entry

Dieser Parameter sollte auf NO gesetzt werden, wenn das System beimVerknüpfen eines Moduls unaufgelöste Verweise im Programm akzeptie-ren soll, andernfalls auf YES.

Check unresol-ved references

Fortsetzung auf nächster Seite340 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.2 Systemparameter

Page 341: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

TrustLevel definiert das Systemverhalten, wenn ein STATIC- oder SEMI-STATIC-Taskprogramm angehalten wird (z. B aufgrund eines Fehlers):

• SysFail – Wenn das Programm dieser Task angehalten wird, wirddas System auf SYS_FAIL gesetzt. Hierdurch werden die Program-me aller NORMAL-Tasks angehalten (die Ausführung von STATIC-und SEMISTATIC-Tasks wird fortgesetzt, falls dies möglich ist).Manuelles Bewegen oder ein Programmstart ist nicht möglich. EinNeustart ist erforderlich.

• SysHalt – Wenn das Programm dieser Task angehalten wird,werden die Programme aller NORMAL-Tasks angehalten. Bei„Motoren ein“ ist manuelles Bewegen möglich, doch das Programmwird nicht gestartet. Ein Neustart ist erforderlich.

• SysStop – Wenn das Programm dieser Task angehalten wird,werden die Programme aller NORMAL-Tasks angehalten, könnenjedoch neu gestartet werden. Das manuelle Bewegen des Robotersist ebenfalls möglich.

• NoSafety – Nur das Programm dieser Task wird angehalten.

TrustLevel

Gibt an, ob das Taskprogramm Roboterbewegungen mit RAPID-Bewe-gungsinstruktionen steuern kann.

MotionTask

MotionTask kann nur für eine einzige Task auf YES gesetzt sein, es seidenn, die Option MultiMove wird verwendet.

Anwendungshandbuch - Steuerungssoftware IRC5 3413HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.2 Systemparameter

Fortsetzung

Page 342: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.3 RAPID-Komponenten

DatentypenHier erhalten Sie eine kurze Beschreibung jedes Datentyps in Multitasking. WeitereInformationen finden Sie unter dem jeweiligen Datentyp im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

taskid gibt die im System verfügbaren Tasks an.taskidDiese Angabe wird durch den Systemparameter Task definiert und kannnicht im RAPID-Programm definiert werden. Der Datentyp taskid kannjedoch als Parameter beim Deklarieren einer Routine verwendet werden.Ein Codebeispiel finden Sie unter taskid auf Seite 362.

Mit syncidentwird der Wartepunkt im Programm angegeben, wenn dieInstruktion WaitSyncTask verwendet wird.

syncident

Der Name der syncident-Variablen muss in allen Taskprogrammenidentisch sein.Ein Codebeispiel finden Sie unterBeispiel fürWaitSyncTask auf Seite356.

Eine Variable des Datentyps tasks enthält Namen der Tasks, die mitder Instruktion WaitSyncTask synchronisiert werden.

tasks

Ein Codebeispiel finden Sie unterBeispiel fürWaitSyncTask auf Seite356.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Multitasking. WeitereInformationen finden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

WaitSyncTask wird verwendet, um mehrere Taskprogramme an einembestimmten Punkt im Programm zu synchronisieren.

WaitSyncTask

Eine WaitSyncTask-Instruktion verzögert die Programmabarbeitungund wartet auf die anderen Taskprogramme. Wenn alle Taskprogrammeden Punkt erreicht haben, wird die Abarbeitung des jeweiligen Programmsfortgesetzt.Ein Codebeispiel finden Sie unterBeispiel fürWaitSyncTask auf Seite356.

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion in Multitasking. WeitereInformationen finden Sie unter der jeweiligen Funktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungFunktion

TestAndSet wird gemeinsam mit einem booleschen Flag verwendet, umsicherzustellen, dass jeweils nur ein Taskprogramm einen bestimmtenRAPID-Codebereich oder eine bestimmte Systemressource verwendet.

TestAndSet

Ein Codebeispiel finden Sie unter Beispiel mit Flag und TestAndSet aufSeite 360.

Überprüft, ob das Taskprogramm eine mechanische Einheit steuert (Ro-boter oder andere Einheit).

TaskRunMec

Ein Codebeispiel finden Sie unterÜberprüfen, ob Taskmechanische Einheitsteuert auf Seite 361.

Fortsetzung auf nächster Seite342 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.3 RAPID-Komponenten

Page 343: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungFunktion

Überprüft, ob das Taskprogramm einen Roboter mit TCP steuert.TaskRunRobEin Codebeispiel finden Sie unterÜberprüfen, ob Taskmechanische Einheitsteuert auf Seite 361.

Anwendungshandbuch - Steuerungssoftware IRC5 3433HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.3 RAPID-Komponenten

Fortsetzung

Page 344: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.4 Taskkonfiguration

9.1.4.1 Debug-Strategien zum Einrichten von Tasks

Tipp

Die folgenden Instruktionen stellen eine sichere Methode zum Durchführen vonAktualisierungen dar. Wenn der Parameter Type auf NORMAL und TrustLevelauf NoSafety gesetzt wird, kann das Taskprogramm einfacher getestet werdenund möglicherweise auftretende Fehler lassen sich leichter korrigieren.Wenn Sie genau wissen, dass der von Ihnen eingefügte Code keine Fehlerenthält, können Sie das Ändern von Werten für Type und TrustLevel übergehen.Wenn Sie keine Systemparameter ändern, müssen Sie keinen Neustartmodusausführen.

Einrichten von TasksGehen Sie wie folgt vor, wenn Sie dem System eine neue Task hinzufügen.

Aktion

Definieren Sie die neue Task, indem Sie eine Instanz des Systemparametertyps Taskin der Parametergruppe Controller hinzufügen.

1

Setzen Sie den Parameter Type auf NORMAL.2Hierdurch wird das Erstellen und Testen der Module in der Task vereinfacht.

Erstellen Sie die Module, die in der Task vorhanden sein sollen, entweder am FlexPen-dant oder offline, und speichern Sie sie.

3

Geben Sie in den Systemparametern für die Parametergruppe Controller und den TypAutomatic loading of Modules alle Module an, die in die neue Task vorab geladenwerden sollen.

4

Für NORMAL-Tasks können die Module zu einem späteren Zeitpunkt geladen werden,doch für STATIC- oder SEMISTATIC-Tasks müssen die Module vorab geladen werden.

Halten Sie die Steuerung an.5

Testen und debuggen Sie die Module im Status „Motors on“, bis die Funktionalitätzufriedenstellend ist.

6

Ändern Sie die Parameter Type und TrustLevel in die gewünschten Werte (z. B. SEMI-STATIC und SysFail).

7

Führen Sie einen Neustart des Systems aus.8

Ändern des TaskprogrammsGehen Sie wie folgt vor, wenn Sie ein Programm in einer vorhandenen Taskbearbeiten, für die Type auf STATIC oder SEMISTATIC gesetzt ist.

Aktion

Ändern Sie den Systemparameter TrustLevel in NoSafety.1Dies ermöglicht das Ändern und Testen der Module in der Task.

Wenn der Systemparameter geändert werden musste, starten Sie die Steuerung neu.2

Fortsetzung auf nächster Seite344 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.4.1 Debug-Strategien zum Einrichten von Tasks

Page 345: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Aktion

Starten Sie am FlexPendant im ABB-Menü die Systemeinstellungen. Tippen Sie dannauf FlexPendant und Taskauswahlfenster. Wählen Sie Alle Tasks aus, und tippenSie auf OK.

3

Wählen Sie im Quickset-Menü die Tasks aus, die manuell gestartet und angehaltenwerden sollen (siehe Auswählen der mit der START-Taste zu startenden Tasks aufSeite 349).

4

Drücken Sie die STOP-Taste, um die ausgewählten STATIC- und SEMISTATIC-Tasksanzuhalten.

5

Starten Sie den Programmeditor.6Die STATIC- und SEMISTATIC-Tasks können jetzt auch bearbeitet werden.

Ändern, testen und speichern Sie die Module.7

Rufen Sie erneut die Systemeinstellungen auf, und öffnen Sie das Taskauswahlfenster.Wählen Sie Nur NORMAL-Tasks aus, und tippen Sie auf OK.

8

Setzen Sie den Parameter TrustLevel auf den gewünschten Wert zurück (z. B. SysFail).9

Führen Sie einen Neustart des Systems aus.10

Anwendungshandbuch - Steuerungssoftware IRC5 3453HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.4.1 Debug-Strategien zum Einrichten von Tasks

Fortsetzung

Page 346: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.4.2 Prioritäten

Funktionsweise von PrioritätenStandardmäßig werden alle Taskprogramme mit derselben Priorität ausgeführt,wobei die Taskprogramme miteinander um die Ausführung konkurrieren.Die Priorität einer Task kann geändert werden, indem die Task in den Hintergrundeiner anderen Task verschoben wird. Dann wird das Programm der Hintergrundtasknur ausgeführt, wenn sich das Vordergrundtaskprogramm im Leerlauf befindet,beispielsweise weil es auf ein Ereignis wartet. Ein Hintergrundtaskprogramm wirdauch ausgeführt, wenn das Vordergrundtaskprogramm eine Bewegungsinstruktionausgeführt hat, weil die Vordergrundtask dann warten muss, bis sich der Roboterbewegt hat.Um eine Task in den Hintergrund einer anderen Task zu verschieben, verwendenSie den Parameter Task in foreground.

Beispiel für PrioritätenEs werden 6 Tasks verwendet, wobei Task in foreground wie in der folgendenTabelle festgelegt ist.

Task in ForegroundTaskname

MAIN

MAINBACK1

BACK1BACK2

BACK1BACK3

SUP1

SUP1SUP2

Dies führt zu folgender Prioritätsstruktur:

en0300000451

Die Programme der Tasks MAIN und SUP1 führen abwechselnd jeweils eineInstruktion aus (Fall 1 in der Abbildung unten).Wenn sich das MAIN-Taskprogramm im Leerlauf befindet, führen die Programmevon BACK1 und SUP1 abwechselnd jeweils eine Instruktion aus (Fall 2 in derAbbildung unten).

Fortsetzung auf nächster Seite346 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.4.2 Prioritäten

Page 347: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Wenn sich das MAIN- und das BACK1-Taskprogramm im Leerlauf befinden, führendie Programme von BACK2, BACK3 und SUP1 abwechselnd jeweils eine Instruktionaus (Fall 3 der Abbildung unten).

en0300000479

Anwendungshandbuch - Steuerungssoftware IRC5 3473HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.4.2 Prioritäten

Fortsetzung

Page 348: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.4.3 Taskfeldeinstellungen

Zweck von TaskfeldeinstellungenStandardmäßig werden mit der START- und STOP-Taste nur NORMAL-Tasksgestartet und angehalten. Im Taskauswahlfeld können Sie auswählen, welcheNORMAL-Tasks gestartet und angehalten werden (siehe Auswählen der mit derSTART-Taste zu startenden Tasks auf Seite 349.In „Taskfeldeinstellungen“ kann das Standardverhalten geändert werden, so dassSTATIC- und SEMISTATIC-Tasks auch mit der START- und STOP-Tasteschrittweise abgearbeitet, gestartet und angehalten werden können. Diese Taskskönnen jedoch nur gestartet und angehalten werden, wenn ihr TrustLevel aufNoSafety gesetzt ist, und sie können nur im Einrichtbetrieb gestartet und angehaltenwerden.

Zulassen der Auswahl von STATIC- und SEMISTATIC-Tasks im TaskfeldIm Folgenden wird beschrieben, wie Sie STATIC- und SEMISTATIC-Tasks imTaskfeld als auswählbare Tasks festlegen.

Aktion

Tippen Sie im ABB-Menü auf Systemeinstellungen, auf FlexPendant und dann aufTaskfeldeinstellungen.

1

Wählen Sie Alle Tasks (Normal/Static/Semistatic) mit trustlevel nosafety und tippenSie auf OK.

2

348 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.4.3 Taskfeldeinstellungen

Page 349: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.4.4 Auswählen der mit der START-Taste zu startenden Tasks

HintergrundStandardmäßig werden beim Drücken der START-Taste die Programme allerNORMAL-Tasks gleichzeitig gestartet. Jedoch müssen nicht alleNORMAL-Taskprogramme gleichzeitig ausgeführt werden. Es ist möglich, dieNORMAL-Taskprogramme auszuwählen, die beim Drücken der START-Tastegestartet werden.Wenn in Taskfeldeinstellungen die Option Alle Tasks ausgewählt ist, kannfestgelegt werden, dass die Programme von STATIC- und SEMISTATIC-Tasks, fürdie TrustLevel auf NoSafety gesetzt ist, mit der START-TASTE gestartet, mit derFWD-Taste vorwärts abgearbeitet, mit der BWD-Taste rückwärts abgearbeitet undmit der STOP-Taste beendet werden.Wenn Taskfeldeinstellungen auf Nur normale Tasks gesetzt ist, werden alleSTATIC- und SEMISTATIC-Tasks ausgegraut und sie können nicht im Taskfelddes QuickSet-Menüs ausgewählt werden (siehe Bedienungsanleitung - IRC5 mitFlexPendant, Abschnitt Quickset-Menü). Beim Drücken der Starttaste werden alleSTATIC- und SEMISTATIC-Tasks gestartet.Wenn Taskfeldeinstellungen auf Alle Tasks gesetzt ist, können STATIC- undSEMISTATIC-Tasks mit dem TrustLevelNoSafety im Taskfeld ausgewählt werden.Alle ausgewählten STATIC- und SEMISTATIC-Tasks können angehalten,schrittweise abgearbeitet und gestartet werden. .STATIC- oder SEMISTATIC-Tasks, die nicht im Taskfeld ausgewählt wurden,können dennoch ausgeführt werden. Dies ist für NORMAL-Tasks nicht möglich.Für STATIC- und SEMISTATIC-Tasks ist der Abarbeitungsmodus immerkontinuierlich. Die Einstellung des Abarbeitungsmodus im Quickset-Menü ist nurauf NORMAL-Tasks anwendbar (sieheBedienungsanleitung - IRC5mit FlexPendant,Abschnitt Quickset-Menü).Dies ist nur im Einrichtbetrieb möglich. Im Automatikbetrieb können keine STATIC-oder SEMISTATIC-Tasks gestartet, schrittweise abgearbeitet oder beendet werden.

TaskfeldeinstellungenUm Taskfeldeinstellungen zu öffnen, tippen Sie auf das ABB-Menü, aufSystemeinstellungen, auf FlexPendant und auf Taskfeldeinstellungen.

Auswählen von TasksGehen Sie wie folgt vor, um die Tasks auszuwählen, die beim Drücken derSTART-Taste gestartet werden sollen.

Aktion

Schalten Sie die Steuerung in Einrichtbetrieb.1

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3493HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.4.4 Auswählen der mit der START-Taste zu startenden Tasks

Page 350: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Aktion

Tippen Sie am FlexPendant auf die QuickSet-Schaltfläche und dann auf die Taskfeld-Schaltfläche, um alle Tasks anzuzeigen.

2

Wenn Taskfeldeinstellungen aufNur NORMAL-Tasks gesetzt ist, werden alle STATIC-und SEMISTATIC-Tasks abgeblendet dargestellt und können nicht ausgewählt werden.Wenn Taskfeldeinstellungen auf Alle Tasks gesetzt ist, können STATIC-und SEMI-STATIC-Tasks mit dem TrustLevelNoSafety ausgewählt werden. STATIC- und SEMI-STATIC-Tasks mit auf andere Werte gesetztem TrustLevel werden jedoch abgeblendetdargestellt und können nicht ausgewählt werden.

Aktivieren Sie die Kontrollkästchen für die Tasks, deren Programm über die START-Taste gestartet werden soll.

3

Zurücksetzen der Debug-Einstellungen im EinrichtbetriebGehen Sie wie folgt vor, um zur normalen Abarbeitung im Einrichtbetriebzurückzukehren.

Aktion

Wählen Sie in den Taskfeldeinstellungen die Option Nur NORMAL-Tasks aus.1

Drücken Sie die START-Taste.2Alle STATIC-und SEMISTATIC-Tasks werden kontinuierlich ausgeführt und nicht an-gehalten, wenn die STOP-Taste oder Not-Aus-Taste gedrückt wird.

Wechsel in den AutomatikbetriebBeim Wechsel in den Automatikbetrieb wird die Auswahl aller STATIC- undSEMISTATIC-Tasks im Taskfeld aufgehoben. Die angehaltenen STATIC- undSEMISTATIC-Tasks werden beim nächsten Drücken der START-, FWD- oderBWD-Taste gestartet. Diese Tasks werden dann kontinuierlich vorwärts abgearbeitetund nicht angehalten, wenn die STOP-Taste oder Not-Aus-Taste gedrückt wird.Das Verhalten von NORMAL-Tasks, deren Auswahl im Taskfeld aufgehoben wurde,hängt vom Systemparameter Reset im Typ Auto Condition Reset derParametergruppe Controller ab. Wenn Reset auf Yes gesetzt ist, werden alleNORMAL-Tasks im Taskfeld ausgewählt und mit der START-Taste gestartet. WennReset auf No gesetzt ist, werden nur die im Taskfeld ausgewählten NORMAL-Tasksmit der START-Taste gestartet.

Hinweis

Beachten Sie, dass sich das Ändern des Werts für den Systemparameter Resetauf alle Debug-Resets (z. B. Geschwindigkeitsoverride und simulierte E/As)auswirkt. Weitere Informationen finden Sie im TechnischesReferenzhandbuch - Systemparameter, Abschnitt Auto Condition Reset.

Neustarten der SteuerungBei einem Neustart der Steuerung bleibt der Status aller NORMAL-Tasks erhalten,während die Auswahl aller STATIC- und SEMISTATIC-Tasks im Taskfeldaufgehoben wird. Beim Starten der Steuerung werden alle STATIC- undSEMISTATIC-Tasks gestartet und dann kontinuierlich ausgeführt.

Fortsetzung auf nächster Seite350 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.4.4 Auswählen der mit der START-Taste zu startenden TasksFortsetzung

Page 351: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Task im synchronisierten Modus deaktivierenIst eine Task im synchronisierten Modus, d. h. der Programmzeiger befindet sichzwischen SyncMoveOn und SyncMoveOff, kann die Task zwar deaktiviert, abernicht wieder aktiviert werden. Eine Aktivierung der Task ist erst möglich, wenn dieSynchronisierung abgeschlossen ist. Wird der Vorgang fortgesetzt, wird zwar dieSynchronisierung anderer Tasks beendet, nicht jedoch die der deaktivierten Task.Ein Abschluss der Synchronisierung für diese Task ist durch Bewegen desProgrammzeigers auf „Main“ oder auf eine Routine möglich.Wenn der Systemparameter Reset auf Yes gesetzt ist, kann nicht in denAutomatikbetrieb gewechselt werden, solange sich eine deaktivierte Task imsynchronisierten Modus befindet. Durch den Wechsel in den Automatikbetriebsollten alle NORMAL-Tasks aktiviert werden. Wenn dies nicht möglich ist, kannnicht in den Automatikbetrieb gewechselt werden.

Anwendungshandbuch - Steuerungssoftware IRC5 3513HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.4.4 Auswählen der mit der START-Taste zu startenden Tasks

Fortsetzung

Page 352: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.5 Kommunikation zwischen Tasks

9.1.5.1 Persistente Variablen

Über persistente VariablenWenn Sie für mehrere Tasks dieselben Daten nutzen möchten, verwenden Siepersistente Variablen.Eine persistente Variable gilt global in allen Tasks, für die sie deklariert wurde. Diepersistente Variable muss in allen Tasks mit demselben Typ und derselben Größe(Datenfelddimension) deklariert werden. Andernfalls tritt ein Laufzeitfehler auf.Es reicht aus, in einer Task einen Anfangswert für die persistente Variableanzugeben. Wenn in mehreren Tasks Anfangswerte angegeben werden, wird nurder Anfangswert des ersten zu ladenden Moduls verwendet.

Tipp

Beim Speichern eines Programms wird zukünftig der aktuelle Wert einerpersistenten Variablen als Anfangswert verwendet. Wenn dies nicht gewünschtwird, setzen Sie die persistente Variable direkt nach der Kommunikation zurück.

Beispiel mit persistenter VariableIn diesem Beispiel greifen beide Tasks auf die persistenten Variablen startsync

und stringtosend zu. Daher können sie für die Kommunikation zwischen denTaskprogrammen verwendet werden.Haupttaskprogramm:

MODULE module1

PERS bool startsync:=FALSE;

PERS string stringtosend:="";

PROC main()

stringtosend:="this is a test";

startsync:= TRUE

ENDPROC

ENDMODULE

Hintergrundtaskprogramm:MODULE module2

PERS bool startsync;

PERS string stringtosend;

PROC main()

WaitUntil startsync;

IF stringtosend = "this is a test" THEN

...

ENDIF

!reset persistent variables

startsync:=FALSE;

stringtosend:="";

ENDPROC

ENDMODULE

Fortsetzung auf nächster Seite352 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.5.1 Persistente Variablen

Page 353: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Modul für gemeinsame DatenWenn in mehreren Tasks persistente Variablen verwendet werden, sollten alleTasks Deklarationen enthalten. Um Typenfehler oder das Vergessen einerDeklaration zu vermeiden, empfiehlt es sich, alle gemeinsamen Variablen in einemSystemmodul zu deklarieren. Anschließend kann das Systemmodul in alle Tasksgeladen werden, in denen die Variablen erforderlich sind.

Anwendungshandbuch - Steuerungssoftware IRC5 3533HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.5.1 Persistente Variablen

Fortsetzung

Page 354: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.5.2 Warten auf andere Tasks

Zwei VerfahrenEinige Anwendungen verfügen über Taskprogramme, die unabhängig von anderenTasks ausgeführt werden. Häufig müssen jedoch die Taskprogramme Informationenüber die Aktionen anderer Taskprogramme besitzen.Für ein Taskprogramm kann festgelegt werden, dass es auf ein anderesTaskprogramm wartet. Hierfür wird entweder eine persistente Variable gesetzt,die von dem anderen Taskprogramm abgerufen werden kann, oder es wird einSignal gesetzt, das von dem anderen Programm mit einem Interrupt verbundenwerden kann.

AbfragenDies ist die einfachste Methode, um festzulegen, dass ein Taskprogramm auf einanderes Taskprogramm wartet, doch weist sie die geringste Geschwindigkeit auf.Persistente Variablen werden gemeinsam mit der Instruktion WaitUntil oderWHILE verwendet.Bei Verwendung der Instruktion WaitUntil erfolgt die Abfrage intern alle 100 ms.

VORSICHT

Führen Sie Abfragen nicht häufiger als alle 100 ms aus. Eine Abfrageschleifeohne Warteinstruktion kann zu einer Überlastung und einer Trennung derVerbindung mit dem FlexPendant führen.

Beispiel für AbfrageHaupttaskprogramm:

MODULE module1

PERS bool startsync:=FALSE;

PROC main()

startsync:= TRUE;

...

ENDPROC

ENDMODULE

Hintergrundtaskprogramm:MODULE module2

PERS bool startsync:=FALSE;

PROC main()

WaitUntil startsync;

! This is the point where the execution

! continues after startsync is set to TRUE

...

ENDPROC

ENDMODULE

Fortsetzung auf nächster Seite354 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.5.2 Warten auf andere Tasks

Page 355: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

InterruptWenn in einem Taskprogramm ein Signal gesetzt und in einem anderenTaskprogramm ein Interrupt verwendet wird, erfolgt eine schnelle Reaktion ohnedie Arbeitslast, die durch Abfragen verursacht wird.Der Nachteil ist, dass der nach dem Interrupt ausgeführte Code in eineInterrupt-Routine eingefügt werden muss.

Beispiel für InterruptHaupttaskprogramm:

MODULE module1

PROC main()

SetDO do1,1;

...

ENDPROC

ENDMODULE

Hintergrundtaskprogramm:MODULE module2

VAR intnum intno1;

PROC main()

CONNECT intno1 WITH wait_trap;

ISignalDO do1, 1, intno1;

WHILE TRUE DO

WaitTime 10;

ENDWHILE

ENDPROC

TRAP wait_trap

! This is the point where the execution

! continues after do1 is set in main task

...

IDelete intno1;

ENDTRAP

ENDMODULE

Anwendungshandbuch - Steuerungssoftware IRC5 3553HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.5.2 Warten auf andere Tasks

Fortsetzung

Page 356: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.5.3 Synchronisieren von Tasks

Synchronisieren mit WaitSyncTaskEine Synchronisierung ist sinnvoll, wenn Taskprogramme voneinander abhängen.Die Ausführung eines Taskprogramms nach einem Synchronisierungspunkt wirderst fortgesetzt, wenn alle Taskprogramme diesen Punkt im jeweiligenProgrammcode erreicht haben.Taskprogramme werden mit der Instruktion WaitSyncTask synchronisiert. DieAusführung eines Taskprogramms wird erst fortgesetzt, wenn alle Taskprogrammedieselbe WaitSyncTask-Instruktion erreicht haben.

Beispiel für WaitSyncTaskIn diesem Beispiel berechnet das Hintergrundtaskprogramm die Position desnächsten Objekts, während das Haupttaskprogramm die Bearbeitung des aktuellenObjekts durch den Roboter steuert.Das Hintergrundtaskprogramm muss möglicherweise auf eine Eingabe durch denBediener oder E/A-Signale warten, doch die Ausführung des Hauptprogramms mitdem nächsten Objekt wird erst fortgesetzt, wenn die neue Position berechnetwurde. Ebenso darf die nächste Berechnung durch das Hintergrundtaskprogrammerst beginnen, wenn das Haupttaskprogramm die Bearbeitung eines Objektsabgeschlossen hat und den neuen Wert empfangen kann.Haupttaskprogramm:

MODULE module1

PERS pos object_position:=[0,0,0];

PERS tasks task_list{2} := [["MAIN"], ["BACK1"]];

VAR syncident sync1;

PROC main()

VAR pos position;

WHILE TRUE DO

!Wait for calculation of next object_position

WaitSyncTask sync1, task_list;

position:=object_position;

!Call routine to handle object

handle_object(position);

ENDWHILE

ENDPROC

PROC handle_object(pos position)

...

ENDPROC

ENDMODULE

Hintergrundtaskprogramm:MODULE module2

PERS pos object_position:=[0,0,0];

PERS tasks task_list{2} := [["MAIN"], ["BACK1"]];

VAR syncident sync1;

Fortsetzung auf nächster Seite356 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.5.3 Synchronisieren von Tasks

Page 357: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PROC main()

WHILE TRUE DO

!Call routine to calculate object_position

calculate_position;

!Wait for handling of current object

WaitSyncTask sync1, task_list;

ENDWHILE

ENDPROC

PROC calculate_position()

...

object_position:= ...

ENDPROC

ENDMODULE

Anwendungshandbuch - Steuerungssoftware IRC5 3573HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.5.3 Synchronisieren von Tasks

Fortsetzung

Page 358: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.5.4 Verwenden eines Dispatchers

Was ist ein Dispatcher?Mit einem digitalen Signal kann angegeben werden, wann eine andere Task einebestimmte Aktion ausführen soll. Das Signal kann jedoch keine Informationen überdie auszuführende Aktion enthalten.Statt für jede Routine ein Signal zu verwenden, kann mithilfe eines Dispatchersbestimmt werden, welche Routine aufgerufen werden soll. Bei einem Dispatcherkann es sich um eine persistente Zeichenfolgenvariable handeln, die den Namender in einer weiteren Task auszuführenden Routine enthält.

Beispiel für DispatcherIn diesem Beispiel ruft das Haupttaskprogramm Routinen in der Hintergrundtaskauf, indem routine_string auf den Routinennamen und anschließend do5 auf1 gesetzt wird. Auf diese Weise legt das Haupttaskprogramm fest, dass dasHintergrundtaskprogramm zunächst die Routine clean_gun und dann routine1ausführt.Haupttaskprogramm:

MODULE module1

PERS string routine_string:="";

PROC main()

!Call clean_gun in background task

routine_string:="clean_gun";

SetDO do5,1;

WaitDO do5,0;

!Call routine1 in background task

routine_string:="routine1";

SetDO do5,1;

WaitDO do5,0;

...

ENDPROC

ENDMODULE

Hintergrundtaskprogramm:MODULE module2

PERS string routine_string:="";

PROC main()

WaitDO do5,1;

%routine_string%;

SetDO do5,0;

ENDPROC

PROC clean_gun()

...

ENDPROC

Fortsetzung auf nächster Seite358 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.5.4 Verwenden eines Dispatchers

Page 359: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

PROC routine1()

...

ENDPROC

ENDMODULE

Anwendungshandbuch - Steuerungssoftware IRC5 3593HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.5.4 Verwenden eines Dispatchers

Fortsetzung

Page 360: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.6 Weitere Programmierungsthemen

9.1.6.1 Gemeinsame Verwendung von Ressourcen durch Tasks

Flag für belegte RessourceSystemressourcen, z. B. FlexPendant, das Dateisystem und E/A-Signale, sind füralle Tasks verfügbar. Wenn jedoch mehrere Taskprogramme dieselbe Ressourceverwenden, stellen Sie sicher, dass dies abwechselnd und nicht gleichzeitig erfolgt.Um die gleichzeitige Verwendung derselben Ressource durch zwei Taskprogrammezu verhindern, geben Sie mithilfe eines Flags an, dass die Ressource bereitsverwendet wird. Eine boolesche Variable kann auf TRUE gesetzt werden, währenddas Taskprogramm die Ressource verwendet.Diese Vorgehensweise wird durch die Instruktion TestAndSet erleichtert. Sieüberprüft zunächst das Flag. Wenn das Flag auf FALSE gesetzt ist, setzt dieInstruktion das Flag auf TRUE und gibt TRUE zurück. Andernfalls gibt sie FALSEzurück.

Beispiel mit Flag und TestAndSetIn diesem Beispiel versuchen zwei Taskprogramme, jeweils drei Zeilen auf dasFlexPendant zu schreiben. Wenn kein Flag verwendet wird, besteht die Gefahr,dass diese Zeilen falsch zugeordnet werden. Mithilfe eines Flags schreibt dasTaskprogramm, das die TestAndSet-Instruktion zuerst ausführt, alle drei Zeilenzuerst. Das andere Taskprogramm wartet, bis das Flag auf FALSE gesetzt wurde,und schreibt dann alle seine Zeilen.Haupttaskprogramm:

PERS bool tproutine_inuse := FALSE;

...

WaitUntil TestAndSet(tproutine_inuse);

TPWrite "First line from MAIN";

TPWrite "Second line from MAIN";

TPWrite "Third line from MAIN";

tproutine_inuse := FALSE;

Hintergrundtaskprogramm:PERS bool tproutine_inuse := FALSE;

...

WaitUntil TestAndSet(tproutine_inuse);

TPWrite "First line from BACK1";

TPWrite "Second line from BACK1";

TPWrite "Third line from BACK1";

tproutine_inuse := FALSE;

360 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.6.1 Gemeinsame Verwendung von Ressourcen durch Tasks

Page 361: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.6.2 Überprüfen, ob Task mechanische Einheit steuert

Zwei Funktionen für AbfragenDie Funktion TaskRunMec überprüft, ob das Taskprogramm eine beliebigemechanische Einheit steuert, und die Funktion TaskRunRob überprüft, ob dasTaskprogramm einen Roboter steuert.TaskRunMec gibt TRUE zurück, wenn das Taskprogramm einen Roboter oder eineandere mechanische Einheit steuert. TaskRunRob gibt nur dann TRUE zurück,wenn das Taskprogramm einen Roboter mit einem TCP steuert.TaskRunMec und TaskRunRob sind bei Verwendung von MultiMove sinnvoll. MitMultiMove können Sie mehrere mechanische Einheiten steuern (sieheAnwendungshandbuch - MultiMove).

Hinweis

Für eine Task, die einen Roboter steuern soll, muss der Parameter Type aufNORMAL und MotionTask auf YES gesetzt sein. Siehe Systemparameter aufSeite 340.

Beispiel mit TaskRunMec und TaskRunRobIn diesem Beispiel wird die maximale Geschwindigkeit für externe Ausrüstungeingestellt. Wenn das Taskprogramm einen Roboter steuert, wird die maximaleGeschwindigkeit für externe Ausrüstung auf denselben Wert wie die maximaleGeschwindigkeit für den Roboter eingestellt. Wenn das Taskprogramm externeAusrüstung, jedoch keinen Roboter steuert, wird die maximale Geschwindigkeitauf 5000 mm/s eingestellt.

IF TaskRunMec() THEN

IF TaskRunRob() THEN

!If task controls a robot

MaxExtSpeed := MaxRobSpeed();

ELSE

!If task controls other mech unit than robot

MaxExtSpeed := 5000;

ENDIF

ENDIF

Anwendungshandbuch - Steuerungssoftware IRC5 3613HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.6.2 Überprüfen, ob Task mechanische Einheit steuert

Page 362: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.6.3 taskid

Syntax von taskidEine Task verfügt immer über eine vordefinierte Variable vom Typ taskid, die ausdem Namen der Task und dem Postfix „Id“ besteht. Beispielsweise lautet derVariablenname der MAIN-Task MAINId.

CodebeispielIn diesem Beispiel wird das Modul PART_A in der Task BACK1 gespeichert, obwohldie Save-Instruktion in einer anderen Task ausgeführt wird.BACK1Id ist eine Variable vom Typ taskid, die automatisch vom System deklariertwird.

Save \TaskRef:=BACK1Id, "PART_A"

\FilePath:="HOME:/DOORDIR/PART_A.MOD";

362 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.6.3 taskid

Page 363: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.1.6.4 Vermeiden von rechenintensiven Schleifen

Hintergrundtasks werden kontinuierlich in Schleifen wiederholtEin Taskprogramm wird normalerweise kontinuierlich ausgeführt. Daher ist ein imHintergrund ausgeführtes Taskprogramm eigentlich eine Endlosschleife. Wenndieses Programm keine Warteinstruktion aufweist, beansprucht die Hintergrundtaskmöglicherweise zu viel Computerleistung, so dass die Steuerung keine anderenTasks behandeln kann.

Beispiel:MODULE background_module

PROC main()

WaitTime 1;

IF di1=1 THEN

...

ENDIF

ENDPROC

ENDMODULE

Wenn dieses Beispiel keine Warteinstruktion aufweist und di1 0 ist, beanspruchtdie Hintergrundtask zu viel Computerleistung für eine Schleife, die keine Aktionenausführt.

Anwendungshandbuch - Steuerungssoftware IRC5 3633HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.1.6.4 Vermeiden von rechenintensiven Schleifen

Page 364: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.2 Sensor Interface [628-1]

9.2.1 Einführung in Sensor Interface

ZweckDie Option Sensor Interface wird für die Kommunikation mit externen Sensorenüber einen seriellen oder einen Ethernet-Kanal verwendet.Der Zugriff auf den Sensor kann mithilfe eines Satzes von RAPID-Instruktionenerfolgen, die das Lesen und Schreiben von rohen Sensordaten ermöglichen.Ein Interrupt erlaubt die Überwachung von Änderungen in Sensordaten.

Tipp

Die von Sensor Interface bereitgestellte Kommunikation ist in Instruktionen zumLichtbogenschweißen für die Nahtverfolgung und die adaptive Steuerung vonProzessparametern integriert. Diese Instruktionen führen Kommunikations- undKorrekturaufgaben für Sie aus, während Sie bei Verwendung von Sensor Interfacediese Aufgaben selbst ausführen. Weitere Informationen finden Sie unterAnwendungshandbuch - Arc undArc Sensor undApplicationmanual - ContinuousApplication Platform.

Enthaltene KomponentenDie RobotWare-Option Sensor Interface bietet Ihnen Folgendes:

• ABB-unterstützte Sensorprotokolle.• Instruktion zum Herstellen einer Verbindung mit einem Sensor: SenDevice.• Instruktion zum Einrichten eines Interrupts vom Sensor:IVarValue.• Instruktion zum Schreiben auf einen Sensor: WriteVar.• Funktion zum Lesen eines Sensors: ReadVar.• Laser Tracker Calibration (LTC)-Funktionalität für optische Sensorkalibrierung.

Grundlegende MethodeDies ist die grundlegende Methode für die Verwendung von Sensor Interface.

1 Konfigurieren Sie den Sensor. SieheKonfigurieren von Sensoren auf seriellenKanälen auf Seite 366.

2 Nehmen Sie mithilfe von Interrupts im RAPID-Code Anpassungenentsprechend den Eingangsdaten vom Sensor vor. Ein Beispiel finden Sieunter Interrupt-Schweißen zum Anpassen von Einstellungen auf Seite 373.

EinschränkungenInterrupts mit IVarValue können nur mit den Instruktionen ArcL, ArcC, CapL undCapC verwendet werden. Der Schalter Trackmuss verwendet werden. Daher mussdie Steuerung entweder mit RobotWare Arc oder Continuous Application Platformgemeinsam mit Optical Tracking oder mit der Option Weldguide ausgestattet sein.

364 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.1 Einführung in Sensor Interface

Page 365: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.2.2 Konfigurieren von Sensoren

9.2.2.1 Über die Sensoren

Unterstützte SensorenSensor Interface unterstützt folgende Sensoren:

• Sensoren, deren Verbindung unter Verwendung des Protokolls RTP1 überserielle Kanäle erfolgt. Informationen zur Konfiguration finden Sie unterKonfigurieren von Sensoren auf seriellen Kanälen auf Seite 366.

• Sensoren, die mit Ethernet über das RoboCom Light-Protokoll ausServo-Robot Inc, dem LTAPP oder dem LTPROTOBUF-Protokoll aus ABBverbunden sind. Informationen zur Konfiguration finden Sie unterKonfigurieren von Sensoren auf Ethernet-Kanälen auf Seite 367.

Anwendungshandbuch - Steuerungssoftware IRC5 3653HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.2.1 Über die Sensoren

Page 366: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.2.2.2 Konfigurieren von Sensoren auf seriellen Kanälen

ÜberblickSensor Interface kommuniziert unter Verwendung des Protokolls RTP1 mithöchstens zwei Sensoren über serielle Kanäle.

SystemparameterHier erhalten Sie eine kurze Beschreibung der Parameter, die beim Konfiguriereneines Sensors verwendet werden. Weitere Informationen über die Parameter findenSie im Technisches Referenzhandbuch - Systemparameter.Diese Parameter sind Teil des Typs Transmission Protocol im ThemaCommunication.

BeschreibungParameter

Der Name des Übertragungsprotokolls.NameDie Namen von Sensoren müssen mit „:“ enden. Beispiel: „laser1:“oder „swg:“.

Der Typ des Übertragungsprotokolls.TypeBei einem Sensor, der einen seriellen Kanal verwendet, muss es„RTP1“ sein.

Der Name des seriellen Ports, der für den Sensor verwendet wird.Dieser verweist auf den Parameter Name im Typ Serial Port.

Serial Port

Weitere Informationen über das Konfigurieren eines seriellen Portssiehe Technisches Referenzhandbuch - Systemparameter.

KonfigurationsbeispielIn diesem Beispiel wird gezeigt, wie ein Übertragungsprotokoll für einen Sensorkonfiguriert werden kann.Wir gehen davon aus, dass bereits ein serieller Port mit dem Namen „COM1“konfiguriert ist.

Serial PortTypeName

COM1RTP1laser1:

366 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.2.2 Konfigurieren von Sensoren auf seriellen Kanälen

Page 367: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.2.2.3 Konfigurieren von Sensoren auf Ethernet-Kanälen

ÜberblickDas Sensor Interface kann über die RoboCom Light-Protokollversion E04 (vonServo-Robot Inc), das LTAPP- oder das LTPROTOBUF-Protokoll (von ABB) mitmaximal sechs Sensoren über den Ethernet-Kanal kommunizieren. RoboCom Lightist ein XML-basiertes Protokoll, das TCP/IP verwendet.Der Sensor fungiert als Server und die Robotersteuerung fungiert als Client. Diesbedeutet, dass die Robotersteuerung die Verbindung zum Sensor initiiert.RoboCom Light verfügt über den TCP-Standard-Port6344 an der äußerenSensorseite, und LTAPPTCP verfügt über den TCP-Standard-Port 5020.

SystemparameterHier erhalten Sie eine kurze Beschreibung der Parameter, die beim Konfiguriereneines Sensors verwendet werden. Weitere Informationen über die Parameter findenSie im Technisches Referenzhandbuch - Systemparameter.Diese Parameter sind Teil des Typs Transmission Protocol im ThemaCommunication.

BeschreibungParameter

Der Name des Übertragungsprotokolls.NameDie Namen von Sensoren müssen mit „:“ enden. Beispiel: „laser1:“oder „swg:“.

Der Typ des Übertragungsprotokolls.TypeFür RoboCom Light muss der Protokolltyp SOCKDEV konfiguriertsein und für LTAPPTCP muss LTAPPTCP konfiguriert sein.

Der Name des seriellen Ports, der für den Sensor verwendet wird.Dieser verweist auf den Parameter Name im Typ Serial Port.

Serial Port

Weitere Informationen über das Konfigurieren eines seriellen Portssiehe Technisches Referenzhandbuch - Systemparameter.Für IP-basierte Übertragungsprotokolle (d. h. Type hat den WertTCP/IP, SOCKDEV, LTAPPTCP oder UDPUC), wird Serial Port nichtverwendet und hat den Wert N/A.

Die IP-Adresse des Sensors. Dieser Parameter ist vom Typ RemoteAddress.

Remote Address

Weitere Informationen zum Konfigurieren von Remote Address findenSie im Technisches Referenzhandbuch - Systemparameter.

Der Remote Port gibt die Port-Nummer an dem durch Remote Addressidentifizierten Netzwerkknoten an, mit dem die Verbindung eingerichtetwerden soll.

Remote Port

Der Standardwert für SOCKDEV ist 6344, und der Standardwert fürLTAPPTCP ist 5020.

KonfigurationsbeispieleIn diesen Beispielen wird gezeigt, wie ein Übertragungsprotokoll für einen Sensorkonfiguriert werden kann.

Remote PortRemote AddressSerial PortTypeName

6344192.168.125.101N/ASOCKDEVlaser2:

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3673HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.2.3 Konfigurieren von Sensoren auf Ethernet-Kanälen

Page 368: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Remote PortRemote AddressSerial PortTypeName

5020192.168.125.102N/ALTAPPTCPlaser3:

368 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.2.3 Konfigurieren von Sensoren auf Ethernet-KanälenFortsetzung

Page 369: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.2.3 RAPID

9.2.3.1 RAPID-Komponenten

DatentypenFür Sensor Interface sind keine Datentypen vorhanden.

InstruktionenHier erhalten Sie eine kurze Beschreibung jeder Instruktion in Sensor Interface.Weitere Informationen finden Sie unter der jeweiligen Instruktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungInstruktion

Mit SenDevicewird eine Verbindung mit einem physischen Sensor herge-stellt.

SenDevice

Mit IVarVal (Interrupt Variable Value) wird ein Interrupt angefordert undaktiviert, wenn sich der Wert einer Variablen, auf die über die serielle Sen-sorschnittstelle zugegriffen wird, ändert.

IVarValue

ReadBlock dient zum Lesen eines Datenblocks von einem Gerät, das mitder seriellen Sensorschnittstelle verbunden ist. Die Daten werden in einerDatei gespeichert.

ReadBlock

ReadBlock kann nur mit einem Sensor verwendet werden, der über einenseriellen Kanal verbunden ist (nicht mit einem per Ethernet verbundenenSensor.)

WriteBlock dient zum Schreiben eines Datenblocks auf ein Gerät, dasmit der seriellen Sensorschnittstelle verbunden ist. Die Daten werden auseiner Datei abgerufen.

WriteBlock

WriteBlock kann nur mit einem Sensor verwendet werden, der über einenseriellen Kanal verbunden ist (nicht mit einem per Ethernet verbundenenSensor.)

WriteVar dient zum Schreiben einer Variablen auf ein Gerät, das mit derseriellen Sensorschnittstelle verbunden ist.

WriteVar

FunktionenHier erhalten Sie eine kurze Beschreibung jeder Funktion in Sensor Interface.Weitere Informationen finden Sie unter der jeweiligen Funktion im TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen und Datentypen.

BeschreibungFunktion

ReadVar wird zum Lesen einer Variablen von einem Gerät verwendet, dasmit der seriellen Sensorschnittstelle verbunden ist.

ReadVar

ModuleDie Option Sensor Interface enthält ein Systemmodul, LTAPP__Variables. DiesesModul enthält die Variablennummern, die im LTAPP-Protokoll definiert sind. Eswird automatisch als SHARED geladen und macht die Variablen (CONST num) inallen RAPID-Tasks verfügbar.Hinweis: Eine Kopie des Moduls befindet sich im Roboter-SystemverzeichnisHOME/LTC, die Kopie ist jedoch NICHT das geladene Modul.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3693HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.3.1 RAPID-Komponenten

Page 370: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Konstanten

BeschreibungLe-sen/Schrei-ben (R/W)

NummerName

Ein Wert, der die Softwareversion desSensors identifiziert.

R1LTAPP__VERSION

Setzt den Sensor auf den Ausgangszu-stand zurück, unabhängig von seinemderzeitigen Zustand.

W3LTAPP__RESET

Sensor gibt eine Antwort zurück, dieseinen Status angibt.

W4LTAPP__PING

Startet die Kameraüberprüfung desSensors. Wenn dies nicht innerhalbder im Verbindungsprotokoll festgeleg-ten Zeit erfolgen kann, wird der StatusNoch nicht bereit zurückgegeben.

W5LTAPP__CAMCHECK

Schaltet die Stromzufuhr für den Sen-sor ein (1) oder aus (0) und initialisiertdie Filter. (Einschalten kann einigeSekunden dauern!)

RW6LTAPP__POWER_UP

Schaltet den Laserstrahl aus (1) oderein (0) und misst.

RW7LTAPP__LASER_OFF

Gemessener X-Wert, Wort ohne Vor-zeichen. Die Einheiten werden durchdie Variable Einheit festgelegt.

R8LTAPP__X

Gemessener Y-Wert, Wort ohne Vorzei-chen. Die Einheiten werden durch dieVariable Einheit festgelegt.

R9LTAPP__Y

Gemessener Z-Wert, Wort ohne Vorzei-chen. Die Einheiten werden durch dieVariable Einheit festgelegt.

R10LTAPP__Z

Der Abstand zwischen zwei Metallble-chen. Die Einheiten werden durch dieVariableEinheit festgelegt, -32768 fallsungültig.

R11LTAPP__GAP

Diskrepanz, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Einheit festgelegt. -32768 falls un-gültig.

R12LTAPP__MISMATCH

Nahtbereich, Einheiten in mm2, -32768falls ungültig.

R13LTAPP__AREA

Blechdicke des Blechs, auf das derSensor achten soll, LSB=0,1 mm.

RW14LTAPP__THICKNESS

Schrittrichtung der Achse. Schritt aufdie linke (1) oder rechte (0) Seite derBahnrichtung.

RW15LTAPP__STEPDIR

Aktive Achsennummer einstellen oderabfragen.

RW16LTAPP__JOINT_NO

Zeit seit Profilerhalt (ms), Wort ohneVorzeichen.

R17LTAPP__AGE

Winkel des normalen zum achsenrela-tiven Sensorkoordinatensystem Z-Richtung - in 0,1 Grad.

R18LTAPP__ANGLE

Fortsetzung auf nächster Seite370 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.3.1 RAPID-KomponentenFortsetzung

Page 371: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungLe-sen/Schrei-ben (R/W)

NummerName

Einheiten für X, Y, Z, Abstand undDiskrepanz. 0= 0,1 mm, 1= 0,01 mm.

RW19LTAPP__UNIT

Reserviert für interne Verwendung.-20-

Nur Servo-Roboter! Adaptiver Parame-ter 1

R31LTAPP__APM_P1

Nur Servo-Roboter! Adaptiver Parame-ter 2

R32LTAPP__APM_P2

Nur Servo-Roboter! Adaptiver Parame-ter 3

R33LTAPP__APM_P3

Nur Servo-Roboter! Adaptiver Parame-ter 4

R34LTAPP__APM_P4

Nur Servo-Roboter! Adaptiver Parame-ter 5

R35LTAPP__APM_P5

Nur Servo-Roboter! Adaptiver Parame-ter 6

R36LTAPP__APM_P6

Gemessener Winkel um Sensor Y-Achse

R51LTAPP__ROT_Y

Gemessener Winkel um Sensor Z-Achse A

R52LTAPP__ROT_Z

Nur Scansonic-Sensoren. GemesseneX-Wertzeile 1, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R54LTAPP__X0

Nur Scansonic-Sensoren. GemesseneY-Wertzeile 1, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R55LTAPP__Y0

Nur Scansonic-Sensoren. GemesseneZ-Wertzeile 1, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R56LTAPP__Z0

Nur Scansonic-Sensoren. GemesseneX-Wertzeile 2, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R57LTAPP__X1

Nur Scansonic-Sensoren. GemesseneY-Wertzeile 2, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R58LTAPP__Y1

Nur Scansonic-Sensoren. GemesseneZ-Wertzeile 2, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R59LTAPP__Z1

Nur Scansonic-Sensoren. GemesseneX-Wertzeile 3, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R60LTAPP__X2

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3713HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.3.1 RAPID-Komponenten

Fortsetzung

Page 372: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungLe-sen/Schrei-ben (R/W)

NummerName

Nur Scansonic-Sensoren. GemesseneY-Wertzeile 3, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R61LTAPP__Y2

Nur Scansonic-Sensoren. GemesseneZ-Wertzeile 3, Wort ohne Vorzeichen.Die Einheiten werden durch die Varia-ble Unit bestimmt.

R62LTAPP__Z2

372 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.3.1 RAPID-KomponentenFortsetzung

Page 373: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.2.4 Beispiele

9.2.4.1 Codebeispiele

Interrupt-Schweißen zum Anpassen von EinstellungenDies ist ein Beispiel für ein Schweißprogramm, in dem ein Sensor verwendet wird.Der Sensor liest den Abstand (in mm), und bei jeder Änderung des Wertes vomSensor erfolgt ein Interrupt. Anschließend werden anhand des neuen Wertes vomSensor die ordnungsgemäßen Einstellungen für Spannung, Drahtzuführung undGeschwindigkeit bestimmt.

LOCAL PERS num adptVlt{8}:=

[1,1.2,1.4,1.6,1.8,2,2.2,2.5];

LOCAL PERS num adptWfd{8}:=

[2,2.2,2.4,2.6,2.8,3,3.2,3.5];

LOCAL PERS num adptSpd{8}:=

[10,12,14,16,18,20,22,25];

LOCAL CONST num GAP_VARIABLE_NO:=11;

PERS num gap_value:=0;

PERS trackdata track:=[0,FALSE,150,[0,0,0,0,0,0,0,0,0],[3,1,5,200,0,0,0]];

VAR intnum IntAdap;

PROC main()

! Setup the interrupt. The trap routine AdapTrap will be called

! when the gap variable with number GAP_VARIABLE_NO in the sensor

! interface has been changed. The new value will be available in

! the gap_value variable.

CONNECT IntAdap WITH AdapTrap;

IVarValue "laser1:", GAP_VARIABLE_NO, gap_value, IntAdap;

! Start welding

ArcLStart p1,v100,adaptSm,adaptWd,fine, tool\j\Track:=track;

ArcLEnd p2,v100,adaptSm,adaptWd,fine, tool\j\Track:=track;

ENDPROC

TRAP AdapTrap

VAR num ArrInd;

! Scale the raw gap value received

ArrInd:=ArrIndx(gap_value);

! Update active weld data variable adaptWd with new data from

! the predefined parameter arrays.

! The scaled gap value is used as index in the voltage,

! wirefeed and speed arrays.

adaptWd.weld_voltage:=adptVlt{ArrInd};

adaptWd.weld_wirefeed:=adptWfd{ArrInd};

adaptWd.weld_speed:=adptSpd{ArrInd};

! Request a refresh of welding parameters using the new data

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3733HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.4.1 Codebeispiele

Page 374: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

! in adaptWd

ArcRefresh;

ENDTRAP

FUNC ArrIndx(num value)

IF value < 0.5 THEN RETURN 1;

ELSEIF value < 1.0 THEN RETURN 2;

ELSEIF value < 1.5 THEN RETURN 3;

ELSEIF value < 2.0 THEN RETURN 4;

ELSEIF value < 2.5 THEN RETURN 5;

ELSEIF value < 3.0 THEN RETURN 6;

ELSEIF value < 3.5 THEN RETURN 7;

ELSE RETURN 8;

ENDIF

ENDFUNC

Lesen von Positionen vom SensorIn diesem Beispiel wird der Sensor eingeschaltet und die Koordinaten vom Sensorwerden gelesen.

! Define variable numbers

CONST num SensorOn := 6;

CONST num YCoord := 9;

CONST num ZCoord := 10;

! Define the transformation matrix

CONST pose SensorMatrix := [[100,0,0],[1,0,0,0]];

VAR pos SensorPos;

VAR pos RobotPos;

! Request start of sensor measurements

WriteVar SensorOn, 1;

! Read a Cartesian position from the sensor

SensorPos.x := 0;

SensorPos.y := ReadVar (YCoord);

SensorPos.z := ReadVar (ZCoord);

! Stop sensor

WriteVar SensorOn, 0;

! Convert to robot coordinates

RobotPos := PoseVect(SensorMatrix, SensorPos);

374 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.2.4.1 CodebeispieleFortsetzung

Page 375: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3 Externally Guided Motion [689-1]

9.3.1 Einführung in EGM

9.3.1.1 Überblick

ZweckExternally Guided Motion (EGM) bietet die folgenden drei Merkmale:

• EGM Position Stream:Die aktuellen und geplanten Positionen der mechanischen Einheiten werdenin einer RAPID-Task an ein externes Gerät gesendet.

• EGM Position Guidance:Der Roboter folgt nicht der programmierten Bahn in RAPID sondern einerBahn, die von einem externen Gerät erzeugt wurde.

• EGM Path Correction:Die programmierte Roboterbahn wird durch Messungen eines externenGeräts geändert/korrigiert.

EGM Position StreamDer Zweck von EGM Position Stream besteht darin, externe Geräte mit den aktuellenund geplanten Positionen von mechanischen Einheiten auszustatten, die von derRobotersteuerung gesteuert werden.Einige Anwendungsbeispiele sind:

• Laserschweißen, bei dem der Laserkopf den Laserstrahl dynamisch steuert.• Alle Roboter-gemounteten Geräte, die den „Roboter“ -TCP mit einer externen

Steuerung steuern.

EGM Position GuidanceDer Zweck vonEGMPosition Guidance ist die Verwendung eines externen Geräts,um Positionsdaten für einen oder mehrere Roboter zu generieren. Die Roboterwerden an diese vorgegebene Position bewegt.Anwendungsbeispiele sind:

• Legen Sie ein Objekt (z. B. Autotür oder -fenster) an einen Ort (z. B.Karosserie), der von einem externen Sensor bestimmt wurde.

• Griff in die Kiste. Nehmen Sie mithilfe eines externen Sensors Objekte auseiner Kiste, um das Objekt und seine Position zu bestimmen.

EGM Path CorrectionDer Zweck von EGM Path Correction ist die Verwendung von auf dem Robotermontierten externen Geräten, um Bahnkorrekturdaten für einen oder mehrereRoboter zu generieren. Die Roboter werden an der korrigierten Bahn entlangbewegt, bei der es sich um die programmierte Bahn mit zusätzlich gemessenenKorrekturen handelt.Anwendungsbeispiele sind:

• Nahtverfolgung.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3753HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.1.1 Überblick

Page 376: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

• Verfolgung von Objekten, die sich in der Nähe einer bekannten Bahnbewegen.

Enthaltene KomponentenDie RobotWare-Option Externally Guided Motion bietet Ihnen Folgendes:

• Instruktionen zum Starten und Stoppen von EGM Position Stream.• Instruktionen zum Einrichten, Aktivieren und Zurücksetzen von EGM Position

Guidance.• Instruktionen zum Einrichten, Aktivieren und Zurücksetzen von EGM Path

Correction.• Instruktionen zum Initiieren von EGM Position Guidance-Bewegungen, mit

der Ausführung von RAPID synchronisiert oder nicht, und um diese zustoppen.

• Instruktionen zum Durchführen von EGM Path Correction-Bewegungen.• Eine Funktion zum Abrufen des aktuellen EGM-Status.• Systemparameter zum Konfigurieren von EGM und zum Einstellen der

Standardwerte.

Einschränkungen

Einschränkungen für EGM Position Stream• EGM Position Stream ist nur mit der UdpUc-Kommunikation verfügbar.• Werkzeugdaten und Ladedaten können während eines aktiven

Positionsdatenstroms nicht dynamisch geändert werden.• Es ist nicht möglich, Positionen koordinierter MultiMove-Systeme zu

streamen.• Absolute Accuracy wird nicht unterstützt, wenn das Streaming mit

EGMStreamStartgestartet wird. Es wird jedoch unterstützt, wenn es mitEGMActXXX\StreamStartgestartet wird.

• EGM Position Stream ist nicht mit EGM Path Correction kompatibel.• Mechanische Einheiten dürfen nicht aktiviert oder deaktiviert werden, wenn

EGM Position Stream aktiv ist.

Einschränkungen für EGM Position Guidance• Muss in einem exakten Punkt starten und enden.• Die erste Bewegung, die nach einem Neustart der Steuerung ausgeführt

wird, kann keine EGM-Bewegung sein.• Der Pose-Modus unterstützt nur 6-achsige Roboter.• Es ist nicht möglich, Linearbewegungen mit EGM Position

Guidanceauszuführen, da EGM Position Guidance keineInterpolatorfunktionalität enthält. Die tatsächliche Bahn des Roboters hängtvon der Roboterkonfiguration, der Startposition und den erzeugtenPositionsdaten ab.

• EGM Position Guidance unterstützt MultiMove nicht.

Fortsetzung auf nächster Seite376 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.1.1 ÜberblickFortsetzung

Page 377: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

• Es ist nicht möglich, EGM Position Guidance zu verwenden, um einemechanische Einheit in einem sich bewegenden Werkobjekt zu führen.

• Wenn der Roboter in die Nähe einer Singularität gelangt, d. h., wenn zweiRoboterachsen fast parallel sind, wird die Roboterbewegung mit einerFehlermeldung angehalten. In dieser Situation kann der Roboter nur aus derSingularität heraus verschoben werden.

Einschränkungen für EGM Path Correction• Unterstützt nur 6-achsige Roboter.• Muss in einem exakten Punkt starten und enden.• Das externe Gerät muss auf dem Roboter montiert sein.• Korrekturen können nur im Bahn-Koordinatensystem angewendet werden.• Es können nur Positionskorrekturen in Y und Z durchgeführt werden. Es ist

nicht möglich, Ausrichtungskorrekturen oder Korrekturen in X (derBahnrichtung/Tangente) durchzuführen.

Anwendungshandbuch - Steuerungssoftware IRC5 3773HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.1.1 Überblick

Fortsetzung

Page 378: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.1.2 Einführung in EGM Position Stream

Was ist EGM PositionsdatenstromEGM Position Stream ist nur für die UdpUc-Kommunikation verfügbar. Er bietetdie Möglichkeit, geplante und tatsächliche Positionsdaten der mechanischen Einheit(z. B. Roboter, Positionierer, Bahnbewegung...) periodisch von derRobotersteuerung zu senden. Der Inhalt der Nachricht wird in der GoogleProtobuf-Definitionsdatei egm.proto angegeben. Der zyklischeKommunikationskanal (UDP) kann in der hochprioritären Netzwerkumgebung derIRC5-Steuerung ausgeführt werden, was einen stabilen Datenaustausch bis 250Hz gewährleistet. Für jeden Bewegungstask muss ein Kommunikationskanalvorhanden sein.EGM Position Stream kann zusammen mit EGM Position Guidance genutzt werden.

378 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.1.2 Einführung in EGM Position Stream

Page 379: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.1.3 Einführung in EGM Position Guidance

Was ist EGM Position GuidanceEGM Position Guidance wurde für fortgeschrittene Benutzer entwickelt und bieteteine untergeordnete Schnittstelle zur Robotersteuerung, indem die Bahnplanung,die verwendet werden kann, wenn schnell reagierende Roboterbewegungenbenötigt werden, umgangen wird. EGM Position Guidance kann zum schnellenLesen aus und Schreiben in Positionen des Bewegungssystems verwendet werden.Dies kann je nach Robotertyp alle 4 ms mit einer Steuerungsverzögerung von 10bis 20 ms erfolgen. Die Referenzen können entweder durch die Verwendung vonAchsenwerten oder einer Position festgelegt werden. Die Position kann in jedemWerkobjekt, das während der EGM Position Guidance-Bewegung nicht bewegtwird, definiert werden.Das notwendige Filtern, die Überwachung von Referenzen und dieStatusbehandlung wird von EGM Position Guidance behandelt. Beispiele derStatusbehandlung sind Programmstart/-stopp, Not-Aus usw.Der Hauptvorteil von EGM Position Guidance ist die Schnelligkeit und die niedrigeVerzögerung/Wartezeit im Vergleich zu anderen Mitteln der externenBewegungssteuerung. Die Zeit zwischen dem Schreiben einer neuen Position, bisdiese angegebene Position beginnt, die tatsächliche Roboterposition zubeeinflussen, beträgt normalerweise etwa 20 ms.EGM behandelt Absolute Accuracy.

Was EGM Position Guidance nicht machtEGM geht direkt zur Erstellung der Motorreferenz, d. h. es bietet keine Bahnplanung.Dies bedeutet, dass Sie eine Bewegung nicht zu einem Positionsziel zuordnenkönnen und eine lineare Bewegung erwarten können. Es nicht möglich, entwedereine Bewegung einer bestimmten Geschwindigkeit oder eine Bewegung, die einebestimmte Zeit in Anspruch nehmen soll, zuzuordnen.Für das Anordnen dieser Bewegungen wird die Bahnplanung benötigt. Wirverweisen Sie auf die Standardbewegungsinstruktionen in RAPID, d. h. MoveL,MoveJ usw.

WARNUNG

Da die Bahnplanung von EGM in der Robotersteuerung umgangen wird, wirddie Roboterbahn direkt von der Benutzereingabe erstellt. Daher musssichergestellt werden, dass der Fluss von Positionsreferenzen, der an dieSteuerung gesendet wird, so gleichmäßig wie möglich ist. Der Roboter reagiertschnell auf alle Positionsreferenzen, die an die Steuerung gesendet werden,auch auf falsche Referenzen.

Anwendungshandbuch - Steuerungssoftware IRC5 3793HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.1.3 Einführung in EGM Position Guidance

Page 380: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.1.4 Einführung in EGM Path Correction

Was ist EGM Path CorrectionEGM Path Correction ermöglicht es dem Benutzer, eine programmierte Roboterbahnzu korrigieren. Das Gerät oder der Sensor, das/der zum Messen der tatsächlichenBahn verwendet wird, muss auf dem Werkzeugflansch montiert sein und es mussmöglich sein, das Sensorkoordinatensystem zu kalibrieren.Die Korrekturen werden im Bahn-Koordinatensystem durchgeführt, das seineX-Achse von der Tangente der Bahn erhält, die Y-Achse ist ein Kreuzprodukt derBahntangente und die Z-Richtung des aktiven Werkzeug-Koordinatensystem unddie Z-Achse ist das Kreuzprodukt der X-Achse und der Y-Achse.EGM Path correction muss an einem Feinpunkt beginnen und enden. DieSensormessungen können mit einer Vielfachen von 48 ms bereitgestellt werden.

380 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.1.4 Einführung in EGM Path Correction

Page 381: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.2 Verwendung von EGM

9.3.2.1 Grundlegende Methode

Grundlegende Methode für EGM Position StreamEGM Position Stream ist verfügbar, wenn UdpUc für die Kommunikation mit demexternen Gerät verwendet wird. EGM Position Stream kann auf zwei verschiedeneArten gestartet werden. Eine besteht darin, EGMStreamStart zu verwenden, dieandere, EGMActJoint\StreamStart oder EGMActPose\StreamStart. EGMPosition Stream wird automatisch durch EGMStop, EGMReset und wenn eineEGMRunJoint oder EGMRunPose Instruktion abgeschlossen ist, gestoppt. Esexistiert auch eine spezielle Instruktion, EGMStreamStop, um den Datenstrom zustoppen.Positions-Streaming unterstützt keine dynamische Änderung von Werkzeug oderLast. Wenn EGMStreamStart zum Starten des Positionsdatenstroms verwendetwird, werden das aktive Werkzeug und die Last an die Steuerung übergeben. WennEGMActJoint oder EGMActPose verwendet wird, werden das aktive Werkzeugund die Last (oder, wenn angegeben, das angegebene Werkzeug und/oder dieLast) an die Steuerung übergeben. Diese Werkzeug- und Lastdaten werden dannvon EGM zur Berechnung von Positionen verwendet, bis der Positionsdatenstromgestoppt wird. Für jeden Bewegungstask muss ein separater Positionsdatenstromgestartet werden.

Aktion

Registrieren Sie einen EGM-Client und erhalten Sie eine EGM-Identität. Diese Identitätwird dann für die Verknüpfung der Einrichtung, Aktivierung, Bewegung, Deaktivierungusw. für einen bestimmten EGM Zweck verwendet. Der EGM-Status ist immer nochEGM_STATE_DISCONNECTED.

1

Rufen Sie eine EGM-Einrichtungsinstruktion EGMSetupUC auf, um die Positionsdaten-quelle mithilfe der UdpUc-Protokollverbindung einzurichten. Der EGM-Status ändertsich zu EGM_STATE_CONNECTED.

2

Entweder:A Starten Sie den Positionsdatenstrom mit der Instruktion EGMStreamStart.B Starten Sie den Positionsdatenstrom mit EGMActJoint oder EGMActPose mit

dem optionalen Argument \StreamStart.

3

EGM Position Stream ist aktiv und sendet die tatsächliche und geplante Position, biser gestoppt wird.

4

A Bei Start mit EGMStreamStart:Den Positionsdatenstrom mit EGMStreamStopstoppen.

B Bei Start mit EGMActJoint oder EGMActPose:Stoppen Sie den Positionsdatenstrom mit EGMStop oder EGMReset.

5

Grundlegende Methode für EGM Position GuidanceDies ist die allgemeine Methode, um einen Roboter mithilfe eines externen Geräts(Sensor) zu bewegen bzw. zu führen, um das Ziel für die Bewegung vorzugeben.

Aktion

Verschieben Sie den Roboter an einen Feinpunkt.1

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3813HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.1 Grundlegende Methode

Page 382: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Aktion

Registrieren Sie einen EGM-Client und erhalten Sie eine EGM-Identität. Diese Identitätwird dann für die Verknüpfung der Einrichtung, Aktivierung, Bewegung, Deaktivierungusw. für einen bestimmten EGM Zweck verwendet. Der EGM-Status ist immer nochEGM_STATE_DISCONNECTED.

2

Rufen Sie eine EGM-Einrichtungsinstruktion auf, um die Positionsdatenquelle mithilfevon Signalen oder der UdpUc Protokollverbindung einzurichten. Der EGM-Status ändertsich zu EGM_STATE_CONNECTED.

3

Wählen Sie aus, ob die Position als Achsenwerte oder als eine Position angegebenwerden soll, und geben Sie die Konvergenzkriterien für die Position an, d. h. wann diePosition als erreicht betrachtet wird.

4

Wenn die Position ausgewählt wurde, definieren Sie, welche Koordinatensystemeverwendet werden, um die Zielposition zu definieren und auf welches Koordinatensys-tem die Bewegung angewendet werden soll.

5

Geben Sie dem Stopp-Modus ein optionales Timeout, und lassen Sie ihn die Bewegungselbst ausführen. Jetzt ist der EGM-Status EGM_STATE_RUNNING. Dies ist der Fall,wenn sich der Roboter bewegt.

6

Die EGM-Bewegung stoppt, wenn die Position als erreicht betrachtet wird, d. h. dieKonvergenzkriterien wurden erfüllt. Jetzt ist der EGM-Status wiederEGM_STATE_CONNECTED.

7

Grundlegende Methode für EGM Path CorrectionDies ist die allgemeine Methode für die Korrektur einer programmierten Bahn mitEGM Path Correction.

Aktion

Verschieben Sie den Roboter an einen Feinpunkt.1

Registrieren Sie einen EGM-Client und erhalten Sie eine EGM-Identität. Diese Identitätwird dann für die Verknüpfung der Einrichtung, Aktivierung, Bewegung, Deaktivierungusw. für einen bestimmten EGM Zweck verwendet. Der EGM-Status ist immer nochEGM_STATE_DISCONNECTED.

2

Rufen Sie eine EGM-Einrichtungsinstruktion auf, um die Positionsdatenquelle mithilfevon Signalen oder der UdpUc Protokollverbindung einzurichten. Der EGM-Status ändertsich zu EGM_STATE_CONNECTED.

3

Definieren Sie das Sensor-Korrekturkoordinatensystem, das immer ein Werkzeug-Koordinatensystem ist.

4

Führen Sie die Bewegung selbst aus. Der EGM-Status ist jetzt EGM_STATE_RUNNING.5

Beim nächsten Feinpunkt kehrt EGM in den Status EGM_STATE_CONNECTED zurück.

Um eine EGM-Identität zur Verwendung mit einem anderen Sensor freizugeben,müssen Sie EGM zurücksetzen, wodurch EGM auf den StatusEGM_STATE_DISCONNECTED zurückgesetzt wird.

6

382 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.1 Grundlegende MethodeFortsetzung

Page 383: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.2.2 Abarbeitungsstatus

BeschreibungDer EGM-Prozess hat drei verschiedene Status:

BeschreibungWert

Der EGM Zustand des spezifischen Prozesses ist undefiniert.EGM_STATE_DISCONNECTED

Es ist kein Einrichtungsvorgang aktiv.

Der spezifizierte EGM Prozess ist nicht aktiviert.EGM_STATE_CONNECTED

Die Einrichtung wurde vorgenommen, aber keine EGM-Be-wegung ist aktiv.

Der spezifizierte EGM Prozess wird bereits ausgeführt.EGM_STATE_RUNNING

Die EGM-Bewegung ist aktiv , d. h. der Roboter wird bewegt.

Die Übergänge zwischen den verschiedenen Status entsprechen deruntenstehenden Abbildung.

EGM_STATE_DISCONNECTED

EGM_STATE_CONNECTED

EGM_STATE_RUNNING

EGMReset

EGMRunJoint undEGMRunPose werdenbeendet oder EGMStop

SetupAI oder SetupAOoder SetupGI oder

SetupUC

EGMRunJoint oderEGMRunPose

xx1400001082

Die RAPID-Instruktionen EGMRunJoint und EGMRunPose beginnen vonEGM_STATE_CONNECTED und ändern ihren Status zuEGM_STATE_RUNNING, solangedie Konvergenzkriterien für die Zielposition nicht erreicht wurden oder dieTimeout-Zeit nicht abgelaufen ist. Wenn eine dieser Bedingungen erfüllt wird, wirdder EGM-Status erneut zu EGM_STATE_CONNECTED geändert, und die Instruktionendet, d. h. die RAPID-Ausführung fährt mit der nächsten Instruktion fort.Wenn EGM den Status EGM_STATE_RUNNING hat und die RAPID-Ausführunggestoppt wird, tritt EGM in den Status EGM_STATE_CONNECTED. BeimProgramm-Neustart kehrt EGM in den Status EGM_STATE_RUNNING zurück.Wenn der Programmzeiger unter Verwendung von PZ --> Main oder PZ --> Cursorbewegt wird, wird der Status EGM auf EGM_STATE_CONNECTED geändert, wennder Status EGM_STATE_RUNNING war.

Anwendungshandbuch - Steuerungssoftware IRC5 3833HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.2 Abarbeitungsstatus

Page 384: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.2.3 Eingangsdaten

Eingangsdaten für EGM Position GuidanceDie Quelle für die Eingangsdaten wird mithilfe der EGM-Einrichtungsinstruktionenausgewählt. Die drei ersten Instruktionen wählen eine Signalschnittstelle und dieletzte Instruktion eine UdpUc-Schnittstelle aus (User Datagram Protocol UnicastCommunication).

BeschreibungInstruktionen

Einrichtung analoger Eingangssignale für EGMEGMSetupAI

Einrichtung analoger Ausgangssignale für EGMEGMSetupAO

Einrichtung von Gruppeneingangssignalen für EGMEGMSetupGI

Einrichten des UdpUc-Protokolls für EGMEGMSetupUC

Eingangsdaten für EGM enthalten hauptsächlich Positionsdaten entweder alsAchsen oder als Position, d. h. kartesische Position plus Ausrichtung.Nachfolgend wird der Datenfluss für die Signalschnittstelle dargestellt:

Sensor I/O EGM Bewegungssteuerung

• Geben SiePositionswerte zu

Signalen ein(Vielfaches von 4

ms)

2) Lesen Sie dieneuen

Positionswerte ausden Signalen (AI,

AO, GI)

3) Geben Sie diePosition ein

1) Anforderung (Vielfaches von 4 ms)

AOGO

AIGI AO

ÜberRAPIDeingestellt

xx1400002016

1 Die Bewegungssteuerung ruft EGM auf.2 EGM liest die Positionswerte aus den Signalen.3 EGM schreibt die Positionsdaten in die Bewegungssteuerung.• Der Sensor schreibt die Positionsdaten in die Signale.

Wenn Signale als Datenquelle verwendet werden, ist der Eingang auf 6 für denRoboter begrenzt, d. h. 6 Achsenwerte oder 3 kartesische Positionswerte (x, y, z)plus 3 Eulersche Winkelwerte (rx, ry, rz) und bis zu 6 Werte für zusätzliche Achsen.Bei Verwendung des EGM-Achsenmodus bei einem 7-achsigen Roboter liefert derEingang der ersten zusätzlichen Achse die Position für die zusätzlichenRoboterachsen.

Fortsetzung auf nächster Seite384 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.3 Eingangsdaten

Page 385: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Der Datenfluss für die UdpUc-Schnittstelle wird nachfolgend dargestellt:

Sensor EGM Bewegungssteuerung

• Senden Siedie Position(UDP ≥ 4 ms) 5) Geben Sie die

Position ein

1) Anforderung (Vielfaches von 4 ms)

2) Lesen Sie Feedback4) Prüfen Sie auf

neue Position

3) Senden SieFeedback

xx1400002017

1 Die Bewegungssteuerung ruft EGM auf.2 EGM liest die Feedbackdaten aus der Bewegungssteuerung.3 EGM sendet die Feedbackdaten an den Sensor.4 EGM überprüft die UDP-Warteschlange auf Meldungen vom Sensor.5 Wenn eine Meldung vorliegt, liest EGM die nächste Meldung und Schritt 5

schreibt die Positionsdaten in die Bewegungssteuerung. Wenn keinePositionsdaten gesendet wurden, fährt die Bewegungssteuerung mit derVerwendung der letzten Positionsdaten, die zuvor von EGM geschriebenwurden, fort.

• Der Sensor sendet Positionsdaten an die Steuerung (EGM). Wir empfehlen,dies mit Schritt 3 zu verbinden. Dann befindet sich der Sensor in Phase mitder Steuerung.

Die Steuerungsschleife beruht auf dem folgenden Verhältnis zwischenGeschwindigkeit und Position:

k - Faktor

speed = k * (pos_ref – pos) + speed_ref pos_ref - Referenzpositionpos - gewünschte Positionspeed_ref - Referenzgeschwindigkeit

Instruktionen zur Implementierung des UdpUc-Protokolls für ein externes Gerätfinden Sie unterDas EGM-Sensorprotokoll auf Seite391. Dort finden Sie außerdemeine Beschreibung der Eingangsdaten.

Eingangsdaten für EGM Path CorrectionDie Quelle für die Eingangsdaten wird mithilfe der EGM-Einrichtungsinstruktionenausgewählt. Die drei ersten Instruktionen wählen eine Signalschnittstelle und dieletzte Instruktion eine UdpUc-Schnittstelle aus (User Datagram Protocol UnicastCommunication).

BeschreibungInstruktionen

Einrichtung analoger Eingangssignale für EGMEGMSetupAI

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3853HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.3 Eingangsdaten

Fortsetzung

Page 386: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungInstruktionen

Einrichtung analoger Ausgangssignale für EGMEGMSetupAO

Einrichtung von Gruppeneingangssignalen für EGMEGMSetupGI

Einrichten des UdpUc-Protokolls für EGMEGMSetupUC

Eingangsdaten für EGM enthalten vor allem Positionsdaten.Nachfolgend wird der Datenfluss für die Signalschnittstelle dargestellt:

Sensor I/O EGM Bewegungssteuerung

• Geben SiePositionswerte zu

Signalen ein(Vielfaches von 4

ms)

2) Lesen Sie dieneuen

Positionswerte ausden Signalen (AI,

AO, GI)

3) Geben Sie diePosition ein

1) Anforderung (Vielfaches von 48 ms)

AOGO

AIGI AO

ÜberRAPIDeingestellt

xx1400002016

1 Die Bewegungssteuerung ruft EGM auf.2 Die Messdaten (Y- und Z-Werte) werden aus den Signalen gelesen oder vom

Sensor in Vielfachen von etwa 48 abgerufen.3 EGM berechnet die Positionskorrektur und schreibt diese in die

Bewegungssteuerung. Wenn das UdpUc-Protokoll verwendet wird, wirdFeedback an den Sensor gesendet.

386 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.3 EingangsdatenFortsetzung

Page 387: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.2.4 Ausgangsdaten

BeschreibungAusgangsdaten sind nur für die UdpUc-Schnittstelle verfügbar.Instruktionen zur Implementierung des UdpUc-Protokolls für ein externes Gerätfinden Sie unterDas EGM-Sensorprotokoll auf Seite391. Dort finden Sie außerdemeine Beschreibung der Ausgangsdaten.

Anwendungshandbuch - Steuerungssoftware IRC5 3873HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.4 Ausgangsdaten

Page 388: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.2.5 Konfiguration

Konfiguration für den EGM-PositionsdatenstromDie Standardkonfiguration, die in RobotWarevordefiniert ist, funktioniert für jedesPositions-Streaming. Sie funktioniert auch mit der gleichen Konfiguration wie fürdie EGM-Positionsdatensteuerung.

Konfiguration für EGM Position GuidanceDas EGM-Verhalten kann mithilfe der Systemparameter vom TypExternal MotionInterface Data Parametergruppe Motion beeinflusst werden. Eine Beschreibungaller verfügbarer EGM-Parameter finden Sie unter Systemparameter auf Seite396.Nachfolgend finden Sie eine genauere Beschreibung der beiden Parameter, diedie EGM-Steuerungsschleife beeinflussen. Die Abbildung zeigt eine vereinfachteAnsicht des EGM-Steuerungssystems.

EGM-Steuerung

Geschwindigkeitsvorsteuerung

Positiongain

Servo-Steuerung

Roboter

Sensor

Referenzgeschwindigkeit

+ LP filter

xx1400001083

Der Parameter Position Gain (Positionsverstärkung)in der Abbildung beeinflusst die Ansprechempfindlich-keit in der Bewegung zur Zielposition, die vom Sensorin Bezug auf die aktuelle Roboterposition vorgegebenwird. Je höher der Wert, desto schneller die Reaktion.

Default proportional Position Gain

Der Parameter LP Filter in der Abbildung ist der Stan-dardwert, der verwendet wird, um die Geschwindig-keitsleistung aus EGM zu filtern.

Default Low Pass Filter BandwithTime

Konfiguration für EGM Path CorrectionBei der Konfiguration für EGM Path Correction muss Level auf „Path“ (Bahn) gesetztsein. Keiner der anderen Werte wird verwendet.

388 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.5 Konfiguration

Page 389: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.2.6 Koordinatensysteme

Rahmen für den EGM-PositionsdatenstromPositions-Streaming unterstützt keine dynamische Änderung von Werkzeug oderLast. Wenn EGMStreamStart zum Starten des Positionsdatenstroms verwendetwird, werden das aktive Werkzeug und die Last an die Steuerung übergeben. WennEGMActJoint oder EGMActPose verwendet wird, werden das aktive Werkzeugund die Last oder das angegebene Werkzeug und/oder die Last an die Steuerungübergeben. Diese Werkzeug- und Lastdaten werden dann von EGM zur Berechnungvon Positionen verwendet, bis der Positionsdatenstrom gestoppt wird.

Koordinatensysteme für EGM Position GuidanceEGM kann in zwei verschiedenen Modi ausgeführt werden, Achsenmodus undPositionsmodus. Der folgende Abschnitt gilt nur für den EGM-Positionsmodus.Für den Achsenmodus werden keine Referenz-Koordinatensysteme benötigt, dabeide Sensorwerte und die Positionswerte Achsenwinkel sind, die relativ zurKalibrierposition jeder Achse in Grad angegeben werden. Für den Positionsmoduswerden jedoch Referenz-Koordinatensysteme benötigt. Die Messungen des Sensorsund die Richtungen für die Positionsänderung können nur relativ zuReferenz-Koordinatensystemen angegeben werden.Die RAPID-Instruktion EGMActPose definiert alle Koordinatensysteme, die in EGMverfügbar sind:

BeschreibungKoordinatensystem

Die Werkzeugdaten, die für den EGM-Prozess verwendetwerden, werden mit dem optionalen \Tool-Argument defi-niert.

Werkzeug

Die Werkobjektdaten, die für den EGM-Prozess verwendetwerden, werden mit dem optionalen \Wobj-Argument defi-niert.

Werkobjekt

Das Koordinatensystem, das verwendet wird, um die endgül-tige Bewegungsrichtung anzugeben, wird vom obligatori-schen CorrFrame-Argument definiert.

Korrektur

Das Koordinatensystem, das verwendet wird, um die Sens-ordaten auszuwerten, wird vom obligatorischenSensorFrame-Argument definiert.

Sensor

Werkzeuge und WerkobjekteDas Werkzeug und das Werkobjekt können nur in zwei Kombinationen definiertwerden:

1 Wenn das Werkzeug am Roboter angeschlossen wird, muss das Werkobjektbefestigt werden.

2 Wenn das Werkzeug befestigt wird, muss das Werkobjekt am Roboterangeschlossen werden.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3893HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.6 Koordinatensysteme

Page 390: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Hinweis

Es ist nicht möglich, ein Werkobjekt oder Werkzeug zu verwenden, das an eineranderen mechanischen Einheit als dem EGM-Roboter angeschlossen ist.

Vordefinierte KoordinatensystemtypenFür die Koordinatensysteme CorrFrame und SensorFrame ist es ebenfallsnotwendig zu wissen, worauf sie sich beziehen. Diese Informationen werden mithilfedes vordefinierten Koordinatensystemtyps im Datentyp egmframetype angegeben:

BeschreibungWert

Das Koordinatensystem wird relativ zum Basis-Koordinatensystem(Positionsmodus) definiert.

EGM_FRAME_BASE

Das Koordinatensystem wird relativ zu tool0 (Positionsmodus)definiert.

EGM_FRAME_TOOL

Das Koordinatensystem wird relativ zum verwendeten Werkobjekt(Positionsmodus) definiert.

EGM_FRAME_WOBJ

Das Koordinatensystem wird relativ zum Weltkoordinatensystem(Positionsmodus) definiert.

EGM_FRAME_WORLD

Die Werte sind Achsenwerte (Achsenmodus).EGM_FRAME_JOINT

Koordinatensysteme für EGM Path CorrectionEGM Path Correction kann nur im Pose-Modus ausgeführt werden.Die RAPID-Instruktion EGMActMove definiert den einzigen Rahmen, der für dieEGM Path Correctionr benötigt wird. Werkzeug- und Arbeitsobjekt sind in EGMMoveLoder EGMMoveCangegeben.

Werkzeuge und WerkobjekteDas Werkzeug muss mit dem Roboter verbunden sein, und das Werkobjekt kanndurch eine andere mechanische Einheit fixiert oder bewegt werden.

390 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.2.6 KoordinatensystemeFortsetzung

Page 391: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.3 Das EGM-Sensorprotokoll

BeschreibungDas EGM-Sensorprotokoll wurde für eine schnelle Kommunikation zwischen einerRobotersteuerung und einem Kommunikationsendpunkt mit minimalenMehraufwand entwickelt.Der Kommunikationsendpunkt ist normalerweise ein Sensor, daher wird von nunan Sensor anstelle des Kommunikationsendpunkts verwendet. Manchmal ist derSensor mit einem PC verbunden, und der PC überträgt die Sensordaten an denRoboter. Der Zweck des Sensorprotokolls ist es, Sensordaten häufig zwischen derRobotersteuerung und den Sensoren zu kommunizieren. EGM sensor protocolverwendet Google Protocol Buffers für die Codierung und UDP alsTransportprotokoll. Google Protocol Buffers wurde aufgrund seiner Geschwindigkeitund Sprachneutralität ausgewählt. UDP wurde als Transportprotokoll ausgewählt,da die gesendeten Daten Echtzeit-Daten sind, die mit hoher Frequenz gesendetwerden. Wenn Pakete verloren gehen, ist es nicht hilfreich die Daten erneut zusenden.Die EGM sensor protocol-Datenstrukturen werden von der EGM proto-Dateidefiniert. Sensorname, IP-Adresse und Portnummer von Sensoren werden in denSystemparametern konfiguriert. Es können maximal acht Sensoren konfiguriertwerden.Der Sensor verhält sich wie ein Server und er muss eine erste Meldung von derRobotersteuerung empfangen, bevor er etwas an den Roboter senden kann.Meldungen können nach dieser ersten Meldung unabhängig voneinander in beideRichtungen gesendet werden. Anwendungen, die das Protokoll verwenden, könnendie Verwendung beschränken. Das Protokoll selbst verfügt jedoch nicht über eineintegrierte Synchronisierung von Anforderungsantworten oder über eineÜberwachung von verlorenen Meldungen. Es gibt keine besonderen Meldungenzur Verbindung oder zur Trennung, sondern nur Daten, die unabhängig voneinanderin beide Richtungen fließen können. Die erste Meldung vom Roboter ist eineDatenmeldung. Man muss auch bedenken, dass ein Sender einer UDP-Meldungweiterhin Meldungen sendet, auch wenn die Warteschlange des Empfängersmöglicherweise bereits voll ist. Der Empfänger muss sicherstellen, dass er seineWarteschlange leert.Standardmäßig sendet und liest der Roboter die Daten vom Sensor alle 4Millisekunden, unabhängig davon, wann die Daten vom Sensor gesendet werden.Diese Zykluszeit kann auf ein Vielfaches von 4 ms geändert werden, indem dasoptionale Argument \SampleRate der RAPID Instruktionen EGMStreamStart,EGMActJoint oder EGMActPose verwendet wird.Für jeden Bewegungstask ist ein separater UDP-Kanal erforderlich.

Google Protocol BuffersGoogle Protocol Buffers oder Protobuf ist eine Möglichkeit, Daten auf sehr effizienteWeise zu serialisieren/deserialisieren. Protobuf ist im Allgemeinen 10–100-malschneller als XML. Im Internet gibt es viele Informationen über Protobuf undGoogleoverview ist ein guter Anfang.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3913HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.3 Das EGM-Sensorprotokoll

Page 392: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Kurz gesagt, Meldungsstrukturen werden in einer .proto-Datei beschrieben. Die.proto-Datei wird anschließend kompiliert. Der Compiler erzeugt einenserialisierten/deserialisierten Code, der anschließend von der Anwendungverwendet wird. Die Anwendung liest eine Meldung aus dem Netzwerk, führt dieDeserialisierung aus, erzeugt eine Meldung, ruft die Serialisierungsmethode aufund sendet anschließend die Meldung.Es ist möglich, Protobuf in den meisten Programmiersprachen zu verwenden, daProtobuf eine neutrale Sprache ist. Je nach Sprache gibt es viele verschiedeneImplementierungen.Der Hauptvorteil von Protobuf ist, dass Protobuf-Meldungen in ein Binärformatserialisiert werden, wodurch das Debuggen von Paketen mithilfe einerNetzwerkanalyse erheblich erschwert wird.

Tools von DrittanbieternBis auf das Google C++-Werkzeug haben wir außerdem die folgenden Werkzeugeund Codes von Drittanbietern überprüft:

• Nanopb erzeugt einen C-Code. Eine dynamische Speicherbelegung wirdnicht benötigt.

• Protobuf-net, eine Google Protobuf .NET-Bibliothek.• Protobuf-csharp eine Google Protobuf .NET-Bibliothek, C# API ist vergleichbar

mit Google C++ API.

Hinweis

Beachten Sie, dass der oben genannte Code Open Source ist, was bedeutet,dass Sie in der Lizenz prüfen müssen, ob der Code mit dem Produkt verwendetwerden darf.

EGM Beschreibung des SensorprotokollsDas EGM-Sensorprotokoll ist kein Anforderungs- bzw. Antwortprotokoll. Der Sensorkann Daten auf jeder Frequenz senden, nachdem der Sensor die erste Meldungvom Roboter empfängt.Das EGM-Sensorprotokoll verfügt über zwei Hauptdatenstrukturen,EgmRobot undEgmSensor. EgmRobot wird vom Roboter gesendet und EgmSensor wird vomSensor gesendet. Alle Meldungsfelder in beiden Datenstrukturen sind als optionaldefiniert, was bedeutet, dass ein Feld in einer Meldung vorhanden sein kann odernicht. Anwendungen, die Google Protocol Buffers verwenden, müssen überprüfen,ob optionale Felder vorhanden sind.EgmHeader ist EgmRobot und EgmSensor gemeinsam.

message EgmHeader

{

optional uint32 seqno = 1; // sequence number (to be able to findlost messages)

optional uint32 tm = 2; // time stamp in milliseconds

enum MessageType {

MSGTYPE_UNDEFINED = 0;

Fortsetzung auf nächster Seite392 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.3 Das EGM-SensorprotokollFortsetzung

Page 393: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

MSGTYPE_COMMAND = 1; // for future use

MSGTYPE_DATA = 2; // sent by robot controller

MSGTYPE_CORRECTION = 3; // sent by sensor

}

optional MessageType mtype = 3 [default = MSGTYPE_UNDEFINED];

}

BeschreibungVariable

Sequenznummer.seqno

Die Anwendungen müssen die Sequenznummer für jede Meldung, die siesenden, um eins erhöhen. Dadurch kann nach verlorenen Meldungen ineiner Reihe von Meldungen gesucht werden.

Zeitstempel in Millisekunden.tm

(Kann zur Überwachung von Verzögerungen verwendet werden).

Meldungstyp.mtype

Muss vom Sensor auf MSGTYPE_CORRECTION eingestellt werden und wirdvon der Robotersteuerung auf MSGTYPE_DATA eingestellt.

Zur Google protobuf-Datenstruktur kann das wiederholte Element gehören, alsoeine Liste von Elementen des gleichen Typs. Die Anzahl von wiederholtenElementen beträgt maximal sechs Elemente in EGM sensor protocol.Siehe egm.proto-Datei für eine Beschreibung von EgmRobot und EgmSensor,UdpUc Codebeispiele auf Seite 413.

Erstellen eines EGM-Sensorkommunikationsendpunkts unter Verwendung von .NetIn diesem Handbuch wird vorausgesetzt, dass Sie mithilfe von Visual Studioerstellen und kompilieren und dass Sie mit diesem Arbeitsgang vertraut sind.Nachfolgend finden Sie eine kurze Beschreibung zur Installation und Erstellungeiner einfachen Testanwendung unter Verwendung von protobuf-csharp-port.

Aktion

Herunterladen von protobuf-csharp-Binäreinheiten aus:1https://code.google.com/p/protobuf-csharp-port/.

Entpacken Sie die zip-Datei.2

Kopieren Sie die egm.proto-Datei in einen Unterkatalog, in dem protobuf-csharp ent-zippt wurde, z. B. ~\protobuf-csharp\tools\egm.

3

Starten Sie eine Windows-Konsole im Werkzeugverzeichnis, z. B. ~\protobuf-cs-harp\tools.

4

Erzeugen Sie eine EGM C#-Datei (egm.cs) aus der egm.proto-Datei, indem Sie in dieWindows-Konsole tippen:

5

protogen .\egm\egm.proto --proto_path=.\egm

Erstellen Sie eine C#-Konsolenanwendung in Visual Studio.6Erstellen Sie eine Windows-Konsolenanwendung C# in Visual Studio, z. B. EgmSen-sorApp.

Installieren Sie NuGet, klicken Sie in Visual Studio auf Werkzeuge und anschließendauf Extension Manager (Erweiterungsmanager). Gehen Sie zu Online, suchen Sienach NuGet Package Manager extension, und klicken Sie auf Download.

7

Installieren Sie protobuf-csharp in der Lösung für die C# Windows Console-Anwendungunter Verwendung von NuGet. Die Lösung muss in Visual Studio geöffnet werden.

8

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3933HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.3 Das EGM-Sensorprotokoll

Fortsetzung

Page 394: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Aktion

Wählen Sie in Visual Studio Tools, Nuget Package Manager (NuGet-Paket-Manager)und Package Manager Console (Paket-Manager-Konsole) aus.

9

Typ PM>Install-Package Google.ProtocolBuffers

Fügen Sie die generierte Datei egm.cs zum Visual Studio-Projekt hinzu (vorhandenesElement hinzufügen).

10

Kopieren Sie den Beispielcode in die Visual Studio Windows Console-Anwendungs-datei (EgmSensorApp.cpp). Anschließend kompilieren, verknüpfen und führen Siediese aus.

11

Erstellen eines EGM-Sensorkommunikationsendpunkts unter Verwendung von C++Beim Erstellen unter Verwendung von C++ werden keine weiteren Bibliothekenvon Drittanbietern benötigt.C++ wird von Google unterstützt. Es kann etwas kompliziert sein, dieGoogle-Werkzeuge unter Windows zu erstellen. Nachfolgend finden Sie jedocheine Anleitung für die Erstellung von protobuf für Windows.Gehen Sie beim Erstellen von libprotobuf.lib und protoc.exe wie folgt vor:

Aktion

Führen Sie Google protoc aus, um Zugriffsklassen zu generieren, protoc--cpp_out=. egm.proto

1

Erstellen einer win32-Konsolenanwendung2

Fügen Sie die Protobuf-Quelle als Include-Verzeichnis hinzu.3

Fügen Sie die erzeugte egm.pb.cc-Datei zum Projekt hinzu. Schließen Sie die Dateiaus den vorkompilierten Headern aus.

4

Kopieren Sie den Code aus der egm-sensor.cpp-Datei. Siehe UdpUc Codebeispieleauf Seite 413.

5

Kompilieren und ausführen.6

Konfigurieren von UdpUc-GerätenUdpUc kommuniziert mit maximal acht Geräten über Udp. Die Geräte verhaltensich wie Server und die Robotersteuerung wie ein Client. Die Robotersteuerunginitiiert die Verbindung mit dem Sensor.Jeder UDP-Kanal ist als Gerät definiert, d. h. Sie müssen für jeden Bewegungstask,bei der Sie EGM verwenden möchten, ein Gerät einrichten.

SystemparameterDies ist eine kurze Beschreibung der Parameter, die beim Konfigurieren einesGeräts verwendet werden. Weitere Informationen über die Parameter sieheTechnisches Referenzhandbuch - Systemparameter.Diese Parameter gehören zum Typ Transmission Protocol in der ParametergruppeCommunication.

BeschreibungParameter

Der Name des Übertragungsprotokolls.NameZum Beispiel EGMsensor.

Der Typ des Übertragungsprotokolls.TypeEs muss UDPUC sein.

Fortsetzung auf nächster Seite394 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.3 Das EGM-SensorprotokollFortsetzung

Page 395: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

Der Name des seriellen Ports, der für den Sensor verwendetwird.

Serial Port

Dieser bezieht sich auf den Parameter Name im Typ SerialPort.Für IP-basierte Übertragungsprotokolle (d. h. Type hat denWert TCP/IP, SOCKDEV, LTAPPTCP oder UDPUC), wirdSerial Port nicht verwendet und hat den Wert N/A.

Die IP-Adresse des Remote-Geräts.Remote Address

Die IP-Portnummer, die das Remote-Gerät geöffnet hat.Remote Port Number

KonfigurationsbeispielDas Gerät, das die Eingangsdaten für EGM enthält, muss folgendermaßen alsUdpUc-Gerät konfiguriert werden:

Remote Port NumberRemote AddressSerial PortTypeName

6510192.168.10.20N/AUDPUCUCdevice

6511192.168.10.20N/AUDPUCUCdevice2

6510192.168.10.21N/AUDPUCUCdevice3

Wenn EGM Position Stream oder EGM Position Guidance in einemMultiMove-System für mehr als eine RAPID-Task verwendet wird, muss ein Gerätfür jede RAPID-Task konfiguriert werden. Die Gerätenamen und entweder dieFernadresse oder der Fernport oder beides müssen Folgendes sein.Nach dieser Konfigurationsänderung muss die Steuerung neu gestartet werden.Das Gerät kann jetzt von EGM verwendet werden, um einen Roboter zu führen.Weitere Informationen finden Sie unter Verwendung von EGM Position Guidancemit einem UdpUc-Gerät auf Seite 402.

Anwendungshandbuch - Steuerungssoftware IRC5 3953HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.3 Das EGM-Sensorprotokoll

Fortsetzung

Page 396: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.4 Systemparameter

Über die SystemparameterDies ist eine kurze Beschreibung der Systemparameter, die von Externally GuidedMotion verwendet werden. Weitere Informationen über die Parameter finden Sieunter Technisches Referenzhandbuch - Systemparameter.

Typ External Motion Interface DataDie Systemparameter, die vonExternally GuidedMotion verwendet werden, gehörenzum Typ External Motion Interface Data in der Parametergruppe Motion.

BeschreibungParameter

Der Name der Daten der externen Bewegungsschnittstelle.Auf diesen Namen wird vom Parameter ExtConfigName inden RAPID-Instruktionen EGMSetupAI, EGMSetupAO,EGMSetupGI und EGMSetupUC verwiesen.

Name

Die externe Bewegungsschnittstelle bestimmt die Systeme-bene, in der Korrekturen durchgeführt werden.

Level

Ebene 0 entspricht Rohkorrekturen, die kurz vor der Servo-Steuerung hinzugefügt wurden.Ebene 1 bezieht sich auf ein zusätzliches Filtern der Korrek-turen, jedoch leitet es ebenso einige zusätzliche Verzögerun-gen und Wartezeiten ein.Für die Bahnkorrektur muss Ebene 2 verwendet werden.

Gibt an, ob die Ausführung der externen Bewegungsschnitt-stelle automatisch neu gestartet wird, nachdem sich dieSteuerung im Status „Motoren aus“ befunden hat, beispiels-weise nach einem Not-Aus.

Do Not Restart After MotorsOff

Bestimmt, ob die Achsen, die zurzeit von der externen Be-wegungsschnittstelle ausgeführt werden, auf die program-mierte Position zurückkehren sollten, sobald die Program-mabarbeitung gestoppt wird.

Return to ProgrammedPositi-on when Stopped

Wenn False angezeigt wird, stoppen die Achsen an der ak-tuellen Position.Wenn True angezeigt wird, bewegen sich die Achsen inRichtung des programmierten Feinpunkts.

Definiert die standardmäßige Gesamtzeit zum Stoppen derBewegungen der externen Bewegungsschnittstelle, wenndie Abarbeitung durch die externe Bewegungsschnittstellegestoppt wird.

Default Ramp Time

Dieser Wert wird genutzt, um zu bestimmen, wie schnell dieGeschwindigkeitsleistung der externen Bewegung auf nullerhöht werden soll, wenn die Programmabarbeitung gestopptwird, und wie schnell die Achsen zur programmierten Positi-on zurückkehren, wenn Return to Programmed Positionwhen Stopped True ist.

Definiert die standardmäßige proportionale Verstärkung derFeedbacksteuerung der Position der externen Bewegungs-schnittstelle. Weitere Informationen finden Sie unter Konfi-guration auf Seite 388.

Default Proportional PositionGain

Definiert die Standard-Brandbreite des Tiefpassfilters, derverwendet wird, um die Geschwindigkeitsleistung der Abar-beitung der externen Bewegungsschnittstelle zu filtern.Weitere Informationen finden Sie unter Konfiguration aufSeite 388.

Default Low Pass FilterBandwidth

396 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.4 Systemparameter

Page 397: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.5 RAPID Komponenten

Informationen zu den RAPID-KomponentenDies ist ein Überblick über alle Instruktionen, Funktionen und Datentypen inExternally Guided Motion.Weitere Informationen finden Sie unter Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

Instruktionen

BeschreibungInstruktionen

EGMActJoint aktiviert einen spezifischen EGM-Prozess und defi-niert statische Daten für die sensorgeführte Achsenbewegung, d.h., Daten, die selten zwischen den verschiedenen EGM-Bewegungenverändert werden.

EGMActJoint

EGMActMove wird verwendet, um einen bestimmten EGM-Prozesszu aktivieren und definiert statische Daten für die Bewegung mitBahnkorrektur, d. h. Daten die sich nicht häufig zwischen verschie-denen EGM Bahnkorrekturbewegungen ändern.

EGMActMove

EGMActPose aktiviert einen spezifischen EGM-Prozess und definiertstatische Daten für die sensorgeführte Positionsbewegung, d. h.,Daten, die selten zwischen den verschiedenen EGM-Bewegungenverändert werden.

EGMActPose

EGMGetId wird verwendet, um eine EGM-Identität zu reservieren(EGMid). Diese Identität wird dann in allen anderen EGM RAPID In-struktionen und Funktionen verwendet, um einen bestimmtenEGM-Prozess zu identifizieren, der mit dem RAPID-Bewegungstaskverknüpft ist, von dem er verwendet wird.

EGMGetId

egmident wird über den Namen identifiziert, d. h., ein zweiter oderdritter Aufruf von EGMGetId mit der gleichen egmident wird wedereinen neuen EGM Prozess reservieren, noch den Inhalt verändern.

EGMMoveC wird verwendet, um den Werkzeugarbeitspunkt (TCP)kreisförmig mit Bahnkorrektor an ein vorgegebenes Ziel zu bewegen.Während der Bewegung bleibt die Orientierung in Relation zumKreisbogen für gewöhnlich unverändert.

EGMMoveC

EGMMoveL wird verwendet, um den Werkzeugarbeitspunkt (TCP) li-near mit Bahnkorrektur an ein vorgegebenes Ziel zu bewegen. Wennder TCP stationär bleiben soll, kann mit dieser Instruktion auch dasWerkzeug umorientiert werden.

EGMMoveL

EGMReset setzt einen spezifischen EGM-Prozess zurück (EGMid),d. h., die Reservierung wird aufgehoben.

EGMReset

EGMRunJoint führt eine sensorgeführte Achsenbewegung von ei-nem Feinpunkt für einen spezifischen EGM-Prozess durch (EGMid)und definiert, welche Achsen bewegt werden.

EGMRunJoint

EGMRunPose führt eine sensorgeführte Positionsbewegung von ei-nem Feinpunkt für einen spezifischen EGM-Prozess durch (EGMid)und definiert, welche Richtungen und Orientierungen verändertwerden.

EGMRunPose

EGMSetupAIwird verwendet, um analoge Eingangssignale für einenspezifischen EGM Prozess einzurichten (EGMid), die als Quelle fürdie Positionszielwerte dienen, nach denen sich der Roboter (undbis zu 6 zusätzliche Achsen) richten.

EGMSetupAI

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3973HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.5 RAPID Komponenten

Page 398: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungInstruktionen

EGMSetupAO wird verwendet, um analoge Ausgangssignale füreinen spezifischen EGM-Prozess einzurichten (EGMid), die alsQuelle für die Positionszielwerte dienen, nach denen sich der Robo-ter und bis zu 6 zusätzliche Achsen richten.

EGMSetupAO

EGMSetupGIwird verwendet, um Gruppeneingangssignale für einenspezifischen EGM-Prozess einzurichten (EGMid), die als Quelle fürdie Positionszielwerte dienen, nach denen sich der Roboter und biszu 6 zusätzliche Achsen richten.

EGMSetupGI

EGMSetupLTAPPwird verwendet, um ein LTAPP-Protokoll für einenspezifischen EGM-Prozess (EGMid) als Bahnkorrekturen einzurich-ten.

EGMSetupLTAPP

EGMSetupUC wird verwendet, um ein UdpUc Gerät für einen spezi-fischen EGM-Prozess einzurichten (EGMid), das als Quelle für diePositionszielwerte dient, nach dem sich der Roboter und bis zu 6zusätzliche Achsen richten. Die Position kann in Achsen fürEGMRunJoint oder im kartesischen Format für EGMRunPose ange-geben werden.

EGMSetupUC

EGMStop hält einen spezifischen EGM-Prozess an (EGMid).EGMStop

EGMStreamStart startet das Streaming von Positionsdaten füreinen spezifischen EGM-Prozess (EGMid).

EGMStreamStart

EGMStreamStop stoppt das Streaming von Positionsdaten für einenspezifischen EGM-Prozess (EGMid).

EGMStreamStop

EGMWaitCond wird verwendet, um auf einen spezifischen EGM-Prozess (EGMid) zu warten.

EGMWaitCond

Funktionen

BeschreibungFunktionen

EGMGetState ruft den Status eines EGM-Prozesses ab (EGMid).EGMGetState

Datentypen

BeschreibungDatentypen

egmframetype wird verwendet, um Koordinatensystemtypen fürKorrekturen und Sensormessungen in EGM zu definieren.

egmframetype

egmident identifiziert einen spezifischen EGM-Prozess.egmident

egm_minmaxwird für die Definition der Konvergenzkriterien für EGMbis zum Ende verwendet.

egm_minmax

egmstate wird verwendet, um den Status für Korrekturen undSensormessungen in EGM zu definieren.

egmstate

egmstopmode wird verwendet, um die Stopp-Modi für Korrekturenund Sensormessungen in EGM zu definieren.

egmstopmode

398 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.5 RAPID KomponentenFortsetzung

Page 399: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.6 RAPID Codebeispiele

9.3.6.1 Verwendung des EGM-Positionsdatenstroms

BeschreibungDas Gerät, das die Eingangsdaten für EGM enthält, muss zunächst als UdpUc-Gerätkonfiguriert werden. Siehe Konfigurieren von UdpUc-Geräten auf Seite 394.Jetzt kann das Gerät von EGM verwendet werden, um Positionen von mechanischenEinheiten zu einem externen Gerät zu streamen. Einfache Beispiele finden Sieunten.Positionen können von mehreren Bewegungstasks gestreamt werden, aber Siemüssen für jeden Bewegungstask einen Kommunikationskanal verwenden.

Beispiele

Verwendung von EGMStreamStart und EGMStreamStop für eine mechanische EinheitDiese Methode ist der einfachste Weg zur Verwendung von EGM Position Stream,ist jedoch nicht genau für Roboter mit Absolute Accuracy oder hoher Last.

VAR egmident egmID1;

EGMGetId egmID1;

! Set up the EGM data source: UdpUc server using device "UCdevice"

! and configuration "default"

EGMSetupUC ROB_1, egmID1, "default", "UCdevice"\Joint;

! Start the position stream for T_ROB1 including active

! external axis. Cycle time is 16 ms.

EGMStreamStart\SampleRate:=16 egmID;

! Run your program – streaming is active

MoveAbsJ jpos20, v100, z20, Weldgun;

MoveAbsJ jpos10\NoEOffs, v1000, fine, Weldgun;

! Stop the position stream – but it is not necessary if you

! want to stream until the controller shuts down

EGMStreamStop egmID1;

EGMReset egmID1;

Verwendung von EGMActXX\StreamStart für eine mechanische EinheitDiese Methode wird bevorzugt, wenn Sie einen Roboter mit Absolute Accuracyhaben, da die RAPID-Instruktionen EGMActPose und EGMActJoint die Daten fürWerkzeug und Last an die Steuerung weitergeben.

VAR egmident egmID1;

! Used tool

TASK PERS tooldata Weldgun:=[TRUE,[[12.3313,-0.108707,416.142],

[0.903899,-0.00320735,0.427666,0.00765917]],

[2.6,[-111.1,24.6,386.6],[1,0,0,0],0,0,0.072]];

! limits for cartesian convergence: +-1 mm

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 3993HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.1 Verwendung des EGM-Positionsdatenstroms

Page 400: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

CONST egm_minmax egm_minmax_lin1:=[-1,1];

! limits for orientation convergence: +-2 degrees

CONST egm_minmax egm_minmax_rot1:=[-2,2];

! Correction frame offset: none

VAR pose corr_frame_offs:=[[0,0,0],[1,0,0,0]];

EGMGetId egmID1;

! Set up the EGM data source: UdpUc server using device "UCdevice"

! and configuration "default"

EGMSetupUC ROB_1, egmID1, "default", "UCdevice"\Joint;

! Correction frame is the World coordinate system and the sensor

! measurements are relative to the tool frame of the used tool

! (Weldgun). Start the position stream for T_ROB1 including active

! external axis. Cycle time is 16 ms.

EGMActPose egmID1\StreamStart\Tool:= Weldgun, corr_frame_offs,

EGM_FRAME_WORLD, Weldgun.tframe, EGM_FRAME_TOOL

\x:=egm_minmax_lin1\y:=egm_minmax_lin1\z:=egm_minmax_lin1

\rx:=egm_minmax_rot1\ry:=egm_minmax_rot1\rz:=egm_minmax_rot1

\LpFilter:=20;

! Run your program – streaming is active

MoveAbsJ jpos20, v100, z20, Weldgun;

MoveAbsJ jpos10\NoEOffs, v1000, fine, Weldgun;

! Stop the position stream – but this is not necessary if you

! want to stream until the controller shuts down

EGMStreamStop egmID1;

EGMReset egmID1;

Verwendung von EGMStreamStart und EGMStreamStop für mehrere mechanische EinheitenDieses Beispiel bezieht sich auf ein MultiMove-System mit zwei Robotern, diejeweils auf einer Verfahreinheit montiert sind.

RAPID-Task für Roboter 1:VAR egmident egmID1;

! Activate the mechanical unit for the track motion

ActUnit TRACK1;

EGMReset egmID1;

EGMGetId egmID1;

! Set up the EGM streaming destination for ROB1, including

! active additional axis, using device "UCdevice1" and

! configuration "default"

EGMSetupUC ROB_1, egmID1, "default", "UCdevice1"\Joint;

EGMStreamStart egmID1;

! Start the position stream for ROB1 including active

! additional axis. Cycle time is 4 ms (default).

! Run your program – streaming is active

MoveJ p10, v1000, z50, Weldgun;

Fortsetzung auf nächster Seite400 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.1 Verwendung des EGM-PositionsdatenstromsFortsetzung

Page 401: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

MoveAbsJ jpos10\NoEOffs, v1000, fine, Weldgun;

! Stop the position stream

EGMStreamStop egmID1;

! Deactivate the mechanical unit for the track motion

DeactUnit TRACK1;

RAPID-Task für Roboter 2:VAR egmident egmID2;

! Activate the mechanical unit for the track motion

ActUnit TRACK2;

EGMReset egmID2;

EGMGetId egmID2;

! Set up the EGM streaming destination for ROB2, including

! active additional axis, using device "UCdevice2" and

! configuration "default"

EGMSetupUC ROB_2, egmID2, "default", "UCdevice2"\Joint;

! Start the position stream for ROB2 including active

! additional axis. Cycle time is 4 ms (default).

EGMStreamStart egmID2;

! Run your program – streaming is active

MoveJ p10, v1000, z50, PKI_500;

MoveAbsJ jpos10\NoEOffs, v1000, fine, PKI_500;

! Stop the position stream

EGMStreamStop egmID2;

! Deactivate the mechanical unit for the track motion

DeactUnit TRACK2;

Anwendungshandbuch - Steuerungssoftware IRC5 4013HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.1 Verwendung des EGM-Positionsdatenstroms

Fortsetzung

Page 402: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.6.2 Verwendung von EGM Position Guidance mit einem UdpUc-Gerät

BeschreibungDas Gerät, das die Eingangsdaten für EGM enthält, muss zunächst als UdpUc-Gerätkonfiguriert werden. Siehe Konfigurieren von UdpUc-Geräten auf Seite 394.Jetzt kann das Gerät von EGM verwendet werden, um einen Roboter zu führen.Nachfolgend finden Sie ein einfaches Beispiel:

Beispiel:MODULE EGM_test

VAR egmident egmID1;

VAR egmstate egmSt1;

! limits for cartesian convergence: +-1 mm

CONST egm_minmax egm_minmax_lin1:=[-1,1];

! limits for orientation convergence: +-2 degrees

CONST egm_minmax egm_minmax_rot1:=[-2,2];

! Start position

CONST jointtargetjpos10:=[[0,0,0,0,40,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

! Used tool

TASK PERS tooldata tFroniusCMT:=[TRUE,[[12.3313,-0.108707,416.142],[0.903899,-0.00320735,0.427666,0.00765917]],[2.6,[-111.1,24.6,386.6],[1,0,0,0],0,0,0.072]];

! corr-frame: wobj, sens-frame: wobj

TASK PERS wobjdata wobj_EGM1:=[FALSE,TRUE,"",[[150,1320,1140],[1,0,0,0]], [[0,0,0],[1,0,0,0]]];

! Correction frame offset: none

VAR pose corr_frame_offs:=[[0,0,0],[1,0,0,0]];

PROC main()

! Move to start position. Fine point is demanded.

MoveAbsJ jpos10\NoEOffs, v1000, fine, tFroniusCMT;

testuc;

ENDPROC

PROC testuc()

EGMReset egmID1;

EGMGetId egmID1;

egmSt1:=EGMGetState(egmID1);

TPWrite "EGM state: "\Num:=egmSt1;

IF egmSt1 <= EGM_STATE_CONNECTED THEN

! Set up the EGM data source: UdpUc server using device "EGMsensor:"

! and configuration "default"

EGMSetupUC ROB_1, egmID1, "default", "EGMsensor:"\pose;

ENDIF

Fortsetzung auf nächster Seite402 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.2 Verwendung von EGM Position Guidance mit einem UdpUc-Gerät

Page 403: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

! Correction frame is the World coordinate system and the sensor

! measurements are relative to the tool frame of the used tool

! (tFroniusCMT)

EGMActPose egmID1\Tool:=tFroniusCMT, corr_frame_offs,EGM_FRAME_WORLD, tFroniusCMT.tframe, EGM_FRAME_TOOL\x:=egm_minmax_lin1 \y:=egm_minmax_lin1 \z:=egm_minmax_lin1\rx:=egm_minmax_rot1 \ry:=egm_minmax_rot1 \rz:=egm_minmax_rot1\LpFilter:=20;

! Run: the convergence condition has to be fulfilled during

! 2 seconds before RAPID execution continues to the next

! instruction

EGMRunPose egmID1, EGM_STOP_HOLD \x \y \z \CondTime:=2\RampInTime:=0.05;

egmSt1:=EGMGetState(egmID1);

IF egmSt1 = EGM_STATE_CONNECTED THEN

TPWrite "Reset EGM instance egmID1";

EGMReset egmID1;

ENDIF

ENDPROC

ENDMODULE

Anwendungshandbuch - Steuerungssoftware IRC5 4033HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.2 Verwendung von EGM Position Guidance mit einem UdpUc-Gerät

Fortsetzung

Page 404: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.6.3 Verwendung von EGM Position Guidance mit Signalen als Eingang

BeschreibungAlle Signale, die zusammen mit EGM verwendet werden, müssen in derE/A-Konfiguration des Systems definiert werden, d. h., die Signale, die mitEGMSetupAI, EGMSetupAO oder EGMSetupGI eingerichtet werden. Danach könnendie Signale von EGM verwendet werden, um einen Roboter zu führen.Das folgende RAPID-Programmbeispiel verwendet analoge Ausgangssignale alsEingang. Der Hauptgrund für die analogen Ausgangssignale ist, dass sie leichtersimuliert werden können als analoge Eingangssignale. In einer echtenAnwendungsgruppe können Eingangssignale und analoge Eingangssignale üblichersein.Der Einfachheit halber wurden die analogen Ausgangssignale in denuntenstehenden Beispielen vor der EGMRun-Instruktion auch auf einen konstantenWert eingestellt. Normalerweise aktualisiert ein externes Gerät die Signalwerte,um die gewünschten Roboterpositionen anzugeben.Im zweiten untenstehenden Beispiel wird dargestellt, wir ein 7-achsiger Roboterim EGM-Achsenmodus verwendet werden kann.

Beispiel 1:MODULE EGM_test

VAR egmident egmID1;

VAR egmident egmID2;

CONST egm_minmax egm_minmax_lin1:=[-1,1];

CONST egm_minmax egm_minmax_rot1:=[-2,2];

CONST egm_minmax egm_minmax_joint1:=[-0.1,0.1];

CONST robtarget p20:=[[150,1320,1140],[0.000494947,0.662278,-0.749217,-0.00783173], [0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST robtarget p30:=[[114.50,1005.42,1410.38],[0.322151,-0.601023,0.672381,0.287914], [0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST jointtargetjpos10:=[[0,0,0,0,35,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST pose posecor:=[[1200,400,900],[1,0,0,0]];

CONST pose posesens:=[[12.3313,-0.108707,416.142],[0.903899,-0.00320735,0.427666,0.00765917]];

! corr-frame: world, sens-frame: world

VAR pose posecor0:=[[0,0,0],[1,0,0,0]];

VAR pose posesen0:=[[0,0,0],[1,0,0,0]];

TASK PERS tooldata tFroniusCMT:=[TRUE,[[12.3313,-0.108707,416.142],[0.903899,-0.00320735,0.427666,0.00765917]],[2.6,[-111.1,24.6,386.6],[1,0,0,0],0,0,0.072]];

TASK PERS loaddata load1:=[5,[0,1,0],[1,0,0,0],0,0,0];

Fortsetzung auf nächster Seite404 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.3 Verwendung von EGM Position Guidance mit Signalen als Eingang

Page 405: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

! corr-frame: wobj, sens-frame: wobj

TASK PERS wobjdatawobj_EGM1:=[FALSE,TRUE,"",[[150,1320,1140],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];

VAR pose posecor1:=[[0,0,0],[1,0,0,0]];

VAR pose posesen1:=[[0,0,0],[1,0,0,0]];

TASK PERS wobjdatawobj_EGM2:=[FALSE,TRUE,"",[[0,1000,1000],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];

VAR pose posecor2:=[[150,320,0],[1,0,0,0]];

VAR pose posesen2:=[[150,320,0],[1,0,0,0]];

PROC main()

MoveAbsJ jpos10\NoEOffs, v1000, fine, tFroniusCMT;

testAO;

ENDPROC

PROC testAO()

! Get two different EGM identities. They will be used for two

! different eGM setups.

EGMGetId egmID1;

EGMGetId egmID2;

! Set up the EGM data source: Analog output signals and

! configuration "default"

! One guidance using Pose mode and one using Joint mode

EGMSetupAO ROB_1,egmID1,"default" \Pose \aoR1x:=ao_MoveX\aoR2y:=ao_MoveY \aoR3z:=ao_MoveZ \aoR5ry:=ao_RotY\aoR6rz:=ao_RotZ;

EGMSetupAO ROB_1,egmID2,"default" \Joint \aoR1x:=ao_MoveX\aoR2y:=ao_MoveY \aoR3z:=ao_MoveZ \aoR4rx:=ao_RotX\aoR5ry:=ao_RotY \aoR6rz:=ao_RotZ;

! Move to the starting point - fine point is needed.

MoveJ p30, v1000, fine, tool0;

! Set the signals

SetAO ao_MoveX, 150;

SetAO ao_MoveY, 1320;

SetAO ao_MoveZ, 900;

! Correction frame is the World coordinate system and the

! sensor measurements are also relative to the world frame

! No offset is defined (posecor0 and posesen0)

EGMActPose egmID1 \Tool:=tFroniusCMT \WObj:=wobj0 \TLoad:=load1,posecor0, EGM_FRAME_WORLD, posesen0, EGM_FRAME_WORLD\x:=egm_minmax_lin1 \y:=egm_minmax_lin1 \z:=egm_minmax_lin1\rx:=egm_minmax_rot1 \ry:=egm_minmax_rot1 \rz:=egm_minmax_rot1\LpFilter:=20 \SampleRate:=16 \MaxPosDeviation:=1000;

! Run: keep the end position without returning to the

! start position

EGMRunPose egmID1,EGM_STOP_HOLD\x\y\z\RampInTime:=0.05\PosCorrGain:=1;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4053HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.3 Verwendung von EGM Position Guidance mit Signalen als Eingang

Fortsetzung

Page 406: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

! Move to the starting point - fine point is needed.

MoveJ p20, v1000, fine, tFroniusCMT;

! Set the signals

SetAO ao_MoveX, 150;

SetAO ao_MoveY, 1320;

SetAO ao_MoveZ, 1100;

! Run with the same frame definitions: ramp down to the

! start position after having reached the EGM end position

EGMRunPose egmID1,EGM_STOP_RAMP_DOWN\x\y\z\RampInTime:=0.05\PosCorrGain:=1;

! Move to the starting point - fine point is needed.

MoveJ p30, v1000, fine, tool0;

! Set the signals

SetAO ao_MoveX, 50;

SetAO ao_MoveY, -20;

SetAO ao_MoveZ, -20;

! Correction frame is the Work object wobj_EGM1 and the

! sensor measurements are also relative to the same work

! object. No offset is defined (posecor1 and posesen1)

EGMActPose egmID1 \Tool:=tFroniusCMT \WObj:=wobj_EGM1 \TLoad:=load1,posecor1, EGM_FRAME_WOBJ, posesen1, EGM_FRAME_WOBJ\x:=egm_minmax_lin1 \y:=egm_minmax_lin1 \z:=egm_minmax_lin1\rx:=egm_minmax_rot1 \ry:=egm_minmax_rot1 \rz:=egm_minmax_rot1\LpFilter:=20;

! Run: keep the end position without returning to the start position

EGMRunPose egmID1,EGM_STOP_HOLD\x\y\z\RampInTime:=0.05\PosCorrGain:=1;

! Move to the starting point - fine point is needed.

MoveJ p20, v1000, fine, tFroniusCMT;

! Set the signals

SetAO ao_MoveX, 0;

SetAO ao_MoveY, 0;

SetAO ao_MoveZ, 0;

! Correction frame is the Work object wobj_EGM2 and the sensor

! measurements are also relative to the same work object. This

! time an offset is defined for the correction frame

! (posecor2), and for the sensor frame (posesen2)

EGMActPose egmID1 \Tool:=tFroniusCMT \WObj:=wobj_EGM2 \TLoad:=load1,posecor2, EGM_FRAME_WOBJ, posesen2, EGM_FRAME_WOBJ\x:=egm_minmax_lin1 \y:=egm_minmax_lin1 \z:=egm_minmax_lin1\rx:=egm_minmax_rot1 \ry:=egm_minmax_rot1 \rz:=egm_minmax_rot1\LpFilter:=20;

! Run: keep the end position without returning to the start position

EGMRunPose egmID1,EGM_STOP_HOLD\x\y\z\RampInTime:=0.05\PosCorrGain:=1;

! Move to the starting point - fine point is needed.

MoveJ p20, v1000, fine, tFroniusCMT;

! Set the signals

SetAO ao_MoveX, 0;

Fortsetzung auf nächster Seite406 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.3 Verwendung von EGM Position Guidance mit Signalen als EingangFortsetzung

Page 407: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

SetAO ao_MoveY, 0;

SetAO ao_MoveZ, 0;

! Correction frame is of tool type and the sensor measurements are

! relative to the work object wobj_EGM2. This time an offset is

!defined for the correction frame (posecor2), and

! for the sensor frame (posesen2)

EGMActPose egmID1 \Tool:=tFroniusCMT \WObj:=wobj_EGM2, posecor2,EGM_FRAME_TOOL, posesen2, EGM_FRAME_WOBJ \x:=egm_minmax_lin1\y:=egm_minmax_lin1 \z:=egm_minmax_lin1 \rx:=egm_minmax_rot1\ry:=egm_minmax_rot1 \rz:=egm_minmax_rot1 \LpFilter:=20;

EGMRunPose egmID1,EGM_STOP_HOLD\x\y\z\RampInTime:=0.05\PosCorrGain:=1;

! Move to the starting point - fine point is needed.

MoveJ p20, v1000, fine, tFroniusCMT\TLoad:=load1;

! Set the signals

SetAO ao_MoveX, 150;

SetAO ao_MoveY, 1320;

SetAO ao_MoveZ, 1100;

! Same as last, but with tool0 and wobj0

EGMActPose egmID1, posecor2, EGM_FRAME_TOOL, posesen2,EGM_FRAME_WOBJ \x:=egm_minmax_lin1 \y:=egm_minmax_lin1\z:=egm_minmax_lin1 \rx:=egm_minmax_rot1 \ry:=egm_minmax_rot1\rz:=egm_minmax_rot1 \LpFilter:=20;

! Run: keep the end position without returning to the start position

EGMRunPose egmID1,EGM_STOP_HOLD\x\y\z\RampInTime:=0.05\PosCorrGain:=1;

! Move to the starting point - fine point is needed.

MoveJ p20, v1000, fine, tFroniusCMT\TLoad:=load1;

! Set the signals

SetAO ao_MoveX, 70;

SetAO ao_MoveY, -5;

SetAO ao_MoveZ, 0;

SetAO ao_RotX, 0;

SetAO ao_RotY, 0;

SetAO ao_RotZ, 0;

! Joint guidance for joints 2-6

EGMActJoint egmID2 \J2:=egm_minmax_joint1 \J3:=egm_minmax_joint1\J4:=egm_minmax_joint1 \J5:=egm_minmax_joint1\J6:=egm_minmax_joint1 \LpFilter:=20;

! Run: keep the end position without returning to the start position

EGMRunJoint egmID2, EGM_STOP_HOLD \J2 \J3 \J4 \J5 \J6 \CondTime:=0.1\RampInTime:=0.05 \PosCorrGain:=1;

EGMReset egmID1;

EGMReset egmID2;

ENDPROC

ENDMODULE

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4073HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.3 Verwendung von EGM Position Guidance mit Signalen als Eingang

Fortsetzung

Page 408: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Beispiel 2:MODULE EGM_IRB14000_test

VAR egmident egmID;

CONST egm_minmax egm_minmax_joint1:=[-0.1,0.1];

! For handling if the test is used with left or right arm.

VAR jointtarget jpos10;

CONST jointtarget jpos10_L:=[[0,-130,30,0,40,0],[135,9E+09,9E+09,9E+09,9E+09,9E+09]];

CONST jointtarget jpos10_R:=[[0,-130,30,0,40,0],[-135,9E+09,9E+09,9E+09,9E+09,9E+09]];

PROC main()

IF GetMecUnitName(ROB_ID) = "ROB_L" THEN

jpos10 := jpos10_L;

testAO;

ELSEIF GetMecUnitName(ROB_ID) = "ROB_R" THEN

jpos10 := jpos10_R;

testAO;

ENDIF

ENDPROC

PROC testAO()

! Get an EGM idenity.

EGMGetId egmID;

! Set up the EGM data source:

! Analog output signals and configuration "default".

! Only the EGM Joint mode support IRB14000.

! Notice the joint mapping of the analog output signals.

EGMSetupAO ROB_ID, egmID, "default" \Joint \aoR1x:=ao_J1\aoR2y:=ao_J2 \aoR3z:=ao_J4 \aoR4rx:=ao_J5 \aoR5ry:=ao_J6\aoR6rz:=ao_J7 \AoE1:=ao_J3;

! Move to the starting point - fine point is needed.

MoveAbsJ jpos10\NoEOffs, v50, fine, tool0;

! Set the signals (using an incrementing offset from the

! initial position).

! Another set of analog signals should be created, if running

! this code for both arms at the same time.

! Notice the joint mapping from a jointtarget to the analog

! output signals.

SetAO ao_J1, jpos10.robax.rax_1 + 1;

SetAO ao_J2, jpos10.robax.rax_2 + 2;

SetAO ao_J3, jpos10.extax.eax_a + 3;

SetAO ao_J4, jpos10.robax.rax_3 + 4;

SetAO ao_J5, jpos10.robax.rax_4 + 5;

SetAO ao_J6, jpos10.robax.rax_5 + 6;

SetAO ao_J7, jpos10.robax.rax_6 + 7;

! Joint guidance for joints 1-7.

EGMActJoint egmID \J1:=egm_minmax_joint1 \J2:=egm_minmax_joint1\J3:=egm_minmax_joint1 \J4:=egm_minmax_joint1\J5:=egm_minmax_joint1 \J6:=egm_minmax_joint1\J7:=egm_minmax_joint1 \LpFilter:=20;

! Run: keep the end position without returning to the

! start position.

Fortsetzung auf nächster Seite408 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.3 Verwendung von EGM Position Guidance mit Signalen als EingangFortsetzung

Page 409: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

EGMRunJoint egmID, EGM_STOP_HOLD \J1 \J2 \J3 \J4 \J5 \J6 \J7\CondTime:=1 \RampInTime:=0.05 \PosCorrGain:=1;

EGMReset egmID;

ENDPROC ENDMODULE

Anwendungshandbuch - Steuerungssoftware IRC5 4093HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.3 Verwendung von EGM Position Guidance mit Signalen als Eingang

Fortsetzung

Page 410: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.6.4 Verwendung von EGM Path Correction mit verschiedenen Protokolltypen

BeschreibungDieses Beispiel enthält Beispiele für verschiedene Sensor- und Protokolltypen.Die grundlegende RAPID Programmstruktur ist die gleich für alle davon. Sieverwenden die gleiche externe Bewegungsdatenkonfiguration.

Beispiel:MODULE EGM_PATHCORR

! Used tool

PERS tooldata tEGM:=[TRUE,[[148.62,0.25,326.31],[0.833900724,0,0.551914471,0]], [1,[0,0,100],[1,0,0,0],0,0,0]];

! Sensor tool, has to be calibrated

PERS tooldatatLaser:=[TRUE,[[148.619609537,50.250017146,326.310337954],[0.390261856,-0.58965743,-0.58965629,0.390263064]],[1,[-0.920483747,-0.000000536,-0.390780849],[1,0,0,0],0,0,0]];

! Displacement used

VAR pose PP:=[[0,-3,2],[1,0,0,0]];

VAR egmident egmId1;

! Protocol: LTAPP

! Example for a look ahead sensor, e.g. Laser Tracker

PROC Part_2_EGM_OT_Pth_1()

EGMGetId egmId1;

! Set up the EGM data source: LTAPP server using device "Optsim",

! configuration "pathCorr", joint type 1 and look ahead sensor.

EGMSetupLTAPP ROB_1, egmId1, "pathCorr", "OptSim", 1\LATR;

! Activate EGM and define the sensor frame.

! Correction frame is always the path frame.

EGMActMove egmId1, tLaser.tframe\SampleRate:=50;

! Move to a suitable approach position.

MoveJ p100,v1000,z10,tEGM\WObj:=wobj0;

MoveL p110,v1000,z100,tEGM\WObj:=wobj0;

MoveL p120,v1000,z100,tEGM\WObj:=wobj0;

! Activate displacement (not necessary but possible)

PDispSet PP;

! Move to the start point. Fine point is demanded.

MoveL p130, v10, fine, tEGM\WObj:=wobj0;

! movements with path corrections.

EGMMoveL egmId1, p140, v10, z5, tEGM\WObj:=wobj0;

EGMMoveL egmId1, p150, v10, z5, tEGM\WObj:=wobj0;

EGMMoveC egmId1, p160, p165, v10, z5, tEGM\WObj:=wobj0;

! Last path correction movement has to end with a fine point.

EGMMoveL egmId1, p170, v10, fine, tEGM\WObj:=wobj0;

! Move to a safe position after path correction.

MoveL p180,v1000,z10,tEGM\WObj:=wobj0;

! Release the EGM identity for reuse.

Fortsetzung auf nächster Seite410 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.4 Verwendung von EGM Path Correction mit verschiedenen Protokolltypen

Page 411: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

EGMReset egmId1;

ENDPROC

! Protocol: LTAPP

! Example for an at point sensor, e.g. Weldguide

PROC Part_2_EGM_WG_Pth_1()

EGMGetId egmId1;

! Set up the EGM data source: LTAPP server using device "wg1sim",

! configuration "pathCorr", joint type 1 and at point sensor.

EGMSetupLTAPP ROB_1, egmId1, "pathCorr", "wg1sim", 1\APTR;

! Activate EGM and define the sensor frame,

! which is the tool frame for at point trackers.

! Correction frame is always the path frame.

EGMActMove egmId1, tEGM.tframe\SampleRate:=50;

! Move to a suitable approach position.

MoveJ p100,v1000,z10,tEGM\WObj:=wobj0;

MoveL p110,v1000,z100,tEGM\WObj:=wobj0;

MoveL p120,v1000,fine,tEGM\WObj:=wobj0;

! Activate displacement (not necessary but possible)

PDispSet PP;

! Move to the start point. Fine point is demanded.

MoveL p130, v10, fine, tEGM\WObj:=wobj0;

! movements with path corrections.

EGMMoveL egmId1, p140, v10, z5, tEGM\WObj:=wobj0;

EGMMoveL egmId1, p150, v10, z5, tEGM\WObj:=wobj0;

EGMMoveC egmId1, p160, p165, v10, z5, tEGM\WObj:=wobj0;

! Last path correction movement has to end with a fine point.

EGMMoveL egmId1, p170, v10, fine, tEGM\WObj:=wobj0;

! Move to a safe position after path correction.

MoveL p180,v1000,z10,tEGM\WObj:=wobj0;

! Release the EGM identity for reuse.

EGMReset egmId1;

ENDPROC

! Protocol: UdpUc

! Example for an at point sensor, e.g. Weldguide

PROC Part_2_EGM_UDPUC_Pth_1()

EGMGetId egmId1;

EGMSetupUC ROB_1, egmId1, "pathCorr", "UCdevice"\PathCorr\APTR;

EGMActMove egmId1, tEGM.tframe\SampleRate:=50;

! Move to a suitable approach position.

MoveJ p100,v1000,z10,tEGM\WObj:=wobj0;

MoveL p110,v1000,z100,tEGM\WObj:=wobj0;

MoveL p120,v1000,fine,tEGM\WObj:=wobj0;

! Activate displacement (not necessary but possible)

PDispSet PP;

! Move to the start point. Fine point is demanded.

MoveL p130, v10, fine, tEGM\WObj:=wobj0;

! movements with path corrections.

EGMMoveL egmId1, p140, v10, z5, tEGM\WObj:=wobj0;

EGMMoveL egmId1, p150, v10, z5, tEGM\WObj:=wobj0;

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4113HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.4 Verwendung von EGM Path Correction mit verschiedenen Protokolltypen

Fortsetzung

Page 412: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

EGMMoveC egmId1, p160, p165, v10, z5, tEGM\WObj:=wobj0;

! Last path correction movement has to end with a fine point.

EGMMoveL egmId1, p170, v10, fine, tEGM\WObj:=wobj0;

! Move to a safe position after path correction.

MoveL p180,v1000,z10,tEGM\WObj:=wobj0;

! Release the EGM identity for reuse.

EGMReset egmId1;

ENDPROC

ENDMODULE

412 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.6.4 Verwendung von EGM Path Correction mit verschiedenen ProtokolltypenFortsetzung

Page 413: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.3.7 UdpUc Codebeispiele

DateispeicherorteDie folgenden Codebeispiele sind in der RobotWare-Verteilung verfügbar.

BeschreibungDatei

Beispiel zur Verwendung von protobuf-csharp-portegm-sensor.cs

Beispiel zur Verwendung von Google protocol buffers C++egm-sensor.cpp

Die egm.proto-Datei definiert den Datenvertrag zwischendem Roboter und dem Sensor.

egm.proto

Die Dateien können über den PC oder die Robotersteuerung bezogen werden.• Im RobotWare-Installationsordner in RobotStudio: ...\RobotPackages\

RobotWare_RPK_<version>\utility\Template\EGM\• Auf der IRC5-Steuerung:

<SystemName>\PRODUCTS\<RobotWare_xx.xx.xxxx>\utility\Template\EGM\

Hinweis

Navigieren Sie zum RobotWare-Installationsordner in der RegisterkarteAdd-Insin RobotStudio, indem Sie im Add-In-Browser auf die installierteRobotWare-Version rechtsklicken und Paketordner öffnen auswählen.

Anwendungshandbuch - Steuerungssoftware IRC5 4133HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.3.7 UdpUc Codebeispiele

Page 414: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4 Robot Reference Interface [enthalten in 689-1]

9.4.1 Einführung in Robot Reference Interface

EinleitungRobot Reference Interface ist in der RobotWare-Option Externally Guided Motionenthalten. Sie kann für 4-achsige, 6-achsige und 7-achsige Roboter verwendetwerden.Robot Reference Interface unterstützt den Datenaustausch auf dem zyklischenKanal. Es bietet die Möglichkeit, regelmäßig Daten über die geplante undtatsächliche Roboterposition von der Robotersteuerung zu senden sowie andereRAPID-Variablen von der und zur Robotersteuerung auszutauschen. DieMeldungsinhalte werden im XML-Format dargestellt und werden mithilfe dergeeigneten Sensorkonfigurationsdateien konfiguriert.

Robot Reference InterfaceDer zyklische Kommunikationskanal (TCP oder UDP) kann über dieHigh-Priority-Netzwerkumgebung der IRC5-Steuerung ausgeführt werden, dieeinen stabilen Datenaustausch bis zu 250 Hz sicherstellt.

Robot Sensor

Rapid data

Motion data

RRICyclic channel (TCP or UDP)

read/write Receive commands,

parameters and

robot data

Return parameters

and sensor data

read only

Cabinet status read only

xx0800000128

414 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.1 Einführung in Robot Reference Interface

Page 415: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.2 Installation

9.4.2.1 Verbinden des Kommunikationskabels

ÜberblickIn diesem Abschnitt wird erklärt, wo das Kommunikationskabel an der Steuerungangeschlossen wird. Schlagen Sie für weitere Instruktionen im entsprechendenProdukthandbuch des Robotersystems nach.

Position

A

B

xx1300000609

Serviceport an der Computereinheit (mit dem Serviceport an der Steuerungverbunden)

A

WAN-Port an der ComputereinheitB

HinweisAktion

Hinweis

Die Service-Verbindung kann nur ver-wendet werden, wenn sie frei ist.

Verwenden Sie eine dieser beiden Verbindun-gen (A oder B).

1

Anwendungshandbuch - Steuerungssoftware IRC5 4153HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.2.1 Verbinden des Kommunikationskabels

Page 416: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.2.2 Voraussetzungen

ÜberblickIn diesem Abschnitt werden die Voraussetzungen für die Verwendung von RobotReference Interface beschrieben.

UDP/IP oder TCP IPRobot Reference Interface unterstützt die Kommunikation über dieStandard-IP-ProtokolleUDP oder TCP.

EmpfehlungenDie Verzögerung in der gesamten Kommunikation hängt vor allem von der Topologiedes verwendeten Netzwerks ab. In einem Schalternetzwerk ist die Übertragungdurch die Pufferung der Meldungen in den Schaltern verzögert. In einem parallelenNetzwerk führen Kollisionen mit mehreren Kommunikationspartnern dazu, dassMeldungen zurückgesendet werden.Deshalb empfehlen wir, eine eigene Ethernet-Verbindung zwischen dem externenSystem und der Robotersteuerung zu verwenden, um die erforderliche Leistungfür Echtzeit-Anwendungen zu erhalten. Robot Reference Interface kann zurKommunikation mit prozessorbasierten Geräten benutzt werden, die IP überEthernet unterstützen und Daten in ein XML-Format serialisieren können.

416 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.2.2 Voraussetzungen

Page 417: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.2.3 Datenorchestrierung

ÜberblickDie ausgehende Meldung kann aus allen Daten der RAPID-Ebene und internenDaten des Steuerungsschranks und der Bewegungsparametergruppe kombiniertwerden. Die Orchestrierung der Daten wird in der Gerätekonfiguration festgelegt,indem das Verbindungsattribut intern verknüpfter Daten auf Intern eingestellt wird.

Abbildung

xx0800000178

Daten aus ControllerParametergruppe

KommentarBeschreibungTypName

Das Mapping der Member für den OpMode-Typ kann in der Konfigurationsdatei definiertwerden.

Betriebsmodusdes Roboters.

OpModeOperationMode

Daten aus MotionParametergruppe

KommentarBeschreibungTypName

Es gibt eine Verzögerung vonungefähr 8 Minuten.

Zeitstempel für die Roboterpo-sition aus dem Antriebs-Feed-back.

ZeitFeedbackTime

Das aktuelle Werkzeug unddas Werkobjekt werden für dieBerechnung genutzt.

Aus Antriebs-Feedback berech-netes Roboter-TCP.

Koordina-tensys-tem

FeedbackPose

Roboterachsenwerte aus An-trieb-Feedback erfasst.

AchsenFeedbackJoints

Prognosezeitraum ungefähr24 bis 60 Minuten je nach Ro-botertyp.

Zeitstempel für geplante Robo-ter-TCP-Position und Achsen-werte.

ZeitPredictedTime

Das aktuelle Werkzeug unddas Werkobjekt werden für dieBerechnung genutzt.

Geplante Roboter-TCP.Koordina-tensys-tem

PlannedPose

Geplante Roboterachsenwerte.AchsenPlannedJoints

Anwendungshandbuch - Steuerungssoftware IRC5 4173HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.2.3 Datenorchestrierung

Page 418: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.2.4 Unterstützte Datentypen

ÜberblickDieser Abschnitt enthält eine kurze Beschreibung der vonRobot Reference Interfaceunterstützten Datentypen. Ausführlichere Informationen über die unterstütztenDatentypen siehe Referenzen auf Seite 13.

DatentypenRobot Reference Interface unterstützt die folgenden einfachen Datentypen:

RAPID-TypzuordnungBeschreibungDatentyp

boolBoolescher Wert.bool

numEinfache Genauigkeit, Gleitkommazahl.real

numZeit in Sekunden, als Gleitkommazahl ausgedrückt.time

stringZeichenfolge mit einer maximalen Länge von 80Zeichen.

string

poseKartesische Position und Ausrichtung in EulerschenWinkeln (Roll-Nick-Gier-Winkel).

frame

robjointRoboterachsenwerte.Achse

Außerdem können die benutzerdefinierten Datensätze auch vom externen Systemzur Robotersteuerung übertragen werden, die aus den unterstützten einfachenDatentypen bestehen. Benutzerdefinierte Datensatztypen müssen in derKonfigurationsdatei des externen Geräts angegeben werden. Eine Beschreibungzur Erstellung benutzerdefinierter Datensatztypen finden Sie unterGerätekonfiguration auf Seite 424.

418 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.2.4 Unterstützte Datentypen

Page 419: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.3 Konfiguration

9.4.3.1 Schnittstellenkonfiguration

KonfigurationsdateienDie Konfigurations- und Einstellungsdateien für die Schnittstellen müssen sich imOrdner HOME/GSI befinden. Dadurch wird sichergestellt, dass dieKonfigurationsdateien bei Systembackups miteinbezogen werden.

xx0800000177

Weitere InformationenWeitere ausführliche Informationen zur Settings.xml-Datei sieheSchnittstelleneinstellungen auf Seite 420.Weitere ausführliche Informationen zur Description.xml-Datei sieheGerätebeschreibung auf Seite 421.Weitere ausführliche Informationen zur Configuration.xml-Datei sieheGerätekonfiguration auf Seite 424.

Anwendungshandbuch - Steuerungssoftware IRC5 4193HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.3.1 Schnittstellenkonfiguration

Page 420: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.3.2 Schnittstelleneinstellungen

ÜberblickIn diesem Abschnitt wird die Verwendung der xml-Datei Settings.xml beschrieben.

Settings.xmlDie Einstellungsdatei Settings.xml enthält die allgemeinen Einstellungen für dieGSI-Schnittstelle. Sie befindet sich im Ordner HOME/GSI. Bei der Option RobotReference Interface bezieht sich diese Datei auf eine Liste allerKommunikations-Clients für in der Steuerung installierte externe Systeme. DieSettings.xml-Datei wird gemäß dem XML-Schema Settings.xsd definiert.

Beispiel:Für jeden Kommunikations-Client, der auf der Steuerung installiert wurde, mussdie Datei Settings.xml einen Client-Eintrag im Abschnitt Clients enthalten. Mit demConvention-Attribut wird die vom Client verwendete Protokollkonvention identifiziert.Für die Option Robot Reference Interface wird nur CDP unterstützt. Mit demName-Attribut wird der Name des Clients identifiziert und der Ordner mit dengerätezugehörigen Konfigurationsdateien festgelegt.

<?xml version="1.0" encoding="UTF-8"?>

<Settings>

<Clients>

<Client Convention="CDP" Name="MySensor" />

</Clients>

</Settings>

CDP steht für zyklisches Datenprotokoll und ist der interne Name des Protokolls,in dem Robot Reference Interface-Meldungen übertragen werden.Es wird ein interner Client-Knoten des Schnittstellenmoduls erzeugt, das an dasexterne MySensor-System angeschlossen werden kann, über das eineDatenserveranwendung ausgeführt wird und mit dem über Robot ReferenceInterface mit dem Roboter kommuniziert werden kann.Für jedes Sensorsystem gibt es ein Unterverzeichnis, das den Namen desSensorsystembezeichners trägt, zum Beispiel MySensor, und das weitereEinstellungen enthält.

420 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.3.2 Schnittstelleneinstellungen

Page 421: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.3.3 Gerätebeschreibung

ÜberblickIn diesem Abschnitt wird die Verwendung der xml-Datei beschriebenDescription.xml.

Description.xmlDie Gerätebeschreibungsdatei Description.xml befindet sich im entsprechendenUnterverzeichnis des Geräts. Es bestimmt die allgemeinen Geräteparameter,Netzwerkverbindung und CDP-spezifische Kommunikationseinstellungen für eininstalliertes Gerät. Eine Gerätebeschreibung kann gemäß dem XML-Schemadefiniert werden Description.xsd.

Beispiel:Dies ist ein Beispiel für eine Gerätebeschreibung:

<?xml version="1.0" encoding="utf-8"?>

<Description>

<Name>AnyDevice</Name>

<Convention>CDP</Convention>

<Type>IntelligentCamera</Type>

<Class>MachineVision</Class>

<Network Address="10.49.65.74" Port="Service">

<Channel Type="Cyclic" Protocol="Udp" Port="3002" />

</Network>

<Settings>

<TimeOut>2000</TimeOut>

<MaxLost>30</MaxLost>

<DryRun>false</DryRun>

</Settings>

</Description>

NameIm ersten Abschnitt werden die allgemeinen Geräteparameter definiert. DasName-Element bestimmt den Namen des Geräts und muss dem in derEinstellungsdatei bestimmten Namen entsprechen. Es muss dem Bezeichner, derfür den Gerätedeskriptor auf RAPID-Ebene bestimmt worden ist, entsprechen, weilder Deskriptorname anfänglich dazu verwendet wird, sich auf das Gerät in denRAPID-Instruktionen zu beziehen.

KommentarWertBeschreibungAttributeElement

Maximal 16 ZeichenJede Zeichenfol-ge

GerätebezeichnerName

ConventionDas Convention-Element bestimmt das Protokoll, das vom Gerät verwendet werdenmuss. Für die Robot Reference Interface-Option wird nur Cyclic Data Protocol(CDP) unterstützt.

KommentarWertBeschreibungAttributeElement

CDPProtokolltypConvention

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4213HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.3.3 Gerätebeschreibung

Page 422: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Type und ClassDie Type- und Class-Elemente bestimmen den Gerätetyp sowie die Geräteklasseund werden gegenwärtig nicht validiert, daher können Sie auch nicht definierteTypen oder Klassen beinhalten.

KommentarWertBeschreibungAttributeElement

Nicht validiertJede Zeichenfol-ge

SensortypType

Nicht validiertJede Zeichenfol-ge

SensorklasseClass

NetworkDer Network-Abschnitt bestimmt die Netzwerkverbindungseinstellungen für dasGerät. Das Address-Attribut bestimmt die IP-Adresse oder den Hostnamen desGeräts im Netzwerk. Das optionale Port-Attribut wird verwendet, um den physischenEthernet-Anschluss an der Steuerungsseite zu bestimmen, an den das Kabelangeschlossen ist. Gültige Werte sind WAN und Service. Das Attribut kannausgelassen werden, wenn der WAN-Port zur Kommunikation genutzt wird.

KommentarWertBeschreibungAttributeElement

NetzwerkeinstellungenNetwork

10.49.65.249Jede gültige IP-Adresse oderjeder gültigeHostname

IP-Adresse oder Hostna-me des Geräts

AddressDE-L-0328122

Optional. Kann ausge-lassen werden, wennder WAN-Port verwen-det wird.

WANService

Physischer Ethernet-An-schluss an der Steuerung

Port

ChannelDas Channel-Element legt die Einstellungen für den Kommunikationskanal zwischender Robotersteuerung und den externen Geräten fest. Das Type-Attribut bestimmtden Kanaltyp, nur Cyclic wird von Robot Reference Interface unterstützt.Das Protocol-Attribut bestimmt das für den Kanal verwendete IP-Protokoll. Siekönnen für Robot Reference Interface festlegen, dass TCP oder UDP verwendetwird. Das Port-Attribut bestimmt die logische Portnummer für den Kanal auf derGeräteseite.

KommentarWertBeschreibungAttributeElement

KanaleinstellungenChannel

CyclicKanaltypType

TCPDer IP-ProtokolltypProtocolUDP

Jede verfügbare Portnum-mer auf dem Gerät, maxi-mal 65535.

uShortDie logische Portnum-mer des Kanals

Port

Fortsetzung auf nächster Seite422 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.3.3 GerätebeschreibungFortsetzung

Page 423: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

SettingsDer Settings-Abschnitt enthält für das CDP-Protokoll spezifischeKommunikationsparameter. Das TimeOut-Element definiert das Timeout für nichtempfangene Meldungen. Dieses Element bestimmt die Zeit, bis die Verbindungals unterbrochen betrachtet wird und wird nur für die bidirektionale Kommunikationbenötigt. Das MaxLost-Attribut bestimmt die maximal erlaubte Anzahl nichtbestätigter oder verlorener Meldungen. Das DryRun-Element ermittelt, ob dieBestätigung der Meldungen überwacht wird, und kann genutzt werden, um eineunidirektionale Kommunikation einzurichten.

KommentarWertBeschreibungElement

Zeit in Millisekunden, ein Vielfachesvon 4 ms.

Timeout für Kommuni-kation

TimeOut

IntegerMaximaler Verlust zu-gelassener Pakete

MaxLost

Wenn TRUE, werden TimeOut undMaxLost nicht überprüft.

BoolSchnittstellen-Betriebs-modus

DryRun

Wenn das Element DryRun in Description.xml auf FALSE gesetzt wird, wird dieKommunikationsüberwachung auf der Protokollebene aufRobot Reference Interfacedurch die Einstellungen für TimeOut undMaxLost eingerichtet. Diese Überwachungerfordert, dass jede Meldung, die von der Robotersteuerung verschickt wird, vomverbundenen Gerät beantwortet wird. Die Überwachung erzeugt einenKommunikationsfehler, wenn die maximale Antwortzeit oder die maximale Anzahlverlorener Pakete überschritten wird. Jede verschickte Meldung hat eine ID, dieauch für die ID in der Antwort verwendet werden muss, um die Antwortnachrichtzu identifizieren und um zu ermitteln, welche Pakete verloren gegangen sind. Siehehierzu auch das Beispiel im Abschnitt Übermittelte XML-Meldungen auf Seite 431.

Anwendungshandbuch - Steuerungssoftware IRC5 4233HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.3.3 Gerätebeschreibung

Fortsetzung

Page 424: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.3.4 Gerätekonfiguration

ÜberblickDie GerätekonfigurationsdateiConfiguration.xml befindet sich im entsprechendenUnterverzeichnis des Geräts. Es bestimmt die Aufzählungstypen und komplexenTypen, die vom Gerät genutzt werden, und identifiziert die verfügbaren Parameter,welche für zyklische Übertragung abonniert werden können. Die Konfigurationsdateikann gemäß dem XML-Schema bestimmt werden Configuration.xsd. Das folgendeDokument zeigt eine vereinfachte Gerätekonfiguration.

Beispiel:<?xml version="1.0" encoding="utf-8"?>

<Configuration>

<Enums>

<Enum Name="opmode" Link="Intern">

<Member Name="ReducedSpeed" Alias="Alias"/>

</Enum>

</Enums>

<Records>

<Record Name="senddata">

<Field Name="PlannedPose" Type="Pose" Link="Intern" />

</Record>

</Records>

<Properties>

<Property Name="DataToSend" Type="senddata" Flag="WriteOnly"/>

</Properties>

</Configuration>

EnumsIm Enums-Abschnitt definiert jedes Enum-Element einen Aufzählungstyp. DieName-Attribute des Enum-Elements bestimmen den Namen des Aufzählungstyps,das optionale Link-Attribut identifiziert, ob die Member des Aufzählungstyps interneVerbindungen aufweisen.

KommentarWertBeschreibungAttributeElement

Maximal 16 Zeichen.Ein gültiger RA-PID-Symbolna-me

Name des Aufzäh-lungstyps

NameEnum

Optional. Kann ausgelassenwerden, wenn die Member nurüber eine RAPID-Verbindungverfügen.

InternVerbindung vonMembern einesAufzählungstyps

Link

Fortsetzung auf nächster Seite424 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.3.4 Gerätekonfiguration

Page 425: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

MemberJedes Member-Element definiert ein Memberelement des Aufzählungstyps. DasName-Attribut gibt den Namen des Members auf der Steuerungsseite (aufRAPID-Ebene) an. Das Alias-Attribut bestimmt den Namen des Members auf derGeräteseite (und in der übermittelten Meldung).

KommentarWertBeschreibungAttributeElement

Maximal 16 Zeichen. Gültigeinterne RAPID-Symbolnamen.Siehe Datenorchestrierungauf Seite 417.

Ein gültiger RA-PID-Symbolna-me

Name des Mem-bers des Aufzäh-lungstyps

NameMember

Optional. Der Aliasname wirdauf der Geräteseite und in derMeldung verwendet

SeilAliasname desMembers desAufzählungstyps

Alias

RecordIm Records-Abschnitt definiert jedes Record-Element eine Deklaration eineskomplexen Typs. In RAPID wird dieser komplexe Typ als eine RECORD-Deklarationdargestellt. Das Name-Attribut bestimmt den Namen des komplexen Typs auf derSteuerungsseite. Das Alias-Attribut definiert den Aliasnamen des Typs auf derGeräteseite und in der Meldung.

KommentarWertBeschreibungAttributeElement

Maximal 16 Zeichen.Ein gültiger RA-PID-Symbolna-me

Name des kom-plexen Typs.

NameRecord

Optional. Der Aliasname wirdauf der Geräteseite und in derMeldung verwendet.

SeilAliasname deskomplexen Typs.

Alias

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4253HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.3.4 Gerätekonfiguration

Fortsetzung

Page 426: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

FieldJedes Field-Element definiert ein Feldelement eines komplexen Typs. DasName-Attribut bestimmt den Namen des Feldes. Das Type-Attribut bestimmt denaufgezählten, komplexen oder einfachen Typ, der mit dem Feld verbunden ist. DasSize-Attribut definiert die Größe eines mehrdimensionalen Feldes. Das Link-Attributbestimmt, ob das Feld über eine interne Verbindung verfügt.

KommentarWertBeschreibungAttributeElement

Maximal 16 Zeichen. Gültigeinterne RAPID-Symbolnamen.Siehe Datenorchestrierungauf Seite 417.

Ein gültiger RA-PID-Symbolna-me

Name des kom-plexen Typfelds

NameField

Siehe Abschnitt UnterstützteDatentypen auf Seite 418.

Alle unterstütz-ten Datentypen

Datentyp des Fel-des

Type

Optional. Nur Grundtypenkönnen als Datenfeld definiertwerden.

IntegerDimensionen desFeldes (Größedes Datenfelds)

Size

Optional. Kann ausgelassenwerden, wenn das Feld übereine RAPID-Verbindung ver-fügt.

InternVerbindung deskomplexen Typ-felds

Link

Optional. Der Aliasname wirdauf der Geräteseite und in derMeldung verwendet.

SeilAliasname deskomplexen Typ-felds

Alias

PropertiesIm Properties-Abschnitt definiert jedes Property-Element eine RAPID-Variable, diein den SiGetCyclic- und SiSetCyclic-Instruktionen verwendet werden kann.

KommentarWertBeschreibungAttributeElement

Maximal 16 Zeichen.Ein gültiger RA-PID-Symbolna-me

Name der Eigen-schaft

NameProperty

Siehe Abschnitt UnterstützteDatentypen auf Seite 418.

Alle unterstütz-ten Datentypen

Datentyp der Ei-genschaft

Type

Optional. Nur Grundtypenkönnen als Datenfeld definiertwerden.

IntegerDimension (Grö-ße des Daten-felds)

Size

Optional. Kann ausgelassenwerden, wenn die Eigenschaftzum Lesen und Schreibenfreigegeben ist.

KeineReadOnlyWriteOnlyReadWrite

ZugriffsflagFlag

Obligatorisch, wenn das Feldüber eine RAPID-Verbindungverfügt.

InternVerbindung derEigenschaft

Link

Optional. Der Aliasname wirdauf der Geräteseite und in derMeldung verwendet.

SeilAliasname der Ei-genschaft

Alias

426 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.3.4 GerätekonfigurationFortsetzung

Page 427: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.4 Konfigurationsbeispiele

9.4.4.1 RAPID-Programmierung

RAPID-ModulEs muss ein RAPID-Modul erstellt und geladen werden, das die entsprechendenRAPID-Datensatzdeklarationen und Variablendeklarationen enthält.Die Benutzeroberfläche des FlexPendant ist nicht in RobotWare enthalten.

Anwendungshandbuch - Steuerungssoftware IRC5 4273HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.4.1 RAPID-Programmierung

Page 428: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.4.2 Beispielkonfiguration

ÜberblickDie Dateien Settings.xml, Description.xml und Configuration.xml befinden sich imOrdner HOME\GSI\

xx0800000177

Hinweis

Der Name des Ordners muss dem Namen des Geräts entsprechen. SieheGerätebeschreibung auf Seite421. In diesem Beispiel wurde der NameAnyDeviceverwendet.Die Netzwerkadresse, die in Description.xml verwendet wird, gehört zum PC,der den Server betreibt, und nicht zur Robotersteuerung. SieheGerätebeschreibung auf Seite 421.

Settings.xml<?xml version="1.0" encoding="utf-8"?>

<Settings>

<Servers>

<Servers/>

<Clients>

<Client Convention="CDP" Name="AnyDevice" />

</Clients>

</Settings

Description.xml<?xml version="1.0" encoding="utf-8"?>

<Description>

<Name>AnyDevice</Name>

<Convention>CDP</Convention>

<Type>IntelligentCamera</Type>

<Class>MachineVision</Class>

<Network Address="10.49.65.74" Port="Service">

<Channel Type="Cyclic" Protocol="Udp" Port="3002" />

Fortsetzung auf nächster Seite428 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.4.2 Beispielkonfiguration

Page 429: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

</Network>

<Settings>

<TimeOut>2000</TimeOut>

<MaxLost>30</MaxLost>

<DryRun>false</DryRun>

</Settings>

</Description>

Configuration.xml<?xml version="1.0" encoding="utf-8" ?>

<Configuration>

<Enums>

<Enum Name="OperationMode" Link="Intern">

<Member Name="Automatic" Alias="Auto" />

<Member Name="ReducedSpeed" Alias="ManRS" />

<Member Name="FullSpeed" Alias="ManFS" />

</Enum>

</Enums>

<Records>

<Record Name="RobotData">

<Field Name="OperationMode" Type="OperationMode" Link="Intern"Alias="RobMode" />

<Field Name="FeedbackTime" Type="Time" Link="Intern"Alias="Ts_act" />

<Field Name="FeedbackPose" Type="Frame" Link="Intern"Alias="P_act" />

<Field Name="FeedbackJoints" Type="Joints" Link="Intern"Alias="J_act" />

<Field Name="PredictedTime" Type="Time" Link="Intern"Alias="Ts_des" />

<Field Name="PlannedPose" Type="Frame" Link="Intern"Alias="P_des" />

<Field Name="PlannedJoints" Type="Joints" Link="Intern"Alias="J_des" />

<Field Name="ApplicationData" Type="Real" Size="18"Alias="AppData" />

</Record>

<Record Name="SensorData">

<Field Name="ErrorString" Type="String" Alias="EStr" />

<Field Name="ApplicationData" Type="Real" Size="18"Alias="AppData" />

</Record>

</Records>

<Properties>

<Property Name="RobData" Type="RobotData" Flag="WriteOnly"/>

<Property Name="SensData" Type="SensorData" Flag="ReadOnly"/>

</Properties>

</Configuration>

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4293HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.4.2 Beispielkonfiguration

Fortsetzung

Page 430: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

RAPID-KonfigurationDies ist ein Beispiel für eine RRI-Umsetzung. Die Out-Daten nutzen ein Datenfeldaus 18 num (robdata). Die In-Daten empfangen eine Zeichenfolge und ein Datenfeldaus 18 num (sensdata). Dies muss entsprechend der Configuration.xml der Dateidefiniert werden.

RECORD applicationdata

num Item1;

num Item2;

num Item3;

num Item4;

num Item5;

num Item6;

num Item7;

num Item8;

num Item9;

num Item10;

num Item11;

num Item12;

num Item13;

num Item14;

num Item15;

num Item16;

num Item17;

num Item18;

ENDRECORD

RECORD RobotData

applicationdata AppData;

ENDRECORD

RECORD SensorData

string ErrString;

applicationdata AppData;

ENDRECORD

! Sensor Declarations

PERS sensor AnyDevice := [1,4,0];

PERS RobotData RobData := [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];

PERS SensorData SensData :=["No",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];

! Setup Interface Procedure

PROC RRI_Open()

SiConnect AnyDevice;

! Send and receive data cyclic with 64 ms rate

SiGetCyclic AnyDevice, SensData, 64;

SiSetCyclic AnyDevice, RobData, 64;

ENDPROC

! Close Interface Procedure

PROC RRI_Close()

! Close the connection

SiClose RsMaster;

ENDPROC

ENDMODULE

Fortsetzung auf nächster Seite430 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.4.2 BeispielkonfigurationFortsetzung

Page 431: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Übermittelte XML-MeldungenIn jeder XML-Meldung ist der Name der Datenvariable als Stammelement mit denAttributen Id (die Meldungs-ID) und Ts (der Zeitstempel der Meldung) eingefügt.Die Unterelemente sind dann die Datensatzfelder. Die Werte eines multiplenWertfelds (Datenfeld oder Datensatz) werden als Attribute dargestellt.

Von der Robotersteuerung verschickte MeldungDie Zeiteinheit wird in Sekunden (Gleitkommazahl) mit einer Auflösung von 1 msangegeben. Die Positionseinheit (Länge) wird in Millimetern (Gleitkommazahl)angegeben. Die Positionseinheit (Winkel) wird in Bogenmaß angegeben.

BeschreibungDatentypName

Zuletzt empfangene Roboterdatenmel-dungs-ID

IntegerId

Zeitstempel (Meldung)GleitkommazahlTs

BetriebsmodusBetriebsmodusRobMode

Zeitstempel (tatsächliche Position)GleitkommazahlTS_act

Tatsächliche kartesische PositionPositionP_act

Tatsächliche AchsenpositionAchseJ_act

Zeitstempel (gewünschte Position)GleitkommazahlTS_des

Gewünschte kartesische PositionPositionP_des

Gewünschte AchsenpositionAchseJ_des

Frei definierte AnwendungsdatenDatenfeld aus 18 Gleitkom-mazahlen

AppData

<RobData Id="111" Ts="1.202" >

<RobMode>Auto</RobMode>

<Ts_act>1.200</Ts_act>

<P_act X="1620.0" Y="1620.0" Z="1620.0" Rx="100.0" Ry="100.0"Rz="100.0" />

<J_act J1="1.0" J2="1.0" J3="1.0" J4="1.0" J5="1.0" J6="1.0" />

<Ts_des>1.200</Ts_des>

<P_des X="1620.0" Y="1620.0" Z="1620.0" Rx="100.0" Ry="100.0"Rz="100.0" />

<J_des J1="1.0" J2="1.0" J3="1.0" J4="1.0" J5="1.0" J6="1.0" />

<AppData X1="1" X2="1620.000" X3="1620.000" X4="1620.000"X5="1620.000" X6="1620.000" X7="1620.000" X8="1620.000"X9="1620.000" X10="1620.000" X11="1620.000" X12="1620.000"X13="1620.000" X14="1620.000" X15="1620.000" X16="1620.000"X17="1620.000" X18="1620.000" />

</RobData>

Von Robotersteuerung empfangene MeldungDie Zeiteinheit wird in Sekunden (Gleitkommazahl) angegeben.

BeschreibungDatentypName

Zuletzt empfangene Datenmeldungs-ID.Diese ID muss mit der von der Roboter-steuerung verschickten ID übereinstim-men.

IntegerId

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4313HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.4.2 Beispielkonfiguration

Fortsetzung

Page 432: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungDatentypName

ZeitstempelGleitkommazahlTs

FehlermeldungenSeilEStr

Frei definierte AnwendungsdatenDatenfeld aus 18 Gleit-kommazahlen

AppData

Die entsprechende XML-Meldung im Netzwerk würde wie folgt aussehen:<SensData Id="111" Ts="1.234">

<EStr>xxxx</Estr>

<AppData X1="232.661" X2="1620.293" X3="463.932"

X4="1231.053" X5="735.874" X6="948.263" X7="2103.584"

X8="574.228" X9="65.406" X10="2372.633" X11="20.475"

X12="96.729" X13="884.382" X14="927.954" X15="748.294"

X16="3285.574" X17="583.293" X18="684.338" />

</SensData>

432 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.4.2 BeispielkonfigurationFortsetzung

Page 433: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.4.5 RAPID-Komponenten

Über die RAPID-KomponentenDies ist ein Überblick über alle Instruktionen, Funktionen und Datentypen in RobotReference Interface.Weitere Informationen finden Sie unter Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

Instruktionen

BeschreibungInstruktionen

Sensorschnittstelle verbindenSiConnect

Sensorschnittstelle schließenSiClose

Sensorschnittstelle zyklisch abrufenSiGetCyclic

Sensorschnittstelle zyklisch einstellenSiSetCyclic

FunktionenRobot Reference Interface enthält keine Funktionen.

Datentypen

BeschreibungDatentypen

Externer Gerätedeskriptorsensor

Kommunikationsstatus des Gerätssensorstate

Anwendungshandbuch - Steuerungssoftware IRC5 4333HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.4.5 RAPID-Komponenten

Page 434: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

9.5 Auto Acknowledge Input

BeschreibungDie RobotWare-Basisfunktion Auto Acknowledge Input ist eine Option zurAktivierung eines Systemeingangs, der den Dialog am FlexPendant automatischbestätigt, wenn die Betriebsart der Robotersteuerung vom manuellen Betrieb inden Automatikbetrieb wechselt.

WARNUNG

Beachten Sie, dass die Verwendung eines solchen Eingangs gegen dieVorschriften der Sicherheitsnorm ISO 10218-1 Kapitel 5.3.5 Single point of controlmit folgendem Inhalt verstößt:"The robot control system shall be designed and constructed so that when therobot is placed under local pendant control or other teaching device control,initiation of robot motion or change of local control selection from any othersource shall be prevented."Daher ist die Verwendung weiterer Sicherheitsvorkehrungen zwingend notwendig,um die Anforderungen des Standards und der Maschinenrichtlinie einzuhaltenund um eine Risikobewertung der vollständigen Zelle vornehmen zu können.Solche Zusatzvorkehrungen und Risikobewertungen fallen in denZuständigkeitsbereich des Systemintegrators, und das System darf erst nachDurchführung dieser Maßnahmen in Betrieb genommen werden.

Fernsteuerung des BetriebsmodusInformationen zur Verwendung des Sicherheitsmoduls und einer SPS für eineFernsteuerung des Betriebsmodus finden Sie hier:Anwendungshandbuch - Funktionale Sicherheit und SafeMove2.

EinschränkungenDer Systemparameter kann nicht mit FlexPendant oder RobotStudio definiertwerden, sondern nur mit einer Zeichenfolge in der E/A-Konfigurationsdatei.

Aktivieren von Auto Acknowledge InputBei der Installation des Robotersystems muss die Option Auto Acknowledge Inputim Installation Manager aktiviert sein.Gehen Sie wie folgt vor, um den Systemeingang für Auto Acknowledge Input zuaktivieren.

Aktion

Speichern Sie eine Kopie der E/A-Konfigurationsdatei eio.cfg mit FlexPendant oderRobotStudio.

1

Bearbeiten Sie die E/A-Konfigurationsdatei eio.cfg mit einem Texteditor. Fügen Sieder Gruppe SYSSIG_IN die folgende Zeile hinzu:

-Signal "my_signal_name" -Action "AckAutoMode"

2

my_signal_name ist der Name des konfigurierten digitalen Eingangssignal, das alsSystemeingang verwendet werden soll.

Fortsetzung auf nächster Seite434 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.5 Auto Acknowledge Input

Page 435: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Aktion

Speichern Sie die Datei und laden Sie sie erneut auf die Steuerung.3

Um das Signal zu aktivieren, System neu starten.4

Anwendungshandbuch - Steuerungssoftware IRC5 4353HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

9 Engineering tools9.5 Auto Acknowledge Input

Fortsetzung

Page 436: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Diese Seite wurde absichtlich leer gelassen

Page 437: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10 Tool control options10.1 Servo Tool Change [630-1]

10.1.1 Überblick

ZweckÜber „Servo Tool Change“ können Werkzeuge online ausgewechselt werden.Mithilfe der Option „Servo Tool Change“ ist es möglich, die Kabel vom Motor einerzusätzlichen Achse zu trennen und an den Motor einer anderen zusätzlichen Achseanzuschließen. Dies kann während der Fertigung geschehen.Diese Option ist für Servowerkzeuge gedacht, kann aber für zusätzliche Achsenjeder Art verwendet werden.Vorteile – Beispiele:

• Mit einem Roboter können mehrere Werkzeuge gehandhabt werden.• Es wird weniger Ausrüstung benötigt, da ein einziges Antriebs-Messsystem

für mehrere Werkzeuge verwendet werden kann.

Enthaltene KomponentenDie RobotWare-Option „Servo Tool Change“ ermöglicht Ihnen Folgendes:

• Werkzeug online wechseln• Zwischen bis zu 8 verschiedenen Servowerkzeugen wechseln.

Beachten Sie, dass die Option „Servo Tool Change“ nur die Softwarefunktionalitätenthält. Hardware, wie zum Beispiel ein Werkzeugwechsler, ist nicht inbegriffen.

Grundlegende MethodeDies ist die allgemeine Methode zum Verwenden von „Servo Tool Change“. Eineausführlichere Beschreibung zur Vorgehensweise finden Sie unterVorgehensweisefür den Werkzeugwechsel auf Seite 443.

1 Deaktivieren Sie das erste Werkzeug.2 Ziehen Sie die Kabel vom ersten Werkzeug ab.3 Schließen Sie die Kabel an das zweite Werkzeug an.4 Aktivieren Sie das zweite Werkzeug.

Anwendungshandbuch - Steuerungssoftware IRC5 4373HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.1.1 Überblick

Page 438: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.1.2 Anforderungen und Einschränkungen

Externe AchsenZur Verwendung der Servomotorsteuerung müssen Sie über die Option „ExterneAchsen“ verfügen. Alle externen Achsen, die von der Servomotorsteuerungverwendet werden, müssen gemäß den Instruktionen im Anforderungen undEinschränkungen auf Seite 438 konfiguriert werden.

Werkzeug WechslerZum Wechseln der Werkzeuge während der Fertigung für das Anschließen derKabel erfordert der Werkzeugwechsler eine mechanische Schnittstelle.

en0300000549

Alle Kabel sind mit dem Werkzeugwechsler verbunden. ZurWerkzeugwechsler-Schnittstelle gehören Verbindungen für Signale, Strom, Luft,Wasser und alles, was zum oder vom Werkzeug übertragen werden muss.

Bis zu 8 WerkzeugeIn einer Robotersteuerung können bis zu 8 externe Achsen (Servowerkzeuge oderandere Achsen) gleichzeitig installiert sein. Bei einigen (oder allen) Achsen kannes sich um Servowerkzeuge handeln, die einen Werkzeugwechsler gemeinsamverwenden.

Bewegen des deaktivierten WerkzeugsDie Steuerung speichert die Position eines deaktivierten Werkzeugs. Wenn dasWerkzeug wieder verbunden und aktiviert wird, wird diese Position verwendet.Wenn die Servowerkzeugachse während der Deaktivierung bewegt wird, befindetsich die Achse nach der Aktivierung möglicherweise in einer falschen Position.Dieser Fehler wird von der Steuerung nicht erkannt.

Fortsetzung auf nächster Seite438 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.1.2 Anforderungen und Einschränkungen

Page 439: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Die Achse befindet sich nach der Aktivierung in der richtigen Position, wenn sienicht bewegt wurde, oder wenn die Bewegung weniger als 0,5 Motorumdrehungenbetragen hat.

Tipp

Wenn Sie über die Option „Spot Servo“ verfügen, können Sie dieWerkzeugwechselkalibrierung verwenden.Rufen Sie nach der Aktivierung eines Werkzeugs die Instruktion STCalib auf,um das Werkzeug zu kalibrieren. Dadurch werden alle Positionsfehler behoben,die durch Werkzeugbewegungen während der Deaktivierung verursacht wurden.

Aktivierung des falschen WerkzeugsEine nicht verbundene mechanische Einheit darf nicht aktiviert werden.Die Aktivierung der falschen mechanischen Einheit kann unerwartete Bewegungenoder Fehler verursachen. Die gleichen Fehler treten auf, wenn ein Werkzeug aktiviertwird, wenn noch gar kein Werkzeug verbunden wurde.

Tipp

Ein Verbindungsrelais kann konfiguriert werden, sodass die Aktivierung einermechanischen Einheit nur zulässig ist, wenn sie verbunden ist. SieheVerbindungsrelais auf Seite 441.

Anwendungshandbuch - Steuerungssoftware IRC5 4393HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.1.2 Anforderungen und Einschränkungen

Fortsetzung

Page 440: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.1.3 Konfiguration

Übersicht über die KonfigurationDie Option „Servo Tool Change“ ermöglicht die Konfiguration mehrerer Werkzeugefür dieselbe zusätzliche Achse.Für jedes Zangenwerkzeug wird ein einzelner Parametersatz installiert.

Konfigurieren aller WerkzeugeJedes Werkzeug wird so konfiguriert, als ob es das einzige Werkzeug wäre.Informationen zur Vorgehensweise finden Sie unter Konfiguration auf Seite 440.Der ParameterDeactivate PTC superv. at disconnect (PTC-Überw. beim Abschaltendeaktivieren) muss im Typ Mechanische Einheit auf „Ja“ gesetzt werden.Der Parameter Disconnect deactivate (Trennen deaktivieren) muss im TypMesskanal auf „Ja“ gesetzt werden.Der Parameter Logische Achse im Typ Gelenk kann für mehrere Werkzeuge aufdie gleiche Zahl gesetzt werden. Da die Werkzeuge nie zur selben Zeit genutztwerden, ist es den Werkzeugen möglich, dieselbe logische Achse zu verwenden.Der Parameter „allow_activation_from_any_motion_task“ (Aktivierung durch jedeBewegungstask erlauben) muss im Typ „Mechanische Einheit“ für die spezifischeServozange gesetzt werden. Die .cfg-Dateien der Servozange werden vom Herstellerder Servozange erstellt.Eine ausführliche Beschreibung des entsprechendes Parameters finden Sie imKonfiguration auf Seite 440.

440 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.1.3 Konfiguration

Page 441: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.1.4 Verbindungsrelais

ÜberblickEs kann ein Verbindungsrelais genutzt werden, um sicherzustellen, dass einegetrennte mechanische Einheit nicht aktiviert wird. Ein Verbindungsrelais kannverhindern, dass eine mechanische Einheit aktiviert wird, es sei denn, einspezifisches digitales Signal ist festgelegt.Einige Werkzeugwechsler unterstützen E/A-Signale, die angeben, welche Zangegegenwärtig angeschlossen ist. Dann wird ein digitales Eingangssignal desWerkzeugwechslers vom Verbindungsrelais genutzt.Wenn der Werkzeugwechsler keine E/A-Signale unterstützt, kann ein ähnlichesVerhalten mit RAPID-Instruktionen hervorgerufen werden. Setzen Sie jedes Mal,wenn das Werkzeug verbunden ist, mit der Instruktion SetDO ein digitalesAusgangssignal auf 1, und setzen Sie das Signal auf 0, wenn das Werkzeug getrenntist.

SystemparameterHier erhalten Sie eine kurze Beschreibung der Parameter, mit denen einVerbindungsrelais konfiguriert wird. Weitere Informationen finden Sie unter demjeweiligen Parameter im Verbindungsrelais auf Seite 441Die folgenden Parameter müssen für den Typ Mechanische Einheit in derParametergruppe Bewegung gesetzt werden:

BeschreibungParameter

Der Name des zu benutzenden Relais.Verbindungsre-lais verwenden Entspricht dem im ParameterName im TypRelais angegebenen Namen.

Die folgenden Parameter müssen für den Typ Relais in der ParametergruppeBewegung gesetzt werden:

BeschreibungParameter

Name des Relais.NameWird vom Parameter Verbindungsrelais verwenden im Typ MechanischeEinheit verwendet.

Der Name des digitalen Signals, das angibt, ob die mechanische Einheitaktiviert werden kann.

Eingangssi-gnal

Beispiel für eine Verbindungsrelais-KonfigurationIn diesem Beispiel wird gezeigt, wie Verbindungsrelais für zwei Zangenwerkzeugekonfiguriert werden können: gun1 kann nur aktiviert werden, wenn Signal di1 gleich1 ist, und gun2 kann nur aktiviert werden, wenn di2 gleich 1 ist.Wenn der Werkzeugwechsler di1 nur auf 1 setzt, wenn gun1 angeschlossen istund di2 nur auf 1 setzt, wenn gun2 angeschlossen ist, besteht kein Risiko, diefalsche Zange zu aktivieren.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4413HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.1.4 Verbindungsrelais

Page 442: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Die folgenden Parameterwerte sind für gun1 und gun2 im Typ Mechanische Einheitgesetzt:

Verbindungsrelais verwendenName

gun1_relaygun1

gun2_relaygun2

Die folgenden Parameterwerte sind für gun1 und gun2 im Typ Relais gesetzt:

EingangssignalName

di1gun1_relay

di2gun2_relay

442 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.1.4 VerbindungsrelaisFortsetzung

Page 443: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.1.5 Vorgehensweise für den Werkzeugwechsel

Wechseln des WerkzeugsDies ist eine kurze Beschreibung der Änderung von gun1 zu gun2.

AktionSchritt

Deaktivieren Sie gun1 mit folgender Instruktion: DeactUnit gun1;1

Trennen Sie gun1 vom Werkzeugwechsler.2

Verbinden Sie gun2 mit dem Werkzeugwechsler.3

Aktivieren Sie gun2 mit folgender Instruktion: ActUnit gun2;4

Optional, aber empfohlen:5Kalibrieren Sie gun2 mit der Instruktion: STCalib gun1 \ToolChg;Beachten Sie, dass diese Kalibrierung die Option „Servo Tool Control“ oder „SpotServo“ erfordert.

Anwendungshandbuch - Steuerungssoftware IRC5 4433HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.1.5 Vorgehensweise für den Werkzeugwechsel

Page 444: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.1.6 Bewegungs-Servowerkzeuge bei Aktivierung deaktiviert

ÜberblickEs kann immer nur eines der Servowerkzeuge, die über den Werkzeugwechslerbenutzt werden, aktiviert sein, die restlichen werden bei Aktivierung deaktiviert.Dadurch wird sichergestellt, dass das verbundene Servowerkzeug, das vomBenutzer bewegt wird, richtig konfiguriert ist.

Weitere Vorgehensweise, wenn „Aktivierung deaktiviert“ angezeigt wirdFolgen Sie diesen Schritten, wenn Sie ein Servowerkzeug bewegen müssen, dieEinheit jedoch nicht aktivieren können, da die Aktivierung deaktiviert ist.

AktionSchritt

Stellen Sie sicher, dass das richtige Servowerkzeug am Werkzeugwechsler montiertwird. Bei einer falschen Werkzeugmontage siehe Vorgehensweise für den Werk-zeugwechsel auf Seite 443.

1.

Wenn kein Werkzeug aktiviert ist, öffnen Sie die Ausführung von RAPID, und ak-tivieren Sie das richtige Werkzeug.

2.

Wenn das richtige Werkzeug am Werkzeugwechsler montiert ist, deaktivieren Siedas falsche Werkzeug, und aktivieren Sie das richtige Werkzeug in der Ausführungvon RAPID.

3.

444 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.1.6 Bewegungs-Servowerkzeuge bei Aktivierung deaktiviert

Page 445: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2 Tool Control [1180-1]

10.2.1 Überblick

ZweckTool Control kann verwendet werden, um ein Servowerkzeug zu steuern, zumBeispiel in einer Punktschweißanwendung. Mit Tool Control kann das Werkzeugauf eine bestimmte Blechdicke und Kraft geschlossen und die Kraft während desProzesses gehalten werden, bis das Werkzeug geöffnet werden soll.

Enthaltene KomponentenTool Control bietet Ihnen Zugang zu:

• RAPID-Instruktionen zum Öffnen, Schließen und Kalibrieren vonServowerkzeugen

• RAPID-Instruktionen zum Einstellen von Systemparameterwerten• RAPID-Funktionen zum Überprüfen des Status von Servowerkzeugen• Systemparameter zum Konfigurieren von Servowerkzeugen

Grundlegende MethodeDies ist die allgemeine Methode für die Verwendung von Tool Control.

1 Konfigurieren und kalibrieren Sie das Servowerkzeug.2 Führen Sie eine Kraftkalibrierung durch.3 Erstellen Sie das RAPID-Programm.

VoraussetzungenEin Servowerkzeug ist eine zusätzliche Achse. Die Option Additional Axes mussauf dem Robotersystem, das ein Servowerkzeug verwendet, vorhanden sein. Dieerforderliche Hardware wie beispielsweise Antriebsmodul und Messbaugruppewird in Anwendungshandbuch - Zusätzliche Achsen und Standalone-Steuerungangegeben.

Anwendungshandbuch - Steuerungssoftware IRC5 4453HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.1 Überblick

Page 446: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2.2 Bewegungen des Servowerkzeugs

Schließen und Öffnen eines ServowerkzeugsDas Servowerkzeug kann bis zu einer vordefinierten Blechdicke und Elektrodenkraftgeschlossen werden. Wenn die Elektroden die programmierte Kontaktpositionerreichen, wird die Bewegung angehalten und es gibt einen sofortigen Wechselvom Positionssteuerungsmodus zum Kraftsteuerungsmodus. ImKraftsteuerungsmodus wird ein Motordrehmoment angewendet, um die gewünschteElektrodenkraft zu erreichen.Die Kraft bleibt konstant, bis ein Befehl zum Öffnen erteilt wird. Durch das Öffnendes Werkzeugs wird die Werkzeugkraft auf null verringert, und der Werkzeugarmwird auf die Position vor dem Schließen zurückbewegt.

Synchrone und asynchrone BewegungenNormalerweise wird eine Servowerkzeugachse synchron mit denRoboterbewegungen bewegt, sodass beide Bewegungen genau gleichzeitigausgeführt werden. Das Servowerkzeug wird jedoch möglicherweise asynchrongeschlossen (unabhängig von der aktuellen Roboterbewegung). Durch dasSchließen wird sofort der Werkzeugarm zur erwarteten Kontaktposition (Dicke)bewegt. Die Schließbewegung unterbricht eine laufende synchrone Bewegung desWerkzeugarms.Das Öffnen des Werkzeugs kann auch erfolgen, während sich der Roboter bewegt.Dies ist jedoch nicht möglich, wenn die Roboterbewegung eine synchronisierteBewegung der Servowerkzeugachse umfasst. Es wird der Bewegungsfehler „Öffnendes Werkzeugs konnte nicht mit der Roboterbewegung synchronisiert werden“ausgegeben.

446 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.2 Bewegungen des Servowerkzeugs

Page 447: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2.3 Elektrodenverwaltung

Über die ElektrodenverwaltungMit der Funktionalität „Elektrodenverwaltung“ wird die Kontaktposition derWerkzeugelektroden automatisch gesucht und kalibriert. Außerdem wird derGesamtverschleiß der Werkzeugelektroden aktualisiert und überwacht.Die Elektroden können mithilfe der RAPID Anweisung STCalib kalibriert werden(siehe Instruktionen auf Seite 450). Normalerweise werden während einerKalibrierung zwei Schließungen des Werkzeugs durchgeführt.Es werden drei verschiedene Kalibrierungstypen unterstützt: Elektrodenverschleiß,Elektrodenwechsel und Werkzeugwechsel. Mit allen drei Kalibrierungstypen wirddie Kontaktposition der Elektroden kalibriert. Jedoch wird derGesamtelektrodenverschleiß mit diesen Methoden auf unterschiedliche Weiseaktualisiert.

ElektrodenverschleißkalibrierungWenn die Elektroden verschleißen, beispielsweise beim Punktschweißen, müssensie aufbereitet werden. Nach der Elektrodenaufbereitung, muss eineElektrodenverschleißkalibrierung erfolgen. Die Werkzeugkontaktposition wirdkalibriert, und der Gesamtelektrodenverschleiß des Werkzeugs wird aktualisiert.Die Kalibrierungsbewegungen werden schnell ausgeführt, und der Wechsel in denKraftsteuerungsmodus erfolgt in der Nullposition.Diese Methode darf nur für geringe Positionsanpassungen (< 3 mm) verwendetwerden, die aufgrund von Elektrodenverschleiß/Elektrodenaufbereitung erforderlichsind.

Tipp

Eine Variable im RAPID-Programm kann auf den Elektrodenverschleiß achtenund Sie informieren, wenn die Elektroden ersetzt werden müssen.

ElektrodenwechselkalibrierungDie Elektrodenwechselkalibrierung wird nach der Montage eines neuenElektrodenpaars verwendet, beispielsweise beim Punktschweißen. DieWerkzeugkontaktposition wird kalibriert, und der Gesamtelektrodenverschleiß desWerkzeugs wird zurückgesetzt. Die erste Kalibrierungsbewegung erfolgt langsam,um die unbekannte Kontaktposition zu finden und in den Kraftsteuerungsmoduszu wechseln. Die zweite Kalibrierungsbewegung erfolgt schnell. Mit dieserKalibrierungsmethode werden umfangreiche Positionsanpassungen desServowerkzeugs gehandhabt.Nach der Kalibrierung kann das Werkzeug geschlossen werden, um die Elektrodenan ihre ordnungsgemäße Position zu drücken. Anschließend erfolgt eine neueElektrodenwechselkalibrierung, um mögliche Positionsabweichungen nach demZusammendrücken der Elektroden zu aktualisieren.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4473HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.3 Elektrodenverwaltung

Page 448: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

WerkzeugwechselkalibrierungDie Werkzeugwechselkalibrierung wird nach dem erneuten Anschließen undAktivieren eines Servowerkzeugs verwendet. Die Werkzeugkontaktposition wirdkalibriert, und der Gesamtelektrodenverschleiß des Werkzeugs bleibt unverändert.Die erste Kalibrierungsbewegung erfolgt langsam, um die unbekannte Positionder Elektrodenkollision zu finden und in den Kraftsteuerungsmodus zu wechseln.Die zweite Kalibrierungsbewegung erfolgt schnell. Mit dieser Kalibrierungsmethodewerden umfangreiche Positionsanpassungen des Werkzeugs gehandhabt.Die Methode muss immer nach dem erneuten Anschließen eines Werkzeugsverwendet werden, weil das Werkzeug bei der Aktivierung auf die letzte bekanntePosition zurückgesetzt wird und sich diese Position von der tatsächlichenWerkzeugposition unterscheiden kann. Der Werkzeugarm wurde möglicherweisebewegt, als das Werkzeug nicht angeschlossen war. Mit dieserKalibrierungsmethode werden umfangreiche Positionsanpassungen des Werkzeugsgehandhabt.

Tipp

Die Werkzeugwechselkalibrierung wird am häufigsten zusammen mit derRobotWare-Option „Servo Tool Change“ verwendet.

448 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.3 ElektrodenverwaltungFortsetzung

Page 449: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2.4 Überwachung

Max. und min. AnschlagEine Überwachung der Überschreitung des zulässigen Bereichs hält die Bewegungan, wenn das Werkzeug den maximalen Anschlag erreicht oder wenn esgeschlossen ist, sodass sich seine Elektroden berühren (Erreichen des minimalenAnschlags). Siehe Upper Joint Bound und Lower Joint Bound in Arm auf Seite453.

BewegungsüberwachungWährend der Positionssteuerungsphase des Öffnens/Schließens ist dieBewegungsüberwachung für das Servowerkzeug aktiviert, um zu erkennen, obder Arm mit Objekten kollidiert oder hängen bleibt. Eine Kollision führt zu einemBewegungsfehler, und die Bewegung wird angehalten.Während der Kraftsteuerungsphase überwacht die Bewegungsüberwachung dieWerkzeugarmposition, damit diese nicht einen bestimmten Abstand von dererwarteten Kontaktposition überschreitet. Siehe Parameter Max Force ControlPosition Error in Supervision Type auf Seite 454.

Maximales DrehmomentEs gibt ein maximales Motordrehmoment für das Servowerkzeug, das niemalsüberschritten wird, um das Werkzeug vor Schäden zu schützen. Wenn dieÜberschreitung des zulässigen Kraftbereichs entsprechend derKraft-Drehmoment-Tabelle des Werkzeugs programmiert ist, wird die ausgegebeneKraft auf dieses maximal zulässige Motordrehmoment begrenzt, und es wird eineBewegungswarnung protokolliert. Siehe ParameterMax ForceControl Motor Torquein SG Process auf Seite 451.

GeschwindigkeitsbeschränkungWährend der Kraftsteuerungsphase gilt eine Geschwindigkeitsbegrenzung. DieGeschwindigkeitsbegrenzung ermöglicht das gesteuerte Verhalten des Werkzeugs,auch wenn die Kraftsteuerung beginnt, bevor das Werkzeug vollständig geschlossenist. Siehe Speed limit 1- 6 in Force Master Control auf Seite 452.

Anwendungshandbuch - Steuerungssoftware IRC5 4493HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.4 Überwachung

Page 450: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2.5 RAPID-Komponenten

Informationen zu den RAPID-KomponentenDies ist ein Überblick über alle Anweisungen, Funktionen und Datentypen in ToolControl.Weitere Informationen finden Sie unter Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

Instruktionen

BeschreibungInstruktion

Schließen Sie das Servowerkzeug mit einer vordefinierten Kraft undDicke.

STClose

Öffnen Sie das Servowerkzeug.STOpen

Kalibrieren Sie das Servowerkzeug.STCalib

Ein Argument bestimmt, welcher Kalibrierungstyp ausgeführt wird:• \ToolChg für Werkzeugwechselkalibrierung• \TipChg für Elektrodenwechselkalibrierung• \TipWear für Elektrodenverschleißkalibrierung

Abstimmen von Bewegungsparametern für das Servowerkzeug. Eintemporärer Wert kann für einen Parameter eingestellt werden, der inder Instruktion angegeben wird.

STTune

Setzen Sie die Bewegungsparameter für das Servowerkzeug zurück.Brechen Sie die Auswirkung aller STTune-Instruktionen ab.

STTuneReset

Funktionen

BeschreibungFunktion

Prüfen Sie, ob das Servowerkzeug geschlossen ist.STIsClosed

Prüfen Sie, ob das Servowerkzeug geöffnet ist.STIsOpen

Prüft, ob ein Servowerkzeug kalibriert ist.STIsCalib

Berechnen Sie das Motordrehmoment für ein Servowerkzeug.STCalcTorque

Berechnen Sie die Kraft für ein Servowerkzeug.STCalcForce

Prüft, ob eine mechanische Einheit ein Servowerkzeug ist.STIsServoTool

Prüft, ob sich ein Servowerkzeug im unabhängigen Modus befindet.STIsIndGun

DatentypenTool Control enthält keine RAPID Datentypen.

450 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.5 RAPID-Komponenten

Page 451: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2.6 Systemparameter

Über die SystemparameterBei der Verwendung eines Servowerkzeugs wird normalerweise eineBewegungsparameterdatei auf der Steuerung installiert. Ein Servowerkzeug isteine spezielle Variante einer zusätzlichen Achse. Eine Beschreibung für dieKonfiguration des Servowerkzeugs finden Sie inAnwendungshandbuch - Zusätzliche Achsen und Standalone-Steuerung.In diesem Abschnitt werden die Parameter, die in Kombination mit Tool Controlverwendet werden, kurz beschrieben. Weitere Informationen finden Sie unter dementsprechenden Parameter in Technisches Referenzhandbuch - Systemparameter.

SG ProcessDiese Parameter gehören zum Typ SG Process in der Parametergruppe Motion.SG Process wird verwendet, um das Verhalten einer Servozange (oder einesanderen Servowerkzeugs) zu konfigurieren.

BeschreibungParameter

Anpassung der angewiesenen minimalen Schließzeit der Zange.Close Time Adjust

Anpassung der angewiesenen Position (Blechdicke), an der dieKraftsteuerung beim Schließen der Zange starten soll.

Close Position Adjust

Verzögert das Ereignis „Close Ready“ nach dem Erreichen der an-gewiesenen Kraft.

Force Ready Delay

Maximal zulässiges Motordrehmoment für die Kraftsteuerung. An-gewiesene Kraft wird reduziert, wenn das erforderliche Motordreh-moment diesen Wert überschreitet.

Max Force ControlMotor Torque

Auslösezeit des Ereignisses „Open Ready“. Dies kann verwendetwerden, um das Öffnen der Zange mit der nächsten Roboterbewe-gung zu synchronisieren.

Post-synchronizationTime

Bestimmt, wie oft die Servozange bei einer Elektrodenverschleißka-librierung geschlossen wird.

Calibration Mode

Die minimale Elektrodenkraft, die bei einer Elektrodenverschleißka-librierung verwendet wird.

Calibration Force Low

Die maximale Elektrodenkraft, die bei einer Elektrodenverschleißka-librierung verwendet wird.

Calibration ForceHigh

Die Zeit, die die Servozange bei der Kalibrierung in geschlossenerPosition wartet.

Calibration Time

Definiert die Anzahl der Punkte in der Kraft-Drehmoment-Relation,die in Tip Force 1 - 10 und Motor Torque 1 - 10 angegeben werden.

Number of StoredForces

Tip Force 1 bestimmt die Elektrodenkraft, die dem Motordrehmomentin Motor Torque 1 entspricht.

Tip Force 1 - 10

Tip Force 2 entspricht Motor Torque 2 usw.

Motor Torque 1 bestimmt das Motordrehmoment, das der Elektro-denkraft in Tip Force 1 entspricht.

Motor Torque 1- 10

Motor Torque 2 entspricht Tip Force 2 usw.

Bestimmt die Achsenposition auf jeder Kraftebene in der Kraftkali-brierungstabelle.

Squeeze Position 1 -10

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4513HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.6 Systemparameter

Page 452: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

Bestimmt, wie lange die Kraft gehalten wird, wenn ein Nachlauf beikonstanter Kraft auftritt.

Soft Stop Timeout

Force MasterDiese Parameter gehören zum Typ Force Master in der Parametergruppe Motion.Mit Hilfe von Force Master wird das Verhalten der Servozange während derKraftsteuerung definiert. Die Parameter wirken sich nur auf die Servozange aus,wenn diese sich im Modus Kraftsteuerung befindet.

BeschreibungParameter

Die Frequenzbeschränkung für den Tiefpassfilter für Referenzwer-te.

References Bandwidth

Bestimmt, ob die Rampe der Elektrodenkraft eine konstante Zeitoder einen konstanten Gradienten verwenden soll.

Use ramp time

Bestimmt, wie schnell die Kraft aufgebaut wird, während sich dasWerkzeug schließt, wenn Use ramp time auf „Nein“ eingestellt ist.

Ramp when IncreaseForce

Bestimmt, wie schnell die Kraft aufgebaut wird, während sich dasWerkzeug schließt, wenn Use ramp time auf „Ja“ eingestellt ist.

Ramp time

Die Frequenzbeschränkung für den Tiefpassfilter, der für die Kali-brierung des Elektrodenverschleißes verwendet wird.

Collision LP Bandwidth

Bestimmt, wie fest die Werkzeugelektroden beim ersten Schließender Zange mit neuen Elektrodenkalibrierungen und Werkzeugwech-selkalibrierungen aneinander gedrückt werden.

Collision Alarm Torque

Bestimmt die Geschwindigkeit der Servozange beim erstenSchließen, nachdem neue Elektroden und Werkzeugwechsel kali-briert wurden.

Collision Speed

Definiert die Entfernung, die das Servowerkzeug über die Kontakt-position hinaus zurückgelegt hat, wenn das Motordrehmomentden Wert erreicht hat, der in Collision Alarm Torque angegebenist.

Collision Delta Position

Bestimmt, wie nah sich die Werkzeugelektroden an der angewie-senen Blechdicke befinden müssen, bevor die Kraftsteuerungbeginnt.

Max pos err. closing

Verzögert den Start der Drehmomentrampe, wenn die Kraftsteue-rung gestartet wird.

Delay ramp

Bestimmt, ob für die Beurteilung der Kontaktposition die Rückfüh-rungsposition anstelle der Referenzposition benutzt werden soll.

Ramp to real contact

Force Master ControlDiese Parameter gehören zum Typ Force Master Control in der ParametergruppeMotion.Force Master Control wird zur Definition der Beschränkung undSchleifenverstärkung der Geschwindigkeit als Funktion des Drehmomentsverwendet.

BeschreibungParameter

Die Anzahl der verwendeten Punkte zur Definition der Beschränkungund Schleifenverstärkung der Geschwindigkeit als Funktion desDrehmoments. Bis zu 6 Punkte können definiert werden.

No. of speed limits

Fortsetzung auf nächster Seite452 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.6 SystemparameterFortsetzung

Page 453: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

Das Niveau des Drehmoments, das der Elektrodenkraft der angewie-senen Geschwindigkeit entspricht, für die die Werte für Beschränkungund Schleifenverstärkung der Geschwindigkeit definiert werden.

torque 1 - torque 6

Speed Limit 1 bis Speed Limit 6 werden zur Definition der Höchstge-schwindigkeit, abhängig von der angewiesenen Elektrodenkraft, ver-wendet.

Speed Limit 1 - 6

Kv 1 bisKv 6wird zur Definition der Schleifenverstärkung der Geschwin-digkeit verwendet. Mit diesem Parameter wird bei einer Überschreitungder Geschwindigkeitsbeschränkung die Geschwindigkeit reduziert.

Kv 1 - 6

ArmDiese Parameter gehören zum Typ Arm in der Parametergruppe Motion.Der Typ Arm definiert die Eigenschaften eines Arms.

BeschreibungParameter

Definiert die obere Grenze des Arbeitsbereichs für die Achse.Upper Joint Bound

Definiert die untere Grenze des Arbeitsbereichs für die Achse.Lower Joint Bound

Acceleration DataDiese Parameter gehören zum Typ Acceleration Data in der ParametergruppeMotion.AccelerationDatawird verwendet, um einige Beschleunigungsmerkmale für Achsenohne dynamisches Modell anzugeben.

BeschreibungParameter

Motorbeschleunigung im ungünstigsten Fall.Nominal Acceleration

Motorverlangsamung im ungünstigsten Fall.Nominal Deceleration

Gibt an, wie schnell die Beschleunigung erhöht werden kann.Acceleration Derivate Ratio

Gibt an, wie schnell die Verlangsamung erhöht werden kann.Deceleration Derivate Ratio

Motor TypeDiese Parameter gehören zum Typ Motor Type in der Parametergruppe Motion.Motor Type wird verwendet, um Eigenschaften für einen Motor zu beschreiben.

BeschreibungParameter

Definiert die Anzahl der Polpaare für den Motor.Pole Pairs

Die Motorträgheit einschließlich Resolver, aber ohne Bremse.Inertia

Das kontinuierliche Kippmoment, d. h. das Moment, das der Motorbei null Geschwindigkeit und für eine unbegrenzte Dauer erzeugenkann.

Stall Torque

Nennspannungskonstante. Die induzierte Spannung (Phase-Phase),die der Geschwindigkeit 1 rad/s entspricht.

ke Phase to Phase

Maximaler Strom ohne irreversible Magnetisierung.Max Current

Nominaler Wicklungswiderstand pro Phase bei 20 Grad Celsius.Phase Resistance

Nominaler induktiver Wicklungswiderstand pro Phase bei null Strom.Phase Inductance

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4533HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.6 Systemparameter

Fortsetzung

Page 454: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Motor CalibrationDiese Parameter gehören zum Typ Motor Calibration in der ParametergruppeMotion.Motor Calibration wird verwendet, um einen Motor zu kalibrieren.

BeschreibungParameter

Definiert die Position des Motors (Resolver), wenn sich der Rotor inder elektrischen Nullposition relativ zum Stator befindet.

Commutator Offset

Definiert die Position des Motors (Resolver), wenn er sich in der Ka-librierposition befindet.

Calibration Offset

Stress Duty CycleDiese Parameter gehören zum Typ Stress Duty Cycle in der ParametergruppeMotion.Stress Duty Cycle wird zum Schutz von Achsen, Getrieben usw. verwendet.

BeschreibungParameter

Die zu verwendende absolute Höchstgeschwindigkeit des Motors.Speed Absolute Max

Das zu verwendende absolute Höchstdrehmoment des Motors.Torque Absolute Max

Supervision TypeDiese Parameter gehören zum Typ Supervision Type in der ParametergruppeMotion.Supervision Type wird zur kontinuierlichen Überwachung von Position,Geschwindigkeit und Drehmoment verwendet.

BeschreibungParameter

Wenn sich eine Servozange im Kraftsteuerungsmodus befindet, darfsie sich nur die Strecke bewegen, die in Max Force Control PositionError angegeben ist. Diese Überwachung schützt das Werkzeug, wennbeispielsweise eine Elektrode verloren geht.

Max Force ControlPosition Error

Faktor des Geschwindigkeitsfehlers während der Kraftsteuerung.Max Force ControlSpeed Limit Wenn die Geschwindigkeitsbeschränkung, definiert in Typ Force

Master Control, multipliziert mit Max Force Control Speed Limit über-schritten wird, werden alle Bewegungen angehalten.

TransmissionDiese Parameter gehören zum Typ Transmission in der Parametergruppe Motion.Transmission wird zur Definition des Übersetzungsverhältnisses zwischen einemMotor und seiner Achse verwendet.

BeschreibungParameter

Definiert, ob die Achse rotiert oder linear ist.Rotating Move

Definiert das Übersetzungsverhältnis zwischen Motor undAchse.

Transmission Gear Ratio

Fortsetzung auf nächster Seite454 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.6 SystemparameterFortsetzung

Page 455: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Lag Control Master 0Diese Parameter gehören zum Typ Lag Control Master 0 in der ParametergruppeMotion.Lag Control Master 0 wird für die Regulierung von Achsen ohne dynamischesModell verwendet.

BeschreibungParameter

Definiert, ob die Positionsregulierung den Vorschub mit den Ge-schwindigkeits- und Drehmomentwerten verwendet.

FFW Mode

Proportionale Verstärkung in der Positionsregulierungsschleife.Kp, Gain Position Loop

Proportionale Verstärkung in der Geschwindigkeitsregulierungs-schleife.

Kv, Gain Speed Loop

Integrationszeit in der Geschwindigkeitsregulierungsschleife.Ti Integration TimeSpeed Loop

Uncalibrated Control Master 0Diese Parameter gehören zum Typ Uncalibrated Control Master 0 in derParametergruppe Motion.Uncalibrated Control Master 0 wird für die Regulierung nicht kalibrierter Achsenverwendet.

BeschreibungParameter

Proportionale Verstärkung in der Positionsregulierungs-schleife.

Kp, Gain Position Loop

Proportionale Verstärkung in der Geschwindigkeitsregulie-rungsschleife.

Kv, Gain Speed Loop

Integrationszeit in der Geschwindigkeitsregulierungsschlei-fe.

Ti Integration Time Speed Loop

Die maximal zulässige Geschwindigkeit für eine nicht ka-librierte Achse.

Speed Max Uncalibrated

Die maximal zulässige Beschleunigung für eine nicht kali-brierte Achse.

Acceleration Max Uncalibrated

Die maximal zulässige Verlangsamung für eine nicht kali-brierte Achse.

Deceleration Max Uncalibrated

Anwendungshandbuch - Steuerungssoftware IRC5 4553HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.6 Systemparameter

Fortsetzung

Page 456: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2.7 Inbetriebnahme und Wartung

Inbetriebnahme des ServowerkzeugsBefolgen Sie für die Installation und Inbetriebnahme eines neuen Servowerkzeugsdie folgenden Schritte:

AktionSchritt

Installieren Sie das Servowerkzeug gemäß der Beschreibung inAnwendungshand-buch - Zusätzliche Achsen und Standalone-Steuerung.

1

Laden Sie eine .cfg-Datei mit der Servowerkzeug-Konfiguration. Eine ausführlicheBeschreibung dazu finden Sie unter Bedienungsanleitung - RobotStudio.

2

Wenn Sie keine .cfg-Datei für das Servowerkzeug haben, können Sie eine Vorla-gendatei laden und die Systemparameter mit den Werten des Servowerkzeugskonfigurieren. Vorlagendateien finden Sie in der RobotWare-Verteilung, sieheSpeicherorte von Vorlagendateien auf Seite 456.

Verwenden Sie die RAPID-Instruktion STTune, und wiederholen Sie sie, um nachden optimalen Parameterwerten zu suchen. Sobald Sie sie gefunden haben,müssen diese optimalen Werte in die Systemparameter geschrieben werden, umdauerhaft zu sein.

3

Weitere Informationen zur Feinkalibrierung des Servowerkzeugs finden Sie unterFeinkalibrierung auf Seite 458.

4

Außer wenn die Kraftkalibrierung in einer geladenen .cfg-Datei eingefügt wurde,führen Sie eine Kraftkalibrierung durch.

5

Speicherorte von VorlagendateienDie Vorlagedateien können über den PC oder die IRC5-Steuerung bezogen werden.

• Im RobotWare-Installationsordner in RobotStudio: ...\RobotPackages\RobotWare_RPK_<version>\utility\AdditionalAxis\

• Auf der IRC5-Steuerung:<SystemName>\PRODUCTS\<RobotWare_xx.xx.xxxx>\utility\AdditionalAxis\

Hinweis

Navigieren Sie zum RobotWare-Installationsordner in der RegisterkarteAdd-Insin RobotStudio, indem Sie im Add-In-Browser auf die installierteRobotWare-Version rechtsklicken und Paketordner öffnen auswählen.

Trennen/Wiederverbinden eines ServowerkzeugsWenn das Servowerkzeug deaktiviert ist, kann es mit der Instruktion DeactUnit

getrennt und entfernt werden. Das Werkzeug wird auf die Position zum Zeitpunktder Deaktivierung zurückgesetzt, wenn das Werkzeug angeschlossen und wiederaktiviert wird. Führen Sie eine Werkzeugwechselkalibrierung durch, um eineordnungsgemäße Elektrodenposition sicherzustellen.Der gesamte Prozess des Werkzeugwechsels kann von einem RAPID-Programmdurchgeführt werden, wenn Sie die RobotWare-Option Servo Tool Change und dieInstruktion STCalib verwenden.

Fortsetzung auf nächster Seite456 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.7 Inbetriebnahme und Wartung

Page 457: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Wiederherstellen nach versehentlichem Abziehen der KabelWenn die Motorkabel versehentlich abgezogen wurden, während dasServowerkzeug aktiv ist, wechselt das System in den Systemfehler-Status. Nachdem Neustart des Systems, muss das Servowerkzeug deaktiviert werden, um denRoboter in eine Serviceposition zu bewegen.Die Deaktivierung kann aus demBewegen-Fenster ausgeführt werden. Tippen Sieauf Aktivieren..., wählen Sie das Servowerkzeug aus, und tippen Sie aufDeaktivieren.Nach Service-/Reparaturarbeiten muss der Umdrehungszähler aktualisiert werden,da die Position nicht mehr vorhanden ist. Siehe Umdrehungszähler aktualisierenauf Seite 458.

Anwendungshandbuch - Steuerungssoftware IRC5 4573HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.7 Inbetriebnahme und Wartung

Fortsetzung

Page 458: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2.8 Kalibrierungen der mechanischen Einheit

FeinkalibrierungEine Feinkalibrierung muss ausgeführt werden, wenn eine neue Servozangeinstalliert wird oder wenn die Servozangenachse den Status hat.Hierfür wird empfohlen, eine Serviceroutine zu erstellen, unter Verwendung derfolgenden Anweisungen:

STCalib "ToolName" \TipChg;

STCalib "ToolName" \TipWear;

Umdrehungszähler aktualisierenWenn die Position der Achse nicht mehr verfügbar ist, muss der Umdrehungszähleraktualisiert werden. In diesem Fall wird dies durch den Kalibrierungsstatus„Umdr.-Zähler nicht aktualisiert“ angegeben.Hierfür wird empfohlen, dieselbe Serviceroutine zu verwenden wie für dieFeinkalibirerung:

458 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.8 Kalibrierungen der mechanischen Einheit

Page 459: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.2.9 RAPID-Codebeispiel

Verwenden des Code-PaketsDie normale Programmierungstechnik für Tool Control ist es, Shell-Routinen anhanddes unten stehenden Beispielcodes anzupassen. Diese Shell-Routinen werdenanschließend vom Programm aufgerufen.

Verwendung von Shell-RoutinenDieses Beispiel zeigt eine Hauptroutine in Kombination mit einer benutzerdefiniertenRoutine (rMoveSpot), die die standardmäßigen Servowerkzeuginstruktionenverwendet. Der externe Prozess (zum Beispiel eine Punktschweißsteuerung) wirdmit der Routine rWeld angegeben.

PROC main()

MoveJ p1, v500, z50, weldtool;

MoveL p2, v1000, z50, weldtool;

! Perform weld process

rMoveSpot weldpos1, v2000, curr_gun_name, 1000, 2, 1,

weldtool\WObj:=weldwobj;

rMoveSpot weldpos2, v2000, curr_gun_name, 1000, 2, 1,

weldtool\WObj:=weldwobj;

rMoveSpot weldpos3, v2000, curr_gun_name, 1500, 3, 1,

weldtool\WObj:=weldwobj;

MoveL p3, v1000, z50, weldtool;

ENDPROC

PROC rMoveSpot (robtarget ToPoint,

speeddata Speed,

gunname Gun,

num Force,

num Thickness,

PERS tooldata Tool

\PERS wobjdata WObj)

! Move the gun to weld position.

! Always use FINE point to prevent too early closing.

MoveL ToPoint, Speed, FINE, weldtool \WOIbj=WObj;

STClose Gun, Thickness;

rWeld;

STOpen Gun;

ENDPROC

PROC rWeld()

! Request weld start from weld timer

SetDO doWeldstart,1;

! Wait until weld is performed

WaitDI diWeldready,1;

SetDO doWeldstart,0;

ENDPROC

Anwendungshandbuch - Steuerungssoftware IRC5 4593HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.2.9 RAPID-Codebeispiel

Page 460: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.3 I/O Controlled Axes [enthalten in 1180-1]

10.3.1 Überblick

ZweckDer Zweck der I/O Controlled Axes ist es, eine Achse von der Robotersteuerungkontrollieren zu lassen durch Verwendung einer E/A Schnittstelle anstatt einerintegrierten Achse im IRC5 Antriebssystem.Für die Bedienung und Programmierung funktioniert eine E/A-gesteuerte Achsewie eine integrierte Prozessachse. Der Unterschied ist, dass die Antriebseinheitder E/A-gesteuerten Achse nicht direkt mit der Antriebseinheit der Robotersteuerungverbunden wird. Die Bewegungskonfiguration stellt eine E/A-Schnittstelle zurVerfügung, die die Robotersteuerung mit einem externen Servoregler verbindet.Die Robotersteuerung kann die Kontrolle der zusätzlichen Achse während derProgrammausführung übernehmen. Die zusätzliche Achse kann gleichzeitig zumRoboter (kontrolliert von der Robotersteuerung) oder unabhängig vom Roboter(während der Kontrolle durch eine externe SPS) bewegt werden.Anwendungsbeispiele sind:

• Servozangen:• Greifer

Enthaltene KomponentenDie Option RobotWare I/O Controlled Axes bietet Zugang zu den Systemparameternfür die E/A-gesteuerten Achsen.

Grundlegende MethodeDies ist die allgemeine Methode für das Setup von I/O Controlled Axes.

1 Konfigurieren der Systemparameter für die via E/A zu steuernde Achse.Siehe Konfiguration auf Seite 465.

2 Bedienen Sie die Achse (jog, program etc.) wie alle zusätzlichen Achsen.Siehe RAPID-Programmierung auf Seite 470.Für zusätzliche Achsen im Allgemeinen siehe auchBedienungsanleitung - IRC5 mit FlexPendant undAnwendungshandbuch - Zusätzliche Achsen und Standalone-Steuerung.

460 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.1 Überblick

Page 461: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.3.2 Contouring error (Schleppfehler)

Was ist ein SchleppfehlerEin Contouring Error wird erzeugt wenn eine E/A-gesteuerte Achse auf demprogrammierten Roboterpfad des robtarget nicht erreicht wird, basierend aufder Busverzögerung und Beschleunigung. In diesem Fall stoppt die Bewegungdes Roboters auf diesem Pfad. Ein Fehlereintrag wird im Fehlerprotokoll gemacht.Mögliche Ursachen für das Auftreten eines Schleppfehlers:

• Roboterkollisionen• Eine externe Achse ist schwierig zu bewegen oder fehlerhaft• Falscher Wert des Systemparameters Bus delay time in ms

Fehlerbehandlung1 Fehler - Bestätigung bei der externen Prozesseinheit

Hierfür muss jede Anwendung eine “Reset” Taste bereitstellen. DieProzesseinheit muss bereit sein, bevor das Programm gestartet werdenkann.

2 Motoren Ein / ProgrammstartWenn eine automatische Bewegung zurück zum Pfad erlaubt ist, wird derRoboter automatisch zum Pfad zurückkehren, bevor das Programm mit derAnweisung weitermacht, die annulliert wurde. Wenn automatische Bewegungnicht erlaubt wird, gibt es eine Fehlermeldung. Ein Auswahlmenü stelltMöglichkeiten zur Verfügung, die Bewegung zu akzeptieren oder dasAnfangsereignis zu annullieren.Falls das Anfangsereignis annulliert wird, muss der Maschinenbediener denOperationsmodus in Operationsmodus: “Man” ändern.Jetzt kann der Maschinenbediener ein weiteres Verfahren angeben, bevordas Roboterprogramm neu gestartet werden kann. Zum Beispiel:

• Den Roboter manuell aus dem Kollisionsbereich bewegen• Zu einer vorherigen Bewegungsanweisung bewegen

Weitere Informationen finden Sie unter Controller, Typ Path Return Region inTechnisches Referenzhandbuch - Systemparameter.

Anwendungshandbuch - Steuerungssoftware IRC5 4613HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.2 Contouring error (Schleppfehler)

Page 462: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.3.3 Die Position korrigieren

Die Position korrigierenKorrektur (Teaching) einer Roboterpposition (robtarget) erfolgt über die TasteModify Position im Programmeditor (wie für die Roboterachsen).Für die folgenden Zustände wird die modifizierte Position der E/A-gesteuertenAchse nicht die aktuelle Position, sondern die letzte gültige Feedbackposition sein:

• Die Achse ist nicht referenziert• Der Servoregler ist nicht betriebsbereit• Aktuelle Position der E/A-Schnittstelle ungültig• Position liegt außerhalb des Betriebsbereichs

Die Positionskorrektur wird nur für aktivierte Achsen angenommen. Wenn eineverfügbare Achse nicht aktiviert ist, wird diese Achse ignoriert. Das bedeutet, dassrobtarget das Symbol für die entsprechende Achse ersetzt. Dieser Status führtzu keinem Fehler.

462 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.3 Die Position korrigieren

Page 463: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.3.4 Werkzeugwechsel

WerkzeugwechselWenn ein Werkzeug mit der AnweisungDeactUnit deaktiviert wird, ist esnotwendig, die Signaleinheit zu deaktivieren. Wenn das Werkzeug deaktiviert ist(kann mit dem Signal unit_disabled überprüft werden), ist es möglich, es von derStromversorgung zu trennen, z.B. für das Abdocken einer Punktschweißpistole.Es ist möglich, dieselbe logische Achse für verschiedene Werkzeuge zukonfigurieren, aber dies erfordert RobotWare Option Servo Tool Change.

Anwendungshandbuch - Steuerungssoftware IRC5 4633HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.4 Werkzeugwechsel

Page 464: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.3.5 Installation

InstallationNach Installation des Robotersystems müssen die E/A-gesteuerten Achsen in dieSystemparameter geladen werden.Jede erforderliche Achse muss getrennt geladen werden. Die spezifischeBewegungsdatei schließt Standard-Bewegungsparameter ein. Parametrierung undAnpassungen der geladenen Achse werden in Konfiguration auf Seite 465ausführlicher beschrieben.

464 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.5 Installation

Page 465: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.3.6 Konfiguration

KonfigurationsdateivorlagenKonfigurationsdateivorlagen sind für die Einrichtung von E/A-gesteuerten Achsenverfügbar. Die Dateien können mithilfe von RobotStudio oder dem FlexPendant indie Steuerung geladen werden, um die Konfiguration zu vereinfachen und zubeschleunigen.Auf die Konfigurationsdateivorlagen kann über RobotStudio oder dieIRC5-Steuerung zugegriffen werden.

• Im RobotWare Installationsordner in RobotStudio: ...\RobotPackages\RobotWare_RPK_<version>\utility\ioctrlaxis\

• Auf der IRC5-Steuerung: <SystemName>\PRODUCTS\<RobotWare_xx.xx.xxxx>\utility\ioctrlaxis\

Hinweis

Navigieren Sie zum RobotWare-Installationsordner in der RegisterkarteAdd-Insin RobotStudio, indem Sie im Add-In-Browser auf die installierteRobotWare-Version rechtsklicken und Paketordner öffnen auswählen.

Hinzufügen der E/A-gesteuerten AchseDurch das Hinzufügen der Konfigurationsdateivorlagen für die E/A-gesteuerteAchse wird eine mechanische Einheit namens EXTCTL1 mit Standard-Signalnameninstalliert, die im Typ External Control Process Data, Parametergruppe Motiondefiniert ist.

1 Laden Sie eine der Bewegungs-Konfigurationsdateivorlagen für Achse 1,wählen Sie zwischen den logischen Achsen 7, 8 und 9 aus.(ioctrl1_mn7_l7_moc.cfg, ioctrl1_mn7_l8_moc.cfg, ioctrl1_mn7_l9_moc.cfg)

2 Laden Sie eine der E/A-Konfigurationsdateivorlagen je nach industriellemNetzwerk.(ioctrl1_eio.cfg, ioctrl1_pnet_eio.cfg)

3 Bearbeiten Sie die E/A-Konfiguration und wechseln Sie gemäß des aktuellenSetups von virtuellen Signalen zu echten Signalen.

Vorgeschriebene Einstellungen für die E/A-gesteuerte AchseDie folgende Konfiguration muss mit Daten für die mechanische Einheit erfolgen,die als E/A-gesteuerte Achse verwendet werden sollte.

1 In Typ Transmission, Transmission Gear Ratio einstellen. Siehe TypTransmission auf Seite 469.

2 In Typ Acceleration Data, Nominal Acceleration, Nominal Deceleration,Acceleration Derivate Ratio and Deceleration Derivate Ratio einstellen. SieheTyp Acceleration Data auf Seite 467.

3 In Typ Arm, Upper Joint Bound und Lower Joint Boundeinstellen. Siehe TypArm auf Seite 468.

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4653HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.6 Konfiguration

Page 466: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

4 In Typ Stress Duty Cycle, Speed Absolute Max einstellen. Siehe Typ StressDuty Cycle auf Seite 468.

5 In Typ Supervision Type, static_position_limit und dynamic_position_limiteinstellen. Siehe Typ Supervision Type auf Seite 468.

6 In Typ External Control Process Data, Bus delay time in ms einstellen. SieheTyp External Control Process Data auf Seite 467.

Optionale individuelle EinstellungenWenn andere Werte als die Standardwerte bevorzugt werden, können einige derfolgenden Einstellungen geändert werden.

• Um die Nummer der logischen Achse zu ändern, ändern Sie den Wert fürLogical Axis. Siehe Typ Joint auf Seite 468.

• Um die Namen der Signale zu ändern, die verwendet werden, um mit derE/A-gesteuerten Achse zu kommunizieren, ändern Sie die Einstellungen inTyp External Control Process Data, siehe Typ External Control Process Dataauf Seite 467.

• Um ein Aktivierungsrelais zu verwenden, stellen Sie den Parameter ein UseActivation Relay. Siehe Typ Mechanical Unit auf Seite 468.

Eine andere Achse hinzufügenFür eine zweite und dritte E/A-gesteuerte Achse, EXTCTL2 und EXTCTL3, müssendie entsprechenden Konfigurationsdateien aus dem Vorlageordner geladen werden.

1 Laden Sie eine der Konfigurationsdateivorlagen für Achse 2 oder 3.2 Erstellen Sie dieselben Konfigurationen wie für die erste E/A-gesteuerte

Achse.

Hinweis

Mehrere mechanische Einheiten können dieselbe logische Achsennummerverwenden, dies erfordert jedoch die RobotWare Option Servo Tool Change.

Einstellungen für PROFINETWenn ein PROFINET-Bus verwendet wird, sollte der Parameter Reduction ratioauf 4 ms oder 2 ms für die E/A-gesteuerte Einheit gesetzt werden. SieheAnwendungshandbuch - PROFINET Controller/Device.

466 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.6 KonfigurationFortsetzung

Page 467: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.3.7 Systemparameter

Über die SystemparameterDies ist eine kurze Beschreibung jedes Parameters in I/O Controlled Axes. WeitereInformationen finden Sie unter dem jeweiligen Parameter in TechnischesReferenzhandbuch - Systemparameter.

Typ External Control Process DataDiese Parameter gehören zum Typ External Control Process Data in derParametergruppe Motion.

BeschreibungParameter

Parameter für Busverzögerungszeit.Bus delay time in ms

Ausgangssignal zur Aktivierung der E/A-gesteuerten Ein-heit.

Regulator activation signal

Ausgangssignal, das die externe Steuerung des Gerätsermöglicht.

Ext Controller output signal

Ausgangssignal mit Positionierungsreferenz für die E/A-gesteuerte Achse.

Pos_ref output signal

Ausgangssignal mit Vorzeichen (+ oder -) der Positionie-rungsreferenz für die E/A-gesteuerte Achse.

Pos_ref sign signal

Ausgangssignal, das signalisiert, dass die Positionierungs-referenz ein gültiges Signal ist und die Achse dem Refe-renzsignal folgen muss.

Pos_ref valid signal

Eingangssignal, das anzeigt, dass die E/A-gesteuerteEinheit aktiviert und bereit ist.

Regulator is activated signal

Eingangssignal, das signalisiert, dass die erforderlichePositionierungsreferenz außerhalb des Bereichs liegt.

Req pos is out of range inputsignal

Eingangssignal mit Stellungsrückmeldung von der E/A-gesteuerten Achse.

Pos_fdb input signal

Eingangssignal mit Vorzeichen (+ oder -) der Stellungsrück-meldung von der E/A-gesteuerten Achse.

Pos_fdb sign signal

Eingangssignal, das anzeigt, dass der Stellungsrückmel-dungssignal gültig ist.

Pos_fdb_valid signal

Das Eingangssignal der E/A-gesteuerten Einheit zeigt an,dass sie bereit ist.

Unit_ready input signal

Das Eingangssignal, das anzeigt, dass die externe Einheitdie Bewegung steuert. Der Robotersteuerung ist es nichterlaubt, die externe Einheit zu bewegen.

Ext Controller input signal

Nach einem Fehler muss der Programmzeiger nicht bewegtwerden.

No program pointer move aftererror

Typ Acceleration DataDiese Parameter gehören zum Typ Acceleration Data in der ParametergruppeMotion.

BeschreibungParameter

Motorbeschleunigung im ungünstigsten Fall.Nominal Acceleration

Motorverlangsamung im ungünstigsten Fall.Nominal Deceleration

Fortsetzung auf nächster SeiteAnwendungshandbuch - Steuerungssoftware IRC5 4673HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.7 Systemparameter

Page 468: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

BeschreibungParameter

Definiert, wie schnell sich die Beschleunigung aufbauenkann, d. h. der Parameter gibt die Ableitung der Beschleu-nigung an.

Acceleration Derivate Ratio

Definiert, wie schnell sich die Verlangsamung aufbauenkann, d. h. der Parameter gibt die Verlangsamungsablei-tung an.

Deceleration Derivate Ratio

Typ ArmDiese Parameter gehören zum Typ Arm in der Parametergruppe Motion.

BeschreibungParameter

Definiert die obere Grenze des Arbeitsbereichs für diesesGelenk.

Upper Joint Bound

Definiert die untere Grenze des Arbeitsbereichs für diesesGelenk.

Lower Joint Bound

Typ JointDiese Parameter gehören zum Typ Joint in der Parametergruppe Motion.

BeschreibungParameter

definiert die Achsennummer wie von einem RAPID-Pro-gramm.

Logical Axis

Zwei mechanische Einheiten können denselben Wert fürdie Logical Axis verwenden, lassen sich aber nicht mit demgleichen Wert aktivieren.

Typ Mechanical UnitDiese Parameter gehören zum TypMechanical Unit in der ParametergruppeMotion.

BeschreibungParameter

verweist auf ein Relais, das aktiviert oder deaktiviert wird,wenn die mechanische Einheit aktiviert bzw. deaktiviertwird.

Use Activation Relay

Typ Stress Duty CycleDiese Parameter gehören zum Typ Stress Duty Cycle in der ParametergruppeMotion.

BeschreibungParameter

Die zu verwendende absolute Höchstgeschwindigkeit desMotors in Meter/Sekunde.

Speed Absolute Max

Typ Supervision TypeDiese Parameter gehören zum Typ Supervision Type in der ParametergruppeMotion.

BeschreibungParameter

Positionsfehlergrenze bei null Geschwindigkeit, in Meterauf der Motorseite.

static_position_limit

Positionsfehlergrenze (max. Verzögerung) bei max. Ge-schwindigkeit, in Meter auf der Motorseite.

dynamic_position_limit

Fortsetzung auf nächster Seite468 Anwendungshandbuch - Steuerungssoftware IRC5

3HAC050798-003 Revision: H© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.7 SystemparameterFortsetzung

Page 469: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Typ TransmissionDiese Parameter gehören zum Typ Transmission in der Parametergruppe Motion.

BeschreibungParameter

Definiert das Übersetzungsverhältnis zwischen Motor undAchse. Für die meisten Achsen wird dieser Parameter auf1 eingestellt.

Transmission Gear Ratio

Anwendungshandbuch - Steuerungssoftware IRC5 4693HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.7 Systemparameter

Fortsetzung

Page 470: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

10.3.8 RAPID-Programmierung

DatentypenDies ist eine Kurzberschreibung von spezifischen Betrachtungen bezogen aufRAPID Datentypen bei der Nutzung von I/O Controlled Axes.Allgemeine Beschreibungen finden Sie in Technisches Referenzhandbuch - RAPIDInstruktionen, Funktionen und Datentypen.

BeschreibungDatentyp

Die Position der E/A-gesteuerten Achse ist als zusätzliche Achse inrobtarget eingestellt.

robtarget

Beispiel, bei dem die E/A-gesteuerte Achse die logische Achse 7 istund auf Position 100 verschoben werden soll:

p1 := [[20,50,-80], [1,0,0,0], [1,1,0,0],[100,9E+09,9E+09,9E+09,9E+09,9E+09]];

InstruktionenDies ist eine Kurzberschreibung von spezifischen Betrachtungen bezogen aufRAPID Datentypen bei der Nutzung von I/O Controlled Axes.Die Anweisungen werden allgemein ausführlich in TechnischesReferenzhandbuch - RAPID Instruktionen, Funktionen undDatentypen beschrieben.

BeschreibungInstruktion

Allgemeine Bewegungsanweisungen werden verwendet, um eine E/A-gesteuerte Achse zu bewegen. Der Postionswert der Achse ist enthal-ten in robtarget, siehe Datentypen auf Seite 470.

MoveLMoveCMoveJ

Die E/A-gesteuerte Achse kann gleichzeitig mit dem Roboter bewegtwerden.

RAPID BeispielPROC Sequence123()

...

MoveJ pHome, v1500, fine, tGun1;

ActUnit EXTCTL1;

MoveJ p100, v1000, z10, tGun1 \Wobj:=wobj1;

MoveL p101, v1000, fine, tGun1 \Wobj:=wobj1;

...

! Application-specific commands

...

MoveL p102, v1000, z10, tGun1 \Wobj:=wobj1;

MoveJ p100, v1000, fine, tGun1 \Wobj:=wobj1;

DeactUnit EXTCTL1;

MoveJ pHome, v1500, fine, tGun1;

ENDPROC

470 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

10 Tool control options10.3.8 RAPID-Programmierung

Page 471: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

IndexAAbarbeitung der Warteschlange, 326abfragen, 354Absolute Accuracy, 137Absolute Accuracy Kalibrierung, 149Absolute Accuracy-Kompensation, 147Absolute Accuracy-Prüfung, 150Abstimmung, 294Abstimmung, manuell, 165Abziehen der Kabel, 457Acceleration Data, 453, 465, 467Acceleration Derivate Ratio, 453, 468Acceleration Max Uncalibrated, 455Achse, 253Achsenzonen, 247Achse zurücksetzen, 254Advanced RAPID, 19Advanced Shape Tuning, 161Akteursignale, 107–108Aktivierung deaktiviert, 444Aktivierung von Absolute Accuracy, 141AliasIO, 27–28analoges Signal, 51Analog Signal Interrupt, 51Analog Synchronization, 187Anpassungsgeschwindigkeit, 240Anwendungsprotokoll, 302, 306, 310ArgName, 49Argumentname, 49Arm, 453, 465, 468asynchrone Bewegungen, 446aufgezeichnete Bahn, 269aufgezeichnete Profildaten, 230aufgezeichnetes Profil, 234ausgehende Meldung, 417Auslöser, 295Ausrichtung, 155Austausch, 143Austausch der Handgelenkeinheit, 143Austausch des Arms, 143Austausch des Manipulators, 144Austausch des Motors, 143Auto acknowledge input, 13, 434Automatikbetrieb, 351automatische Reibungsanpassung, 162

BBahn, 34Bahnauflösung, 242Bahnaufzeichnung, 269Bahnkollisionserkennung, 292Bahnkorrektur, 276Bahn-Offset, 276Bahn wiederherstellen, 259Befestigungsausrichtung, 156Bei Start aktivieren, 242Benutzermeldungsfunktionalität, 43Bereitschaftssignal der Daten, 241Bestätigungsmeldungen, 318Betriebsarten, Machine Synchronization, 217Bewegungsbefehle, Machine Synchronization, 215Bewegungskollisionserkennung, 292Bezugsrahmen, 158Binärdaten, 318

binäre Kommunikation, 88BitAnd, 21BitCheck, 21BitClear, 21Bit-Funktionalität, 20BitLSh, 21BitNeg, 21BitOr, 21BitRSh, 21BitSet, 21BitXOr, 21BookErrNo, 44bool, 418Bus delay time in ms, 467byte, 21ByteToStr, 22

CC# API, 392calibrate follower axis, 69calibration data, 142Calibration Force High, 451Calibration Force Low, 451Calibration Mode, 451Calibration Offset, 454Calibration Pendulum, 140Calibration Time, 451CalibWare, 140change calibration data, 142Check unresolved references, Task type, 340CirPathMode, 183ClearIOBuff, 89ClearRawBytes, 94Close, 89CloseDir, 99Close position adjust, 451Close time adjust, 451Codebeispiel, 459Collision Alarm Torque, 452Collision Avoidance, 296Collision Delta Position, 452Collision Detection Memory, 288Collision Error Handler, 289Collision LP Bandwidth, 452Collision Speed, 452Commutator Offset, 454Compliance-Fehler, 146configuration.xml, 424CopyFile, 99CopyRawBytes, 94Corr-Argument, 279CorrClear, 278CorrCon, 278corrdescr, 278CorrDiscon, 278CorrRead, 278CorrWrite, 278CPU_load_equalization, 242cut plane, 181cut shape, 186Cyclic bool, 54Cyclic bool settings, 60Cyclic bool Systemparameter, 60

Ddatapos, 25Dateikommunikation, 87

Anwendungshandbuch - Steuerungssoftware IRC5 4713HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Index

Page 472: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Dateistrukturen, 98Dateiverwaltung, 98Daten, 326Datenaustausch, 414Datensatzelement, 425Datentypen

Multitasking, 342unterstützt, 418

DatenvariablenElectronically Linked Motors, 77

DatenvariablenbeispielElectronically Linked Motors, 79

Deaktivieren nicht zulassen, 242Debuggen

Strategien, 344Deceleration Derivate Ratio, 453, 468Deceleration Max Uncalibrated, 455Deklarationen, 353Delay ramp, 452Description.xml, 421Dienstprogramm, 67digitale E/A-Signale, 107dir, 99Dispatcher, 358displacement, 78Drehbewegung, 242Drehmoment, 286Drehmomentfolger, 73Drehmomentverteilung, 73Durchbiegung, 147dynamic_position_limit , 468

EEGM, 375EGM.proto Datei, 413EGM Execution-Status, 383EGM Path Correction, 375EGM Position Guidance, 375EGM Position Stream, 375EGMRAPID Komponenten, 397EGM Sensorprotokoll, 391EGM Systemparameter, 396Eigenschaftselement, 426Eingangssignal, 441Einrichtbetrieb, Machine Synchronization, 215, 217Einrichten der Kollisionserkennung, 292Einrichten von Tasks, 344Einstellungselement, 423Electronically Linked Motors, 62Elektrodenverschleißkalibrierung, 447Elektrodenwechselkalibrierung, 447Elemente

Datensatz, 425Eigenschaft, 426Einstellungen, 423enum, 424Feld, 426Kanal, 422Klasse, 422Konvention, 421Member, 425Netzwerk, 422Typ, 422

empfangene Meldung, 431enums Element, 424Ereignisaufzeichnung, 315Ereignismeldungen, 43

Ereignisnummer, 43Ergebnissignal, 108errdomain, 41ErrRaise, 41errtype, 41Erstellen von Tasks, 344Ethernet, 299, 304, 308Ethernet-Verbindung, 416Event Preset Time, 84Ext Controller input signal, 467Ext Controller output signal, 467External Control Process Data, 466–467Externally Guided Motion, 375External Motion Interface Data, 396externe Achse, 253externe Achsen, 283

Ffalsche Auslöser, 295falsche Zielposition, 147FeedbackJoints, 417FeedbackPose, 417FeedbackTime, 417Fehler-Interrupts, 40Fehlerquellen durch Genauigkeit, 146Feinkalibrierung, 458Feinpunkte, Machine Synchronization, 215Feldbus-Befehl, 240Feldelement, 426FFW Mode, 455Fieldbus Command Interface, 103FIFO, 326FileSize, 99FingerPrint, 306Fixed Position Events, 81FlexPendant, 360Folgeachse zurücksetzen, 71Follower, 62Follower to Joint, 64Force Master, 452Force Master Control, 452Force Ready Delay, 451frame, 418FricIdEvaluate, 169FricIdInit, 169FricIdSetFricLevels, 169Friction FFW Level, 167Friction FFW On, 167Friction FFW Ramp, 167friction level tuning, 162FSSize, 99Funktionalität zum Suchen von Daten, 24Funktionen

Advanced RAPID, 49Multitasking, 342Sensor Interface, 369

GGeburtsurkunde, Absolute Accuracy, 151gemeinsame Daten, 353gemeinsame Ressourcen, 360General RAPID, 289Geschwindigkeit, 286Geschwindigkeitssignal, 241Geschwindigkeitswarnungen, MachineSynchronization, 215GetDataVal, 25

472 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Index

Page 473: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

GetMaxNumberOfCyclicBool, 61GetNextCyclicBool, 61GetNextSym, 25GetNumberOfCyclicBool, 61GetTrapData, 41Gier, 146Google C++, 392Google C++ API, 392Google overview, 391Google Protocol Buffers, 391Group ID, 310Gruppen-E/A-Signale, 107Gussmaschine, 234

HHydraulikpresse, 230

II/O Controlled Axes, 460IError, 41IIRFFP, 240Inbetriebnahme, 456IndAMove, 256IndCMove, 256IndDMove, 256Independent Axes, 253Independent Joint, 255Independent Lower Joint Bound, 255Independent Upper Joint Bound, 255IndInpos, 256IndReset, 256IndRMove, 256IndSpeed, 256Inertia, 453Installation, 456Instruktionen

Advanced RAPID, 49Multitasking, 342Sensor Interface, 369

Interrupt, 51, 326, 355, 369, 373Interrupt-Funktionalität, 40Interrupt-Routine, 326iodev, 89IPers, 41IP-Protokolle, 416IRMQMessage, 330IsCyclicBool, 61IsFile, 100ISignalAI, 52ISignalAO, 52IsStopStateEvent, 49IVarValue, 369

JJog Collision Detection, 288Jog Collision Detection Level, 288, 292joint, 418Joint, 64, 466, 468

KKalibriervorgang, 149Kalibrierwerkzeuge, 140Kanal, 422ke Phase to Phase, 453Kinematikfehler, 146Klasse, 422Kollision, 285

Kommunikations-Client, 420Kommunikationskabel

Verbinden, 415Kommunikationskanal, 414Kommunikation über serielle Kanäle, 87Kompensation, 147Kompensationsparameter, 137, 152Konfiguration

Absolute Accuracy, 141Konfigurationsbeispiel, 428Konfigurationsdateien, 419Konfigurationsdateivorlagen, 465Konfigurationsfunktionalität, 30konfigurieren

Sensoren, 365Konfigurieren

Tasks, 344Konfigurieren der Kollisionserkennung, 292Konstanten

Sensor Interface, 370Konvention, 421Koordinatensysteme, 155Korrekturgenerator, 276Kp, Gain Position Loop, 455Kv 1 - 6, 453Kv, Gain Speed Loop, 455Kv, Gain Speed Loop, 455

Ll_f_axis_name, 77l_f_axis_no, 77l_f_mecunt_n, 77l_m_axis_no, 77l_m_mecunt_n, 77Lag Control Master 0, 455Leistungseinschränkungen,MachineSynchronization, 215Linked M Process, 64load calibration data, 142Load Identification, 140Local path, 302, 306Local Path, 310Lock Joint in Ipol, 64Logical Axis, 468, 470Logical Cross Connections, 107logisch AND, 110Logische Achse, 440logische Operationen, 107logisch OR, 110Lower Joint Bound, 453, 468LTAPP, 367

MMain entry, Task type, 340MakeDir, 99Manipulator Supervision, 288Manipulator Supervision Level, 288manuelle Reibungsabstimmung, 165Master, 62Master Follower kp, 65Max. Synchronisierungsgeschwindigkeit, 242Max. Verzugsentfernung, 242Max. Vorwärtsentfernung, 241–242Max Current, 453Max Follower Offset, 64Max Force Control Motor Torque, 451Max Force Control Position Error, 454

Anwendungshandbuch - Steuerungssoftware IRC5 4733HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Index

Page 474: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

Max Force Control Speed Limit, 454Max Offset Speed, 65Max pos err. closing, 452Mechanical Unit, 466, 468Mechanik, 242mechanische Einheit, 361Meldungen

ausgehend, 417empfangen, 431verschicken, 431

Meldung verschicken, 431Memberelement, 425Messsystem, 256Min. Synchronisierungsgeschwindigkeit, 243Module

Sensor Interface, 369Motion Planner, 289Motion Process Mode, 170MotionSup, 290, 294Motion Supervision, 288Motion Supervision Max Level, 289MotionTask, Task type, 341Motor Calibration, 454Motor Torque 1- 10, 451Motor Type, 453MotSupOn, 291MotSupTrigg, 291MoveC, 470MoveCSync, 84MoveJ, 470MoveJSync, 84MoveL, 470MoveLSync, 84Multitasking, 337

NName, 242, 302, 306, 310Name, Transmission Protocol type, 366–367Name der Warteschlange, 326Nanopb, 392Nenngeschwindigkeit, 241Netzwerk, 422NFS Client, 308nicht druckbare Zeichen, 318Nicht kalibriert, 458Nick, 146No. of speed limits, 452Nominal Acceleration, 453, 467Nominal Deceleration, 453, 467No program pointer move after error, 467NORMAL, 340NoSafety, 341NOT, 110Nullgeschwindigkeitssignal, 241num, 418Number of Stored Forces, 451

OObjektqueue, 192ODER, 108offset_ratio, 77Offset Adjust Delay Time, 64Offset Speed Ratio, 65Open, 89OpenDir, 99OperationMode, 417

PPackDNHeader, 104PackRawBytes, 94Parameter

Genauigkeitskompensation, 152Parameter hinzufügen/ersetzen, 202Password, 302, 306Path Collision Detection, 288Path Collision Detection Level, 288pathrecid, 260PathRecMoveBwd, 260PathRecMoveFwd, 260Path Recovery, 259PathRecStart, 260PathRecStop, 260PathRecValidBwd, 260PathRecValidFwd, 261PC Interface, 312PC SDK Klient, 325persistente Variablen, 352PFRestart, 34Phase Inductance, 453Phase Resistance, 453PlannedJoints, 417PlannedPose, 417Pole Pairs, 453Pos_fdb_valid signal, 467Pos_fdb input signal, 467Pos_fdb sign signal, 467Pos_ref output signal, 467Pos_ref sign signal, 467Pos_ref valid signal, 467pose, 418Positionsereignis, 81Positionssignal, 241Positionswarnungen, Machine Synchronization, 215Post-synchronization Time, 451PredictedTime, 417Prioritäten, 346Process, 64Programme

Bearbeiten, 344Programmierte Geschwindigkeit, MachineSynchronization, 215Programmzeiger, 49proportionales Signal, 37Protobuf, 391Protobuf-csharp, 392Protobuf-net, 392Protokolle

Ethernet, 367serielle Kanäle, 366

Prozessaktualisierungszeit, 242Prozessunterstützungsfunktionalität, 36Prüfung, 150PTC-Überw. beim Abschalten deaktivieren, 440

QQuerverbindungen, 107

Rr1_calib, 141Rahmen, 155Ramp time, 452Ramp Time, 65Ramp to real contact, 452Ramp when Increase Force, 452

474 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Index

Page 475: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

RAPID-Editor, 315RAPID-Einschränkungen, MachineSynchronization, 216RAPID-Komponenten

Advanced RAPID, 49Multitasking, 342Sensor Interface, 369

RAPID Message Queue, 324RAPID-Unterstützungsfunktionalität, 48RAPID-Variablen, 414rawbytes, 94RawBytesLen, 95ReadAnyBin, 89ReadBin, 90ReadBlock, 369ReadCfgData, 31ReadDir, 99ReadErrData, 41ReadNum, 89ReadRawBytes, 94ReadStr, 90ReadStrBin, 90ReadVar, 369real, 418References Bandwidth, 452Regulator activation signal, 467Regulator is activated signal, 467Reibungskompensation, 161Relais, 441Remote Address, 367Remote Port, 367RemoveAllCyclicBool, 61RemoveCyclicBool, 61RemoveDir, 99RemoveFile, 99RenameFile, 99Req pos is out of range input signal, 467Resolver-Offset-Kalibrierung, 149restartdata, 37RestoPath, 260resultierendes Signal, 107Rev. Counter not updated, 458Rewind, 89RMQEmptyQueue, 330RMQFindSlot, 330RMQGetMessage, 330RMQGetMsgData, 330RMQGetMsgHeader, 330RMQGetSlotName, 330rmqheader, 331RMQ Maximale Meldungsgröße, 329RMQ Maximale Zahl der Meldungen, 329rmqmessage, 331RMQ-Modus, 329RMQReadWait, 330RMQSendMessage, 330RMQSendWait, 330rmqslot, 330RMQ-Typ, 329robjoints, 418RoboCom Light, 367Roboterausrichtung, 157Roboterkalib. verwenden, 141RobotStudio, 315robtarget, 470Roll, 146

Rotating Move, 454Routinenaufruf, 358RTP1-Protokoll, 366

Ssatz, 326Schaltfläche zur Geschwindigkeitsreduzierung %,Machine Synchronization, 215SCWrite, 313SEMISTATIC, 340SenDevice, 369Sensor, 276, 364sensor_speed, 216Sensoren

Konfigurieren, 365Sensor Interface, 364Sensorobjekt, 192Sensor Synchronization, 187Sensorsysteme, 240Serial Port, Transmission Protocol type, 366–367Server address, 302, 306Server Address, 310Server path, 302Server Path, 310Servertyp, 310Server type, 302Service-Verbindung, 415Servo Tool Change, 437SetAllDataVal, 25SetDataSearch, 25SetDataVal, 25SetSysData, 49Settings.xml, 420SetupCyclicBool, 61SG Process, 451shapedata, 249Show Device, 302, 306, 310Signal, 355, 358SiTool, 427SiWobj, 427SocketAccept, 320SocketBind, 319SocketClose, 319SocketConnect, 319SocketCreate, 319socketdev, 319SocketGetStatus, 320SocketListen, 320Socket Messaging, 316SocketReceive, 319SocketSend, 319socketstatus, 319Softservo, 283Soft Stop Timeout, 452speed_ratio, 77Speed Absolute Max, 454, 468Speed Limit 1 - 6, 453Speed Max Uncalibrated, 455Squeeze Position 1 -10, 451Stall Torque, 453STATIC, 340static_position_limit , 468Stationäre Weltzone, 249STCalcForce, 450STCalcTorque, 450STCalib, 450STClose, 450

Anwendungshandbuch - Steuerungssoftware IRC5 4753HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Index

Page 476: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

StepBwdPath, 37STIsCalib, 450STIsClosed, 450STIsIndGun, 450STIsOpen, 450STIsServoTool, 450STOpen, 450StorePath, 260Stress Duty Cycle, 454, 466, 468string, 418Stringabschluss, 318Stromausfallfunktionalität, 34StrToByte, 22STTune, 450STTuneReset, 450Supervision Type, 454, 466, 468synchrone Bewegungen, 446Synchronisieren von Tasks, 356syncident, 356syncident, data type, 342SyncMoveResume, 260SyncMoveSuspend, 260SysFail, 341SysHalt, 341SysStop, 341Systemparameter

Konfigurationsfunktionalität, 30Multitasking, 340Parametergruppe Bewegung, 417Parametergruppe Steuerung, 417Sensor Interface, 366–367

Systemressourcen, 360

TTask, Task type, 340Task, type, 340Taskfeldeinstellungen, 348taskid, 362taskid, data type, 342Task in foreground, 346Task in foreground, Task type, 340Taskprioritäten, 346TaskRunMec, 361TaskRunMec, function, 342TaskRunRob, 361TaskRunRob, function, 343tasks, 337, 349, 356

data type, 342Tasks

Bearbeiten von Programmen, 344Einrichten, 344Hinzufügen, 344

tasks, data type, 342Tasks deaktivieren, 349Tasks wählen, 349Temporäre Weltzone, 249TestAndSet, 360TestAndSet, function, 342TextGet, 44Texttabellendatei, 43TextTabFreeToUse, 44TextTabGet, 44TextTabInstall, 44Ti Integration Time Speed Loop, 455time, 418Tip Force 1 - 10, 451torque 1 - torque 6, 453

Torque Absolute Max, 454Transmission, 454, 465, 469Transmission Gear High, 255Transmission Gear Low, 255Transmission Gear Ratio, 454, 469Transmission Protocol, 302, 306, 310Transmission protocol, 302, 306Transmission Protocol, Typ, 366–367trapdata, 41Trennen deaktivieren, 440TriggC, 83TriggCheckIO, 83triggdata, 82TriggEquip, 82TriggInt, 83TriggIO, 82triggios, 82triggiosdnum, 82TriggJ, 83TriggL, 83TriggLIOs, 84TriggRampAO, 83TriggSpeed, 37TriggStopProc, 37triggstrgo, 82Trusted, 302, 306, 310TrustLevel, Task type, 341TUNE_FRIC_LEV, 165TUNE_FRIC_RAMP, 165TuneServo, 165tuning, automatic, 162Typ, 422Type, 302, 306, 310Type, Task type, 340Type, Transmission Protocol type, 366–367

UÜberwachung aktivieren, 294Überwachung deaktivieren, 294Überwachungsstufe, 288, 290, 294UDP, 391UdpUc, 384–385Udp Unicast Communication, 384–385Umdrehungszähler aktualisieren, 458umgekehrte Bewegung, 285Unabhängige Achse, 283unabhängige Bewegung, 253uncalib, 141Uncalibrated Control Master 0, 455UND, 108Unformatierte Daten, 93Unit_ready input signal, 467UnpackRawBytes, 94unsynchronize, 69Upper Joint Bound, 453, 468Use Activation Relay, 468Use Linked Motor Process, 64Use Process, 64Use ramp time, 452User ID, 310Username, 302, 306

VVerbindungsrelais, 441Verbindungsrelais verwenden, 441Verbundenes Signal, 241Verfahreinheit, 284

476 Anwendungshandbuch - Steuerungssoftware IRC53HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Index

Page 477: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

verloren gegangene Meldung, 327verloren gegangene Warteschlange, 328Verlust der Genauigkeit, 145Verringerung der Positionsgenauigkeit, 73Versehentliches Abziehen der Kabel, 457verworfene Meldung, 327Verzeichnisverwaltung, 98Voraussetzungen, 416

WWaitSyncTask, 356WaitSyncTask, instruction, 342WaitUntil, 354WAN-Port, 415WarmStart, 31Warten auf Tasks, 356Wartung, 143, 456Wechsel von Werkzeugen, MachineSynchronization, 216Weltzonen, 247Werkzeug, 438Werkzeuge, 140Werkzeug kalibrieren, 159Werkzeugkalibrierung, 159Werkzeugwechselkalibrierung, 448Werkzeugwechsler, 438Wiederherstellen von Signalen, 38Wiederverbinden eines Servowerkzeugs, 456Write, 89WriteAnyBin, 89

WriteBin, 89WriteBlock, 369WriteCfgData, 31WriteRawBytes, 94WriteStrBin, 89WriteVar, 369WZBoxDef, 249WZCylDef, 250WZDisable, 250WZDOSet, 250WZEnable, 250WZFree, 250WZHomeJointDef, 250WZLimJointDef, 250WZLimSup, 250WZSphDef, 250wzstationary, 249wztemporary, 249

ZZähler pro Meter, 240zeichenorientierte Kommunikation, 88Zellenausrichtung, 155Zertifikat, Absolute Accuary, 151Zonen, 247Zurücksetzen, 256Zurücksetzen der Achse, 254Zusammenfügen von Meldungen, 318zusätzliche Achse, 63zusätzliche Achsen, 445

Anwendungshandbuch - Steuerungssoftware IRC5 4773HAC050798-003 Revision: H

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.

Index

Page 478: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei
Page 479: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei
Page 480: ROBOTICS Anwendungshandbuch SteuerungssoftwareIRC5 · DieInformationenindiesemHandbuchkönnenohnevorherigeAnkündigunggeändert werdenundstellenkeineVerpflichtungvonABBdar.ABBübernimmtkeinerlei

ABB AB, RoboticsRobotics and MotionS-721 68 VÄSTERÅS, SwedenTelephone +46 (0) 21 344 400

ABB AS, RoboticsRobotics and MotionNordlysvegen 7, N-4340 BRYNE, NorwayBox 265, N-4349 BRYNE, NorwayTelephone: +47 22 87 2000

ABB Engineering (Shanghai) Ltd.Robotics and MotionNo. 4528 Kangxin HighwayPuDong DistrictSHANGHAI 201319, ChinaTelephone: +86 21 6105 6666

ABB Inc.Robotics and Motion1250 Brown RoadAuburn Hills, MI 48326USATelephone: +1 248 391 9000

abb.com/robotics

3HAC050798-003,Rev

H,de

© Copyright 2014-2018 ABB. Alle Rechte vorbehalten.Spezifikationen können ohne vorherige Ankündigung geändert werden.