CGI: Schlüssel zur webfähigen SPS

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 erlaubt, Skripte oder Anwendungen auf dem Server selbst auszuführen.

Das Ergebnis dieser ausführbaren Dateien wird dann 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 dies durch Angabe eines «?», gefolgt von den Parametern. Mehrere Parameter werden durch «+»-Zeichen unterteilt.

Die PCD-Steuerungen 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, etc. ausgelesen und geändert werden.

Daten lesen lassen sich mit der CGI-Anwendung «readVal.exe»; mit «writeVal.exe» können Daten geschrieben werden. Es genügt schon ein simpler Browser, um diese 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 (in dezimalem Format) 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 noch der zu schreibende Wert (1234), separiert durch ein «+», in Form eines zweiten Parameters mit angegeben.

PCD-Steuerungen bieten neben den rudimentären CGI-Funktionen zum Lesen und Schreiben einzelner SPS-Daten auch 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, welche die gewünschten SPS-Daten spezifizieren. Einmal definiert, werden diese durch einen einzigen Aufruf abgefragt und mit einem einzigen Telegramm übermittelt. Somit können auch grosse Datenmengen auf flexible Art 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 & .NET-Anwendungen heraus angesprochen werden. Mit der WebRequest-Klasse ist in .NET schon alles enthalten, was es braucht, 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 – einfacher geht’s nicht.

Damit sind für eine Kommunikation zwischen SPS und PC oder Bedienpanel keine speziellen Treiber, OPC-Server oder gar 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 übers Intranet zugreifen will oder Fernwartung via Internet realisiert werden soll.