Sie sind auf Seite 1von 72

Anwendungshandbuch

Bewegungsfunktionen und Ereignisse


Steuerungssoftware IRC5 RobotWare 5.0

Anwendungshandbuch Bewegungsfunktionen und Ereignisse


RobotWare 5.0 Dokumentnr: 3HAC 18152-3 Revision: B

Die Informationen in diesem Handbuch knnen ohne vorherige Ankndigung gendert werden und stellen keine Verpflichtung von ABB dar. ABB bernimmt keinerlei Verantwortung fr etwaige Fehler, die dieses Handbuch enthalten kann. Wenn nicht ausdrcklich in vorliegendem Handbuch angegeben, gibt ABB fr keine hierin enthaltenen Informationen Garantie oder Gewhrleistung fr Verluste, Personen- oder Sachschden, Verwendbarkeit fr einen bestimmten Zweck oder hnliches. In keinem Fall kann ABB haftbar gemacht werden fr Schden oder Folgeschden, die sich aus der Anwendung dieses Dokuments oder der darin beschriebenen Produkte ergeben. Dieses Handbuch darf weder ganz noch teilweise ohne vorherige schriftliche Genehmigung von ABB vervielfltigt oder kopiert werden, und der Inhalt darf nicht Dritten bekannt gegeben noch zu einem unautorisierten Zweck verwendet werden. Zuwiderhandlungen werden strafrechtlich verfolgt. Zustzliche Kopien dieses Handbuchs knnen zum jeweils aktuellen Preis von ABB bezogen werden.

Copyright 2004 ABB Alle Rechte vorbehalten. ABB Automation Technologies AB Robotics SE-721 68 Vsters Schweden

Inhaltsverzeichnis

bersicht ..........................................................................................................................................5 Produktdokumentation, M2004........................................................................................................7 Sicherheit..........................................................................................................................................9 1 World Zones 11

1.1 bersicht .................................................................................................................................11 1.2 RAPID-Komponenten ..............................................................................................................13 1.3 Codebeispiele ...........................................................................................................................16 2 Fixed Position Events 19

2.1 bersicht .................................................................................................................................19 2.2 RAPID-Komponenten und Systemparameter ..........................................................................21 2.3 Codebeispiele ...........................................................................................................................25 3 Independent Axes 27

3.1 bersicht .................................................................................................................................27 3.2 Systemparameter ......................................................................................................................29 3.3 RAPID-Komponenten ..............................................................................................................30 3.4 Codebeispiele ...........................................................................................................................32 4 Path Recovery 35

4.1 bersicht ..................................................................................................................................35 4.2 RAPID-Komponenten ..............................................................................................................36 4.3 Speichern der aktuellen Bahn...................................................................................................38 4.4 Bahnaufzeichnung ....................................................................................................................48 5 Path Offset 59

5.1 bersicht ..................................................................................................................................59 5.2 RAPID-Komponenten ..............................................................................................................61 5.3 Zugehrige RAPID-Funktionalitt...........................................................................................63 5.4 Codebeispiel .............................................................................................................................64 Index 67

Inhaltsverzeichnis

bersicht

bersicht
ber dieses Handbuch Dieses Handbuch erlutert in Grundzgen, wann und wie die folgenden RobotWare-Optionen verwendet werden: Verwendung In diesem Handbuch knnen Sie nachschlagen, ob sich eine Option fr die Lsung eines Problems eignet. Auerdem beschreibt es, wie eine Option verwendet wird. Ausfhrliche Informationen zur Syntax fr RAPID-Routinen und dergleichen sind in diesem Handbuch nicht enthalten. Diese Informationen erhalten Sie im entsprechenden Referenzhandbuch. Wer sollte dieses Handbuch lesen? Dieses Handbuch ist in erster Linie fr Programmierer gedacht. Voraussetzungen Der Leser muss... mit Industrierobotern und ihren Grundbegriffen, der RAPID-Programmiersprache sowie mit Systemparametern und ihrer Konfiguration vertraut sein. 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. 2. 3.

Inhalt
Beschreibt die Option World Zones. Beschreibt die Option Fixed Position Events. Beschreibt die Option Independent Axes.

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 5

bersicht (Forts.)

Kapitel
4. 5.

Inhalt
Beschreibt die Option Path Recovery. Beschreibt die Option Path Offset.

Referenzen Referenz
RAPID Referenzhandbuch - RAPID-berblick RAPID-Referenzhandbuch - Instruktionen, Funktionen und Datentypen Benutzerhandbuch - IRC5 mit FlexPendant Technisches Referenzhandbuch - Systemparameter

Dokumentkennung
3HAC 16580-3 3HAC 16581-3 3HAC 16590-3 3HAC 17076-3

Revisionen Revision Beschreibung


A Erste Ausgabe Geringfgige Korrekturen. Optionsname Independent Movements wurde in Independent Axes gendert. Path Recovery wurde Bahnaufzeichnung hinzugefgt. Neue Instruktionen fr MultiMove-Systeme.

3HAC 18152-3 Revision: B

Produktdokumentation, M2004

Produktdokumentation, M2004
Allgemeines Die Roboterdokumentation kann in mehrere Kategorien unterteilt werden. Die Liste beruht auf der Informationsart in den Dokumenten, unabhngig davon, ob es sich um Standardprodukte oder optionale Produkte handelt. Das heit, dass eine Lieferung von Roboterprodukten nicht alle aufgefhrten Dokumente enthlt, sondern nur die passenden fr die gelieferte Ausrstung. Jedoch knnen alle aufgefhrten Dokumente bei ABB bestellt werden. Die erwhnten Dokumente gelten fr M2004-Robotersysteme. Produkthandbcher Smtliche Hardware, Roboter und Steuerschrnke werden mit einem Produkthandbuch geliefert, das in zwei Teile gegliedert ist: Produkthandbuch, Prozeduren Sicherheitsinformationen Installation und Inbetriebnahme (Beschreibung der mechanischen Installation, der elektrischen Anschlsse und des Ladens der Systemsoftware) Wartung (Beschreibung aller erforderlichen vorbeugenden Wartungsmanahmen einschlielich Intervallen) Reparatur (Beschreibung aller empfohlenen Reparaturvorgnge einschlielich des Austauschs von Ersatzteilen) Zustzliche Prozeduren, falls vorhanden (Kalibrierung, Stilllegung)

Produkthandbuch, Referenzinformation Referenzinformation (Artikelnummern fr Dokumentation, auf die im Produkthandbuch, in Prozeduren, Werkzeuglisten und Sicherheitsstandards verwiesen wird) Teileliste Faltbltter oder Explosionszeichnungen Schaltplne

Das als PDF verffentlichte Produkthandbuch besteht aus nur einer Datei, in der beide Teile als ein Produkthandbuch enthalten sind. Fortsetzung auf nchster Seite
3HAC 18152-3 Revision: B 7

Produktdokumentation, M2004 (Forts.)

RobotWare-Handbcher Die folgenden Handbcher 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 - Systemparameter: Beschreibung von Systemparametern und Konfigurationsablufen

Anwendungshandbcher Bestimmte Anwendungen (z. B. Software- oder Hardwareoptionen) werden in Anwendungshandbchern beschrieben. Ein Anwendungshandbuch kann eine oder mehrere Anwendungen beschreiben. Ein Anwendungshandbuch enthlt im Allgemeinen folgende Informationen: Zweck der Anwendung (ihre Aufgabe und ihr Nutzen) Enthaltenes Material (z. B. Kabel, E/A-Karten, RAPID-Instruktionen, Systemparameter) Bedienungsanleitung fr die Anwendung Beispiele fr die Verwendung der Anwendung

