IDS NXT OPC UA Kommunikation

IDS NXT Kameras mittels OPC UA in die Fertigungsautomation integrieren

Durch ein Software Update erhalten IDS NXT Kameras einen weiteren zukunftsweisenden Baustein für die nahtlose Integration in die Fabrikautomatisierung. Ein Plugin integriert einen OPC UA Server in den Kameras. Dadurch können Sie Ihre KI-Fähigkeiten über eine "Rezeptesammlung" im Netzwerk zur Verfügung stellen und Ergebnisse ohne Umweg aus der Feldebene direkt an die Maschinen- und Steuerungsebene kommunizieren. Kamerakonfigurationen und Vision App-basierte Inferenzaufgaben werden dadurch im Industrieumfeld in einem für alle OPC UA Clients kompatiblen und lesbaren Format zugänglich. OPC UA ist damit für Ihre IDS NXT Kameras das ideale Industrie 4.0 Addon.

OPC UA

OPC UA ist eine Schlüsseltechnologie. Sie vereinheitlicht die Kommunikation zwischen Clients und Servern. Zudem wird damit festgelegt, wie sich Geräte (Server) gegenüber Clients selbst beschreiben bzw. welche Informationen und welche Services sie anbieten. Dieser einheitliche Austausch über alle physikalischen Layer und Ethernet-basierten Feldbusse hinweg bringt eine enorme Vereinfachung des Engineering-Aufwands, wenn Daten nicht mehr über verschiedene Protokolle und Gateways gelesen, konvertiert und synchronisiert werden müssen. Das spart Zeit und Kosten in der Automatisierung und stellt eine schnelle Integration in die Industrieanlagen sicher. Die hersteller- und branchenübergreifende Kommunikationstechnologie bringt mit der OPC Machine Vision Companion Spezifikation zudem die ideale Schnittstellenerweiterung für IDS NXT Kameras, um KI-basierte "Rezepte" auf einfache Weise in der Fabrikautomation einzusetzen.

IDS NXT OPC UA Server Plugin

Durch das OPC UA Server Plugin werden IDS NXT Kameras zu OPC UA Servern, die von jedem OPC UA Client angesprochen werden können. Bildverarbeitungsaufgaben werden durch das Plugin in Funktionsbausteinen, sogenannten "Rezepten", gekapselt. Ebenso werden notwendige und manchmal sehr tiefgehende Kameraeinstellungen für spezielle Anwendungen in Konfigurationsdatensätzen zusammengefasst und abgespeichert. Für diese Maßnahmen stellt das Plugin über die REST Schnittstelle entsprechende Funktionen zur Verfügung. Sehr einfach verwenden Sie diese über die GUI im IDS NXT cockpit. Bildverarbeitungsergebnisse können von OPC UA Clients über das Result Management abgefragt oder als Event abonniert werden. Allgemeine Informationen zum Gerät, wie z. B. Gerätename oder Seriennummer werden über das Device-Informationsmodell zur Verfügung gestellt. Die OPC UA Kommunikation funktioniert wie eine zusätzliche Kameraschnittstelle, die nach Start des OPC UA Servers im Ethernet-basierten Netzwerk zur Verfügung steht.

OPC UA Client

Über das OPC UA Plugin können IDS NXT Kameras mit jedem OPC UA Client verbunden werden. Das kann beispielsweise eine proprietäre Software einer Maschinensteuerung oder eines Managementsystems sein. Mithilfe von OPC UA Entwicklungsbibliotheken für unterschiedliche Programmiersprachen wie beispielsweise C++, C# oder Python können Sie auch Ihren eigenen OPC UA Client implementieren. Da wir hier zeigen wollen, wie einfach und schnell die Kamera in bestehende OPC UA Netzwerke integriert werden kann, verwenden wir zur Demonstration des OPC UA Plugins den bekannten OPC UA Client "UaExpert®". Der vollausgestattete Client bietet einen großen Funktionsumfang und ein GUI, mit dem sich die Möglichkeiten des IDS NXT OPC UA Servers einfach demonstrieren lassen. Er unterstützt dazu OPC UA Features wie DataAccess, Events, und den Aufruf von OPC UA Methoden.

IDS NXT als OPC UA Vision System verwenden

Um die Steuerung der IDS NXT Kamera über OPC UA zu demonstrieren, beschreibt dieser Techtipp einen beispielhaften KI-Bildverarbeitungsworkflow, den Sie mit Ihrer IDS NXT Kamera und wenigen Objekten (Kugelschreiber, Lineal, Radiergummi, Schlüssel, usw.) einfach selbst nachvollziehen können. Führen Sie dazu einfach die nachfolgenden Anweisungen Schritt für Schritt durch.

1) Inferenzaufgabe einrichten

  • Für dieses Beispiel nutzen wir die "Classifier" Vision App mit dem vorinstallierten neuronalen Netzwerk (CNN) "ImageNet1000". Installieren und starten Sie die App über den "VApp Manager im IDS NXT cockpit.
  • Der Classifier erkennt durch das vortrainierte ImageNet1000 viele Objekte, wie beispielsweise Kugelschreiber, Schlüssel, Visitenkarten. Legen Sie beliebige Objekte unter Ihre IDS NXT Kamera und richten die Bildaufnahme im Freerun-Betrieb so ein, dass Ihre Objekte vollständig und mit geeigneten Einstellungen (Farbe, Schärfe, Belichtung, usw.) abgebildet werden.
  • Benutzen Sie ROIs für die Objekte, die Sie identifizieren wollen.
    Die Inferenz-Ergebnisse der Klassifikation jeder Bildaufnahme werden an den ROIs und im Ergebnisbereich mit der jeweils entsprechenden Wahrscheinlichkeit angezeigt.
    In unserem Fall werden Kugelschreiber (68%), Anspitzer (100%) und Radiergummi (98%) erkannt.

