OPC UA – Was ist das eigentlich?

OPC UA – was ist das eigentlich?

Zur Ermöglichung einer Kommunikation zwischen unterschiedlichen Systemen (z.B. einer Kunststoffverarbeitungsmaschine / Spritzgießmaschine / Extruder) und einer PC-Anwendung (z.B. einem virtuellen Assistenzsystem) oder übergeordneten Organisationssystemen (z.B. Produktleitsysteme, BDE etc.) ist es notwendig, dass bekannt ist in welchem Datenmodell die Signale von der jeweiligen Anlage gesendet werden.

Zur Veranschaulichung der Hintergründe einer solchen Kommunikationsaufgabe wird zunächst in leicht verständlicher Form das OSI Schichtenmodell der Datenkommunikation erläutert. Dieses bildet die Basis für jede Art der digitalen Kommunikation und ist zum Verständnis einer Maschinenkommunikation hilfreich.

 

Hintergrund zur Realisierung einer digitalen Datenkommunikation

Das Basis Modell für nahezu jede Form der digitalen Datenkommunikation bildet das OSI Modell. Das OSI Modell wurde bereits 1984 eingeführt und unterteilt die Maschinenkommunikation in 7 hierarchische Ebenen. Für jede einzelne dieser Ebenen sind (verschiedene) Standards definiert. Das OSI Modell ist der bis heute gültige Standard zur Datenkommunikation in IT Systemen. Beim Versand einer digitalen Information durchlaufen die Daten hintereinander alle Stufen des OSI Modells von Stufe 1 bis Stufe 7 bzw. umgekehrt.

 

Um zu verstehen wie eine Datenkommunikation funktioniert, werden einmal die Aufgaben jeder einzelnen dieser 7 OSI Schichten an einem einfachen Beispiel – leicht verständlich und anschaulich – erläutert.

Das hier verwendet Beispiel für die Datenkommunikation sieht so aus, dass ein PC-Benutzer eine Eingabe mit der Tastatur vornimmt und einen kurzen Text erzeugt, der dann über das Internet versendet und auf einem entfernten PC wieder dargestellt werden soll – quasi also eine identische Aufgabe im Vergleich mit der Kommunikation eines Sensorwertes von einer Maschine an eine andere.

Der Mensch gibt seine Eingabe an seinem PC ein. Dafür verwendet er eine Anwendung, z.B. eine E-Mail Programm. Diese Anwendung ist Teil der Schicht 7 – wir beginnen die Erläuterung somit also am Ende des OSI Modells.

Schicht 7: Anwendungsschicht / Application Layer – z.B. Webbrowser

Die Anwendungsschicht ist das was der Benutzer sieht, die Anwendung die er auf seinem PC (oder mobile Device) geöffnet hat und mit der er interagiert. Hier können Interaktionen durchgeführt werden, Eingaben getätigt werden oder Ausgaben abgefragt werden. Der Programmcode der Anwendung wandelt die Eingaben in unterschiedlichste andere Datenformate um, was dem Anwender aber verborgen bleibt.

Die vom Menschen vorgenommene Eingabe in der Anwendung wurde von dieser in einem Datenformat gespeichert, welche für diese Anwendung sinnvoll ist, dies muss aber keinem Standard-Format entsprechen. Um eine Kommunikation mit anderen Systemen zu ermöglichen, ist es somit notwendig, diese individuelle Codierung in eine Standard Codierung umzuwandeln. Dies geschieht in der 6. Schicht.

 

Schicht 6 – Darstellungsschicht / Presentation Layer – z.B. ISO 8822 / X.216

Die Datendarstellungsschicht wandelt die Daten aus dem Format der Anzeige (z.B. ASCII) in eine unabhängige Form und ermöglicht somit den syntaktisch korrekten Datenaustausch zwischen unterschiedlichen Systemen, unabhängig von deren Anzeigeformat. Sie dient somit als Übersetzer zwischen verschiedenen Datenformaten.

