Zum Hauptinhalt springen

OPC-UA

OPC-UA (OLE for Process Control - Unified Architecture, IEC 62541) ist ein Standardkommunikationsprotokoll für die industrielle Automatisierung. Fast alle SCADA- / Middleware-Produkte wie Kepware, Matrikon, Prosys und Ignition bieten OPC-UA-Serverfunktionen.

Da die meisten PLCs keine direkte OPC-UA-Serverfunktion besitzen, werden PLC-Werte üblicherweise über eine Gateway-Software wie Kepware als OPC-UA bereitgestellt. Dieses Gateway verbindet sich mit dem OPC-UA-Server, um die Werte zu erfassen.

Unterstützungsumfang

Der OPC-UA-Client dieses Gateways basiert auf dem Eclipse Milo 1.1.8 SDK.

  • Transport: opc.tcp:// (UA Binary encoding)
  • Sicherheitsmodus: None · Sign · SignAndEncrypt · Automatisch — siehe unten Sichere Verbindung
  • Sicherheitsrichtlinie: Automatisch · Aes256_Sha256_RsaPss · Basic256Sha256 · Aes128_Sha256_RsaOaep (Veraltete Richtlinien Basic256 · Basic128Rsa15 müssen separat zugelassen werden)
  • Benutzerauthentifizierung: Anonym (Anonymous) oder Benutzername + Passwort
  • Lesen / Schreiben: Beides unterstützt. Lesen erfolgt über timecycle Intervall-Polling; UA-Subscription (MonitoredItem) wird nicht verwendet.

Beim Anschluss an OPC UA-Server von DCS- oder Robotersteuerungen beachten Sie bitte auch DCS verbinden · Roboter verbinden.


Eingabewerte im Registrierungsformular​

Unter IP und Port finden Sie die Gruppe OPC UA Protokolloptionen mit den Feldern Servername, Benutzer, Passwort und Discovery. Die Kanalverschlüsselung wird in der darunter liegenden Gruppe Sicherheit (Kanalverschlüsselung) festgelegt — siehe Sichere Verbindung.

EingabefeldBeschreibungBeispiel
IP-AdresseIP des OPC-UA-Server-PCs192.168.0.40
PortOPC-UA-Serverport49320 (Kepware Standard) / 4840 (Standard)
Servername (servername)Pfadteil der Endpoint-URILeer lassen oder OPCUAServer · iotgateway etc.
Benutzer (username)Am OPC-UA-Server registrierte Benutzer-ID. Leer lassen bei Anonymkopens (je nach Server unterschiedlich)
Passwort (password)Passwort des Benutzers***
Discovery (discovery)Bei true wird beim Verbinden der gesamte Node-Baum gebrowsedfalse (empfohlen)

Wenn sowohl Benutzer als auch Passwort eingegeben werden, erfolgt der Zugriff über einen Benutzernamen-Token; ist eines der Felder leer, erfolgt der Zugriff anonym (Anonymous). Für den anonymen Zugriff muss dieser am Server erlaubt sein. Da bei einem Sicherheitsmodus «None» die Kontodaten im Klartext übertragen werden, wird bei Verwendung von Konten «SignAndEncrypt» empfohlen.

Bestimmung des Endpunkts​

  1. Über die Eingabewerte wird opc.tcp://<IP>:<port>/<servername> erstellt, um die Liste der Endpunkte vom Server abzufragen.
  2. Aus der Liste wird der Endpunkt gewählt, der zum Sicherheitsmodus und zur Sicherheitsrichtlinie passt.
    • Sicherheitsmodus None: Bevorzugt wird ein None-Endpunkt, der den verwendeten Benutzertoken (Anonym oder Benutzername) ankündigt; andernfalls der erste None-Endpunkt.
    • Sign · SignAndEncrypt · Automatisch: Es wird der Endpunkt mit der stärksten Richtlinie gewählt, der sowohl den gewählten Modus/die Richtlinie als auch den Benutzertoken erfüllt. Wenn kein passender Endpunkt existiert, erfolgt kein Fallback auf None, sondern die Verbindung schlägt fehl (OPCUA_NO_MATCHING_ENDPOINT).
  3. Der Host der gewählten Endpoint-URL wird durch die eingegebene IP ersetzt, um die Verbindung herzustellen (Port und Pfad entsprechen den vom Server angekündigten Werten). Es ist keine DNS- oder Hosts-Konfiguration erforderlich, selbst wenn der Server seinen eigenen Hostnamen ankündigt.

