OPC UA Server
Da das Gateway einen integrierten OPC-UA Server besitzt, werden die erfassten Tag-Werte direkt an externe OPC-UA Clients (SCADA, HMI) übermittelt. Diese Seite behandelt die Verbindungsinformationen · Sicherheitseinstellungen dieses integrierten Servers sowie den Node-Tree (Tag-Liste + Echtzeitwerte + Zeitreihe), den Verbindungsstatus, Client-Zertifikate, Client-Verbindungszertifikate und Konten in einer Ansicht (aufgeteilt in sechs Tabs).

| Nr. | Position | Inhalt |
|---|---|---|
| ① | Tab-Leiste | Sechs Tabs |
| ② | Status-Karte | Serverstatus · Sessions · Subscriptions · Anzahl exponierter Nodes |
| ③ | Endpunkt | TCP / TLS Verbindungs-URL und bereitgestellte Security Policies |
| ④ | Sicherheit | Anonymer Zugriff · Endpunkte ohne Sicherheit · Client-Zertifikate · Konten |
| ⑤ | Server-Zertifikat | Subject · Fingerprint · Gültigkeitsdauer, [Download (.der)] |

| Nr. | Position | Inhalt |
|---|---|---|
| ① | Node-Tree | 엣지 → OPC → 태그, Verbindungsstatus-Punkt und aktuellster Wert |
| ② | Panel-Kopf | CSV-Icon — Download des Address Space |
| ③ | Node-Details | Informationen des ausgewählten Nodes und Zeitreihe |
- Implementierung: Eclipse Milo 1.1.8
- Transport: Nur
opc.tcp(UA Binary). Endpunkt-Pfade sind/opcua—opc.tcp://<호스트>:12000/opcua(TCP-Port) ·opc.tcp://<호스트>:12443/opcua(«TLS»-Port). 12443 ist kein HTTPS, sondern opc.tcp mit Security Policy. - Security policies: Basic256Sha256 / Aes128_Sha256_RsaOaep / Aes256_Sha256_RsaPss — jeweils Sign · SignAndEncrypt, für beide Ports.
- None (Keine Sicherheit): Bei
opc.ua.server.security.none=yes(Standard) wird der Session-Endpunkt nur am TCP-Port geöffnet. Discovery (/opcua/discovery) ist spezifikationsgemäß immer «None», aber Sessions können nicht geöffnet werden. - User token: Anonymous (
opc.ua.server.anonymous=yes, Standard) / UserName+Password / X.509 (nur Zertifikate in der Server-Trust-Liste). - Server-Zertifikat: Wird beim ersten Start als selbstsigniertes Zertifikat (RSA 2048) erstellt und unter
$PE_DATA_DIR/pp-data/opcua/abgelegt — bleibt auch nach Upgrades identisch, ebenso wie die Trust-Liste. - PubSub: Nicht vorhanden — bei Bedarf für Publikationen Sparkplug B verwenden.
Navigieren Sie über das Icon OPC UA Server im linken Menü oder direkt zu http://<gateway>/ui/opcua.
1. Bildschirmaufbau
Die Ansicht ist in sechs Tabs im Kopfbereich unterteilt. Durch das Anhängen von #server · #nodes · #sessions · #certs · #client-certs · #accounts an die URL wird der jeweilige Tab direkt geöffnet; andernfalls wird der zuletzt im Browser aufgerufene Tab angezeigt.
| Tab | Inhalt |
|---|---|
| Server-Informationen | Serverstatus · Betriebsdauer, aktuelle Sessions · Subscriptions · Anzahl exponierter Nodes. TCP / TLS Endpunkt-URLs (Kopierfunktion) für externe Clients und Badges der tatsächlich bereitgestellten Security Policies pro Endpunkt. Ein-/Aus-Schalter für anonymen Zugriff · endpunktlose Sicherheit, Anzahl der Client-Zertifikate · Konten, Server-Zertifikat (Subject · SHA-1 Fingerprint · Gültigkeit · Key). |
| Nodes | Linker Node-Tree (엣지 → OPC → 태그, Verbindungsstatus-Punkt jedes OPCs (Statusname bei Hover) und Tag-Anzahl, aktuellster Wert jedes Tags) und rechte Node-Details (Metadaten + Echtzeitwert + bei numerischen/booleschen Tags Zeitreihen-Diagramm). Über das CSV-Icon im Panel-Kopf kann der Address Space heruntergeladen werden. |
| Verbindungsstatus | Anzahl aktueller Sessions · Subscriptions · Überwachungspunkte, Anzahl abgelehnter Verbindungen, Session-Liste. |
| Client-Zertifikate | Liste der abgelehnten · vertrauenswürdigen Client-Zertifikate, die einen Sicherheitskanal angefordert haben, [Vertrauen] [Auf Ablehnungsliste setzen] [Löschen], Server-Zertifikat [Download (.der)]. |
| Client-Verbindungszertifikat | Zertifikat, das verwendet wird, wenn das Edge als Client an einen externen OPC UA Server bindet. Siehe OPC UA Protokoll. |
| Konten | Verwaltung des Standard-Administrators + zusätzlicher Konten (Read-Only / Read-Write). |
Der Host der Endpunkt-URL ist opc.ua.server.domain. Wenn dieser Wert ein Loopback ist (127.0.0.1 · localhost · 0.0.0.0, Installationsstandard), generiert der Browser die URL basierend auf dem Host, mit dem der Browser verbunden ist — damit eine kopierte URL aus der Ferne nicht auf den eigenen PC verweist.
2. NodeId-Konvention
Jeder Tag wird als OPC-UA NodeId wie folgt exponiert. Die Wurzel des Address Space ist die Edge ID (Objects), darunter befinden sich OPC-Verbindungordner und darin die Tags.
ns=2;s=<EDGE_ID>.<OPC_ID>.<TAG_ID>
Beispiel: ns=2;s=EDGE_00303.OPC_00303.TAG_TEST_00042
- Wenn ein Tag einer Tag-Gruppe zugewiesen ist, wird es unter dem OPC-Ordner im Ordner
GROUP.<그룹>geführt, die NodeId des Tags bleibt jedoch im oben genannten Format. - Jeder OPC-Ordner enthält einen Ordner
_Status, derConnected·State·LastError·LastCollectedAt·CycleMsin einem 2-Sekunden-Intervall bereitstellt (Read-Only). - Wenn
edge.idleer ist oder nicht dem FormatEDGE_+ Großbuchstaben · Ziffern ·_entspricht, wird kein Name generiert und der OPC-UA Server wird nicht gestartet (ERROR-Log).
Die NodeId in früheren Versionen war EDGE.<SITE_ID>.<OPC_ID>.<TAG_ID>. Jetzt ist die Wurzel die Edge ID und es gibt keine Seitenhierarchie. Da es keine Kompatibilitätsalias gibt, müssen die NodeIds in SCADA nach einem Upgrade neu konfiguriert werden.
Externe Clients (UaExpert, KEPServerEX, Ignition etc.) können diese NodeIds direkt für Subscriptions nutzen. Über die Kopieren-Schaltfläche rechts neben der NodeId im Detailpanel kann diese einfach in die Zwischenablage übernommen werden.
3. Node-Tree — Suche / Aktualisierung
- Die Eingabe von Text in das Suchfeld oben im Tree filtert die Namen von Trees, OPCs und Tags per Echtzeit-Teilübereinstimmung. Wenn eine Übereinstimmung bei einem Kind-Element vorliegt, werden die Elternelemente (OPC, Edge) automatisch aufgeklappt.
- Die Aktualisierungsschaltfläche (↻) im Kopfbereich aktualisiert den Tree und die Informationen in allen Tabs. Da die Daten normalerweise automatisch aktualisiert werden, ist diese Funktion selten erforderlich.
- Über die ◂/▾ Umschalter in jeder Zeile können Subtrees zu- oder aufgeklappt werden. Bei einer aktiven Suche werden diese automatisch aufgeklappt, um Treffer anzuzeigen, und beim Leeren der Suche in den vorherigen Zustand zurückgesetzt.
- Automatische Kürzung langer Werte (Ellipsis) — Wenn der aktuelle Wert eines Tree-Nodes die Spaltenbreite überschreitet, wird er als
text-overflow: ellipsismit…dargestellt. Beim Hovern wird der gesamte Klartext als Tooltip angezeigt — ein Schutzmechanismus, damit JSON- oder lange STRING-Werte das Tree-Layout nicht zerstören.
Die im Tree angezeigten Werte werden automatisch alle 2 Sekunden aktualisiert, solange der Node-Tab sichtbar ist (/ui/opcua/tree). Die Tree-Struktur, der Aufklappzustand, die rechten Details und Diagramme bleiben dabei erhalten.
4. Node-Details + Zeitreihen-Diagramm
Beim Klicken auf eine Tag-Zeile werden rechts folgende Informationen angezeigt:
- NodeId (kopierbar)
- Tag ID / DataType / PLC Address / Alias / Description
- Value (Aktueller Wert + letzte Aktualisierungszeit, bis ms)
- Status (
OK/ERROR (메시지))
Je nach Werttyp ändert sich die Art des Diagramms automatisch.
4.1 Numerisch / Boolean (ECharts Line Chart)
Wenn der Wert numerisch (Integer/Long/Float/Double etc.) oder boolean ist, wird ein ECharts Zeitreihen-Liniendiagramm gezeichnet.
| Chart-Funktion | Beschreibung |
|---|---|
| Bereichswahl | Über das Combo-Menü oben rechts im Chart wird 1분/5분/10분/30분/1시간(default)/3시간/12시간/24시간 gewählt — historische Daten aus Cassandra(tm_tag_point) werden sofort abgerufen und neu gezeichnet |
| dataZoom-Slider | Grauer Drag-Balken am unteren Rand des Charts — horizontaler Zoom / Pan |
| Automatische Ergänzung | Das 2-Sekunden-Polling fügt neue Werte dem Chart hinzu |
| Tooltip | Bei Mouse-Over Anzeige von Zeit (ms) + Wert |
| Boolean | Visualisierung des 0/1-Toggles in Form eines step end (Stufenprofil) |
| Sampling | Behält bis zu 5.000 Punkte; darüber hinaus werden die ältesten Punkte entfernt (lttb Downsampling) |
4.2 STRING (vis-timeline Box Chart)
Wenn der Wert ein STRING ist, wird anstelle eines ECharts-Liniendiagramms ein vis-timeline Range Box Chart gezeichnet. Dabei werden Intervalle, in denen derselbe Wert fortlaufend auftritt, als ein Block zusammengefasst, um Zustandsänderungen visuell hervorzuheben.
| Element | Beschreibung |
|---|---|
| Box = Intervall identischer Werte | Beispiel: Wenn "RUNNING" von 12:00 bis 12:35 beibehalten wird, ist dieser Zeitraum ein einziger Block |
| Box-Farbe | Automatisch basierend auf dem Wert-Hash — derselbe Text hat immer dieselbe Farbe |
| Box-Label | Klartextwert (bei langen Werten Volltext bei Hover) |
| Zeitachsen-Zoom/Pan | Standard vis-Interaktionen (Mausrad / Drag) |
| Aktualisierung | Beim Polling wird die Historie aufsteigend (ASC) sortiert und der gesamte Datensatz neu aufgebaut (kein Flackern bei geringen Änderungen) |
| Node-Wechsel | Instanz mittels disposeStringTimeline() zerstört + Chart für den neuen Node neu erstellt |
STRING-Diagramme eignen sich hervorragend zur Übersicht von nicht-numerischen Zeitreihen, wie z. B. State Machine-Logs(
READY → RUNNING → ERROR → IDLE). Die gleiche Farbkennung wird auch in der Ansicht Tag-Wert-Trend verwendet.
5. Edge-System-Tags
In der Tree-Ansicht erscheint automatisch eine Systemverbindung namens OPC_SYSTEM_<EDGE_ID>. Diese enthält 38 System-Tags, die den Status des Gateways selbst als OPC-UA Nodes exponieren. Die Tag-IDs liegen zwischen TAG_<EDGE_ID>_90000 und TAG_<EDGE_ID>_90037.
Repräsentative Tags:
| Tag-Name | Bedeutung |
|---|---|
THREAD_COUNT | Anzahl der JVM-Threads |
TAG_COUNT | Gesamtzahl registrierter Tags |
SERVER_STARTED_TIMESTAMP | Startzeitpunkt der Edge (Epoch ms) |
PLC_CON_CONNECTED_COUNT | Anzahl aktuell verbundener Verbindungen (OPC) |
MEMORY_USED_PERCENT | Speicherauslastung (%) |
Der Verbindungsstatus der Systemverbindung wird immer als CONNECTED angezeigt (da es sich um das eigene System handelt, existiert kein Verbindungsbegriff), und es gibt keinen Ordner _Status.
6. Nutzung mit externen Clients — Ablauf
- Kopieren Sie die Endpunkt-URL aus dem Tab Server-Informationen (Beispiel:
opc.tcp://<gateway>:12000/opcua). Ohne den Pfad/opcuaerfolgt keine Verbindung — der Server lehnt das HELLO mitBadTcpEndpointUrlInvalidab. - Fügen Sie in einem OPC-UA Client (UaExpert, KEPServerEX etc.) einen neuen Server hinzu → URL eingeben → Security Policy wählen.
- Wenn Endpunkte ohne Sicherheit aktiviert sind, ist ein Zugriff über den TCP-Port mittels
Nonemöglich. - Bei Zugriff über eine Security Policy (z. B. Basic256Sha256) lehnt der Server das Client-Zertifikat zunächst ab. Gleichen Sie den Fingerprint in der Liste Abgelehnt im Tab Client-Zertifikate mit dem Zertifikat der SCADA ab und klicken Sie auf [Vertrauen] — dies gilt ab der nächsten Verbindung ohne Neustart. Falls der Client das Server-Zertifikat ebenfalls vertrauen muss, laden Sie es über [Download (.der)] herunter.
- Wenn Endpunkte ohne Sicherheit aktiviert sind, ist ein Zugriff über den TCP-Port mittels
- Authentifizierungsmodi:
- Anonymous — Wenn im Tab Server-Informationen der anonyme Zugriff aktiviert ist, erfolgt der Zugriff direkt. Anonyme Sessions sind nur lesend.
- Username / Password — Standard-Administrator(
opc.ua.server.user/opc.ua.server.password) oder ein im Tab Konten hinzugefügtes Konto. - X.509 — Nur Zertifikate, die in der Server-Trust-Liste stehen, werden akzeptiert.
- Abonnieren Sie nach dem Verbindungsaufbau die Tags im NodeId-Format
ns=2;s=....
7. Konten · Schreiben
- Der Standard-Administrator(
opc.ua.server.user/password) hat Lese- und Schreibrechte und kann nicht aus der Ansicht gelöscht werden. Das Passwort kann im Einstellungsbildschirm geändert werden. - Zusätzliche Konten werden im Tab Konten erstellt — die ID beginnt mit Buchstaben oder Ziffern und darf nur Buchstaben, Ziffern und
._-enthalten (bis zu 64 Zeichen, ID des Standard-Administrators nicht möglich), das Passwort muss 8–128 Zeichen lang sein. Die Berechtigungen sind Read-Only / Read-Write. Berechtigungsänderungen gelten sofort für offene Sessions; Löschungen, Deaktivierungen oder Passwortänderungen führen zum Abbruch der Session des betroffenen Kontos. - Wenn eine nicht-anonyme Session (Standard-Administrator, Read-Write-Konto, vertrauenswürdiges X.509-Zertifikat) in einen Tag-Node schreibt, wird dieser Wert an die entsprechende PLC übertragen (gleicher Ablauf wie beim Treiber-Schreiben, Protokollierung von Konto, Security Policy und Zugriffs-IP in
tm_tag_write). Der Node-Wert ändert sich nur, wenn das PLC-Schreiben erfolgreich war. - In folgenden Fällen wird das Schreiben abgelehnt:
| Ergebnis | Ursache |
|---|---|
Bad_NotWritable | Read-Only Tag(client_access=R) — für alle Benutzer |
Bad_UserAccessDenied | Anonyme Session, Read-Only-Konto oder im HA-Paar besitzt diese Edge keine Schreibrechte für die PLC |
Bad_InternalError | PLC-Schreibvorgang fehlgeschlagen oder Schreibpfad während der Startphase noch nicht bereit |
opc.ua.server.anonymous und opc.ua.server.security.none sind standardmäßig beide auf yes gesetzt. In diesem Zustand kann jeder Client im Netzwerk alle Tags lesen, ohne Zertifikat oder Passwort (das Schreiben in anonymen Sessions ist jedoch gesperrt). Deaktivieren Sie im Betrieb im Einstellungsbildschirm unter dem Tab OPC UA Server die Optionen Anonymen Zugriff erlauben und Sicherheitslose Endpunkte.
8. Fehlerbehebung
| Symptom | Prüfpunkt |
|---|---|
| OPC im Tree nicht sichtbar | Ist 자주 하는 작업 → 새 PLC 연결 추가 abgeschlossen? Ist die Option Automatisch starten der Erfassung des Gateways für dieses OPC aktiviert? |
Wert neben Tag wird als - angezeigt | Der entsprechende Tag wurde noch nie aktualisiert. Erfassung starten / OPC-Verbindung / Quality prüfen |
Client-Verbindung schlägt mit BadTcpEndpointUrlInvalid fehl | Das Ende der Endpunkt-URL /opcua fehlt |
| Im Tree sichtbar, aber externer Client findet NodeId nicht | Tippfehler oder Verwendung einer NodeId im Format EDGE.<SITE_ID>... aus Versionen vor 2026.11 (§2) |
| Tab Server-Informationen zeigt «Gestoppt» | edge.id ist leer oder falsch formatiert, oder PE_DATA_DIR konnte nicht bezogen werden — in beiden Fällen wird der Server nicht gestartet und ein ERROR-Log erstellt |
| Verbindung über Security Policy wird abgelehnt | Client-Zertifikat noch nicht vertrauenswürdig — im Tab Client-Zertifikate auf [Vertrauen] klicken |
Verbindung über None nicht möglich | Sicherheitslose Endpunkte sind deaktiviert oder es wurde über Port 12443 zugegriffen (None-Sessions nur am TCP-Port) |
Schreiben schlägt mit Bad_NotWritable / Bad_UserAccessDenied fehl | Siehe Tabelle in Abschnitt 7 |
| Diagramm ist leer | Es gibt noch keine Cassandra-Historie für diesen Tag (gerade registrierter Tag) — nach kurzer Zeit werden Punkte hinzugefügt |
| Diagramm erscheint unruhig | Durch Erweitern des Bereichs auf 24 Stunden erfolgt ein automatisches Downsampling, was die Darstellung glättet |
| Client vertraut Server-Zertifikat nicht | Selbstsigniertes Zertifikat des Gateways — im Client auf «Trust» setzen oder das über [Download (.der)] bezogene Zertifikat importieren |
9. Weiterführende Informationen
- Node-RED (
/ui/flow) — Verarbeitung/externer Versand derselben Tag-Werte über Flows. Siehe자주 하는 작업 → Node-RED 로 자동화 / IIoT 플로우. - REST API — Dieselben Daten können direkt per HTTP abgerufen werden. Siehe
고급 / 통합 파트너용 → REST API. - Treiber Technisches Referenzhandbuch → OPC-UA — Beschreibung der OPC-UA Client-Seite des Gateways (Pfad zum Abrufen von Daten von einem externen OPC-UA Server).