• Keine Ergebnisse gefunden

FILE1 (MAIN.PRG) Global Integer status1

Im Dokument Änderungen in dieser Handbuchrevision (Seite 144-151)

Global-Anweisung

FILE1 (MAIN.PRG) Global Integer status1

Global Real numsts Function Main Integer I status1 = 10

Das folgende Beispiel zeigt zwei verschiedene Programmdateien. Die erste Programmdatei definiert einige globale Variablen und initialisiert sie. Die zweite Datei verwendet auch diese globalen

Variablen.

FILE1 (MAIN.PRG)

Global Integer g_Status Global Real g_MaxValue Function Main

g_Status = 10 g_MaxValue = 1.1 .

. Fend

FILE2 (TEST.PRG) Function Test

Print "status1 = , g_Status Print "MaxValue = , g_MaxValue .

. Fend

Go-Anweisung

136 EPSON RC+ 5.0 SPEL+ Sprachreferenz Rev.1a

Go-Anweisung

Bewegt den Arm mit einer PTP-Bewegung von seiner aktuellen Position zum spezifizierten Punkt oder in die X-, Y-, Z-, U-, V-, W-Position.

Der Go-Befehl kann eine beliebige Kombination von bis zu sechs Achsen gleichzeitig bewegen.

Syntax

Go destination [CP] [searchExpr] [!...!]

Parameter

destination Der Zielort einer Bewegung, die einen Punktausdruck verwendet.

CP Optional. Spezifiziert die CP-Bewegung.

searchExpr Optional. Ein Till- oder Find-Ausdruck.

Till | Find

Till Sw(expr) = {On | Off}

Find Sw(expr) = {On | Off}

!...! Optional. Parallelbearbeitungsanweisungen können hinzugefügt werden, um E/A-Befehle oder andere E/A-Befehler während der Bewegung auszuführen.

Beschreibung

Go bewegt alle Achsen des Roboteramrs mithilfe der PTP-Bewegung gleichzeitig. Das Ziel des Go-Befehls kann auf unterschiedliche Weise definiert werden:

- Verwenden eines spezifischen Punktes, zu dem hin die Bewegung ausgeführt wird. Zum Beispiel: Go P1.

- Verwenden einer expliziten Koordinatenposition, zu der hin die Bewegung ausgeführt wird. Zum Beispiel: Go XY(50, 400, 0, 0).

- Verwenden eines Punktes mit Koordinatenversatz. Zum Beispiel: Go P1 +X(50).

- Verwenden eines Punktes mit einem anderen Koordinatenwert. Zum Beispiel: Go P1 :X(50).

Der Speed Befehl bestimmt die Armgeschwindigkeit für die Bewegung, die durch den Go-Befehl initiiert wurde. Der Accel-Befehl definiert die Beschleunigung.

Der Go-Befehl ist nicht in der Lage zu überprüfen, ob es einen Bereich gibt, in den sich der Arm physikalisch nicht bewegen kann, bevor die Bewegung selbst begonnen wird. Es ist dem Steuergerät daher möglich, eine verbotene Position auf dem Weg zu einem Zielpunkt zu finden. In diesem Fall kann der Arm abrupt zum Stehen kommen, was einen Stoß und den Servo-Aus-Zustand des Arms hervorrufen kann. Obschon sich die Zielposition innerhalb des Armbereichs befindet, gibt es einige Bewegungen, die nicht ausgeführt werden können, da der Arm einige der Zwischenpositionen nicht erreichen kann, die während der Bewegung benötigt werden.

Der Go-Befehl veranlasst den Arm immer dazu, bis zum Halt herunterzubremsen, bevor das Bewegungsziel erreicht wurde.

Hinweise

Der Unterschied zwischen Go und Move

Sowohl der Move- als auch der Go-Befehl veranlassen den Roboterarm zu einer Bewegung. Der primäre Unterschied zwischen den beiden Befehlen ist jedoch, dass der Go-Befehl eine PTP-Bewegung verursacht, während der Move-Befehl den Arm geradlinig bewegt. Der Go-Befehl wird verwendet, wenn es dem Benutzer primär um die Ausrichtung des Arms bei Erreichen des Punktes geht. Der Move-Befehl wird verwendet, wenn es wichtig ist, den Pfad des Roboterarms zu steuern, während er sich bewegt.

> S

Go-Anweisung

Der Unterschied zwischen Go und Jump

Sowohl der Jump- als auch der Go-Befehl veranlassen den Roboterarm zu einer PTP-Bewegung. Der Jump-Befehl hat jedoch ein zusätzliches Feature. Jump veranlasst den Endeffektor des Roboters dazu, zunächst bis zum LimZ-Wert zu steigen, sich dann in horizontaler Richtung zu bewegen, bis er sich über dem Zielpunkt befindet und schließlich abwärts zum Zielpunkt. Dies ermöglicht es, den Jump-Befehl zu verwenden, um das Umfahren von Hinderniss zu garantieren und, was wichtiger ist, um die Zykluszeiten für Bestückungsbewegungen zu verbessern.