Welche Endpunkte der Server ankündigt, kann direkt über die Schaltfläche [Endpunkte abfragen] eingesehen werden — siehe Endpunkte abfragen.

Discovery ist keine Endpunktsuche​

discovery=true bewirkt, dass beim Verbindungsaufbau der gesamte Node-Baum ab dem Root-Ordner gebrowsed und im Gateway-Log protokolliert wird. Dies dient weder der Endpunktsuche noch der automatischen Tag-Registrierung. Um die vom Server angebotenen Endpunkte (Sicherheitsmodus, Richtlinien) zu sehen, verwenden Sie nicht Discovery, sondern [Endpunkte abfragen]. Da dies bei Servern mit vielen Nodes eine hohe Last verursacht, sollte dies normalerweise auf false stehen; suchen Sie die NodeId stattdessen mit den unten beschriebenen Methoden.


Sichere Verbindung (Kanalverschlüsselung)​

Dies wird in der Gruppe Sicherheit (Kanalverschlüsselung) im Verbindungsbildschirm festgelegt. Wenn nicht «None» gewählt ist, öffnet die Edge einen sicheren Kanal mit ihrem eigenen Client-Zertifikat und erfolgt bei fehlenden passenden Endpunkten kein Fallback auf «None».

Gruppe «Sicherheit (Kanalverschlüsselung)» im Verbindungsbildschirm — Nummern in Lesereihenfolge

NummerFeldFunktion
①SicherheitsmodusNone (암호화 없음) · Sign (서명) · SignAndEncrypt (서명+암호화, 권장) · 자동 (Sign·SignAndEncrypt 중 가장 강한 것)
②Sicherheitsrichtlinie자동 (서버가 제공하는 가장 강한 정책) oder eine von Basic256Sha256 · Aes128_Sha256_RsaOaep · Aes256_Sha256_RsaPss. Nicht sichtbar, wenn Sicherheitsmodus «None» ist
③ErweitertBei Aufklappen: Kontrollkästchen Veraltete Richtlinien zulassen. Nur aktivieren für alte Server, die nur Basic256 · Basic128Rsa15 (obsolete Richtlinien) bereitstellen. Nicht sicher
  • Standardwerte — Bestehende Verbindungen bleiben bei None. Neue Verbindungen über DCS- oder Roboter-Karten beginnen mit SignAndEncrypt.
  • Reihenfolge der automatischen Richtlinien — Aes256_Sha256_RsaPss > Basic256Sha256 > Aes128_Sha256_RsaOaep.
  • Geänderte Werte müssen gespeichert werden, um wirksam zu werden.

Endpunkte abfragen​

Nach Eingabe von IP, Port und Servernamen und Klick auf [Endpunkte abfragen] fragt die Edge den Server nach der Endpunktliste (GetEndpoints) und zeigt diese in einer Tabelle an. Da keine Sitzung geöffnet wird, ist kein Konto erforderlich; dies ist bereits vor dem Vertrauen in das Serverzertifikat möglich (Zeitlimit: Anschluss 3 Sek., Gesamt 6 Sek.).

Ergebnis von [Endpunkte abfragen] — Nummern in Lesereihenfolge