Nachdem die Eingaben des Benutzers nun also in einem standardisierten Datenformat zur Verfügung stehen, kann der Transport der Daten beginnen. Softwaresysteme sind jedoch so aufgebaut, dass nicht jedes Softwaresystem eine eigene individuelle Kommunikationslösung generiert, sondern dass Softwaresysteme auf andere Anwendungen (sogenannte Dienste) zugreifen und sich derer Fähigkeiten bedienen. In einem Softwareprogramm, wie einem E-Mail Programm, existieren somit beispielsweise keinerlei Funktionen zur Datenkommunikation, sondern es werden lediglich die notwendigen Dienste angesprochen, die diese Funktion bereitstellen. Derartige Dienste sind in der Regel Standard-Komponenten des Betriebssystems, also beispielsweise Windows, Linux, Android, MacOS, etc. Im übertragenen Sinne ist ein solcher Dienst eine Ressource auf der die Anwendung aufbaut, wie die Stromversorgung eine Ressource eines Produktionsbetriebes ist, die man einfach nutzt anstatt den Strom selbst zu erzeugen.

Die Eingabe des Benutzers in der Anwendung (Schicht 7), die dann in einem Dienst aus Schicht 6 standardisiert wurde, wird nun an einen weiteren Dienst übergeben (Schicht 5), der eine Sitzung für den Datentransport aufbaut.

Für diesen Dienst ist die Realisierung der Kommunikation so etwas wie eine Art kleines Projekt. Dieses Projekt wird in Teilprojekte zerlegt und durchgeführt. Dieser Dienst achtet dabei auch darauf, dass im Falle von auftretenden Problemen (z.B. Datentransport wurde unterbrochen), die Gesamtaufgabe der Datenkommunikation am Ende erfolgreich abgeschlossen werden kann.

 

Schicht 5 – Sitzungsschicht / Session Layer – z.B. ISO 8326

Die Sitzungsschicht oder auch Kommunikationssteuerungsschicht sorgt für die Kommunikation von unterschiedlichen Prozessen oder Systemen miteinander. Dazu werden Dienste für einen organisierten und synchronisierten Datenaustausch zur Verfügung gestellt. Eine beispielhafte Funktion eines solchen Dienstes ist der Einsatz von Check-Points an denen eine auf der Transportschicht unterbrochene Kommunikation wieder nahtlos fortgeführt und synchronisiert werden kann.

Nachdem die Gesamtaufgabe der Datenkommunikation von diesem Dienst (Schicht 5) in Teilaufgaben zerlegt wurde, werden die einzelnen Teilaufgaben in den Versand gegeben, und damit einem Dienst der Schicht 4 (Transportschicht) zugeführt. Dort werden die einzelnen Daten erneut zerteilt, so dass kleine in sich abgeschlossene Elemente übertragen werden können.

 

Schicht 4 – Transportschicht / Transport Layer z.B. TCP, UDP

Auf dieser Ebene werden die Daten zwischen den weiter oben liegenden Ebenen und den darunter liegenden Ebenen transportiert. Innerhalb der Transportschicht werden die Daten segmentiert und organisatorisch abgestimmt und beispielsweise das Entstehen von Staus vermieden. In der Transportschicht werden die Daten, die von den weiter oben liegenden Schichten erzeugt werden in einzelne Segmente (Datenpakete) unterteilt, so dass auch riesige Daten in kleinen in sich gekapselten Elementen ihren Weg durch das Netzwerk finden. Heute gebräuchliche Transport Layer sind beispielsweise TCP/IP oder UDP.

Diese in der Transportschicht zerlegten kleinen Datenbausteine werden nun für die Übertragung vorbereitet. Dazu wird der Empfänger der Daten ausgelesen und es wird eine Route identifiziert, auf der die Datenpakete vom Ausgangspunkt zum Zielpunkt übertragen werden können. So können die Datenpakete beispielsweise von einem PC in Deutschland über einen Server in Frankfurt zu einem Server in Amsterdam und von dort zu einem PC in London übertragen werden. Diese Route ist der in der Vermittlungsschicht geplante Weg (Routing), den die einzelnen Datenpakete nehmen werden.

 

Schicht 3 – Vermittlungsschicht / Network Layer – z.B. IP

