Java-Applets als offene B&B-Objekte Teil 1 von 2

Für die schnelle Prozessvisualisierung und -bedienung müssen in browser- bzw. webbasierten Scada/HMI-Systemen spezielle Programmobjekte eingesetzt werden, die über zusätzliche TCP/IP-Kanäle und mittels geeigneter Protokolle eine ereignisbasierte Aktualisierung von Prozessdaten im Webbrowser ermöglichen (Server-Push). Das übliche zustandslose HTTP-Protokoll kann einen solchen Server-Push nicht realisieren. Als Programmobjekte können dazu in Webseiten eingebettete ActiveX-Objekte oder Java-Applets genutzt werden. Beide bieten zwar hinsichtlich der möglichen B&B-Funktionalität ähnliche Fähigkeiten, unterscheiden sich aber beträchtlich in den sonstigen Anwendungseigenschaften: -ActiveX-Objekte besitzen ein erhebliches Sicherheitsproblem, da sie prinzipiell auf alle Ressourcen des Client-Rechners zugreifen können. Sie sind außerdem nur unter MS Windows und dem Internet Explorer als Webbrowser lauffähig. Die Objekte werden auf den Clientrechner geladen und dort dauerhaft registriert. -Java-Applets laufen demgegenüber in einer \“Sandbox\“, können nicht auf Ressourcen des Elternrechners zugreifen und sind prinzipiell unter jedem Betriebssystem und jedem Webbrowser lauffähig. Sie werden auch nicht dauerhaft auf dem Client-Rechner gespeichert und registriert. Viele der aktuellen browserbasierten Scada/HMI-Systeme nutzen ActiveX-Objekte, da diese mit klassischen Programmiersprachen (bevorzugt Visual Basic und C) erstellt werden und meist solche Objekte aus früheren Versionen bereits zur Verfügung stehen. Will man jedoch weitgehende Herstellerunabhängigkeit, Flexibilität und Sicherheit auch beim Zugriff über das Internet erreichen, sind der Einsatz von Java-Applets eindeutig die bessere Wahl. Grundlagen Java-Applets müssen mit der Programmiersprache Java erstellt werden. Der Applet-Code wird beim Aufruf einer HTML-Seite automatisch über das Internet geladen und mittels eines Java-Interpreters ausgeführt. Java-Interpreter sind u.a. Bestandteil der Java-Plattform von SUN und können kostenfrei heruntergeladen werden. Die Eigenschaften der jeweiligen Plattform bestimmen die grafischen und interaktiven Fähigkeiten entsprechender Applets. Tabelle 1 charakterisiert die beiden wesentlichen Java-Plattformen J2SE (Standard Edition) und J2ME (Micro Edition). Aufgrund von Einschränkungen der grafischen Fähigkeiten bei der J2ME kommt für komplexe B&B-Aufgaben praktisch nur die J2SE zur Anwendung. Nutzt man nur Basisbibliotheken, ist es aber durchaus möglich, dass ein bestimmtes B&B-Applet auch universell auf verschiedenen Bediengeräten (PC, PDA, Smartphone, Handy) identisch genutzt werden kann. Dies ist aber für den jeweiligen Fall im Detail zu testen. Auch wenn die unterschiedlichen Versionen der Java-Ausführungsumgebung von SUN (JVM – Java Virtual Machine) sehr stabil und rückwärtskompatibel arbeiten, ist doch im Einzelfall zu prüfen, ob bereits vorliegende B&B-Applets auch mit einer neuen JVM-Version korrekt arbeiten. Insbesondere bei Nutzung der Swing-Graphikbibliothek können durchaus bei unterschiedlichen JVM-Versionen Inkompatibilitäten auftreten. Java-Applets in Scada/HMI-Systemen Java-basierte Scada/HMI-Sys­teme nutzen Java-Applets für B&B-Aufgaben meist nach folgenden Methoden: Java-Applet als Viewer Ein Java-Applet fungiert als Viewer/Runtime-Umgebung für eine B&B-Datei. Diese B&B-Datei beschreibt in einem herstellerspezifischen Dateiformat die Visualisierung von Prozessdaten, interaktive Bedienelemente, u.a. Elemente eines HMI. Der Applet-Viewer und die B&B-Datei werden vom Server in den Client (Webbrowser) geladen und dort ausgeführt. Ein typischer Vertreter eines solchen Systems ist das GLG-Toolkit (Generic Logic). Nachteilig bei dieser Methode ist die vollständige Kapselung über den Applet-Viewer und die herstellerspezifischen Dateiformate, die eine Änderung/Anpassung durch den Nutzer nicht gestatten. Die Übertragung der Prozessdaten (PD) von/zu einem definierten Prozessdateninterface (z.B. OPC, Feldbus) erfolgt mittels einer in den Viewer eingebetteten TCP/IP-Verbindung und einem zusätzlichen Prozessdatenserver im jeweiligen Automatisierungsgerät.