NummerPositionFunktion
①Rechts im Gruppenkopf[Endpunkte abfragen] — IP und Port müssen zuvor eingegeben sein
②TabellenkopfAbgefragte Adresse und Spalten — Sicherheitsmodus · Sicherheitsrichtlinie · Benutzerauthentifizierung (Anonymous · UserName · Certificate etc.) · Serverzertifikat (Subject und SHA-1 Fingerabdruck)
③Zeilenende[Diese Einstellung verwenden] — Übernimmt den Sicherheitsmodus und die Richtlinie dieser Zeile in die oberen Felder. Muss gespeichert werden
  • Das Badge Veraltete Richtlinie in der Richtlinienspalte steht für Basic256 · Basic128Rsa15. Wenn [Diese Einstellung verwenden] für eine solche Zeile geklickt wird, wird automatisch Veraltete Richtlinien zulassen aktiviert und die Richtlinienspalte auf Automatisch gesetzt.
  • Richtlinien mit dem Badge Nicht unterstützt können von der Edge nicht zur Verbindung genutzt werden.
  • Auch wenn in der Spalte Benutzerauthentifizierung Certificate steht, meldet sich die Edge nur anonym oder per Benutzername an — siehe Nicht unterstützt.

Erste Verbindung — Serverzertifikat vertrauen​

Die Edge vertraut Serverzertifikaten, die sie zum ersten Mal sieht, nicht automatisch. Bei einer ersten Verbindung im Sicherheitsmodus wird das Serverzertifikat abgelehnt, und in der Gruppe Sicherheit im Verbindungs- (Bearbeitungs-) und Verbindungsdetailbildschirm erscheint folgender Hinweis:

Zustand, in dem das Serverzertifikat noch nicht vertraut wurde — Nummern in Lesereihenfolge

NummerPositionFunktion
①Erste HinweiszeileHinweis, dass die Verbindung nicht hergestellt wurde, da das Serverzertifikat noch nicht vertraut wurde
②Zertifikats-Subject · Fingerabdruck (SHA-1)Vom Server vorgelegtes Zertifikat. Der Fingerabdruck muss mit dem Zertifikatsfingerabdruck am Server(DCS/Controller)-Bildschirm abgeglichen werden
③[Diesem Zertifikat vertrauen]Öffnet ein Bestätigungsfenster
④ZertifikatsverwaltungFührt zum Tab OPC UA Server › Client-Verbindungszertifikate

Beim Klicken auf [Diesem Zertifikat vertrauen] zeigt ein Bestätigungsfenster den Fingerabdruck erneut an.

Bestätigungsfenster für Serverzertifikat vertrauen — Nummern in Lesereihenfolge

NummerPositionFunktion
①Subject · FingerabdruckZu vertrauendes Zertifikat. Erneuter Abgleich mit dem vorherigen Hinweis
②HinweisWenn der Fingerabdruck vom Serverbildschirm abweicht, darf ihm nicht vertraut werden
③[Diesem Zertifikat vertrauen]Vertrauen wird bestätigt. Es erscheint: «Vertraut. Verbindung wird in Kürze erneut hergestellt.»

Nachdem das Vertrauen bestätigt wurde, wird die Warteschleife für die Wiederverbindung der Edge aufgelöst und die Verbindung erfolgt kurz darauf. Nach erfolgreichem Verbindungsaufbau wird der Hinweis grün.

Erfolgreiche sichere Verbindung — Nummern in Lesereihenfolge

NummerPositionFunktion
①Statuszeile«Sicher verbunden (SignAndEncrypt)» — In Klammern steht der konfigurierte Sicherheitsmodus (bei Automatik auto)

Die Vertrauensliste wird von allen OPC UA-Verbindungen dieser Edge gemeinsam genutzt. Wenn sich mehrere Verbindungen mit demselben Server verbinden, muss das Zertifikat nur einmal vertraut werden.

Wenn der Server das Edge-Zertifikat ablehnt​

Auch DCS- oder Controller-Systeme lehnen oft Client-Zertifikate ab, die sie zum ersten Mal sehen. In diesem Fall wird der sichere Kanal abgelehnt und folgender Hinweis angezeigt:

Zustand, in dem der Server das Client-Zertifikat der Edge abgelehnt hat — Nummern in Lesereihenfolge

