robotics anwendungshandbuch steuerungssoftwareirc5 ·...
TRANSCRIPT
ROBOTICS
AnwendungshandbuchSteuerungssoftware IRC5
Trace back information:Workspace R18-2 version a16Checked in 2018-10-31Skribenta version 5.3.012
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.
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
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
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
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
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
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
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
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
Diese Seite wurde absichtlich leer gelassen
Ü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
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
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
Diese Seite wurde absichtlich leer gelassen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Ü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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
! 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
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
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
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
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
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
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
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
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
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
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
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
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
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
... 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
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
Ü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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
• 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
-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
-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
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
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
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
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
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
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]
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
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
• 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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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
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
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
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
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
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
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
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
! 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
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
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
• 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
!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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Diese Seite wurde absichtlich leer gelassen
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
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
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
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
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
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
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
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
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
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
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
!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
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
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
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
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
!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
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
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
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
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
!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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
• 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
{
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
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
{
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
Diese Seite wurde absichtlich leer gelassen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
! 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
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
• 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
• 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
! 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
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
! 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
! 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
</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
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
Ü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
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
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
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
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
Diese Seite wurde absichtlich leer gelassen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.