Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

PLC-Kommunikationsdetails (EtherNet/IP)

Das OV10i Vision-System unterstützt die Echtzeit-Kommunikation mit EtherNet/IP-basierten PLCs. Dieser Leitfaden erklärt, wie zyklische I/O-Verbindungen konfiguriert, Datenstrukturen zugeordnet und die Node-RED-Tools von Overview verwendet werden, um sowohl globale als auch ROI-spezifische Inspektionsergebnisse abzurufen.

Video-Anleitung

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

hinweis

Grundlegende Anweisungen zum Verbindungsaufbau finden Sie unter Mit PLC verbinden (EtherNet/IP, PROFINET).


Überblick

Das OV10i 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 für Zykluszeiten von 20–10.000 ms
  • Datendurchsatz – Bis zu 256 Bytes in jede Richtung
  • Verarbeitung benutzerdefinierter Daten – Lesen/Schreiben von Node-RED-Daten als Teil des aktiven Rezepts

Input Assembly (OV10i → PLC)

Das Input Assembly enthält Daten, die in jedem Zyklus vom OV10i an die PLC gesendet werden. Dazu gehören 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 Steuerungsdaten, die von der PLC an das 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

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

PLC → OV10i

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

OV10i → PLC

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

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 pro ROI Ergebnisse an die PLC weitergeben, indem Sie den benutzerdefinierten Node-RED-Node von Overview verwenden: Format data for PLC.

So funktioniert es:

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

Format Data for PLC Node-RED Flow Beispiel

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

  • Unterstützt bis zu 4 ROIs pro Inspektion

  • Jede ROI enthält:

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

Der Format Data for PLC Node funktioniert nur mit Klassifizierungsrezepten.

Byte- und Bit-Layout des OV10i Output Assembly


Standard-Referenz für PLC-Tags

Dieser Abschnitt bietet 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 Bit-Map bei der Konfiguration Ihres PLC-Programms.

Anzeigen der Standard-Tags in der Kamera-Benutzeroberfläche

  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 der Größen der Eingangs-/Ausgangsdaten und des Verbindungsstatus.
  5. Das auf dieser Seite angezeigte Standard-Tag-Layout entspricht den nachstehenden 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-Anforderung gesendet wird.0 (wechselt nach dem Start auf HIGH)
1I.Data[0].1Trigger AcknowledgeBOOLKamera hat die Trigger-Anforderung empfangen und angenommen.0
2I.Data[0].2Recipe Switch AcknowledgeBOOLKamera hat die Recipe-Switch-Anforderung empfangen und abgeschlossen.0
7I.Data[0].7Online / Startup CompleteBOOLKamera hat den Bootvorgang abgeschlossen und ist online.0 (wechselt nach dem Booten auf 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 gehalten, bis er zurückgesetzt wird.0
1I.Data[1].1Recipe Switch ErrorBOOLWährend des Recipe-Switchs ist ein Fehler aufgetreten. Wird gehalten, bis er zurückgesetzt wird.0
6I.Data[1].6BusyBOOLKamera verarbeitet derzeit (Inspektion läuft oder Recipe-Switch). 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]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 -- 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 Recipes. Vergleichen Sie diesen Wert mit O.Data[4], um zu prüfen, ob ein Recipe-Switch abgeschlossen wurde.0

Bytes 10--11 -- Reserved

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

Bytes 12--13 -- Inspection ID

Byte(s)PLC Tag-AdresseTag-NameDatentypBeschreibungStandardwert
12--13I.Data[12]--I.Data[13]Inspection IDUINT (16-bit)Rollierender 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]ReservedBYTEFür zukünftige Verwendung reserviert.0x00

Bytes 16--256 -- ROI Results Assembly / Benutzerdefinierte Daten aus 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 gefüllt. Andernfalls für benutzerdefinierte Daten aus Node-RED-Flows verfügbar.0x00

Output Assembly Tags (PLC → Kamera)

Diese Tags werden vom 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 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-AdresseTag-NameDatentypBeschreibungStandardwert
1O.Data[1]ReservedBYTEFür zukünftige Verwendung reserviert.0x00
2O.Data[2]ReservedBYTEFür zukünftige Verwendung reserviert.0x00
3O.Data[3]ReservedBYTEFür zukünftige Verwendung reserviert.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. Schreiben Sie die gewünschte Rezeptnummer hier, bevor Sie das Bit Recipe Switch Request setzen.0

