Befehle
Hier finden Sie alle verfügbaren Befehle, die an den Server gesendet werden können. Die Liste enthält einige EasySightPro® spezifische Befehle.
Basis Befehle
Sendet einen rohen Asycube-Befehl an den angeschlossenen Asycube (Liste mit gültigen Befehlen).
Parameter
-
Befehl - ein gültiger Asycube-Befehl
Rückmeldung
-
200 <Antwort>
Gibt 200 zurück, gefolgt von der Antwort des Asycubes, wenn der Befehl erfolgreich war.
Beispiel
feeder V?
200 (c) asycube V6.0.0
Gibt den Wert des Parameters zurück, der als Befehlsargument angegeben wurde. Gewisse Parameter benötigen zusätzliche Werte (Liste mit gültigen Parametern).
Parameter
-
Name (und Wert)
Rückmeldung
-
200 <Antwort>
Gibt 200 zurück, gefolgt vom Wert des angegebenen Parameters, wenn der Befehl erfolgreich war.
Beispiel
get_parameter state
200 ready
get_parameter timeout
200 30.0
Gibt die Liste aller verfügbaren Programme zurück
Parameter
-
Keine
Rückmeldung
-
201 <n> <id> '<program_name>', gibt 201 gefolgt von <n> Zeilen zurück. Jede Zeile besteht aus der Programmnummer <id> und dem Programm Namen <program_name>
Beispiel
get_recipe_list
201 2 1 'Programm Nummer 1'
2 'Programm Nummer 2'
Setzt den Wert des Parameters, der als Befehlsargument angegeben wurde. Gewisse Parameter benötigen zusätzliche Werte (Liste mit gültigen Parametern).
Parameter
-
Name (und Wert)
Rückmeldung
-
200, wenn der Befehl erfolgreich war.
Beispiel
set_parameter timeout 60
200
set_parameter part_quantity 2
200
Startet die Station mit dem gewünschten Status und der angegebenen Programmnummer.
Parameter
-
Status: entweder production, handeye_calibration oder purge
-
ID: Gültige Programmnummer
Rückmeldung
-
200, wenn der Befehl erfolgreich war.
Beispiel
start production 1
200
Stoppt den aktuellen Systemstatus der Station. Bei Erfolg wird der Betriebszustand auf Bereit gesetzt.
Parameter
-
Status: entweder production, handeye_calibration oder purge
Rückmeldung
-
200, wenn der Befehl erfolgreich war.
Beispiel
stop production
200
get_parameter state
200 ready
Befehle für die Produktion
Die Produktionsbefehle werden für den laufenden Betrieb der Station verwendet.
Aktiviert oder deaktiviert die Bildaufnahme. Dieser Befehl verhindert eine Bildaufnahme, wenn das Sichtfeld der Kamera nicht frei ist.
-
can_take_image false deaktiviert die Bildaufnahme.
-
can_take_image true aktiviert die Bildaufnahme.
Wenn die Befehle get_part oder prepare_part ausgeführt werden, dann warten diese bis die Bildaufnahme wieder aktiviert wird bzw. das Bildaufnahme-Timeout erreicht wird.
Parameter
-
Boolean: entweder true oder false
Rückmeldung
-
200, wenn der Befehl erfolgreich war.
Standard
-
can_take_image: true
Beispiel
can_take_image true
200
Der Befehl force_take_image zwingt die Station zu einer neuen Bildaufnahme.
Jedes Mal, wenn der Befehl force_take_image ausgeführt wird, wird ein Bild aufgenommen und eine Bildanalyse durchgeführt, um die Koordinaten aller guten Kandidaten zu finden. Dabei wird die komplette Liste der zuvor gespeicherten Koordinaten ersetzt. Dieser Befehl stellt die Gültigkeit der Koordinaten der Teile für die Entnahme durch den Roboter sicher.
Hinweis: Dieser Befehl sollte während des Status Produktion verwendet werden, wenn sich die Teile aufgrund bekannter externer Störungen bewegen (z. B.Entnahme der Teile, Bewegung der Roboters oder anderer Teile der Anlage)
Parameter
-
Keine
Rückmeldung
-
200, wenn der Befehl erfolgreich war.
Beispiel
force_take_image
200
Fordert ein oder mehrere Teile an. Die Anzahl der zurückgegebenen Teile kann mit dem Parameter part_quantity geändert werden. Dieser Parameter ist standardmäßig auf 1 gesetzt.
Hinweis: Beachten Sie, dass eine Änderung von part_quantity, während get_part im Gange ist, diesen nicht beeinflusst. Erst der nachfolgende get_part berücksichtigt den neu gesetzten part_quantity.
Hinweis: Dieser Befehl blockiert die Eingabe, bis die durch part_quantity vorgegebene Anzahl gefunden werden und zurückgegeben werden kann. Standardmäßig ist ein Timeout von 30 Sekunden vorgegeben. Der Befehl gibt einen Fehler zurück, wenn die angeforderte Anzahl Teile nach Ablauf der Frist nicht gefunden werden kann. Das Timeout kann vor dem Ausführen von get_part angepasst werden (siehe set_parameter).
Parameter
-
Keine
Rückmeldung
-
200 x=<x> y=<y> rz=<rz>, wobei <x>, <y>, <rz> Koordinaten und Orientierung des Teils sind.
Standard-Funktionsprinzip: part_quantity = 1
Der Befehl get_part gibt die Koordinaten eines guten Kandidaten zurück. Dieser Befehl kann in verschiedener Weise eingesetzt werden:
-
Erste Befehlsausführung: Handelt es sich um die erste Befehlsausführung der gesamten Produktion, führt get_part folgendes aus:
-
Wenn der Befehl ausgeführt wird, wird ein Bild aufgenommen und analysiert. Wenn kein gutes Teil gefunden wird, wird die Vibrationssequenz gestartet, gefolgt von einer Bildanalyse. Diese beiden Aktionen werden wiederholt, bis mindestens ein gutes Teil gefunden wird.
-
Wenn mindestens ein gutes Teil gefunden wird, werden die Koordinaten aller gefundenen Teile in einer Liste guter Teile gespeichert. Dann werden die Koordinaten des ersten Teils in der Liste an den Client gesendet und aus der Liste gelöscht.
-
-
Normaler Betrieb: Wenn die Liste guter Kandidaten bereits mindestens ein Teil enthält, sendet der Befehl get_part die Koordinaten des ersten Teils an den Client und löscht es dann aus der Liste. Es wird kein Bild aufgenommen und es wird keine Vibrationssequenz durchgeführt.
-
Keine weiteren Teile: Wenn sich keine weiteren Teile in der Liste befinden, führt der Befehl get_part die folgenden Schritte aus:
-
Wenn der Befehl ausgeführt wird, wird eine Vibrationssequenz gestartet, gefolgt von einer Bildanalyse. Diese beiden Aktionen werden wiederholt, bis mindestens ein gutes Teil gefunden wird.
-
Wenn mindestens ein gutes Teil gefunden wird, werden die Koordinaten aller gefundenen Teile in einer Liste guter Teile gespeichert. Dann werden die Koordinaten des ersten Teils in der Liste an den Client gesendet und aus der Liste gelöscht.
-
Funktionsprinzip mit part_quantity = n
Dies ändert die Mindestanzahl der guten Kandidaten, 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 das Timeout abgelaufen ist.
Hinweis: Sobald die n Koordinaten an den Client sendet wurden, wird davon ausgegangen, dass im nächsten Schritt alle diese Teile entnommen werden. Dies bedeutet, dass die Koordinaten der Teile dann aus der Liste der guten Kandidaten gelöscht werden.
Beispiel
get_part
200 x=0.12345 y=0.11111 rz=0.99
set_parameter part_quantity 3
get_part
200 x=0.12345 y=0.11111 rz=0.99 x=3.67890 y=200.45612 rz=1.54 x=120.37000 y=-20.48484 rz=0.00
Bereitet ein oder mehrere Teil vor. Vorbereitete Teile können später mit dem Befehl get_part entnommen werden. Dieser Befehl funktioniert ident zu get_part, abgesehen davon, dass er die Koordinaten des Teils nicht sendet und kein Timeout besitzt.
Der Zweck dieses Befehls ist es, die Liste der guten Kandidaten zu füllen, so dass der Befehl get_part bei der nächsten Ausführung weder ein Bild aufnehmen noch den Asycube vibrieren lassen muss. Sie können diesen Befehl ausführen, während Ihr Roboter eine andere Aufgabe außerhalb des Sichtfelds der Kamera ausführt. Ziel ist es, im Produktionszyklus-Zeit zu gewinnen.
Hinweis: Dieser Befehl wird normalerweise ausgeführt, wenn sich der Roboter aus dem Sichtfeld bewegt.
Der Befehl prepare_part stoppt, wenn
-
er erfolgreich ausgeführt wurde.
-
ein get_part gesendet wird.
Hinweis: Wenn ein can_take_image false gesendet wird, wird abgewartet bis ein can_take_image true gesendet wird, um den Betrieb wieder aufzunehmen.
Wie bei get_part kann die Anzahl der vorbereiteten Teile mit dem Parameter part_quantity geändert werden. Dieser Parameter ist standardmässig auf 1 gesetzt.
Parameter
-
Keine
Rückmeldung
-
200,sofort nach Erhalt des Befehles. Die Abarbeitung läuft im Hintergrund weiter.
Beispiel
set_parameter part_quantity 2
200
prepare_part
200
get_part
200 x=0.12345 y=0.11111 rz=0.99 x=0.45678 y=0.22222 rz=180.01
Berechnet den Aufgreifpunkt (PickPoint) des Roboters automatisch. Der Roboter legt dazu ein Bauteil auf einer definierten Position ab und übermittelt die Ablage-Koordinaten. Mittels eines neuen Bilds und den übermittelten Koordinaten, wird der neue PickPoint berechnet.
Wichtig: Es darf nur ein Bauteil am Feeder liegen!
Parameter
-
X Koordinate des abgelegten Bauteiles
-
Y Koordinate des abgelegten Bauteiles
-
Winkel des abgelegten Bauteiles in Degree
Rückmeldung
-
200, wenn der Befehl erfolgreich war.
Beispiel
auto_set_pickpoint 10.5 25.7 90.5
200
Befehle für die Entleerung
Hier werden alle befehle für die Entleerung des Asycubes vorgestellt. Die Entleerung ist eine Option und erfordert eine entsprechende Purge-Plattform.
Führt eine Entleerungs-Sequenz durch, entweder nur der Platte (purge plate) oder sowohl der Platte als auch des Bunkers (purge full).
Diese Sequenz setzt sich zusammen aus
-
dem Öffnen der Entleerungsklappe
-
dem Auslösen einer Plattformvibration in die entsprechende Richtung
-
(sowie dem Auslösen des Bunkers im Falle eines purge full Befehls)
-
Überprüfen mittels Kamera, ob der Asycube bereits entleert wurde
-
dem Schließen der Entleerungsklappe.
Hinweis: Das System muss sich im Entleerungs-Modus befinden, um diesen Befehl zu verwenden, siehe start purge.
Parameter
-
Befehl entweder plate oder full
-
Dauer ist ein optionaler Parameter, der den Befehl nach erreichen der Dauer abbricht
Rückmeldung
-
200, wenn der Befehl erfolgreich war.
Beispiel
//Vorherige Produktion stoppen
stop production 200
200
//Purge für Programm 1 starten
start puge 1
200
//Purge durchführen
purge full 15000
200
Befehle für die Roboter-Kalibrierung
Hier werden alle verfügbaren Befehle für die Roboter-Kalibrierung vorgestellt. Damit kann die Kalibrierung Kamera zu Roboter automatisch durchgeführt werden.
Berechnet die Hand-Auge Kalibrierung aus gespeicherten Kamera-Teilekoordinaten und Roboter-Teilekoordinaten.
Bevor der Befehl calibrate ausgeführt wird, müssen mindesten 4 Koordinatensätze (Kamera und Roboter) mit take_calibration_image und set_calibration_point gespeichert werden.
Parameter
-
Keine
Rückmeldung
-
200 <Antwort>, wobei <Antwort> die Genauigkeit der Kalibrierung in Millimetern angibt, wenn der Befehl erfolgreich war.
Hinweis: Für die Kalibrierung werden mindestens 4 Punkte benötigt. Je mehr Punkte, desto besser die Genauigkeit der Kalibrierung.
Beispiel
calibrate
200 calibration_accuracy=0.42
Gibt die Roboterkoordinaten des Punktes mit der angegebenen Nummer zurück.
Parameter
-
Nummer des zu ermittelnden Roboterpunktes.
Rückmeldung
-
200 x=<x> y=<y>, wobei <x>, <y> den Koordinaten des gespeicherten Roboterpunktes entsprechen
Beispiel
start handeye_calibration 1
200
set_calibration_point 1 42 42
200
get_calibration_point 1
200 x=42.00000 y=42.00000
Speichert die Kalibrierung in den Datenordner. Dieser Befehl sollte nach calibrate ausgeführt werden, um die Daten im System zu speichern, sofern das Ergebnis der Kalibrierung zufrieden ist. Sobald die Kalibrierung gespeichert ist, wird sie automatisch in der Produktion verwendet. Wenn zuvor eine andere Kalibrierung gespeichert wurde, wird diese durch die neue Kalibrierung überschrieben.
Parameter
-
Keine
Rückmeldung
-
200 wenn der Befehl erfolgreich war
Beispiel
calibrate
200 calibration_accuracy=0.42
save_calibration
200
Speichert die neue Roboterkoordinate des Punktes mit der angegebenen Nummer ab. Jede Koordinate muss in der Einheit Millimeter (mm) übergeben werden.
Parameter
-
Nummer des zu ermittelnden Roboterpunktes.
-
X-Koordinate der Roboterposition
-
Y-Koordinate der Roboterposition
Rückmeldung
-
200 wenn der Befehl erfolgreich war
Hinweis: Achten Sie darauf, dass Sie für die Aufzeichnung der Roboterpositionen das Roboterkoordinatensystem und Werkzeug ident zu dem in Produktion verwendeten sind.
Beispiel
start handeye_calibration 1
200
set_calibration_point 1 42 42
200
get_calibration_point 1
200 x=42.00000 y=42.00000
Nimmt ein Bild auf, um die aktuellen Vision-Koordinaten des erkannten Objekts zu ermitteln. Die Nummer der Vision-Position muss mit der Nummer des entsprechenden Roboterpunktes übereinstimmen. Für jeden Roboterpunkt muss es einen Vision-Punkt geben. Wenn mehr als ein Teil erkannt wird, wird das erste auf der Platte erkannte Teil als übereinstimmender Punkt verwendet.
Parameter
-
Nummer des zu ermittelnden Punktes.
Rückmeldung
-
200 wenn der Befehl erfolgreich war
Beispiel
take_calibration_image 1
200
Mit diesem Befehl kann die aktuelle Kalibrierung getestet werden. Dabei wird ein Bild aufgenommen und die Position des erkannten Teils ausgegeben. Sie können damit prüfen, ob die ausgegebene Koordinate mit der tatsächlichen Koordinate übereinstimmt.
Parameter
-
Keine
Rückmeldung
-
200 <Antwort> wenn der Befehl erfolgreich war
-
<Antwort> listet die x-, y- und rz-Koordinaten aller auf der Platte unter Verwendung der zuletzt gespeicherten Hand-Augen Kalibrierung gefundenen Teile auf. Die Koordinaten jedes gefundenen Teils werden in eine neue Zeile geschrieben.
-
Werden mehrere Positionen erkannt, dann lautet die Rückantwort 201 <n> <Antwort>
-
Beispiel
calibrate
200 calibration_accuracy=0.42
test_calibration
201 3 x=152.45689 y=-86.33004 rz=158.32
x=1.23231 y=128.89711 rz=-28.09
x=67.89891 y=-28.02956 rz=11.98