Benutzerhandbcher Diese Gruppe von Handbchern richtet sich an die Personen, die direkten Bedienungskontakt mit dem Roboter haben, z. B. Bediener der Produktionszelle, Programmierer und Wartungspersonal. Die Gruppe von Handbchern umfasst: Erste Schritte - IRC5 und RobotStudioOnline Benutzerhandbuch - IRC5 mit FlexPendant Benutzerhandbuch - RobotStudio Online Fehlerbehebungshandbuch fr Steuerung und Roboter

3HAC 18152-3 Revision: B

Sicherheit

Sicherheit
Sicherheit des Personals Der Roboter ist sehr schwer und bt unabhngig von seiner Geschwindigkeit eine extrem hohe Kraft aus. Auf eine Pause oder einen lngeren Halt der Bewegung kann eine gefhrliche, pltzliche Bewegung folgen. Selbst wenn ein Bewegungsmuster vorgegeben ist, kann ein externes Signal den Betrieb beeinflussen und eine unvorhergesehene Bewegung auslsen. Daher ist es wichtig, beim Betreten von abgesicherten Rumen alle Sicherheitsbestimmungen einzuhalten. Sicherheitsbestimmungen Bevor Sie beginnen, mit dem Roboter zu arbeiten, mssen Sie sich unbedingt mit den Sicherheitsbestimmungen vertraut machen (siehe dazu Benutzerhandbuch - IRC5 mit FlexPendant).

3HAC 18152-3 Revision: B

Sicherheit

10

3HAC 18152-3 Revision: B

1 World Zones
1.1. bersicht

1 World Zones
1.1. bersicht
Zweck Mit World Zones (Weltzonen) wird der Roboter angehalten oder ein Ausgangssignal gesetzt, wenn sich der Roboter in einer speziellen benutzerdefinierten Zone befindet. Anwendungsbeispiele: Die Arbeitsbereiche von zwei Robotern berschneiden sich teilweise. Mit der berwachung durch die Option World Zones kann die Kollision zweier Roboter mit Sicherheit ausgeschlossen werden. Im Arbeitsbereich des Roboters befindet sich ein permanentes Hindernis oder eine temporre externe Ausrstung. Um eine Kollision des Roboters mit dieser Ausrstung zu verhindern, kann eine verbotene Zone erstellt werden. Angabe, dass sich der Roboter an einer Position befindet, an der das Starten der Programmabarbeitung ber eine speicherprogrammierbare Steuerung (SPS) zulssig ist.

Weltzonen werden whrend Roboterbewegungen sowohl bei der Programmabarbeitung als auch bei manuellen Bewegungen berwacht. Wenn der TCP des Roboters die Weltzone erreicht oder wenn die Achsen die in Achsenkoordinaten definierte Weltzone erreichen, wird die Bewegung angehalten oder ein digitales Ausgangssignal gesetzt. WARNUNG! Aus Sicherheitsgrnden darf diese Software nicht zum Schutz von Personal benutzt werden. Verwenden Sie hierfr Hardware-Schutzausrstung. Enthaltene Komponenten Die RobotWare-Option World Zones ermglicht Ihnen den Zugriff auf folgende Elemente: Instruktionen zum Definieren der Volumenangaben verschiedener Formen Instruktionen zum Definieren von Achsenzonen in Koordinaten fr Achsen Instruktionen zum Definieren und Aktivieren von Weltzonen

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 11

1 World Zones
1.1. bersicht (Forts.)

Grundlegende Methode Das ist die allgemeine Methode zum Einrichten von World Zones. Ein ausfhrlicheres Beispiel zur Vorgehensweise finden Sie im Codebeispiele auf Seite 16. 1. Deklarieren Sie die Weltzone als stationr oder temporr. 2. Deklarieren Sie die Formvariable. 3. Definieren Sie die Form der Weltzone. 4. Definieren Sie die Weltzone (dass beim Erreichen des Volumens der Roboter angehalten oder ein Ausgangssignal gesetzt wird). Einschrnkungen Volumen knnen nur fr den TCP berwacht werden. Jede andere Komponente des Roboters kann sich unerkannt durch das Volumen bewegen. Um dies zweifelsfrei zu verhindern, knnen Sie eine Achsenweltzone berwachen (definiert durch WZLimJointDef oder WZHomeJointDef). Variablen vom Typ wzstationary oder wztemporary knnen nicht neu definiert werden. Sie knnen nur einmal definiert werden (mit WZLimSup oder WZDOSet).

12

3HAC 18152-3 Revision: B

1 World Zones
1.2. RAPID-Komponenten

1.2. RAPID-Komponenten
Datentypen Hier erhalten Sie eine kurze Beschreibung jedes Datentyps in World Zones. Weitere Informationen finden Sie unter dem jeweiligen Datentyp im RAPID-Referenzhandbuch - Teil 2, Funktionen und Datentypen von A-Z. Datentyp Beschreibung

wztemporary Mit wztemporary wird eine temporre Weltzone festgelegt. Dieser Datentyp kann an jeder Stelle des RAPID-Programms verwendet werden. Temporre Weltzonen knnen mit RAPID-Instruktionen deaktiviert, erneut aktiviert oder gelscht werden. Sie werden automatisch gelscht, wenn ein neues Programm geladen wird oder wenn die Programmabarbeitung in der MAIN-Routine ab dem Beginn gestartet wird. wzstationary Mit wzstationary wird eine stationre Weltzone festgelegt. Dieser Datentyp kann nur in einer Ereignisroutine verwendet werden, die mit dem Ereignis STROMVERSORGUNG EIN verknpft ist. Informationen ber das Definieren von Ereignisroutinen erhalten Sie im Benutzerhandbuch - IRC5 mit FlexPendant. Stationre Weltzonen sind immer aktiviert und werden durch einen Warmstart (ausschalten und anschlieend wieder einschalten oder Systemparameter ndern) erneut aktiviert. Stationre Weltzonen knnen nicht ber RAPIDInstruktionen deaktiviert, aktiviert oder gelscht werden. Stationre Weltzonen sollten verwendet werden, wenn Sicherheitsbelange bercksichtigt werden mssen. Mit shapedata wird die Geometrie einer Weltzone beschrieben. Weltzonen knnen als 4 unterschiedliche geometrische Formen definiert werden: ein rechteckiges Feld, dessen 4 Seiten parallel zum Welt-Koordinatensystem ausgerichtet sind ein Zylinder, der parallel zur Z-Achse des Welt-Koordinatensystems ausgerichtet ist eine Kugel ein Achsenwinkelbereich fr die Roboterachsen und/oder externen Achsen

shapedata

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 13

1 World Zones
1.2. RAPID-Komponenten (Forts.)

Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in World Zones. Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch - Teil 1, Instruktionen von A-Z. Instruktion
WZBoxDef

