OPC UA · IEC 62541 · Informationsmodell · Sicherheit · Sessions · 10 Min. Lesezeit

OPC UA Architektur: Informationsmodell, Sicherheit, Sessions und Transport

OPC UA (IEC 62541) ist ein 13-teiliger Standard, der eine plattformunabhängige, serviceorientierte Architektur für die industrielle und gebäudetechnische Automatisierungskommunikation definiert. Im Gegensatz zu seinem Vorgänger OPC Classic (der nur Windows COM/DCOM unterstützte) läuft OPC UA auf jedem Betriebssystem, enthält ein vollständiges Sicherheitsmodell und bietet ein einheitliches Informationsmodell, das jeden Server selbstbeschreibend macht – wodurch die Notwendigkeit externer Datenwörterbücher bei der Integration von BMS, SCADA und IoT-Plattformen entfällt.

IEC 62541 Standardstruktur

IEC 62541 besteht aus 13 nummerierten Teilen. Die Teile 1–7 definieren die Kernarchitektur; die Teile 8–14 decken Mappings, Sicherheit und Profile ab. Für Gebäudeautomationsintegratoren sind die relevantesten Teile 1 (Konzepte), 3 (Address Space Model), 4 (Dienste), 6 (Mappings – Kodierung und Transport), 7 (Profile) sowie die Begleitspezifikation IEC 62541-100 (OPC UA für Gebäude).

TeilTitelRelevanz
IEC 62541-1Konzepte und ÜbersichtGrundlegende Architektur, Dienstmodell, Informationsmodellkonzept
IEC 62541-3Adressraum-ModellNodeClass-Typen, Referenzen, Attribute – das Datenmodell-Rückgrat
IEC 62541-4DiensteRead, Write, Browse, Subscribe, Call-Dienstesets – alle Server-APIs
IEC 62541-6MappingsBinäre Kodierung (UA Binary), XML-Kodierung, opc.tcp-Transport, HTTPS, WebSockets
IEC 62541-7ProfileServer-, Client- und Transportprofile für Konformitätstests
IEC 62541-12Discovery und globale DiensteLokaler Discovery-Server (LDS), Globaler Discovery-Server (GDS) für Zertifikatsverwaltung
IEC 62541-100OPC UA für GebäudeIFC-abgebildetes Informationsmodell für Räume, Zonen, HLK, Energiemessung

Informationsmodell: NodeClass-Typen und Referenzen

Jedes Datenelement in einem OPC UA-Server wird als Knoten im Adressraum dargestellt. Knoten haben ein NodeClass-Attribut, das ihre Rolle definiert. Knoten sind durch typisierte Referenzen miteinander verbunden – z. B. HasComponent, HasProperty, Organizes, HasSubtype. Dadurch entsteht ein gerichteter Graph, den Clients durchsuchen können, um Serverinhalte zu entdecken, ohne die Datenstruktur vorher zu kennen.

NodeClassZweckBeispiel im BMS
ObjektContainer, der zusammengehörige Knoten gruppiert; selbst kein WertAHU_01-Objekt, das alle AHU-Variablen gruppiert
VariableEnthält einen typisierten Wert; lesbar und optional beschreibbarSupplyAirTemp (Float, °C), FanSpeed (UInt16, RPM)
MethodeAufrufbare Funktion; Eingabe- und AusgabeargumenteResetAlarm(), SetOperatingMode(mode: Int32)
AnsichtBenannte Teilmenge des Adressraums für gefiltertes BrowsenEnergyMeteringView zeigt nur kWh-Knoten an
DatentypDefiniert skalaren oder strukturierten Typ, der von Variablen verwendet wirdEnumHvacMode {Auto=0, Heating=1, Cooling=2}
ObjectTypeVorlage für Objektknoten (wie eine Klassendefinition)HVACUnitType mit Standardkomponenten
VariableTypeVorlage für Variable-Knoten mit StandardattributenAnalogItemType mit EngineeringUnits-Eigenschaft
ReferenceTypeDefiniert die Semantik einer Referenz zwischen KnotenHasComponent, HasProperty, Organizes

