OPC UA Buch

Das erste OPC Unified Architecture Buch, geschrieben von Wolfgang Mahnke, Stefan-Helmut Leitner und Matthias Damm, einem der Gründer von ascolab.

OPC UA Protokolle

Es gibt derzeit zwei Protokolle, oder genauer „protocol bindings“ sowie eine weitere Mischvariante, die die beiden anderen kombiniert. Alle drei Varianten können parallel verendet werden. Als Anwendungsentwickler bemerkt man das nur an der beim Verbindungsaufbau zu übergebenden URL: opc.tcp://Server für Binärprotokoll und https://Server für Webservice. Ansonsten funktioniert OPC UA völlig transparent an der API. Applikationsentwickler können damit zwischen verschiedenen Protokoll-Bindings wechseln, ohne dass eine Anpassung oder Neuimplementierung notwendig wäre.

uastacklayers1. Binärprotokoll (UA-Binary)

  • zwingend vorgeschrieben
  • 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

2. Webservice (XML-SOAP)

  • optional, zusätzlich
  • größerer Overhead, langsamer durch XML kodierte Nachrichten
  • umfassende Tool-Unterstützung, kann z. B. leicht aus .NET und Java verwendet werden
  • wenig bis keine Akzeptanz in kleinen und Kleinstgeräten (embedded device)
  • Firewall-freundlich. Port 443 (https) funktioniert ohne weitere Konfiguration

3. Hybrid (UA-Binary über HTTPS)

  • optional
  • weniger Overhead als XML-SOAP
  • vereinigt Vorteile beider Protokolle, binär kodierter Payload im HTTPS Frame
  • Firewall-freundlich. Port 443 (https) funktioniert ohne weitere Konfiguration

Der von der OPC Foundation zur Verfügung gestellte ANSI-C-Stack unterstützt das UA-Binary-Protokoll und das Hybrid-Protokolll. Es wird erwartet, dass die meisten Produkte mit dem effizienten Binärprotokoll kommunizieren werden und nur in Sonderfällen auf das Hybridprotokoll zurückgegriffen wird, beispielsweise wenn über das Internet kommuniziert werden soll und nur ein Port (443) geöffnet werden darf. Die Webserviceimplementierung bleibt Anwendungen vorbehalten, die über ausreichend Ressourcen verfügen und die zwingend Webservices benötigen.