Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

PLC-Kommunikationsdetails (EtherNet/IP)

Das OV10i Bildverarbeitungssystem unterstützt die Echtzeitkommunikation mit EtherNet/IP-basierten PLCs. Dieser Leitfaden erklärt, wie Sie zyklische I/O-Verbindungen konfigurieren, Datenstrukturen zuordnen und die Node-RED-Tools von Overview nutzen, um sowohl globale als auch ROI-spezifische Inspektionsergebnisse abzurufen.

Video-Anleitung

Sehen Sie dieses Thema in Aktion: Auto-Integration Builder

hinweis

Grundlegende Anweisungen zur Verbindung finden Sie unter Verbindung zum PLC (EtherNet/IP, PROFINET).


Überblick​

Der OV10i fungiert als EtherNet/IP-Adapter, während Ihr 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 jede Richtung
  • Benutzerdefinierte Datenverarbeitung – Lesen/Schreiben von Node-RED-Daten als Teil des aktiven Rezepts

Input Assembly (OV10i → PLC)​

Das Input Assembly enthält die Daten, die der OV10i in jedem Zyklus an den PLC sendet. Dies umfasst Systemstatus, Inspektionsergebnisse, Rezeptinformationen und optionale ROI-Aufschlüsselungen.

Byte- und Bit-Layout des OV10i Input Assembly

Output Assembly (PLC → OV10i)​

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

Byte- und Bit-Layout des OV10i Output Assembly

Timing- und Handshake-Verhalten​

EtherNet/IP Triggering Timing Diagram

Unterstützung benutzerdefinierter Daten​

Der OV10i kann zusätzliche benutzerdefinierte Daten als Teil Ihres Node-RED-Flows akzeptieren oder zurückgeben.

PLC → OV10i​

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

OV10i → PLC​

  • Rückgabe berechneter Werte, Messungen, Zeitstempel oder bedingter Ausgaben

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

ROI-Ergebnisaufschlüsselung (nur Klassifizierungsrezepte)​

Für Klassifizierungsrezepte können Sie dem PLC ROI-spezifische Ergebnisse mithilfe des benutzerdefinierten Node-RED-Knotens von Overview bereitstellen: Format data for PLC.

Funktionsweise:​

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

Format Data for PLC Node-RED Flow Beispiel

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

  • Unterstützt bis zu 4 ROIs pro Inspektion

  • Jedes ROI enthält:

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

Der Format Data for PLC-Knoten funktioniert nur mit Klassifizierungsrezepten.

Byte- und Bit-Layout des OV10i Output Assembly


Referenz der Standard-PLC-Tags​

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

Standard-Tags in der Kamera-UI anzeigen​

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

Input Assembly Tags (Kamera → 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-Anfrage gesendet wird.0 (wird nach dem Start HIGH)
1I.Data[0].1Trigger AcknowledgeBOOLKamera hat die Trigger-Anfrage empfangen und akzeptiert.0
2I.Data[0].2Recipe Switch AcknowledgeBOOLKamera hat die Rezeptwechsel-Anfrage empfangen und abgeschlossen.0
7I.Data[0].7Online / Startup CompleteBOOLKamera hat den Bootvorgang abgeschlossen und ist online.0 (wird nach dem Boot HIGH)

Byte 1 -- Fehler- und Status-Flags​

BitPLC Tag-AdresseTag-NameDatentypBeschreibungStandardwert
0I.Data[1].0Trigger ErrorBOOLWährend des Trigger-Zyklus ist ein Fehler aufgetreten. Wird bis zum Zurücksetzen gehalten.0
1I.Data[1].1Recipe Switch ErrorBOOLBeim Rezeptwechsel ist ein Fehler aufgetreten. Wird bis zum Zurücksetzen gehalten.0
6I.Data[1].6BusyBOOLKamera verarbeitet gerade (laufende Inspektion oder Rezeptwechsel). Senden Sie keine neuen Befehle, solange HIGH.0

Byte 2 -- Inspektionsergebnis-Flags​

BitPLC Tag-AdresseTag-NameDatentypBeschreibungStandardwert
0I.Data[2].0Exposure CompleteBOOLDie Bildbelichtung ist 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]ReservedBYTEReserviert für zukünftige Nutzung.0x00
4I.Data[4]ReservedBYTEReserviert für zukünftige Nutzung.0x00
5I.Data[5]ReservedBYTEReserviert für zukünftige Nutzung.0x00
6--7I.Data[6]--I.Data[7]ReservedBYTEReserviert für zukünftige Nutzung.0x00

Bytes 8--9 -- Aktuelle 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 den Abschluss eines Rezeptwechsels zu überprüfen.0

Bytes 10--11 -- Reserved​

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
10--11I.Data[10]--I.Data[11]ReservedBYTEReserviert für zukünftige Verwendung.0x00

Bytes 12--13 -- Inspection ID​

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
12--13I.Data[12]--I.Data[13]Inspection IDUINT (16-bit)Fortlaufender 16-Bit-Zähler, der mit jeder Inspektion inkrementiert wird. Dient zur Zuordnung von Ergebnissen zu bestimmten Triggern.0

Bytes 14--15 -- Reserved​

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
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 AddressTag NameData TypeDescriptionDefault Value
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 gefüllt. Andernfalls steht er für benutzerdefinierte Daten aus Node-RED-Flows zur Verfügung.0x00

Output Assembly Tags (PLC → Kamera)​

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

Byte 0 -- Control Flags​

BitPLC Tag AddressTag NameData TypeDescriptionDefault Value
0O.Data[0].0Trigger RequestBOOLAuf HIGH setzen, um eine Inspektion auszulösen. Halten, bis Trigger Acknowledge (I.Data[0].1) auf HIGH geht, dann zurücksetzen.0
1O.Data[0].1Recipe Switch RequestBOOLAuf HIGH setzen, um einen Rezeptwechsel zur ID in O.Data[4] anzufordern. Halten, bis Recipe Switch Ack (I.Data[0].2) auf HIGH geht, dann zurücksetzen.0

