Warnung

Sie lesen eine alte Version dieser Dokumentation. Wenn Sie aktuelle Informationen wünschen, schauen Sie bitte unter 5.1 .

Grundsätze der Befehle

Alle Befehle im EtherCAT-Modul folgen dem gleichen Prinzip. Sie sind an ihrem Namen zu erkennen, der mit Trigger endet. Um einen Befehl zu senden, verwenden Sie bitte die folgende Vorgehensweise:

  1. Stellen Sie die erforderlichen Parameter ein, bevor Sie den Trigger auf True setzen.

  2. Setzen Sie den Tigger des Befehls auf True.

  3. Warten Sie, bis das Flag <Befehl> Done auf True wechselt.

  4. Setzen Sie den Befehlsauslöser wieder auf False.

  5. Warten Sie, bis das Flag <Befehl> Done wieder auf False zurückgesetzt wird.

  6. Prüfen das Register Is Error auf allfällige Fehler. Sollte es einen geben, behandeln Sie ihn entsprechend Ihren Anforderungen.

  7. Liegt kein Fehler vor, können Sie den(die) entsprechenden Output(s) verwenden.

Dies wird in der folgenden Abbildung veranschaulicht:

../../_images/ecs_start_production.svg

Bemerkung

Es können nicht zwei Befehlsauslöser gleichzeitig auf True gesetzt werden. EYE+ wird in einem solchen Fall einen Fehler zurückgeben. Weitere Angaben im Abschnitt Zusätzliche Fehlercodes.

Basisfunktionalitäten

Basis-Inputs

  • Stop States [UDINT]

    Stoppt alle Status, wie in stop <Status> definiert. Die Status werden als Bitset kodiert, wobei jeder Status den folgenden Wert hat:

    • Produktion 0b0000_0001

    • Rezeptbearbeitung 0b0000_0010

    • Kamerakonfiguration 0b0000_0100

    • Hand-Augen Kalibrierung 0b0000_1000

    • Rezeptqualifizierung 0b0001_0000

    • Entleerung 0b0010_0000

    Darüber hinaus sind die folgenden Status ebenfalls im Register System State verfügbar:

    • Fehler 0b0100_0000

    • Bereit 0b1000_0000

    • Aktualisierung des Systems 0b0001_0000_0000

    • Systemmigration 0b0010_0000_0000

    EYE+ erkennt diesen Befehl, wenn sich der Wert Stop States ändert (z.B. wenn der Wert von 0 auf 1 geht). Der PDO-Eintrag Stop State Done wechselt auf True, wenn das System die Ausführung des Befehls beendet hat, wie in der folgenden Abbildung gezeigt. Fehler werden über das Spezialregister Is Error und Error ID behandelt, vgl. Fehlerbehandlung.

    ../../_images/ecs_stop_states.svg

    Das Done BOOL wird gelöscht, wenn der Wert auf 0 zurückgesetzt wird.

Bemerkung

Sie können alle Status anhalten, um in den Status Bereit zu gehen, indem Sie diesen Wert auf 0xFF setzen.

  • Clear Error Trigger

    EYE+ kann jeden in Fehlercodes definierten Fehlercode zurückgeben. Der Clear Error Trigger erlaubt es, jeden Fehler zu löschen, der im Error ID Register auftauchen könnte. Zusätzlich zu den Standard-Fehlercodes können spezifische Fehler für EtherCAT angezeigt werden, diese werden im Abschnitt Zusätzliche Fehlercodes erläutert.

    Das Löschen eines aktiven Fehlers ist ganz einfach, wie im Folgenden beschrieben:

    ../../_images/ecs_clear_error.svg

Basis-Outputs

  • System State

    Gibt den aktuellen Status von EYE+ an, siehe Stop State(s) für eine vollständige Liste der Status.

  • Clear Error Done

    True, wenn EYE+ die Ausführung des Befehls Clear Error Trigger beendet hat. Wird auf False zurückgesetzt, wenn der Trigger Clear Error Trigger auf 0 gesetzt wird.

  • Is Error

    True, wenn der Output Error ID einen Fehler enthält, False, wenn nicht. Das Löschen des Fehlers hat zur Folge, dass dieses Register auf False zurückgesetzt wird.

  • Error ID

    Enthält die aktuelle Fehler-ID, siehe Clear Error Trigger. Das Löschen des Fehlers hat zur Folge, dass dieses Register auf den Wert 0 zurückgesetzt wird.

  • Stop State Done

    True wenn EYE+ die Auführung des Befehls Stop State(s) beendet hat. Wird auf False zurückgesetzt, wenn der Trigger Stop State(s) auf 0 gesetzt wird.

