Zum Hauptinhalt springen

OPC-UA

OPC-UA (OLE for Process Control - Unified Architecture, IEC 62541) ist der Standard für die Kommunikation in der industriellen Automatisierung. Nahezu alle SCADA- und Middleware-Produkte wie Kepware, Matrikon, Prosys oder Ignition bieten eine OPC-UA-Serverfunktion.

Da die meisten PLCs selbst keine OPC-UA-Serverfunktion besitzen, werden die PLC-Werte üblicherweise über eine Gateway-Software wie Kepware als OPC-UA bereitgestellt; dieses Gateway verbindet sich dann mit diesem OPC-UA-Server und ruft die Werte ab.

Unterstützte Spezifikation / Sicherheit

Der OPC-UA-Client dieses Gateways unterstützt bis zu OPC UA 1.04 (IEC 62541:2020) — basierend auf dem Eclipse Milo 0.6.16 SDK.

  • Transport: opc.tcp:// (UA Binary encoding)
  • Security: None / Basic256Sha256 / Aes128_Sha256_RsaOaep / Aes256_Sha256_RsaPss und weitere Standardrichtlinien
  • User token: Anonymous / UserName+Password / X.509 Certificate
  • Subscription: Das Gateway arbeitet im Polling-Verfahren (Intervall timecycle) — MonitoredItem-Subscriptions von UA werden nicht verwendet

Eingabefelder des Registrierungsformulars

EingabefeldWas wird eingetragenBeispiel
IP-AdresseIP des OPC-UA-Server-PCs192.168.0.40
PortPort des OPC-UA-Servers49320 (Kepware-Standard) / 4840 (Standard)
Benutzer (User)Am OPC-UA-Server registrierte Benutzer-IDkopens (serverabhängig)
PasswortPasswort dieses Benutzers***
Servername (servername)Servername am Ende des Endpunkts(bei Kepware leer lassen)
Discovery verwendenOb die Endpunkte des Servers automatisch ermittelt werdenNormalerweise false. Falls das nicht funktioniert, true versuchen
Subscription verwenden (subscription-enabled)Server-Push-Modus statt PollingBei Aktivierung true (effizient bei großen Tag-Mengen)
Publishing (publishing-interval)Intervall, in dem der Server Datenänderungen publiziert (ms)1000 (Standard)
Sampling (sampling-interval)Intervall, in dem der Server Werte abtastet (ms)1000 (Standard)
Queue Size (queue-size)Größe der Warteschlange für Änderungswerte (verhindert Verlust von Notifications)10 (Standard)

Bleiben die Felder Benutzer / Passwort beide leer, wird eine anonyme Verbindung (Anonymous) versucht. Der Server muss anonyme Verbindungen zulassen.


PLC-Adressnotation der Tags

Die Tag-Adresse in OPC-UA hat üblicherweise das folgende Format, die sogenannte NodeId.

NotationBeschreibung
ns=2;s=Channel1.Device1.Tag1Namespace 2, String-Bezeichner — bei Kepware am häufigsten
ns=2;i=1234Namespace 2, numerischer Bezeichner
ns=3;g=09087e75-8e5e-499b-954f-f2a8624db28aGUID-Form
  • ns= ist die Namespace-Nummer. Üblicherweise 2.
  • Nach s= folgt ein Pfad der Form „Channel.Device.Tag“ (exakt der in Kepware angelegte Pfad).

Wie ermittelt man die NodeId

  1. In den Handbüchern des PLC-Herstellers bzw. von Kepware ist häufig eine Zuordnungstabelle enthalten.
  2. Mit einem kostenlosen OPC-UA-Client wie UA Expert direkt verbinden und im Baum per Rechtsklick auf den Knoten die NodeId kopieren.
  3. Dasselbe lässt sich auch mit dem Kepware-eigenen Werkzeug OPC Quick Client erledigen.

Kepware-Schnellkonfiguration

Vorgehen am Beispiel der häufig verwendeten Kombination mit Kepware.

  1. Kepware Server → Project → Kanal hinzufügen (z. B. Simulator)
  2. Gerät hinzufügen (z. B. Simulator) → Modell = 16 Bit Device
  3. Tag hinzufügen → Name Sine1, type Float, scan rate 100ms
  4. Unter Project Properties → OPC UA → Server Endpoint den Port 49320 aktivieren
  5. Anonymen Zugriff oder Benutzerkonto aktivieren

Im Registrierungsformular dieses Gateways:

FeldWert
IPIP des Kepware-Server-PCs
Port49320
Benutzer/PasswortDas oben angelegte Konto (bei anonymem Zugriff leer lassen)
PLC-Adresse des Tagsns=2;s=Simulator.Simulator.Sine1

Häufige Probleme und Lösungen

Symptom / MeldungMögliche UrsacheLösung
„Connection refused“ / keine VerbindungOPC-UA-Server ausgeschaltet oder Port blockiertPrüfen, ob der OPC-UA-Server läuft und ob IP/Port korrekt sind
„User access denied“Falscher Benutzer/falsches Passwort oder anonymer Zugriff am Server nicht erlaubtBenutzer am Server anlegen oder anonymen Zugriff zulassen
„Security checks failed“Sicherheitsrichtlinie des Servers passt nichtSicherheitsrichtlinie des Servers auf „None“ oder „Basic256Sha256“ einstellen
Verbindung besteht, aber der Wert ist stets 0 oder nullTippfehler in der NodeId, abweichende Namespace-NummerMit UA Expert o. Ä. prüfen, ob dieselbe NodeId tatsächlich funktioniert
Verbindung bricht wiederholt ab und wird neu aufgebautInstabiles Netzwerk oder Auslastung des Server-PCsRessourcen des Server-PCs, Kabel und Switch einer Inspektion unterziehen

Häufig verwendete Datenformate

Wert in der PLCDatenformatFormatzusatzBeispiel PLC-Adresse
Ein/AusBoolean(leer)ns=2;s=Pump.Status
GanzzahlInteger(leer)ns=2;s=Counter
Große GanzzahlLong(leer)ns=2;s=Total
Gleitkomma (32-bit)Float(leer)ns=2;s=Pressure
Gleitkomma (64-bit, präzise)Double(leer)ns=2;s=PrecisionTemp
ZeichenketteString(leer)ns=2;s=Recipe.Name

Bei OPC-UA bleibt das Feld format üblicherweise leer (der Server teilt den Datentyp mit).


Ausführlichere Beispiele / automatisierte Registrierung

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