Auf Ebene 3 wird die Verbindung zwischen Sender und Empfänger aufgebaut, getrennt und überwacht. Ein häufig verwendeter Standard ist der IP Standard. Diese Ebene dient als Vermittlungsschicht. Dabei werden Aufgaben wie das „Weg-Suchen“ und die „Weitervermittlung“ von Daten übernommen. Eine Datenübertragung findet selten direkt vom Sender zum Zielempfänger statt, meist gehen die Daten über Zwischenstationen (Knoten). Die Knoten empfangen die Daten und leiten diese auf dem richtigen Weg (Routing) an den nächsten Knoten weiter, bis die Daten am Ziel angelangt sind. Typische Formate auf dieser Ebene sind IP, IPsec, etc.

Nachdem nun die Route festgelegt ist, werden die Daten an die Sicherungsschicht übergeben, in der die einzelnen kleinen Datenblöcke so vorbereitet werden, dass eine sichere und fehlerfreie Datenübertragung sichergestellt werden kann. Die Daten werde dazu so segmentiert, dass in jedem Datenpaket Informationen dazu vorhanden sind wie diese Daten am Anfang und am Ende aussehen, und welche Gesamtmenge an Daten (Prüfsumme) in diesen Daten enthalten ist. Diese Informationen werden jedem einzelnen Datenpaket hinzugefügt und an jedem Knoten auf der Route der Daten überprüft. Fehlt bei einem Datenelement diese Prüfinformation, der Anfang oder das Ende oder stimmt die Prüfsumme nicht mit der übermittelten Prüfsumme überein, werden diese Daten erneut übertragen, so lange bis die Daten korrekt übermittelt wurden.

 

Schicht 2 – Sicherungsschicht / Data Link Layer – z.B. MAC

Die Aufgabe des Data Link Layer ist die Sicherstellung einer zuverlässigen und fehlerfreien Übertragung. In dieser Ebene wird also beschrieben, auf welche Art und Weise der Datenfluss aufgebaut und getrennt wird, wie mit Fehlern umgegangen wird und wie der Datenstrom gehandelt wird. Zu dieser Schicht gehörige Regelungen sind beispielsweise MAC (Media Access Control) oder LLC sowie IEEE. Der Bit-Datenstrom wird aufgeteilt in Blöcke (Frames) und es werden Prüfsummen hinzugefügt, so dass fehlerhafte Blöcke erkannt werden können.

Hardware auf dieser Schicht: z.B. Switch

Zur physikalischen Datenübertragung, werden dann alle Datensegmente in digitale Daten (Bits) zerlegt und diese Signale werden in Form von Einsen und Nullen (digitale Signale) von Endpunkt zu Endpunkt übertragen.

 

Schicht 1 – Bitübertragungsschicht / Physical Layer – z.B. Ethernet

Die physische Ebene beschreibt den physischen Aufbau der Datenkommunikation. Ein Beispiel für den physischen Layer wäre der IEEE 802.3 Standard bzw. auch als Ethernet (Lan Kabel und RJ45 Stecker) bekannt. Auf dieser Ebene werden Bits übertragen, sozusagen also Einsen und Nullen.

Hardware auf dieser Schicht: Netzwerkleitungen, Stecker, etc.

 

Wenn nach Durchlaufen all dieser Schritte die Daten am Zielpunkt angelangt sind, durchwandern diese Daten alle Schichten von Schicht 1 – Schicht 7 erneut, so dass der Empfänger der abgesendeten Textnachricht diese in seiner individuellen Anwendung (z.B. einem anderen E-Mail Programm) und einer anderen Schriftart und Sprache (z.B. im Kyrillischen Alphabet) angezeigt bekommt.

 

Hinweis: Für die Erfüllung der Aufgaben innerhalb jeder einzelnen Schicht existieren mehrere unterschiedliche Möglichkeiten/Dienste. Als Transportprotokoll kann also beispielsweise TCP eingesetzt werden oder UDP oder Profibus, Modbus, Profinet (oder andere). Als Übertragungsschicht kann Ethernet oder WLAN eingesetzt werden, oder, oder oder. Jeder Dienst hat seine eigenen Besonderheiten.

