Beschreibung
Webserver mit integrierter Automatisierungsfunktionalität und Zugriff auf ein Echtzeit-Betriebssystem
Die Erfindung betrifft einen Webserver mit in den Webserver integrierten Softwaremodulen sowie ein Automatisierungssystem bzw. ein Computerprogrammprodukt mit einem solchen Webserver.
Server, welche über das Internet mit Clients verbunden sind und diesen Informationen, üblicherweise Internetseiten, zur Verfügung stellen, werden Webserver genannt. Ein solcher Webserver ist eine Applikation, welche auf einem oder auf mehreren Rechnern verteilt abläuft. Auf dem Webserver werden Daten zentral gespeichert, welche von vielen verschiedenen Clients verwendet werden können, unabhängig vom jeweiligen Standort eines Clients. Als Webserver wird sowohl die auf einem Rechner ablaufende Softwareapplikation als auch der Rechner selbst bezeichnet. Webserver dienen heute als universeller Informationslieferant im Internet, aber auch in lokalen Netzen, die auf Internettechnologien aufsetzen. Hierbei wird oft die Möglichkeit von Erweiterungsmodulen der Webserver Gebrauch gemacht, z.B. um Zugriff auf Datenbanken, Formulare etc. zu ermöglichen. Die Kommunikation zwischen Client und Webserver läuft üblicherweise gemäß dem HTTP-Protokoll (HTTP = Hyper Text Transfer Protocol) ab.
Die US 6 061 603 A beschreibt ein Steuerungssystem, welches einem Anwender ermöglicht, eine speicherprogrammierbare Steu- erung über ein Kommunikationsnetz wie z.B. das Internet mittels eines Webbrowsers zu erreichen. Das System enthält eine Schnittstelle zwischen dem Netzwerk und der speicherprogrammierbaren Steuerung. Dieses so genannte Webinterface bietet Internetseiten von einer Ethernetschnittstelle der speicher- programmierbaren Steuerung an und enthält einen HTTP-Proto- koll-Interpreter und einen TCP/IP-Stack (TCP/IP = Transmission Control Protocol/Internet Protocol) . Das Webinterface bie-
tet einem entfernten Anwender somit über das Internet Zugriff auf die speicherprogrammierbare Steuerung.
Der Erfindung liegt die Aufgabe zugrunde, eine nicht- proprietäre Lösungsmöglichkeit zur Realisierung einer Automatisierungsfunktionalität aufzuzeigen.
Diese Aufgabe wird mit einem Webserver mit Softwaremodulen gelöst, bei welchem mindestens ein erstes Softwaremodul erste Mittel zur Realisierung einer Automatisierungsfunktionalität und zweite Mittel zum Zugriff auf ein Echtzeit-Betriebssystem aufweist.
Der Erfindung liegt die Erkenntnis zugrunde, dass die klassi- sehe Automatisierungswelt heute wenige Berührungspunkte mit dem Internet hat, da in der Automatisierungstechnik überwiegend mit proprietären Protokollen gearbeitet wird. Die Entwicklung der Webtechnologie schreitet jedoch voran, ohne dass Fragestellungen der Automatisierungstechnik berücksichtigt werden. Die bisherigen Ansätze, eigene Webserverfunktionalität in die Automatisierungskomponenten zu integrieren, basieren wiederum auf proprietären Lösungen der einzelnen Komponenten. Zudem erwies sich die Leistungsfähigkeit derartiger Lösungen als sehr beschränkt. Der erfindungsgemäße Webserver verbindet auf überraschende Weise die Webtechnologie mit der Automatisierungstechnik, indem ein direkt in den Webserver integriertes Erweiterungsmodul, in der Regel ein Softwaremodul, die geforderte Automatisierungsfunktionalität zur Verfügung stellt. Ein solchermaßen in der Funktionalität erweiter- ter Webserver kann sowohl komplexe Aufgaben der klassischen Automatisierungstechnik als auch kleinere Aufgabenstellungen z.B. im Consumer-Bereich bearbeiten. Durch die direkte Integration der Automatisierungsfunktionalität in den Webserver lassen sich vorhandene Web-Implementierungen auch bei der Be- arbeitung der Automatisierungsaufgabe nutzen. Um die Nutzung von Webtechnologien auch für Echtzeit-Anwendungen zu ermöglichen, weist der Webserver ein Echtzeit-Betriebssystem auf.
Insbesondere beim Einsatz in der Prozessautomatisierung (z.B. Antriebsregelung in der Papierherstellung) müssen die verwendeten Automatisierungskomponenten echtzeitfähig sein. Durch Kopplung des ersten Softwaremoduls mit dem Echtzeit-Betriebs- system wird diese Anforderung erfüllt. Das Echtzeit-Betriebssystem kann zusätzlich zu einem nicht-echtzeitfähigen Betriebssystem (teil) oder als alleiniges Betriebssystem eingesetzt werden.
Durch die Verbindung des erfindungsgemäßen Webservers mit einem Kommunikationsnetzwerk, insbesondere dem Internet, werden zum einen Internet-Technologien der Automatisierungstechnik zugänglich und zum anderen wird eine durchgängige Anbindung der Automatisierungskomponenten an das Kommunikationsnetzwerk bzw. das Internet erreicht.
Die Verwendung von Internet-Protokollen zur Kommunikation der Softwaremodule untereinander und zur Kommunikation der Softwaremodule mit Komponenten außerhalb des Webservers er ög- licht die Vereinheitlichung der Komponenten des Webservers hinsichtlich ihrer Kommunikationsschnittstellen. Die Erweiterung des Webservers mit weiteren Modulen wird erleichtert, da diese ohne aufwendige Anpassung an proprietäre Protokolle verwendet werden können. Beispiele für übliche Internet- Protokolle sind HTTP und FTP (File Transfer Protocol) .
In einer vorteilhaften Ausgestaltung der Erfindung ist der Webserver zur Konfiguration und Administration der Softwaremodule vorgesehen.
Der erfindungsgemäße Webserver ist leicht skalierbar und somit gemäß einer weiteren vorteilhaften Ausgestaltung zur An- steuerung der Komponenten eines industriellen Automatisierungssystems einsetzbar, wenn das erste Softwaremodul eine Verbindung zum industriellen Automatisierungssystem aufweist.
Um verfügbare Internet-Sicherheitsmechanismen zu nutzen, wird vorgeschlagen, dass der Webserver über einen Firewall eine Verbindung mit dem Internet aufweist. Bei den bereits üblichen in eine Automatisierungskomponente integrierten Webser- vererweiterungen sind die im Internet geforderten Sicherheitsmechanismen aufgrund der engen Freiräume in der Regel nicht realisierbar.
Die Verbindung des Webservers mit einem Kommunikationsnetz- werk, insbesondere dem Internet, kann vorteilhaft zur Unterstützung der Automatisierungsfunktionalität genutzt werden, wenn der Webserver über ein Kommunikationsnetzwerk mit einem Webbrowser als Bedien- und Beobachtungssystem für das von dem ersten Softwaremodul angesteuerte Automatisierungssystem ver- bunden ist. Dieses Bedien- und Beobachtungssystem kann auch zur Projektierung, zur Programmierung, zur Durchführung von Software-Updates, also allgemein zur Datenkommunikation und Datenrepräsentation genutzt werden.
Nachfolgend wird die Erfindung anhand der in den Figuren dargestellten Ausführungsbeispiele näher beschrieben und erläutert.
Es zeigen:
FIG 1 ein System mit über das Internet verbundenen Webservern, welche unterschiedliche Aufgaben erfüllen,
FIG 2 einen Webserver mit Automatisierungsfunktionalität und FIG 3 eine schematische Ansicht des Aufbaus eines Webservers mit Automatisierungsfunktionalität.
FIG 1 zeigt verschiedene Webserver 3, 10, 15, 20, 24, welche direkt oder indirekt über das Internet 1 miteinander verbun- den sind. Ein erster Webserver 3 kommuniziert direkt über eine Verbindung 2 mit dem Internet 1. Der erste Webserver 3 enthält ein Erweiterungsmodul 4, welches über eine Verbindung
5 mit einem Eingabe-/Ausgabemodul 6 eines Automatisierungssystems verbunden ist. Ein zweiter und ein dritter Webserver 10, 15 sind über Verbindungen 9, 14, einen Firewall 8 und eine Verbindung 7 mit dem Internet 1 verbunden. Der zweite Web- server 10 weist ein Erweiterungsmodul 11 auf, welches eine Verbindung 12 zu einem Umrichter 13 aufweist. Der dritte Webserver 15 enthält ein Erweiterungsmodul 16, welches über eine Verbindung 17 einen Antrieb 18 ansteuert. Mit dem Bezugszeichen 20 ist ein vierter Webserver, ein so genannter e bedded Webserver gekennzeichnet, welcher direkt über eine Verbindung 19 mit dem Internet 1 verbunden ist und ein Erweiterungsmodul 21 aufweist, welches ein Ventil 22 ansteuert. Der in FIG 1 dargestellte fünfte Webserver 24 besitzt keinerlei Automatisierungsfunktionalität und kommuniziert mit dem Internet über eine Verbindung 23. Ein Webbrowser 26 ist über eine Verbindung 25 an das Internet 1 angeschlossen.
Im Folgenden soll die der Erfindung zugrunde liegende Idee anhand FIG 1 erläutert werden. Ein Webserver ist ein Prozess auf einem Rechner - oder auch verteilt über mehrere Rechner - und versorgt üblicherweise sehr viele Clients (Webbrowser auf verschiedenen Geräten) mit Informationen. Diese Informationen können sich entweder statisch auf dem Webserver befinden oder aber auch dynamisch von weiteren Dienstprogrammen erzeugt werden. Übliche über das Internet 1 verbundene Kommunikationspartner sind also Webserver in der Ausgestaltung des fünften Webservers 24 und Webbrowser 26. Der fünfte Webserver 24 stellt Informationen, im Allgemeinen Internetseiten, auf Anfrage eines Webbrowsers 26 über das Internet 1 zur Verfügung. Die Idee der Erfindung liegt nun darin, einen solchen standardmäßigen Webserver durch Erweiterung mittels Softwaremodule so auszugestalten, dass er auch Automatisierungsaufgaben lösen kann. Der erste Webserver 3 enthält ein Erweiterungsmodul 4, welches die Aufgaben einer speicherprogrammierbaren Steuerung (SPS) übernimmt. Das Erweiterungsmodul 4 als Teil des Webservers 3 ist dazu mit einer Verbindung 5 mit einem Eingabe-/Ausgabemodul eines Automatisierungssystems verbun-
den. Der erste Webserver 3 dient somit nicht nur der Informa- tionsbereitstellung über die Verbindung 2 ins Internet 1, sondern kann durch die Integration des Erweiterungsmoduls 4 komplexe Steuerungsaufgaben ausführen, welche beim bisherigen Stand der Technik nur durch eigenständige speicherprogrammierbare Steuerungen ausführbar waren. Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Webservers zeigt FIG 1 im zweiten Webserver 10, welcher ein Erweiterungsmodul 11 mit CNC-Funktionalität (CNC = Computer Numerical Controlled) auf- weist. Der zweite Webserver 10 steuert über das Erweiterungsmodul 11 eine computergesteuerte Werkzeugmaschine 13 (CNC- Werkzeugmaschine) , welche zur schnellen und genauen Herstellung von komplizierten Dreh- und Frästeilen dient. Derartig komplizierte Steuerungen werden üblicherweise durch eigens dafür spezifizierte Rechner ausgeführt. Als ähnlich komplexe Steuerungsaufgäbe erweist sich die Steuerung eines Antriebs 18, welcher der dritte Webserver 15 im Ausführungsbeispiel übernimmt. Dazu enthält er ein Erweiterungsmodul 16, welches die anspruchsvollen Aufgaben der Steuerung bzw. Regelung des Antriebs 18 übernimmt. Um die Vorteile der Nutzung von Webtechnologien durch den zweiten und den dritten Webserver 10, 15 nicht durch den Nachteil mangelnder Sicherheit zu erkaufen, sind die Webserver 10, 15 über einen Firewall 8 mit dem Internet 1 verknüpft. Der Firewall 8 verhindert effektiv un- zulässige Zugriffe über eine Kommunikationsverbindung 7 auf einen der Webserver und damit auf den Antrieb 18 oder die Werkzeugmaschine 13. Bei einem weiteren in FIG 1 dargestellten Ausführungsbeispiel der Erfindung ist der Webserver mit Automatisierungsfunktionalität ein so genannter embedded Web- server 20, welcher als Erweiterungsmodul 21 einen Temperaturregler zur Ansteuerung eines Ventils 22 enthält. Dieser embedded Webserver 20 ist beispielsweise als Single-Chip-Lösung innerhalb eines Personal Computers (PC) realisiert. Jeder der beschriebenen Webserver 3, 10, 15 bzw. 20 bietet neben der Automatisierungsfunktionalität der Erweiterungsmodule auch sämtliche Funktionalitäten und damit sämtliche Vorteile eines standardmäßigen Webservers 24. Der über das Internet 1 ange-
bundene Webbrowser 26 kann somit auch auf die mit Automatisierungsfunktionalität erweiterten Webserver 3, 10, 15 und 20 mit Webtechnologien zugreifen und so z.B. als Bedien- und Beobachtungssystem eingesetzt werden. Die in FIG 1 dargestell- ten Ausführungsbeispiele zeigen deutlich die im Gegensatz zu herkömmlichen Ansätzen bessere Skalierbarkeit der hier vorgeschlagenen Lösung. Der Webserver kann als Single Chip Webserver mit Hardware-Anbau (z.B. im Consumer-Bereich) bis hin zum Hochleistungswebserver mit SoftPLC und Office Software ausge- führt werden.
FIG 2 zeigt ein Ausführungsbeispiel eines Webservers mit Automatisierungsfunktionalität in schematischer Ansicht. Ein Webserver 33 ist über eine Verbindung 32 und einen TCP/IP- Stack 31 mit einer TCP/IP-Verbindung 30 verbunden. Der Webserver 33 enthält ein erstes Erweiterungsmodul 34, welches als Datenbankmodul ausgeführt ist und mittels einer Verbindung 35 Zugriff auf einen SQL7-Server 36 (SQL = Structured Query Language) hat. Ein zweites Erweiterungsmodul 37 besitzt Automatisierungsfunktionalität und kommuniziert über eine Verbindung 38 mit einem Industrieprozess 39. Das Erweiterungsmodul 37, ein Softwaremodul, wird über eine hier nicht dargestellte Schnittstelle an die Verbindung 38 und damit an die Hardware-Komponenten des Automatisierungssystems zur Steuerung des Industrieprozess 39 angekoppelt. Der TCP/IP- Stack steuert als vorgeschaltete Software die Zugriffe auf eine hier nicht dargestellte Netzwerkkarte, welche Zugriff auf die TCP/IP-Verbindung 30 hat, und stellt den zugreifenden Prozessen das TCP/IP-Protokoll zur Verfügung.
FIG 3 zeigt die schematische Ansicht des Aufbaus eines weiteren Ausführungsbeispiels eines Webservers mit Automatisierungsfunktionalität. Dargestellt sind Softwarekomponenten des Webservers. Ein Betriebssystem 50 des Rechners auf dem der Webserver läuft enthält ein Standard-Betriebssystem 51 sowie ein Echtzeit-Betriebssystem 52. Ein Webserver-Kernel 54 ist auf das unterlagerte Betriebssystem 50 mittels einer Portie-
rung 53 aufgesetzt. Der Webserver-Kernel 54 kann auch im Echtzeit-Betriebssystem 52 laufen. Der Webserver-Kernel 54 stellt standardisierte Schnittstellen für die Ankopplung der Softwarekomponenten zur Verfügung und ist die Basis für ver- schiedene Software-Erweiterungsmodule. Ein erstes Erweiterungsmodul 55 dient der Bereitstellung von Webseiten, ein zweites Erweiterungsmodul 56 dient als XML-Parser. Mit einem dritten Erweiterungsmodul 57 wird ein Profibusanschluss 58 angebunden. Ein viertes Erweiterungsmodul 59 bietet Java- Funktionalität, ein fünftes Erweiterungsmodul 60 verarbeitet Signale einer Webcam. Ein sechstes Erweiterungsmodul 64 dient der Verarbeitung von XML-Daten. Ein siebtes Erweiterungsmodul
61 mit Automatisierungsfunktionalität weist eine Verbindung
62 zu einem Prozess und eine Verbindung 63 zu einem Interface 65 zum Echtzeit-Betriebssystem 52 auf. Ein System gilt als echtzeitfähig, wenn es innerhalb einer benenn- und garantierbaren Zeit auf zufällige, externe Ereignisse reagieren kann. In industriellen Automatisierungssystemen sind Reaktionszeiten im Mikrosekundenbereich üblich und erforderlich. Echt- zeitprozesse können alle Dienste nutzen, die auch anderen Prozessen zur Verfügung stehen.
Das Betriebssystem 50 hat direkten Zugriff auf die Ressourcen des Rechners, wie z.B. Speicher und Rechenzeit. Wird ein Kom- mando abgeschickt oder ein Programm aufgerufen, so wird der benötigte Programmcode in einen Hauptspeicher geladen und als Prozess gestartet. Prozesse haben keinen Zugriff auf die Ressourcen, sie fordern diese jeweils vom Betriebssystem an. Durch die direkte Integration der Auto atisierungsfunktiona- lität als siebtes Erweiterungsmodul 61 in den Webserver werden die Leistung, die Dienste (z.B. Autotopologie, SSDP, SNMP, E-Mail etc.) und die Offenheit des Internets der Automatisierungswelt zugänglich gemacht und die weiteren, oben beschriebenen Vorteile erreicht. Das siebte Erweiterungsmodul 61 realisiert einerseits die Automatisierungslösung und tauscht andererseits Informationen über den Webserver aus und wird durch diesen konfiguriert und administriert. Im Gegen-
satz dazu ist bei einer so genannten SoftPLC (= Softwaresimulation einer speicherprogrammierbaren Steuerung) die Automatisierungsfunktion nicht in den Server integriert, sondern parallel zu diesem installiert, eventuell über eine Kommuni- kationsschnittstelle angebunden. Integration in den Server bedeutet insbesondere, dass ein Erweiterungsmodul direkt durch den Webserver geladen, konfiguriert, gestartet und beendet wird. Ein solches Erweiterungsmodul wird häufig auch als „Extension* bezeichnet. Der Webserver-Kernel 54 des er- findungsgemäßen Webservers dient als gemeinsame Plattform für die Erweiterungsmodule. Dies erleichtert insbesondere die Konfiguration der Software-Erweiterungsmodule und deren Wiederverwendung in anderen Applikationen. Die Anbindung der Erweiterungsmodule erfolgt nicht mit proprietären oder auspro- grammierten Schnittstellen, sondern mit standardisierten
Schnittstellen, beispielsweise API (Application Programming Interface) oder CGI (Common Gateway Interface) . API ist eine formal definierte Schnittstelle, über die Anwendungsprogramme Systemdienste (Netz, Betriebssystem etc.) oder Dienstleistun- gen anderer Anwendungsprogramme verwenden können. CGI beschreibt eine Standard-Schnittstelle zwischen einem Webserver und Programmen. Das siebte Erweiterungsmodul 61 weist als Mittel zur Realisierung einer Automatisierungsfunktionalität Regelungs- und/oder Steuerungsmittel zur Regelung und/oder Steuerung von Komponenten sowie Prozessen eines Automatisierungssystems auf. Diese Regelungs- und Steuerungsmittel zur Ansteuerung eines Automatisierungssystems sind üblicherweise als im Erweiterungsmodul ablauffähige Softwareprozesse ausgebildet.
Der vorgeschlagene Webserver ist Teil eines in einer Client- Server-Architektur aufgebauten Systems verteilter Anwendungen. In einem solchen System ist es die Aufgabe eines Servers als Anbieter eines Dienstes auf Anfragen eines Clients Be- rechnungen oder andere interne Prozesse durchzuführen und deren Ergebnisse als protokollkonforme Antworten zu formulieren und an den anfragenden Client weiterzugeben. Als Client be-
zeichnet man dabei ein Gerät oder einen Prozess, welcher den Dienst eines oder mehrerer Server in Anspruch nimmt. Üblicherweise stellt der Server also passiv einen Dienst zur Verfügung und wartet darauf, dass ein Client bei ihm anfragt. Der Client hingegen stellt keine Dienste zur Verfügung sondern nimmt Dienste eines Servers in Anspruch. Ein Server als Anbieter eines Dienstes kann sich dabei auf demselben Gerät wie der Client oder auf einem anderen über ein Netzwerk (z.B. das Internet) erreichbaren Gerät befinden. Die Client-Server- Kommunikation gehorcht gewissen Regeln und formalen Beschreibungen, den so genannten Protokollen. Es ist unabdingbare Voraussetzung für eine erfolgreiche Kommunikation zwischen Client und Server, dass beide Seiten dasselbe Protokoll verwenden. Ein solches Protokoll spezifiziert üblicherweise die Kommunikationskanäle und die Formate mit denen Anmeldung, Informationsaustausch, Anfrage, Antwort und Abmeldung erfolgen. Nicht alle diese Schritte müssen immer explizit angegeben werden, wenn sie für den Anwendungszweck nicht von Belang sind. Protokolle werden auf unterschiedlichsten Abstraktions- ebenen spezifiziert und bauen üblicherweise aufeinander auf. Man spricht dann von einem Schichtenmodell (z.B. ISO/OSI- Schichtmodell) . Während die untersten Schichten die Kommunikation von Hardware und Geräten regeln - es werden elektrische Signale, Kabel oder Funkfrequenzen und deren Eigenschaf- ten spezifiziert, beschäftigen sich mittlere Schichten mit dem Aufbau von Netzwerktopologien (Adressstrukturen und deren Auflösung, Routing und Fehlerkorrektur) . Man trennt hier oft die Netzwerkschicht (z.B. IP = Internet Protocol) und die Transportschicht (z.B. TCP = Transmission Control Protocol) . Die obersten Schichten bezeichnet man als AnwendungsSchicht. Hier wird spezifiziert, wie konkrete Client-Server-Anwendungen miteinander kommunizieren. Beispiele für solche Protokolle der Anwendungsschicht sind HTTP (Hyper Text Transfer Protocol), FTP (File Transfer Protocol) und SMTP (Simple Mail Transfer Protocol) .
Zusammengefasst betrifft die Erfindung also einen Webserver mit in den Webserver integrierten Softwaremodulen, bei welchem mindestens ein erstes Softwaremodul 37 erste Mittel zur nicht-proprietären Realisierung einer Automatisierungsfunktionalität und zweite Mittel 63, 65 zum Zugriff auf ein Echtzeit-Betriebssystem 52 aufweist.