Beschreibung
Mit WZBoxDef wird ein Volumen definiert, das die Form eines Rechtecks aufweist und dessen vier Seiten parallel zu den Achsen des Welt-Koordinatensystems ausgerichtet sind. Die Definition wird in einer Variablen vom Typ shapedata gespeichert. Das Volumen kann auch als Inverse des Rechtecks (das gesamte Volumen ist auerhalb des Rechtecks) definiert werden. Mit WZCylDef wird ein Volumen definiert, das die Form eines Zylinders aufweist, wobei die Zylinderachse parallel zur Z-Achse des Welt-Koordinatensystems ausgerichtet ist. Die Definition wird in einer Variablen vom Typ shapedata gespeichert. Das Volumen kann auch als Inverse des Zylinders (das gesamte Volumen ist auerhalb 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. Das Volumen kann auch als Inverse der Kugel (das gesamte Volumen ist auerhalb der Kugel) definiert werden. Mit WZLimJointDef werden Achsenkoordinaten fr Achsen definiert, mit denen der Arbeitsbereich begrenzt wird. Sowohl fr Roboterachsen als auch fr externe Achsen knnen Koordinatengrenzen festgelegt werden. WZLimJointDef definiert fr jede Achse eine obere und eine untere Grenze. Fr Rotationsachsen werden die Grenzen in Grad und fr lineare Achsen in mm angegeben. Die Definition wird in einer Variablen vom Typ shapedata gespeichert.

WZCylDef

WZSphDef

WZLimJointDef

WZHomeJointDef Mit WZHomeJointDef werden Achsenkoordinaten fr Achsen definiert, um eine Position im Achsenraum festzulegen. Sowohl fr Roboterachsen als auch fr externe Achsen knnen Koordinatengrenzen festgelegt werden. WZHomeJointDef definiert fr jede Achse eine Achsenkoordinate des Mittelpunkts der Zone und die Deltaabweichung der Zone vom Mittelpunkt. Fr Rotationsachsen werden die Koordinaten in Grad und fr lineare Achsen in mm angegeben. Die Definition wird in einer Variablen vom Typ shapedata gespeichert.

Fortsetzung auf nchster Seite


14 3HAC 18152-3 Revision: B

1 World Zones
1.2. RAPID-Komponenten (Forts.)

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. Diese berwachung ist sowohl whrend der Programmabarbeitung als auch whrend manuellen Bewegungen aktiviert. Beim Aufruf von WZLimSup legen Sie fest, ob es sich um eine stationre Weltzone handelt, die in einer wzstationary-Variablen gespeichert wird, oder um eine temporre Weltzone, die in einer wztemporaryVariablen gespeichert wird. Mit WZDOSet wird das Setzen eines digitalen Ausgangssignals beim Erreichen der Weltzone durch den TPC definiert und aktiviert. Beim Aufruf von WZDOSet legen Sie fest, ob es sich um eine stationre Weltzone handelt, die in einer wzstationary-Variablen gespeichert wird, oder um eine temporre Weltzone, die in einer wztemporaryVariablen gespeichert wird. Mit WZDisable wird die berwachung einer temporren Weltzone deaktiviert. Mit WZEnable wird die berwachung einer temporren Weltzone erneut aktiviert. Weltzonen werden bei der Erstellung automatisch aktiviert. Eine Aktivierung ist nur erforderlich, wenn die Weltzone zuvor mit WZDisable deaktiviert wurde. Mit WZFree wird eine temporre Weltzone deaktiviert und gelscht.

WZDOSet

WZDisable WZEnable

WZFree

Funktionen World Zones enthlt keine RAPID-Funktionen.

3HAC 18152-3 Revision: B

15

1 World Zones
1.3. Codebeispiele

1.3. Codebeispiele
Erstellen eines geschtzten Feldes Um die Kollision des Roboter-TCP mit stationrer Ausrstung zu verhindern, richten Sie eine stationre Weltzone um die Ausrstung ein. Anschlieend muss die Routine my_power_on mit dem Ereignis STROMVERSORGUNG EIN verknpft werden. Informationen ber die Vorgehensweise finden Sie in der Beschreibung der Definition von Ereignisroutinen im Benutzerhandbuch - IRC5 mit geografischem Programmierget.

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

Fortsetzung auf nchster Seite


16 3HAC 18152-3 Revision: B

1 World Zones
1.3. Codebeispiele (Forts.)

Ausgabe eines Signals, wenn sich der Roboter in Position befindet Wenn 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 in einer sicheren Position befindet, und es wird ein Ausgangssignal gesetzt, wenn sich der Roboter in der Grundstellung befindet. Der Roboter befindet sich auf einer Verfahrschiene, die als externe Achse 1 behandelt wird. Es sind keine weiteren externen Achsen aktiviert. 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

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 17

1 World Zones
1.3. Codebeispiele (Forts.)
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

18

3HAC 18152-3 Revision: B

2 Fixed Position Events


2.1. bersicht

2 Fixed Position Events


2.1. bersicht
Zweck Mit Fixed Position Events wird sichergestellt, dass eine Programmroutine ausgefhrt wird, wenn die Position des TCP ordnungsgem definiert ist. Wenn ein Bewegungsinstruktion aufgerufen wird und das Zonenargument auf fine gesetzt ist, wird immer die nchste Routine ausgefhrt, sobald der TCP seine Position erreicht hat. Wenn ein Bewegungsinstruktion aufgerufen wird und das Zonenargument auf eine Strecke (z. B z20 gesetzt ist, wird mglicherweise die nchste Routine schon ausgefhrt, bevor sich der TCP nahe an seiner Position befindet. Der Grund hierfr ist, dass zwischen der Ausfhrung der RAPID-Instruktionen und den Roboterbewegungen immer eine Verzgerung vorhanden ist. Durch den Aufruf der Bewegungsinstruktion mit auf fine gesetztem Zonenargument werden die Bewegungen verlangsamt. Mit Fixed Position Events kann eine Routine ohne Verlangsamung der Bewegung ausgefhrt werden, wenn sich der TCP an einer angegebenen Position an einer beliebigen Stelle der TCP-Bahn befindet. Enthaltene Komponenten Die RobotWare-Option Fixed Position Events ermglicht Ihnen den Zugriff auf folgende Elemente: Instruktionen zum Definieren eines Positionsereignisses Instruktionen zum Bewegen des Roboters und gleichzeitigen Ausfhren des Positionsereignisses Instruktionen zum Bewegen des Roboters und Aufrufen einer Prozedur whrend des Weitergebens der Position, ohne zunchst ein Positionsereignis zu definieren

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 19

2 Fixed Position Events


2.1. bersicht (Forts.)

Grundlegende Methode Fixed Position Events kann entweder mit einer vereinfachten Instruktion zum Aufrufen einer Prozedur verwendet oder mit den folgenden allgemeinen Schritten konfiguriert werden. Ausfhrlichere Beispiele zur Vorgehensweise finden Sie unter Codebeispiele auf Seite 25. 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 Positionsereignis verwendet. Wenn sich der TCP in der definierten Entfernung von der Position befindet, tritt das Ereignis ein.

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 Ausfhren einer Interrupt-Routine an einer bestimmten Position auf der Bewegungsbahn des Roboters handeln. triggdata enthlt 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 nchster 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 fr 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 krzesten Entfernung von der Zielposition (die Mitte der Zonenbahn) befindet. TriggEquip wird wie TriggIO ausgefhrt, mit dem Unterschied, dass TriggEquip die interne Verzgerung der externen Ausrstung ausgleichen kann. Beispielsweise muss das Signal an eine Klebstoffpistole kurz vor dem Herausdrcken des Klebstoffs und dem Beginn des Klebevorgangs gesetzt werden. TriggInt definiert, wann eine Interrupt-Routine ausgefhrt 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 krzesten Entfernung von der Zielposition (die Mitte der Zonenbahn) befindet.

TriggEquip

TriggInt

Fortsetzung auf nchster Seite


22 3HAC 18152-3 Revision: B

2 Fixed Position Events


2.2. RAPID-Komponenten und Systemparameter (Forts.)

Instruktion
TriggCheckIO

Beschreibung
TriggCheckIO definiert die berprfung eines Eingangs- oder Ausgangssignals und den Zeitpunkt der berprfung. Die Definition wird in einer Variablen vom Typ triggdata gespeichert. TriggCheckIO definiert eine berprfung, bei der ein Eingangs- oder Ausgangssignal mit einem Wert verglichen wird. Wenn die berprfung fehlschlgt, wird eine Interrupt-Routine aufgerufen. Die Roboterbewegung kann optional angehalten werden, wenn das Interrupt-Ereignis erfolgt. Mit TriggCheckIO kann definiert werden, dass die berprfung in einer bestimmten Entfernung (in mm) von der Zielposition oder zu einem bestimmten Zeitpunkt vor Erreichen der Zielposition erfolgt. Die berprfung kann auch in einer definierten Entfernung von der Startposition oder zu einem bestimmten Zeitpunkt nach Verlassen der Startposition ausgefhrt werden. Durch Festlegen der Entfernung auf 0 (null) wird die Interrupt-Routine aufgerufen, wenn sich der TCP in der krzesten Entfernung von der Zielposition (die Mitte der Zonenbahn) befindet. TriggL ist wie MoveL eine Bewegungsinstruktion. Mit der TriggLInstruktion knnen zustzlich zur Bewegung Ausgangssignale gesetzt, Interrupt-Routinen ausgefhrt und Eingangs- oder Ausgangssignale an festen Positionen berprft werden. TriggL fhrt bis zu 6 Positionsereignisse aus, die als triggdata gespeichert werden. Diese mssen vor Aufruf von TriggL definiert werden. TriggC ist wie MoveC eine Bewegungsinstruktion. Mit der TriggCInstruktion knnen zustzlich zur Bewegung Ausgangssignale gesetzt, Interrupt-Routinen ausgefhrt und Eingangs- oder Ausgangssignale an festen Positionen berprft werden. TriggC fhrt bis zu 6 Positionsereignisse aus, die als triggdata gespeichert werden. Diese mssen vor Aufruf von TriggC definiert werden. TriggJ ist wie MoveJ eine Bewegungsinstruktion. Mit der TriggJInstruktion knnen zustzlich zur Bewegung Ausgangssignale gesetzt, Interrupt-Routinen ausgefhrt und Eingangs- oder Ausgangssignale an festen Positionen berprft werden. TriggJ fhrt bis zu 6 Positionsereignisse aus, die als triggdata gespeichert werden. Diese mssen 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 nchster Seite


3HAC 18152-3 Revision: B 23

2 Fixed Position Events


2.2. RAPID-Komponenten und Systemparameter (Forts.)

Instruktion
MoveCSync MoveJSync

Beschreibung
MoveCSync ist eine Kreisbewegungsinstruktion, die in der Mitte der Zonenbahn eine Prozedur aufruft. MoveJSync ist eine Achsenbewegungsinstruktion, die in der Mitte der Zonenbahn eine Prozedur aufruft.

Funktionen Fixed Position Events enthlt keine RAPID-Funktionen. Systemparameter Hier erhalten Sie eine kurze Beschreibung jedes Parameters in Fixed Position Events. Weitere Informationen finden Sie unter dem jeweiligen Parameter im Technischen Referenzhandbuch - Systemparameter. Parameter Beschreibung
Event TriggEquip nutzt die Verzgerung von ca. 70 ms zwischen der RAPIDPreset Time Ausfhrung und der Roboterbewegung. Wenn die Verzgerung der Ausrstung 70 ms bersteigt, kann die Verzgerung der Roboterbewegung durch Konfigurieren von Event Preset Time erhht werden. Event Preset Time gehrt zum Typ Motion System in der Parametergruppe Motion.

24

3HAC 18152-3 Revision: B

2 Fixed Position Events


2.3. Codebeispiele

2.3. Codebeispiele
Beispiel ohne Fixed Position Events Ohne Verwendung von Fixed Position Events kann der folgende Code geschrieben werden:
MoveJ p1, vmax, fine, tool1; MoveL p2, v1000, z20, tool1; SetDO do1, 1; MoveL p3, v1000, fine, tool1;

Ergebnis Der Code gibt an, dass der TCP p2 erreichen muss, bevor do1 gesetzt wird. Da die Roboterbahn in Bezug auf die Instruktionsausfhrung eine Verzgerung aufweist, wird do1 gesetzt, wenn sich der TCP an der mit X markierten Position (siehe Abbildung) befindet.

xx0300000151

Beispiel mit TriggIO-Instruktion und TriggL-Instruktion Das Ausgangssignal kann in einer Entfernung von 30 mm von der Zielposition gesetzt werden, indem das Positionsereignis definiert und anschlieend der Roboter bewegt wird, whrend das System das Positionsereignis ausfhrt.
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 nchster Seite


3HAC 18152-3 Revision: B 25

2 Fixed Position Events


2.3. Codebeispiele (Forts.)

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

xx0300000158

Beispiel mit MoveLSync-Instruktion Der Aufruf einer Prozedur, wenn sich die Roboterbahn so nah wie mglich an der Zielposition 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;

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

xx0300000165

26

3HAC 18152-3 Revision: B

3 Independent Axes
3.1. bersicht

3 Independent Axes
3.1. bersicht
Zweck Mit Independent Axes wird eine Achse unabhngig von anderen Achsen im Robotersystem bewegt. Anwendungsbeispiele: Bewegen einer externen Achse, auf der sich ein Objekt befindet (die z. B. ein Objekt dreht, whrend der Roboter das Objekt spritzlackiert). Verkrzen der Zyklusdauer durch Ausfhren einer Roboteraufgabe, whrend eine externe Achse eine andere Roboteraufgabe ausfhrt. Kontinuierliches Drehen von Roboterachse 6 (zum Polieren oder fr hnliche Aufgaben). Zurcksetzen des Messsystems nach mehreren Umdrehungen der Achse in derselben Richtung. Verkrzt die Zyklusdauer im Vergleich zum physischen Zurckdrehen.

Eine Achse kann sich unabhngig bewegen, wenn sie in den unabhngigen Modus versetzt wurde. Eine Achse kann in den unabhngigen Modus versetzt und spter in den normalen Modus zurckgesetzt werden. Enthaltene Komponenten Die RobotWare-Option Independent Axes ermglicht Ihnen den Zugriff auf folgende Elemente: Instruktionen zum Festlegen des unabhngigen Modus und zum Angeben der Bewegung fr eine Achse eine Instruktion zum Wiederherstellen des normalen Modus und/oder Zurcksetzen des Messsystems Funktionen zum berprfen des Status einer unabhngigen Achse Systemparameter fr die Konfiguration

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 27

3 Independent Axes
3.1. bersicht (Forts.)

Grundlegende Methode Dies ist die allgemeine Methode zum unabhngigen Bewegen einer Achse. Ausfhrlichere Beispiele zur Vorgehensweise finden Sie unter Codebeispiele auf Seite 32. 1. Rufen Sie eine Instruktion fr eine unabhngige Bewegung auf, um die Achse in den unabhngigen Modus zu versetzen und zu bewegen. 2. Lassen Sie den Roboter whrend der Bewegung der unabhngigen Achse eine weitere Instruktion ausfhren. 3. Wenn sowohl Roboter als auch unabhngige Achse angehalten wurden, setzen Sie die unabhngige Achse in den normalen Modus zurck. Zurcksetzen der Achse Auch wenn sich eine Achse nicht im unabhngigen Modus befindet, bewegt sie sich mglicherweise nur in eine Richtung und die Genauigkeit der Bewegung nimmt schlielich ab. Dann kann das Messsystem mit der Instruktion IndReset zurckgesetzt werden. Es wird empfohlen, das Messsystem fr eine Achse zurckzusetzen, bevor ihr Motor 10.000 Umdrehungen in derselben Richtung ausgefhrt hat. Einschrnkungen Eine mechanische Einheit darf nicht deaktiviert werden, wenn sich eine ihrer Achse im unabhngigen Modus befindet. Achsen im unabhngigen Modus knnen nicht manuell bewegt werden. Die einzige Roboterachse, die im unabhngigen Modus verwendet werden kann, ist Achse Nummer 6. Beim IRB2400 und IRB4400 kann die Instruktion IndReset auch fr Achse 4 verwendet werden.

28

3HAC 18152-3 Revision: B

3 Independent Axes
3.2. Systemparameter

3.2. Systemparameter
ber die Systemparameter Hier erhalten Sie eine kurze Beschreibung jedes Parameters in Independent Axes. Weitere Informationen finden Sie unter dem jeweiligen Parameter im Technischen Referenzhandbuch - Systemparameter. Arm Diese Parameter gehren zum Typ Arm in der Parametergruppe Motion. Parameter
Independent Joint

Beschreibung
Flag, das bestimmt, ob der unabhngige Modus fr die Achse zulssig ist.

Independent Upper Definiert die Obergrenze des Arbeitsbereichs fr die Achse beim Joint Bound Betrieb im unabhngigen Modus. Independent Lower Definiert die Untergrenze des Arbeitsbereichs fr die Achse beim Joint Bound Betrieb im unabhngigen Modus.

Transmission Diese Parameter gehren zum Typ Transmission in der Parametergruppe Motion. Parameter
Transmission Gear High

Beschreibung
Independent Axes erfordert eine hohe Auflsung des bersetzungsverhltnisses. Dieses wird daher als Transmission Gear High und Transmission Gear Low definiert. Sofern kein kleinerer Wert verwendet werden kann, ist das richtige bersetzungsverhltnis ausgewhlt, wenn Transmission Gear High auf die Anzahl der Zhne auf der Seite der Roboterachse und Transmission Gear Lowauf die Anzahl der Zhne auf der Motorseite gesetzt ist. Siehe Transmission Gear High.

Transmission Gear Low

3HAC 18152-3 Revision: B

29

3 Independent Axes
3.3. RAPID-Komponenten

3.3. RAPID-Komponenten
Datentypen Fr Independent Axes sind keine Datentypen vorhanden. Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in Independent Axes. Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch - Teil 1, Instruktionen von A-Z. Eine Instruktion fr eine unabhngige Bewegung wird sofort ausgefhrt, auch wenn zu diesem Zeitpunkt die Achse bewegt wird. Wenn eine neue Instruktion fr eine unabhngige Bewegung vor Abschluss der vorherigen ausgefhrt, wird, setzt die neue Instruktion die alte Instruktion sofort auer Kraft. Instruktion
IndAMove

Beschreibung
IndAMove (Independent Absolute position Movement) versetzt eine Achse in den unabhngigen Modus und bewegt die Achse an die angegebene Position. IndCMove (Independent Continuous Movement) versetzt eine Achse in den unabhngigen Modus und bewegt die Achse kontinuierlich mit der angegebenen Geschwindigkeit. IndDMove (Independent Delta position Movement) versetzt eine Achse in den unabhngigen Modus und bewegt die Achse um die angegebene Strecke.

IndCMove

IndDMove

Fortsetzung auf nchster Seite


30 3HAC 18152-3 Revision: B

3 Independent Axes
3.3. RAPID-Komponenten (Forts.)

Instruktion
IndRMove

Beschreibung
IndRMove (Independent Relative position Movement) versetzt eine Rotationsachse in den unabhngigen Modus und bewegt die Achse innerhalb einer Umdrehung an die angegebene Position. Da an der Position keine Umdrehungsinformationen vorhanden sind, fhrt IndRMove niemals mehr als eine Achsenumdrehung aus. Mit IndReset wird eine unabhngige Achse in den normalen Modus zurckgesetzt. Mit IndReset kann das Messsystem fr eine Rotationsachse um mehrere Achsenumdrehungen bewegt werden. Die Auflsung der Positionen wird verringert, wenn der Abstand zur logischen Position 0 zunimmt, und das Zurckdrehen der Achse beansprucht mehr Zeit. Durch Bewegen des Messsystems wird die Auflsung beibehalten, ohne die Achse physisch zurckzudrehen. Beim Aufruf von IndReset drfen sich unabhngige Achse und Roboter nicht bewegen.

IndReset

Funktionen Hier erhalten Sie eine kurze Beschreibung jeder Funktion in Independent Axes. Weitere Informationen finden Sie unter der jeweiligen Funktion im RAPID-Referenzhandbuch - Teil 2, Funktionen und Datentypen von A-Z. Funktion
IndInpos IndSpeed

Beschreibung
IndInpos gibt an, ob eine Achse die ausgewhlte Position erreicht hat. IndSpeed gibt an, ob eine Achse die ausgewhlte Geschwindigkeit erreicht hat.

3HAC 18152-3 Revision: B

31

3 Independent Axes
3.4. Codebeispiele

3.4. Codebeispiele
Verkrzen der Zyklusdauer Ein Objekt an Station A muss an zwei Stellen geschweit werden. Die externe Achse fr Station A kann das Objekt in die Position fr den zweiten Schweivorgang drehen, whrend der Roboter ein anderes Objekt schweit. Dies fhrt zu einer krzeren Zyklusdauer als bei einer Vorgehensweise, bei der der Roboter whrend der 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;

Fortsetzung auf nchster Seite


32 3HAC 18152-3 Revision: B

3 Independent Axes
3.4. Codebeispiele (Forts.)

Polieren durch Drehen von Achse 6 Um eine Objekt zu polieren, kann die Roboterachse 6 auf kontinuierliches Drehen eingestellt werden. Versetzen Sie Roboterachse 6 in den unabhngigen Modus, und lassen Sie sie kontinuierlich drehen. Bewegen Sie den Roboter ber den zu polierenden Bereich. Halten Sie die Bewegung fr den Roboter und die unabhngige Achse an, bevor Sie wieder in den normalen Modus wechseln. Nachdem die Achse zahlreiche Umdrehungen ausgefhrt hat, setzen Sie das Messsystem zurck, um die Auflsung beizubehalten. Beachten Sie, dass der Parameter Independent Joint fr rob1_6 auf Yes gesetzt sein muss, damit dieses Beispiel ordnungsgem ausgefhrt 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; !Move robot where you want to polish MoveL p1,v10, z50, tool1; MoveL p2,v10, fine, tool1; !Stop axis 6 and wait until its 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

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 33

3 Independent Axes
3.4. Codebeispiele (Forts.)

Zurcksetzen einer Achse In diesem Beispiel wird gezeigt, wie das Messsystem fr Achse 1 in Station A zurckgesetzt wird. Das Messsystem bewegt sich um mehrere Umdrehungen, bis es nahe Null ( 180) ist.
IndReset Station_A, 1 \RefNum:=0 \Short;

34

3HAC 18152-3 Revision: B

4 Path Recovery
4.1. bersicht

4 Path Recovery
4.1. bersicht
Zweck Mit Path Recovery wird die aktuelle Bewegungsbahn gespeichert, es werden einige Roboterbewegungen ausgefhrt und anschlieend wird die unterbrochene Bahn wiederhergestellt. Dies ist sinnvoll, wenn whrend der Bahnbewegung ein Fehler oder Interrupt auftritt. Eine Fehlerbehandlungs- oder Interrupt-Routine kann eine Task ausfhren und anschlieend die Bahn wiederherstellen. Fr Anwendungen wie Lichtbogenschweien und Kleben muss die Arbeit an dem Punkt fortgesetzt werden, an dem die Arbeit des Roboters unterbrochen wurde. Wenn der Roboter die Arbeit von vorne beginnt, muss das Werkstck verschrottet werden. Wenn sich der Roboter in einem Werkstck befindet und ein Prozessfehler auftritt, kann das direkte Herausbewegen des Roboters eine Kollision verursachen. Mithilfe der Bahnaufzeichnung kann der Roboter hingegen auf derselben Bahn herausbewegt werden, auf der er hineinbewegt wurde. Enthaltene Komponenten Die RobotWare-Option Path Recovery ermglicht 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. eine Bahnaufzeichnung mit der Mglichkeit, den TCP auf derselben Bahn von einer Position fortzubewegen, auf der er zu dieser Position bewegt wurde

Einschrnkungen Mit den Instruktionen StorePath und RestoPath werden nur Bewegungsbahndaten behandelt. Die Stoppposition muss ebenfalls gespeichert werden. Bewegungen mithilfe der Bahnaufzeichnung mssen auf Interrupt-Ebene erfolgen, d. h.,
StorePath muss vor PathRecMoveBwd ausgefhrt werden.

3HAC 18152-3 Revision: B

35

4 Path Recovery
4.2. RAPID-Komponenten

4.2. RAPID-Komponenten
Datentypen Hier erhalten Sie eine kurze Beschreibung jedes Datentyps in Path Recovery. Weitere Informationen finden Sie unter dem jeweiligen Datentyp im RAPID-Referenzhandbuch Instruktionen, Funktionen und Datentypen. Datentyp
pathrecid

Beschreibung
Mit pathrecid wird ein Stopppunkt fr die Bahnaufzeichnung angegeben.

Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in Path Recovery. Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch Instruktionen, Funktionen und Datentypen. Instruktion
StorePath RestoPath PathRecStart

Beschreibung
Mit StorePath wird die Bewegungsbahn gespeichert, die beim Auftreten eines Fehlers oder Interrupts ausgefhrt wird. Mit RestoPath wird die von StorePath gespeicherte Bahn wiederhergestellt. Mit PathRecStart wird die Aufzeichnung der Roboterbahn gestartet. Die Bahnaufzeichnung speichert whrend der Abarbeitung des Roboterprogramms Bahninformationen. Mit PathRecStop wird die Aufzeichnung der Roboterbahn beendet. Mit PathRecMoveBwd wird der Roboter auf einer aufgezeichneten Bahn zurckbewegt. Mit PathRecMoveFwd wird der Roboter an die Position zurckbewegt, an der PathRecMoveBwd ausgefhrt wurde. Der Roboter kann auch nur auf einer Teilstrecke nach vorne bewegt werden, indem ein Bezeichner angegeben wird, der whrend der Rckwrtsbewegung weitergegeben wurde.

PathRecStop PathRecMoveBwd PathRecMoveFwd

Fortsetzung auf nchster Seite


36 3HAC 18152-3 Revision: B

4 Path Recovery
4.2. RAPID-Komponenten (Forts.)

Instruktion
SyncMoveSuspend

Beschreibung
Mit SyncMoveSuspend wird der Synchronbewegungsmodus unterbrochen und das System in den unabhngigen Bewegungsmodus versetzt. Mit SyncmoveResume werden synchronisierte Bewegungen nach Verlassen des unabhngigen Bewegungsmodus fortgesetzt.

SyncMoveResume

Funktionen Hier erhalten Sie eine kurze Beschreibung jeder Funktion in Path Recovery. Weitere Informationen finden Sie unter der jeweiligen Funktion im RAPID-Referenzhandbuch Instruktionen, Funktionen und Datentypen. Funktion
PathRecValidBwd PathRecValidFwd

Beschreibung
Mit PathRecValidBwd wird berprft, ob die Bahnaufzeichnung aktiviert ist und ob eine aufgezeichnete Rckwrtsbahn verfgbar ist. Mit PathRecValidFwd wird berprft, ob die Bahnaufzeichnung fr die Vorwrtsbewegung verwendet werden kann. Damit eine Vorwrtsbewegung mit der Bahnaufzeichnung mglich ist, muss die Bahnaufzeichnung zuvor angewiesen worden sein, eine Rckwrtsbewegung auszufhren.

3HAC 18152-3 Revision: B

37

4 Path Recovery
4.3. Speichern der aktuellen Bahn

4.3. Speichern der aktuellen Bahn


Warum soll die Bahn gespeichert werden? Bei der einfachsten Verwendung von Path Recovery wird nur die aktuelle Bahn gespeichert, um sie nach dem Beheben eines Fehlers oder einer hnlichen Aktion wiederherstellen zu knnen. Angenommen, whrend des Lichtbogenschweiens tritt ein Fehler auf. Um den Fehler zu beheben, muss der Roboter mglicherweise vom Werkstck wegbewegt werden. Wenn der Fehler behoben wurde, muss der Schweivorgang an der Stelle fortgesetzt werden, an der er unterbrochen wurde. Dies geschieht, indem die Bahninformationen und die Position des Roboters vor dem Entfernen von der Bahn gespeichert werden. Nach der Behebung des Fehlers kann die Bahn wiederhergestellt und der Schweivorgang fortgesetzt werden. Grundlegende Methode Dies ist die allgemeine Methode zum Speichern der aktuellen Bahn: 1. Zu Beginn der Fehlerbehandlungs- oder Interrrupt-Routine: A. Halten Sie die Bewegung an. B. Speichern Sie die Bewegungsbahn. C. Speichern Sie die Stoppposition. 2. Am Ende der Fehlerbehandlungs- oder Interrrupt-Routine: A. Bewegen Sie den Roboter zur gespeicherten Stoppposition. B. Stellen Sie die Bewegungsbahn wieder her. C. Starten Sie die Bewegung.

Fortsetzung auf nchster Seite


38 3HAC 18152-3 Revision: B

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.)

Beispiel: In diesem Beispiel wird die Verwendung von Path Recovery bei der Fehlerbehandlung gezeigt. Zunchst werden Bahn und Position gespeichert und der Fehler wird korrigiert. Anschlieend wird der Roboter an die Position zurckbewegt 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); !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

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 39

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.)

