LinkedIn Logo YouTube Logo

Open Source: Visualisierung großer verteilter Anlangen mit pvbrowser

Das Internet hat gezeigt, dass auch komplexere, dynamische Anwendungen von jedermann zu bedienen sein können - mit einem einfachen Browser und ohne größeres Vorwissen, denn heutzutage kennt sich jeder etwas im Internet aus. Das Komplexe wurde auf die Seite des Servers ausgelagert. Das Prinzip ist einfach: Ein schlau programmierter Server und einfache Clients. Lässt sich dieses Prinzip auf eine Visualisierung von großen verteilten Anlagen anwenden?

Um diese Frage zu beantworten schauen wir uns dazu zunächst einmal genauer an, was im Internet möglich ist. Der Client entspricht dem Internet-Browser, mit dem man alle im Internet angebotenen Seiten erreichen kann. Diese Seiten werden von einem Webserver unter einer Internetadresse zur Verfügung gestellt. Der Browser auf dem Arbeitsplatz PC verbindet sich über das Netzwerk mit einem dieser Webserver und man kann die angebotenen Inhalte lesen. Über Hyperlinks kann dabei von einer Webseite zu einer anderen Webseite verwiesen werden. Weitere Unterstützung erhält der Benutzer über Suchmaschinen und Internetverzeichnisse, mit deren Hilfe die gewünschten Informationen gefunden werden können. In letzter Zeit wird nun mit dieser Technik auch versucht Prozessvisualisierungen zu realisieren: Über Asynchronous JavaScript and XML (Ajax) werden die sonst eher statischen Seiteninhalte dynamisch verändert. Allerdings kann diese auch mit \’Web 2.0\‘ bezeichnete Technik nur relativ langsame Veränderungen visualisieren. Um die Handhabung von Ajax zu verbessern befinden sich unterstützende Werkzeuge in der Entwicklung, wie etwa das \’Google Web Toolkit\‘ (code.google.com. In dem Projekt pvbrowser.org gehen die Entwickler einen anderen Weg, der explizit auf die Anforderungen dynamischer Prozessvisualisierungen auch für schnelle Prozesse zugeschnitten ist. Dabei behalten sie das Grundprinzip von Client und Server bei, sodass die schließliche Benutzung einer Visualisierung nicht schwerer ist, als surfen auf einer Internetseite. Dazu wird kein auf HTML basierender Internet Browser, sondern ein eigens dafür entwickelter Browser verwendet, der über ein verbindungsorientiertes Protokoll auf Transportebene von TCP/IP arbeitet. Damit werden einige der Probleme mit dem verbindungslosen http umgangen. Der Brow­ser ist in C++ geschrieben und arbeitet mit Widgets der Qt-Bibliothek von Nokia/Trolltech, die es ermöglicht, Anwendungen zu schreiben, die auf allen gängigen Betriebssystemen laufen – es muss nur ein Sourcecode gepflegt werden. Daraus lassen sich native Anwendungen für Linux/Unix/Windows und OS-X erstellen. Das pvbrowser eigene Protokoll übermittelt einfach Texte über die Netzwerkverbindung, die jeweils mit einem Zeilenvorschub abgeschlossen werden. Die Texte, die vom Server verschickt werden, werden im Browser in Aufrufe der Qt Bibliothek umgesetzt. Wenn der Benutzer Eingaben tätigt, werden in der Gegenrichtung Texte mit den Ereignissen gesendet, die am Server in einer Ereignisschleife verarbeitet werden. Der Programmierer der Prozessvisualisierung muss sich dabei nicht mit diesen Texten befassen, es steht ihm stattdessen eine entsprechende Programmierschnittstelle zur Verfügung. Der pvbrowser auf den Client Computern entspricht einem Webbrowser und bedarf keiner Anpassung für einzelne Visualisierungen. Die Server für pvbrowser werden mit Hilfe einer integrierten Entwicklungsumgebung erstellt (pvdevelop). Diese Entwicklungsumgebung erstellt und pflegt das Gerüst des Servers und ermöglicht die graphische Gestaltung der Oberfläche der einzelnen zur Prozessvisualisierung gehörenden Masken, sodass dieser Entwurf so einfach wie Internetseitengestaltung mit FrontPage, Dreamweaver oder ähnlichen Tools wird. Der Programmierer der Visualisierung braucht schließlich nur noch die eintreffenden Ereignisse in den vorgegebenen #slot#-Funktionen zu behandeln, was etwa so schwer ist, wie die Programmierung von Webseiten mit PHP. Ein Server benötigt nur die mitgelieferten Bibliotheken. Qt ist für den Server nicht notwendig, weshalb ein solcher pvserver auf jedem System laufen kann, das C/C++ unterstützt und über eine Netzwerkschnittstelle verfügt (Linux/ Unix/Windows/OS-X und OpenVMS). Die pvserver können also in der Anlage verteilt sein und über Hyperlinks kann der Benutzer von einer Visualisierung auf die nächste springen. Bei einer Visualisierung spielen Messungen an Sensoren, Schalter und sonstigen Daten, die z.B. über (Feld-)Busse empfangen bzw. versendet werden können eine wichtige Rolle. Die Daten des zu überwachenden Prozesses werden dabei über separate Programme erfasst, die im Hintergrund laufen. Mit Hilfe eines \’Shared Memory\‘ und einer \’Mailbox\‘ tauscht ein solcher Hintergrundprozess (daemon) die Prozess­daten mit dem pvserver der Prozessvisualisierung aus. Der daemon \’spricht\‘ das Protokoll der SPS oder des Feldbussystems und legt die zyklisch gelesenen Prozessdaten in dem Shared Memory ab. Ebenso sendet er über die Mailbox Ausgaben an die SPS oder das Feldbussystem. Durch die Trennung von pvserver und daemon zur Datenerfassung lassen sich beliebige Protokolle in pvbrowser integrieren. Von Hause aus werden von pvbrowser viele gängige SPS- und Feldbus-Protokolle unterstützt, d.h. dass übliche daemons schon vorhanden sind und nicht selber programmiert werden müssen. Man kann neue Protokolle aber auch sehr einfach nach diesem Prinzip nachrüsten. Fazit Mit pvbrowser kann man hoch dynamische Prozessvisualisierungen realisieren, die nach dem Client/Server Prinzip über das Netzwerk (Intranet oder Internet) arbeiten. Dabei kann man, wie vom

OpenSourceProject PVBrowser
http://www.pvbrowser.org

Das könnte Sie auch Interessieren

Weitere Beiträge