Skip to main content

OPC UA Server

Die Standardinstallation von CODESYS beinhaltet einen OPC UA Server. Sie können Ihrem Projekt den OPC UA Server hinzufügen, in dem Sie der Applikation zunächst ein Objekt Kommunikationsverwalter hinzufügen und darunter dann das Objekt OPC UA Server

Mit Objekt OPC UA Server können Sie über einen Client auf die Variablenschnittstelle der Steuerung zugreifen. Der OPC UA Server kommuniziert mit angeschlossenen OPC UA Clients über eine separate TCP-Verbindung. Deshalb müssen diese Verbindungen noch einmal gesondert auf ihre Sicherheit hin überprüft werden.

Der OPC UA Server kann nun durch die Verwendung einer verschlüsselten Kommunikation zum Client und durch eine OPC UA-Benutzerverwaltung abgesichert werden. Die möglichen Einstellungen hierzu finden Sie in den nachfolgenden Abschnitten:

Wichtig

Ab Laufzeitsystemversion 3.5 SP17 muss für den Zugriff auf die CODESYS-Laufzeitsysteme standardmäßig eine Gerätebenutzerverwaltung eingerichtet werden. Für den OPC UA Server besteht jedoch die Möglichkeit, weiterhin anonyme Zugänge zu ermöglichen, wenn dies explizit erlaubt wird. Diese Erlaubnis wird erteilt im Dialog Kommunikationsrichtlinie ändern in der Registerkarte Kommunikation des Geräteeditors.

. Der CODESYS OPC UA-Server unterstützt folgende Funktionalitäten:
  • Browsen der Datentypen und Variablen

  • Standard-Lese- und Schreibdienste

  • Benachrichtigung für Wertänderungen: Subscription- und Monitored-Item-Dienste

  • Verschlüsselte Kommunikation nach „OPC UA Standard (Profil: Basic256SHA256)“

  • Abbildung der IEC-Applikation nach „OPC UA Information Model for IEC 61131-3“

  • Unterstütztes Profil: „Micro Embedded Device Server Profile“

  • Anzahl an Sessions

    Monitored-Items und Subscriptions standardmäßig sind nicht begrenzt. Die Anzahl ist abhängig von der Performance der jeweiligen Plattform.

  • Versenden von Events nach OPC UA Standard

  • Kommunikation mit einer Datenquelle OPC UA Client

    Für weitere Informationen siehe: Verbindung einer Datenquelle OPC UA Client zu einem OPC UA Server herstellen

Tipp

In diesem Kapitel wird mehrfach der OPC UA Client UAExpert genannt. UAExpert ist ein Produkt des Anbieters „Unified Automation“.

Für weitere Informationen siehe: Unified Automation

Wenn Sie mit dem Kommunikationsverwalter eine IEC-Symbolgruppenkonfiguration erstellen, erfolgt der OPC UA-Zugriff automatisch.

Ein Projekt für den OPC UA-Zugriff erstellen

  1. Legen Sie ein neues Projekt mit einer Steuerung CODESYS Control Win an.

  2. Deklarieren Sie im Programm PLC_PRG einige Variablen unterschiedlichen Typs.

  3. Fügen Sie ein Objekt Kommunikationsverwalter unterhalb der Applikation ein.

  4. Wenn Sie IEC-Variablen der Applikation über den OPC UA Server mit anderen OPC UA Clients austauschen möchten, fügen Sie unterhalb des Objekts Kommunikationsverwalter ein Objekt OPC UA Server hinzu.

    Die weiteren Schritte hierzu finden Sie unter IEC-Symbolgruppenkonfiguration.

  5. Wenn Sie Daten eines OPC UA-Informationsmodells veröffentlichen möchten, fügen Sie unterhalb des Objekts Kommnikationsverwalter ein Objekt OPC UA-Informationsmodell hinzu.

    Die weiteren Schritt hierzu finden Sie unter OPC UA-Informationsmodelle verwenden

Konfiguration und Inbetriebnahme des OPC UA Servers

Der OPC UA Server kann an die Anforderungen unterschiedlicher Umgebungen angepasst werden. Zu diesem Zweck stehen eine Reihe von verschiedenen Security-Einstellungen bereit. Eine Änderung dieser Einstellungen erfordert einen Neustart der SPS. Die Einstellung dieser Werte kann über den Gerätesicherheitseinstellungen (OPC UA Server) der SPS erfolgen.

