OPC UA-Server – CODESYS bereit für I4.0

OPC UA

Die OPC UA-Server Funktionalität in CODESYS spielt im Rahmen der Digitalisierung eine wichtige Rolle. Denn für Industrie 4.o und IoT (Internet of Things) ist die Vernetzung, vieler unterschiedlicher Systeme, eine Schlüsseltechnologie. Genau hier kann OPC UA mit einer standardisierten Verbindung, im industriellen Umfeld, die Daten aus Produktionsebene der Leit-/Unternehmensebene zur Verfügung stellen. Dabei verschwinden die Grenzen zwischen IT-Technologie und Produktionsebene und erfordern eine klare Kommunikationsstruktur. Hierzu bietet OPC UA als offener Standard genau die richtige Grundlage.

Funktionsumfang OPC UA-Server in CODESYS

Bereits mit der Standardinstallation der Control Win V3 erhaltet Ihr eine Soft-SPS mit einem OPC UA-Server. Wenn Ihr diesen in CODESYS aktiviert und euer Projekt auf die SPS überträgt, könnt ihr mit einem OPC UA-Client auf die freigegebenen Variablen der Steuerung zugreifen. Es ist sogar die Möglichkeit gegeben, den Zugriff auf die Variablen einzuschränken, und z.B. einzelne Variablen nur mit Lesefreigabe bereitzustellen.

Die Funktion des OPC UA-Server ist derzeit noch eingeschränkt, bietet aber die folgenden Funktionalitäten:

  • Iteration über die verschiedenen „Nodes“ (hier Variablen) und Anzeige von Attributen. Z.B. IdentifierType zur Ermittlung des Datentyps oder des Variablen Bezeichners.
  • Lese- und Schreibzugriff auf freigegebene Variablen
  • Verschlüsselte Kommunikation (Basic256SHA256)
  • OPC UA-Profil: Micro Embedded Device Server Profile – wird von der OPC Foundation als „deprecated“ beschrieben. Das Profil ist allerdings im CODESYS angegeben.
  • Beschreibung/Bereitstellen der CODESYS Applikation (Software Revision, Manufacturer, Tasks) über OPC UA-Server.
  • Event-Funktionalität mit Alarmliste bereitstellen (ob ein Event über eigenen CODE im IEC61131-3 ausgelöst werden kann ist mir leider noch nicht bekannt)
  • Keine Einschränkung bzgl. der übertragenen Variablen oder der Sessions angegeben. Die Performance ist hier abhängig vom jeweiligen Endgerät (Zielsystem)

OPC UA-Server in CODESYS aktivieren

Beginnen wir mit den einzelnen Schritten, die für die Einrichtung des OPC UA-Server in CODESYS notwendig sind. Als aller erstes werden wir ein neues Projekt mit der Soft-SPS CODESYS Control Win V3 anlegen. Sollten hierzu noch Fragen bestehen könnt Ihr die einzelnen Schritte gerne hier nachlesen.

Variablen hinzufügen

Anschließend fügen wir eine globale Variablenliste hinzu. Darin werden wir alle Variablen deklarieren, die über OPC UA bereitgestellt werden sollen.

Wähle Applikation ⇒ Kontextmenü öffnen (Rechtsklick) Objekt hinzufügen ⇒ Globale Variablenliste … ⇒ OK

Globale Variablenliste hinzufügen
Globale Variablenliste hinzufügen

Deklariert anschließend nun in dieser GVL einige Variablen (am besten verschiedene Datentypen) die Ihr über OPC UA bereitstellen wollt. Ich habe hier ein Beispiel für eine integer und eine string variable angefügt.

GVL - über OPC UA-Server bereitgestellte Variablen
GVL – über OPC UA-Server bereitgestellte Variablen

Als nächstes müssen wir in CODESYS die OPC UA-Funktionalität und die Bereitstellung der Variablen aktivieren. Wähle Applikation ⇒ Kontextmenü öffnen (Rechtsklick) Objekt hinzufügen ⇒ Symbolkonfiguration …

Symbolkonfiguration in CODESYS
Symbolkonfiguration in CODESYS

Im nachfolgenden Dialog (Symbolkonfiguration hinzufügen) müssen wir nun die OPC UA-Funktionalität aktivieren. Hierzu müsst Ihr einfach die passende Checkbox anklicken Hinzufügen

Dialog - Symbolkonfiguration
Dialog – Symbolkonfiguration

Im Editor für die Symbolkonfiguration seht Ihr zunächst einmal… NICHTS. Bevor Ihr die Variablen für OPC UA freigeben könnt, müsst Ihr (wie im eingeblendeten Hinweis) einmal das Projekt erstellen (siehe blaue Markierung).