NummerPositionFunktion
①Erste HinweiszeileHinweis, dass der Server den sicheren Kanal abgelehnt hat — meist liegt dies daran, dass der Server diesem Edge-Zertifikat noch nicht vertraut
②Subject · Fingerabdruck (SHA-1)Das Client-Zertifikat der Edge. Suchen Sie diesen Fingerabdruck in der Ablehnungsliste des Servers
③[Client-Zertifikat herunterladen (.der)]Lädt das Edge-Zertifikat dieser Verbindung herunter
④ZertifikatsverwaltungFührt zum Tab OPC UA Server › Client-Verbindungszertifikate
  1. Laden Sie das Zertifikat (.der) über ③ herunter. Dies ist auch im Tab OPC UA Server › Client-Verbindungszertifikate unter «Client-Zertifikate der Edge» pro Verbindung möglich.
  2. Übermitteln Sie das Zertifikat an den DCS/Controller-Administrator, damit es in die Vertrauensliste des Servers aufgenommen wird (falls es bereits in der Ablehnungsliste steht, kann es dorthin verschoben werden). Folgen Sie hierzu dem Handbuch des Serverherstellers.
  3. Die Edge verbindet sich beim nächsten Versuchszyklus erneut.

Zertifikatsverwaltung — OPC UA Server › Client-Verbindungszertifikate​

Im Tab Client-Verbindungszertifikate des Bildschirms OPC UA Server (/ui/opcua) können die von der Edge als Client verwendeten Zertifikate an einer zentralen Stelle eingesehen werden. Dies ist getrennt von den Zertifikaten des OPC UA-Servers, den die Edge für SCADA bereitstellt (Tab Client-Zertifikate).

Tab Client-Verbindungszertifikate — Nummern in Lesereihenfolge

NummerPositionFunktion
①TabClient-Verbindungszertifikate
②Abgelehnte ServerzertifikateVon der Edge abgelehnte Serverzertifikate — Subject · Application URI · Fingerabdruck · Gültigkeit · Wartende Verbindung. [Vertrauen] oder [Löschen]
③Vertraute ServerzertifikateVom Betreiber vertraute Serverzertifikate. Bei [Vertrauen entziehen] kehrt es zur Ablehnungsliste zurück und die Verbindung wird ab dem nächsten Versuch nicht mehr hergestellt
④Client-Zertifikate der EdgePro OPC UA-Verbindung eines — Verbindung · Sicherheitsmodus · Application URI · Fingerabdruck · Gültigkeit. «Noch nicht vorhanden» bei Verbindungen, die noch nie im Sicherheitsmodus verbunden wurden
⑤[Herunterladen (.der)]Das Edge-Zertifikat dieser Verbindung. Wird verwendet, um es in die Vertrauensliste des Servers aufzunehmen
  • Ein [gelöschtes] abgelehntes Zertifikat erscheint erneut, wenn eine Verbindung zum selben Server versucht wird.
  • Bei [Vertrauen entziehen] wird eine bereits offene Verbindung beim nächsten Reconnect unterbrochen.

Client-Zertifikat der Edge​

MerkmalWert
TypSelf-signed (selbstsigniert), RSA 2048
Gültigkeit10 Jahre. Bei Ablauf wird es neu erstellt und muss am Server erneut vertraut werden
ErstellungszeitpunktBeim ersten Verbindungsversuch dieser Verbindung im Sicherheitsmodus
Application URIurn:plantpulse:edge:<OPC ID> — Einzigartig pro Verbindung
Speicherort/data1/pp-data/opcua-client ($PE_DATA_DIR/pp-data/opcua-client). Die Vertrauensliste befindet sich ebenfalls hier
  • Auch wenn eine Verbindung gelöscht wird, bleibt das Zertifikat erhalten. Bei Erstellung einer neuen Verbindung mit derselben OPC ID wird das Zertifikat wiederverwendet. Eine erneute Vertrauensstellung im DCS ist nicht erforderlich.
  • Dieses Verzeichnis ist Teil des Backups. Bei einer Wiederherstellung werden Edge-Zertifikate und Vertrauenslisten gemeinsam wiederhergestellt.