Produktionsfunktionalitäten

Produktions-Inputs

  • Start Production Trigger

    Startet ein Rezept in der Produktion. Der eindeutige Rezeptidentifikator muss im Register Recipe ID definiert werden. Sobald die Produktion begonnen hat, wird sich dies im Register Start Production Done und im System State widerspiegeln. Fehler werden anhand der speziellen Register Is Error und Error ID behandelt, siehe Fehlerbehandlung.

    Nachfolgend ein Beispiel, bei dem das Rezept 42 für die Produktion gestartet wird:

    ../../_images/ecs_start_production.svg
  • Get Part Trigger

    Fordert ein oder mehrere Teile an. Die Anzahl der zurückgegebenen Teile kann durch Ändern des Wertes eines der Parameter Part Quantity, Multi Part Quantity A oder Multi Part Quantity B geändert werden. Standardmässig ist der Parameter Part Quantity auf 1 gesetzt. Eine vollständige Beschreibung des Befehls finden Sie unter get_part.

    Die folgende Abbildung zeigt ein Beispiel für die Anforderung eines einzelnen Teils (Standardparameter).

    ../../_images/ecs_get_part.svg

    Bemerkung

    Ein einfaches Szenario ist unter Get part beschrieben.

  • Prepare Part Trigger

    Bereitet ein oder mehrere Teile in EYE+ vor. Vorbereitete Teile können später mit dem Register Get Part Trigger angefordert werden. Dieser Befehl hat das gleiche Verhalten wie Get Part Trigger, ausser dass er keine Teilekoordinaten sendet und den timeout-Parameter nicht berücksichtigt, vgl. dazu Command Timeout. Die Anzahl der vorzubereitenden Teile kann anhand der Parameter Part Quantity, Multi Part Quantity A oder Multi Part Quantity B geändert werden. Standardmässig ist der Parameter Part Quantity auf 1 gesetzt. Bitte lesen Sie den Abschnitt prepare_part für eine vollständige Beschreibung des Befehls.

    Wenn das/die angeforderte(n) Teil(e) bereit sind, wird das Flag Is Prepared auf 1 gesetzt.

    Die folgende Abbildung zeigt ein Beispiel für die Vorbereitung eines Teils.

    ../../_images/ecs_prepare_part.svg

    Bemerkung

    Ein einfaches Szenario ist unter Prepare part beschrieben.

  • Force Take Image Trigger

    Das Register Force Take Image Trigger zwingt EYE+ dazu, sobald möglich ein Bild aufzunehmen.

    Wird insbesondere in Verbindung mit Prepare Part Trigger und Get Part Trigger verwendet.

    Jedes Mal, wenn der Force Take Image Trigger von 0 auf 1 wechselt, wird EYE+ einen neuen Satz Bilder aufnehmen und die Analyse durchführen. Bitte lesen Sie den Abschnitt force_take_image für eine vollständige Beschreibung des Befehls.

    Die folgende Abbildung zeigt ein Beispiel für das Setzen dieses Flags.

    ../../_images/ecs_force_take_image.svg

    Bemerkung

    Ein einfaches Szenario ist unter Force take image beschrieben.

  • Clear Poses

    Das Register Clear Poses erlaubt das Löschen der Poses-Outputs (Pose <n>), was zu einer leeren Liste von Positionen führt. Dies ist zwischen zwei aufeinanderfolgenden Get Part Triggers von Nutzen.

    ../../_images/ecs_clear_part.svg

Produktionsparameter

