Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

PLC-Kommunikationsdetails (EtherNet/IP)

Das OV20i-Bildverarbeitungssystem unterstützt die Echtzeitkommunikation mit EtherNet/IP-basierten PLCs. Dieser Leitfaden erläutert, wie zyklische I/O-Verbindungen konfiguriert, Datenstrukturen zugeordnet und die Node-RED-Tools von Overview zur Abfrage globaler sowie ROI-spezifischer Inspektionsergebnisse genutzt werden.

Videoanleitung

Sehen Sie sich dieses Thema in Aktion an: Auto-Integration Builder

hinweis

Grundlegende Verbindungshinweise finden Sie unter Connect to PLC (EtherNet/IP, PROFINET).


Übersicht

Der OV20i fungiert als EtherNet/IP-Adapter, während Ihre PLC als Scanner (oder Master) arbeitet. Nach der Konfiguration tauschen die Geräte in jedem Zyklus strukturierte Daten in einem kompakten und vorhersehbaren Format aus.

Unterstützte Funktionen

  • Zyklische I/O-Kommunikation – Unterstützung von Zykluszeiten zwischen 20 und 10.000 ms
  • Datendurchsatz – Bis zu 256 Bytes in jeder Richtung
  • Benutzerdefinierte Datenverarbeitung – Lesen/Schreiben von Node-RED-Daten als Bestandteil des aktiven Rezepts

Input Assembly (OV20i → PLC)

Das Input Assembly enthält die Daten, die in jedem Zyklus vom OV20i an die PLC gesendet werden. Dazu gehören Systemstatus, Inspektionsergebnisse, Rezeptinformationen und optionale ROI-Aufschlüsselungen.

Byte- und Bit-Layout des OV20i-Input-Assemblys

Output Assembly (PLC → OV20i)

Das Output Assembly enthält Steuerdaten, die von der PLC an den OV20i gesendet werden. Sie können es verwenden, um Inspektionen auszulösen, Rezepte zu wechseln oder benutzerdefinierte Parameter zu übergeben.

Byte- und Bit-Layout des OV20i-Output-Assemblys

Timing- und Handshake-Verhalten

EtherNet/IP-Triggering-Zeitdiagramm

Unterstützung benutzerdefinierter Daten

Der OV20i kann zusätzliche benutzerdefinierte Daten als Bestandteil Ihres Node-RED-Flows entgegennehmen oder zurückgeben.

PLC → OV20i

  • Schreiben Sie externe Flags, Schwellenwerte oder Zähler, um die Logik in Node-RED zu beeinflussen

OV20i → PLC

  • Geben Sie berechnete Werte, Messungen, Zeitstempel oder bedingte Ausgaben zurück

Benutzerdefinierte Daten passen in den erweiterten Bereich der Assemblys, beginnend nach den Kernsignalen und Rezeptinformationen.

ROI-Ergebnisaufschlüsselung (nur Classification Recipes)

Bei Classification Recipes können Sie der PLC pro-ROI-Ergebnisse über den benutzerdefinierten Node-RED-Node von Overview bereitstellen: Format data for PLC.

Funktionsweise:

  • Wird zwischen All Blocks Output Data und Send Data to PLC im Node-RED-Flow platziert

Beispiel für den Format-Data-for-PLC-Node-RED-Flow

  • Befüllt automatisch einen strukturierten ROI-Bereich beginnend bei Byte 16 im Input Assembly

  • Unterstützt bis zu 4 ROIs pro Inspektion

  • Jeder ROI enthält:

    • ROI-ID
    • Pass/Fail-Bit
    • Confidence Score
    • Reservierte Bytes für zukünftige Verwendung
warnung

Der Format Data for PLC-Node funktioniert ausschließlich mit Classification Recipes.

Byte- und Bit-Layout des OV20i-Output-Assemblys


Standard-PLC-Tag-Referenz

Dieser Abschnitt enthält eine vollständige Referenz aller Tags in den Input- und Output-Assemblies, einschließlich Byte-Offsets, Bit-Positionen, Datentypen und Standardwerten. Verwenden Sie diese als verbindliche Bitmap bei der Konfiguration Ihres PLC-Programms.

