OPC UA-Konnektor
Übersicht
Abschnitt betitelt „Übersicht“Der OPC UA (Open Platform Communications Unified Architecture)-Konnektor ermöglicht die Kommunikation mit OPC UA-Servern, dem industriellen Standardprotokoll für industrielle Automatisierung und Datenaustausch.
Konnektor-Typen:
OpcuaReader- Daten von OPC UA-Servern lesenOpcuaWriter- Daten auf OPC UA-Server schreiben
Funktionen
Abschnitt betitelt „Funktionen“- ✅ Industrielles Standardprotokoll für industrielle Automatisierung
- ✅ Mehrere Authentifizierungsmethoden (Anonym, Basic, Zertifikat)
- ✅ Sicherheitsmodi (None, Sign, SignAndEncrypt)
- ✅ Konfigurierbare Abfrageraten
- ✅ Unterstützung komplexer Knotenstrukturen
- ✅ Lese- und Schreiboperationen
Basiskonfiguration
Abschnitt betitelt „Basiskonfiguration“OPC UA Reader
Abschnitt betitelt „OPC UA Reader“{ "type": "OpcuaReader", "config": { "endpoint": "opc.tcp://localhost:4840", "pollingRate": 1000 }, "variables": [ { "key": "temperature", "nodeId": "ns=1;s=Temperature" }, { "key": "pressure", "nodeId": "ns=1;s=Pressure" } ]}{ "type": "OpcuaReader", "config": { "endpoint": "opc.tcp://localhost:4840", "pollingRate": 1000, "auth": { "mode": "Basic", "username": "opcuser", "password": "opcpassword" } }, "variables": [ { "key": "temperature", "nodeId": "ns=1;s=Temperature" } ]}{ "type": "OpcuaReader", "config": { "endpoint": "opc.tcp://localhost:4840", "pollingRate": 1000, "auth": { "authCertificateFile": { "mode": "DirectPath", "fileName": "certificate.pem", "path": "/path/to/certificate.pem" }, "authKeyFile": { "mode": "DirectPath", "fileName": "key.pem", "path": "/path/to/key.pem" } }, "security": { "mode": "SignAndEncrypt", "policy": "Basic256Sha256" } }, "variables": [ { "key": "temperature", "nodeId": "ns=1;s=Temperature" } ]}OPC UA Writer
Abschnitt betitelt „OPC UA Writer“{ "type": "OpcuaWriter", "config": { "endpoint": "opc.tcp://localhost:4840", "auth": { "mode": "Basic", "username": "opcuser", "password": "opcpassword" } }, "variables": [ { "key": "setpoint", "nodeId": "ns=1;s=Setpoint" }, { "key": "control_mode", "nodeId": "ns=1;s=ControlMode" } ]}Konfigurationsparameter
Abschnitt betitelt „Konfigurationsparameter“Endpoint
Abschnitt betitelt „Endpoint“Die Endpunkt-URL des OPC UA-Servers.
{ "endpoint": "opc.tcp://192.168.1.100:4840"}Format: opc.tcp://[host]:[port][/pfad]
Abfragerate
Abschnitt betitelt „Abfragerate“Für Reader das Intervall in Millisekunden zwischen Datenlesungen.
{ "pollingRate": 1000 // Alle 1 Sekunde lesen}Empfohlene Werte:
- Schnell: 100-500ms
- Normal: 1000ms (1 Sekunde)
- Langsam: 5000ms (5 Sekunden)
Authentifizierung
Abschnitt betitelt „Authentifizierung“Anonym (Standard)
Abschnitt betitelt „Anonym (Standard)“Keine Authentifizierung erforderlich:
{ // Kein auth-Feld erforderlich}Basic-Authentifizierung
Abschnitt betitelt „Basic-Authentifizierung“Benutzername und Passwort:
{ "auth": { "mode": "Basic", "username": "your-username", "password": "your-password" }}Zertifikat-Authentifizierung
Abschnitt betitelt „Zertifikat-Authentifizierung“X.509-Zertifikate:
{ "auth": { "authCertificateFile": { "mode": "DirectPath", "fileName": "client-cert.pem", "path": "/path/to/client-cert.pem" }, "authKeyFile": { "mode": "DirectPath", "fileName": "client-key.pem", "path": "/path/to/client-key.pem" } }}Sicherheit
Abschnitt betitelt „Sicherheit“Sicherheitsmodus und -policy konfigurieren:
{ "security": { "mode": "SignAndEncrypt", "policy": "Basic256Sha256" }}Sicherheitsmodi:
None- Keine Sicherheit (Standard)Sign- Nur Nachrichten signierenSignAndEncrypt- Nachrichten signieren und verschlüsseln
Sicherheits-Policies:
NoneBasic128Rsa15Basic256Basic256Sha256(empfohlen)
Variablen
Abschnitt betitelt „Variablen“Variablen definieren, welche OPC UA-Knoten gelesen oder geschrieben werden.
Variablenstruktur
Abschnitt betitelt „Variablenstruktur“{ "key": "temperature", "nodeId": "ns=1;s=Temperature"}Felder:
key- Der Schlüsselname im Meddle-PayloadnodeId- Die OPC UA-Knoten-ID
Node ID-Formate
Abschnitt betitelt „Node ID-Formate“OPC UA unterstützt verschiedene Node ID-Formate:
{ "key": "sensor1", "nodeId": "ns=1;s=SensorName"}{ "key": "sensor2", "nodeId": "ns=1;i=1001"}{ "key": "sensor3", "nodeId": "ns=1;g=12345678-1234-1234-1234-123456789012"}{ "key": "sensor4", "nodeId": "ns=1;b=AQIDBAUGBwg="}Format: ns=[namespace];[typ]=[identifier]
Wobei:
ns- Namespace-Index (0-65535)typ- Node ID-Typ:s- Stringi- Numerischg- GUIDb- Opaque (Base64)
Datenfluss
Abschnitt betitelt „Datenfluss“Reader-Datenfluss
Abschnitt betitelt „Reader-Datenfluss“OPC UA-Server → OpcuaReader → Meddle-PayloadBeispiel:
OPC UA-Knoten:
ns=1;s=Temperature= 25.5ns=1;s=Pressure= 101.3
Ausgabe-Payload:
{ "temperature": 25.5, "pressure": 101.3}Writer-Datenfluss
Abschnitt betitelt „Writer-Datenfluss“Meddle-Payload → OpcuaWriter → OPC UA-ServerBeispiel:
Eingabe-Payload:
{ "setpoint": 30.0, "mode": "auto"}Schreibt auf:
ns=1;s=Setpoint← 30.0ns=1;s=Mode← “auto”
Häufige Anwendungsfälle
Abschnitt betitelt „Häufige Anwendungsfälle“1. Temperaturüberwachung
Abschnitt betitelt „1. Temperaturüberwachung“Temperatursensoren von einer SPS lesen:
{ "type": "OpcuaReader", "config": { "endpoint": "opc.tcp://plc.local:4840", "pollingRate": 1000 }, "variables": [ { "key": "zone1_temp", "nodeId": "ns=2;s=Zone1.Temperature" }, { "key": "zone2_temp", "nodeId": "ns=2;s=Zone2.Temperature" }, { "key": "ambient_temp", "nodeId": "ns=2;s=Ambient.Temperature" } ]}2. Prozesssteuerung
Abschnitt betitelt „2. Prozesssteuerung“Sollwerte zum Steuern eines Prozesses schreiben:
{ "type": "OpcuaWriter", "config": { "endpoint": "opc.tcp://plc.local:4840", "auth": { "mode": "Basic", "username": "operator", "password": "secure123" } }, "variables": [ { "key": "temperature_setpoint", "nodeId": "ns=2;s=Control.TempSetpoint" }, { "key": "pressure_setpoint", "nodeId": "ns=2;s=Control.PressureSetpoint" } ]}3. Produktionslinien-Überwachung
Abschnitt betitelt „3. Produktionslinien-Überwachung“Mehrere Maschinen überwachen:
{ "type": "OpcuaReader", "config": { "endpoint": "opc.tcp://scada.local:4840", "pollingRate": 500 }, "variables": [ { "key": "machine1_status", "nodeId": "ns=3;s=Machine1.Status" }, { "key": "machine1_speed", "nodeId": "ns=3;s=Machine1.Speed" }, { "key": "machine1_count", "nodeId": "ns=3;s=Machine1.ProductCount" }, { "key": "machine2_status", "nodeId": "ns=3;s=Machine2.Status" }, { "key": "machine2_speed", "nodeId": "ns=3;s=Machine2.Speed" } ]}Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Verbindungsprobleme
Abschnitt betitelt „Verbindungsprobleme“Problem: Kann nicht mit OPC UA-Server verbinden
Lösungen:
- Endpunkt-URL überprüfen
- Netzwerkkonnektivität prüfen:
ping [server-ip] - Port-Öffnung überprüfen:
telnet [server-ip] 4840 - Firewall-Regeln überprüfen
- Sicherstellen, dass OPC UA-Server läuft
Authentifizierungsfehler
Abschnitt betitelt „Authentifizierungsfehler“Problem: Authentifizierungsfehler
Lösungen:
- Benutzername und Passwort überprüfen
- Benutzerberechtigungen prüfen
- Bei Zertifikat-Auth sicherstellen, dass Zertifikate gültig und nicht abgelaufen sind
- Zertifikatspfade überprüfen
Knoten nicht gefunden
Abschnitt betitelt „Knoten nicht gefunden“Problem: “Knoten nicht gefunden”-Fehler
Lösungen:
- OPC UA-Client (wie UaExpert) zum Durchsuchen des Servers verwenden
- Namespace-Index überprüfen
- Node ID-Format mit Server-Format abgleichen
- Sicherstellen, dass Knoten existiert und zugänglich ist
Sicherheits-Policy-Fehler
Abschnitt betitelt „Sicherheits-Policy-Fehler“Problem: Sicherheits-Policy-Fehler
Lösungen:
- Vom Server unterstützte Sicherheits-Policies prüfen
security.policymit unterstützter Policy abgleichen- Zertifikate für verschlüsselte Verbindungen korrekt konfigurieren
Leistungsprobleme
Abschnitt betitelt „Leistungsprobleme“Problem: Langsame Datenaktualisierungen oder hohe CPU-Auslastung
Lösungen:
pollingRateerhöhen, um Frequenz zu reduzieren- Anzahl gelesener Variablen reduzieren
- Abonnement-basiertes Lesen verwenden, falls unterstützt
- Netzwerklatenz überprüfen
Best Practices
Abschnitt betitelt „Best Practices“1. Geeignete Abfrageraten verwenden
Abschnitt betitelt „1. Geeignete Abfrageraten verwenden“Nicht schneller abfragen als nötig:
- Kritische Daten: 100-500ms
- Normale Überwachung: 1000ms
- Langsam ändernde Werte: 5000ms+
2. Verbindungen sichern
Abschnitt betitelt „2. Verbindungen sichern“In Produktion immer Authentifizierung und Verschlüsselung verwenden:
{ "auth": { "mode": "Basic", "username": "user", "password": "pass" }, "security": { "mode": "SignAndEncrypt", "policy": "Basic256Sha256" }}3. Verwandte Variablen gruppieren
Abschnitt betitelt „3. Verwandte Variablen gruppieren“Verwandte Variablen im selben Konnektor für bessere Organisation halten:
{ "variables": [ // Temperatursensoren {"key": "temp1", "nodeId": "ns=1;s=Temp1"}, {"key": "temp2", "nodeId": "ns=1;s=Temp2"}, // Drucksensoren {"key": "press1", "nodeId": "ns=1;s=Press1"}, {"key": "press2", "nodeId": "ns=1;s=Press2"} ]}4. Verbindungsverlust behandeln
Abschnitt betitelt „4. Verbindungsverlust behandeln“Meddle behandelt Verbindungsverlust und Wiederverbindung automatisch, aber berücksichtigen Sie:
Merge-Konnektor mit Timeout für fehlende Daten verwendenAlert-Konnektoren für Verbindungsprobleme hinzufügen
5. Zuerst mit Anonym testen
Abschnitt betitelt „5. Zuerst mit Anonym testen“Mit anonymer Authentifizierung beginnen, um Konnektivität zu überprüfen, dann Sicherheit hinzufügen:
- Ohne Auth testen
- Username/Passwort hinzufügen
- Verschlüsselung hinzufügen
- Zertifikat-Auth hinzufügen
Beispiel-Workflows
Abschnitt betitelt „Beispiel-Workflows“Vollständiger Überwachungs-Workflow
Abschnitt betitelt „Vollständiger Überwachungs-Workflow“OpcuaReader → Filter → Reshape → InfluxDb2Writer ↓ Trigger → Alert (E-Mail bei hoher Temp)- OpcuaReader: Temperatur und Druck lesen
- Filter: Nur relevante Felder behalten
- Reshape: Metadaten hinzufügen (Standort, Einheit)
- InfluxDb2Writer: In Zeitreihendatenbank speichern
- Trigger: Auf hohe Temperatur prüfen
- Alert: E-Mail senden, wenn Schwellenwert überschritten
Verwandte Konnektoren
Abschnitt betitelt „Verwandte Konnektoren“- Modbus - Alternatives industrielles Protokoll
- Siemens S7 - Direkte Siemens-SPS-Kommunikation
- Filter - OPC UA-Daten filtern
- Trigger - Bedingte Logik für OPC UA-Daten
Zusätzliche Ressourcen
Abschnitt betitelt „Zusätzliche Ressourcen“- OPC Foundation
- OPC UA-Spezifikation
- UaExpert - Kostenloser OPC UA-Client zum Testen