Zudem haben sich für unterschiedliche Systeme in der Vergangenheit unterschiedliche Standards etabliert. PC Systeme arbeiten beispielsweise standardmäßig mit der TCP/IP (Ethernet) Kommunikation während ältere Maschinensteuerungen häufig auf die Kommunikation via Profibus (z.B. RS485) erreichbar sind. Exakt hier setzt OPC UA an…

 

Aber welchen Nutzen bringt diese OSI Schichtarchitektur nun?

Der Nutzen der OSI Architektur liegt darin, dass je nach Zweck und Umgebung für unterschiedlichste Szenarien fertige Dienste genutzt werden können. So ist es beispielsweise möglich, eine TCP/IP Kommunikation sowohl über kabelgebundene Netzwerktypen (Ethernet) als auch über drahtlose Netzwerke wie (WLAN 802.11) aufzubauen. Der besondere Vorteil liegt somit darin, dass der Anwendungsschicht (Schicht 7) völlig egal sein kann, ob über ein WLAN oder ein LAN kommuniziert wird. Die Software (z.B. das E-Mail Programm) funktioniert unabhängig davon völlig problemlos ohne irgendwelche Kommunikationswege oder Logiken in der Software zu ändern.

 

Und welche Aufgabe soll OPC UA nun eigentlich lösen?

Durch die Verwendung von OPC UA soll sichergestellt werden, dass eine sichere, einfache und robuste Kommunikation zwischen unterschiedlichsten Systemen realisiert werden kann.

Der Kommunikationsstandard OPC UA ersetzt dabei keine etablierten Kommunikationsprotokolle (z.B. TCP/IP, Profibus, etc.) sondern er definiert einen Rahmen wie verschiedene Systeme, unabhängig von deren Kommunikationsprotokollen miteinander kommunizieren können.

Ziel von OPC UA ist die Herstellung von Kommunikation zu jedem System, unabhängig davon welches Protokoll dort verwendet wird.

 

Beispiel:

Eine Software kommuniziert mit unterschiedlichsten Systemen und visualisiert in einem Graphen Informationen von allen Systemen gleichzeitig (z.B. Vipra® Graphs):

  • Benutzerinterface der Software
    • Software fungiert als OPC Client (integriert oder extern)
      • OPC Client kommuniziert mit OPC Server (integriert oder extern)
        • OPC UA Server kommuniziert über
          • Profibus mit SPS Maschinensteuerung
          • Profinet mit SPS Maschinensteuerung
          • Canbus mit SPS Maschinensteuerung
          • TCP/IP mit einem anderen System (SPS, PC)
          • RS232 mit einem anderen System (SPS, PC)
          • RS485 mit einem anderen System (SPS, PC)

 

OPC UA ersetzt somit nicht RS232, Profibus, RS485 oder TCP/IP sondern OPC UA legt fest, WAS über die jeweilige Schnittstelle WIE übertragen werden muss, um unabhängig von der Transportebene in gewohnter und identischer Weise auf diese Komponente zugreifen zu können.

 

Was sind dabei die Kernfunktionen die in dem Kommunikationsstandard OPC UA festgelegt werden?

