Anzeige


Embedded Internet: Der Webserver


Viele Automatisierungskomponenten und embedded Systeme bieten einen Webserver für den Fernzugriff über Internet / Intranet.

Der Webserver ist eine Software. Egal, auf welcher Hardware die Software läuft - die Funktionsweise ist im Wesentlichen identisch: Ein Webserver ist das Programm, das Ihr Webbrowser beim Surfen im Internet kontaktet. Oder kürzer: Der Webserver ist das intelligente Gegenstück zu Ihrem Webbrowser. Der Webserver stellt HTML Seiten bereit und überträgt diese an Ihren Browser. Ihr Webbrowser zeigt Ihnen die Webseiten an.

Etwas umfangreicher ausgedrückt: Wenn Sie in Ihrem Webbrowser auf einen Hyperlink klicken oder eine http... Adresse eingeben, sendet Ihr Webbrowser einen HTTP GET Request an den Webserver. (HTTP = Hyper Text Transfer Protocol.)

Der Webserver ist so nett und übermittelt die mittels GET angeforderte Seite an Ihren Browser. Ihrer Browser wiederum ist das Programm, das die HTML Seite so darstellt, dass Sie die vielen bunten Bilder und Texte lesen können.

Kurzum: Webserver und Webbrowser sind entscheidende Teile des weltweiten Internets. Immer, wenn Sie mit einem Webbrowser durch das Internet surfen, kontakten Sie irgendwo auf der Welt einen Webserver, der Ihrem Browser die HTML Seiten per HTTP Protokoll übermittelt.

Webserver mit Statischen und Dynamischen Webseiten

Typischerweise übermittelt der Webserver immer die gleichen HTML Seiten. In diesem Fall spricht man von einer statischen HTML Seite: Diese HTML Seite, die Sie zum Beispiel gerade betrachten, wurde einmalig getippt (von uns) - und verändert sich nicht. (Zumindest nicht sehr oft.) Sie erhalten immer die gleiche Darstellung - egal, wie oft Sie die Seite neu übertragen oder die RELOAD Funktion (NEU LADEN) Ihres Browsers verwenden.

Ehrlicherweise - Sie werden es schon vermuten: ein Webserver kann noch mehr. Die meisten Webserver sind in der Lage, auch so genannte dynamische Webseiten zu übermitteln. Dynamische HTML Seiten sind Seiten, deren Inhalt sich ändert und die erst im Moment des Datenzugriffs erstellt werden.

Hinsichtlich Ihrer Betrachtungsweise im Browser ändert sich natürlich nichts. Egal, ob Sie gerade statische oder dynamische Webseiten betrachten - Sie sehen in Ihrem Browser immer eine HTML Seite mit (mehr oder minder) nützlichen Informationen.

Webserver in einem embedded System, z.B. in einem Industrieterminal

Wenn wir schon bei dynamischen HTML Webseiten sind - ein Webserver kann aber immer noch mehr. Er ist in der Lage, Programme zu starten, die auf seiner Hardware ausgeführt werden. (Typischerweise spricht man dann von PHP oder CGI Skripten - aber das ist ein Detail, das Sie sich nicht zwingendermassen merken müssen.) Aktiviert werden diese Programme ebenfalls nur einen Mouseklick in Ihrem Browser bzw. durch speziellen HTML Code, der vom Autor (oder Programmierer) in eine Webseite eingefügt wurde. Das ist jetzt wichtig: Das Programm wird jedoch auf dem Webserver ausgeführt - nicht auf Ihrem Browser. Ihr Browser erhält wiederum nur die Ergebnisse, die für Sie lesbar dargestellt werden.

Wir hoffen, dass man diesen Ausführungen noch folgen kann. Ein kleines Beispiel soll das verdeutlichen:

Das links dargestellte Industrieterminal TRM816 verfügt über einen Webserver und Ethernet Netzwerkanschluß. Rechts im Bild ist Ihr PC und ein Webbrowser.