Speichern der Bahn in einem MultiMove-System In einem MultiMove-System knnen die Roboter nach StorePath mit dem Argument KeepSync den Synchronbewegungsmodus beibehalten. Die Roboter knnen jedoch nicht vom unabhngigen Modus in den Synchronmodus, sondern nur vom Synchronmodus in den unabhngigen Modus wechseln. Nachdem ein MultiMove-System mit dem Argument KeepSync eingestellt wurde, kann das System auf der StorePath-Ebene zwischen Synchronmodus, teilkoordiniertem Modus und unabhngigem Modus wechseln. Die nderungen werden mit den Instruktionen SyncMoveResume und SyncMoveSuspend durchgefhrt. Beispiel SyncArc mit koordinierter synchroner Bewegung In diesem Beispiel werden die Verwendung von Path Recovery und das Beibehalten des Synchronmodus bei der Fehlerbehandlung fr ein MultiMove-System veranschaulicht. Zwei Roboter fhren Bogenschweiarbeiten an demselben Werkstck aus. Um das Beispiel einfach und allgemein zu halten, werden anstelle von Schweiinstruktionen Bewegungsinstruktionen verwendet. Das Werkstck wird von einem Positionierer gedreht. Weitere Informationen ber das Beispiel SyncArc finden Sie im Handbuch MultiMove. T_ROB1-Taskprogramm
MODULE 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 nchster Seite