Für weitere Informationen siehe: Sicheren OPC UA Server verwenden

Konfiguration der OPC UA Zertifikate

Prozedur. Zertifikat für CODESYS OPC UA Server erzeugen

Um Daten verschlüsselt und sicher mit dem Client auszutauschen, benötigt der Server ein Zertifikat, das beim ersten Verbindungsaufbau vom Client als „vertrauenswürdig“ eingestuft werden muss.

Voraussetzung: Der aktive Pfad zur Steuerung ist gesetzt.

  1. Installieren Sie das Add-on CODESYS Security Agent.

  2. Wählen Sie den Befehl Ansicht → Security-Screen.

  3. Wechseln Sie die zur Registerkarte Geräte.

  4. Selektieren Sie in der linken Ansicht die Steuerung.

    In der rechten Ansicht werden alle Dienste der Steuerung, die ein Zertifikat erfordern, angezeigt.

  5. Selektieren Sie den Dienst OPC UA Server.

  6. Erzeugen Sie ein neues Zertifikat für das Gerät. Klicken Sie dazu auf das Icon _cds_img_create_certificate.png.

    Es öffnet sich der Dialog Zertifikatseinstellungen.

  7. Definieren Sie die Parameter des Zertifikats und schließen Sie den Dialog mit OK.

    Das Zertifikat wird auf der Steuerung erzeugt.

    _cds_img_own_certificates.png
  8. Führen Sie einen Neustart des Laufzeitsystems durch.

Prozedur. Konfiguration der vertrauenswürdigen CA für OPC UA Server-Zertifikate

Wenn OPC UA-Client-Zertifikate über eine vertrauenswürdige Zertifizierungsstelle (CA = Certificate Authority) erzeugt werden, muss diese CA als eine vertrauenswürdige CA im OPC UA-Server konfiguriert sein. Um dies zu erreichen, muss die CA unter "Vertrauenswürdige Zertifikate" installiert werden.

Um Zertifikatssperrlisten (CRL: Certificate Revocation List) der CAs zu installieren, sind folgende Schritte notwendig:

  1. Übertragung der CRLs per Filetransfer in das cert/import-Verzeichnis

  2. Ausführung des SPS-Shell Kommandos cert-importcrl

Falls die Client-Zertifikate nicht direkt von der vertrauenswürdigen CA unterschrieben sind, sondern eine längere Kette haben, müssen die Zertifikate der Zwischen-CAs gesondert installiert werden. Sie müssen per Dateiübertragung in das Verzeichnis OPCUAServer/Intermediate gebracht werden. Nach der Übertragung werden diese Zertifikate automatisch durch den OPC UA-Server verwendet.

Anmerkung

Um auch für das reine Browsen auf dem OPC UA-Server einen verschlüsselten Zugang einzurichten, kann im Dialog Kommunikation des Datenquellenverwalters ein Zertifikat erstellt werden, das nur für diesen Zweck dient.

Spezifikationskonforme Konfiguration des OPC UA Servers

Um den OPC UA Server anhand der OPC UA Spezifikation zu betreiben sind folgende Einstellungen zwingend notwendig:

  1. Der Ort City muss für das Zertifikat konfiguriert werden.

  2. Ein OPC UA Server Zertifikat muss erzeugt werden

  3. Die CRL Prüfungen EnableCRLChecks müssen aktiviert sein.

  4. Der CommunicationMode muss auf MIN_SIGNED oder auf SIGNED_AND_ENCRYPTED stehen.

Verschlüsselte Verbindung mit dem Client "UaExpert" einrichten

