get_part

Wichtig

Dieser Abschnitt ist nur relevant, wenn ein Multi-model-Rezept in der Produktion verwendet wird. Siehe get_part für Standard-Rezepte für ein einziges Teil.

Parameter

  • Keine

Rückgabe

  • 200 x=<x> y=<y> rz=<rz> m=<Modell>, wobei <x>, <y>, <rz> Koordinaten und Orientierung des Teils sind und <Modell> der Nummer des von EYE+ vorhergesagten Modells entspricht, sonst siehe Fehlercodes.

Bemerkung

Die Koordinaten haben 5 Dezimalstellen (z.B. x = 10.00000) und der Winkel 2 (z.B. rz = 1.00).

Beschreibung

Fordert ein oder mehrere Teile an. Ein spezifisches Modell kann wahlweise angefordert werden.

Im Multi-model-Kontext kann dieser Befehl verwendet werden, um die Position eines oder mehrerer spezifischer Teile, die dem angeforderten Modell entsprechen (z.B. ein Teil von Modell 1 und ein Teil von Modell 2) oder jedes wählbaren Teils eines beliebigen Modells abzurufen (z.B. Modell 1, Modell 3…usw.). Dieses Verhalten wird durch den Parameter part_quantity und den Multi-model-spezifischen Parameter model_quantity gesteuert.

Standardmässig ist dieser Parameter so eingestellt, dass ein einzelnes Teil des ersten vom System gefundenen Modells zurückgegeben wird.

Wenn model_quantity für jedes im Rezept definierte Modell auf 0 gesetzt wird, gibt das System unabhängig vom Modell das erste entnehmbare Teil zurück, das es findet.

Bemerkung

Beachten Sie, dass eine Änderung von part_quantity für irgendein Modell, während get_part im Gange ist, diesen nicht beeinflusst. Erst der nachfolgende get_part berücksichtigt die neu gesetzten Werte.

Bemerkung

Dieser Befehl blockiert die Eingabe, bis die angeforderten Teile gefunden werden und zurückgegeben werden können. Standardmässig ist eine Frist von 30 Sekunden eingestellt. Der Befehl gibt einen Fehler zurück, wenn die angeforderte Anzahl Teile des gegebenen Modells nach Ablauf der Frist nicht gefunden werden konnten. Die Frist kann vor dem Ausführen von get_part angepasst werden (vgl. set_parameter).

Angenommen, im Rezept wurden 4 Modelle definiert.

Standard-Funktionsprinzip

Parameter definiert als:

Der Befehl get_part gibt die Koordinaten eines guten Kandidaten zurück, egal, zu welchem Modell er gehört (1,2,3, oder 4). Das Verhalten ist ähnlich wie beim Anwendungsfall mit einem einzelnen Teil. Allerdings gibt der Befehl wenn möglich Teile mit abwechselndem Modell zurück.

  • Angenommen, die Bildanalyse ist abgeschlossen und das System hat 2 Teile von jedem Modell gefunden. Ein viermaliger Aufruf von get_part ergibt eine zufällige Folge, die jedes Modell einmal enthält (z.B. 4, 2, 1, 3).

  • Nehmen wir nun an, das System hat 3 Teile des Modells 1 gefunden und kein Teil von irgendeinem anderen Modell. Der 3-malige Aufruf von get_part gibt 1, 1, 1 zurück. Ein vierter Aufruf von get_part löst eine Beschickungssequenz und eine neue Bildanalyse aus.

Funktionsprinzip mit part_quantity = 2

Parameter definiert als:

Diese Konfiguration ändert die Mindestanzahl der guten Kandidaten jeglichen Modells, die beim Ausführen des Befehls get_part gefunden werden müssen. Die Anzahl der Teile kann mit dem Befehl set_parameter geändert werden.