40 3HAC 18152-3 Revision: B

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.)
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; UNDO SyncMoveUndo; ERROR IF ERRNO = ERR_PATH_STOP THEN gun_cleaning(); ENDIF 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

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 41

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.)
ENDMODULE

T_ROB2-Taskprogramm
MODULE 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 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; UNDO SyncMoveUndo; ERROR IF ERRNO = ERR_PATH_STOP THEN gun_cleaning(); ENDIF ENDPROC PROC gun_cleaning() VAR robtarget p2;

Fortsetzung auf nchster Seite


42 3HAC 18152-3 Revision: B

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.)
!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-Taskprogramm
MODULE 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 PROC SyncMove() MoveExtJ angle_neg20, vrot50, fine; WaitSyncTask sync1, all_tasks; ! Auf Roboter warten SyncMoveOn sync2, all_tasks;

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 43

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.)
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; UNDO SyncMoveUndo; ERROR IF ERRNO = ERR_PATH_STOP THEN gun_cleaning(); ENDIF 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

Fortsetzung auf nchster Seite


44 3HAC 18152-3 Revision: B

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.)

Unterbrechen und Fortsetzen synchronisierter Bewegungen im Beispiel SyncArc Mit SyncMoveSuspend wird der Synchronbewegungsmodus unterbrochen und das System in den unabhngigen oder teilkoordinierten Bewegungsmodus versetzt.
SyncMoveResume wird verwendet, um erneut in den Synchronbewegungsmodus zu

