OPC UA steht für OPC Unified Architecture und ist ein industrielles M2M-Kommunikationsprotokoll. Als neueste aller OPC-Spezifikationen der OPC Foundation unterscheidet sich OPC UA erheblich von seinen Vorgängern, insbesondere durch die Fähigkeit, Maschinendaten (Regelgrößen, Messwerte, Parameter usw.) nicht nur zu transportieren, sondern auch maschinenlesbar semantisch zu beschreiben.
Nach über drei Jahren Spezifikationsarbeit und einem Jahr Prototypimplementierung wurde die erste Version der Unified Architecture im Herbst 2006 verabschiedet. Im Februar 2009 wurde eine überarbeitete Version der Teile 1 bis 5 und 8 sowie die erste Version der Teile 6 und 7 veröffentlicht.
Protokolle
Wie schon erwähnt gibt es zwei Protokolle. Als Anwendungsentwickler bemerkt man das nur an der zu übergebenden URL: opc.tcp://Server/ für Binärprotokoll und http://Server für Webservice. Ansonsten funktioniert OPC UA völlig transparent an der API.
Binärprotokoll
- beste Performance, am wenigsten Overhead
- Verbraucht am wenigsten Ressourcen (kein XML-Parser, SOAP und HTTP notwendig → wichtig für Embedded-Geräte)
- beste Interoperabilität (binär ist genau spezifiziert, nicht so viele Freiheitsgrade wie mit XML)
- Ein einziger TCP-Port (4840) wird für die Kommunikation verwendet und kann auch leicht getunnelt oder in einer Firewall freigeschaltet werden.
Webservice (SOAP)
- beste Tool-Unterstützung. Kann z. B. auch leicht aus Java und .net verwendet werden.
- Firewall-freundlich. Port 80 (http) und 443 (https) funktionieren meistens ohne weitere Konfiguration.
Da der zur Verfügung gestellte ANSI-C-Stack beide Protokolle beherrscht, wird erwartet, dass die meisten Produkte mit dem effizienten Binärprotokoll kommunizieren werden.
Spezifikationen
Die OPC-UA-Spezifikation ist eine Multipart-Spezifikation und besteht aus den folgenden Teilen:
- Concepts
- Security Model
- Address Space Model
- Services
- Information Model
- Mappings
- Profiles
- Data Access
- Alarms and Conditions
- Programs
- Historical Access
- Discovery
- Aggregates
Im Gegensatz zu den auf COM basierenden Spezifikationen sind die UA-Spezifikationen keine reinen Anwenderspezifikationen. Sie beschreiben großteils UA-Interna, die vom Kommunikationsstack gehandelt werden, und sind nur interessant für Leute, die den Stack portieren oder einen eigenen UA-Stack implementieren wollen. Die OPC-UA-Anwendungsentwickler setzen auf einer OPC-UA-API auf und werden deshalb hauptsächlich die API-Dokumentation verwenden. Interessant für Anwender sind jedoch Part 3, 4, und 5.
UA Security
UA Security beinhaltet Authentifizierung und Autorisierung, Verschlüsselung und Datenintegrität durch Signieren. Sie orientiert sich an den Web-Service-Security-Spezifikationen. Für Web Services wird direkt WS Secure Conversation verwendet und ist somit kompatibel zu .Net und anderen SOAP-Implementierungen. Für die binäre Variante wurden die Algorithmen von WS Secure Conversation übernommen und ebenfalls in ein binäres Äquivalent umgesetzt. Dieses wird nun als UA Secure Conversation bezeichnet.
Für die Authentifizierung werden X.509-Zertifikate verwendet. Es obliegt dem Anwendungsentwickler, an welchen Zertifikatsspeicher die UA-Applikation angebunden wird. Es ist z. B. möglich die Public Key Infrastructure (PKI) eines Active Directory zu verwenden.
OPC UA APIs
Für UA-Entwickler wird es die Möglichkeit geben, direkt auf einer C-API aufzusetzen, einer komfortableren C++-API oder eine .NET-API. Alle APIs werden dieselbe Funktionalität aufweisen, und, soweit es die Programmiersprachen erlauben, ähnlich in der Anwendung sein.
Der Kommunikationsstack und diese APIs werden von der OPC Foundation zur Verfügung gestellt.
API Hersteller
Die Frameworks der verschiedenen Hersteller haben jeweils Vor- und Nachteile. Meist können Trial-Versionen zum testen heruntergeladen werden. Feinheiten sind in der Architektur, der Dokumentation der Software und im Preismodell zu finden. Es lohnt sich ein entsprechender Vergleich und Test. Teilweise sind in den Downloads schon Beispiele zur Implementierung und Testapplikationen hinterlegt, welche einem den Einstieg erleichtern. Funktionell sollte die OPC UA Schnittstelle danach überall das gleiche leisten können (konform mit der Spezifikation).
Unified Automation – Unified Automation hat seinen Sitz in Deutschland und bietet Schulungen zum Thema an, sowie auch Workshops zum Einsatz ihrer APIs für ANSI C, .NET, C++ oder Java. Bei der Installation der angebotenen APIs sind verschiedene Testapplikationen (Client und Server), sowie der UAExpert (ein OPC UA Client), der gute Dienste zum Kennenlernen der OPC UA Umgebung und zum Test eigener Applikationen leistet.
Softing – Softing, ein deutsches Unternehmen, welches stark mit Siemens zusammen arbeitet und APIs für C++ oder .NET anbietet.
OPC Labs – OPC Labs ist ein Unternehmen mit Hauptsitz in Tschechien, das für die unterschiedlichsten Plattformen und Programmiersprachen APIs zu OPC UA anbietet.
[alert-announce]Dieser Eintrag basiert auf dem Artikel OPC UA aus der freien Enzyklopädie Wikipedia. Es gilt die GNU-Lizenz für freie Dokumentation. Eine Liste der Autoren ist auf Wikipedia verfügbar.[/alert-announce]