Adressraum: Namespaces und durchsuchbarer Baum

Der Adressraum ist als durchsuchbarer Baum strukturiert. Jeder Knoten wird durch eine NodeId identifiziert, die aus einem Namespace-Index und einem Identifier (numerisch, String oder GUID) besteht. Namespace 0 (ns=0) ist immer der OPC UA-Standard-Namespace, der integrierte Typen und Standardknoten enthält. Namespace 1+ werden vom Server für hersteller- oder anwendungsspezifische Inhalte vergeben. Clients entdecken die Namespace-Tabelle über den GetNamespaceArray-Dienstaufruf.

OPC UA-Adressraum – BMS-Beispiel

Objects (ns=0;i=85)  ← OPC UA standard root
├── Server (ns=0;i=2253)  ← always present, server diagnostics
└── Building_01 (ns=1;s=Building_01)  ← application namespace
    ├── Floor_02 (ns=1;s=Building_01/Floor_02)
    │   ├── AHU_01 (ns=1;s=AHU_01)  [Object]
    │   │   ├── SupplyAirTemperature (ns=1;s=AHU_01.SAT)  [Variable, Float]
    │   │   │   ├── EngineeringUnits  [Property: "°C"]
    │   │   │   ├── EURange  [Property: Low=0, High=60]
    │   │   │   └── StatusCode  [Property: Good/Bad/Uncertain]
    │   │   ├── FanSpeed (ns=1;s=AHU_01.FanRPM)  [Variable, UInt16]
    │   │   ├── DamperPosition (ns=1;s=AHU_01.Damper)  [Variable, Byte, 0–100%]
    │   │   └── ResetAlarm (ns=1;s=AHU_01.ResetAlarm)  [Method]
    │   └── VAV_Zone_2A (ns=1;s=VAV_2A)  [Object]
    │       ├── RoomTemperature (ns=1;s=VAV_2A.RoomTemp)  [Variable, Float]
    │       └── Setpoint (ns=1;s=VAV_2A.SP)  [Variable, Float, writable]
    └── Meters (ns=1;s=Meters)
        └── Main_kWh (ns=1;s=Meter.kWh)  [Variable, Double]

Clients navigieren vom Objects-Stammverzeichnis aus mit dem Browse-Dienst, indem sie hierarchischen Referenzen (HasComponent, Organizes, HasProperty) folgen, um Knoten zu entdecken. Der TranslateBrowsePathsToNodeIds-Dienst ermöglicht es Clients, direkt zu einem bekannten Pfad zu springen, ohne den gesamten Baum zu durchlaufen – nützlich für leistungssensitives Pollen bekannter Variablen.

Transportoptionen

OPC UA definiert drei Transportbindungen. Die Wahl beeinflusst Latenz, Firewall-Durchlässigkeit und Protokoll-Overhead. OPC UA Binary über TCP ist der Standard für die BMS-Integration auf Feldebene; HTTPS und WebSockets werden für Cloud- oder browserzugängliche Schnittstellen verwendet.

TransportURI-PräfixStandard-PortOverheadAnmerkungen
OPC UA TCPopc.tcp://4840Niedrigster – binäres FramingAm besten für die Fabrikhalle; persistente TCP-Verbindung; nicht firewallfreundlich
OPC UA HTTPSopc.https://443Mittel — HTTP/1.1 + TLSFirewallfreundlich; kann Proxys durchqueren; höhere Latenz pro Anfrage
OPC UA WebSocketsopc.wss://443Niedrig — WebSocket-FramingBrowser-kompatibel; persistent; für Web-SCADA und Cloud-Gateways verwendet

Empfehlung für die Fertigungsebene: Verwenden Sie immer opc.tcp:// innerhalb eines Gebäude-LANs oder OT-VLANs. Die persistente TCP-Verbindung eliminiert den TLS-Handshake-Overhead pro Anfrage und bietet die niedrigste Abonnement-Benachrichtigungslatenz. Reservieren Sie HTTPS für standortübergreifende oder Cloud-Integrationen, bei denen Firewall-Port 4840 nicht geöffnet werden kann.