wechseln. Diese Instruktionen knnen nur verwendet werden, nachdem StorePath\KeepSync ausgefhrt wurde. T_ROB1
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); !Move in synchronized motion mode 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

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 45

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.) T_ROB2
PROC 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

Fortsetzung auf nchster Seite


46 3HAC 18152-3 Revision: B

4 Path Recovery
4.3. Speichern der aktuellen Bahn (Forts.) T_STN1
PROC 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; !Restore the path and start the movement RestoPath; StartMove; RETRY; ENDPROC

3HAC 18152-3 Revision: B

47

4 Path Recovery
4.4. Bahnaufzeichnung

4.4. Bahnaufzeichnung
Was ist die Bahnaufzeichnung? In der Bahnaufzeichnung knnen mehrere Bewegungsinstruktionen gespeichert werden. Anschlieend kann der Roboter mithilfe dieses Speichers auf derselben Bahn zurckbewegt werden. Verwendung der Bahnaufzeichnung Dies ist die allgemeine Methode fr die Verwendung der Bahnaufzeichnung: 1. Starten Sie die Bahnaufzeichnung. 2. Bewegen Sie den Roboter mit regulren Bewegungs- oder Prozessinstruktionen. 3. Speichern Sie die aktuelle Bahn. 4. Bewegen Sie den Roboter auf der aufgezeichneten Bahn zurck. 5. Beheben Sie den Fehler. 6. Bewegen Sie den Roboter auf der aufgezeichneten Bahn vorwrts. 7. Stellen Sie die unterbrochene Bahn wieder her. Anheben des Werkzeugs Wenn sich der Roboter auf der eigenen Bahn zurckbewegt, sollten Sie verhindern, dass das Werkzeug gegen das Werkstck stt. Bei einem Prozess wie Lichtbogenschweien sollten Sie die Berhrung mit der Schweinaht vermeiden. Mithilfe des Arguments ToolOffs in den Instruktionen PathRecMoveBwd und PathRecMoveFwd knnen Sie einen Offset fr den TCP einstellen. Dieser Offset wird in Form von Werkzeug-Koordinaten festgelegt. Das bedeutet, wenn der Offset auf [0,0,10] gesetzt ist, wird das Werkzeug in einer Entfernung von 10 mm vom Werkstck auf der aufgezeichneten Bahn zurckbewegt.