Editor - Symbolkonfiguration
Editor – Symbolkonfiguration

Anschließen könnt Ihr, wie im abgebildeten Dialog, einige Variablen selektieren und über die OPC UA-Server Funktionalität bereitstellen. Über einen Klick auf die Icons in der Spalte – Zugriffsrechte könnt Ihr einstellen ob die Variable nur gelesen werden kann, oder ob Lese- und Schreibzugriff erlaubt ist.

Variablen über OPC UA bereitstellen
Variablen über OPC UA bereitstellen

ANMERKUNG: Vermutlich werden die Variablen nicht mit der GVL in der Liste auftauchen. Hier werden nur Variablen gelistet, die in CODESYS auch verwendet werden. Dazu müsst ihr einfach im PLC_PRG „sInfoMsg;“ und „uiCycleCounter;“ schreiben oder die Variablen in einem Programm verwenden.

Projekt auf Steuerung übertragen

Als nächstes müssen wir CODESYS mitteilen welche SPS wir verwenden möchten. Hierzu Doppelklick auf den obersten Geräteknoten Kommunikation Netzwerk durchsuchen.

Kommunikations-Einstellungen der CODESYS SPS
Kommunikations-Einstellungen der CODESYS SPS

Nach dem auswählen der SPS, ist euer Projekt nun bereit für den Download zur Steuerung. Das Projekt beinhaltet nur die notwendigen Basis-Objekte die für ein fehlerfreies Übersetzen bzw. Kompilieren erforderlich sind. Startet nun das Übersetzten mit der F11 Taste oder im Menü unter Erstellen Übersetzten. Anschließend Online Einloggen um den Download zur SPS zu starten.

Variablenzugriff mit OPC UA-Client (UaExpert)

Zum Testen benötigen wir nun einen OPC UA-Client. Ich empfehle euch den UaExpert. Das ist ein frei verfügbarer Client, der aus dem Internet (Download) heruntergeladen werden kann. Damit konnte ich erfolgreich eine Verbindung zu meinem OPC UA-Server meiner Control Win V3 herstellen.

Was sind die notwendigen Schritte? ⇒ UaExpert starten. Wenn Ihr das Programm zum ersten Mal ausführt, seht Ihr wahrscheinlich, folgende Meldung:

UaExpert - Zertifikat erstellen
UaExpert – Zertifikat erstellen

Hier werdet Ihr aufgefordert einmalig ein Zertifikat für die UaExpert Instanz zu erstellen. Dazu müsst Ihr einfach (wie im nachfolgenden Screenshot) die Felder ausfüllen und bestätigen.

UaExpert Zertifikat erstellen
UaExpert – Zertifikat erstellen

Wenn der Vorgang erfolgreich abgeschlossen wurde, erscheint das Hauptfenster von UaExpert. Darin werden wir nun die Verbindung zum OPC UA-Server in unserer CODESYS SPS konfigurieren.

Hier zu gehen wir wie folgt vor: Server Add wechselt im Dialog auf den Reiter „Advanced“ und gebt die URL zum Server ein opc.tcp://localhost:4840 (hier der localhost, da die Soft-SPS auf dem gleichen PC ausgeführt wird)

OPC UA-Server hinzufügen
OPC UA-Server hinzufügen

Anschließens müsst Ihr im Projektbaum den Server anwählen Projekt Servers CODESYS-BLOG und dann im Menü oben Server verbinden. Falls die Verbindung erfolgreich hergestellt werden konnte könnt Ihr, analog zum nächsten screenshot, den Projektbaum öffnen und eure Variablen aus CODESYS selektieren. Indem Ihr die Variable per Drag and Drop in den Bereich „Data Access View“ (Hauptfenster) verschiebt könnt Ihr den aktuellen Variablenwert online ansehen. Ändern könnt Ihr den Variablenwert durch doppelklicken auf das Feld „Value“.

UaExpert - Variablen Anzeige
UaExpert – Variablen Anzeige

Für all diejenigen unter euch die noch mehr Informationen erhalten wollen empfiehlt es sich einen Blick in die Attribute der Variable zu werfen. Hier könnt Ihr noch deutlich mehr Details ermitteln. Unter anderem den „Identifier“. Dieser ist nützlich, wenn ihr z.B. von einem anderen Client, auf CLI Basis zugreifen wollt.

OPC UA Attribute
OPC UA Attribute

Fazit