Der OPC UA Client "UaExpert“ ist eine frei verfügbare Software, die Sie aus dem Internet herunterladen können. Mit diesem Client können Sie sich mit dem CODESYS OPC UA Server verbinden. Die nachfolgende Beschreibung bezieht sich auf dieses Programm. Andere OPC UA Clients funktionieren ähnlich.

  1. Starten Sie das Programm UaExpert.

  2. Wählen Sie den Befehl Server → Add.

    Es öffnet sich der Dialog Add Server.

  3. Expandieren Sie in der Baumansicht Local → OPCUAServer@.

  4. Wählen Sie die Verbindungsart Basic256Sha256 - Sign & Encrypt (uatcp-uasc-uabinary) und schließen Sie den Dialog mit OK.

    _cds_img_uaexpert_1.png
  5. Wählen Sie den Befehl Server → Connect.

    Der Dialog Certificate Validation öffnet sich mit einer Fehlermeldung.

  6. Aktivieren Sie die Option Accept the server certificate temporarily for this session und klicken Sie auf Continue.

  7. Klicken Sie in CODESYS auf das Symbol _cds_img_refresh_list.png.

    Die Ansicht wird aktualisiert.

  8. Selektieren Sie den Zertifikatsordner Quarantined Certificates.

    In der rechten Ansicht wird das Client-Zertifikat UaExpert@ angezeigt.

    _cds_img_quarantined_certificates.png
  9. Ziehen Sie das Zertifikat mit der Maus in den Zertifikatsordner Trusted Certificates.

    Das Clientzertifikat ist nun vom Server als „vertrauenswürdig“ beurteilt worden.

  10. Wählen Sie im Client UaExpert den Befehl Server → Connect.

    Der Dialog Certificate Validation öffnet sich mit einer Fehlermeldung.

  11. Aktivieren Sie die Option Accept the server certificate temporarily for this session und klicken Sie auf Continue.

    Die Verbindung ist aufgebaut, in der Ansicht Address Space werden Objekte angezeigt.

Benutzerverwaltung unter OPC UA

Der CODESYS OPC UA Server unterstützt die CODESYS Benutzerverwaltung. Die Zugriffsrechte auf den Server stellen Sie über die Registerkarte: Zugriffsrechte der Steuerung ein. Wählen Sie dazu das Objekt Laufzeitsystemobjekte - RemoteConnections - OPCUAServer.

Wenn trotz aktiver Benutzerverwaltung ein anonymer Zugang zum OPC UA Server erlaubt ist, dann können Sie auch für diesen Zugang die Zugriffsrechte konfigurieren: Vergeben Sie für die implizit vorhandene Gruppe "Anonymous_OPCUAServer“ entsprechende Rechte. Die Erlaubnis für den anonymen Zugang zum OPC UA Server wird im Dialog Kommunikationsrichtlinie ändern erteilt. Eine Beschreibung dieses Dialog finden Sie auf der Hilfeseite Registerkarte Kommunikation.

Zugriffsrechte können nicht nur auf Dienstebene, sondern auch auf Objektebene geprüft werden. Dadurch kann eine Variable durch einen Benutzer möglicherweise nicht geschrieben werden, obwohl dieser Benutzer grundsätzlich auf den OPC UA Server schreiben darf.

OPC UA-Service

Zugriffsrecht

AttributeRead

Ansehen

AttributeWrite

Ändern

Call

Ausführen

CreateMonitoredItem

Ansehen

ModifyMonitoredItem

Ansehen

SetMonitoringMode

Ansehen

DeleteMonitoredItem

Ansehen

CloseSession

Ansehen

CreateSubscription

Ansehen

ModifySubscription

Ansehen

SetPublishingMode

Ansehen

DeleteSubscriptions

Ansehen

Publish

Ansehen

Republish

Ansehen

Browse

Ansehen

BrowseNext

Ansehen

TranslateBrowsePathsToNodeIds

Ansehen

RegisterNodes

Ansehen

UnregisterNodes

Ansehen

Für weitere Informationen siehe: Gerätebenutzerverwaltung handhaben

Variablen mit dem OPC UA Client ändern

  1. Expandieren Sie im Client UaExpert in der Ansicht Address Space das Objekt Objects → DeviceSet → |tvOPCUA| → Application → Global Vars → GVL.

    Die Variablen der globalen Variablenliste werden sichtbar.

  2. Selektieren Sie die Variablen und ziehen Sie sie mit der Maus in die Ansicht Data Access View.

    Die Variablen und ihre aktuellen Werte werden angezeigt.

    _cds_img_uaexpert_2.png
  3. Ändern Sie die Variablenwerte durch einen Doppeklick auf das Feld Value.

Events oder Alarme im CODESYS-Projekt verwenden