Während der Produktion können bestimmte Parameter gemäss Ihren Anforderungen angepasst werden. Die folgende Liste zeigt, welche Parameter verfügbar sind.

  • Save Parameters Trigger

    Die unter Produktionsparameter aufgelisteten Parameter sollten explizit mit diesem speziellen Befehl gespeichert werden. EYE+ meldet die Ausführung des Befehls anhand des Registers Save Parameters Done. Der Befehl speichert alle unter Produktionsparameter aufgelisteten Parameter. Es ist deshalb wichtig, sie alle auf einen sinnvollen Wert zu initialisieren! Fehler werden anhand der speziellen Register Is Error und Error ID behandelt, siehe Fehlerbehandlung.

    Nachfolgend ein Beispiel, bei dem ein einzelner Parameter gespeichert wird. Wie bereits erwähnt, werden alle Parameter gespeichert. Es ist wichtig, dass Sie die Parameter mit sinnvollen Werten initialisieren!

    ../../_images/ecs_save_param.svg
  • Can Take Image

    Die Bildaufnahme ist standardmässig aktiviert. Falls erforderlich, kann dieser Parameter auf False gesetzt werden, um die Bildaufnahme zu deaktivieren. Im Abschnitt Can take image erhalten Sie weitere Informationen darüber, in welchen Fällen dieser Befehl nützlich sein kann.

  • Image After Send

    Erzwingt die Aufnahme eines Bildes, nachdem ein Teil entnommen wurde. Jedes Mal, wenn Sie die Befehle Get Part Trigger oder Prepare Part Trigger ausführen, nimmt das System unmittelbar vorher automatisch ein Bild auf. Dies wird verwendet, um die Koordinaten der bereits gefundenen guten Kandidaten (im Speicher abgelegt) zu korrigieren, wenn Sie vermuten, dass sich die Teile in der Zwischenzeit aufgrund einer externen Störung bewegt haben könnten.

    Vgl. Image after send für weitere Informationen.

  • Command Timeout

    Es handelt sich um die Frist (in Sekunden) für die Ausführung des Befehls Get Part Trigger. Wenn innerhalb dieser Frist keine Teile gefunden wurden, wird ein Fehler zurückgegeben.

  • Part Quantity

    Dieser Parameter wird verwendet, um EYE+ aufzufordern, nach mehreren Teilen gleichzeitig zu suchen. Jedes Mal, wenn EYE+ ein Bild aufnimmt, wird nach mindestens <n> Teilen auf dem Bild gesucht. Wenn diese Anzahl Teile nicht gefunden wird, werden keine Koordinaten gesendet, eine neue Vibration durchgeführt und ein neues Bild aufgenommen, bis diese <n> Teile gefunden werden.

  • Multi Part Quantity A, B

    Nur mit einem Dualfeeding-Rezept, Anzahl der Teile eines bestimmten Typs, die von Prepare Part Trigger und Get Part Trigger bei jeder Bildaufnahme angefordert werden. Wenn diese Anzahl Teile bei der Bildaufnahme nicht gefunden wird, dann wird Get Part Trigger oder Prepare Part Trigger erneut ausgeführt (Vibration + Bildaufnahme), bis diese Anzahl Teile gefunden wird.

    Für weitere Informationen über Funktionsweisen in Verbindung mit der Anzahl Teile lesen Sie bitte den folgenden Abschnitt, der ein gängiges Szenario für die Produktion mit Dualfeeding beschreibt.

Produktions-Outputs

  • Start Production Done

    True, wenn EYE+ die Ausführung des Befehls Start Production Trigger beendet hat. Wird auf False zurückgesetzt, wenn der Trigger Start Production Trigger auf 0 gesetzt wird.

  • Active Recipe

    Enthält das aktuell für die Produktion oder Entleerung geladene Rezept.

  • Get Part Done

    True, wenn EYE+ die Ausführung des Befehls Get Part Trigger beendet hat. Wird auf False zurückgesetzt, wenn der Trigger Get Part Trigger auf 0 gesetzt wird.

  • Prepare Part Done

    True wenn EYE+ die Ausführung des Befehls Prepare Part Trigger beendet hat. Wird auf False zurückgesetzt, wenn der Trigger Prepare Part Trigger auf 0 gesetzt wird.

  • Is Prepared

    True, wenn EYE+ die Bildanalyse beendet hat und bereit ist, die Position anhand von Get Part Trigger anzugeben.

  • Is Analysis Running

    True, wenn EYE+ noch Bilder verarbeitet, vgl. is_analysis_running.

  • Force Take Image Done

    True, wenn EYE+ die Ausführung des Befehls Force Take Image Trigger beendet hat. Wird auf False zurückgesetzt, wenn der Trigger Force Take Image Trigger auf 0 gesetzt wird.

  • Parts Prepared

    Anzahl der allgemeinen Teile, die mit einem Get Part Trigger entnommen werden können.

  • Multi Parts Prepared A, Multi Parts Prepared B

    Anzahl der spezifischen Teile, die mit einem Get Part Trigger entnommen werden können.

  • Poses

    EYE+ kann bis zu 10 Positionen auf einmal ausgeben. Jede Position setzt sich aus 4 verschiedenen Parametern zusammen:

    1. Pose <n> X: die X-Koordinate dieses Teils

    2. Pose <n> Y: die Y-Koordinate dieses Teils

    3. Pose <n> RZ: der RZ-Winkel dieses Teils

    4. Pose <n> Type: der Typ des Teils (wird in Dualfeeding-Rezepten verwendet)

    Ausserdem wird die Anzahl der gültigen Einträge immer im Register Number of Valid Entries definiert.

  • Save Parameters Done

    True, wenn EYE+ die Ausführung des Befehls Save Parameters Trigger beendet hat. Wird auf False zurückgesetzt, wenn der Trigger Save Parameters Trigger auf 0 gesetzt wird.

  • Can Take Image

    Rücklesewert des Parameters Can Take Image.

  • Image After Send

    Rücklesewert des Parameters Image After Send.

