Anwendungshandbuch

Bewegungsfunktionen und Ereignisse
Steuerungssoftware IRC5 RobotWare 5.0

Anwendungshandbuch Bewegungsfunktionen und Ereignisse
RobotWare 5.0 Dokumentnr: 3HAC 18152-3 Revision: B

Zuwiderhandlungen werden strafrechtlich verfolgt. In keinem Fall kann ABB haftbar gemacht werden für Schäden oder Folgeschäden. und der Inhalt darf nicht Dritten bekannt gegeben noch zu einem unautorisierten Zweck verwendet werden. gibt ABB für keine hierin enthaltenen Informationen Garantie oder Gewährleistung für Verluste. ABB Automation Technologies AB Robotics SE-721 68 Västerås Schweden . Zusätzliche Kopien dieses Handbuchs können zum jeweils aktuellen Preis von ABB bezogen werden. Wenn nicht ausdrücklich in vorliegendem Handbuch angegeben.oder Sachschäden. © Copyright 2004 ABB Alle Rechte vorbehalten.Die Informationen in diesem Handbuch können ohne vorherige Ankündigung geändert werden und stellen keine Verpflichtung von ABB dar. Verwendbarkeit für einen bestimmten Zweck oder Ähnliches. Personen. die dieses Handbuch enthalten kann. die sich aus der Anwendung dieses Dokuments oder der darin beschriebenen Produkte ergeben. ABB übernimmt keinerlei Verantwortung für etwaige Fehler. Dieses Handbuch darf weder ganz noch teilweise ohne vorherige schriftliche Genehmigung von ABB vervielfältigt oder kopiert werden.

..............................................................................................................................................................................3 Codebeispiele ............................................................................................................21 2................................................38 4.........................................................................................................................................................................................................................................................................................64 Index 67 3 .........................................................................................................................................................................................1 Übersicht ...........................................1 Übersicht .............35 4.........................3 Codebeispiele ....5 Produktdokumentation.........................................2 RAPID-Komponenten ....................................................1 Übersicht ..............................................4 Codebeispiele ......................................32 4 Path Recovery 35 4...................................................3 RAPID-Komponenten .......................................................................................................1 Übersicht .......................................................................................................2 RAPID-Komponenten und Systemparameter ....................................................59 5......................................................7 Sicherheit.30 3......................................................................................................61 5............................... M2004........3 Speichern der aktuellen Bahn................................16 2 Fixed Position Events 19 2..................................................................................................................63 5..........................................................................................................3 Zugehörige RAPID-Funktionalität.........9 1 World Zones 11 1...................................................................................19 2..............................2 RAPID-Komponenten .36 4......................................................................................27 3...................................................2 Systemparameter .................................................................................................................4 Codebeispiel ...........25 3 Independent Axes 27 3......4 Bahnaufzeichnung ........48 5 Path Offset 59 5...............Inhaltsverzeichnis Übersicht .......................................................................................13 1.........................................................................2 RAPID-Komponenten ................................................1 Übersicht .................29 3.............11 1.............

Inhaltsverzeichnis 4 .

Inhalt Beschreibt die Option World Zones. 3. ob sich eine Option für die Lösung eines Problems eignet. • • • mit Industrierobotern und ihren Grundbegriffen. World Zones Fixed Position Events Independent Axes Path Recovery Path Offset Aufbau der Kapitel Dieses Handbuch setzt sich aus den folgenden Kapiteln zusammen: Kapitel 1.. Beschreibt die Option Fixed Position Events. Außerdem beschreibt es. Ausführliche Informationen zur Syntax für RAPID-Routinen und dergleichen sind in diesem Handbuch nicht enthalten. Beschreibt die Option Independent Axes. Diese Informationen erhalten Sie im entsprechenden Referenzhandbuch. wie eine Option verwendet wird. der RAPID-Programmiersprache sowie mit Systemparametern und ihrer Konfiguration vertraut sein. Voraussetzungen Der Leser muss.. wann und wie die folgenden RobotWare-Optionen verwendet werden: • • • • • Verwendung In diesem Handbuch können Sie nachschlagen.Übersicht Übersicht Über dieses Handbuch Dieses Handbuch erläutert in Grundzügen. Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 5 . 2. Wer sollte dieses Handbuch lesen? Dieses Handbuch ist in erster Linie für Programmierer gedacht.

5. Inhalt Beschreibt die Option Path Recovery. Optionsname Independent Movements wurde in Independent Axes geändert. Referenzen Referenz RAPID Referenzhandbuch . Funktionen und Datentypen Benutzerhandbuch . Beschreibt die Option Path Offset.Übersicht (Forts.) Kapitel 4.Systemparameter Dokumentkennung 3HAC 16580-3 3HAC 16581-3 3HAC 16590-3 3HAC 17076-3 Revisionen Revision Beschreibung A Erste Ausgabe Geringfügige Korrekturen. B 6 3HAC 18152-3 Revision: B . Neue Instruktionen für MultiMove-Systeme.RAPID-Überblick RAPID-Referenzhandbuch .Instruktionen.IRC5 mit FlexPendant Technisches Referenzhandbuch . Path Recovery wurde Bahnaufzeichnung hinzugefügt.

Referenzinformation • Referenzinformation (Artikelnummern für Dokumentation. in Prozeduren. unabhängig davon.Produktdokumentation. M2004 Produktdokumentation. in der beide Teile als ein Produkthandbuch enthalten sind. Prozeduren • • • • • Sicherheitsinformationen Installation und Inbetriebnahme (Beschreibung der mechanischen Installation. M2004 Allgemeines Die Roboterdokumentation kann in mehrere Kategorien unterteilt werden. auf die im Produkthandbuch. ob es sich um Standardprodukte oder optionale Produkte handelt. dass eine Lieferung von Roboterprodukten nicht alle aufgeführten Dokumente enthält. Roboter und Steuerschränke werden mit einem Produkthandbuch geliefert. das in zwei Teile gegliedert ist: Produkthandbuch. Werkzeuglisten und Sicherheitsstandards verwiesen wird) Teileliste Faltblätter oder Explosionszeichnungen Schaltpläne • • • Das als PDF veröffentlichte Produkthandbuch besteht aus nur einer Datei. sondern nur die passenden für die gelieferte Ausrüstung. Die erwähnten Dokumente gelten für M2004-Robotersysteme. Das heißt. Produkthandbücher Sämtliche Hardware. der elektrischen Anschlüsse und des Ladens der Systemsoftware) Wartung (Beschreibung aller erforderlichen vorbeugenden Wartungsmaßnahmen einschließlich Intervallen) Reparatur (Beschreibung aller empfohlenen Reparaturvorgänge einschließlich des Austauschs von Ersatzteilen) Zusätzliche Prozeduren. falls vorhanden (Kalibrierung. Die Liste beruht auf der Informationsart in den Dokumenten. Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 7 . Jedoch können alle aufgeführten Dokumente bei ABB bestellt werden. Stilllegung) Produkthandbuch.