xx0400000828

Fortsetzung auf nchster Seite


48 3HAC 18152-3 Revision: B

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.) HINWEIS! Wenn sich ein MultiMove-System im Synchronmodus befindet und ein Werkzeug angehoben wird, mssen alle Tasks ToolOffs verwenden. Wenn Sie jedoch nur ein einziges Werkzeug anheben mchten, legen Sie in den anderen Tasks
ToolOffs=[0,0,0] fest.

Einfaches Beispiel Wenn zwischen p1 und p4 ein Fehler auftritt, kehrt der Roboter zu p1 zurck, wo der Fehler behoben werden kann. Nachdem der Fehler behoben wurde, setzt der Roboter den Vorgang an der Stelle fort, an der der Fehler aufgetreten ist. Wenn p4 ohne Auftreten eines Fehlers erreicht wurde, wird die Bahnaufzeichnung ausgeschaltet. Anschlieend bewegt sich der Roboter ohne Bahnaufzeichnung von 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 ...

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 49

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.)

Komplexes Beispiel In diesem Beispiel wird die Bahnaufzeichnung fr zwei Zwecke verwendet: Wenn ein Fehler auftritt, kann der Bediener den Roboter zu p1 oder zu p2 zurckbewegen. Nachdem der Fehler behoben wurde, wird die unterbrochene Bewegung fortgesetzt. Auch wenn kein Fehler auftritt, wird der Roboter mithilfe der Bahnaufzeichnung von p4 zu p1 bewegt. Dieses Verfahren empfiehlt sich, wenn sich der Roboter an einer schmalen Position befindet, an der das Herausbewegen des Roboters schwierig ist.

Beachten Sie, dass ein Zurckbewegen zu p2 nicht mglich ist, wenn ein Fehler whrend der ersten Bewegungsinstruktion (zwischen p1 und p2) auftritt. Wenn der Bediener den Roboter zu p2 zurckbewegen mchte, wird PathRecValidBwd verwendet, um zu bestimmen, ob dies mglich ist. Bevor der Roboter vorwrts an die Position bewegt wird, an der der Vorgang unterbrochen wurde, wird mithilfe von PathRecValidFwd bestimmt, ob dies mglich ist, (wenn der Roboter niemals zurckbewegt wurde, befindet er sich bereits in Position).
... VAR pathrecid origin_id; VAR pathrecid corner_id; 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;

Fortsetzung auf nchster Seite


50 3HAC 18152-3 Revision: B

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.)

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 nchster Seite


3HAC 18152-3 Revision: B 51

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.)

Fortsetzen der Bahnaufzeichnung Wenn die Bahnaufzeichnung angehalten wurde, kann sie an derselben Position erneut gestartet werden, ohne den Ereignisverlauf zu lschen. Im folgenden Beispiel wird der Roboter mit der PathRecMoveBwd-Instruktion zu p1 zurckbewegt. Dies ist nicht mglich, wenn sich der Roboter beim erneuten Starten der Bahnaufzeichnung an einer anderen Position als p2 befindet. Weitere Informationen finden Sie im RAPID-Referenzhandbuch - Teil 1, Instruktionen von AZ im Abschnitt ber PathRecStop.
... 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; ...

Fortsetzung auf nchster Seite


52 3HAC 18152-3 Revision: B

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.)

Beispiel SyncArc mit koordinierter synchroner Bewegung In diesem Beispiel wird die Verwendung der Bahnaufzeichnung bei der Fehlerbehandlung fr ein MultiMove-System gezeigt. In diesem Beispiel fhren zwei Roboter Bogenschweiarbeiten an demselben Werkstck aus. Um das Beispiel einfach und allgemein zu halten, werden anstelle von Schweiinstruktionen Bewegungsinstruktionen verwendet. Das Werkstck wird von einem Positionierer gedreht. Weitere Informationen ber das Beispiel SyncArc finden Sie im Handbuch MultiMove. T_ROB1-Taskprogramm
MODULE 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 nchster Seite


3HAC 18152-3 Revision: B 53

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.)
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; UNDO SyncMoveUndo; ERROR ! Weld error in this program task IF ERRNO = AW_WELD_ERR THEN gun_cleaning(); ENDIF 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

