Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

Mehrere Ansichten in einem einzigen Rezept

Diese Anleitung zeigt Ihnen, wie Sie ein einzelnes Rezept einrichten, das verschiedene Teile, Winkel oder Ansichten inspizieren kann, ohne zu anderen Rezepten 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 Rezepts bleibt,
  • wenn die gleiche Inspektion an mehreren Teilen oder Winkeln eines Teils durchgeführt wird (z. B. Vorhandensein/Fehlen von Bolzen an fünf verschiedenen Positionen in einer Fahrzeugkarosserie). In diesem Fall vermeidet diese Methode, dass das gleiche Modell (Bolzen vorhanden/fehlt) mehrfach über verschiedene Rezepte hinweg 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 unbegrenzte Anzahl von Inspektionstypen und Ansichten verwenden. In dieser Inspektion suchen wir nach dem Vorhandensein/Fehlen von Bohrern auf zwei Seiten eines Bohrerkoffers. Eine Seite hat fünf Bohrer auf der Unterseite, und die andere Seite hat acht Bohrer sowohl oben als auch unten. Wir nennen die Seite mit 16 Bohrern Seite A und die mit fünf Bohrern Seite B.

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

Erstellen und Trainieren eines neuen Rezepts

Anstatt ein Rezept pro Seite zu erstellen, kombinieren wir aufgrund der unterschiedlichen Layouts beide Seiten in einem Rezept, sodass wir das gleiche Vorhandensein/Fehlen-Modell nicht zweimal trainieren müssen.

  1. Erstellen Sie ein neues Rezept. In diesem Fall handelt es sich um ein Klassifizierungsrezept, aber dasselbe Prinzip kann auch mit Segmentierung angewendet werden.

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

hinweis

Der Aligner ist nicht verfügbar, wenn mehr als eine Ansicht im selben Rezept inspiziert wird. Das Template Image und der Aligner werden nur zum Festlegen des Basisbildes für das Inspection Setup verwendet.

Template image und alignment - Seite A

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

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 jedem 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

Für komplexere Rezepte wiederholen Sie diesen Vorgang für so viele unterschiedliche Ansichten, wie Sie inspizieren möchten.

  1. Beschriften und trainieren Sie das Klassifizierungsmodell mit Bildern beider Seiten A und B. Beim Erfassen und Beschriften von Seite A sollten Sie die ROIs von Seite B nicht beschriften und umgekehrt.
Seite A Pass-LabelsSeite A Fail-Labels
Beschriftung Seite A (Pass)Beschriftung Seite A (Fail)
Seite B Pass-LabelsSeite B Fail-Labels
Beschriftung Seite B (Pass)Beschriftung 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 OV20i mitteilt, welche Seite gerade inspiziert wird.

hinweis

Dies können Roboterpositionsdaten, Informationen von der PLC oder alles andere sein, was Sie verwenden möchten. Im folgenden Beispiel simulieren wir dies mit zwei Inject nodes: einer sendet den String „A" und ein anderer sendet den String „B".

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

Function Node bearbeiten

  1. Sie können testen, ob Ihre Seitendaten ordnungsgemäß gespeichert werden, indem Sie die Seitenleiste context ö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 ordnungsgemäß in der Flow variable gespeichert sind, fügen Sie einen switch node hinzu, der mit All Block Outputs verbunden ist. Dieser Block leitet die Nachricht mit den Inspektionsdaten je nachdem, welche Seite in der Flow variable aktiv ist. Konfigurieren Sie ihn so, dass er die Flow variable prüft und die Nachricht an Port 1 weiterleitet, wenn A aktiv ist, und an Port 2, wenn B aktiv ist.

Switch Node bearbeiten

hinweis

Für komplexere Rezepte wiederholen Sie diesen Vorgang für so viele unterschiedliche 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 inspizieren möchten. Der Switch Node leitet jeweils nur eine Nachricht an einen der Nodes weiter. Das Bild unten zeigt die Konfiguration für den B-Seiten-Port des Switches. Beachten Sie, dass keine der A-ROIs referenziert wird, 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. Dadurch können die Ergebnisse auf dem HMI angezeigt sowie an eine angeschlossene PLC oder andere Flow-Komponenten übergeben werden.

Node-RED Flow

Rezept testen

Da der Node-RED-Flow nun konfiguriert ist, ist es an der Zeit, das Rezept Ende-zu-Ende zu testen.

  1. Zuerst senden wir den A-Seiten-Befehl über unseren Node-RED Inject Node. Anschließend verwenden wir das HMI, um ein gutes Teil zu inspizieren. Beachten Sie, dass die gesamte Inspektion bestanden wurde, obwohl eine der B-Seiten-Regionen 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 Fehlerergebnis.

HMI Seite A, Fail

  1. Wir wechseln zur B-Seite, senden das B-Signal über unseren Node-RED Inject Node und aktualisieren (refresh) den Flow-variable-Bereich im Kontextdatenbereich, um sicherzustellen, dass es gespeichert ist.

Node-RED Flow B

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

HMI Seite B, Pass

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