Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

Mehrere Ansichten in einem einzigen Recipe

Diese Anleitung zeigt Ihnen, wie Sie ein einzelnes Recipe einrichten, mit dem verschiedene Teile, Winkel oder Ansichten inspiziert werden können, ohne zu anderen Recipes wechseln zu müssen. Es gibt verschiedene Gründe dafür, aber zwei Hauptanwendungsfälle sind:

  • wenn zwischen den Aufnahmen nicht genügend Zeit zum Wechseln des Recipes bleibt,
  • wenn dieselbe Inspektion an mehreren Teilen oder Winkeln eines Teils durchgeführt wird (z. B. Anwesenheit/Abwesenheit von Bolzen an fünf verschiedenen Positionen einer Karosserie). In diesem Fall vermeidet diese Methode, dass dasselbe Modell (Anwesenheit/Abwesenheit von Bolzen) mehrfach in verschiedenen Recipes trainiert werden muss.
hinweis

Das folgende Beispiel ist eine einfache Version mit zwei Ansichten und einem Inspektionstyp, aber Sie können dieselbe Technik für eine beliebige Anzahl von Inspektionstypen und Ansichten verwenden. In dieser Inspektion suchen wir nach der Anwesenheit/Abwesenheit von Bits auf zwei Seiten einer Bohrer-Box. Eine Seite hat fünf Bits unten, und die andere Seite hat acht Bits oben und unten. Wir nennen die Seite mit 16 Bits Seite A und die mit fünf Bits Seite B.

Seite ASeite B
Seite A (16 Bits)Seite B (5 Bits)

Ein neues Recipe erstellen und trainieren

Anstelle eines Recipes pro Seite kombinieren wir aufgrund der unterschiedlichen Layouts beide Seiten in einem Recipe, damit wir dasselbe Anwesenheits-/Abwesenheitsmodell nicht zweimal trainieren müssen.

  1. Erstellen Sie ein neues Recipe. In diesem Fall handelt es sich um ein Classification-Recipe, aber dasselbe Prinzip kann auch mit Segmentation verwendet werden.

  2. Richten Sie das Template Image und das Alignment für die erste Ansicht ein:

hinweis

Der Aligner ist nicht verfügbar, wenn mehr als eine Ansicht im selben Recipe inspiziert wird. Das Template Image und der Aligner werden nur verwendet, um das Basisbild für das Inspection Setup festzulegen.

Template Image und Alignment – Seite A

  1. Zeichnen Sie ROIs für Seite A. Benennen Sie sie so, dass erkennbar ist, zu welcher Seite sie gehören. In diesem Fall haben wir die ROIs mit A1–A16 benannt.

ROIs – Seite A

  1. Kehren Sie zum Template Image und Alignment zurück, um das Bild durch Seite B zu ersetzen, entweder durch eine neue Aufnahme oder aus der Bibliothek.

Template Image und Alignment – Seite B

  1. Verwenden Sie die Schloss-Symbole neben jeder ROI, um zu verhindern, dass ROIs von Seite A verschoben werden, und zeichnen und benennen Sie dann die ROIs für Seite B.

ROIs – Seite B

hinweis

Wiederholen Sie diesen Vorgang bei komplexeren Recipes für so viele verschiedene Ansichten, wie Sie inspizieren möchten.

  1. Labeln und trainieren Sie das Classification-Modell mit Bildern von beiden Seiten A und B. Wenn Sie Seite A erfassen und labeln, labeln Sie nicht die ROIs von Seite B und umgekehrt.
Pass-Labels Seite AFail-Labels Seite A
Labeln von Seite A (Pass)Labeln von Seite A (Fail)
Pass-Labels Seite BFail-Labels Seite B
Labeln von Seite B (Pass)Labeln von Seite B (Fail)

Node-RED-Logik konfigurieren

  1. Navigieren Sie zum IO Block (Configure IO im Recipe Editor), um Ihren Node-RED-Flow zu öffnen.

  2. Erstellen Sie eine Quelle, die dem OV80i mitteilt, welche Seite gerade inspiziert wird.

hinweis