Bytes 6--256 -- Benutzerdefinierte Daten für Node-RED

Byte(s)PLC Tag-AdresseTag-NameDatentypBeschreibungStandardwert
6--256O.Data[6]--O.Data[256]Custom Data for Node-REDBYTE[]Benutzerdefinierte Daten, die von Node-RED-Flows gelesen werden 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 Bit-Position 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 Node-RED-Block Format Data for PLC mit Klassifizierungsrezepten verwendet wird, werden die Bytes 16+ des Input Assembly mit strukturierten Aligner- und ROI-spezifischen Daten wie folgt befüllt:

Aligner-Bereich (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 hat bestanden, LOW = diese ROI ist fehlgeschlagen.
+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

Standard-Tags in der Kamera-UI anzeigen

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

  1. Öffnen Sie die Webschnittstelle der Kamera.
  2. Gehen Sie im linken Menü zu Industrial Ethernet.
  3. Wählen Sie Ihr Protokoll (EtherNet/IP oder PROFINET).
  4. Die Seite zeigt:
    • Verbindungsstatus und Geräteinformationen
    • Größen der Input- und Output-Assemblies (bis zu 256 Bytes in jede 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 Descriptor-Dateien, wie viele Bytes pro Zyklus ausgetauscht werden.

Erstellen eines benutzerdefinierten Datenpuffers

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

  1. Öffnen Sie Node-RED über die Webschnittstelle 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 SPS
    • Big-endian für Siemens SPS
  4. Der Block formatiert automatisch die Klassifizierungs-ROI-Ergebnisse 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-Puffer mit dem gewünschten Byte-Layout zu erstellen.
  2. Verbinden Sie ihn mit dem Node "Send Data to PLC".
  3. Ihre benutzerdefinierten Bytes belegen die Input-Assembly ab Byte 16.
  4. Lesen Sie auf der SPS-Seite die entsprechenden Adressen I.Data[16] bis I.Data[256].

Tag-Zuordnungen ändern

Die Kern-Tags (Bytes 0–15 der Input-Assembly und Bytes 0–5 der Output-Assembly) sind durch die Kamera-Firmware fest definiert und können nicht neu zugeordnet 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: Wird durch 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 mittels Function-Nodes schreiben.
  • Output-Assembly Bytes 6–256: Wird von Node-RED gelesen. Sie können beliebige Daten von der SPS in diese Bytes schreiben und sie dann in Ihrem Node-RED-Flow mit den entsprechenden Input-Nodes lesen. Dies ist nützlich, um Seriennummern, Lot-IDs, Schwellenwerte oder andere Parameter von der SPS an die Kamera zu senden.

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

So übergeben Sie benutzerdefinierte Daten von der SPS an Node-RED:

  1. Schreiben Sie in Ihrem SPS-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. 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 SPS 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 zusammen, um sie während der PLC-Programmierung schnell nachschlagen zu können:

PLC-AdresseRichtungSignalnameVerwendung
I.Data[0].0Kamera → PLCTrigger ReadyVor dem Triggern prüfen
I.Data[0].1Kamera → PLCTrigger AcknowledgeTrigger zurücksetzen, nachdem dieses Signal auf HIGH geht
I.Data[0].2Kamera → PLCRecipe Switch AckRezeptanforderung zurücksetzen, nachdem dieses Signal auf HIGH geht
I.Data[0].7Kamera → PLCOnline / Startup CompleteBestätigt, dass die Kamera hochgefahren ist
I.Data[1].0Kamera → PLCTrigger ErrorÜberwachung auf Trigger-Fehler
I.Data[1].1Kamera → PLCRecipe Switch ErrorÜberwachung auf Rezeptwechsel-Fehler
I.Data[1].6Kamera → PLCBusyKeine Befehle senden, solange HIGH
I.Data[2].0Kamera → PLCExposure CompleteBild wurde erfasst
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 Wechsel verifizieren
I.Data[12]--I.Data[13]Kamera → PLCInspection IDErgebnisse mit Triggern korrelieren
O.Data[0].0PLC → KameraTrigger RequestHIGH halten, um zu triggern
O.Data[0].1PLC → KameraRecipe Switch RequestHIGH halten, um Rezept zu wechseln
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