Mit OPC UA implementiert CODESYS einen offenen Standard der für die Digitalisierung eine optimale Grundlage darstellt. Denn im Rahmen der Digitalisierung spielt die Plattformübergreifende Vernetzung und Kommunikation der verschiedensten Komponenten eine Schlüsselrolle.

Genauso wichtig, wie das Übertragungsverfahren, ist allerdings die semantische Beschreibung der Daten. Das interpretieren der Daten, muss aufgrund der vielen unterschiedlichen Hersteller, ebenfalls klar geregelt werden. Hierzu gibt es im OPC UA Standard sogenannte Profile welche mit Metadaten genau diese Herstellerübergreifende Kommunikation unterstützen. Beide Kommunikationspartner erhalten über OPC UA, neben den Datenwerten, genauso die semantischen Informationen über die Bausteine bzw. die Architektur.

Das Thema Datensicherheit wird meistens unterschätzt. Eine sichere Übertragung ist aber gerade bei stark vernetzten Anlagen eine zwingende Anforderung. Gerade wenn das System über das Internet Daten austauscht gewinnt das Thema Datensicherheit eine enorme Bedeutung. Eine Arbeitsgruppe der OPC Foundation, unter Leitung des Frauenhofer IEM, hat zu den verschiedenen Sicherheitskonzepten ein Whitepaper erstellt. Die Handlungsempfehlung liefert Richtlinien für die sichere Konfiguration und die sichere Verwendung von OPC UA im industriellen Umfeld. Die übersichtliche Broschüre ist knapp und präzise geschrieben, um vielbeschäftigten Lesern schnell und einfach zu beschreiben, welche Möglichkeiten die OPC UA Sicherheitskonzepte bieten und wie man sie sinnvoll einsetzt. Das Dokument ist hier in englischer Sprache verfügbar.

3 Kommentare

  1. Cool!

    Ist es moglich so ein python client auf der debian linux embedded device zu starten?
    Iche habe codesys control for beaglebone und mogte gern mein python application variabelen lessen/schreiben mit der PLC runtime. Entschuldige mein deutsch ich bin ein Niederlander.

    1. Hallo,
      Vielen Dank für deinen Kommentar. Der Beaglebone Black ist als Konkurrent zum Raspberry PI eine interessante Alternative. Im Gegensatz zum Raspberry Pi, ist der BBB besser geeignet, um elektronische Komponenten anzuschließen. Denn er hat mehr GPIO Pins und die Möglichkeit Analoge Eingangssignale zu verarbeiten. Der Beaglebone Black unterstützt einige Hochsprachen (C, C++, Java) und unter anderem auch Python als Scriptsprache. Demzufolge sollte es kein Problem sein den OPC-UA Client auf dem BBB auszuführen. Natürlich muss Python installiert sein, sowie die notwendigen Bibliotheken.

      D.h. bevor du loslegen kannst, musst du zunächst mal eine SSH Verbindung zu deinem BBB aufbauen. Leider habe ich kein Beaglebone Black hier um die erforderlichen Schritte selbst durchzuführen, aber ich kann dir die theoretischen Schritte nennen. Da die Debian Distribution installiert ist, kannst du mit dem folgenden Befehl prüfen ob Python installiert ist. >> dpkg -s python

      Der Befehl zeigt Informationen über die Python package Installation. Sollte der Status auf „Installiert“ stehen, kannst du den nächsten Schritt überspringen und direkt den OPC-UA Client implementieren. Wenn Python noch nicht installiert ist, kannst du das mit folgendem Befehl durchführen (ACHTUNG: natürlich brauchst du mit deinem BBB Internet Zugang, um über das Debian Repository Python zu installieren).
      >> apt-get install python

      Nach der erfolgreichen Installation kannst du testen ob Python funktioniert, indem du in der Konsole „Python“ eingibst und damit den Interpreter ausführst. Dann solltest du die Version von Python sehen.

      Jetzt musst du natürlich noch das OPC-UA Client Skript implementieren oder mithilfe von SCP auf dein BBB übertragen. Falls du noch Fragen hast, melde dich. Klingt nach einem tollen Projekt.

      1. Danke,

        Ja Ich habe schon Python und WxPython und mein wxpython program installiert auf der debian linux desktop. Das communiciert jetz via ein file: data.dat in usr/share/. Aber wenn ich das ach via UPC-oa kan dan kan ich viel mehr variablen share und visualisieren in mein wx python programm und alles kan viel netter und besser. Ich gehe es versuchen. Serh gutes artikel. Vielen dank.

        Roel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website benutzt Cookies und Google Analytics. Wenn du die Website weiter nutzt, gehen wir von deinem Einverständnis aus Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen