Warnung
Sie lesen eine alte Version dieser Dokumentation. Wenn Sie aktuelle Informationen wünschen, schauen Sie bitte unter 5.1 .get_part
Wichtig
Dieser Abschnitt ist nur relevant, wenn in der Produktion ein Dualfeeding Rezept 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> p=<part>
, wobei<x>
,<y>
,<rz>
Koordinaten und Orientierung des Teils sind und<part>
je nach Teil entwedera
oderb
ist, sonst siehe Fehlercodes.
Bemerkung
Die Koordinaten haben 5 Dezimalstellen (z.B. x = 10.00000
) und der Winkel 2 (z.B. rz = 1.00
).
Beschreibung
Ein oder mehrere Teile eines spezifischen Typs oder nicht anfordern.
Im Kontext des Dualfeedings kann dieser Befehl verwendet werden, um die Position eines oder mehrerer bestimmter Teile (z.B. ein Teil a
und ein Teil b
) oder beliebiger entnehmbarer Teile (z.B. Teil a
oder Teil b
) zu ermitteln. Dieses Verhalten wird durch den Parameter part_quantity und den für Dualfeeding spezifischen Parameter multi_part_quantity gesteuert.
Standardmässig sind diese Parameter folgendermassen eingestellt:
part_quantity = 1
multi_part_quantity a = 0
multi_part_quantity b = 0
Wenn multi_part_quantity a und multi_part_quantity b auf Null gesetzt sind, wird jedes entnehmbare Teil zurückgegeben, sei es vom Typ a
oder vom Typ b
. Das System wird versuchen, die Positionen abwechselnd zurückzugeben (z.B. a
, b
, a
, b
usw.). Wie bei Rezepten für ein einzelnes Teil, kann die Anzahl der zurückgegebenen Teile mit dem Parameter part_quantity geändert werden (siehe Tab. 30).
Sobald multi_part_quantity auf einen Wert grösser als Null gesetzt wird, wird part_quantity ignoriert. Der Befehl get_part gibt dann die Anzahl der spezifischen Teile zurück, die angefordert werden. Dies kann z.B. verwendet werden, um nur Teile des Typs a
abzurufen oder Positionen für a
und b
gleichzeitig zu erhalten.
Bemerkung
Beachten Sie, dass eine Änderung von part_quantity oder multi_part_quantity, während get_part im Gange ist, diesen nicht beeinflusst. Erst der nachfolgende get_part berücksichtigt den neu gesetzten Werte.
Bemerkung
Dieser Befehl blockiert, 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 nach Ablauf der Frist nicht gefunden werden konnten. Die Frist kann vor dem Ausführen von get_part angepasst werden (siehe set_parameter).
Standard-Funktionsprinzip
Parameter definiert als:
part_quantity = 1
multi_part_quantity a = 0
multi_part_quantity b = 0
Der Befehl get_part gibt die Koordinaten eines guten Kandidaten zurück, sei er vom Typ a
oder vom Typ b
. Das Verhalten ist ähnlich wie beim Anwendungsfall eines einzelnen Teils. Allerdings gibt der Befehl wenn möglich Teile mit abwechselndem Typ zurück.
Angenommen, die Bildanalyse ist abgeschlossen und das System hat 2 Teile vom Typ
a
und 3 Teile vom Typb
gefunden. Ein 5-maliger Aufruf von get_part wird wahrscheinlich die folgende Sequenz zurückgeben:a
,b
,a
,b
,b
. Es gibt keine Garantie, dass die Sequenz mita
beginnt, sodass die Ausgabe auchb
,a
,b
,a
,b
sein könnte. Das System wird erst dann eine neue Beschickungssequenz auslösen, wenn alle guten Kandidaten zurückgegeben worden sind.Nehmen wir nun an, dass das System 3 Teile vom Typ
a
und keines vom Typb
gefunden hat. Ein dreimaliger Aufruf von get_part gibta
,a
,a
zurück. Ein vierter Aufruf von get_part löst eine Beschickungssequenz und eine neue Bildanalyse aus.
Funktionsprinzip mit part_quantity = n
Parameter definiert als:
part_quantity = 2
multi_part_quantity a = 0
multi_part_quantity b = 0
Dies ändert die Mindestanzahl der guten Kandidaten jeglichen Typs, 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 hört erst auf, wenn mindestens n gute Kandidaten auf dem Asycube gefunden wurden oder die Frist abgelaufen ist.
Angenommen, die Bildanalyse ist abgeschlossen und das System hat 2 Teile vom Typ
a
und 3 Teile vom Typb
gefunden. Ein 2-maliger Aufruf von get_part wird wahrscheinlich die folgende Sequenz zurückgeben: (a
,b
), (a
,b
). Auch hier gibt es keine Garantie, dass die Folge mita
beginnt, so dass die Ausgabe auch (b
,a
), (b
,a
) sein könnte. Ein dritter Aufruf von get_part wird eine Beschickungssequenz und eine neue Bildanalyse auslösen, da nur ein einziges Teil verfügbar wäre und wir eine part_quantity von 2 angefordert haben.
Funktionsprinzip mit multi_part_quantity = n
Parameter definiert als:
part_quantity = 1
multi_part_quantity a = 1
multi_part_quantity b = 0
Da in diesem Fall einer der multi_part_quantity nicht gleich Null ist, wird part_quantity ignoriert. In diesem Fall gibt das System nur Teile vom Typ a
zurück.
Nehmen wir wieder an, dass die Bildanalyse abgeschlossen ist und das System 2 Teile vom Typ
a
und 3 Teile vom Typb
gefunden hat. Ein 2-maliger Aufruf von get_part wird die folgende Sequenz zurückgeben:a
,a
. Obwohl es gute Kandidaten für den Typb
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 des Typsa
zurückzugeben.
Parameter definiert als:
part_quantity = 1
multi_part_quantity a = 1
multi_part_quantity b = 1
Auch hier wird part_quantity ignoriert, da die multi_part_quantity nicht gleich Null sind. Ein Teil vom Typ a
und ein Teil vom Typ b
werden nun gleichzeitig angefordert.
Nehmen wir unser vorheriges Beispiel, bei dem die Bildanalyse abgeschlossen ist und das System 2 Teile vom Typ
a
und 3 Teile vom Typb
gefunden hat. Ein 2-maliger Aufruf von get_part liefert die folgende Sequenz: (a
,b
), (a
,b
). Ein dritter Aufruf von get_part wird eine Beschickungssequenz und eine neue Bildanalyse auslösen, um (a
,b
) zurückzugeben.
Bemerkung
Wie bei part_quantity ist es möglich, multi_part_quantity auf Werte grösser als 1 zu setzen. Wenn zum Beispiel 2 Teile a
und 1 Teil b
bei derselben Ausführung von get_part benötigt werden, muss multi_part_quantity a auf 2 und multi_part_quantity b auf 1 gesetzt werden.
Anwendungsbeispiel
set_parameter part_quantity 2
set_parameter multi_part_quantity a 0
set_parameter multi_part_quantity b 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a x=0.42420 y=0.75311 rz=0.75 p=b
get_part
200 x=0.78951 y=0.96514 rz=0.42 p=b x=0.23554 y=0.14587 rz=0.51 p=b
set_parameter part_quantity 1
set_parameter multi_part_quantity a 1
set_parameter multi_part_quantity b 0
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a
get_part
200 x=0.67894 y=0.12341 rz=0.79 p=a
set_parameter part_quantity 1
set_parameter multi_part_quantity a 1
set_parameter multi_part_quantity b 1
get_part
200 x=0.12345 y=0.11111 rz=0.99 p=a x=0.42420 y=0.75311 rz=0.75 p=b
get_part
200 x=0.78951 y=0.96514 rz=0.42 p=a x=0.23554 y=0.14587 rz=0.51 p=b