Open Platform Communications
OPC steht für Openess, Productivity, Collaboration (vormals für: OLE for Process Control). Das ist eine standardisierte Software-Schnittstelle, die es Anwendungen unterschiedlichster Hersteller ermöglichen soll, Daten auszutauschen.
Entstehung
OPC ist der Versuch, industriellen Bussystemen und Protokollen eine universelle Möglichkeit zur Verständigung zu geben. Geschaffen wurde der Standard ursprünglich von der OPC Task Force, einem Zusammenschluss verschiedener Größen der Automatisierungsindustrie wie Fisher-Rosemount, Intellution und Siemens, nachdem man erkannt hatte, welchen Aufwand die Anpassung der zahlreichen Herstellerstandards auf individuelle Steuerungs- und Überwachungs-Infrastrukturen bereits verursachte.
Kurz nach der Veröffentlichung der "OPC Specification Version 1.0" im August 1996 wurde die OPC Foundation gegründet, die bis heute zuständig ist für Pflege und Verbreitung des Standards. Ihr gehören mittlerweile einige hundert Unternehmen an.
Heute ist OPC der Standard zur herstellerunabhängigen Kommunikation in der Automatisierungstechnik. Durch die Zertifizierungssoftware "OPC Compliance Test" welche den OPC Membern kostenlos zur Verfügung gestellt wird, wird die Kompatibilität sichergestellt. Die Hersteller von OPC Servern können damit ihre Server schon während der Entwicklung testen. Diese Software testet 100% der OPC Funktionalität, simuliert absichtlich Fehlverhalten eines Clients und überprüft alle möglichen Fehlercodes. Zusätzlich werden noch logische Tests, Stress- und Performance-Tests durchgeführt. Durch diese Test-Suite wird eine Testabdeckung erreicht, die man mit einem normalen Client nicht erreichen könnte. Nach bestandenem Test können die Hersteller die Ergebnisse an die OPC Foundation senden und erhalten das Zertifikat "Compliance Tested". Es ist nicht zu empfehlen, Server zu kaufen, die dieses Zertifikat nicht besitzen.
Einsatzgebiet
OPC wird dort eingesetzt, wo Sensoren, Regler und Steuerungen verschiedener Hersteller ein gemeinsames, flexibles Netzwerk bilden sollen. Ohne OPC benötigten zwei Geräte zum Datenaustausch genaue Kenntnis über die Kommunikationsmöglichkeiten des Gegenübers. Erweiterungen und Austausch gestalten sich entsprechend schwierig. Mit OPC genügt es, für jedes Gerät genau einmal einen OPC-konformen Treiber zu schreiben, idealerweise wird dieser bereits vom Hersteller zur Verfügung gestellt. Ist ein OPC-Treiber für ein Gerät verfügbar, lässt sich dieses problemlos in beliebig große vorhandene Steuer- und Überwachungssysteme integrieren, ohne erheblichen Anpassungsaufwand zu verursachen.
OPC unterteilt sich in verschiedene Unterstandards, die für den jeweiligen Anwendungsfall unabhängig voneinander implementiert werden können. OPC lässt sich damit verwenden für Echtzeitdaten (Überwachung), Datenarchivierung, Alarm-Meldungen und neuerdings auch direkt zur Steuerung (Befehlsübermittlung)...
Funktionsweise
Für die Kommunikation zwischen den Anwendungen benutzt OPC derzeit hauptsächlich Microsofts DCOM Technologie (Distributed Component Object Model). Dank DCOM ist es für OPC-Anwendungen transparent, ob die über OPC ausgetauschten Daten von einer Anwendung im eigenen Adressraum, von einem fremden, lokalen Prozess oder auch von einem entfernt über TCP/IP angebundenen Rechner kommen. Die Übertragungs- und Zugriffsgeschwindigkeiten werden dabei DCOM-üblich kaum von unnötigem Verwaltungsaufwand ausgebremst. Die Kommunikationswege sind im folgenden Bild dargestellt:
DCOM ermöglicht es, (kompilierte) Funktionen und Objekte anderen Anwendungen zugänglich zu machen. Der OPC-Standard definiert nun bestimmte DCOM-Objekte, d.h. die Funktionen/Schnittstellen, die ein OPC-Teilnehmer (über DCOM) zur Verfügung stellen muss, um mit anderen OPC-Anwendungen Daten austauschen zu können. Die für eine Implementierung notwendigen genauen Spezifikationen lassen sich frei auf der Seite der OPC Foundation herunterladen.
Die Wenigsten am Markt vorhandenen OPC Server und OPC Clients sind durch die OPC Foundation zertifiziert, da dieser Prozess Geld kostet. Die Kosten für die Zertifizierung sind in der Hauptsache darin zu suchen, dass die OPC Foundation einen jährlichen Mitgliedsbeitrag verlangt. Das Werkzeug, um einen OPC-Server selbst zu zertifizieren, ist im Rahmen der Mitgliedschaft kostenlos erhältlich. Die Liste der zertifizierten Server/Clients ist auf der Seite der OPC Foundation zu finden. Zum Debuggen der Kommunikation zwischen Client und Server gibt es kostenlose Software, die sich als Sniffer zwischen den Kommunikationspartnern einklinkt.
Mit OPC XML-DA wurde die erste Webservice basierte Schnittstelle geschaffen. Die Funktionalität ist ähnlich der normalen Data Access Schnittstelle welche die erste und immer noch wichtigste Schnittelle bei OPC ist. Mit dem Webservice steht OPC auch auf anderen Plattformen wie z.B. Linux zur Verfügung. Mit Webservice Toolkits wie gSOAP, EasySoap++, Qt, etc. für C/C++ oder Java kann man so sehr schnell OPC XML-DA Client und Server entwickeln. Viele Hersteller von OPC-Servern haben als ersten Schritt Adapter entwickelt, welche OPC XML-DA Aufrufe einfach auf die vorhandenen COM OPC DA Server abbilden. Im Gegensatz zu DCOM verwenden Webservices Port 80 (HTTP) was es ebenfalls einfacher macht, durch Firewalls zu kommunizieren oder den Datenverkehr zu tunneln (SSH).
Unified Architecture beschreibt eine neue Generation von OPC Servern. Diese Spezifikation befindet sich noch in Entwicklung und soll die bisherigen Spezifikationen Data Access, Alarm & Events, Historical Data Access, Data eXchange, Batch und Security vereinheitlichen. Es wird nur noch einen Adressraum mit Objekten geben, die Werte beinhalten, Alarme senden, eine Historie besitzen und wie bei DX verschaltet werden können. Die bisher recht unterschiedlichen Browse-Interfaces werden so durch ein einheitliches Browsing ersetzt. Diese neue Spezifikation beschreibt kein COM Interface mehr, sondern eine WSDL (Web Services Description Language), die nach COM und in verschiedene Webservice-Protokolle umgesetzt werden kann, womit die Portabilität sichergestellt wird. Ebenso wird verstärkt auf Skalierbarkeit und Security Wert gelegt.