Korrekte Geschwindigkeits- und Beschleunigungs-Befehle mit Go

Die Befehle Speed und Accel werden verwendet, um Geschwindigkeit und Beschleunigung des Manipulators während der Go-Bewegung zu definieren. Beachten Sie, dass sich die Befehle Speed und Accel auf PTP-Bewegungen beziehen (wie der für den Go Befehl), während die Befehle SpeedS und AccelS für linearinterpolierte und kreisinterpolierte Bewegungen verwendet werden.

Verwenden von Go mit der optionalen Till-Bedingung

Die optionale Till-Bedingung ermöglicht es dem Benutzer, eine Bedingung zu definieren, damit der Roboter an einer Zwischenposition bis zum Halt abbremst, noch bevor er die durch den Go-Befehl verursachte Bewegung beendet. Wenn die Till-Bedingung nicht erfüllt wird, bewegt sich der Roboter zu seiner Zielposition. Der Go-Befehl zusammen mit der Till-Bedingung kann auf zwei Arten

verwendet werden, wie im Folgenden beschrieben:

(1) Go-Befehl mit Till-Bedingung

Überprüft, ob die aktuelle Till-Bedingung erfüllt wird. Wenn sie erfüllt wird, wird dieser Befehl durch Verzögerung und Anhalten des Roboters an einer Zwischenposition vervollständigt, bevor die Bewegung, die durch den Go-Befehl verursacht wurde, beendet wird.

(2) Go-Befehl mit Till-Bedingung, Sw(Eingangsnummer)-Bedingung, und Eingangsbedingung

Diese Version des Go-Befehls mit Bedingung ermöglicht es dem Benutzer, die Till-Bedingung in derselben Zeile wie den Go-Befehl zu spezifizieren, anstatt die aktuelle Definition zu verwenden, die vorher für Till definiert wurde. Die spezifizierte Bedingung ist einfach eine Gegenprüfung zu einem der Eingänge. Dies wird durch Verwenden des Sw-Befehls erreicht. Der Benutzer kann überprüfen, ob die Eingänge aus- oder eingeschaltet sind und den Arm dazu veranlassen, anzuhalten, je nachdem, welche Bedingung spezifiziert ist. Dieses Feature funktioniert ähnlich wie eine Unterbrechung (Interrupt), bei der eine Bewegung unterbrochen (gestoppt) wird, sobald die Eingangs-Bedingung erfüllt ist. Wenn die Bedingung während der Roboterbewegung nie erfüllt wird, erreicht der Arm erfolgreich den durch destination definierten Punkt.

Verwenden von Go mit der optionalen Find-Bedingung

Die optionale Find-Bedingung ermöglicht es dem Benutzer, eine Bedingung zu definieren, die den Roboter veranlasst, während der Bewegung durch den Go-Befehl eine Position aufzuzeichnen. Der Go-Befehl mit der Find-Bedingung kann auf zwei Arten verwendet werden, wie im Folgenden beschrieben:

(1) Go-Befehl mit Find-Bedingung:

Überprüft, ob die aktuelle Find-Bedingung erfüllt wird. Wird sie erfüllt, so wird die aktuelle Position im Sonderpunkt FindPos gespeichert.

(2) Go-Befehl mit Find-Bedingung, Sw(Eingangsnummer)-Bedingung, und Eingangsbedingung:

Diese Version des Go-Befehls mit Bedingung ermöglicht es dem Benutzer, die Find-Bedingung in derselben Zeile wie den Go-Befehl zu spezifizieren, anstatt die aktuelle Definition zu verwenden, die vorher für Find definiert wurde. Die spezifizierte Bedingung ist einfach eine Gegenprüfung zu einem der Eingänge. Dies wird durch Verwenden des Sw-Befehls erreicht. Der Benutzer kann überprüfen, ob die Eingänge aus- oder eingeschaltet sind und veranlassen, dass die aktuelle Position unter dem Sonderpunkt FindPos gespeichert wird.

Der Go-Befehl verursacht immer eine Verzögerung bis zum Stillstand

Der Go-Befehl veranlasst den Arm immer dazu, bis zum Halt herunterzubremsen, bevor das Bewegungsziel erreicht wird.

Go-Anweisung

138 EPSON RC+ 5.0 SPEL+ Sprachreferenz Rev.1a

Mögliche Fehler

Versuch, sich außerhalb des Roboter-Arbeitsbereichs zu bewegen

Wenn mit dem Go-Befehl explizite Koordinaten verwendet werden, müssen Sie sicherstellen, dass sich die definierten Koordinaten innerhalb des Roboter-Arbeitsbereichs befinden. Jeglicher Versuch, den Roboter außerhalb dieses gültigen Arbeitsbereichs zu bewegen, ruft eine Fehlermeldung hervor.

Verwandte Befehle

!...! Parallelbearbeitung, Accel, Find, Jump, Move, Pass, Pn= (Point Assignment / Punktzuordnung), Pulse, Speed, Sw, Till