IRC5 und RobotStudioOnline Benutzerhandbuch .) RobotWare-Handbücher Die folgenden Handbücher beschreiben die Robotersoftware im Allgemeinen und enthalten relevante Verweise: • • • Überblick über RAPID: Ein Überblick über die RAPID-Programmiersprache RAPID-Referenzhandbuch: Beschreibung aller RAPID-Instruktionen Technisches Referenzhandbuch . Die Gruppe von Handbüchern umfasst: • • • • Erste Schritte . M2004 (Forts. Software. RAPID-Instruktionen. Programmierer und Wartungspersonal. Kabel. E/A-Karten. B. z. Systemparameter) Bedienungsanleitung für die Anwendung Beispiele für die Verwendung der Anwendung Benutzerhandbücher Diese Gruppe von Handbüchern richtet sich an die Personen. Bediener der Produktionszelle.oder Hardwareoptionen) werden in Anwendungshandbüchern beschrieben. B. B. die direkten Bedienungskontakt mit dem Roboter haben.Systemparameter: Beschreibung von Systemparametern und Konfigurationsabläufen Anwendungshandbücher Bestimmte Anwendungen (z. Ein Anwendungshandbuch enthält im Allgemeinen folgende Informationen: • • • • Zweck der Anwendung (ihre Aufgabe und ihr Nutzen) Enthaltenes Material (z. Ein Anwendungshandbuch kann eine oder mehrere Anwendungen beschreiben.Produktdokumentation.IRC5 mit FlexPendant Benutzerhandbuch .RobotStudio Online Fehlerbehebungshandbuch für Steuerung und Roboter 8 3HAC 18152-3 Revision: B .

plötzliche Bewegung folgen. mit dem Roboter zu arbeiten. Sicherheitsbestimmungen Bevor Sie beginnen. beim Betreten von abgesicherten Räumen alle Sicherheitsbestimmungen einzuhalten. kann ein externes Signal den Betrieb beeinflussen und eine unvorhergesehene Bewegung auslösen.IRC5 mit FlexPendant). Selbst wenn ein Bewegungsmuster vorgegeben ist. Daher ist es wichtig. Auf eine Pause oder einen längeren Halt der Bewegung kann eine gefährliche. müssen Sie sich unbedingt mit den Sicherheitsbestimmungen vertraut machen (siehe dazu Benutzerhandbuch .Sicherheit Sicherheit Sicherheit des Personals Der Roboter ist sehr schwer und übt unabhängig von seiner Geschwindigkeit eine extrem hohe Kraft aus. 3HAC 18152-3 Revision: B 9 .

Sicherheit 10 3HAC 18152-3 Revision: B .

1 World Zones 1. Um eine Kollision des Roboters mit dieser Ausrüstung zu verhindern. Anwendungsbeispiele: • Die Arbeitsbereiche von zwei Robotern überschneiden sich teilweise. wird die Bewegung angehalten oder ein digitales Ausgangssignal gesetzt.1. • • Weltzonen werden während Roboterbewegungen sowohl bei der Programmabarbeitung als auch bei manuellen Bewegungen überwacht. Mit der Überwachung durch die Option World Zones kann die Kollision zweier Roboter mit Sicherheit ausgeschlossen werden.1. Verwenden Sie hierfür Hardware-Schutzausrüstung. Im Arbeitsbereich des Roboters befindet sich ein permanentes Hindernis oder eine temporäre externe Ausrüstung. WARNUNG! Aus Sicherheitsgründen darf diese Software nicht zum Schutz von Personal benutzt werden. Übersicht Zweck Mit World Zones (Weltzonen) wird der Roboter angehalten oder ein Ausgangssignal gesetzt. Enthaltene Komponenten Die RobotWare-Option World Zones ermöglicht Ihnen den Zugriff auf folgende Elemente: • • • Instruktionen zum Definieren der Volumenangaben verschiedener Formen Instruktionen zum Definieren von Achsenzonen in Koordinaten für Achsen Instruktionen zum Definieren und Aktivieren von Weltzonen Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 11 . Wenn der TCP des Roboters die Weltzone erreicht oder wenn die Achsen die in Achsenkoordinaten definierte Weltzone erreichen. kann eine verbotene Zone erstellt werden. Angabe. wenn sich der Roboter in einer speziellen benutzerdefinierten Zone befindet. Übersicht 1 World Zones 1. dass sich der Roboter an einer Position befindet. an der das Starten der Programmabarbeitung über eine speicherprogrammierbare Steuerung (SPS) zulässig ist.

) Grundlegende Methode Das ist die allgemeine Methode zum Einrichten von World Zones. Sie können nur einmal definiert werden (mit WZLimSup oder WZDOSet).1. Ein ausführlicheres Beispiel zur Vorgehensweise finden Sie im Codebeispiele auf Seite 16. können Sie eine Achsenweltzone überwachen (definiert durch WZLimJointDef oder WZHomeJointDef). Deklarieren Sie die Weltzone als stationär oder temporär. Übersicht (Forts. Definieren Sie die Weltzone (dass beim Erreichen des Volumens der Roboter angehalten oder ein Ausgangssignal gesetzt wird). Definieren Sie die Form der Weltzone. Jede andere Komponente des Roboters kann sich unerkannt durch das Volumen bewegen.1 World Zones 1. 4. Deklarieren Sie die Formvariable. Variablen vom Typ wzstationary oder wztemporary können nicht neu definiert werden. Um dies zweifelsfrei zu verhindern. 1. 2. 12 3HAC 18152-3 Revision: B . Einschränkungen Volumen können nur für den TCP überwacht werden. 3.

RAPID-Komponenten Datentypen Hier erhalten Sie eine kurze Beschreibung jedes Datentyps in World Zones. Sie werden automatisch gelöscht. wzstationary Mit wzstationary wird eine stationäre Weltzone festgelegt.Teil 2. Stationäre Weltzonen sind immer aktiviert und werden durch einen Warmstart (ausschalten und anschließend wieder einschalten oder Systemparameter ändern) erneut aktiviert.1 World Zones 1. die mit dem Ereignis STROMVERSORGUNG EIN verknüpft ist. Funktionen und Datentypen von A-Z. aktiviert oder gelöscht werden. wenn Sicherheitsbelange berücksichtigt werden müssen. Stationäre Weltzonen sollten verwendet werden.2. Dieser Datentyp kann an jeder Stelle des RAPID-Programms verwendet werden. dessen 4 Seiten parallel zum Welt-Koordinatensystem ausgerichtet sind • ein Zylinder. Datentyp Beschreibung wztemporary Mit wztemporary wird eine temporäre Weltzone festgelegt.2. Mit shapedata wird die Geometrie einer Weltzone beschrieben. Weltzonen können als 4 unterschiedliche geometrische Formen definiert werden: • ein rechteckiges Feld. wenn ein neues Programm geladen wird oder wenn die Programmabarbeitung in der MAIN-Routine ab dem Beginn gestartet wird. erneut aktiviert oder gelöscht werden. Weitere Informationen finden Sie unter dem jeweiligen Datentyp im RAPID-Referenzhandbuch . RAPID-Komponenten 1.IRC5 mit FlexPendant. Dieser Datentyp kann nur in einer Ereignisroutine verwendet werden. der parallel zur Z-Achse des Welt-Koordinatensystems ausgerichtet ist • eine Kugel • ein Achsenwinkelbereich für die Roboterachsen und/oder externen Achsen shapedata Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 13 . Stationäre Weltzonen können nicht über RAPIDInstruktionen deaktiviert. Informationen über das Definieren von Ereignisroutinen erhalten Sie im Benutzerhandbuch . Temporäre Weltzonen können mit RAPID-Instruktionen deaktiviert.

das die Form eines Rechtecks aufweist und dessen vier Seiten parallel zu den Achsen des Welt-Koordinatensystems ausgerichtet sind.1 World Zones 1. Das Volumen kann auch als Inverse der Kugel (das gesamte Volumen ist außerhalb der Kugel) definiert werden. Die Definition wird in einer Variablen vom Typ shapedata gespeichert. mit denen der Arbeitsbereich begrenzt wird. das die Form eines Zylinders aufweist. Die Definition wird in einer Variablen vom Typ shapedata gespeichert.) Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in World Zones. WZCylDef WZSphDef WZLimJointDef WZHomeJointDef Mit WZHomeJointDef werden Achsenkoordinaten für Achsen definiert. Das Volumen kann auch als Inverse des Rechtecks (das gesamte Volumen ist außerhalb des Rechtecks) definiert werden. Instruktionen von A-Z. RAPID-Komponenten (Forts. Sowohl für Roboterachsen als auch für externe Achsen können Koordinatengrenzen festgelegt werden. WZLimJointDef definiert für jede Achse eine obere und eine untere Grenze. Instruktion WZBoxDef Beschreibung Mit WZBoxDef wird ein Volumen definiert. wobei die Zylinderachse parallel zur Z-Achse des Welt-Koordinatensystems ausgerichtet ist.2. Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch . Die Definition wird in einer Variablen vom Typ shapedata gespeichert. Das Volumen kann auch als Inverse des Zylinders (das gesamte Volumen ist außerhalb des Zylinders) definiert werden. um eine Position im Achsenraum festzulegen. Mit WZLimJointDef werden Achsenkoordinaten für Achsen definiert. Die Definition wird in einer Variablen vom Typ shapedata gespeichert. Sowohl für Roboterachsen als auch für externe Achsen können Koordinatengrenzen festgelegt werden. Mit WZCylDef wird ein Volumen definiert. Die Definition wird in einer Variablen vom Typ shapedata gespeichert. Fortsetzung auf nächster Seite 14 3HAC 18152-3 Revision: B . Für Rotationsachsen werden die Grenzen in Grad und für lineare Achsen in mm angegeben. Für Rotationsachsen werden die Koordinaten in Grad und für lineare Achsen in mm angegeben. Mit WZSphDef wird ein Volumen mit der Form einer Kugel definiert. WZHomeJointDef definiert für jede Achse eine Achsenkoordinate des Mittelpunkts der Zone und die Deltaabweichung der Zone vom Mittelpunkt.Teil 1.

Weltzonen werden bei der Erstellung automatisch aktiviert. Beim Aufruf von WZLimSup legen Sie fest. wenn die Weltzone zuvor mit WZDisable deaktiviert wurde. Mit WZDisable wird die Überwachung einer temporären Weltzone deaktiviert.) Instruktion WZLimSup Beschreibung Mit WZLimSup wird das Anhalten des Roboters mit der Ausgabe einer Fehlermeldung beim Erreichen der Weltzone durch den TCP definiert und aktiviert. Mit WZFree wird eine temporäre Weltzone deaktiviert und gelöscht. Mit WZDOSet wird das Setzen eines digitalen Ausgangssignals beim Erreichen der Weltzone durch den TPC definiert und aktiviert. ob es sich um eine stationäre Weltzone handelt. die in einer wzstationary-Variablen gespeichert wird. Diese Überwachung ist sowohl während der Programmabarbeitung als auch während manuellen Bewegungen aktiviert. 3HAC 18152-3 Revision: B 15 . die in einer wztemporaryVariablen gespeichert wird. die in einer wzstationary-Variablen gespeichert wird. oder um eine temporäre Weltzone. Eine Aktivierung ist nur erforderlich. RAPID-Komponenten (Forts. oder um eine temporäre Weltzone. die in einer wztemporaryVariablen gespeichert wird.1 World Zones 1. Mit WZEnable wird die Überwachung einer temporären Weltzone erneut aktiviert. WZDOSet WZDisable WZEnable WZFree Funktionen World Zones enthält keine RAPID-Funktionen. Beim Aufruf von WZDOSet legen Sie fest.2. ob es sich um eine stationäre Weltzone handelt.

p2. CONST pos p1 := [200.3. volume. 100]. Informationen über die Vorgehensweise finden Sie in der Beschreibung der Definition von Ereignisroutinen im Benutzerhandbuch . 400. 400].3.IRC5 mit geografischem Programmiergeät. p1. 100. richten Sie eine stationäre Weltzone um die Ausrüstung ein. Codebeispiele Erstellen eines geschützten Feldes Um die Kollision des Roboter-TCP mit stationärer Ausrüstung zu verhindern.1 World Zones 1. !Define a box between the corners p1 and p2 WZBoxDef \Inside. CONST pos p2 := [600. xx0300000178 VAR wzstationary obstacle. Codebeispiele 1. Anschließend muss die Routine my_power_on mit dem Ereignis STROMVERSORGUNG EIN verknüpft werden. PROC my_power_on() VAR shapedata volume. !Define and enable supervision of the box WZLimSup \Stat. ENDPROC Fortsetzung auf nächster Seite 16 3HAC 18152-3 Revision: B . obstacle. volume.

PROC zone_output() VAR shapedata joint_space. -20. 9E9. !Define the home position CONST jointtarget home_pos := [[0. die als externe Achse 1 behandelt wird. !Define accepted deviation from the home position Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 17 . wenn sich der Roboter in Position befindet Wenn zwei Roboter sich denselben Arbeitsbereich teilen. Codebeispiele (Forts. 9E9. 0. Es sind keine weiteren externen Achsen aktiviert. 9E9.1 World Zones 1. Der Roboter befindet sich auf einer Verfahrschiene. 0]. in der sich der Roboter in einer sicheren Position befindet. In der Abbildung stellt der schattierte Bereich die Weltzone dar. 0. 9E9]]. In diesem Beispiel wird eine Grundstellung definiert. ist es wichtig zu wissen. und es wird ein Ausgangssignal gesetzt. 9E9. xx0300000206 VAR wztemporary home. wann ein Roboter die Bewegung des anderen Roboters nicht behindert.) Ausgabe eines Signals.3. wenn sich der Roboter in der Grundstellung befindet. 0. [0.

do_home. !Define the world zone. 2. 9E9]]. joint_space. 2]. [10. 1. joint_space.1 World Zones 1. home_pos. 2.) CONST jointtarget delta_pos := [[2. setting the !signal do_home to 1 when in zone WZDOSet \Temp. 2. 9E9.3. home \Inside. delta_pos. ENDPROC 18 3HAC 18152-3 Revision: B . 9E9. 9E9. 9E9. Codebeispiele (Forts. 2. !Define the shape of the world zone WZHomeJointDef \Inside.

1. dass eine Programmroutine ausgeführt wird. Mit Fixed Position Events kann eine Routine ohne Verlangsamung der Bewegung ausgeführt werden.1. wird möglicherweise die nächste Routine schon ausgeführt. wird immer die nächste Routine ausgeführt. Enthaltene Komponenten Die RobotWare-Option Fixed Position Events ermöglicht Ihnen den Zugriff auf folgende Elemente: • • • 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. dass zwischen der Ausführung der RAPID-Instruktionen und den Roboterbewegungen immer eine Verzögerung vorhanden ist. Der Grund hierfür ist. Übersicht 2 Fixed Position Events 2. wenn die Position des TCP ordnungsgemäß definiert ist. B z20 gesetzt ist. Wenn ein Bewegungsinstruktion aufgerufen wird und das Zonenargument auf fine gesetzt ist. bevor sich der TCP nahe an seiner Position befindet. Übersicht Zweck Mit Fixed Position Events wird sichergestellt.2 Fixed Position Events 2. ohne zunächst ein Positionsereignis zu definieren Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 19 . Durch den Aufruf der Bewegungsinstruktion mit auf fine gesetztem Zonenargument werden die Bewegungen verlangsamt. Wenn ein Bewegungsinstruktion aufgerufen wird und das Zonenargument auf eine Strecke (z. sobald der TCP seine Position erreicht hat. wenn sich der TCP an einer angegebenen Position an einer beliebigen Stelle der TCP-Bahn befindet.

Ausführlichere Beispiele zur Vorgehensweise finden Sie unter Codebeispiele auf Seite 25. 2. tritt das Ereignis ein. Wenn sich der TCP in der definierten Entfernung von der Position befindet.2 Fixed Position Events 2. Definieren Sie das Positionsereignis: • • wann (in Bezug auf die Zielposition) es erfolgen soll aus welcher Aktion es bestehen soll 3. Deklarieren Sie das Positionsereignis.1. 1. Übersicht (Forts. die das Positionsereignis verwendet.) Grundlegende Methode Fixed Position Events kann entweder mit einer vereinfachten Instruktion zum Aufrufen einer Prozedur verwendet oder mit den folgenden allgemeinen Schritten konfiguriert werden. Rufen Sie eine Bewegungsinstruktion auf. 20 3HAC 18152-3 Revision: B .

2 Fixed Position Events
2.2. RAPID-Komponenten und Systemparameter

2.2. RAPID-Komponenten und Systemparameter
Datentypen Hier erhalten Sie eine kurze Beschreibung jedes Datentyps in Fixed Position Events. Weitere Informationen finden Sie unter dem jeweiligen Datentyp im RAPID-Referenzhandbuch - Teil 2, Funktionen und Datentypen von A-Z. Datentyp
triggdata

Beschreibung
Mit triggdata werden Daten zu einem Positionsereignis gespeichert. Bei einem Positionsereignis kann es sich um das Setzen eines Ausgangssignals oder um das Ausführen einer Interrupt-Routine an einer bestimmten 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 der TCP in einer definierten Entfernung von der Zielposition befindet. triggdata ist vom Datentyp non-value.

Fortsetzung auf nächster Seite
3HAC 18152-3 Revision: B 21

2 Fixed Position Events
2.2. RAPID-Komponenten und Systemparameter (Forts.)

Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in Fixed Position Events. Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch - Teil 1, Instruktionen von A-Z. Instruktion
TriggIO

Beschreibung
TriggIO definiert die Einstellung für ein Ausgangssignal und den Zeitpunkt zum Setzen des Signals. Die Definition wird in einer Variablen vom Typ triggdata gespeichert. Mit TriggIO kann definiert werden, dass das Signal in einer bestimmten Entfernung (in mm) von der Zielposition oder zu einem bestimmten Zeitpunkt vor Erreichen der Zielposition gesetzt wird. Das Signal kann auch in einer bestimmten Entfernung von der Startposition oder zu einem bestimmten Zeitpunkt nach Verlassen der Startposition gesetzt werden. 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üstung ausgleichen kann. Beispielsweise muss das Signal an eine Klebstoffpistole kurz vor dem Herausdrücken des Klebstoffs und dem Beginn des Klebevorgangs gesetzt werden. TriggInt definiert, wann eine Interrupt-Routine ausgeführt wird. Die Definition wird in einer Variablen vom Typ triggdata gespeichert. TriggInt definiert die Entfernung (in mm) von der Zielposition (oder von der Startposition), in der die Interrupt-Routine aufgerufen wird. Durch Festlegen der Entfernung auf 0 (null) erfolgt der Interrupt, wenn sich der TCP in der kürzesten Entfernung von der Zielposition (die Mitte der Zonenbahn) befindet.

TriggEquip

TriggInt

Fortsetzung auf nächster Seite
22 3HAC 18152-3 Revision: B

2 Fixed Position Events
2.2. RAPID-Komponenten und Systemparameter (Forts.)

Instruktion
TriggCheckIO

Beschreibung
TriggCheckIO definiert die Überprüfung eines Eingangs- oder Ausgangssignals und den Zeitpunkt der Überprüfung. Die Definition wird in einer Variablen vom Typ triggdata gespeichert. TriggCheckIO definiert eine Überprüfung, bei der ein Eingangs- oder Ausgangssignal mit einem Wert verglichen wird. Wenn die Überprüfung fehlschlägt, wird eine Interrupt-Routine aufgerufen. Die Roboterbewegung kann optional angehalten werden, wenn das Interrupt-Ereignis erfolgt. Mit TriggCheckIO kann definiert werden, dass die Überprüfung in einer bestimmten Entfernung (in mm) von der Zielposition oder zu einem bestimmten Zeitpunkt vor Erreichen der Zielposition erfolgt. Die Überprüfung kann auch in einer definierten Entfernung von der Startposition oder zu einem bestimmten Zeitpunkt nach Verlassen der Startposition ausgeführt werden. Durch Festlegen der Entfernung auf 0 (null) wird die Interrupt-Routine aufgerufen, wenn sich der TCP in der kürzesten Entfernung von der Zielposition (die Mitte der Zonenbahn) befindet. TriggL ist wie MoveL eine Bewegungsinstruktion. Mit der TriggLInstruktion können zusätzlich zur Bewegung Ausgangssignale gesetzt, Interrupt-Routinen ausgeführt und Eingangs- oder Ausgangssignale an festen Positionen überprüft werden. TriggL führt bis zu 6 Positionsereignisse aus, die als triggdata gespeichert werden. Diese müssen vor Aufruf von TriggL definiert werden. TriggC ist wie MoveC eine Bewegungsinstruktion. Mit der TriggCInstruktion können zusätzlich zur Bewegung Ausgangssignale gesetzt, Interrupt-Routinen ausgeführt und Eingangs- oder Ausgangssignale an festen Positionen überprüft werden. TriggC führt bis zu 6 Positionsereignisse aus, die als triggdata gespeichert werden. Diese müssen vor Aufruf von TriggC definiert werden. TriggJ ist wie MoveJ eine Bewegungsinstruktion. Mit der TriggJInstruktion können zusätzlich zur Bewegung Ausgangssignale gesetzt, Interrupt-Routinen ausgeführt und Eingangs- oder Ausgangssignale an festen Positionen überprüft werden. TriggJ führt bis zu 6 Positionsereignisse aus, die als triggdata gespeichert werden. Diese müssen vor Aufruf von TriggJ definiert werden. MoveLSync ist eine lineare Bewegungsinstruktion, die in der Mitte der Zonenbahn eine Prozedur aufruft.

TriggL

TriggC

TriggJ

MoveLSync

Fortsetzung auf nächster Seite
3HAC 18152-3 Revision: B 23

Funktionen Fixed Position Events enthält keine RAPID-Funktionen. die in der Mitte der Zonenbahn eine Prozedur aufruft. MoveJSync ist eine Achsenbewegungsinstruktion. RAPID-Komponenten und Systemparameter (Forts.2.) Instruktion MoveCSync MoveJSync Beschreibung MoveCSync ist eine Kreisbewegungsinstruktion. Parameter Beschreibung Event TriggEquip nutzt die Verzögerung von ca. Wenn die Verzögerung der Ausrüstung 70 ms übersteigt.Systemparameter. kann die Verzögerung der Roboterbewegung durch Konfigurieren von Event Preset Time erhöht werden. Systemparameter Hier erhalten Sie eine kurze Beschreibung jedes Parameters in Fixed Position Events. die in der Mitte der Zonenbahn eine Prozedur aufruft. 24 3HAC 18152-3 Revision: B . 70 ms zwischen der RAPIDPreset Time Ausführung und der Roboterbewegung. Weitere Informationen finden Sie unter dem jeweiligen Parameter im Technischen Referenzhandbuch . Event Preset Time gehört zum Typ Motion System in der Parametergruppe Motion.2 Fixed Position Events 2.

MoveL p2. Ergebnis Der Code gibt an. 30 \DOp:=do1. v1000. tool1. z20. tool1.3. v1000. indem das Positionsereignis definiert und anschließend der Roboter bewegt wird. tool1. tool1. bevor do1 gesetzt wird. Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 25 . vmax. tool1. dass der TCP p2 erreichen muss. VAR triggdata do_set. Codebeispiele 2. xx0300000151 Beispiel mit TriggIO-Instruktion und TriggL-Instruktion Das Ausgangssignal kann in einer Entfernung von 30 mm von der Zielposition gesetzt werden. tool1. v1000. während das System das Positionsereignis ausführt. do_set. MoveJ p1. MoveL p3. Codebeispiele Beispiel ohne Fixed Position Events Ohne Verwendung von Fixed Position Events kann der folgende Code geschrieben werden: MoveJ p1. SetDO do1.2 Fixed Position Events 2. fine. wird do1 gesetzt. Da die Roboterbahn in Bezug auf die Instruktionsausführung eine Verzögerung aufweist. fine. MoveL p3. !Define that do1 shall be set when 30 mm from target TriggIO do_set. !Move to p2 and let system execute do_set TriggL p2. fine. 1. 1. wenn sich der TCP an der mit X markierten Position (siehe Abbildung) befindet. z20. fine. vmax.3. v1000.

tool1. v1000. wenn sich der TCP an der mit X (siehe Abbildung) markierten Position befindet. MoveJ p1. fine.2 Fixed Position Events 2. kann mit einem einzigen Instruktionsaufruf erfolgen. "proc1". do1 ist gesetzt. z20. xx0300000158 Beispiel mit MoveLSync-Instruktion Der Aufruf einer Prozedur.) Ergebnis Das Signal do1 wird gesetzt. tool1. fine. Ergebnis Die Prozedur wird aufgerufen. Codebeispiele (Forts. v1000. tool1. !Move to p2 while calling a procedure MoveLSync p2. wenn sich der TCP an der mit X markierten Position (siehe Abbildung) befindet. vmax. wenn sich die Roboterbahn so nah wie möglich an der Zielposition befindet. xx0300000165 26 3HAC 18152-3 Revision: B .3. MoveL p3. wenn der TCP 30 mm von p2 entfernt ist.

ein Objekt dreht. B. Anwendungsbeispiele: • • • • Bewegen einer externen Achse. Zurücksetzen des Messsystems nach mehreren Umdrehungen der Achse in derselben Richtung. Enthaltene Komponenten Die RobotWare-Option Independent Axes ermöglicht Ihnen den Zugriff auf folgende Elemente: • • • • Instruktionen zum Festlegen des unabhängigen Modus und zum Angeben der Bewegung für eine Achse eine Instruktion zum Wiederherstellen des normalen Modus und/oder Zurücksetzen des Messsystems Funktionen zum Überprüfen des Status einer unabhängigen Achse Systemparameter für die Konfiguration Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 27 . Verkürzen der Zyklusdauer durch Ausführen einer Roboteraufgabe. wenn sie in den unabhängigen Modus versetzt wurde.3 Independent Axes 3. Verkürzt die Zyklusdauer im Vergleich zum physischen Zurückdrehen. Eine Achse kann in den unabhängigen Modus versetzt und später in den normalen Modus zurückgesetzt werden. Kontinuierliches Drehen von Roboterachse 6 (zum Polieren oder für ähnliche Aufgaben). während der Roboter das Objekt spritzlackiert).1.1. während eine externe Achse eine andere Roboteraufgabe ausführt. Übersicht 3 Independent Axes 3. auf der sich ein Objekt befindet (die z. Übersicht Zweck Mit Independent Axes wird eine Achse unabhängig von anderen Achsen im Robotersystem bewegt. Eine Achse kann sich unabhängig bewegen.

ist Achse Nummer 6. das Messsystem für eine Achse zurückzusetzen. die im unabhängigen Modus verwendet werden kann. Dann kann das Messsystem mit der Instruktion IndReset zurückgesetzt werden. 3. Beim IRB2400 und IRB4400 kann die Instruktion IndReset auch für Achse 4 verwendet werden. Rufen Sie eine Instruktion für eine unabhängige Bewegung auf. setzen Sie die unabhängige Achse in den normalen Modus zurück.1.3 Independent Axes 3. Es wird empfohlen. wenn sich eine ihrer Achse im unabhängigen Modus befindet. 1. Die einzige Roboterachse. Zurücksetzen der Achse Auch wenn sich eine Achse nicht im unabhängigen Modus befindet.000 Umdrehungen in derselben Richtung ausgeführt hat.) Grundlegende Methode Dies ist die allgemeine Methode zum unabhängigen Bewegen einer Achse. bevor ihr Motor 10. Lassen Sie den Roboter während der Bewegung der unabhängigen Achse eine weitere Instruktion ausführen. Einschränkungen Eine mechanische Einheit darf nicht deaktiviert werden. Wenn sowohl Roboter als auch unabhängige Achse angehalten wurden. Ausführlichere Beispiele zur Vorgehensweise finden Sie unter Codebeispiele auf Seite 32. 2. 28 3HAC 18152-3 Revision: B . bewegt sie sich möglicherweise nur in eine Richtung und die Genauigkeit der Bewegung nimmt schließlich ab. Achsen im unabhängigen Modus können nicht manuell bewegt werden. um die Achse in den unabhängigen Modus zu versetzen und zu bewegen. Übersicht (Forts.

2. Parameter Transmission Gear High Beschreibung Independent Axes erfordert eine hohe Auflösung des Übersetzungsverhältnisses. Systemparameter Über die Systemparameter Hier erhalten Sie eine kurze Beschreibung jedes Parameters in Independent Axes. ob der unabhängige Modus für die Achse zulässig ist. Sofern kein kleinerer Wert verwendet werden kann. Transmission Diese Parameter gehören zum Typ Transmission in der Parametergruppe Motion. Parameter Independent Joint Beschreibung Flag. Independent Lower Definiert die Untergrenze des Arbeitsbereichs für die Achse beim Joint Bound Betrieb im unabhängigen Modus. Independent Upper Definiert die Obergrenze des Arbeitsbereichs für die Achse beim Joint Bound Betrieb im unabhängigen Modus.2. Dieses wird daher als Transmission Gear High und Transmission Gear Low definiert. Systemparameter 3.Systemparameter. wenn Transmission Gear High auf die Anzahl der Zähne auf der Seite der Roboterachse und Transmission Gear Lowauf die Anzahl der Zähne auf der Motorseite gesetzt ist. Siehe Transmission Gear High. Transmission Gear Low 3HAC 18152-3 Revision: B 29 .3 Independent Axes 3. das bestimmt. ist das richtige Übersetzungsverhältnis ausgewählt. Weitere Informationen finden Sie unter dem jeweiligen Parameter im Technischen Referenzhandbuch . Arm Diese Parameter gehören zum Typ Arm in der Parametergruppe Motion.

Teil 1. RAPID-Komponenten Datentypen Für Independent Axes sind keine Datentypen vorhanden. auch wenn zu diesem Zeitpunkt die Achse bewegt wird.3.3. Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch . IndCMove (Independent Continuous Movement) versetzt eine Achse in den unabhängigen Modus und bewegt die Achse kontinuierlich mit der angegebenen Geschwindigkeit. Eine Instruktion für eine unabhängige Bewegung wird sofort ausgeführt. IndCMove IndDMove Fortsetzung auf nächster Seite 30 3HAC 18152-3 Revision: B . RAPID-Komponenten 3. Instruktion IndAMove Beschreibung IndAMove (Independent Absolute position Movement) versetzt eine Achse in den unabhängigen Modus und bewegt die Achse an die angegebene Position.3 Independent Axes 3. Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in Independent Axes. setzt die neue Instruktion die alte Instruktion sofort außer Kraft. Wenn eine neue Instruktion für eine unabhängige Bewegung vor Abschluss der vorherigen ausgeführt. IndDMove (Independent Delta position Movement) versetzt eine Achse in den unabhängigen Modus und bewegt die Achse um die angegebene Strecke. wird. Instruktionen von A-Z.

ob eine Achse die ausgewählte Geschwindigkeit erreicht hat. Funktion IndInpos IndSpeed Beschreibung IndInpos gibt an. Mit IndReset wird eine unabhängige Achse in den normalen Modus zurückgesetzt.3 Independent Axes 3. Die Auflösung der Positionen wird verringert. wenn der Abstand zur logischen Position 0 zunimmt. Durch Bewegen des Messsystems wird die Auflösung beibehalten.) Instruktion IndRMove Beschreibung IndRMove (Independent Relative position Movement) versetzt eine Rotationsachse in den unabhängigen Modus und bewegt die Achse innerhalb einer Umdrehung an die angegebene Position. führt IndRMove niemals mehr als eine Achsenumdrehung aus. Funktionen und Datentypen von A-Z. IndSpeed gibt an. Mit IndReset kann das Messsystem für eine Rotationsachse um mehrere Achsenumdrehungen bewegt werden. ob eine Achse die ausgewählte Position erreicht hat. RAPID-Komponenten (Forts. IndReset Funktionen Hier erhalten Sie eine kurze Beschreibung jeder Funktion in Independent Axes. Beim Aufruf von IndReset dürfen sich unabhängige Achse und Roboter nicht bewegen. 3HAC 18152-3 Revision: B 31 .3.Teil 2. Da an der Position keine Umdrehungsinformationen vorhanden sind. und das Zurückdrehen der Achse beansprucht mehr Zeit. Weitere Informationen finden Sie unter der jeweiligen Funktion im RAPID-Referenzhandbuch . ohne die Achse physisch zurückzudrehen.

während der Roboter ein anderes Objekt schweißt. !Let the robot perform another task while waiting !Call subroutine for welding weld_stationB_1.4. !Wait until the independent axis is in position WaitUntil IndInpos(Station_A.20. !Perform second welding in station A !Call subroutine for welding weld_stationA_2. axis 1.3 Independent Axes 3.1\ToAbsNum:=90.4. Codebeispiele 3. Die externe Achse für Station A kann das Objekt in die Position für den zweiten Schweißvorgang drehen. WaitTime 0. Fortsetzung auf nächster Seite 32 3HAC 18152-3 Revision: B . Codebeispiele Verkürzen der Zyklusdauer Ein Objekt an Station A muss an zwei Stellen geschweißt werden. !Move the object in station A. Dies führt zu einer kürzeren Zyklusdauer als bei einer Vorgehensweise. with !independent movement to position 90 degrees !at the speed 20 degrees/second IndAMove Station_A. !Perform first welding in station A !Call subroutine for welding weld_stationA_1. bei der der Roboter während der Bewegung der externen Achse wartet.1 ) = TRUE.2.

setzen Sie das Messsystem zurück. fine. 180. WaitTime 0. !Move robot where you want to polish MoveL p1. kann die Roboterachse 6 auf kontinuierliches Drehen eingestellt werden. Codebeispiele (Forts. MoveL p2. tool1.v10.) Polieren durch Drehen von Achse 6 Um eine Objekt zu polieren. Beachten Sie. und lassen Sie sie kontinuierlich drehen.4. tool1. dass der Parameter Independent Joint für rob1_6 auf Yes gesetzt sein muss. !Wait until axis 6 is up to speed WaitUntil IndSpeed(ROB_1. bevor Sie wieder in den normalen Modus wechseln.3 Independent Axes 3. 6 \RefNum:=0 \Short. ENDPROC Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 33 . Versetzen Sie Roboterachse 6 in den unabhängigen Modus.6\InSpeed).6\ZeroSpeed). !Change axis 6 back to normal mode and !reset measurement system (close to 0) IndReset ROB_1. z50. damit dieses Beispiel ordnungsgemäß ausgeführt werden kann. 6. 0. um die Auflösung beizubehalten.2. Halten Sie die Bewegung für den Roboter und die unabhängige Achse an. PROC Polish() !Change axis 6 of ROB_1 to independent mode and !rotate it with 180 degrees/second IndCMove ROB_1.2. WaitTime 0. WaitUntil IndSpeed(ROB_1.v10. Nachdem die Achse zahlreiche Umdrehungen ausgeführt hat. !Stop axis 6 and wait until it’s still IndCMove ROB_1. 6. Bewegen Sie den Roboter über den zu polierenden Bereich.

IndReset Station_A.4.3 Independent Axes 3.) Zurücksetzen einer Achse In diesem Beispiel wird gezeigt. bis es nahe Null (± 180°) ist. Das Messsystem bewegt sich um mehrere Umdrehungen. 1 \RefNum:=0 \Short. Codebeispiele (Forts. wie das Messsystem für Achse 1 in Station A zurückgesetzt wird. 34 3HAC 18152-3 Revision: B .

Bewegungen mithilfe der Bahnaufzeichnung müssen auf Interrupt-Ebene erfolgen.oder Interrupt-Routine kann eine Task ausführen und anschließend die Bahn wiederherstellen. Eine Fehlerbehandlungs. Übersicht Zweck Mit Path Recovery wird die aktuelle Bewegungsbahn gespeichert. an dem die Arbeit des Roboters unterbrochen wurde.. Wenn sich der Roboter in einem Werkstück befindet und ein Prozessfehler auftritt. eine Bahnaufzeichnung mit der Möglichkeit. Dies ist sinnvoll. muss das Werkstück verschrottet werden. d.4 Path Recovery 4. Für Anwendungen wie Lichtbogenschweißen und Kleben muss die Arbeit an dem Punkt fortgesetzt werden. den TCP auf derselben Bahn von einer Position fortzubewegen. Mithilfe der Bahnaufzeichnung kann der Roboter hingegen auf derselben Bahn herausbewegt werden. Übersicht 4 Path Recovery 4. wenn während der Bahnbewegung ein Fehler oder Interrupt auftritt. h. StorePath muss vor PathRecMoveBwd ausgeführt werden. kann das direkte Herausbewegen des Roboters eine Kollision verursachen. auf der er zu dieser Position bewegt wurde Einschränkungen Mit den Instruktionen StorePath und RestoPath werden nur Bewegungsbahndaten behandelt. auf der er hineinbewegt wurde. Enthaltene Komponenten Die RobotWare-Option Path Recovery ermöglicht Ihnen den Zugriff auf folgende Elemente: • • • Instruktionen zum Speichern und Wiederherstellen der unterbrochenen Bewegungsbahn Instruktionen zum Unterbrechen und Fortsetzen des koordinierten Synchronbewegungsmodus auf der Ebene des Fehlers oder Interrupts.1. es werden einige Roboterbewegungen ausgeführt und anschließend wird die unterbrochene Bahn wiederhergestellt. Die Stoppposition muss ebenfalls gespeichert werden.1. Wenn der Roboter die Arbeit von vorne beginnt. 3HAC 18152-3 Revision: B 35 .

Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch Instruktionen.2. PathRecStop PathRecMoveBwd PathRecMoveFwd Fortsetzung auf nächster Seite 36 3HAC 18152-3 Revision: B . die beim Auftreten eines Fehlers oder Interrupts ausgeführt wird. Funktionen und Datentypen. Die Bahnaufzeichnung speichert während der Abarbeitung des Roboterprogramms Bahninformationen. Weitere Informationen finden Sie unter dem jeweiligen Datentyp im RAPID-Referenzhandbuch Instruktionen.2. Mit PathRecMoveBwd wird der Roboter auf einer aufgezeichneten Bahn zurückbewegt. Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in Path Recovery. Mit PathRecStop wird die Aufzeichnung der Roboterbahn beendet. Mit PathRecStart wird die Aufzeichnung der Roboterbahn gestartet.4 Path Recovery 4. RAPID-Komponenten 4. Datentyp pathrecid Beschreibung Mit pathrecid wird ein Stopppunkt für die Bahnaufzeichnung angegeben. RAPID-Komponenten Datentypen Hier erhalten Sie eine kurze Beschreibung jedes Datentyps in Path Recovery. an der PathRecMoveBwd ausgeführt wurde. Instruktion StorePath RestoPath PathRecStart Beschreibung Mit StorePath wird die Bewegungsbahn gespeichert. Mit PathRecMoveFwd wird der Roboter an die Position zurückbewegt. Funktionen und Datentypen. Der Roboter kann auch nur auf einer Teilstrecke nach vorne bewegt werden. Mit RestoPath wird die von StorePath gespeicherte Bahn wiederhergestellt. der während der Rückwärtsbewegung weitergegeben wurde. indem ein Bezeichner angegeben wird.

Damit eine Vorwärtsbewegung mit der Bahnaufzeichnung möglich ist. Funktionen und Datentypen. Funktion PathRecValidBwd PathRecValidFwd Beschreibung Mit PathRecValidBwd wird überprüft. 3HAC 18152-3 Revision: B 37 .4 Path Recovery 4. ob die Bahnaufzeichnung aktiviert ist und ob eine aufgezeichnete Rückwärtsbahn verfügbar ist. muss die Bahnaufzeichnung zuvor angewiesen worden sein. Mit SyncmoveResume werden synchronisierte Bewegungen nach Verlassen des unabhängigen Bewegungsmodus fortgesetzt. RAPID-Komponenten (Forts. eine Rückwärtsbewegung auszuführen. SyncMoveResume Funktionen Hier erhalten Sie eine kurze Beschreibung jeder Funktion in Path Recovery. ob die Bahnaufzeichnung für die Vorwärtsbewegung verwendet werden kann. Mit PathRecValidFwd wird überprüft.) Instruktion SyncMoveSuspend Beschreibung Mit SyncMoveSuspend wird der Synchronbewegungsmodus unterbrochen und das System in den unabhängigen Bewegungsmodus versetzt.2. Weitere Informationen finden Sie unter der jeweiligen Funktion im RAPID-Referenzhandbuch Instruktionen.

Dies geschieht. Fortsetzung auf nächster Seite 38 3HAC 18152-3 Revision: B . Wenn der Fehler behoben wurde. während des Lichtbogenschweißens tritt ein Fehler auf. Halten Sie die Bewegung an. Bewegen Sie den Roboter zur gespeicherten Stoppposition. indem die Bahninformationen und die Position des Roboters vor dem Entfernen von der Bahn gespeichert werden. Angenommen. B. Speichern Sie die Bewegungsbahn. Am Ende der Fehlerbehandlungs. muss der Schweißvorgang an der Stelle fortgesetzt werden. C. Um den Fehler zu beheben. um sie nach dem Beheben eines Fehlers oder einer ähnlichen Aktion wiederherstellen zu können.oder Interrrupt-Routine: A.3.oder Interrrupt-Routine: A. Nach der Behebung des Fehlers kann die Bahn wiederhergestellt und der Schweißvorgang fortgesetzt werden. 2. Speichern Sie die Stoppposition. Starten Sie die Bewegung. B. Speichern der aktuellen Bahn 4. Speichern der aktuellen Bahn Warum soll die Bahn gespeichert werden? Bei der einfachsten Verwendung von Path Recovery wird nur die aktuelle Bahn gespeichert.4 Path Recovery 4. Grundlegende Methode Dies ist die allgemeine Methode zum Speichern der aktuellen Bahn: 1. muss der Roboter möglicherweise vom Werkstück wegbewegt werden. Zu Beginn der Fehlerbehandlungs.3. C. an der er unterbrochen wurde. Stellen Sie die Bewegungsbahn wieder her.

. gun1.4 Path Recovery 4. !Stop the robot movement. ENDIF . Zunächst werden Bahn und Position gespeichert und der Fehler wird korrigiert.. StartMove. PROC gun_cleaning() VAR robtarget p1.... . . !Restore the path and start the movement RestoPath. RETRY. MoveL p100.) Beispiel: In diesem Beispiel wird die Verwendung von Path Recovery bei der Fehlerbehandlung gezeigt. gun1. v100. gun1.. v100. Anschließend wird der Roboter an die Position zurückbewegt und die Bahn wird wiederhergestellt. fine. !Correct the error MoveL pclean. StopMove. ENDPROC Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 39 . !Move the robot back to the stored position MoveL p1. p1 := CRobT(\Tool:=gun1\WObj:=wobj0). if not already stopped. !Store the movement path and current position StorePath. Speichern der aktuellen Bahn (Forts. ERROR IF ERRNO=MY_GUN_ERR THEN gun_cleaning().3. z10. fine. v100.

PROC main() . [1. Nachdem ein MultiMove-System mit dem Argument KeepSync eingestellt wurde.3. PERS wobjdata wobj_stn1 := [ FALSE. 0. kann das System auf der StorePath-Ebene zwischen Synchronmodus..["T_STN1"]]. [1. sondern nur vom Synchronmodus in den unabhängigen Modus wechseln. teilkoordiniertem Modus und unabhängigem Modus wechseln. 0].4 Path Recovery 4.. Speichern der aktuellen Bahn (Forts. 250]. Die Roboter können jedoch nicht vom unabhängigen Modus in den Synchronmodus. [ [0. 0. VAR syncident sync3. Zwei Roboter führen Bogenschweißarbeiten an demselben Werkstück aus..) Speichern der Bahn in einem MultiMove-System In einem MultiMove-System können die Roboter nach StorePath mit dem Argument KeepSync den Synchronbewegungsmodus beibehalten.. 0] ] ]. PERS tasks all_tasks{3} := [["T_ROB1"]. 0. T_ROB1-Taskprogramm MODULE module1 VAR syncident sync1. CONST robtarget p100 := .. "STN_1".["T_ROB2"]. 0. SyncMove. [ [0. FALSE. Die Änderungen werden mit den Instruktionen SyncMoveResume und SyncMoveSuspend durchgeführt.. CONST robtarget p199 := . werden anstelle von Schweißinstruktionen Bewegungsinstruktionen verwendet.. 0 . TASK PERS tooldata tool1 := . Das Werkstück wird von einem Positionierer gedreht. ENDPROC Fortsetzung auf nächster Seite 40 3HAC 18152-3 Revision: B . Weitere Informationen über das Beispiel SyncArc finden Sie im Handbuch MultiMove. 0. Beispiel „SyncArc“ mit koordinierter synchroner Bewegung In diesem Beispiel werden die Verwendung von Path Recovery und das Beibehalten des Synchronmodus bei der Fehlerbehandlung für ein MultiMove-System veranschaulicht. VAR syncident sync2.0] ]. Um das Beispiel einfach und allgemein zu halten..

) PROC SyncMove() MoveJ p100. tool1 \WObj:=wobj_stn1.3. fine. all_tasks. !Restore the path and start the movement RestoPath. ERROR IF ERRNO = ERR_PATH_STOP THEN gun_cleaning(). v100. tool1 \WObj:=wobj_stn1. v300. !Correct the error MoveL pclean1 \ID:=50.. v1000. MoveL p199. z10. WaitSyncTask sync1. v300. MoveC p103. !Store the movement path and current position ! and keep syncronized mode StorePath \KeepSync. MoveL p105\ID:=30. z50. p101\ID:=40. ENDPROC Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 41 . StartMove. tool1 \WObj:=wobj_stn1. tool1. tool1. . p104\ID:=20. v300. tool1 \WObj:=wobj_stn1. v100. SyncMoveOn sync2. v1000. MoveL p101. fine. MoveC p106. MoveL p102\ID:=10. v500. ENDIF ENDPROC PROC gun_cleaning() VAR robtarget p1.4 Path Recovery 4. z10. Speichern der aktuellen Bahn (Forts. UNDO SyncMoveUndo. all_tasks. SyncMoveOff sync3. v300. p1 := CRobT(\Tool:=tool1 \WObj:=wobj_stn1). fine. RETRY. tool1. fine. tool1 \WObj:=wobj_stn1. !Move the robot back to the stored position MoveL p1 \ID:=60.. tool1 \WObj:=wobj_stn1. fine. z10.

tool2 \WObj:=wobj_stn1. z10.. CONST robtarget p299 := . p201\ID:=40.. MoveL p299. fine. all_tasks. ENDIF ENDPROC PROC gun_cleaning() VAR robtarget p2. SyncMove. PERS tasks all_tasks{3}. z10.. tool2 \WObj:=wobj_stn1. MoveL p205\ID:=30. TASK PERS tooldata tool2 := . PROC main() . VAR syncident sync2. Speichern der aktuellen Bahn (Forts.3. MoveC p206. CONST robtarget p200 := .. tool2. tool2. v300. fine. MoveL p202\ID:=10. v300. ERROR IF ERRNO = ERR_PATH_STOP THEN gun_cleaning(). tool2. ENDPROC PROC SyncMove() MoveJ p200.. v1000. all_tasks. Fortsetzung auf nächster Seite 42 3HAC 18152-3 Revision: B .) ENDMODULE T_ROB2-Taskprogramm MODULE module2 VAR syncident sync1. p204\ID:=20.4 Path Recovery 4.. v300. WaitSyncTask sync1. UNDO SyncMoveUndo. tool2 \WObj:=wobj_stn1. v500. SyncMoveOff sync3. z10. MoveL p201. SyncMoveOn sync2.. tool2 \WObj:=wobj_stn1. v1000. z50. PERS wobjdata wobj_stn1. v300. VAR syncident sync3.. fine. MoveC p203.

. . RETRY.3.[ 340. !Restore the path and start the movement RestoPath. . ENDPROC ENDMODULE T_STN1-Taskprogramm MODULE module3 VAR syncident sync1. all_tasks. VAR syncident sync3.. 9E9. ENDPROC PROC SyncMove() MoveExtJ angle_neg20. StartMove. 9E9. !Correct the error MoveL pclean2 \ID:=50.. CONST jointtarget angle_340 :=[ [ 9E9.. PROC main() . 9E9]. fine. 9E9. 9E9. tool2 \WObj:=wobj_stn1.) !Store the movement path and current position. all_tasks. 9E9. 9E9. ! Auf Roboter warten SyncMoveOn sync2. 9E9. 9E9.. v100. tool2 \WObj:=wobj_stn1. 9E9] ]. VAR syncident sync2. Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 43 . PERS tasks all_tasks{3}. StorePath \KeepSync. 9E9. 9E9] ]. 9E9. MoveL p2 \ID:=60. . !Move the robot back to the stored position. 9E9.4 Path Recovery 4. Speichern der aktuellen Bahn (Forts. fine. 9E9]. SyncMove. 9E9.. 9E9. v100. fine. p2 := CRobT(\Tool:=tool2 \WObj:=wobj_stn1).. [ -20. 9E9. WaitSyncTask sync1. CONST jointtarget angle_neg20 :=[ [ 9E9. vrot50. 9E9. 9E9..

StorePath \KeepSync. vrot100.4 Path Recovery 4. !Move the robot back to the stored position. MoveExtJ angle_340\ID:=40. vrot100. MoveExtJ angle_160\ID:=20.3. ENDIF ENDPROC PROC gun_cleaning() VAR jointtarget resume_angle.) MoveExtJ angle_20\ID:=10. vrot100. ENDPROC ENDMODULE Fortsetzung auf nächster Seite 44 3HAC 18152-3 Revision: B . fine. resume_angle := CJointT(). UNDO SyncMoveUndo. fine. RETRY. !Restore the path and start the movement RestoPath.. vrot100. z10. StartMove. !Store the movement path and current angle. MoveExtJ angle_200\ID:=30. vrot100. z10. . SyncMoveOff sync3. !Correct the error MoveExtJ clean_angle \ID:=50. fine. MoveExtJ resume_angle \ID:=60. Speichern der aktuellen Bahn (Forts. ERROR IF ERRNO = ERR_PATH_STOP THEN gun_cleaning().. vrot100. z10.

. SyncMoveSuspend.) Unterbrechen und Fortsetzen synchronisierter Bewegungen im Beispiel „SyncArc“ Mit SyncMoveSuspend wird der Synchronbewegungsmodus unterbrochen und das System in den unabhängigen oder teilkoordinierten Bewegungsmodus versetzt. StorePath \KeepSync. v100. T_ROB1 PROC gun_cleaning() VAR robtarget p1. v100.. Speichern der aktuellen Bahn (Forts. v100. p1 := CRobT(\Tool:=tool1 \WObj:=wobj_stn1).3. !Restore the path and start the movement RestoPath. fine. um erneut in den Synchronbewegungsmodus zu wechseln. !Move the robot back to the stored position SyncMoveResume. tool1 \WObj:=wobj_stn1. nachdem StorePath\KeepSync ausgeführt wurde. . !Move in independent mode MoveL pclean1. Diese Instruktionen können nur verwendet werden.4 Path Recovery 4. SyncMoveResume wird verwendet. ENDPROC Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 45 . MoveL p1 \ID:=60. fine. RETRY. !Store the movement path and current position ! and keep syncronized mode. !Move in synchronized motion mode MoveL p104 \ID:=50. fine. StartMove. tool1. tool1 \WObj:=wobj_stn1.

fine. fine. tool2. v100. !Move the robot back to the stored position. RETRY.. . tool2 \WObj:=wobj_stn1.4 Path Recovery 4. !Move in synchronized motion mode MoveL p104 \ID:=50. !Move in independent mode MoveL pclean2 v100. SyncMoveSuspend.3. !Move in synchronized motion mode MoveL p2 \ID:=60. tool2 \WObj:=wobj_stn1. v100. !Restore the path and start the movement RestoPath. !Store the movement path and current position. ENDPROC Fortsetzung auf nächster Seite 46 3HAC 18152-3 Revision: B . StorePath \KeepSync. Speichern der aktuellen Bahn (Forts. SyncMoveResume.) T_ROB2 PROC gun_cleaning() VAR robtarget p2. p2 := CRobT(\Tool:=tool2 \WObj:=wobj_stn1).. fine. StartMove.

StorePath \KeepSync. !Move in synchronized motion mode MoveExtJ p1clean_angle \ID:=50..4 Path Recovery 4. SyncMoveSuspend. fine. StartMove. !Store the movement path and current angle.vrot. !Restore the path and start the movement RestoPath. ! Move in synchronized motion mode MoveExtJ resume_angle \ID:=60.. Speichern der aktuellen Bahn (Forts. resume_angle := CJointT(). vrot100. RETRY. fine. ! Move in independent mode MoveExtJ p2clean_angle.) T_STN1 PROC gun_cleaning() VAR jointtarget resume_angle. !Move the robot back to the stored position. ENDPROC 3HAC 18152-3 Revision: B 47 . fine. SyncMoveResume.3. vrot100. .

Bahnaufzeichnung Was ist die Bahnaufzeichnung? In der Bahnaufzeichnung können mehrere Bewegungsinstruktionen gespeichert werden. Beheben Sie den Fehler. Bewegen Sie den Roboter mit regulären Bewegungs. wenn der Offset auf [0.4. Bei einem Prozess wie Lichtbogenschweißen sollten Sie die Berührung mit der Schweißnaht vermeiden. 5. Das bedeutet.0. Stellen Sie die unterbrochene Bahn wieder her. Anheben des Werkzeugs Wenn sich der Roboter auf der eigenen Bahn zurückbewegt. Anschließend kann der Roboter mithilfe dieses Speichers auf derselben Bahn zurückbewegt werden. Speichern Sie die aktuelle Bahn. xx0400000828 Fortsetzung auf nächster Seite 48 3HAC 18152-3 Revision: B . 2. Bewegen Sie den Roboter auf der aufgezeichneten Bahn vorwärts. Bahnaufzeichnung 4.4 Path Recovery 4. 4.10] gesetzt ist. sollten Sie verhindern. 3. Starten Sie die Bahnaufzeichnung. Dieser Offset wird in Form von Werkzeug-Koordinaten festgelegt. wird das Werkzeug in einer Entfernung von 10 mm vom Werkstück auf der aufgezeichneten Bahn zurückbewegt.4. Verwendung der Bahnaufzeichnung Dies ist die allgemeine Methode für die Verwendung der Bahnaufzeichnung: 1. dass das Werkzeug gegen das Werkstück stößt. Bewegen Sie den Roboter auf der aufgezeichneten Bahn zurück. 7. Mithilfe des Arguments ToolOffs in den Instruktionen PathRecMoveBwd und PathRecMoveFwd können Sie einen Offset für den TCP einstellen. 6.oder Prozessinstruktionen.

Einfaches Beispiel Wenn zwischen p1 und p4 ein Fehler auftritt. .0. Wenn p4 ohne Auftreten eines Fehlers erreicht wurde. an der der Fehler aufgetreten ist. vmax. tool1. müssen alle Tasks ToolOffs verwenden.. wird die Bahnaufzeichnung ausgeschaltet. MoveL p1. fine. . Wenn Sie jedoch nur ein einziges Werkzeug anheben möchten. MoveL p2.4. tool1. z50. legen Sie in den anderen Tasks ToolOffs=[0. fine. z50. VAR pathrecid start_id. vmax... wo der Fehler behoben werden kann. setzt der Roboter den Vorgang an der Stelle fort.. tool1. PathRecMoveBwd. RestoPath. PathRecStop \Clear. MoveL p4. Bahnaufzeichnung (Forts. ! Fix the problem PathRecMoveFwd. Anschließend bewegt sich der Roboter ohne Bahnaufzeichnung von p4 zu p5. vmax. PathRecStart start_id. StartMove. ERROR StorePath. MoveL p5. tool1. Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 49 .. RETRY. tool1.0] fest. ENDIF . vmax. Nachdem der Fehler behoben wurde. kehrt der Roboter zu p1 zurück. fine.) HINWEIS! Wenn sich ein MultiMove-System im Synchronmodus befindet und ein Werkzeug angehoben wird.4 Path Recovery 4. MoveL p3. vmax..

ob dies möglich ist. z50. dass ein Zurückbewegen zu p2 nicht möglich ist..10]. PathRecStart corner_id. . (wenn der Roboter niemals zurückbewegt wurde. VAR pathrecid corner_id. befindet er sich bereits in Position). VAR num choice. wenn ein Fehler während der ersten Bewegungsinstruktion (zwischen p1 und p2) auftritt.. vmax. tool1. MoveJ p1. z50. vmax. tool1. Bahnaufzeichnung (Forts. MoveL p4. MoveL p3.4 Path Recovery 4. Fortsetzung auf nächster Seite 50 3HAC 18152-3 Revision: B . wird der Roboter mithilfe der Bahnaufzeichnung von p4 zu p1 bewegt. Clear Path. an der das Herausbewegen des Roboters schwierig ist. RestoPath.) Komplexes Beispiel In diesem Beispiel wird die Bahnaufzeichnung für zwei Zwecke verwendet: • Wenn ein Fehler auftritt. Auch wenn kein Fehler auftritt. vmax. wird mithilfe von PathRecValidFwd bestimmt. ! Use path record to move safely to p1 StorePath. PathRecMoveBwd \ID:=origin_id \ToolOffs:=[0.. tool1. tool1. Start Move. Dieses Verfahren empfiehlt sich. . PathRecStop \Clear. MoveJ p2. • Beachten Sie. wird die unterbrochene Bewegung fortgesetzt. VAR pathrecid origin_id. ob dies möglich ist. Bevor der Roboter vorwärts an die Position bewegt wird. Nachdem der Fehler behoben wurde.0. fine. um zu bestimmen. vmax. wenn sich der Roboter an einer schmalen Position befindet. wird PathRecValidBwd verwendet. an der der Vorgang unterbrochen wurde. kann der Bediener den Roboter zu p1 oder zu p2 zurückbewegen. PathRecStart origin_id. z50. Wenn der Bediener den Roboter zu p2 zurückbewegen möchte..4.

10]. "Corner".4 Path Recovery 4. stEmpty. IF choice=4 THEN ! Back up to p1 PathRecMoveBwd \ID:=origin_id \ToolOffs:=[0. IF PathRecValidBwd(\ID:=corner_id) THEN ! Back up to p2 PathRecMoveBwd \ID:=corner_id \ToolOffs:=[0.4. Bahnaufzeichnung (Forts..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."Extract to:".10]. "Origin". stEmpty. stEmpty.0.0. ENDIF ! Restore the path and resume movement RestoPath. RETRY. StartMove.. . ELSEIF choice=5 THEN ! Verify that it is possible to back to p2. Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 51 .) ERROR StorePath. ! Ask operator how far to back up TPReadFK choice.

tool1. tool1. PathRecStart id1. vmax. vmax. tool1. MoveL p1. z50. z50.. vmax. MoveL p4. z50. PathRecMoveBwd \ID:=id1.4. StorePath. tool1. Bahnaufzeichnung (Forts.) Fortsetzen der Bahnaufzeichnung Wenn die Bahnaufzeichnung angehalten wurde. PathRecStop. vmax.. z50. MoveL p3. z50. PathRecStart id2. z50. MoveL p2.Teil 1. tool1. tool1. vmax.. Dies ist nicht möglich. . ohne den Ereignisverlauf zu löschen.. kann sie an derselben Position erneut gestartet werden. Instruktionen von AZ im Abschnitt über PathRecStop. RestoPath. MoveL p2. vmax. MoveL p5. Weitere Informationen finden Sie im RAPID-Referenzhandbuch . .4 Path Recovery 4. Fortsetzung auf nächster Seite 52 3HAC 18152-3 Revision: B . wenn sich der Roboter beim erneuten Starten der Bahnaufzeichnung an einer anderen Position als p2 befindet. Im folgenden Beispiel wird der Roboter mit der PathRecMoveBwd-Instruktion zu p1 zurückbewegt.

[ [0.. VAR syncident sync3.4 Path Recovery 4.0] ]. PERS tasks all_tasks{3} := [["T_ROB1"]. [1. SyncMove. CONST robtarget p199 := .250]. Bahnaufzeichnung (Forts. werden anstelle von Schweißinstruktionen Bewegungsinstruktionen verwendet.. "STN_1".. 0. T_ROB1-Taskprogramm MODULE module1 VAR syncident sync1. 0..4.. Um das Beispiel einfach und allgemein zu halten. PERS wobjdata wobj_stn1 := [ FALSE. In diesem Beispiel führen zwei Roboter Bogenschweißarbeiten an demselben Werkstück aus.. Das Werkstück wird von einem Positionierer gedreht.. 0 . TASK PERS tooldata tool1 := .. 0]. [1.) Beispiel „SyncArc“ mit koordinierter synchroner Bewegung In diesem Beispiel wird die Verwendung der Bahnaufzeichnung bei der Fehlerbehandlung für ein MultiMove-System gezeigt. FALSE.["T_ROB2"]. 0. ENDPROC Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 53 . PROC main() .["T_STN1"]]. VAR syncident sync2. 0. CONST robtarget p100 := . [ [0. 0. Weitere Informationen über das Beispiel SyncArc finden Sie im Handbuch MultiMove. 0] ] ].

MoveJ p100. z10. fine. tool1 \WObj:=wobj_stn1. fine. ENDIF !Move this robot backward to p100. all_tasks. z10. MoveC p106. v500. ENDIF ENDPROC PROC gun_cleaning() VAR robtarget p1.) PROC SyncMove() WaitSyncTask sync1. p101\ID:=40.10]. MoveL p105\ID:=30. tool1 \WObj:=wobj_stn1. MoveL p101. SyncMoveOff sync3. v300. all_tasks. PathRecMoveBwd \ID:=HomeROB1 \ToolOffs:=[0. MoveL p102\ID:=10. tool1. tool1. fine. tool1. Bahnaufzeichnung (Forts. SyncMoveOn sync2. MoveC p103. v300. v300. MoveL p199. !Correct the error Fortsetzung auf nächster Seite 54 3HAC 18152-3 Revision: B . v1000. ERROR ! Weld error in this program task IF ERRNO = AW_WELD_ERR THEN gun_cleaning(). z10. !Store the movement path IF IsSyncMoveOn() THEN StorePath \KeepSync. ELSE StorePath.0. ! Start recording PathRecStart HomeROB1. !Stop recording PathRecStop \Clear. tool1 \WObj:=wobj_stn1. tool1 \WObj:=wobj_stn1.4. p104\ID:=20. UNDO SyncMoveUndo. v1000.4 Path Recovery 4. z50. v300.

v300. MoveL p202\ID:=10. SyncMove.. p204\ID:=20.0. PathRecMoveFwd \ToolOffs:=[0. z10. !Restore the path and start the movement RestoPath. v100....v100. fine. MoveL p205\ID:=30. VAR syncident sync3. v500. tool2 \WObj:=wobj_stn1. tool1. tool2 \WObj:=wobj_stn1. PERS tasks all_tasks{3}. fine.4 Path Recovery 4. p201\ID:=40.. MoveJ p200. RETRY. Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 55 .) MoveJ pclean1 . tool2.. MoveC p206. MoveL p201. z50. MoveC p203. VAR syncident sync2. TASK PERS tooldata tool2 := . v300. tool1.. v300. SyncMoveOn sync2. fine. tool2 \WObj:=wobj_stn1. all_tasks. ENDPROC ENDMODULE T_ROB2-Taskprogramm MODULE module2 VAR syncident sync1..10]. tool2 \WObj:=wobj_stn1. CONST robtarget p299 := . StartMove. z10. ENDPROC PROC SyncMove() WaitSyncTask sync1. PathRecStart HomeROB2. CONST robtarget p200 := .. Bahnaufzeichnung (Forts. all_tasks. z10.. v300. v1000. . !Move the robot back to p100 MoveJ p100. PERS wobjdata wobj_stn1. fine.4. PROC main() . tool2.

ERROR IF ERRNO = ERR_PATH_STOP THEN gun_move_out().0. v1000.10]. fine. RETRY. ! Wait for the other gun to get clean PathRecMoveFwd \ToolOffs:=[0. UNDO SyncMoveUndo. Bahnaufzeichnung (Forts. ELSE StorePath. SyncMoveOff sync3.0. ENDPROC ENDMODULE Fortsetzung auf nächster Seite 56 3HAC 18152-3 Revision: B . ENDIF ! Move this robot backward to p201 PathRecMoveBwd \ToolOffs:=[0.4. ENDIF ENDPROC PROC gun_move_out() IF IsSyncMoveOn() THEN StorePath \KeepSync.10].4 Path Recovery 4. tool2. StartMove.) PathRecStop \Clear. MoveL p299. !Restore the path and start the movement RestoPath.

vrot100. VAR syncident sync3.) T_STN1-Taskprogramm MODULE module3 VAR syncident sync1. 9E9.. ERROR IF ERRNO = ERR_PATH_STOP THEN gun_move_out(). 9E9. PERS tasks all_tasks{3}. ENDIF ENDPROC Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 57 . 9E9. vrot50. 9E9]. ENDPROC PROC SyncMove() WaitSyncTask sync1.9E9. PathRecStop \Clear. [ -20. z10.. 9E9. 9E9. VAR syncident sync2. 9E9] ]. 9E9. 9E9. z10. 9E9]. 9E9.[ 340. MoveExtJ angle_20\ID:=10. vrot100. 9E9.. MoveExtJ angle_160\ID:=20. MoveExtJ angle_200\ID:=30. 9E9.. vrot100. UNDO SyncMoveUndo. MoveExtJ angle_neg20. 9E9. all_tasks. fine. fine. . 9E9] ]. .. vrot100. 9E9.4. PROC main() . SyncMove.4 Path Recovery 4. z10. MoveExtJ angle_340\ID:=40. CONST jointtarget angle_neg20 :=[ [ 9E9.. CONST jointtarget angle_340 :=[ [ 9E9. SyncMoveOff sync3. 9E9. all_tasks. SyncMoveOn sync2. PathRecStart HomeSTN1. 9E9. Bahnaufzeichnung (Forts. 9E9.

.4. ENDPROC 58 3HAC 18152-3 Revision: B .. StartMove. ELSE StorePath. ENDIF !Move the manipulator backward to angle_neg 20 PathRecMoveBwd \ToolOffs:=[0.0.) PROC gun_move_out() !Store the movement IF IsSyncMoveOn() THEN StorePath \KeepSync.0].0].0. RETRY. . Bahnaufzeichnung (Forts.4 Path Recovery 4. RestoPath. !Wait for the gun to get clean PathRecMoveFwd \ToolOffs:=[0.

um die Interrupt-Routine häufig aufzurufen. 3. 2. 5. CorrClear und CorrWrite die Funktion CorrRead Grundlegende Methode Das ist die allgemeine Methode zum Einrichten von Path Offset. Definieren Sie eine Interrupt-Routine. Die Bahn wird mehrfach korrigiert. Definieren Sie einen Interrupt. Enthaltene Komponenten Die RobotWare-Option Path Offset ermöglicht Ihnen den Zugriff auf folgende Elemente: • • • den Datentyp corrdescr die Instruktionen CorrCon. Verbinden Sie den Korrekturgenerator. Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 59 . 1.1. Rufen Sie mithilfe der Korrektur eine Bewegungsinstruktion auf. Übersicht Zweck Mit Path Offset werden Online-Anpassungen der Roboterbahn entsprechend den Eingangsdaten von Sensoren vorgenommen. Deklarieren Sie den Korrekturgenerator. Ein ausführlicheres Beispiel zur Vorgehensweise finden Sie im Codebeispiel auf Seite 64. Übersicht 5 Path Offset 5.1. CorrDiscon. Mit der Gruppe der Instruktionen von Path Offset kann die Roboterbahn mit den Eingangsdaten von Sensoren verglichen und entsprechend angepasst werden. 4.5 Path Offset 5. die den Offset bestimmt und diesen in den Korrekturgenerator schreibt.

Übersicht (Forts.5 Path Offset 5. Die Definitionen und Verbindungen bleiben nach einem Neustart der Steuerung nicht erhalten. B. einen für Korrekturen auf der Z-Achse und einen weiteren für Korrekturen auf der Y-Achse).1. Die Instruktionen können nur in Bewegungstasks verwendet werden. 60 3HAC 18152-3 Revision: B . Nach einem Neustart der Steuerung müssen die Korrekturgeneratoren erneut definiert werden. Jedoch können nicht mehr als 5 Korrekturgeneratoren gleichzeitig verbunden werden. mehrere Korrekturgeneratoren gleichzeitig zu verbinden (z.) Einschränkungen Es ist möglich.

Datentyp corrdescr Beschreibung corrdescr ist ein Korrekturgenerator-Deskriptor. CorrClear deaktiviert die Bahnkorrektur.2. RAPID-Komponenten 5. Durch Aufruf von CorrDiscon wird die Verbindung mit einem Korrekturgenerator getrennt. RAPID-Komponenten Datentypen Hier erhalten Sie eine kurze Beschreibung jedes Datentyps in Path Offset. CorrWrite legt die Bahnkorrekturwerte fest.2. B.Teil 1. Instruktionen von A-Z.5 Path Offset 5. Nachdem diese Verbindung hergestellt wurde. Durch Aufruf von CorrWrite werden die Offset-Werte auf einen Korrekturgenerator gesetzt. CorrDiscon CorrClear CorrWrite Fortsetzung auf nächster Seite 3HAC 18152-3 Revision: B 61 . Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch . CorrDiscon deaktiviert die Bahnkorrektur. Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in Path Offset. der als Verweis auf den Korrektorgenerator verwendet wird. Durch Aufruf von CorrClear wird die Verbindung mit allen Korrekturgeneratoren getrennt. Durch Aufruf von CorrCon wird eine Verbindung mit einem Korrekturgenerator hergestellt. Funktionen und Datentypen von A-Z. Weitere Informationen finden Sie unter dem jeweiligen Datentyp im RAPID-Referenzhandbuch . kann die Bahn kontinuierlich mit neuen Offset-Eingangsdaten (z. von einem Sensor) korrigiert werden.Teil 2. Instruktion CorrCon Beschreibung CorrCon aktiviert die Bahnkorrektur.

62 3HAC 18152-3 Revision: B .Teil 2. Funktion CorrRead Beschreibung CorrRead liest die gesamte von einem Korrekturgenerator ausgeführte Korrektur. Funktionen und Datentypen von A-Z.) Funktionen Hier erhalten Sie eine kurze Beschreibung jeder Funktion in Path Offset. RAPID-Komponenten (Forts.2.5 Path Offset 5. Weitere Informationen finden Sie unter der jeweiligen Funktion im RAPID-Referenzhandbuch .

3. 3HAC 18152-3 Revision: B 63 .3. Hierdurch werden Bahnkorrekturen während der Ausführung der Bewegungsinstruktion ermöglicht. Zugehörige RAPID-Funktionalität Das Argument \Corr Das optionale Argument \Corr kann für einige Bewegungsinstruktionen festgelegt werden. Weitere Informationen über Interrupts finden Sie im RAPID Referenzhandbuch RAPID-Überblick.5 Path Offset 5. Die folgenden Instruktionen verfügen über das optionale Argument \Corr: • • • • • • • • • • MoveL MoveC SearchL SearchC TriggL (nur wenn die Steuerung über die Option Fixed Position Events verfügt) TriggC (nur wenn die Steuerung über die Option 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 jeweiligen Instruktion im RAPID-Referenzhandbuch . Zugehörige RAPID-Funktionalität 5. müssen Sie Interrupts handhaben können.Teil 1. Instruktionen von A-Z. Interrupts Um Programme mithilfe von Path Offset zu erstellen.

4.5 Path Offset 5.2. 0. int_no1 !Position for start of contour tracking MoveJ p10.z10.4.v100. Codebeispiel 5. ENDPROC Fortsetzung auf nächster Seite 64 3HAC 18152-3 Revision: B . CorrDiscon id. !Remove the timer interrupt. und durch den Aufruf einer Interrupt-Routine. CONNECT int_no1 WITH UpdateCorr. PROC PathRoutine() !Connect to the correction generator CorrCon id. Dies erfolgt mithilfe eines Interrupts. der 5 Mal pro Sekunde ausgeführt wird. VAR pos sens_val. Codebeispiel Lineare Bewegung mit Korrektur Dies ist ein einfaches Beispiel zum Programmieren einer linearen Bahn mit OnlineBahnkorrektur. IDelete int_no1.z10.v100. !Run MoveL with correction.tool1. mit der die Offset-Korrektur durchgeführt wird. ITimer\Single. VAR corrdescr id. !Remove the correction generator.tool1\Corr. Programmcode VAR intnum int_no1. !Setup a 5 Hz timer interrupt. MoveL p20.

!Execute correction CorrWrite id.4. !Setup interrupt again IDelete int_no1. CONNECT int_no1 WITH UpdateCorr.2.5 Path Offset 5. ITimer\Single.y. sens_val.) TRAP UpdateCorr !Call a routine that read the sensor ReadSensor sens_val. Codebeispiel (Forts.z.x. sens_val. ENDTRAP 3HAC 18152-3 Revision: B 65 . int_no1. 0. sens_val.

Codebeispiel 66 3HAC 18152-3 Revision: B .4.5 Path Offset 5.

Index A Achse 27 Achse zurücksetzen 28 Achsenzonen 11 aufgezeichnete Bahn 48 MoveCSync 24 MoveJSync 24 MoveLSync 23 P Path Recovery 35 pathrecid 36 PathRecMoveBwd 36 PathRecMoveFwd 36 PathRecStart 36 PathRecStop 36 PathRecValidBwd 37 PathRecValidFwd 37 Positionsereignis 19 B Bahn wiederherstellen 35 Bahnaufzeichnung 48 Bahnkorrektur 59 Bahn-Offset 59 C Corr argument 63 CorrClear 61 CorrCon 61 corrdescr 61 CorrDiscon 61 CorrRead 62 CorrWrite 61 R RestoPath 36 S Sensor 59 shapedata 13 stationäre Weltzone 13 StorePath 36 SyncMoveResume 37 SyncMoveSuspend 37 E Event Preset Time 24 externe Achse 27 F Fixed Position Events 19 T temporäre Weltzone 13 Transmission Gear High 29 Transmission Gear Low 29 TriggC 23 TriggCheckIO 23 triggdata 21 TriggEquip 22 TriggInt 22 TriggIO 22 TriggJ 23 TriggL 23 I IndAMove 30 IndCMove 30 IndDMove 30 Independent Axes 27 Independent Joint 29 Independent Lower Joint Bound 29 Independent Upper Joint Bound 29 IndInpos 31 IndReset 31 IndRMove 31 IndSpeed 31 U unabhängige Bewegung 27 K Korrekturgenerator 59 W Weltzonen 11 WZBoxDef 14 WZCylDef 14 M Messsystem 31 67 .

Index WZDisable 15 WZDOSet 15 WZEnable 15 WZFree 15 WZHomeJointDef 14 WZLimJointDef 14 WZLimSup 15 WZSphDef 14 wzstationary 13 wztemporary 13 Z Zonen 11 zurücksetzen 31 Zurücksetzen der Achse 28 68 .

.

Revision B. de .ABB Automation Technologies AB Robotics S-721 68 VÄSTERÅS SWEDEN Telephone: +46 (0) 21 344000 Telefax: +46 (0) 21 132592 3HAC 18152-3.