Der Befehl get_part wird erst abgeschlossen, wenn mindestens 2 gute Kandidaten auf dem Asycube gefunden wurden oder die Frist abgelaufen ist.

  • Angenommen, die Bildanalyse ist abgeschlossen und das System hat 2 Teile von Modell 2 und 3 Teile von Modell 4 gefunden. Der einmalige Aufruf von get_part ergibt eine zufällige Ausgabe wie: (2, 4). Auch hier gibt es keine Garantie, dass die Ausgabe mit 2 beginnt, also könnte die Ausgabe genauso gut (4, 2) oder sogar (4, 4) sein. Nach einem zweiten get_part, bei dem 2 weitere gute Teile zurückgegeben werden, wäre nur noch ein einziges Teil verfügbar, und da wir eine part_quantity von 2 angefordert haben, wird das System eine Beschickungssequenz und eine neue Bildanalyse auslösen.

Funktionsprinzip mit model_quantity = n

Parameter definiert als:

Da in diesem Fall einer der model_quantity nicht gleich Null ist, wird part_quantity ignoriert. In diesem Fall gibt das System nur ein Teil von Modell 2 zurück.

  • Angenommen, die Bildanalyse ist abgeschlossen und das System hat 3 Teile von Modell 1 und 2 Teile von Modell 2 gefunden. Wird get_part 2 mal aufgerufen, wird die folgende Sequenz zurückgegeben: 2, 2. Obwohl es gute Kandidaten für das Modell 1 gibt, wird keiner zurückgegeben und ein dritter Aufruf von get_part wird eine Beschickungssequenz und eine neue Bildanalyse auslösen, um einen neuen Kandidaten vom Modell 2 zurückzugeben.

Parameter definiert als:

Auch hier wird part_quantity ignoriert, da model_quantity für verschiedene Modelle nicht gleich Null ist. Ein Teil von Modell 1 und ein Teil von Modell 3 werden nun gleichzeitig angefordert.

  • Nehmen wir unser vorheriges Beispiel, bei dem die Bildanalyse abgeschlossen ist und das System 2 Teile von Modell 1 und 3 Teile von Modell 3 gefunden hat. Ein 2-maliger Aufruf von get_part gibt folgende Sequenz zurück: (1, 3), (1, 3). Ein dritter Aufruf von get_part wird eine Beschickungssequenz und eine neue Bildanalyse auslösen, um (1, 3) zurückzugeben.

Bemerkung

Wie bei part_quantity ist es möglich, model_quantity auf Werte grösser als 1 zu setzen. Wenn zum Beispiel 2 Teile von Modell 1 und 1 Teil von Modell 3 im selben get_part-Aufruf benötigt werden, muss model_quantity 1 auf 2 und model_quantity 3 auf 1 gesetzt werden.

Anwendungsbeispiel

set_parameter part_quantity 2
set_parameter model_quantity 1 0
set_parameter model_quantity 2 0
set_parameter model_quantity 3 0
set_parameter model_quantity 4 0

get_part
200 x=0.58025 y=0.43782 rz=5.02 m=4 x=0.50617 y=0.29485 rz=0.00 m=1
get_part
200 x=0.47438 y=0.13729 rz=252.02 m=4 x=0.45598 y=0.51482 rz=0.00 m=3
get_part
200 x=0.31603 y=0.16358 rz=188.96 m=4 x=0.29393 y=0.53599 rz=0.00 m=3

set_parameter part_quantity 1
set_parameter model_quantity 1 1
set_parameter model_quantity 2 0
set_parameter model_quantity 3 0
set_parameter model_quantity 4 0

get_part
200 x=0.12345 y=0.11111 rz=0.99 m=1
get_part
200 x=0.67894 y=0.12341 rz=0.79 m=1

set_parameter part_quantity 1
set_parameter model_quantity 1 1
set_parameter model_quantity 2 0
set_parameter model_quantity 3 1
set_parameter model_quantity 4 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 m=1 x=0.42420 y=0.75311 rz=0.75 m=3
get_part
200 x=0.78951 y=0.96514 rz=0.42 m=1 x=0.23554 y=0.14587 rz=0.51 m=3