Nicht unterstützt​

  • X.509 Benutzerzertifikats-Login — Benutzerauthentifizierung ist nur via Anonym oder Benutzername + Passwort möglich.
  • CA-signierte Client-Zertifikate — Edge-Zertifikate werden nur selbstsigniert verwendet.
  • Replikation der Vertrauensliste zwischen HA-Pair-Boxen — Die Vertrauenslisten sind pro Box separat. In einer HA-Konfiguration muss das Serverzertifikat auf jeder Box vertraut werden und im Server pro Box das jeweilige Edge-Zertifikat hinterlegt sein.

PLC-Adressformat der Tags​

Tag-Adressen in OPC-UA folgen üblicherweise dem Format, das als NodeId bezeichnet wird.

FormatBeschreibung
ns=2;s=Channel1.Device1.Tag1Namespace 2, String-Identifikator — am häufigsten bei Kepware
ns=2;i=1234Namespace 2, Numerischer Identifikator
ns=3;g=09087e75-8e5e-499b-954f-f2a8624db28aGUID-Format
  • ns= ist die Namespace-Nummer, üblicherweise 2.
  • Auf s= folgt ein Pfad wie «Channel.Device.Tag» (entspricht dem in Kepware erstellten Pfad).

Wie finde ich die NodeId heraus?​

  1. In den Handbüchern des PLC- oder Kepware-Herstellers finden sich oft Mapping-Tabellen.
  2. Mit kostenlosen OPC-UA-Clients wie UA Expert kann man sich direkt verbinden und durch Rechtsklick auf einen Node im Baum die NodeId kopieren.
  3. Mit dem OPC Quick Client Tool von Kepware ist dies ebenfalls möglich.

Kepware Schnelleinrichtung​

Verfahren basierend auf der häufig verwendeten Kombination mit Kepware.

  1. Kepware Server → Project → Kanal hinzufügen (z. B. Simulator)
  2. Device hinzufügen (z. B. Simulator) → Modell = 16 Bit Device
  3. Tag hinzufügen → Name Sine1, Typ Float, Scan Rate 100ms
  4. In Project Properties → OPC UA → Server Endpoint den Port 49320 aktivieren.
  5. Sicherheitsrichtlinien (Security Policies) des Server-Endpoints wählen. Für sichere Verbindungen Basic256Sha256 oder höher und Sign and Encrypt aktivieren; das Edge-Zertifikat in die Vertrauensliste von Kepware aufnehmen — siehe Wenn der Server das Edge-Zertifikat ablehnt.
  6. Anonymen Zugriff oder Benutzerkonto aktivieren.

Im Registrierungsformular dieses Gateways:

FeldWert
IPIP des Kepware-Server-PCs
Port49320
Benutzer/PasswortZuvor erstelltes Konto (leer bei Anonym)
Tag PLC-Adressens=2;s=Simulator.Simulator.Sine1

Häufige Probleme und Lösungen​

Symptom / MeldungMögliche UrsacheLösung
«Connection refused» / Keine VerbindungOPC-UA-Server ist aus oder Port blockiertPrüfen, ob OPC-UA-Server läuft und IP/Port korrekt sind
«User access denied»Fehlerhafter Benutzer/Passwort oder Anonym-Zugriff am Server nicht erlaubtBenutzer am Server registrieren oder Anonym-Zugriff erlauben
Sicherheitsmodus None, aber Verbindung schlägt fehl, Log: no SecurityMode=None endpointServer bietet keinen None-Endpunkt anSicherheitsmodus auf Sign oder SignAndEncrypt ändern und via [Endpunkte abfragen] prüfen
Verbindung steht, aber Werte sind immer 0 oder nullTippfehler in Tag NodeId oder Namespace-Nummer weicht abÜber UA Expert prüfen, ob die gleiche NodeId tatsächlich funktioniert
Verbindung bricht ständig ab und stellt sich wieder herInstabiles Netzwerk oder hohe Last auf Server-PCServer-PC Ressourcen / Kabel / Switches prüfen

Fehler bei sicheren Verbindungen (Bildschirmmeldungen)​