Im Browser klicken Sie auf einen Hyperlink innerhalb einer HTML Seite bzw. rufen eine spezielle HTML Seite auf, z.B. http://192.168.4.123/ausgang.htm

Der Webserver im TRM816 erhält einen HTTP GET Request mit der Datei "ausgang.htm". Er prüft diese HTML Seite und stellt fest, dass er zuerst ein Programm starten soll, BEVOR er die HTML Seite an den Browser übermittelt. Er startet automatisch auf dem TRM816 ein kleines Programm, das Ausgänge auf dem TRM816 in einer bestimmten Reihenfolge schaltet oder deren Wert ermittelt. Die Ergebnisse dieses Programmes fügt der Webserver automatisch in die HTML Seite ein - und überträgt nun alles an Ihren Webbrowser. Im Browser sehen Sie dann z.B. in welchem Zustand sich die Ausgänge des TRM816 momentan befinden. Jedes Mal wenn Sie RELOAD (NEU LADEN) in Ihrem Webbrowser drücken, wird dieser Vorgang wiederholt. Sie können das Terminal TRM816 somit per Webbrowser "fernsteuern" oder "fernabfragen".

Etwas Programmierung bringt die volle Funktionsvielfalt

Damit der zuvor beschriebene Vorgang auf dem TRM816 ausgeführt werden kann, muss der Programmierer allerdings

a) den Webserver im TRM816 gestartet haben (das ist ein relativ einfacher Vorgang, da es sich um ein kleines Standardprogramm handelt),

b) eine spezielle HTML Seite auf dem bzw. für das TRM816 erstellt haben, die ein Programm startet,

c) das Programm programmiert haben, das via Webserver gestartet werden soll und das bestimmte Aktionen ausführt.

Punkte a + b sind relativ einfach. Punkt c ist etwas kniffliger - aber auch nicht besonders kompliziert. Hier muss man jedoch etwas programmieren können, d.h. es ist notwendig ein Programm zu schreiben, das auf dem TRM816 läuft und das bestimmte Aktionen durchführt. (Im Beispiel: Ausgänge setzen oder abfragen.)

Im Punkt c kann der Terminalprogrammierer (fast) alles verwenden. Einfache Programme werden durch kleine CGI - oder PHP Skripte realisiert. Dieses sind (mehr oder weniger) einfache Skriptsprachen, die bestimmte Inhalte verarbeiten oder Daten liefern. Umfangreichere Programme sind "richtige" Programme, die in C oder C++ programmiert wurden. In jedem Fall - und hier wird es wieder wichtig - hat der Programmierer alle Möglichkeiten und kann durch per Programm alle Stati oder Modi des TRM816 abfragen oder setzen. Durch das CGI Programm auf dem TRM816 könnten z.B. Eingänge für eine Temperaturmessung abgefragt werden.

 

Multitasking - jetzt wird es interessant

Wer nun glaubt, dass die Software Webserver ein kleines Industrieterminal ernsthaft beschäftigt - weit gefehlt! Webserversoftware ist prinzipiell dafür ausgelegt, dass eine Vielzahl von Leuten quasi gleichzeitig HTML Seiten abruft. Schließlich sind Sie selten alleine im Internet unterwegs. Nun wird es in der Praxis bei einem Industriesystem eher selten vorkommen, dass Tausende von Menschen gleichzeitig das gleiche Industriesystem via Webbrowser fernwarten möchten. (Bösartige Hackerumtriebe mal ausgenommen. Übrigens: Wenn man einen Webserver mit Unmengen an HTTP GET Requests attackiert, "geht er in die Knie". Man spricht in diesem Fall von Deny of Service (DNS) Attacken. Da gehört dann zwar noch etwas mehr dazu - aber vereinfacht ausgedrückt, ist das schon die üble Grundidee, wie böse Menschen von Zeit zu Zeit versuchen, bestimmte Rechner im Internet / Webserver lahmzulegen...)