2) OPC UA Server starten

  • Zur Bereitstellung der OPC Kommunikation seitens der Kamera müssen Sie nichts programmieren. Installieren (1) und starten (2) Sie einfach das OPC UA Server Plugin über den "VApp Manager" im IDS NXT cockpit auf Ihrer IDS NXT Kamera.
  • Den OPC UA Server können Sie über die Aktionen des Plugins starten (1) und stoppen (2). Standardmäßig wird der Server beim Start des Plugins automatisch (3) mit gestartet.

3) OPC UA Konfiguration und Rezept erstellen

  • Das Anlegen und Speichern von Konfigurationen auf der IDS NXT Kamera über des OPC UA Plugin geht im IDS NXT cockpit leicht von der Hand.
  • Geben Sie einfach den aktuellen Kameraeinstellungen (Configuration name) und der Inferenzaufgabe mit dem Classifier (Recipe name) einen Namen und speichern Konfiguration und Rezept über die entsprechenden Aktionen. Damit haben Sie die OPC UA Einrichtung der Kamera über das Cockpit bereits abgeschlossen.

4) OPC UA Client - Server Verbindung aufbauen

  • Installieren und starten Sie den OPC UA Client "UaExpert®".
  • Um den OPC UA Server der Kamera zu verbinden, klicken Sie auf das (Add Server) in der Menüleiste. Wechseln Sie auf die Registerkarte "Advanced".
  • Geben Sie der Verbindung einen "Configuration Name"
  • "Endpoint URL" des Servers angeben (Bsp. "opc.tcp://169.254.173.231:4840")
    • Protokoll: opc.tcp
    • IP-Adresse der Kamera
    • OPC UA Server Port: 4840
  • Gewünschte "Security Policy" auswählen (unterstützt werden: None, Basic128Rsa15, Basic256, Basic256Sha256)
  • "Message Security Mode" auswählen (None, Sign, Sign&Encrypt)
  • Bei den "Authentication Settings" tragen Sie die Zugangsdaten Ihrer IDS NXT Kamera ein. (z.B. admin oder service Benutzer)
  • Jetzt können Sie sich mit dem OPC UA Server verbinden: "Connect"

5) Geräteinformationen abfragen / ändern

  • Um die Serververbindung zu testen können Sie im Fenster "Adress Space" durch das Informationsmodell der Kamera navigieren. Ändern Sie zum Beispiel im UaExpert® den Gerätenamen, wird dieser auch im IDS NXT cockpit aktualisiert.
  • Desweiteren können Sie über das "Data Access View" Status- und Statistikparameter abonnieren, um deren Änderungen zu verfolgen. Ziehen Sie beispielsweise den Bildzähler "ImageTotal" per Drag'n Drop ins Fenster, wird sich dessen Wert dynamisch mit jedem neuen Bildeinzug der Kamera erhöhen.
  • Zum Zurücksetzten des Bildzählers führen Sie den "Call" im Kontextmenü der Methoden "ResetAll" aus. Daraufhin beginnt der abonnierte Bildzähler wieder bei "0" zu zählen.

6) Kamerakonfiguration aktivieren

  • Rufen Sie zunächst mit einem Call der Funktion GetConfigurationList eine Liste der auf der Kamera gespeicherten Konfigurationen ab.
    ResultCount zeigt uns "1" verfügbare Konfiguration mit der InternalId "conf_classifier.json".
  • Mit der Funktion ActivateConfiguration definieren Sie die aktuell gültige Konfiguration, deren gespeicherte Parameter dann in der Kamera eingestellt werden. Setzen Sie für den Call die entsprechende InternalId als Eingabewert (Id).
  • Kontrollieren können Sie die aktuell aktive Konfiguration über den Knoten Active Configuration. Dort sollte in den Attributen die Id "conf_classifier.json" auftauchen.

7) Aufgabe (Rezept) vorbereiten

Ebenso verfahren wir jetzt mit der vorab gespeicherten Bildverarbeitungsaufgabe der Kamera.

  • Ein Call der Funktion GetRecipeListFiltered mit dem Eingabewert IsPrepared = 2 (DONTCARE_2) liefert "1" gespeichertes Rezept als ResultCount. In unserem Fall das gespeicherte Rezept mit der Id "recipe_classifier_imagenet.json"
  • Mit der Funktion PrepareRecipe bereiten Sie nun dieses Rezept als aktive Bildverarbeitungsaufgabe vor, indem Sie die zuvor abgefragte Id als Eingabewert "InternalIdIn" setzen.

8) Ergebnis Event abonnieren

Die Kamera ist nun über den OPC UA Client vollständig vorbereitet. Bevor Sie die Kameraaufgabe ausführen, muss noch das Ergebnis-Event abonniert werden.

  • Fügen Sie dazu ein EventView hinzu ...
  • und ziehen Sie das VisionSystem der Kamera per Drag 'n Drop in diese Ansicht.
  • Aktivieren Sie die Felder der SimpleEvents und ConditionTypes, um alle Details zu erhalten.
  • Bestätigen Sie die Auswahl über den Apply-Button.

9) Aufgabe (Rezept) ausführen - Event-Ergebnis auswerten

Jetzt lassen wir die Kamera, ihre Aufgabe genau einmal ausführen.

  • Rufen Sie dazu die Methode StartSingleJob einmal auf.
  • Im EventView wird ein ResultReadyEvent von der Kamera empfangen.
  • In den Event-Details sehen wir die Inferenzergebnisse der drei festgelegten ROIs (ballpoint, pencil_sharpener, rubber_eraser) mit den jeweiligen Wahrscheinlichkeiten der Klassifikation.