Teil 3 von 4: Web-Technik in der Automation: Softwareplattformen

Unsere Artikelserie erklärt in vier Teilen sowohl die Technik als auch die Bedeutung und die praktische Umsetzung der Web-Technologie in der Automatisierung. Konzentrierten sich die ersten beiden Teile auf die Grundlagen sowie das Bedienen, Beobachten und Visualisieren, lesen Sie diesmal, welche Bedeutung Softwareplattformen dabei spielen.

Moderne Softwareplattformen wie Microsofts .net oder Java sind konsequent auf Web-Technik ausgerichtet. Web-fähige Steuerungen lassen sich so ohne zusätzliche Softwaretreiber oder OPC-Server mit der PC-Welt verbinden. Mit mächtigen Softwarewerkzeugen und einem großen Funktionsumfang erschließen Softwareplattformen neue Einsatzfelder in Automatisierungsprojekten. Web-Technologien beherrschen Auf den ersten Blick scheinen die Softwareplattformen nicht unbedingt etwas mit Web-Technik oder Automatisierungstechnik gemein zu haben. Allerdings haben praktisch alle etablierten Softwareplattformen immense Anstrengungen unternommen, Web-Technologien auf einfache Art zu beherrschen. Automatisierungskomponenten, die ebenfalls Web-Technologien unterstützen, lassen sich so im Handumdrehen mit der PC-Welt verbinden. Noch nie war es so einfach, webfähige Steuerungen mit PCs und so mit der gesamten Windows bzw. Linux-Welt kommunizieren zu lassen – ohne Zusatzsoftware, Softwaretreiber oder Extra-Baugruppen. Was sind Softwareplattformen? Softwareplattformen sind ein weitläufiger Begriff. Stark vereinfacht kann darunter eine Plattform verstanden werden, auf der spezifische Software ablauffähig ist. In erster Näherung kann das eine Hardware sein, die nach gewissen Normen entworfen wurde (z.B. PCs); allerdings spricht man dann eher von einer Hardwareplattform. Wenn man nicht alles selbst erfinden und mühsam programmieren will, greift man auf Standardfunktionen zurück, die irgendwann schon einmal jemand programmiert hat. Ein Betriebssystem ist z.B. eine solche Sammlung von Grundfunktionen und so gesehen eine Softwareplattform. Betriebssysteme entkoppeln auch die Anwendungsprogrammierung von der spezifischen Hardware: Ein Windows-Programm läuft auf jedem Rechner mit installiertem Windows-Betriebssystem – egal von welchem Hersteller der PC kommt. Will man dann noch Programme entwickeln, die unter verschiedenen Betriebssystemen lauffähig sind, kommt man dem praktischen Verständnis des Begriffs der Softwareplattform recht nahe. Java ist z.B. eine Softwareplattform, die auf unterschiedlichen Betriebssystemen lauffähig ist. Eine sogenannte Java Virtual Machine (JVM) bildet hierbei das Bindeglied zwischen Java-Programm und Betriebssystem. Ist eine JVM auf dem Rechner installiert, können Java-Programme ohne erneutes Kompilieren ausgeführt werden. Der Trick dabei ist, dass Java-Programme nicht gegen ein spezifisches Betriebssystem oder eine spezielle Hardwareplattform kompiliert werden, sondern anstelle von CPU-spezifischem Maschinencode in einen unabhängigen Zwischencode übersetzt werden. Der Zwischencode wird dann durch die JVM auf dem Zielsystem zum Ablauf gebracht. Dadurch ist die Plattformunabhängigkeit von Java gewährleistet. Damit sind auch Java-Programme unter Windows, Linux/Unix, McIntosh usw. gleichermaßen lauffähig. Das Konzept des Zwischencodes ist übrigens ein Verfahren, das in der SPS-Technik seit Jahrzehnten erfolgreich praktiziert wird und mit ein Grund für die Kontinuität und Langzeitverfügbarkeit der SPS-Technik ist. Softwareplattform .net Microsoft hat mit .net eine Softwareplattform etabliert, die nach denselben Prinzipien wie Java aufgebaut ist, jedoch hauptsächlich auf Windows-Betriebssysteme abzielt. Aber auch mit .net ist es jetzt möglich, Programme für Desktop-Betriebssysteme wie Windows 2000/XP/Vista und Windows CE, SmartPhones und PocketPC gleichermaßen zu realisieren. In den weiteren Ausführungen liegt das Schwergewicht auf der Softwareplattform .net und das Programmieren mit Visual-Basic .net. Das liegt in der weiten Verbreitung von Windows und Visual-Basic begründet und soll keine Wertung darstellen; im Wesentlichen lassen sich die dargestellten Sachverhalte ohnehin unverändert auf Java übertragen. Objektorientierte Sprachen Zu einer Softwareplattform gehören umfangreiche Funktionsbibliotheken und mächtige Programmierwerkzeuge. Moderne Programmierung folgt den Prinzipien der objektorientierten Programmierung. Auch die Softwareplattform .net bietet objektorientierte Sprachen wie C# und Visual-Basic. Bei objektorientiertem Software-Engineering spricht man weniger von Funktionsbibliotheken als vielmehr von Klassen. Die .net-Plattform bietet mächtige Klassenbibliotheken, die die Nutzung von PC/Windows-Technik vereinfachen. Egal ob Multimedia-Technologien wie Video oder eine Datenbank zur Anwendung kommen soll, mit .net und Visual-Basic lassen sich in einem Automatisierungsprojekt Aufgaben bewältigen, die weit über eine Visualisierung hinausgehen. Aufgrund des .net-Frameworks können Anwendungen sowohl für die Desktop-Windows-Varianten (z.B. Windows 2000/XP/Vista) als auch für Windows CE basierte Geräte wie etwa Web-Panel erstellt werden. Somit lassen sich .net-Anwendungen auf Büro-PCs und Bedienpanels (Windows CE & eXP) ausführen. Microsoft bietet ein Softwarewerkzeug zur Erstellung von .net-Anwendungen: Visual Studio 2005. Mit Visual Studio 2005 kann die grafische Oberfläche einer Windows-Anwendung mit wenigen Mausklicks aus vorgefertigten Komponenten erstellt werden. Umfangreiche Debugg-Möglichkeiten ergänzen das Werkzeug. Microsoft bietet eine kostenfreie Version der Entwicklungsumgebung an. Mittlerweile hat sich eine starke Internet-Gemeinschaft in Bezug auf .net und Visual-Basic gebildet. Für Problemstellungen jedweder Art findet man hier kostenfreie Anlaufstellen auf einem hohen, professionellen Niveau. Oft findet man sogar fertige Programmteile oder Schnipsel (\’snippets\‘), die ins eigene Programm eingebaut werden können. Web-Inhalte laden In der Vergangenheit war es nicht unbedingt einfach, programmtechnisch auf Web-Seiten zuzugreifen. Das hat sich mit Java und .net grundlegend geändert. Beide Softwareplattformen bieten mächtige Klassen, mit deren Hilfe das Laden einer Web-Seite zum Kinderspiel geworden ist. Bei .net kann mit der WebRequest-Klasse eine Datei aus dem Internet geladen werden. Es sind lediglich vier Anweisungen notwendig: -\’Objekte für Web-Zugriff definieren Dim wReq As WebRequest Dim wResp As WebResponse -\’Auf Web-Seite zugreifen wReq = WebRequest.Create (\“http://192.168.0.230/demo.html\“) \’Antwort auslesen wResp = wReq.GetResponse() Nach der Ausführung befindet sich der Inhalt der geladenen Web-Seite demo.html, die vom Server mit der IP-Adresse 192.168.0.230 geladen wurde, in der Variablen wResp und kann beliebig weiterverarbeitet werden. Ähnlich einfach geht es mit Java. Wieso das einfache Laden von Web-Inhalten im Hinblick auf Automatisierungsprojekte wichtig ist, verdeutlicht die Methode, mit der auf Daten einer webfähigen SPS zugegriffen wird. Schlüssel zur webfähigen SPS Bereits im ersten Teil dieser Artikelreihe wurde kurz auf die CGI-Technik eingegangen. CGI (Common Gateway Interface) ist eine Standard-Web-Technik und wird häufig auf Web-Servern eingesetzt. CGI definiert eine Schnittstelle auf einem Web-Server, die es ermöglicht, Skripte oder Anwendungen auf dem Server selbst auszuführen. Das Ergebnis der ausführbaren Dateien wird meist in Form einer HTML-Seite an den aufrufenden Client (Browser) übermittelt. Es hat sich eingebürgert, dass über CGI ausführbare Dateien in einem Verzeichnis \’cgi-bin\‘ hinterlegt werden. Ein CGI-Aufruf besteht aus der Internet-Adresse, der Angabe des CGI-Verzeichnisses (\’cgi-bin\‘) und der gewünschten ausführbaren Datei. Sollen der ausführbaren Datei Parameter übergeben werden, erfolgt das durch Angabe eines \‘?\‘, gefolgt von den Parametern. Mehrere Parameter werden durch \’+\‘-Zeichen unterteilt. SPS-Daten auslesen Die PCD-Steuerungen der Saia-Burgess Controls AG verfügen über einen Web-Server mit CGI-Schnittstelle, worüber man auf sämtliche SPS-Daten der Steuerung Zugriff hat. Derart können Ein-/Ausgänge, Merker, Datenbausteine usw. ausgelesen und geändert werden. Daten lassen sich mit der CGI-Anwendung \’read­Val.exe\‘ lesen, mit \’writeVal.exe\‘ können Daten geschrieben werden. Es genügt schon ein simpler Browser, um die Technik anzuwenden. Gibt man beispielsweise in der Adresszeile des Browsers die URL http://192.168.0.230/cgi-bin/readVal.exe?PDP,,MW100,d ein, erscheint im Browserfenster der aktuelle Wert des Merkerworts 100 der Steuerung mit der IP-Adresse 192.168.0.230. Dem eigentlichen CGI-Kommando \’readVal.exe\‘ folgt als Parameter, separiert durch ein \‘?\‘, ein Tag zur Adressierung der SPS-Daten. Dieses besteht aus einer generellen Kennung für Prozessdaten (PDP,), den gewünschten SPS-Daten (MW100 – Merkerwort 100) und einem Format (d – dezimal). Will man das Merkerwort auf den Wert 1234 setzen, geschieht das mit der URL http://192.168.0.230/cgi-bin/writeVal.exe?PDP,,MW100,d+1234. Hier wird zusätzlich der zu schreibende Wert (1234), separiert durch ein \’+\‘, in Form eines zweiten Parameters mit angegeben. Informationen über die Syntax der CGI-Anweisungen und der Gebrauch sind dem Kasten \’CGI-Syntax: Mit Standard-Browser SPS-Daten abfragen\‘ zu entnehmen. PCD-Steuerungen bieten neben den rudimentären CGI-Funktionen zum Lesen und Schreiben einzelner SPS-Daten die Möglichkeit, mehrere Werte gleichzeitig – mit nur einem einzigen Zugriff/Telegramm – abzufragen bzw. zu ändern. Hierzu werden mit einer weiteren CGI-Funktion einmalig Datensätze definiert, die die gewünschten SPS-Daten spezifizieren. Einmal definiert, werden sie durch einen einzigen Aufruf abgefragt und mit einem einzigen Telegramm übermittelt. Somit können auch große Datenmengen flexibel und ohne Kommunikations-Overhead übertragen werden. Nun ist es zwar ganz nett, SPS-Daten mit einem Browser abzufragen. Aber worin liegt der Nutzen? Mit genau derselben Methode können SPS-Daten aus Java und .net-Anwendungen heraus angesprochen werden. Mit der Web­Request-Klasse ist in .net schon alles enthalten, was benötigt wird, um mit einer SPS zu kommunizieren. Einem WebRequest-Aufruf ist lediglich das gewünschte CGI-Kommando als URL zu übergeben, und schon hat man die gewünschten Daten innerhalb seiner Visual-Basic-Anwendung zur Verfügung. Damit sind für eine Kommunikation zwischen SPS und PC oder Bedienpanel keine speziellen Treiber, OPC-Server oder zusätzliche Einsteckkarten notwendig; alles lässt sich bequem mit Windows-Bordmitteln bewerkstelligen. Und das Beste: Es funktioniert immer gleich, egal ob ein Web-Panel direkt an der Maschine mit der SPS verbunden ist, ein Büro-PC über das Intranet zugreifen will oder Fernwartung via Internet realisiert werden soll. Praxis: Testen Sie selbst Damit Sie sich selbst ein Bild vom Umgang mit CGI-Kommandos bzw. deren Anwendung innerhalb von .net-Programmen machen können, haben wir zu Demons-trationszwecken ein einfaches Visual-Basic-Programm entworfen. Ab August 2007 können Sie es vom Web-Portal des SPS-MAGAZINs laden. Es stehen zwei Varianten zum Download bereit: Die gepackte Datei \’VB_WebDemo_SPS-Magazin_project.zip\‘ beinhaltet das gesamte Visual-Basic-Projekt, das Sie mit Microsoft Visual-Studio 2005 öffnen und modifizieren können. Für all diejenigen, die sich nur von der Funktionsweise einer webbasierten Bedienung mit einer .net-Applikation überzeugen lassen wollen, ist die fertig übersetzte Anwendung in der gepackten Datei \’VB_WebDemo_SPS-Magazin_binary.zip\‘ gedacht. Das Demo-Programm \’VB_WebDemo_SPS-Magazin.exe\‘ ist auf allen Windows-Rechnern lauffähig, auf denen das .net-Framework installiert ist. Sollte das Framework nicht installiert sein, kann es von Microsoft kostenfrei heruntergeladen und installiert werden. Weiter ist zur Ausführung des Programms eine eingerichtete und aktive Internetverbindung notwendig. Da nicht jeder im Besitz einer webfähigen Steuerung ist, ist wir eine Step7-kompatible Steuerung des Typs PCD7.M5547 über das Internet zugänglich; physikalisch befindet sich die SPS in Murten (Schweiz). Sie können die Steuerung unter http://cgi-demo.saia-sps.dyndns.org ansprechen. Das Demo-Programm greift auf die Steuerung zu und ist in drei Tabs unterteilt. Auf dem ersten Tab kann mit einer Schaltfläche (Button) das Merkerwort 100 um 1 erhöht werden. Der aktuelle Wert des Merkerworts 100 wird darunter angezeigt. Der zweite Tab zeigt die Default-Startseite des Web-Servers der Steuerung, der dritte Tab stellt eine Verbindung zur Web-Site der Firma Saia-Burgess Controls AG her. Aus Gründen der Nachvollziehbarkeit wurde das Visual-Basic-Programm so einfach wie möglich gehalten und bewusst auf eine umfangreiche Fehlerbehandlung verzichtet. Daher kann es bei nicht sachgemäßem Einsatz vorkommen, z.B. wenn keine Verbindung zum Internet besteht, dass das Programm langsam oder nicht reagiert. Schlimmstenfalls kann das Programm einfach mit dem Taskmanager beendet werden. Und noch etwas: Wundern Sie sich nicht, wenn das Merkerwort 100 sich vielleicht auch ohne Ihr Zutun ändert, dann ist ein weiterer Leser gerade dabei, die Technik auszuprobieren. Kasten 1: CGI-Syntax: Mit Standard-Browser SPS-Daten abfragen Saia-Burgess PCD-Steuerungen bieten eine CGI-Schnittstelle, mit deren Hilfe mit Standard-Browsern und Java/.net-Standardklassen auf SPS-Daten zugegriffen werden kann. Hierzu werden die CGI-Kommandos in Form einer URL an die Steuerung übermittelt. Daten von einer SPS lesen: http:///cgi-bin/readVal.exe?PDP,,, Daten in die SPS schreiben: http:///cgi-bin/writeVal.exe?PDP,,,+ Syntax: IP oder DNS-Name der Steuerung; z.B. \’192.168.100.33\‘ oder \’cgi-demo.saia-sps.dyndns.org\‘ Daten (Type und Adresse) der Steuerung, auf die zugegriffen werden soll; I, IB, IW Eingang, z.B. I100.2, IB100, IW100 Q, QB, QW Ausgang, z.B. Q100.2, QB100, QW100 M, MB, MW Merker, z.B. M100.2, MB100, MW100 DB(X/B/W) Datenbaustein, z.B. DB100.DBX10.5, DB100.DBB10, DB100.DBW10 Format; d dezimal b binär x hexadezimal s Zeichenkette (String) Wert, der in SPS geschrieben werden soll. Kasten 2: Informationen im Internet Die Demo-Version des Visual-Basic-Programms gibt es unter: VB_WebDemo_SPS-Magazin_binary.zip VB_WebDemo_SPS-Magazin_project.zip Visual Studio 2005 Express kann von Microsoft gratis aus dem Internet geladen werden: http://www.microsoft.com/germany/msdn/vstudio/products/express/download.mspx Folgende Web-Sites konzentieren sich auf .net-orientiertes Programmieren: http://www.codeguru.com http://www.codeproject.com http://www.vbarchiv.net http://www.vb-fun.de

Saia-Burgess Controls AG
http://www.start-controls.com

Das könnte Sie auch Interessieren

Weitere Beiträge