Wenn eine sichere Verbindung fehlschlägt, erscheinen im Sicherheitsblock des Verbindungs- und Verbindungsdetailbildschirms folgende Meldungen. Die Texte erscheinen auf Koreanisch und Englisch.

CodeMeldung (ko)Meldung (en)Lösung
OPCUA_SERVER_CERT_UNTRUSTED서버 인증서를 아직 신뢰하지 않아 연결하지 않았습니다. 지문을 서버(DCS·컨트롤러) 쪽 인증서와 대조한 뒤 신뢰하세요.Not connected: the server certificate is not trusted yet. Compare the thumbprint with the server's (DCS / controller) certificate, then trust it.Fingerabdruck abgleichen und [Diesem Zertifikat vertrauen]
OPCUA_SERVER_CERT_INVALID신뢰한 서버 인증서가 유효하지 않습니다(만료·폐기·용도 불일치). 서버 쪽 인증서를 확인하세요.The trusted server certificate is not valid (expired, revoked or wrong usage). Check the server's certificate.Serverzertifikat neu ausstellen lassen und neuen Fingerabdruck vertrauen
OPCUA_CLIENT_CERT_REJECTED서버가 보안 채널을 거절했습니다. 대개 서버가 이 엣지의 클라이언트 인증서를 아직 신뢰하지 않은 경우입니다 — 인증서를 내려받아 서버의 신뢰 목록에 넣으세요.The server refused the secure channel - usually it does not trust this edge's client certificate yet. Download it and add it to the server's trust list.Edge-Zertifikat (.der) in die Vertrauensliste des Servers aufnehmen
OPCUA_PKI_DIR_MISSING엣지의 클라이언트 인증서 저장소를 찾지 못했습니다(데이터 볼륨 PE_DATA_DIR 를 확인하세요).The edge's client certificate store is missing (check the data volume PE_DATA_DIR).Prüfen, ob Datenvolume (/data1) gemountet ist
OPCUA_PKI_ERROR엣지의 클라이언트 인증서 저장소를 읽거나 만들지 못했습니다. 서버 로그를 확인하세요.The edge's client certificate store could not be read or created. See the server log./data1/pp-data/opcua-client Berechtigungen und Festplattenplatz prüfen
OPCUA_SECURITY_CONFIG_INVALID보안 모드·정책 설정이 올바르지 않습니다(폐기된 정책은 '낡은 정책 허용'을 켜야 합니다).The security mode / policy setting is invalid (a deprecated policy needs 'Allow deprecated policies').Werte für Sicherheitsmodus/Richtlinie prüfen. Bei veralteter Richtlinie «Veraltete Richtlinien zulassen» aktivieren
OPCUA_NO_MATCHING_ENDPOINT서버가 설정한 보안 모드·정책·인증 방식에 맞는 엔드포인트를 제공하지 않습니다. [엔드포인트 조회]로 확인하세요.The server offers no endpoint with this security mode, policy and user token. Check with [Find endpoints].In [Endpunkte abfragen] passende Kombination wählen und [Diese Einstellung verwenden] klicken
OPCUA_CONNECT_FAILED연결하지 못했습니다(네트워크·시간 초과·세션).Could not connect (network, timeout or session).IP, Port, Firewall und Serverstatus prüfen

Häufig verwendete Datenformate​

PLC-WertDatenformatFormat-HilfePLC-Adressen-Beispiel
Ein/AusBoolean(leer)ns=2;s=Pump.Status
GanzzahlInteger(leer)ns=2;s=Counter
Große GanzzahlLong(leer)ns=2;s=Total
Gleitpunkt (32-bit)Float(leer)ns=2;s=Pressure
Gleitpunkt (64-bit, präzise)Double(leer)ns=2;s=PrecisionTemp
ZeichenfolgeString(leer)ns=2;s=Recipe.Name

Im Fall von OPC-UA wird das Feld format normalerweise leer gelassen (der Server gibt den Datentyp vor).


Weitere Beispiele / Automatisierte Registrierung​

Wenn Sie die Registrierung per Script oder API automatisieren möchten, beachten Sie die OPC-UA-Beispiele auf der Seite Erweitert — REST API.