Sicherheitsmodi und Sicherheitsrichtlinien

Die OPC UA-Sicherheit wird auf der Ebene des Secure Channel ausgehandelt, bevor Anwendungsnachrichten ausgetauscht werden. Der Server gibt seine unterstützten EndpointDescriptions (Kombinationen von MessageSecurityMode und SecurityPolicyUri) bekannt. Der Client wählt eine aus, wenn er eine Verbindung öffnet. Verwenden Sie None niemals in einer Produktionsumgebung – es überträgt alle Daten im Klartext ohne Integritätsschutz.

MessageSecurityModeSchutzAnwendungsfall
KeineKeine Signierung, keine VerschlüsselungNur Labor / Entwicklung – niemals Produktion
SignierenHMAC-Integrität für Nachrichten; keine Payload-VerschlüsselungLeistungskritisches SCADA im vertrauenswürdigen geschlossenen LAN
SignierenUndVerschlüsselnHMAC + AES-Verschlüsselung aller Nachrichten-PayloadsStandard für alle BMS- und Cloud-Integrationen

Die SecurityPolicyUri wählt die kryptografischen Algorithmen aus. Aktuelle empfohlene Richtlinien (Stand IEC 62541-7:2022) sind:

SecurityPolicyUriAsymmetrisch (Schlüsselaustausch)Symmetrisch (Daten)Status
Basic128Rsa15RSA-PKCS1-v1.5 / 1024-BitAES-128-CBCVeraltet — nicht verwenden
Basic256RSA-OAEP / 1024-BitAES-256-CBCVeraltet — nicht verwenden
Basic256Sha256RSA-OAEP / 2048-Bit + SHA-256AES-256-CBC + SHA-256 HMACAktuell – weitgehend unterstützt
Aes128Sha256RsaOaepRSA-OAEP / 2048-Bit + SHA-256AES-128-CBC + SHA-256 HMACAktuell – geringere CPU-Last
Aes256Sha256RsaPssRSA-PSS / 2048-Bit + SHA-256AES-256-CBC + SHA-256 HMACEmpfohlen – stärkste, verwenden wo unterstützt

Hinweis zur Abkündigung: Basic128Rsa15 und Basic256 verwenden 1024-Bit-RSA-Schlüssel und SHA-1, die beide als kryptografisch schwach gelten. IEC 62541-7:2022 kennzeichnet sie als veraltet. Kepware KEPServerEX 6.x und Siemens DESIGO CC unterstützen Basic256Sha256 und Aes256Sha256RsaPss. Deaktivieren Sie veraltete Richtlinien in der Produktionsserverkonfiguration, um Downgrade-Angriffe zu verhindern.

Authentifizierungsmethoden

Die Authentifizierung erfolgt auf der Sitzungsebene (oberhalb des sicheren Kanals). OPC UA definiert drei ActivateSession-Identitätstoken-Typen. Die zertifikatsbasierte Authentifizierung ist die sicherste und wird für industrielle Sicherheitsstandards wie IEC 62443-3-3 Security Level 2 gefordert.

Token-TypBeschreibungEmpfehlung
AnonymousIdentityTokenKeine Anmeldeinformationen – jeder Client kann eine Sitzung erstellenIn Produktion deaktivieren; nur für schreibgeschützte öffentliche Dashboards akzeptabel
UserNameIdentityTokenBenutzername und Passwort; Passwort mit öffentlichem Serverschlüssel verschlüsseltAkzeptabel für Bedienerzugriff; mit Sign+Encrypt-Transport verwenden
X509IdentityTokenClient legt gültiges X.509-Zertifikat vor; Server validiert gegen VertrauenslisteErforderlich für Maschine-zu-Maschine-Integration und IEC 62443 SL-2-Konformität

Sitzungen und Abonnements