Beispiel einer Go-Anweisung

Das folgende Beispiel zeigt eine einfache PTP-Bewegung vom Punkt P0 zum Punkt P1 mit einer geradlinigen Rückbewegung zum Punkt P0. Später bewegt sich der Arm geradlinig zum Punkt P2, bis der 2. Eingang eingeschaltet wird. Wenn der 2. Eingang während der Bewegung einschaltet,

verzögert sich der Arm bis zum vollständigen Stopp, bevor er den Punkt P2 erreicht und der nächste Programmbefehl ausgeführt wird.

Funktionsbeispiel

Print "the robot stopped prior to arriving on"

Print "point P2."

Else

Print "The move to P2 completed successfully."

Print "Input #2 never came on during the move."

EndIf Fend

Einige Syntax-Beispiele im Befehlseingabefenster sehen aus wie folgt:

>Go Here +X(50) ' Bewegt den Arm nur in die X-Richtung, 50 mm aus der Arm in der linken Position anhält.

>Go XY(50, 450, 0, 30' Bewegt den Arm in die Position X=50, Y=450, Z=0, U=30

Go-Anweisung

<Ein weiteres Code-Beispiel>

Till Sw(1)=0 And Sw(2) = On ' Legt die Till-Bedingungen für die ' Eingänge 1 und 2 fest

Go P1 Till ' Stoppt den Arm, wenn die aktuelle Till-Bedingung,

' die in der vorangegangenen Zeile definiert wurde, erfüllt ist.

Go P2 Till Sw(2) = ON ' Stoppt, wenn der 2. Eingang eingeschaltet ist

Go P3 Till ' Stoppt den Arm, wenn die aktuelle Till-Bedingung,

' die in der vorangegangenen Zeile definiert wurde, erfüllt ist.

GoSub...Return

140 EPSON RC+ 5.0 SPEL+ Sprachreferenz Rev.1a

GoSub...Return

GoSub überträgt die Programmsteuerung an ein Unterprogramm. Sobald das Unterprogramm vollständig ist, kehrt die Programmsteuerung wieder in die Zeile zurück, die auf den

GoSub-Befehl folgt, der das Unterprogramm initiiert hatte.

Syntax

label Wenn der Benutzer ein Label spezifiziert, springt die Programmausführung zu der Zeile, in der sich das Label befindet. Das Label kann bis zu 32 Zeichen beinhalten. Das erste Zeichen muss jedoch ein Buchstabe sein (keine Zahl).

Beschreibung

Der GoSub-Befehl bewirkt, dass die Programmsteuerung zu dem durch den Benutzer definierten Anweisungslabel verzweigt wird. Das Programm führt dann die Anweisung in dieser Zeile aus und fährt mit der Ausführung in den darauf folgenden Zeilennummern fort, bis es auf einen Return-Befehl trifft. Der Return-Befehl veranlasst die Programmsteuerung, zurück zu der Zeile zu wechseln, die direkt auf diejenige folgt, die GoSub ursprünglich initiiert hatte. (D. h., der GoSub-Befehl veranlasst die Ausführung eines Unterprogramms, wobei die Ausführung anschließend zu der Anweisung zurückkehrt, die auf den GoSub-Befehl folgt.) Stellen Sie sicher, dass jedes Unterprogramm mit Return beendet wird. Diese Vorgehensweise veranlasst die Programmausführung, zu der Zeile zurückzukehren, die auf den GoSub-Befehl folgt.

Mögliche Fehler

Verzweigen zu einer nicht existierenden Anweisung

Wenn der GoSub-Befehl versucht, die Steuerung zu einem nicht existenten Label zu verzweigen, wird der Fehler Nr. 3108 ausgegeben.

Return-Befehl ohne GoSub-Befehl gefunden

Ein Return-Befehl wird verwendet, um aus einem Unterprogramm in das Ursprungsprogramm

„zurückzukehren”, das den GoSub-Befehl ausgegeben hat. Wenn ein Return-Befehl gefunden wird, ohne dass dem ein GoSub-Befehl voran gegangen ist, wird der Fehler Nr. 2383 ausgegeben. Ein alleinstehender Return-Befehl ist ohne Funktion, da das System nicht weiß, wohin es zurückkehren soll.

Verwandte Befehle GoTo, OnErr, Return

S

GoSub...Return

Beispiel einer GoSub-Anweisung

Das folgende Beispiel zeigt eine einfache Funktion, die einen GoSub-Befehl verwendet, um zu einem Label zu verzweigen, einige E/A-Befehle auszuführen und dann zurückzukehren.

Function main

Integer var1, var2

GoSub checkio 'GoSub unter Verwendung von Label On 1

On 2

Exit Function

checkio: 'Hier startet das Unterprogramm var1 = In(0)

var2 = In(1)

If var1 = 1 And var2 = 1 Then On 1

Else Off 1 EndIf

Return 'Hier endet das Unterprogramm Fend

Im Dokument Änderungen in dieser Handbuchrevision (Seite 144-151)