Dies können Roboterpositionsdaten, Informationen aus der PLC oder beliebige andere Daten sein, die Sie verwenden möchten. Im folgenden Beispiel simulieren wir dies mit zwei Inject nodes, von denen einer den String "A" und der andere den String "B" sendet.

  1. Da die eingehenden Seitendaten möglicherweise nur kurzzeitig anliegen, wir aber prüfen möchten, welche Seite aktiv ist, speichern wir die Zustandsdaten in einer Flow variable, die bis zum Empfang der nächsten Seiteninformation erhalten bleibt. Verbinden Sie Ihre Datenquelle mit einem Function-Block, der folgenden Code enthält:
flow.set('side',msg.payload);
return msg;

Function-Node bearbeiten

  1. Sie können testen, ob Ihre Seitendaten korrekt gespeichert werden, indem Sie die context-Datenseitenleiste öffnen, eine Nachricht senden und dann im Bereich Flow variable auf refresh klicken. Der Flow-Datenbereich wird nur aktualisiert, wenn er manuell über die kleine refresh-Schaltfläche aktualisiert wird.

Kontextmenü

  1. Sobald die Seitendaten korrekt in der Flow variable gespeichert sind, fügen Sie einen mit All Block Outputs verbundenen switch node hinzu. Dies ist der Block, der die Nachricht mit den Inspektionsdaten je nach der in der Flow variable aktiven Seite weiterleitet. Konfigurieren Sie ihn so, dass er die Flow variable auswertet und die Nachricht an Port 1 weiterleitet, wenn A aktiv ist, und an Port 2, wenn B aktiv ist.

Switch-Node bearbeiten

hinweis

Wiederholen Sie diesen Vorgang bei komplexeren Recipes für so viele verschiedene Ansichten, wie Sie inspizieren möchten.

  1. Verbinden Sie jeden Ausgangsport des switch mit einem Classification Block Logic block und konfigurieren Sie jeden gemäß den Regeln, die Sie für diese Seite prüfen möchten. Der Switch-Node leitet eine Nachricht jeweils nur an einen der Nodes weiter. Das Bild unten zeigt die Konfiguration für den B-Seiten-Port des Switches. Beachten Sie, dass er keine der A-ROIs referenziert, sodass die Logik die Ergebnisse dieser Seite ignoriert, wenn die Inspektion über diesen Node geleitet wird.

Classification Block Logic node bearbeiten

  1. Verbinden Sie schließlich die Logic blocks mit dem Inspection Pass/Fail block. Dies ermöglicht es, dass die Ergebnisse auf dem HMI angezeigt sowie an eine angeschlossene PLC oder andere Flow-Komponenten weitergeleitet werden.

Node-RED-Flow

Das Recipe testen

Nachdem der Node-RED-Flow konfiguriert ist, ist es nun an der Zeit, das Recipe durchgängig zu testen.

  1. Zuerst senden wir den A-Seiten-Befehl über unseren Node-RED-Inject-Node. Anschließend verwenden wir das HMI, um ein Gutteil zu inspizieren. Beachten Sie, dass die gesamte Inspektion bestanden wurde, obwohl einer der B-Seiten-Bereiche fehlgeschlagen ist.

HMI Seite A, Pass

  1. Wenn wir nun einen Bohrer auf der A-Seite entfernen und erneut inspizieren, erhalten wir das gewünschte Fail-Ergebnis.

HMI Seite A, Fail

  1. Weiter zur B-Seite: Wir senden das B-Signal über unseren Node-RED-Inject und aktualisieren den Flow-variable-Abschnitt im Kontextdatenbereich mit refresh, um sicherzustellen, dass es gespeichert ist.

Node-RED-Flow B

  1. Wenn wir nun zur B-Seite eines Gutteils wechseln, sehen wir, dass die Inspektion bestanden wird, obwohl alle A-Seiten-Bereiche fehlschlagen.

HMI Seite B, Pass

Glückwunsch! Sie wissen nun, wie Sie ein einzelnes Recipe und Modell für mehrere Ansichten eines Teils verwenden. Dies ermöglicht komplexe Inspektionen bei hohen Geschwindigkeiten und eine enge Integration mit Robotern. Außerdem sparen Sie erheblich Zeit, die sonst für das Training mehrerer Modelle aufgewendet werden müsste, die dieselbe Inspektion nur auf verschiedenen Ansichten durchführen.