Doch zurück zu unserem Beispiel mit dem Industrieterminal. Realistisch ist es hier, dass auf dem Industrieterminal zusätzlich zur Webserversoftware noch weitere Programme ablaufen. Mit anderen Worten: Das Terminal hat ja meistens noch eine Primäraufgabe, z.B. irgendwelche Steuerungs- oder Erfassungsfunktionalitäten. Industriesysteme mit Display und Tastatur bilden z.B. etwas, das als Mensch-Maschine-Interface bezeichnet wird. Der Bediener kann sozusagen "vorne" am Terminal arbeiten und die Maschine steuern - der Webserver läuft im "Hintergrund". Sinn macht das Ganze bei modernen Multitaskingsystemen, z.B. bei Linux. Unter Linux können mehrere Programme quasi "gleichzeitig" ablaufen. (Diese Programme werden als Task bezeichnet.) Im Vordergrund läuft dann das Programm zur Maschinensteuerung. Im Hintergrund läuft der Webserver als Task - und bei Bedarf zusätzliche weitere Programme, die z.B. ständig die Maschinentemperatur auslesen und in eine Logdatei schreiben. Diese Logdatei kann dann natürlich problemlos per Webserver abgerufen und z.B. als HTML Seite in einem Browser betrachtet werden. (Noch interessanter wäre natürlich eine XML Datei. Die kann dann wiederum in andere Programme zur Auswertung übertragen und verarbeitet werden.
Informationen zu XML - siehe hier...)

Alles in allem ist der Webserver damit eine ungemein nützliche Zusatzkomponente in einem industriellen oder in einem embedded System. Ihn als "kleines Tool" zu bezeichnen ist schon fast unfair. Hinsichtlich seiner Funktionsweise handelt es sich um ein ungemein mächtiges Programm. Umso verblüffender ist vielleicht, dass Webserver auf embedded Systemen bereits mit wenigen 100kByte Speicherplatz auskommen. Der Vorteil dürfte auf der Hand liegen: Selbst ein extrem kleines embedded System mit nur wenigen MByte Speicherkapazität kann problemlos eine Webserversoftware enthalten. Einzige Bedingung: der Webserver muss für das gewählte Betriebssystem vorliegen. Und das ist z.B. bei den Industrieterminals, die unter Linux betrieben werden, problemlos der Fall...

Einige Beispiele für Webserver

Zusätzlich zu dem "bekannten" Webserver, der Ihnen im Internet die vielen bunten HTML Seiten darstellt, wird eine Webserversoftware heute oftmals in folgenden Geräten verwendet:

  • bei den o.a. Industrieterminals und Industrie PC, um bestimmte Zustände abzufragen und via Webbrowser anzeigen zu lassen, alternativ natürlich auch, um bestimmte Zustände zu konfigurieren oder zu setzen
  • bei Linuxkassensystemen, um z.B. innerhalb des Tagesbetriebes aktuelle Tagessummen oder -Statistiken abzurufen
  • bei den vielen kleinen nützlichen Devices, die im Netzwerk ihren Dienst verrichten, z.B. bei einem Druckerrouter, der einen Drucker netzwerkfähig macht, zur Konfiguration bei einer WLAN Box, DSL Modem usw.

Für Sie gilt: Immer wenn ein Gerät einen Webserver bietet, haben Sie Konfigurations- oder Fernwartungsmöglichkeiten, die Sie mit Ihrem Browser verwenden können.

Hier noch einige Hyperlinks:

AE Systeme www.terminal-systems.de dort findet man z.B. die Hardware für den Datenerfassungs- oder Steuerungseinsatz, bei Linux immer mit Webserver

Anwendung: Infopanel - eine "tricky" Idee, wie man den Webserver in einem kleinen System als "elektronisches Türschild" bzw. Messagesystem einsetzen kann

 

 


(c) hjw AE, Last Update: 17.07.2009. Alle Angaben ohne Gewähr
IT Lösungen für die Industrie: www.terminal-systems.de || IT Beiträge