Eine Session wird nach der Authentifizierung auf dem Secure Channel aufgebaut. Sessions haben eine RequestedSessionTimeout (typischerweise 60–3600 Sekunden); sendet der Client vor Ablauf kein Keep-Alive, löscht der Server die Session und alle zugehörigen Abonnements. Clients sollten die Wiederverbindung mit Session-Wiederherstellung oder -Übertragung handhaben.

Abonnements sind der primäre Mechanismus für effizientes Datenmonitoring. Anstatt Variablen wiederholt abzufragen (was unnötigen Traffic erzeugt), erstellen Clients ein Abonnement mit einem PublishingInterval und fügen MonitoredItems hinzu. Der Server tastet jedes MonitoredItem im SamplingInterval ab und stellt Wertänderungen in eine Warteschlange; wenn das PublishingInterval auslöst, werden alle anstehenden Benachrichtigungen in einer einzigen PublishResponse-Nachricht gesendet.

Abonnement-Parameter – Schlüsselfelder

CreateSubscription request:
  RequestedPublishingInterval: 1000  // ms — how often server sends Publish
  RequestedMaxKeepAliveCount: 10     // Publish cycles before keep-alive sent
  RequestedLifetimeCount: 30         // LifetimeCount × PublishingInterval = session timeout
  MaxNotificationsPerPublish: 1000   // cap notifications per PublishResponse
  PublishingEnabled: true

MonitoredItem parameters:
  SamplingInterval: 500              // ms — server samples item at this rate
                                     // must be ≥ server MinSupportedSampleRate
  QueueSize: 10                      // buffer for overrun; 1 = last value only
  DiscardOldest: true                // discard oldest on queue overflow
  DeadbandType: None / Absolute / Percent
  DeadbandValue: 0.5                 // Absolute: only report if change > 0.5 units
                                     // Percent: only report if change > 0.5% of EURange

Totbandfilterung für HLK-Sensoren: Das Setzen eines absoluten Totbands von 0,2–0,5 °C bei Temperaturvariablen verhindert, dass der Server das Abonnement mit trivialen, rauschbedingten Updates überflutet. Bei Energiezählern ist ein prozentuales Totband von 1 % bei kWh-Zählern üblich. Die Totbandfilterung erfolgt serverseitig und reduziert sowohl CPU-Last als auch Netzwerkverkehr.

OPC UA Companion Specifications

Companion Specifications erweitern den OPC-UA-Basisstandard um domänenspezifische Informationsmodelle. Sie definieren standardisierte ObjectTypes, VariableTypes und Namespace-URIs, sodass Geräte verschiedener Hersteller Daten in einer konsistenten, interoperablen Struktur bereitstellen. Gebäudeautomationsingenieure sollten die folgenden Companion Specifications kennen:

SpezifikationGeltungsbereichWichtige Objekttypen
IEC 62541-100 (OPC UA für Gebäude)Gebäudeautomation: Räume, Zonen, Anlagen, EnergiemessungBuildingType, SpaceType, HVACSystemType, EnergyMeterType
OPC UA für FDI (Feldgeräteintegration)Feldgeräte: Sensoren, Aktoren, ProzessinstrumenteDeviceType, FunctionBlockType, ParameterType
OPC UA für PLCopenPLC-Programmelemente: Funktionsbausteine, Alarme, TasksFunctionBlockType, AlarmType, TaskType
OPC UA für I4.0 Asset Administration ShellDigitaler Zwilling: Asset-Metadaten, Submodelle, EigenschaftenAssetAdministrationShellType, SubmodelType
OPC UA für Geräte (DI)Basisinformationen zu HardwaregerätenDeviceType, ComponentType, SoftwareType

Benötigen Sie eine OPC UA-Serverkonfiguration für Ihr BMS-Projekt?

Wir konfigurieren und sichern OPC UA-Server auf Siemens DESIGO CC, Beckhoff TwinCAT und Kepware KEPServerEX – einschließlich Zertifikatsverwaltung, Härtung der Sicherheitsrichtlinien und Abonnementoptimierung für hochdichte Sensorinstallationen.

Angebot anfordern →
Lade ...
Zum Seitenanfang