Fortsetzung auf nchster Seite


54 3HAC 18152-3 Revision: B

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.)
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-Taskprogramm
MODULE 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 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;

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 55

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.)
PathRecStop \Clear; SyncMoveOff sync3; MoveL p299, v1000, fine, tool2; UNDO SyncMoveUndo; ERROR IF ERRNO = ERR_PATH_STOP THEN gun_move_out(); ENDIF 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

Fortsetzung auf nchster Seite


56 3HAC 18152-3 Revision: B

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.) T_STN1-Taskprogramm
MODULE 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 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; UNDO SyncMoveUndo; ERROR IF ERRNO = ERR_PATH_STOP THEN gun_move_out(); ENDIF ENDPROC

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 57

4 Path Recovery
4.4. Bahnaufzeichnung (Forts.)
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

58

3HAC 18152-3 Revision: B

5 Path Offset
5.1. bersicht

5 Path Offset
5.1. bersicht
Zweck Mit Path Offset werden Online-Anpassungen der Roboterbahn entsprechend den Eingangsdaten von Sensoren vorgenommen. Mit der Gruppe der Instruktionen von Path Offset kann die Roboterbahn mit den Eingangsdaten von Sensoren verglichen und entsprechend angepasst werden. Enthaltene Komponenten Die RobotWare-Option Path Offset ermglicht Ihnen den Zugriff auf folgende Elemente: den Datentyp corrdescr die Instruktionen CorrCon, CorrDiscon, CorrClear und CorrWrite die Funktion CorrRead

Grundlegende Methode Das ist die allgemeine Methode zum Einrichten von Path Offset. Ein ausfhrlicheres Beispiel zur Vorgehensweise finden Sie im Codebeispiel auf Seite 64. 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 hufig aufzurufen. 5. Rufen Sie mithilfe der Korrektur eine Bewegungsinstruktion auf. Die Bahn wird mehrfach korrigiert.

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 59

5 Path Offset
5.1. bersicht (Forts.)

Einschrnkungen Es ist mglich, mehrere Korrekturgeneratoren gleichzeitig zu verbinden (z. B. einen fr Korrekturen auf der Z-Achse und einen weiteren fr Korrekturen auf der Y-Achse). Jedoch knnen nicht mehr als 5 Korrekturgeneratoren gleichzeitig verbunden werden. Nach einem Neustart der Steuerung mssen die Korrekturgeneratoren erneut definiert werden. Die Definitionen und Verbindungen bleiben nach einem Neustart der Steuerung nicht erhalten. Die Instruktionen knnen nur in Bewegungstasks verwendet werden.

60

3HAC 18152-3 Revision: B

5 Path Offset
5.2. RAPID-Komponenten

5.2. RAPID-Komponenten
Datentypen Hier erhalten Sie eine kurze Beschreibung jedes Datentyps in Path Offset. Weitere Informationen finden Sie unter dem jeweiligen Datentyp im RAPID-Referenzhandbuch - Teil 2, Funktionen und Datentypen von A-Z. Datentyp
corrdescr

Beschreibung
corrdescr ist ein Korrekturgenerator-Deskriptor, der als Verweis auf den Korrektorgenerator verwendet wird.

Instruktionen Hier erhalten Sie eine kurze Beschreibung jeder Instruktion in Path Offset. Weitere Informationen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch - Teil 1, Instruktionen von A-Z. Instruktion
CorrCon

Beschreibung
CorrCon aktiviert die Bahnkorrektur. Durch Aufruf von CorrCon wird eine Verbindung mit einem Korrekturgenerator hergestellt. Nachdem diese Verbindung hergestellt wurde, kann die Bahn kontinuierlich mit neuen Offset-Eingangsdaten (z. B. von einem Sensor) korrigiert werden. CorrDiscon deaktiviert die Bahnkorrektur. Durch Aufruf von CorrDiscon wird die Verbindung mit einem Korrekturgenerator getrennt. CorrClear deaktiviert die Bahnkorrektur. Durch Aufruf von CorrClear wird die Verbindung mit allen Korrekturgeneratoren getrennt. CorrWrite legt die Bahnkorrekturwerte fest. Durch Aufruf von CorrWrite werden die Offset-Werte auf einen Korrekturgenerator gesetzt.

CorrDiscon CorrClear CorrWrite

Fortsetzung auf nchster Seite


3HAC 18152-3 Revision: B 61

5 Path Offset
5.2. RAPID-Komponenten (Forts.)

Funktionen Hier erhalten Sie eine kurze Beschreibung jeder Funktion in Path Offset. Weitere Informationen finden Sie unter der jeweiligen Funktion im RAPID-Referenzhandbuch - Teil 2, Funktionen und Datentypen von A-Z. Funktion
CorrRead

Beschreibung
CorrRead liest die gesamte von einem Korrekturgenerator ausgefhrte Korrektur.

62

3HAC 18152-3 Revision: B

5 Path Offset
5.3. Zugehrige RAPID-Funktionalitt

5.3. Zugehrige RAPID-Funktionalitt


Das Argument \Corr Das optionale Argument \Corr kann fr einige Bewegungsinstruktionen festgelegt werden. Hierdurch werden Bahnkorrekturen whrend der Ausfhrung der Bewegungsinstruktion ermglicht. Die folgenden Instruktionen verfgen ber das optionale Argument \Corr: MoveL MoveC SearchL SearchC TriggL (nur wenn die Steuerung ber die Option Fixed Position Events verfgt) TriggC (nur wenn die Steuerung ber die Option Fixed Position Events verfgt) CapL (nur wenn die Steuerung ber die Option Continuous Application Platform verfgt) CapC (nur wenn die Steuerung ber die Option Continuous Application Platform verfgt) ArcL (nur wenn die Steuerung ber die Option RobotWare Arc verfgt) ArcC (nur wenn die Steuerung ber die Option RobotWare Arc verfgt)

Weitere Informationen ber diese Instruktionen finden Sie unter der jeweiligen Instruktion im RAPID-Referenzhandbuch - Teil 1, Instruktionen von A-Z. Interrupts Um Programme mithilfe von Path Offset zu erstellen, mssen Sie Interrupts handhaben knnen. Weitere Informationen ber Interrupts finden Sie im RAPID Referenzhandbuch RAPID-berblick.

3HAC 18152-3 Revision: B

63

5 Path Offset
5.4. Codebeispiel

5.4. Codebeispiel
Lineare Bewegung mit Korrektur Dies ist ein einfaches Beispiel zum Programmieren einer linearen Bahn mit OnlineBahnkorrektur. Dies erfolgt mithilfe eines Interrupts, der 5 Mal pro Sekunde ausgefhrt wird, und durch den Aufruf einer Interrupt-Routine, mit der die Offset-Korrektur durchgefhrt wird. Programmcode
VAR 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

Fortsetzung auf nchster Seite


64 3HAC 18152-3 Revision: B

5 Path Offset
5.4. Codebeispiel (Forts.)
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

3HAC 18152-3 Revision: B

65

5 Path Offset
5.4. Codebeispiel

66

3HAC 18152-3 Revision: B

Index

A
Achse 27 Achse zurcksetzen 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 stationre Weltzone 13 StorePath 36 SyncMoveResume 37 SyncMoveSuspend 37

E
Event Preset Time 24 externe Achse 27

F
Fixed Position Events 19

T
temporre 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
unabhngige 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 zurcksetzen 31 Zurcksetzen der Achse 28

68

ABB Automation Technologies AB Robotics S-721 68 VSTERS SWEDEN Telephone: +46 (0) 21 344000 Telefax: +46 (0) 21 132592

3HAC 18152-3, Revision B, de