Der CODESYS OPC UA Server bietet die Möglichkeit, Standard-OPC UA-Events zu versenden und Alarme in einer vereinfachten Form abzubilden.

Achtung

Ab CODESYS Communication Version 4.6.0.0 und CODESYS Development System Version 3.5.21.0 entspricht die Bestätigungsmethode ACK_REP dem OPC UA Standard.

Alle anderen Bestätigungsmethoden entsprechen nicht den Anforderungen aus der OPC UA Spezifikation. In diesen Fällen sind insbesondere die Zustandsautomaten unterschiedlich und es können keine Kommentare vergeben werden. Die Abbildung dieser Alarme dient dazu, dass eine grundlegende Interaktion zwischen einem OPC UA Client und der Alarmverwaltung möglich ist.

Prozedur. Alarme und Events erzeugen
  1. Legen Sie ein neues Projekt mit einer Steuerung CODESYS Control Win an.

  2. Fügen Sie ein Objekt Alarmkonfiguration unterhalb der Applikation ein.

  3. Fügen Sie im Bibliotheksverwalter die Bibliothek CmpOPCUAProviderAlarmConfiguration ein.

    Ab CODESYS Development System Version 3.5.21.0 muss anstelle der Bibliothek CmpOPCUAProviderAlarmConfiguration die Bibliothek CompatibleAlarmManagerToOpcUaConnector eingebunden sein.

    Wenn die Bibliothek eingebunden ist, verbindet sie sich automatisch als Client mit der Alarmkonfiguration und sendet die Events zum OPC UA-Server.

  4. Fügen Sie ein Objekt Symbolkonfiguration unterhalb der Applikation ein.

  5. Fügen Sie ein Objekt Visualisierung unterhalb der Applikation ein.

  6. Übertragen Sie das Projekt auf die Steuerung und starten Sie sie.

Alarme werden ganz normal verwendet und erzeugt. Hier sind keine besonderen Schritte notwendig.

Wenn Sie Events erzeugen wollen, sind zusätzlich nachfolgende Schritte notwendig

  1. Fügen Sie ein Objekt Alarmklasse unterhalb der Alarmkonfiguration ein. Benennen Sie es beispielsweise mit Event.

    Die neue Alarmklasse öffnet im Editor.

  2. Wählen Sie die Quittierungsmethode REP.

  3. Fügen Sie ein Objekt Alarmgruppe unterhalb der Alarmkonfiguration ein. Benennen Sie es beispielsweise mit ApplicationEvent.

    Die neue Alarmgruppe öffnet im Editor.

  4. . Ändern Sie folgende Parameter:
    • Überwachungstyp: Ereignis

    • Klasse: Event

    • Nachricht: „Message 1“

  5. Fügen Sie in Programm, beispielsweise in der POU PLC_PRG, einen Programmaufruf zum Auslösen des Ereignisalarms ein.

    AlarmManager.AlarmGlobals.g_AlarmHandler.RaiseEvent(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_ApplicationEvent, Alm_ApplicationEvent_Alarm_IDs.ID_0);

Für Informationen zur Alarmverwaltung und Alarmvisualisierung siehe: Alarmverwaltung und Alarmvisualisierung

Events mit dem OPC UA Client "UaExpert" beobachten

  1. Starten Sie das Programm UaExpert.

  2. Wählen Sie den Befehl Server → Add.

    Der Dialog Add Server öffnet sich.

  3. Expandieren Sie in der Baumansicht Local → OPCUAServer@.

  4. Wählen Sie die Verbindungsart None und schließen Sie den Dialog mit OK.

  5. Wählen Sie den Befehl Server → Connect.

    In der Ansicht Address Space wird ein Objektbaum angezeigt.

  6. Wählen Sie den Befehl Documents → Add.

    Der Dialog Add Document öffnet sich.

  7. Wählen Sie den „Document Type“ Event View.

    Die Registerkarte Event-View öffnet sich.

  8. Expandieren Sie in der Ansicht Address Space das Objekt Objects → DeviceSet CODESYSCODESYS Control Win.

  9. Selektieren Sie im Address Space das Objekt "CODESYS Control Win V3" und ziehen Sie es mit der Maus in die Ansicht Event-View.

    Die Events werden angezeigt.

    _cds_img_uaexpert_3.png