Folgende Funktionen sind in dem Kommunikationsstandard OPC UA definiert:

  • Grundfunktionen
    • Auffindbarkeit: Systeme die OPC UA kommunikationsfähig sind sollen für andere Systeme problemlos im Netzwerk auffindbar sein
    • Strukturen: Alle Datenstrukturen sollen einheitlich sein, so dass z.B. Datei und Ordnerstrukturen erhalten bleiben und keine unstrukturierten Listen entstehen
    • Zugriff: Der Zugriff auf die Strukturen soll durch Zugangsberechtigungen kontrolliert werden können
    • Abonnements: Daten sollen abonniert werden können, so dass diese automatisiert permanent kommuniziert werden und nicht immer abgefragt werden müssen
    • Ereignisse: Festlegungsmöglichkeiten, welche Ereignisse automatisiert gemeldet werden sollen
    • Methoden: es existiert die Möglichkeit unterschiedliche Funktionen aus der Ferne zu starten
  • Plattform-Unabhängigkeit
    • Kompatibel zu PC-Systemen, cloudbasierte Server, beliebige SPS-Steuerungen, Mikrocontrollern
    • Kompatibel zu allen Betriebssystemen: Windows, Apple OSX, Android, Linux, etc.
  • Sicherheit:
    • Firewall-freundliche Gestaltung
    • Kontrollmöglichkeiten
  • Transport:
    • Definition einer Vielzahl von Protokollen von binärem Transport bis hin zu JSON
    • Sitzungsverschlüsselung, verschlüsselte Datenübertragung
    • Nachrichtensignaturen, Prüfung von Herkunft und Integrität der Daten
    • Authentifizierung, Zertifizierung der Zugriffserlaubnisse
    • Benutzerkontrolle, Zugriffsrechtdefinitionen
    • Protokollierung: Zugriffe werden protokolliert
  • Erweiterbarkeit:
    • Offene und wachsende Plattform in die neue Kommunikationsmöglichkeiten kontinuierlich eingebunden werden

 

Worin liegt jetzt der Vorteil zu den klassischen OPC-Versionen?

OPC UA ist der aktuellste OPC-Standard und löst damit vorangegangene OPC-Versionen ab. Bereits in den vorhergehenden Versionen wurden aber bereits erste grundlegende Schnittstellen definiert und der herstellerunabhängige Datenaustausch ermöglicht.

Die klassischen Versionen sind allerdings an ein Windows-Betriebssystem gebunden. Eine direkte Kommunikation über verschiedene Plattformen (Linux, Mac, Android etc.) ist damit nicht möglich. Zusätzlich werden dynamische TCP/IP Protokolle zur netzwerkübergreifenden Kommunikation verwendet. Dies führt häufig zu Firewallproblemen. Ein Umgehen dieser Probleme ist nur über Umwege möglich und ist mit einem erheblichen Aufwand verbunden. Eine gängige Lösung ist das Tunneling. Hierbei wird der Datenverkehr in einem einfachen TCP/IP Protokoll gekapselt, durch die Firewall transportiert und im Zielnetzwerk entpackt.

Wichtige OPC Komponenten wie OPC DA (Datenpunktorientierter Datenaustausch), oder OPC HDA (historische Datenpunkte) werden als Spezifikationen in OPC UA integriert. Diese Spezifikationen können unabhängig voneinander, je nach Anwendungsfall, verwendet werden.

OPC UA vereint nun alle klassischen Funktionen und ermöglicht zusätzlich eine plattformunabhängige, netzwerkübergreifende Kommunikation.

 

Wie werden die Aufgaben im OPC Netzwerk verteilt?

OPC verwendet ein Server-Client-Modell. Hierbei stellt der OPC Server die Basis der Kommunikation. Hier sind der OPC Standard, die OPC Schnittstelle und ein Kommunikationsprotokoll zur Steuerung implementiert. Das logische Gegenstück stellen die OPC Clients dar. Diese können aufgrund des implementierten OPC Standards mit beliebigen Servern verbunden werden und die Daten anwendungsspezifisch auslesen.

(Das virtuelle Assistenzsystem Vipra® kann beispielsweise sowohl die Rolle eines OPC Servers, als auch die eines OPC Clients einnehmen. Es kann somit Daten von allen OPC UA -fähigen Systeme empfangen, als auch Daten an alle OPC UA -fähigen Systeme senden.)

 

OPC UA – nochmal zusammengefasst:

Hinter OPC UA verbirgt sich somit die Beschreibung einer Struktur für eine offene Plattformkommunikation mit einer einheitlichen Architektur (OPC UA – Open Plattform Communication Unified Architecture) entwickelt von der gleichnamigen OPC Foundation, einer unabhängigen Institution.

