OPC für Prozessleitsysteme
Transcription
OPC für Prozessleitsysteme
Fachhochschule Braunschweig/Wolfenbüttel Fachbereich Elektrotechnik Leittechnik OPC für Prozessleitsysteme Bearbeiter: Florian Rudolph 20563048 Inhaltsverzeichnis Inhaltsverzeichnis........................................................................................................I Abbildungsverzeichnis .............................................................................................. II Abkürzungs- und Sachwortverzeichnis ................................................................ III 1 Einführung .......................................................................................................... 4 2 Prinzip und Funktion......................................................................................... 6 2.1 Die Kommunikation mit DCOM ..................................................................... 7 2.2 Softwareumsetzung eines Interfaces, Servers und Clients............................... 8 3 Schnittstellen und Spezifikationen ................................................................. 12 3.1 OPC Data Access ........................................................................................... 12 3.2 OPC Alarm and Event.................................................................................... 15 3.3 OPC Historical Data Access .......................................................................... 16 3.4 OPC Commands ............................................................................................. 17 3.5 OPC XML Direct Access ............................................................................... 18 3.5.1 XML oder DCOM? .................................................................................... 20 4 Industrielles Anwendungsbeispiel .................................................................. 23 4.1 Aufgabenstellung ........................................................................................... 23 4.2 Lösungsansatz ................................................................................................ 23 4.3 Finanzielle Sichtweise.................................................................................... 25 5 Literaturverzeichnis......................................................................................... 27 I Abbildungsverzeichnis Bild 1.1: Situation vor der Einführung von OPC ......................................................... 4 Bild 1.2: Die Situation mit OPC-Schnittstelle ............................................................. 5 Bild 2.1: Informationsfluss im industriellen Bereich [2] ............................................. 6 Bild 2.2 Konzept des OPC-Servers und des -Interfaces .............................................. 7 Bild 3.1: OPC-Schnittstellenspezifikationen [4] ........................................................ 12 Bild 3.2: Struktur der Data Access-Spezifikation ...................................................... 13 Bild 3.3: Synchroner Modus der Kommunikation ..................................................... 14 Bild 3.4: Asynchroner Modus der Kommunikation (Abonnement) .......................... 14 Bild 3.5: Infrastruktur des OPC XML DAs [7].......................................................... 19 Bild 3.6: Systemumgebung von OPC-XML Direct Access ....................................... 20 Bild 3.7: Vergleich der Übertragungszeiten bei XML und DCOM [8] ..................... 21 Bild 3.8: Vergleich von OPC XML DA unter Linux und Windows [8] .................... 21 Bild 3.9: Vergleich von OPC XML DA im Intranet und Internet [8] ........................ 22 Bild 4.1: Herkömmlicher Lösungsansatz [6] ............................................................. 24 Bild 4.2: Lösung mit OPC [6] .................................................................................... 25 Bild 4.3: Finanzielle und zeitliche Sicht der Lösungen [6]........................................ 26 II Abkürzungs- und Sachwortverzeichnis ASP Active Server Pages CORBA Common Object Request Broker Architecture DCOM Distributed Component Object Model DOS Disk Operating System HTTP Hypertext Transfer Protocol MMI (auch HMI) Man Machine Interface .NET Softwareplattform von Microsoft OLE Object linking and embedding OPC OLE for process control PLC Programmable Logic Controller SCADA Supervisory control and data acquisition SOAP Simple Object Access Protocol SPS Speicherprogrammierbare Steuerung TCP/IP Transmission Control Protocol / Internet Protocol Treiber Software zum Zugriff auf Hardwarekomponenten UDDI Universal Description, Discovery and Integration VB Visual Basic WSDL Web Service Description Language XML Extensible Markup Language III OPC für Prozessleitsysteme - 1 Einführung 1 Einführung OPC (OLE for process control) definiert einen weltweiten, offenen Standard für den Daten- und Informationsaustausch von Softwarekomponenten. Der OPC-Standard wird durch die OPC Foundation verwaltet und publiziert. Die OPC Foundation stellt ein Gremium aus ca. 200 Automatisierungs- und Softwareherstellern sowie Anwendern dar. Die Grundidee war die Definierung einer standardisierten Schnittstelle, um über Software auf Daten in sämtlichen Geräten im Prozessleitsystem zugreifen zu können. Bild 1.1: Situation vor der Einführung von OPC Bild 1.1 soll die ursprüngliche Situation verdeutlichen, aus der es heraus nötig geworden ist im Bereich der Automatisierung den OPC-Standard zu definieren. Auf Seiten der Applikationsebene besteht ein erhöhter Entwicklungsaufwand, da jeder Hersteller eigene Treiber für jedes Gerät auf Seiten der Automatisierungsebene entwickeln muss [1]. Durch diese Situation ist die Problematik inkompatibler Treiber von unterschiedlichen Herstellern auf einem System unausweichlich. Es ist geradezu unmöglich mehrere Treiber nebeneinander auf einem System problemlos arbeiten zu lassen. Als Veranschaulichung der beschriebenen Problematik dient ein Blick auf das 1982 gängige Betriebssystem MS-DOS, unter dem die Anwendung Microsoft Word bereits mehr Disketten für potentielle Druckertreiber mitlieferte, als die Software selber benötigte. Adaptiert man diese Situation auf den Bereich der industriellen 4 OPC für Prozessleitsysteme - 1 Einführung Automatisierung, wird schnell klar, dass durch die Vielzahl der internationalen Hersteller und einer Unmenge an unterschiedlichster Hardware ein reibungsloser und störungsfreier Automatisierungsprozess unmöglich erscheint. Bild 1.2: Die Situation mit OPC-Schnittstelle Durch die Einführung von OPC (siehe Bild 1.2) ergibt sich eine Strukturänderung im System. Von einer direkten Kommunikation der Software mit der Hardware, fungiert nun eine OPC-Schnittstelle anschaulich gesprochen als Vermittler. 5 OPC für Prozessleitsysteme - 2 Prinzip und Funktion 2 Prinzip und Funktion OPC definiert Standardschnittstellen, welche eine Verbindung zwischen Software und Applikation herstellen. Die Aufgabe der Hersteller liegt nun darin entweder einen OPC-Client für die Software und einen OPC-Server für die Hardware zu liefern. Die Hersteller sind dabei nun unabhängig voneinander. Der OPC-Server implementiert das gerätespezifische Protokoll hinter der standardisierten OPCSchnittstelle. In Anlehnung an das in Kapitel 1 erwähnte Beispiel der Druckertreiber, wäre hier zu nennen, dass heutzutage jeder Druckerhersteller einen Treiber liefert, den alle Applikationen verstehen und verwenden. Das gleiche Prinzip verfolgt der OPCStandard in der Automatisierungsbranche. Es sollte demnach selbstverständlich sein, dass jedes Gerät den passenden OPC-Server in Form von Software mitliefert. Um den Fluss von Prozessdaten und deren Verarbeitung in Verbindung mit OPC zu erkennen und zu beschreiben, dient zunächst Bild 2.1. Es zeigt den allgemeinen Informationsfluss von Prozessdaten im industriellen Bereich. Bild 2.1: Informationsfluss im industriellen Bereich [2] 6 OPC für Prozessleitsysteme - 2 Prinzip und Funktion Daten auf der Field Management-Ebene bilden die Basis. Eine große Menge an Informationen aus unterschiedlichsten Quellen muss dem Anwender sowie der Software, welche darauf zugreift, ständig und in einheitlicher Art und Weise zur Verfügung stehen. Auf der Process Management-Ebene steuert und überwacht das Prozessleitsystem die Prozesse und stellt beispielsweise Daten und Informationen über Herstellungsabläufe bereit. Prozesse können auch über Software in dieser Ebene manuell angepasst und gesteuert werden. Zu nennen wären in dieser Ebene das Konzept der Supervisory Control and Data Acquisition (SCADA). Die höchste Ebene des Leitsystems stellt die Business-Ebene dar. Hier kommen alle Daten- und Informationsflüsse zusammen. Hier gilt es die Prozesse zu optimieren und in der Effizienz zu steigern, was wiederum ein Mehr an Informationsfluss zur Folge hat. 2.1 Die Kommunikation mit DCOM Um nun das OPC-Konzept, wie es in Kapitel 1 angedeutet wurde zu konkretisieren, dient Bild 2.2. Bild 2.2 Konzept des OPC-Servers und des -Interfaces Die Applikationen 1 bis 3 stellen hier die OPC-Clients dar. Der OPC-Server hat nun die Aufgabe als Vermittler die Daten aus den Datenquellen mit den Clients zu tauschen. Er ist aus Sicht der Kommunikation wie eine Datenquelle selber zu betrachten, da er nur auf Anfragen des Clients antwortet, d.h. Anfragen bearbeitet und gemäß antwortet. Er selber generiert jedoch keine Nachfragen. Als Analogie 7 OPC für Prozessleitsysteme - 2 Prinzip und Funktion dazu kann man den Server mit einem Kellner im Restaurant vergleichen, der nur auf Bestellung handelt und im Normalfall keine Bestellung ohne Anfrage alleine ausführt. Der Client hingegen sendet dem Server nur Anfragen. Er selber kann sie nicht ausführen bzw. erfüllen. Somit kann man den Client mit dem Kunden im Restaurant vergleichen. Kommuniziert wird bei OPC über DCOM. DCOM wurde von Microsoft entwickelt und stellt ein Protokoll dar, dass Softwarekomponenten die direkte Kommunikation über ein Netzwerk ermöglicht. Es handelt sich dabei um ein objektorientiertes System, welches auch Funktionen in anderen Adressräumen aufrufen kann. Man spricht daher auch von einer Interprozesskommunikation. DCOM-Objekte können von verschiedensten Programmiersprachen erzeugt werden und stellen nichts weiter als kompilierten Code dar, der einen Dienst zur Verfügung stellt. Ein Objekt wird gemäß Objektorientierung von einer DCOM-Klasse erzeugt, Microsoft spricht hier leider nicht von einer Klasse, sondern von einer Komponente [3]. Diese Komponente implementiert eine oder mehrere Schnittstellen. Sie ist also eine Sammlung von Methodenaufrufen, die semantisch zu einem DCOM-Interface zusammengefasst wurden. In der Literatur spricht man daher auch von Aggregation, anstatt von Klassenvererbung zu sprechen. Zu erwähnen wäre darüberhinaus noch, dass eine Komponente bzw. Klasse mehrere DCOM-Objekte bzw. -Schnittstellen enthalten kann, anders als es beispielsweise bei CORBA der Fall ist. Damit ein verbindungsfähiges Objekt nun Kontakt zum Client herstellen kann, muss der Client eine Schnittstelle bzw. Interface zur Verfügung stellen. Ein Objekt kann gleichzeitig mit mehreren Clients verbunden sein und kann somit mehrere verbindungsfähige Objekte abhören. 2.2 Softwareumsetzung eines Interfaces, Servers und Clients Nachfolgend wird ein einfacher Zähler vorgestellt der über DCOM kommuniziert und auf Anfragen des Clients über einen Server zählt. Die Implementierung erfolgte in Java. Letztlich erhält man drei Codepakete, die beispielhaft darstellen wie der Informationsfluss bei einem OPC-System abläuft. 8 OPC für Prozessleitsysteme - 2 Prinzip und Funktion Zunächst wird der Code für das Interface dargestellt. Wie bereits in Kapitel 2.1 erwähnt, benötigt der Client ein Interface, um eine Kommunikation herzustellen. 01 //Count.idl 02 [uuid(1689CB21-2ADE-11d0-892E-00A024638502),version(1.0)] 03 library Counter 04 { [object, 05 uuid(1689CB22-2ADE-11d0-892E-00A024638502), 06 pointer_default(unique), 07 oleautomation 08 ] 09 interface ICount : IUnknown 10 { 11 import "oaidl.idl"; 12 HRESULT set_sum([in] int val); 13 HRESULT get_sum([out, retval] int* retval); 14 HRESULT increment([out, retval] int* retval); 15 }; 16 importlib("stdole32.tlb"); 17 [uuid(1689CB23-2ADE-11d0-892E-00A024638502)] 18 coclass Count 19 { 20 21 [default] interface ICount; }; 22 }; Obiger Quellcode stellt nun das Zähler-Interface dar, eine sog. IDL-Datei. Aus der IDL-Datei erzeugt ein Compiler eine sprachspezifische Schnittstellendefinition. Per Vereinbarung muss jede Klasse bzw. Komponente mindestens die Schnittstelle IUnknown (Zeile 9) unterstützen, dies ermöglicht den ersten Zugriff [3], d.h. IUnknown implementiert die nötigsten Methoden. Darüberhinaus ist eine eindeutige Zuordnung per 16 Byte UUID (Zeile 2) nötig. Der Datentyp HRESULT (Zeile 12-14) gibt den Status der Operationen von microsoftspezifischen Komponenten an. Das bedeutet HRESULT ist ein 32-Bit-Wert, der in drei Felder unterteilt ist: Schweregradcode, Bereichscode und Fehlercode. Auf die genauen Eigenschaften der einzelnen Felder kann im Rahmen dieser Arbeit nicht näher eingegangen werden. Anschaulich kann man sagen, dass jeder Ausnahme d.h. jedem Ereignis ein eindeutigen HRESULT zugeordnet ist. Wenn ein verwalteter Code 9 OPC für Prozessleitsysteme - 2 Prinzip und Funktion eine Ausnahme auslöst, übergibt die Software-Plattform HRESULT an den COMClient. Nachfolgend sind die drei benötigten HRESULT dargestellt: set_sum (Setzen des Zählers) get_sum (Zählerstand ausgeben) increment (Zählerstand um 1 erhöhen) Nun betrachten wir den Server: 01 //Count.java 02 import com.ms.com.*; 03 import count.*; 04 class Count implements ICount 05 { 06 private int sum; 07 public int get_sum() throws ComException 08 { 09 return sum; 10 } 11 public void set_sum(int val) throws ComException 12 { 13 sum = val; 14 } 15 public int increment() throws ComException 16 { 17 sum++; 18 return sum; 19 } 20 } Der obige Server ist trivial aufgebaut, er implementiert die Methoden, die für den Zähler essentiell sind. Man erkennt auch anhand der Methoden die Flussrichtung der Information. Die Methoden increment() und get_sum() liefern den Wert des Zählers zurück an den Client, wie in Kapitel 2.1 beschrieben, jedoch erst nach Anfrage und niemals ohne Aufforderung. Die Methode set() kann nur der Client aufrufen, um den Zählerstand zu erhöhen. Abschließend wird nachfolgend der Java-Code für den Client dargestellt und beschrieben. 10 OPC für Prozessleitsysteme - 2 Prinzip und Funktion 01 //CountDCOMClient.java 02 import count.*; 03 class CountDCOMClient 04 { 05 public static void main(String args[]) 06 { 07 try 08 { 09 System.out.println("Erzeuge Ein neues Zählerobjekt"); 10 ICount counter = (ICount)new count.Count(); 11 // Zähler zu Beginn auf null setzen 12 System.out.println("Zähler auf 0"); 13 counter.set_sum((int)0); 14 // 1000x inkrementieren 15 for (int i=0; i<1000; i++) 16 { 17 counter.increment(); 18 } 19 } 20 catch(Exception e) 21 { 22 System.err.println("System Exception"); 23 System.err.println(e); 24 } 25 } 26 } Der Client macht in seiner Main-Methode (Zeile 5 ff.) folgendes: 1. Erzeugen eines Objektes der Server-Klasse Count mit Typecast als ICount (Zeile 10) 2. Den Zähler auf null setzen (Zeile 13) 3. 1000mal den Zähler inkrementieren (Zeile 15-18) Zum Informationsfluss lässt sich sagen, dass der Client die Anfrage auf das Nullsetzen oder das Inkrementieren über das Objekt der Server-Klasse erteilt und der Server die Aufgabe erledigt und mit dem aktuellen Zählerstand bei der Methode increment() antwortet. Der Rückgaebwert findet hier beim Client keine Berücksichtigung. Durch die Verwendung von DCOM muss der Server nicht auf dem gleichen System oder PC arbeiten wie der Client. 11 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen 3 Schnittstellen und Spezifikationen Seit der Veröffentlichung der ersten Spezifikation von OPC im Jahre 1996 sind die Standards zur Schnittstellenbeschreibung gewachsen. Man unterscheidet heute folgende Schnittstellen: Bild 3.1: OPC-Schnittstellenspezifikationen [4] 3.1 OPC Data Access Der größte Anwendungsbereich von OPC ist OPC DA. Der Zugriff auf Echtzeitdaten, speziell in Automatisierungsgeräten, erfolgt hierbei über eine bestimme logische Struktur (siehe hierzu Bild 3.2). Der Client kann eine beliebige Anzahl von Gruppen oder Groups erzeugen. In jeder Gruppe kann der Client Items erzeugen, die nichts anderes darstellen, als Information bzw. Daten eines Datenfeldes im Automatisierungsgerät. Diese Information im Automatisierungsgerät nutzt der Client. Die wesentlichen Eigenschaften der Informationen sind [1]: Wert (z.B. einer Messgröße eines Sensors) Qualitätsstatus (Fehler, gut, unbekannt) Zeitstempel Zugriffsrechte (lesen, schreiben oder beides) 12 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen Bild 3.2: Struktur der Data Access-Spezifikation Der Client erhält zu einem sog. Datenpunkt nur aktuelle Werte, d.h. zu einer Abfrage gibt es immer nur Echzeitdaten. Der Zeitstempel wird entweder vom Automatisierungsgerät vergeben oder aber der Server vergibt diesen Wert, falls Geräte (z.B. Waagen) oder Protokolle (z.B. Modbus) keine Zeitstempel vorsehen. Der Qualitätsstatus beschreibt den Zustand des Wertes. Beispielsweise erhält man vom OPC-Server bei Kommunikationsabbruch den Qualitätszustand „bad“. Der Client besitzt verschiedene Möglichkeiten auf diese Items zuzugreifen. Zu nennen wären da: Synchrones Schreiben und Lesen (Pollen) Asynchrones Lesen (Abonnieren) und Schreiben Nachfolgend wird kurz auf die Zugriffsmodi eingegangen. Datenanforderungen vom Client werden als Lesen interpretiert. Schreiben bedeutet, dass der Client einem Automatisierungsgerät einem Wert zuweist. Beispielweise wird eine auszuführende Aktion wie „Ventil bei Temperatur X öffnen“ mit einem Wert dem Gerät mitgeteilt. Zu unterscheiden sind die Lesemodi. Man spricht vom Pollen, wenn der Client kontinuierlich Werte abfragt und eine Antwort erhält. Dies ist der Fall beim synchronen Lesen (vgl. Bild 3.3). 13 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen Bild 3.3: Synchroner Modus der Kommunikation Beim asynchronen Lesen (vgl. Bild 3.4) erhält der Client nur dann Werte vom Automatisierungsgerät, wenn sich diese geändert haben. Wertänderung Wertänderung Bild 3.4: Asynchroner Modus der Kommunikation (Abonnement) Jedoch ist zu bedenken, dass im Falle des asynchronen Lesens beim Client nicht immer derselbe Mechanismus auch für den OPC-Server verwendet wird. Es steht dem Server völlig frei nicht dennoch das Automatisierungsgerät zu pollen, was bei den meisten SPS-Geräten auch der Fall ist [1]. 14 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen Betrachtet man die Kommunikation zwischen Server und Datenquelle etwas näher, gilt es auch hier die Lesemodi zu unterscheiden. Zu nennen wäre in diesem Zusammenhang Cache reads und Device reads. Das Cache read arbeitet mit einem Pufferspeicher auf dem OPC-Server, das bedeutet, dass das Automatisierungsgerät schneller Daten liefern kann, da diese auf einem Speicher zwischengelagert werden, um letztlich vom Client verarbeitet werden zu können. Beim Device read greift der Client direkt über den Server auf die Datenquelle zu. Die Zugriffsrate und damit die Performance des Servers lassen sich durch das Zwischenspeichern und die asynchrone Kommunikation erhöhen. 3.2 OPC Alarm and Event Dieser Schnittstellenstandard bietet dem Client die Möglichkeit über bestimmte Ereignisse oder Alarmsituationen benachrichtigt zu werden. Darüberhinaus besteht mit Hilfe des Servers für den Client die Möglichkeit Fehler zu bestimmen und Bedingungen d.h. Szenarien festzulegen, bei denen Ereignisse zu einer Benachrichtigung führen [2]. Die Grenzen zwischen einem Alarm und einen Ereignis sind verwischt, es bleibt letztlich dem Anwender und Nutzer überlassen, wie er was definiert. Oftmals dienen die Begriffe nur als Synonym für bestimmte Anwendungen des Nutzers und sind nicht in ihrer eigentlichen Bedeutung zu verstehen. Dennoch gilt nach [2] innerhalb des OPC-Standards ein Fehler als ein ungewöhnlicher Zustand d.h. ein nicht erwartetes Ereignis. Kurzbeispiel: Der Baustein FC101 einer S7 SPS hat die Aufgabe bzw. Funktion den Ausgangsbereich sofort zu setzen [4]. Ihm könnten drei Zustände zugeordnet sein: High Alarm Normal Low Alarm Somit erfüllt der Baustein FC101 im OB1 der SPS die Alarmfunktion, indem er dem Server und damit dem Client Alarmzustände mitteilt. Neben den besagten Alarmen existieren noch die bereits erwähnten Ereignisse. Ereignisse müssen nicht immer mit bestimmten Zuständen in Verbindung gebracht 15 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen werden. Der Übergang von High Alarm in Normal ist beispielsweise verknüpft mit Zuständen. Wohingegen Änderungen in der Systemkonfiguration, System-Fehler und Änderungen durch Anwender Ereignisse hervorrufen können, die eben ohne Beziehung zu einem Zustand im Prozess ausgelöst werden können. Letztlich legt der Client fest welches Ereignisse oder Fehler er abonniert und wie es dem Prozess zuzuordnen ist. Abschließend lässt sich zur OPC Alarm and Event-Schnittstelle folgendes zusammenfassen: Der Client legt die Typen von Ereignissen fest, die der Server detektiert Der Client kann bestimmte Events abonnieren und erhält Informationen zu deren Auftreten Der Client kann manipulierend in Zustände des Server eingreifen [2] 3.3 OPC Historical Data Access Eine Vielzahl von Daten wird in einem Prozessleitsystem produziert und abgerufen. Aufgrund der Tatsache, dass oftmals mehrere Teilnehmer dieselben Daten zu unterschiedlichen Zeiten benötigen, ist eine Speicherung dieser Daten unausweichlich. Es existieren bereits viele proprietäre Schnittstellen, die gemeinsam ein großer Nachteil vereint. Allesamt sind nicht zu anderen Schnittstellen kompatibel und eine Anreicherung fremder Daten oder der Zugriff auf andere Schnittstellen ist nicht möglich. Die OPC Historical Data Access-Schnittstelle greift diesen Punkt auf und liefert eine Standard-Schnittstelle. Man unterscheidet bei diesem Standard zwei Typen von Servern: Simple Trend Data Server Complex data compression and analysis server Der wesentliche Unterschied beider Varianten liegt darin, dass die erst genannte Server-Variante Rohdaten speichert, wohingegen die zweite Variante sowohl die Rohdaten speichert, als auch eine Analyse dieser vornimmt. Zu nennen wäre da Mittelwertbildung, Ermittlung von Minima- und Maxima-Werten, u.v.m. 16 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen 3.4 OPC Commands OPC findet bereits breite Anwendung in der Bereitstellung von Automatisierungsinfrastrukturen und Softwareschnittstellen. Die Entwicklung der letzten Jahre hatte zur Folge, dass bereits heute der OPC-Standard einen großen Bereich im Daten-Management abdeckt. Lösungen im Automatisierungsbereich umfassen jedoch nicht ausschließlich den Transport von Daten und die Verarbeitung [7]. Im Ausführen und Regeln von Kommandos, im Folgenden auch commands genannt, liegt ein weiterer Bereich, den auch der OPC-Standard abdeckt. Die OPC Foundation spricht von commands, wenn bestimmte Aktionen eine Änderung eines Zustandes beim Server oder bei einem Automatisierungsgerät hervorrufen. Gerade diese Aktionen nehmen im Prozess oft mehr Zeit in Anspruch, als das Lesen oder Schreiben von Daten [7]. Ein Nutzer bzw. implizit der Client kann nur Information an den Server senden, wenn zuvor ein Kommando gestartet wurde. Welche Rolle spielt nun der OPC-Standard bei dieser Sichtweise? Der OPC-Standard bietet eine Informationsschnittstelle, die es ermöglicht Kommandos (auch Methoden genannt) auf Seiten des Servers zu ermitteln und zu verstehen. Die OPC Foundation spricht von „understanding“, gemeint ist vielmehr die Wirkung der Methode und nicht die Semantik dahinter, daher wäre der Ausdruck von „making an impact“ angebrachter. Der Client erhält die Information von welcher Ebene die Methode kommt (OPC-DA, OPC-A&E,…). Methoden werden dahingehend in zwei Kategorien eingeordnet: Global level (Methoden, die zum Server selber gehören oder zur Infrastruktur, die der Server abdeckt) Sub level (Methoden, die zu einer Infrastruktur hinter dem Server gehören) Beschreibungen dieser Methoden werden ebenso zur Verfügung gestellt, wie die Methoden selber. Die Beschreibung eines Kommandos oder einer Methode beinhaltet Informationen über Vorbedingungen, Eingangs- und Ausgangsparameter und natürlich wie die Methode vom Server ausgeführt wird. Für diese Art der Beschreibung sind Zustandsdiagramme prädestiniert und finden dahingehend auch ihre Anwendung. 17 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen OPC Commands bietet einen Basis-Zustandsautomaten (endlicher Automat) an, der je nach Erfordernis der Methode geändert und erweitert werden kann. Neben der Informationsschnittstelle existiert darüberhinaus auch ein sog. Command execution interface, also eine Schnittstelle die die Ausführung der Methode veranlassen kann. Wie bereits erwähnt kann die Ausführung synchron oder asynchron erfolgen. Die Art der Kommunikation wurde bereits in Kapitel 2.1 und auch Kapitel 3.1 erwähnt. In Bezug auf dieses Kapitel ist noch zu ergänzen, dass die zurückgelieferten Daten, wie es beim Abonnieren als auch beim Pollen der Fall ist durch OPC commands neben den eigentlichen Nutzdaten auch Reportdaten enthalten. Reportdaten enthalten Informationen über die Transition, also über den Übergang von einen in den anderen Zustand und auch die damit verbundenen Informationen über Ereignisse bzw. events. Wie bereits ebenso erwähnt legt der Client fest, über welche events er informiert werden möchte. Zusammenfassend lässt sich sagen, OPC commands dient der Klärung über Vorbedingungen von Methoden (Was wird für die Ausführung benötigt?), der Information über die Wirkung dieser Methode (Was passiert nach Aufruf der Methode?), dem Client o.a. zur Findung und Darlegung von Bedingungen für den Aufruf (Wer kann die Methode wann aufrufen?) und es dient letztlich der Klärung wie diese Methode in ihrer Ausführung arbeitet. 3.5 OPC XML Direct Access Die jüngste Spezifikation von OPC wurde im Jahre 1999 erstmalig erwähnt. Im Juli 2003 wurde das erste Release 1.0 veröffentlicht, um im Dezember des Jahres 2004 durch die Version 1.01 mit marginalen Änderungen erweitert zu werden. Neue Standards in der Informationstechnologie sog. Web Services führten zu dieser Spezifikation. Zu diesen Standards zählen [1]: XML XML Schema SOAP 18 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen UDDI Der Hintergrund dieser Standards ist der plattformübergreifende Zugriff auf Daten verschiedener Systeme in Echtzeit. Für diverse Programmiersprachen existieren sog. Toolkits. Zu nennen wäre auf Windowsbasis das .NET-Framework. Web Services benötigen keine spezielle Kommunikationsinfrastruktur. HTTP auf TCP/IP ist derzeit der am häufigsten genutzte Transportweg. Somit kann durch die Nutzung von Web Services die Abhängigkeit von Windowsplattformen bei OPC gelöst werden. Der externe Zugriff auf Web Services erfolgt durch Dateien, welche in einer sog. Web Service Description Language (WSDL), basierend auf XML, verfasst sind. WSDL beschreiben nur das externe Verhalten und geben keine Informationen über interne Zusammenhänge der Services. Anwendungen, die Web Services nutzen, kommunizieren untereinander über das Simple Object Access Protocol (SOAP). SOAP nutzt XML um die Informationen in das Protokoll einzubinden und damit das HTTP und damit auch TCP/IP nutzen zu können. Zusammenfassend lässt sich sagen, dass SOAP innerhalb des TCP/IPs läuft und es so ermöglicht wird verschiedene andere Netzwerk-Protokolle nutzbar zu machen. Bild 3.5 soll dies verdeutlichen. Bild 3.5: Infrastruktur des OPC XML DAs [7] 19 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen In der Konsequenz bedeutet dies, dass nur zwei Bedingungen erfüllt sein müssen, damit Automatisierungsgeräte Web Services nutzen können: 1. HTTP- und 2. XML-Unterstützung So ist es auch möglich OPC XML DA über das Internet ausführbar zu machen. Das .NET-Framework basiert bei der Kommunikation nicht mehr auf DCOM, sodass in Zukunft damit zu rechnen ist, dass OPC eine andere Plattform erhält. Die .NETPlattform bietet eine sehr umfangreich Unterstützung von Web Services, sodass zukünftig neue OPC-Spezifikationen auf Microsofts .NET-Framework bauen werden. In Bild 3.6 ist die neue Systemstruktur zu erkennen. Bild 3.6: Systemumgebung von OPC-XML Direct Access 3.5.1 XML oder DCOM? Grundlegender Unterschied beider Systeme ist die Art der übertragenen Information. DCOM überträgt binäre Information, wohingegen bei OPC XML DA die Daten textuell mit zusätzlichen Strukturelementen übertragen werden. Diese Tatsache beeinflusst natürlich die Performance des Systems. Die in Bild 3.3 und Bild 3.4 auf Seite 14 gezeigte Aktualisierungszeit variiert dabei. 20 OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen 800 700 t in ms 600 500 DCOM DA 400 XML DA 300 200 100 0 0 200 400 600 800 1000 1200 Anzahl der Items Bild 3.7: Vergleich der Übertragungszeiten bei XML und DCOM [8] Die Messungen aus Bild 3.7 wurden für synchrones Lesen (Pollen) ermittelt. Trotz der verlangsamten Geschwindigkeit für OPC XML DA sind die gemessenen Zeiten für nahezu alle Automatisierungsapplikationen ausreichend schnell, um echtzeitfähig betrieben zu werden. Es wurde die Plattformunabhängigkeit bei OPC XML DA angesprochen, somit ist der logische nächste Schritt ein Vergleich von OPC XML DA unter verschiedenen Plattformen. Nachfolgend wird Linux und Windows betrachtet. 800 Linux OPC XML DA Windows OPC XML DA 700 t in ms 600 500 400 300 200 100 0 0 200 400 600 800 1000 1200 Anzahl der Items Bild 3.8: Vergleich von OPC XML DA unter Linux und Windows [8] Der Vergleich beider Plattformen fällt positiver für die Linux-Plattform aus, jedoch nicht signifikant. Abschließend wird nun noch der angesprochene Einsatz von OPC XML DA unter Verwendung des TCP/IPs im Internet untersucht. Es wurde ein Linux OPC-Server verwand, um den Vergleich zwischen Internet und Intranet herstellen zu können. 21 t in ms OPC für Prozessleitsysteme - 3 Schnittstellen und Spezifikationen 20000 18000 16000 14000 12000 10000 8000 6000 4000 2000 0 Intranet Internet 0 200 400 600 800 1000 1200 Anzahl der Items Bild 3.9: Vergleich von OPC XML DA im Intranet und Internet [8] Es lässt sich mit steigernder Anzahl von Items erkennen, dass die Zeiten einen stärkeren Unterschied aufweisen als bei weniger Items. Die Zeiten, die für das Senden und Empfangen hier benötigt wurden, liegen weit entfernt von einer Echtzeitfähigkeit. Man kann im Durchschnitt davon ausgehen, dass bei 1000 Items ein Client bei OPC XML DA im Durchschnitt 40 kB sendet und ca. 128 kB empfängt. 22 OPC für Prozessleitsysteme - 4 Industrielles Anwendungsbeispiel 4 Industrielles Anwendungsbeispiel Im Folgenden wird der Einsatz der OPC-Technologie mit einer herkömmlichen proprietären Lösung verglichen und anschließend bewertet. Als Quelle der Daten ist [6] zu nennen. 4.1 Aufgabenstellung In der Chemieindustrie besitzt ein Kunde drei Datenquellen und möchte mit drei verschiedenen Applikationen kommunizieren. Gesucht sind eine kostengünstige Realisierung sowie eine geringe Auslastung der Steuerung. Als Clients sind zu nennen: MMI (Wonderware InTouch) Prozessdatenspeicher inkl. Prozessdatenanalyse in Form eines Servers (Honeywell PHD) Sensordatenüberwachung und -aufnahme/Monitoring (BNC DM2000) Als Datenquellen stehen zur Verfügung: PLC/SPS (Triconex Tricon) Excel-Arbeitsmappe Sensor (BNC Data) 4.2 Lösungsansatz Um einen Vergleich zu ermöglichen, wird zunächst der herkömmliche Lösungsansatz betrachtet. Bild 4.1 zeigt die benötigte Infrastruktur, wie sie ohne OPC nötig wäre. Es sind bei nur je drei verschiedenen Clients und Datenquellen neun Schnittstellen (Treiber) nötig, damit eine Kommunikation untereinander aufgebaut werden kann. Darüberhinaus benötigt jede Quelle drei Clientanbindungen. Es handelt sich hierbei um ein möglichst einfaches, überschaubares Beispiel. Adaptiert man die eben genannten Tatsachen auf ein reales Prozessleitsystem im Bereich der Automatisierung, wird das Ausmaß an Schnittstellen und Anbindungen schnell ersichtlich. 23 OPC für Prozessleitsysteme - 4 Industrielles Anwendungsbeispiel Bild 4.1: Herkömmlicher Lösungsansatz [6] Darüberhinaus ist hierbei noch die Problematik zu bedenken, dass es im Normallfall nicht möglich ist mehrere Treiber bei der proprietären Lösung auf einen PC arbeiten zu lassen. Es existiert keine geordnete Kontrolle der Datenzugriffe. Wann Daten abgefragt wurden, wie oft und wie viel bleibt hier unbeantwortet. Abstraktes Analogon: Person X steht vor einer Gruppe von Menschen, die Gruppe besteht aus 8 Personen, alle stellen Fragen zur gleichen Zeit an Person X. Die Problematik lässt sich an fünf Punkten beschreiben: Wer bekommt seine Antwort? Wann bekommt man eine Antwort? Fragen werden überhört und an bekommt keine Antwort! Unwichtige Fragen können vor wichtigen beantwortet werden! Person X verliert nach gewisser Zeit den Überblick So ist es in ähnlicher Weise möglich das komplette System aus Bild 4.1 bei erhöhtem datenaufkommen lahm zu legen. Betrachtet man nun die Lösung dieser Aufgabe mit Hilfe von OPC, ergibt sich folgendes Bild. 24 OPC für Prozessleitsysteme - 4 Industrielles Anwendungsbeispiel Bild 4.2: Lösung mit OPC [6] Die Erfordernis von drei verschiedenen OPC-Servern mag etwas ungewöhnlich anmuten, dabei ist jedoch folgendes zu berücksichtigen: Da es sich um ein standardisiertes Konzept handelt, benötigt man nur einen Server aus Hardwaresicht. Das heißt anschaulich, dass ein Server (Hardware) als dreifacher OPC-Server (Software) fungiert. OPC ermöglicht den parallelen Betrieb von mehreren OPCServern sowie -Clients. Man hat nun eine Datenschnittstelle pro Quelle mit je einem OPC-Server. Das System benötigt nur einen OPC-Client und die Kommunikation würde über OPC DA erfolgen. Der Zugriff erfolgt demnach über die Server. Gebündelte Anfragen stellt der Server an das Gerät, das führt zu einem entlasteten System und strukturiertem Datenaufkommen. 4.3 Finanzielle Sichtweise Nachfolgend wird kurzer ein Blick auf die finanziellen Hintergründe für die Umsetzung der in Kapitel 4.2 beschriebenen Lösungen geworfen. Folgende Daten entstammen der FA. MatrikonOPC [6] und sind als Anhaltwerte zu verstehen, um die Größenordnungen für die Umsetzungen dieses Beispiels einordnen zu können. 25 OPC für Prozessleitsysteme - 4 Industrielles Anwendungsbeispiel Bild 4.3: Finanzielle und zeitliche Sicht der Lösungen [6] Wie man in Bild 4.3 erkennt ist die Umsetzung der OPC-Lösung wesentlich schneller und vor allem kostengünstiger. Das bedeutet neben den Vorteilen im Betrieb der Anlage besticht die OPC Lösung auch im Bereich der Anschaffung und Umsetzung durch geringere Kosten und schnellere Umsetzung. 26 OPC für Prozessleitsysteme - 5 Literaturverzeichnis 5 Literaturverzeichnis [1] Kon-Cept Management Information Services GmbH - OLE for process control (Publikation), http://www.kon-cept.at, Mai 2008 [2] OPC Task Force - OPC Overview V1.0 (Publikation), 27. Oktober 1998 [3] Weber, Michael - DCOM (Skript), Universität Ulm, Wintersemester 2000/2001 [4] Softing AG - OPC-Spezifikationen, Frank Iwanitz, Zugriff: Juni 2009 [5] Siemens AG - Step 7 Produktinformationen und Systembeschreibungen, http://support.automation.siemens.com, Zugriff: Juni 2009 [6] Matrikon Deutschland AG - Was ist OPC?, Silvia Heimeier, Zugriff: Juni 2009 [7] Praxis Profiline – OPC2004, Vogel Industrie Medien GmbH & Co. KG [8] Iwanitz, Frank - XML-DA opens windows beyond the firewall, The industrial ethernet book, http://ethernet.industrial-networking.com, Zugriff: Juli 2009 27