Bytes 1--3 -- Reserved​

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
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 AddressTag NameData TypeDescriptionDefault Value
4--5O.Data[4]--O.Data[5]Recipe IDUINT (16-bit)Die Rezept-ID, zu der gewechselt werden soll. Schreiben Sie die gewünschte Rezeptnummer hier, bevor Sie das Recipe Switch Request Bit 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, Teile-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 stellt ein Byte (oder einen Byte-Bereich) dar, und jede Spalte stellt eine Bitposition dar (Bit 7 links, Bit 0 rechts).

Input Assembly Bit Map (Kamera → 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 → Camera)​

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 Detail (Bytes 16--55)​

Wenn der Format Data for PLC Node-RED Block mit Klassifizierungsrezepten verwendet wird, werden die Bytes 16+ des Input Assembly mit strukturierten Aligner- und ROI-spezifischen Daten wie folgt gefü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)Erkannter Winkel relativ zur Vorlage.
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 für die Klassifizierung dieser ROI (0--65535).
+4 bis +7ReservedBYTEReserviert für zukünftige ROI-spezifische Daten.

ROI-Startadressen:

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]

Buffer-Konfiguration​

Anzeigen der Standard-Tags in der Kamera-UI​

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

  1. Öffnen Sie die Web-Oberfläche der Kamera.
  2. Navigieren Sie im linken Menü zu Industrial Ethernet.
  3. Wählen Sie Ihr Protokoll (EtherNet/IP oder PROFINET) aus.
  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- oder GSDML-Datei (die auch die Standard-Assembly-Struktur kodiert)

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

Erstellen eines benutzerdefinierten Datenpuffers​

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

  1. Öffnen Sie Node-RED über die Web-Oberfläche der Kamera (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 Klassifizierungs-ROI-Ergebnisse automatisch in das strukturierte Layout, beginnend bei Byte 16 des 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-Puffer mit dem gewünschten Byte-Layout zu erstellen.
  2. Verbinden Sie ihn mit dem Node "Send Data to PLC".
  3. Ihre benutzerdefinierten Bytes füllen das Input Assembly ab Byte 16.
  4. Lesen Sie auf der PLC-Seite die entsprechenden Adressen I.Data[16] bis I.Data[256].

Ändern von Tag-Zuweisungen​

Die Kern-Tags (Bytes 0--15 des Input Assembly und Bytes 0--5 des Output Assembly) sind durch die Kamera-Firmware fest vorgegeben 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 mithilfe von Function-Nodes beliebige Daten schreiben.
  • Output Assembly Bytes 6--256: Werden von Node-RED gelesen. Sie können beliebige Daten von der PLC in diese Bytes schreiben und sie dann in Ihrem Node-RED-Flow über die entsprechenden Input-Nodes auslesen. Dies ist nützlich, um Seriennummern, Chargen-IDs, Schwellenwerte oder andere Parameter von der PLC an die Kamera zu übergeben.

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-Data-Nodes, um diese Bytes auszulesen.
  3. Verwenden Sie die Werte in Ihrer Flow-Logik (z. B. Schwellenwerte, Seriennummern, bedingte Parameter).
tipp

Eine Schritt-für-Schritt-Anleitung zum Senden von String-Daten von einer PLC an die Kamera finden Sie unter Send Custom Data from PLC to Camera.

Kurzreferenz: Tag-Adressen-Spickzettel​

Die folgende Tabelle fasst die am häufigsten verwendeten Tags an einem Ort zum schnellen Nachschlagen während der PLC-Programmierung zusammen:

PLC-AdresseRichtungSignalnameVerwendung
I.Data[0].0Kamera → PLCTrigger ReadyVor dem Triggern prüfen
I.Data[0].1Kamera → PLCTrigger AcknowledgeTrigger zurücksetzen, nachdem dies auf HIGH geht
I.Data[0].2Kamera → PLCRecipe Switch AckRezeptanforderung zurücksetzen, nachdem dies auf HIGH geht
I.Data[0].7Kamera → PLCOnline / Startup CompleteBestätigen, dass die Kamera hochgefahren ist
I.Data[1].0Kamera → PLCTrigger ErrorAuf Trigger-Fehler überwachen
I.Data[1].1Kamera → PLCRecipe Switch ErrorAuf Rezeptumschalt-Fehler überwachen
I.Data[1].6Kamera → PLCBusyKeine Befehle senden, solange HIGH
I.Data[2].0Kamera → PLCExposure CompleteBild aufgenommen
I.Data[2].1Kamera → PLCResult AvailablePass/Fail kann sicher gelesen werden
I.Data[2].2Kamera → PLCInspection PassHIGH = Pass, LOW = Fail
I.Data[8]--I.Data[9]Kamera → PLCCurrent Recipe IDRezept nach Umschaltung verifizieren
I.Data[12]--I.Data[13]Kamera → PLCInspection IDErgebnisse mit Triggern korrelieren
O.Data[0].0PLC → KameraTrigger RequestHIGH setzen zum Triggern
O.Data[0].1PLC → KameraRecipe Switch RequestHIGH setzen zum Rezeptwechsel
O.Data[4]--O.Data[5]PLC → KameraRecipe IDGewünschte Rezeptnummer setzen
O.Data[6]+PLC → KameraCustom DataBenutzerdefinierte Daten für Node-RED
I.Data[16]+Kamera → PLCROI Results / Custom DataROI-Ergebnisse oder benutzerdefinierte Node-RED-Ausgabe