Hinter diesem Kommunikationsstandard verbirgt sich eine Beschreibung, wie die Kommunikation stattzufinden hat und welche Besonderheiten dabei beachtet werden müssen. Jeder der diesen Standard verwendet, ist kompatibel zu allen anderen Systemen die ebenfalls diese Standards verwenden. Dabei ist die Beschreibung dieser Standards aber vollkommen „offen“ und für jeden zugänglich – es existieren somit keinerlei herstellerspezifische Besonderheiten oder Geheimnisse, wie bei einer sogenannten proprietären Kommunikationsschnittstelle.

Jeder der OPC UA Kommunikation beherrscht, kann somit mit einem anderen OPC UA Kommunikationssystem kommunizieren.

Der OPC UA Kommunikationsstandard ist aber nicht etwa eine Art Dienst oder eine Software und es ist auch keine Protokollbeschreibung wie TCP, IP, etc. In dem Kommunikationsstandard ist lediglich beschrieben, wie die Daten zu strukturieren sind und welche Formate und Dienste eingesetzt werden und in welcher Art diese miteinander kombiniert werden können.

 

Und welchem Konzept folgt die Datenstruktur?

Das grundlegendste Element der OPC UA-Datenstruktur ist ein Datenpunkt, der sogenannte Node. Ein Node  lässt sich vorzugsweise mit einem Objekt aus der objektorientierten Programmierung gleichsetzen.

Jeder Node besitzt Attribute. Diese können Nutz- bzw. Metadaten sein.  Alle Nodes stehen in einer entsprechenden Relation zueinander. Sie werden über Namensräume (engl. Namespaces), in einer Baumstruktur, organisiert.

Innerhalb eines jeden Namespaces ist jeder Node eindeutig bezeichnet. In einem anderen Namespace steht die Bezeichnung aber wieder zur Verfügung. Das sorgt für große Flexibilität und einen dynamischen Code, schafft aber auch komplexe Datenmodelle.

Eine Lösung kann hier die Implementierung von anwendungsspezifische Companion Specifications Plug-ins (bsp. EUROMAP) sein.

 

Stark vereinfachte Beispiele zur Veranschaulichung

Datenzugriff auf eine proprietäre Schnittstelle:

„HT1, 210.5, HT2, 211.5, HT3, 222.3, HT4, 221.0, UM, 75.9, STR, 55, NB, 33, SE, 1278936756123“

Daten sind aus einer solchen Schnittstelle lesbar, es fehlen aber die Strukturen und es ist oft nicht erkennbar um welche Art von Informationen es sich handelt. Der Hersteller kann diese Informationen natürlich leicht auslesen, da ihm die Struktur seiner Daten bekannt ist. Er weiß, dass sich hinter dem Kürzel „HT3“ der Wert der „Temperatur der Heizzone 3“ in der Einheit „°C“ verbirgt und kann dies abfragen. Jemand der diese Information nicht hat, muss dies erst aufwändig „entschlüsseln“.

Datenzugriff über OPC UA – Baumstruktur:

  • Extr:
    • Extr_Zyl_Temp
      • Extr_Zyl_Temp_1:             210.5
      • Extr_Zyl_Temp_2:             205.3
      • Extr_Zyl_Temp_3:             207.4
    • Extr_Antr_Data
      • Extr_Antr_Data_Drehz:     75.9
      • Extr_Antr_Data_Str:          55

In der OPC UA Struktur (insbesondere in Kombination mit einer Branchenspezifizierung wie z.B. EUROMAP) ist genau festgelegt, welcher Wert wie und mit welcher Bezeichnung und Struktur übertragen wird – die Kommunikation mit einem solchen System ist somit erheblich erleichtert.

Wenn dieses Thema für Sie interessant ist, wird Sie vielleicht auch unser nachfolgender Beitrag zum Thema „EUROMAP – Was ist das eigentlich?“ interessieren.

 

Melden Sie sich hier (kostenlos) als Premiummitglied an und erhalten Sie Zugang zu unserem Downloadbereich. Dort finden Sie verschiedene Excel-Tools sowie andere Hilfsmittel und Checklisten. Zudem bleiben Sie als Premium-User stets informiert über neue Beiträge.

 

 

Zusätzlich verwendete Quellen:

https://opcfoundation.org
https://opcua.vdma.org
https://de.wikipedia.org

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.