Entleerungsfunktionalitäten

Zusätzlich zu den Produktionsfunktionalitäten bietet die EtherCAT-Schnittstelle Zugriff auf alle Befehle zur vollständigen Steuerung des optionalen Asyril Entleerungssystems für einfachere Produktionsumstellungen. Konsultieren Sie die Abschnitte Purge plate und Purge full, um weitere Informationen darüber zu erhalten, wie Sie die Vorteile dieses optionalen Zubehörs in vollem Umfang nutzen können.

Es gibt einige, dem Entleerungssystem spezifische Befehle:

  • Start Purge Trigger

    Startet ein Rezept zur Entleerung der Plattform. Der eindeutige Rezept-Identifikator muss im Register Recipe ID definiert werden. Sobald die Entleerung begonnen hat, wird sich dies im Register Start Purge Done, sowie im System State widerspiegeln. Fehler werden anhand der speziellen Register Is Error und Error ID behandelt, vgl. Fehlerbehandlung.

    Nachfolgend ein Beispiel, bei dem das Rezept 42 zur Entleerung der Plattform gestartet wird:

    ../../_images/ecs_start_purge.svg
  • Purge Plate Trigger

    Führt eine Sequenz zur Entleerung der Plattform durch. Diese Sequenz besteht darin, die Entleerungsklappe zu öffnen, die Plattform in die entsprechende Richtung vibrieren zu lassen und schliesslich die Entleerungsklappe wieder zu schliessen. Die Dauer der Vibration kann optional im Register Purge Duration eingestellt werden.

    Das Register Purge Plate Done wird auf 1 gesetzt, sobald EYE+ die Entleerung abgeschlossen hat.

    Das System muss sich im Entleerungsmodus befinden, um diesen Befehl zu verwenden, vgl. Start Purge Trigger.

    ../../_images/ecs_purge_plate.svg
  • Purge Full Trigger

    Führt eine Sequenz zur Entleerung der Plattform und des Bunkers durch. Diese Sequenz besteht aus dem Öffnen der Entleerungsklappe, dem Vibrieren der Plattform in die entsprechende Richtung und dem Auslösen des Bunkers, sowie schliesslich dem Schliessen der Entleerungsklappe. Die Dauer der Vibration muss im Register Purge Duration definiert werden.

    Das Register Purge Full Done wird auf 1 gesetzt, wenn EYE+ die Entleerung abgeschlossen hat.

    Das System muss sich im Entleerungsmodus befinden, um diesen Befehl zu verwenden, vgl. Start Purge Trigger.

    ../../_images/ecs_purge_full.svg
  • Purge Duration

    Dauer der Vibration der Plattform und des Bunkers in ms. Wenn dieser Wert in Kombination mit dem Befehl Purge Plate Trigger verwendet wird und er auf 0 gesetzt ist, wird stattdessen der entsprechende Wert aus dem Rezept verwendet. Der Wert muss zwischen 1 und 30000 ms liegen.

Entleerungs-Outputs

Zusätzliche Fehlercodes

EYE+ gibt ggf. für EtherCAT spezifische Fehlercodes zurück. Eine Liste dieser Fehlercodes und ihre Beschreibung ist unten aufgeführt:

701

In den PDOs sind konkurrierende Befehle aktiv