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.
Diese Fortsetzung des Techtipps "IDS NXT Kommunikation" und geht insbesondere auf die neuen Kommunikationsmöglichkeiten von IDS NXT Kameras über den OPC UA Server ein. Wir zeigen, wie Sie über einen OPC UA Client gespeicherte Kameraeinstellungen verwenden, eine Inferenzaufgabe starten und Ergebnisse abfragen können. Den Beispielworkflow können Sie mit wenig Vorbereitung vollständig nachvollziehen. Sie benötigen nur eine funktionsfähige IDS NXT Kamera und einen PC im selben Netzwerk.
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.
Downloads
Das IDS NXT OPC UA Plugin finden Sie im Downloadbereich der IDS Webseite. Wählen Sie dazu Ihr Kameramodell aus und öffnen Sie die Kategorie "IDS NXT Experience Kit > Vision Apps". Installiert wird das Plugin wie jede andere Vision App über das IDS NXT cockpit.
Um das Plugin verwenden zu können, muss auf der Kamera IDS NXT OS 1.1 oder höher installiert sein. Im weiteren Verlauf des Techtipps demonstrieren wir eine Inferenzaufgabe, für die Sie die "Classifier" Vision App benötigen.
Download "IDS NXT OS"
Download "OPC UA Plugin"
Download "Classifier Vision App"
Anleitung
Eine Anleitung zum Update des Betriebssystems Ihrer Kamera lesen Sie in der Schnellstart-Anleitung "setup-ids-nxt-rio.pdf" im Kapitel "Firmware aktualisieren".
Die Plugin Dokumentation erklärt den Funktionsumfang des Plugins, die Verwendung über das IDS NXT cockpit und listet die vollständige REST API.
IDS NXT Schnellstart-Anleitung
OPC UA Server Plugin Dokumentation
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.
Downloads
Den OPC UA Client "UaExpert®" bekommen Sie nach einmaliger Registrierung kostenlos auf der Webseite der Unified Automation GmbH.
Download "UaExpert®"
IDS NXT als OPC UA Vision System verwenden
Tipp: IDS NXT OPC UA Tutorial-Video
Unser Tutorial-Video "IDS NXT - Einrichten der OPC UA Kommunikation" zeigt die nachfolgenden Schritte im Schnelldurchlauf und gibt Ihnen einen kurzen Einblick in die Möglichkeiten des Plugins anhand der Kommunikation mit dem OPC UA Client "UA Expert".
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.
Anleitung
Eine Dokumentation zur Verwendung des Classifiers finden Sie ebenfalls im Downloadbereich zu Ihrer Kamera.
Classifier Vision App Dokumentation
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.
Anleitung
Lesen Sie dazu Kapitel "Aktionen" in der OPC UA Server Plugin Dokumentation.
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.
IDS NXT Vision System -- Companion Specification nach OPC UA Machine Vision
Im Knoten "Vision System" im "Adress Space" des UaExpert® werden die standardisierten Attribute des IDS NXT Vision Systems angezeigt, die nach der Companion Spezifikation "OPC Machine Vision" im OPC UA Server der Kamera implementiert sind.
Damit steuern Sie im weiteren Verlauf die vorbereitete Inferenzaufgabe der Kamera vollständig über OPC UA.
Ab Version v1.6 des OPC UA Clients "UaExpert®" muss bei allen Aufrufen von Methoden mit numerische Eingangsargumenten zwingend eine Zahl in die entsprechenden Felder eingetragen werden. Aufrufe mit leeren Feldern sind ungültig und resultieren in einer entsprechenden Fehlermeldung. Unsere Screenshots und Videos wurden mit einer älteren Version erzeugt!
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.
Generell können mehrere Rezepte gleichzeitig aktiv sein. Ein Rezept kann aber nur dann aktiviert werden, wenn gerade kein anderes mit der selben Vision App vorbereitet ist.
Sie können prüfen, ob bereits ein Rezept aktiv ist, indem Sie die Funktion GetRecipeListFiltered mit dem Eingabewert IsPrepared = 1 (TRUE_1) ausführen. Ist ResultCount != 0, ist bereits ein Rezept vorbereitet. Benutzen Sie dann zuerst die Funktion UnprepareRecipe.
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.
Zusammenfassung
Mit digitalen Ein- und Ausgängen, RS-232 und einem REST Webservice können IDS NXT Kameras und ihre KI-Fähigkeiten bereits sehr flexibel in Anwendungen eingesetzt werden. (Lesen Sie dazu den ersten Teil des Techtipps "IDS NXT Kommunikation").
Durch den OPC UA Server verwandeln Sie Ihre IDS NXT Inferenzkameras jetzt tatsächlich mit wenigen Schritten in industrietaugliche Vision-Sensoren, die in jede moderne Fabrikautomation integriert werden können.
Der Techtipp veranschaulicht, wie schnell und einfach die standardisierten Attribute eines Machine Vision Systems, nach Companion Spezifikation "OPC Machine Vision", über das IDS NXT cockpit bereitgestellt werden. Dazu ist keinerlei Vorwissen oder Programmierung notwendig. Speichern Sie einfach vorbereitete Kamerakonfigurationen und KI-Aufgaben als Rezepte in der Kamera ab. So vorbereitet können Sie die Fähigkeiten der IDS NXT Vision Systeme mit jedem OPC UA Client kontrollieren und einsetzen. Die Kameras liefern pro Job ein Event mit Inferenzergebnissen, die direkt von Steurerungssystemen für nachfolgende Aufgaben verwendet werden können.
Ausgestattet mit der OPC UA Kommunikation erweitern IDS NXT Inferenzkameras Ihre Fabrikautomation sehr einfach um die Fähigkeit, Objekte zu erkennen und zu klassifizieren. Die Integration Künstlicher Intelligenz in der Industrie war noch nie einfacher. Wenn Sie mehr über OPC UA und die Integration in IDS NXT Kameras wissen möchten, lesen Sie unseren Fachbeitrag "Inferenz nach Rezept". In der Knowledge Base finden Sie weiterführende Informationen. Mit speziellen Fragen können Sie sich gerne direkt mit unserer Systemberatung in Verbindung setzen.
Tipp: IDS NXT Webinar-Video
In unserem Webinar-Video "Integration von IDS NXT in die Fertigungsautomation" wird die Kommunikation über die IDS NXT Kameraschnittstellen mit Hilfe der Python Beispielcodes und den Jupiter-Notebooks demonstriert.