Anzeige der Standard-Tags in der Kamera-UI

  1. Öffnen Sie die OV20i-Weboberfläche (z. B. http://192.168.1.100).
  2. Navigieren Sie in der linken Seitenleiste zu Industrial Ethernet.
  3. Wählen Sie Ihr aktives Protokoll aus (EtherNet/IP oder PROFINET).
  4. Die Seite zeigt die aktuelle Assembly-Konfiguration an, einschließlich der Input-/Output-Datengrößen und des Verbindungsstatus.
  5. Das auf dieser Seite angezeigte Standard-Tag-Layout entspricht den nachstehenden Tabellen.

Input-Assembly-Tags (OV20i → PLC)

Diese Tags werden von der PLC gelesen. Die Kamera schreibt sie in jedem I/O-Zyklus.

Byte 0 -- Status-Flags

BitPLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
0I.Data[0].0Trigger ReadyBOOLKamera ist bereit, einen Trigger anzunehmen. Muss HIGH sein, bevor eine Trigger-Anforderung gesendet wird.0 (wird nach dem Start HIGH)
1I.Data[0].1Trigger AcknowledgeBOOLKamera hat die Trigger-Anforderung empfangen und akzeptiert.0
2I.Data[0].2Recipe Switch AcknowledgeBOOLKamera hat die Rezeptwechselanforderung empfangen und abgeschlossen.0
7I.Data[0].7Online / Startup CompleteBOOLKamera hat den Bootvorgang abgeschlossen und ist online.0 (wird nach dem Booten HIGH)

Byte 1 -- Fehler- und Status-Flags

BitPLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
0I.Data[1].0Trigger ErrorBOOLWährend des Triggerzyklus ist ein Fehler aufgetreten. Bleibt gespeichert, bis er zurückgesetzt wird.0
1I.Data[1].1Recipe Switch ErrorBOOLWährend des Rezeptwechsels ist ein Fehler aufgetreten. Bleibt gespeichert, bis er zurückgesetzt wird.0
6I.Data[1].6BusyBOOLKamera verarbeitet aktuell (Inspektion läuft oder Rezeptwechsel). Während HIGH keine neuen Befehle senden.0

Byte 2 -- Inspektionsergebnis-Flags

BitPLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
0I.Data[2].0Exposure CompleteBOOLBildbelichtung wurde abgeschlossen.0
1I.Data[2].1Inspection Completed / Result AvailableBOOLDie Inspektionsverarbeitung ist abgeschlossen und die Ergebnisse sind gültig.0
2I.Data[2].2Inspection PassBOOLEndgültiges Pass/Fail-Ergebnis. HIGH = Pass, LOW = Fail. Nur gültig, wenn Result Available HIGH ist.0

Bytes 3--7 -- Reserviert

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
3I.Data[3]ReservedBYTEFür zukünftige Verwendung reserviert.0x00
4I.Data[4]ReservedBYTEFür zukünftige Verwendung reserviert.0x00
5I.Data[5]ReservedBYTEFür zukünftige Verwendung reserviert.0x00
6--7I.Data[6]--I.Data[7]ReservedBYTEFür zukünftige Verwendung reserviert.0x00

Bytes 8--9 -- Current Recipe ID

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
8--9I.Data[8]--I.Data[9]Current Recipe IDUINT (16-Bit)Die ID des aktuell aktiven Rezepts. Vergleichen Sie mit O.Data[4], um zu überprüfen, ob ein Rezeptwechsel abgeschlossen wurde.0

Bytes 10--11 -- Reserved

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
10--11I.Data[10]--I.Data[11]ReservedBYTEReserviert für zukünftige Verwendung.0x00

Bytes 12--13 -- Inspection ID

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
12--13I.Data[12]--I.Data[13]Inspection IDUINT (16-Bit)Fortlaufender 16-Bit-Zähler, der bei jeder Inspektion inkrementiert wird. Wird verwendet, um Ergebnisse mit bestimmten Triggern zu korrelieren.0

Bytes 14--15 -- Reserved

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
14--15I.Data[14]--I.Data[15]ReservedBYTEReserviert für zukünftige Verwendung.0x00

Bytes 16--256 -- ROI Results Assembly / Custom Data from Node-RED

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
16--256I.Data[16]--I.Data[256]ROI Results / Custom DataBYTE[]Bei Verwendung des Node-RED-Blocks "Format Data for PLC" wird dieser Bereich mit strukturierten ROI-Ergebnissen befüllt. Andernfalls steht er für benutzerdefinierte Daten aus Node-RED-Flows zur Verfügung.0x00

Output Assembly Tags (PLC → OV20i)

Diese Tags werden von der PLC geschrieben. Die Kamera liest sie in jedem I/O-Zyklus.

Byte 0 -- Control Flags

BitPLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
0O.Data[0].0Trigger RequestBOOLAuf HIGH setzen, um eine Inspektion auszulösen. Halten, bis Trigger Acknowledge (I.Data[0].1) auf HIGH wechselt, dann zurücksetzen.0
1O.Data[0].1Recipe Switch RequestBOOLAuf HIGH setzen, um einen Rezeptwechsel zu der in O.Data[4] angegebenen ID anzufordern. Halten, bis Recipe Switch Ack (I.Data[0].2) auf HIGH wechselt, dann zurücksetzen.0

Bytes 1--3 -- Reserved

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
1O.Data[1]ReservedBYTEReserviert für zukünftige Verwendung.0x00
2O.Data[2]ReservedBYTEReserviert für zukünftige Verwendung.0x00
3O.Data[3]ReservedBYTEReserviert für zukünftige Verwendung.0x00

Bytes 4--5 -- Recipe ID

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibungStandardwert
4--5O.Data[4]--O.Data[5]Recipe IDUINT (16-Bit)Die Rezept-ID, zu der gewechselt werden soll. Tragen Sie hier die gewünschte Rezeptnummer ein, bevor Sie das Bit Recipe Switch Request setzen.0

Bytes 6--256 -- Custom Data for Node-RED

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
6--256O.Data[6]--O.Data[256]Custom Data for Node-REDBYTE[]Benutzerdefinierte Daten, die Node-RED-Flows lesen können. Verwenden Sie diesen Bereich, um Seriennummern, Schwellenwerte, Teil-IDs oder andere Parameter an die Kamera zu übergeben.0x00

Bit-Mapping-Diagramme

Die folgenden textbasierten Diagramme zeigen das vollständige Byte-/Bit-Layout für beide Assemblies. Jede Zeile repräsentiert ein Byte (oder einen Byte-Bereich), und jede Spalte repräsentiert eine Bit-Position (Bit 7 links, Bit 0 rechts).

Input Assembly Bit Map (OV20i → PLC)

Byte │ Bit 7          │ Bit 6  │ Bit 5 │ Bit 4 │ Bit 3 │ Bit 2              │ Bit 1                      │ Bit 0
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
0 │ Online/Startup │ --- │ --- │ --- │ --- │ Recipe Switch Ack │ Trigger Ack │ Trigger Ready
│ Complete │ │ │ │ │ │ │
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
1 │ --- │ Busy │ --- │ --- │ --- │ --- │ Recipe Switch Error │ Trigger Error
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
2 │ --- │ --- │ --- │ --- │ --- │ Inspection Pass │ Inspection Completed / │ Exposure
│ │ │ │ │ │ │ Result Available │ Complete
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
3-5 │ --- │ --- │ --- │ --- │ --- │ --- │ --- │ ---
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
6-7 │ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
8-9 │ Current Recipe ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
10-11│ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
12-13│ Inspection ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
14-15│ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
16- │ ROI Results Assembly or Custom Data from Node-RED │
256 │ │

Output Assembly Bit Map (PLC → OV20i)

Byte │ Bit 7 │ Bit 6 │ Bit 5 │ Bit 4 │ Bit 3 │ Bit 2 │ Bit 1                 │ Bit 0
─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────────────────────┼────────────────
0 │ --- │ --- │ --- │ --- │ --- │ --- │ Recipe Switch Request │ Trigger Request
─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────────────────────┼────────────────
1-3 │ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────
4-5 │ Recipe ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────
6- │ Custom Data for Node-RED │
256 │ │

ROI Results Assembly – Details (Bytes 16--55)

Wenn der Node-RED-Block Format Data for PLC mit Klassifizierungsrezepten verwendet wird, werden die Bytes ab Byte 16 des Input Assembly mit strukturierten Aligner- und ROI-spezifischen Daten wie folgt befüllt:

Aligner-Abschnitt (Bytes 16--23)

Byte(s)PLC-Tag-AdresseTag-NameDatentypBeschreibung
16, Bit 0I.Data[16].0Aligner SuccessBOOLHIGH, wenn der Aligner das Teil erfolgreich lokalisiert hat.
17--18I.Data[17]--I.Data[18]Aligner ConfidenceUINT (16-Bit)Konfidenzwert der Ausrichtung (0--65535).
19--20I.Data[19]--I.Data[20]Aligner AngleINT (16-Bit, vorzeichenbehaftet)Übereinstimmender Winkel relativ zum Template.
21--23I.Data[21]--I.Data[23]Reserved (Aligner)BYTEReserviert für zukünftige Aligner-Daten.

ROI-Ergebnisblöcke (Bytes 24--55)

Jede ROI belegt 8 Bytes. Es werden bis zu 4 ROIs unterstützt (ROI 0 bis ROI 3).

Struktur eines ROI-Blocks (wiederholt sich alle 8 Bytes):

Offset innerhalb des BlocksTag-NameDatentypBeschreibung
+0ROI IDUINT8 (8-Bit)Eindeutige numerische Kennung der ROI.
+1, Bit 0ROI PassBOOLHIGH = diese ROI bestanden, LOW = diese ROI nicht bestanden.
+2 bis +3ROI ConfidenceUINT (16-Bit)Konfidenzwert der Klassifizierung dieser ROI (0--65535).
+4 bis +7ReservedBYTEReserviert für zukünftige ROI-spezifische Daten.

Startadressen der ROIs:

ROIStart-BytePLC-AdressbereichID-AdressePass-AdresseConfidence-Adresse
ROI 024I.Data[24]--I.Data[31]I.Data[24]I.Data[25].0I.Data[26]--I.Data[27]
ROI 132I.Data[32]--I.Data[39]I.Data[32]I.Data[33].0I.Data[34]--I.Data[35]
ROI 240I.Data[40]--I.Data[47]I.Data[40]I.Data[41].0I.Data[42]--I.Data[43]
ROI 348I.Data[48]--I.Data[55]I.Data[48]I.Data[49].0I.Data[50]--I.Data[51]

Pufferkonfiguration

Anzeigen der Standard-Tags in der Kamera-UI

Das Standard-Tag-Layout wird durch die Kamera-Firmware definiert und entspricht den oben aufgeführten Tabellen. So zeigen Sie die aktuelle Konfiguration an:

  1. Öffnen Sie die OV20i-Weboberfläche.
  2. Navigieren Sie im linken Menü zu Industrial Ethernet.
  3. Wählen Sie Ihr Protokoll aus (EtherNet/IP oder PROFINET).
  4. Die Seite zeigt:
    • Verbindungsstatus und Geräteinformationen
    • Größen der Input- und Output-Assemblies (bis zu 256 Bytes pro Richtung)
    • Den Download-Link für die EDS- bzw. GSDML-Datei (in der auch die Standard-Assembly-Struktur kodiert ist)

Sowohl die EDS-Datei (für EtherNet/IP) als auch die GSDML-Datei (für PROFINET) definieren die Standard-Datengrößen. Wenn Sie das Kameramodul in Studio 5000 oder TIA Portal hinzufügen, bestimmen die Assembly-Größen aus diesen Beschreibungsdateien, wie viele Bytes pro Zyklus ausgetauscht werden.

Erstellen eines benutzerdefinierten Datenpuffers

Um benutzerdefinierte Daten (über die Standard-Status-/Ergebnis-Tags hinaus) zwischen Kamera und PLC zu senden, verwenden Sie den Node-RED-Block "Format Data for PLC":

  1. Öffnen Sie Node-RED über die Kamera-Weboberfläche (navigieren Sie zum Node-RED-Editor).
  2. Platzieren Sie in Ihrem Rezept-Flow den Node "Format Data for PLC" zwischen dem Node "All Blocks Output Data" und dem Node "Send Data to PLC".
  3. Konfigurieren Sie die Byte-Reihenfolge:
    • Little-endian für Allen-Bradley- / Rockwell-PLCs
    • Big-endian für Siemens-PLCs
  4. Der Block formatiert Klassifikations-ROI-Ergebnisse automatisch in das strukturierte Layout ab Byte 16 der Input Assembly (siehe Abschnitt ROI Results Assembly Detail oben).

Für vollständig benutzerdefinierte Datenpuffer (ohne Verwendung des Standard-ROI-Formats):

  1. Verwenden Sie in Ihrem Node-RED-Flow einen Function-Node, um einen msg.payload-Buffer mit Ihrem gewünschten Byte-Layout zu erstellen.
  2. Verbinden Sie diesen mit dem Node "Send Data to PLC".
  3. Ihre benutzerdefinierten Bytes belegen die Input Assembly ab Byte 16.
  4. Lesen Sie auf PLC-Seite die entsprechenden Adressen I.Data[16] bis I.Data[256].

Ändern von Tag-Zuweisungen

Die Kern-Tags (Bytes 0--15 der Input Assembly und Bytes 0--5 der Output Assembly) sind durch die Kamera-Firmware festgelegt und können nicht neu zugewiesen werden. Dies sind die Signale auf Systemebene (Trigger, Rezeptwechsel, Status, Fehler, Rezept-ID und Inspektions-ID).

Der konfigurierbare Bereich ist:

  • Input Assembly Bytes 16--256: Werden von Node-RED befüllt. Sie steuern, welche Daten hier abgelegt werden, indem Sie Ihren Node-RED-Flow konfigurieren. Der Block "Format Data for PLC" füllt diesen Bereich standardmäßig mit ROI-Ergebnissen, oder Sie können beliebige Daten mithilfe von Function-Nodes schreiben.
  • Output Assembly Bytes 6--256: Werden von Node-RED gelesen. Sie können beliebige Daten aus der PLC in diese Bytes schreiben und sie anschließend in Ihrem Node-RED-Flow über die entsprechenden Input-Nodes lesen. Dies ist nützlich, um Seriennummern, Los-IDs, Schwellenwerte oder andere Parameter von der PLC an die Kamera zu übertragen.

Senden benutzerdefinierter Daten von der PLC an die Kamera (Output Assembly)

Um benutzerdefinierte Daten von der PLC an Node-RED zu übergeben:

  1. Schreiben Sie in Ihrem PLC-Programm Werte in O.Data[6] bis O.Data[256].
  2. Verwenden Sie in Node-RED auf der Kamera die PLC-Input-Daten-Nodes, um diese Bytes zu lesen.
  3. Nutzen Sie die Werte in Ihrer Flow-Logik (z. B. Schwellenwerte, Seriennummern, bedingte Parameter).

Schnellreferenz: Tag-Adressen-Spickzettel

Die folgende Tabelle fasst die am häufigsten verwendeten Tags an einem Ort zusammen, um sie während der SPS-Programmierung schnell nachschlagen zu können:

SPS-AdresseRichtungSignalnameVerwendung
I.Data[0].0Kamera → SPSTrigger ReadyVor dem Auslösen prüfen
I.Data[0].1Kamera → SPSTrigger AcknowledgeTrigger zurücksetzen, nachdem dieses HIGH wird
I.Data[0].2Kamera → SPSRecipe Switch AckRezeptanforderung zurücksetzen, nachdem dieses HIGH wird
I.Data[0].7Kamera → SPSOnline / Startup CompleteBestätigen, dass die Kamera gebootet ist
I.Data[1].0Kamera → SPSTrigger ErrorAuf Trigger-Fehler überwachen
I.Data[1].1Kamera → SPSRecipe Switch ErrorAuf Rezeptwechsel-Fehler überwachen
I.Data[1].6Kamera → SPSBusyKeine Befehle senden, solange HIGH
I.Data[2].0Kamera → SPSExposure CompleteBild aufgenommen
I.Data[2].1Kamera → SPSResult AvailablePass/Fail kann sicher gelesen werden
I.Data[2].2Kamera → SPSInspection PassHIGH = Pass, LOW = Fail
I.Data[8]--I.Data[9]Kamera → SPSCurrent Recipe IDRezept nach Wechsel verifizieren
I.Data[12]--I.Data[13]Kamera → SPSInspection IDErgebnisse mit Triggern korrelieren
O.Data[0].0SPS → KameraTrigger RequestHIGH halten, um auszulösen
O.Data[0].1SPS → KameraRecipe Switch RequestHIGH halten, um Rezept zu wechseln
O.Data[4]--O.Data[5]SPS → KameraRecipe IDGewünschte Rezeptnummer einstellen
O.Data[6]+SPS → KameraCustom DataBenutzerdefinierte Daten für Node-RED
I.Data[16]+Kamera → SPSROI Results / Custom DataROI-Ergebnisse oder benutzerdefinierte Node-RED-Ausgabe