-
Die
Erfindung betrifft allgemein Automatisierungssysteme und insbesondere
ein Verfahren und ein Steuergerät zur Steuerung eines Automatisierungssystems.
-
Das
Prinzip der Speicherprogrammierbaren Steuerung (SPS) ist heute bereits
ca. 30 Jahre alt und mit der zunehmenden Reife des Marktes haben sich
Differenzierungen in Bezug auf Aufbau und Arbeitsweise angeglichen.
Das grundsätzliche Arbeitsprinzip basiert darauf, die aktuellen
Zustände der zu automatisierenden Anlage/Maschine zu erfassen und
die entsprechenden physikalischen Prozesssignale durch entsprechende
Sensoren in elektrische Signale umzuwandeln. Neben der Zentraleinheit
mit Programmspeicher und Prozessor so wie den Ein-/Ausgabeeinheiten
gehört zur Grundkonfiguration einer SPS heute auch ein
entsprechendes PC-basiertes Programmiergerät bzw. Windows-basiertes Entwicklungswerkzeug
zur Erstellung des Steuerungsprogrammes und der entsprechenden Inbetriebnahme
im Zusammenspiel mit der realen Maschine und Anlage – dieses
wird allgemein auch als Engineering bezeichnet.
-
Der
Umgang mit der Steuerung wird für den Anwender maßgeblich
durch das Programmiersystem bestimmt, mit dem der Benutzer eine
Automatisierungslösung erstellt, in das Gerät
einprägt und in Betrieb nimmt. Stand der Technik ist an
dieser Stelle, dass zu der Steuerung eine entsprechende Programmiersoftware
als Windows-Anwendung zur Verfügung gestellt wird, die
hierzu auf einem entsprechend ausgestatteten Windows-PC installiert
werden muss. Bei Steuerungen der untersten Leistungsklasse – so genannten
Relais-Ersatzsteuerungen – sind seit einigen Jahren Varianten
bekannt, die auch über ein direkt auf dem Gerät
platziertes Display programmiert werden können (z. B. Moeller
easy und Siemens LOGO!). Die hier verfügbaren Lösungen
sind aber auf eine einfache Darstellung mit wenigen Zeilen begrenzt,
was für die Erstellung und Wartung umfangreicherer Programme
wenig komfortabel und zur Darstellung komplexerer Zusammenhänge
nicht ausreichend ist.
-
Der
Erfindung liegt die Aufgabe zugrunde, einen Weg aufzuzeigen, wie
die Handhabung und Benutzung von Automatisierungssystemen, insbesondere
von speicherprogrammierbaren Steuerungen (SPS) verbessert und vereinfacht
werden kann
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch
1, sowie ein Steuergerät nach Anspruch 16 gelöst.
Vorteilhafte Ausführungsformen und Weiterbildungen sind
in den jeweiligen Unteransprüchen beschrieben.
-
Dementsprechend
dient ein erfindungsgemäßes Verfahren dem Zugreifen
auf ein in einem Steuergerät zur Steuerung eines Automatisierungssystems
ausführbares Steuermodul, wobei das Steuermodul dazu ausgebildet
ist, eine Funktion auf dem Steuergerät auszuführen.
Das Verfahren sieht vor, dass im Steuergerät das Steuermodul,
sowie ein erstes und ein zweites Schnittstellenmodul bereitgestellt wird,
das Steuergerät mit einem Bediengerät über
ein Netzwerk verbunden wird, das zweite Schnittstellenmodul von
dem Steuergerät zu dem Bediengerät übertragen
wird, wobei das Bediengerät Ein- und Ausgabeeinrichtungen
zur Bedienung durch einen Benutzer umfasst, das zweite Schnittstellenmodul durch
das Bediengerät ausgeführt wird, und Daten zwischen
dem ersten und zweiten Schnittstellenmodul übertragen werden.
-
Die
Datenübertragung zwischen dem ersten und zweiten Schnittstellenmodul
dient vorzugsweise dazu, eine auf dem Steuergerät durch
das Steuermodul ausführbare Steuerfunktion zu erstellen,
zu bearbeiten und/oder auszuführen, Parameter an das Steuergerät
zu übergeben und/oder Prozessdaten aus dem Steuergerät
auszulesen.
-
Das
Steuergerät kann als jegliches Gerät ausgebildet
sein, welches an der Steuerung eines Prozesses eines Automatisierungssystems
beteiligt ist. Dementsprechend bezeichnet der Begriff Steuergerät
beispielsweise einen Sensor, einen Aktor, ein Gerät zur
Ein- oder Ausgabe von Prozess-, Parameter- oder Steuerdaten, oder
ein Gerät zum Steuern, Überwachen, Protokollieren,
Bedienen und/oder Beobachten eines Prozesses. Das Steuermodul, im
Folgenden auch als Control Engine bezeichnet, ist vorzugsweise als
Softwaremodul zur Steuerung von Funktionen des Steuergerätes
ausgebildet, wobei diese Funktionen typischerweise als Softwareapplikationen
ausgebildet sind, welche im Steuermodul integriert oder in einem
separaten Speicher des Steuergerätes abgelegt sind. Die
Funktionen können vorteilhaft sicherheitsgerichtete Automatisierungsfunktionen
oder auch eine Kombination aus sicherheitsgerichteten und nicht
sicherheitsgerichteten Automatisierungsfunktionen umfassen.
-
Besonders
vorteilhaft umfasst das Steuergerät eine speicherprogrammierbare
Steuerung (SPS), wobei die durch das Softwaremodul gesteuerte Funktion
als Steuerprogramm zur Prozesssteuerung des Automatisierungssystems
ausgebildet ist.
-
Durch
das Verfahren wird auf besonders vorteilhafte Weise das Ausführen
von Engineering-Aufgaben ermöglicht, wobei eine typische
Gliederung von Engineering-Werkzeugen zur Erstellung eines Automatisierungssystems
als Werkzeuge die Steuerungskonfiguration, Programmeditoren, einen HMI-Designer,
und einen Daten-Monitor umfasst. Die Steuerungskonfiguration umfasst
beispielsweise die I/O-Konfiguration, die Konfiguration der Kommunikationsnetzwerke,
sowie die Geräteparametrierung. Als Programmeditoren können
sowohl textuelle als auch grafische Editoren eingesetzt werden.
Ein HMI-Designer dient typischerweise dem Erstellen grafischer Objekte
und in einem Webbrowser anzeigbare Seiten zum Bedienen & Beobachten. Ein
Daten-Monitor dient beispielsweise dem Beobachten und Aufzeichnen
steuerungsinterner und/oder steuerungsexterner binärer
oder analoger Signale.
-
Die
entsprechende Engineering-Anwendung wird vorzugsweise auf dem Bediengerät
ausgeführt, wobei dieses zu diesem Zweck vorteilhaft einen Web-Browser
umfasst. Über das erste und zweite Schnittstellenmodul
tauscht die jeweilige Engineering-Anwendung Daten mit dem Steuermodul
auf dem Steuergerät aus. Das Übertragen von Daten zwischen
dem ersten und dem zweiten Schnittstellenmodul erfolgt in einer
vorteilhaften Ausführungsform des Verfahrens in Antwort
auf Benutzereingaben am Bediengerät.
-
Das Übertragen
von Daten zwischen dem ersten und dem zweiten Schnittstellenmodul
kann jedoch je nach Einsatzzweck, beispielsweise abhängig von
der jeweils ausgeführten Engineering-Anwendung, sowohl
vom Bediengerät als auch vom Steuergerät initiiert
werden.
-
In
einer besonders vorteilhaften Ausführungsform des Verfahrens
umfasst das erste Schnittstellenmodul eine HTTP-Server-Anwendung
und das zweite Schnittstellenmodul eine zur Kommunikation mit der
HTTP-Server-Anwendung ausgebildete Client-Anwendung. Dementsprechend
ist das Netzwerk vorzugsweise als IP-basiertes Netzwerk ausgebildet.
-
Vorzugsweise
umfasst das zweite Schnittstellenmodul eine web-basierte Anwendung,
die zur Ausführung in einem Web-Browser ausgebildet ist. Eine
besonders vorteilhafte Ausführungsform sieht vor, dass
die Kommunikation zwischen erstem und zweitem Schnittstellenmodul
mittels AJAX-Technologie (Asynchronous JavaScript and XML) unter
Verwendung von JSON (JavaScript Object Notation) erfolgt.
-
Auf
diese Weise kann beispielsweise die Programmierung einer Steuerung
auf einfache Weise direkt über einen Standard-Browser ohne
spezifische Erweiterungen durchgeführt werden, wobei alle
für den Produkteinsatz der Steuerung notwendigen Informationen
aus der Steuerung selber kommen und über eine vorhandene,
bekannte Standard-Umgebung zur Verfügung gestellt werden.
Hierdurch ergeben sich im Vergleich zu einer traditionellen Konfiguration
mit einem eigenständigen Software-Tool deutliche Vorteile.
-
Aufgrund
der speziellen Anforderungen im Bereich der industriellen Steuerung
umfassen das Steuermodul und/oder das erste Schnittstellenmodul vorzugsweise
einen Zwischencode, insbesondere einen Zwischencode entsprechend
dem CIL-Standard (Common Intermediate Language), wie er besipielsweise
durch die .NET-Sprachfamilie bereitgestellt wird.
-
Ferner
umfasst das Steuergerät vorteilhaft ein Modul zur Bereitstellung
einer Ablaufumgebung, das dazu ausgebildet ist, das Steuermodul
und das erste Schnittstellenmodul parallel auszuführen.
In einer besonders bevorzugten Ausführungsform des Verfahrens
erfolgt das Übertragen von Daten von dem ersten zu dem
zweiten Schnittstellenmodul und das Abarbeiten von mittels des ersten
Schnittstellenmoduls empfangener Daten durch das Steuergerät zu
vorgegebenen Zeiten, wobei die Zeiten an die vom Prozess an die
Ausführung des Steuermoduls gestellten Echtzeitanforderungen
zur Laufzeit dynamisch angepasst werden, wobei ferner vorteilhaft
das Steuermodul mit einer höheren Priorität ausgeführt wird
als das erste Schnittstellenmodul. Auf diese Weise können
durch den jeweiligen Automatisierungsprozess gestellte Echtzeitanforderungen
in besonders vorteilhafter Weise eingehalten werden.
-
Das
Steuergerät ist typischerweise mit Prozesskomponenten verbunden,
durch welche Änderungen im Prozessablauf bewirkt werden.
Zur Offline-Bearbeitung einer Steuerfunktion liegt es ferner im
Rahmen der Erfindung, dass das Bediengerät und das Steuermodul
in einem gemeinsamen Rechnersystem angeordnet sind und der durch
das Steuermodul gesteuerte Prozess durch ein Simulationsmodul simuliert
wird.
-
Ein
erfindungsgemäßes Steuergerät eines Steuerungssystems
zur Steuerung eines Automatisierungssystems, insbesondere ausgebildet
zum Ausführen des oben beschriebenen Verfahrens, umfasst
einen Speicher mit einem darin gespeicherten Steuermodul zur Prozesssteuerung
des Automatisierungssystems und jeweils einem darin gespeicherten ersten
und zweiten Schnittstellenmodul, wobei das Steuermodul dazu ausgebildet
ist, eine Funktion auf dem Steuergerät auszuführen,
eine Prozessor-Einheit zur Ausführung des Steuermoduls
und des ersten Schnittstellenmoduls, und eine Netzwerk-Schnittstelle
zum Verbinden des Steuergerätes mit einem Netzwerk, wobei
das Steuergerät dazu ausgebildet ist, über das
Netzwerk das zweite Schnittstellenmodul zu einem Bediengerät
zu übertragen und das erste Schnittstellenmodul dazu ausgebildet
ist, über das Netzwerk mit dem in dem Bediengerät
angeordneten zweiten Schnittstellenmodul zu kommunizieren.
-
Die
Erfindung sieht ferner vorteilhafte Ausführungsformen eines
Steuergerätes vor, die Mittel umfassen, welche dazu geeignet
sind, die oben beschriebenen vorteilhaften Ausgestaltungen des erfindungsgemäßen
Verfahrens auszuführen.
-
Dementsprechend
ist das zweite Schnittstellenmodul vorzugsweise dazu ausgebildet,
eine Datenübertragung zum ersten Schnittstellenmodul zu initiieren.
Ferner ist das Steuergerät vorteilhaft dazu ausgebildet,
in Abhängigkeit von über das erste Schnittstellenmodul
empfangenen Daten das Erstellen, Bearbeiten, Ausführen
und/oder Parametrieren einer auf dem Steuergerät durch
das Steuermodul ausführbaren Steuerfunktion zu bewirken.
Besonders vorteilhaft umfasst das Steuergerät eine speicherprogrammierbare
Steuerung (SPS) zur Prozesssteuerung.
-
Wie
bereits oben beschrieben umfasst das erste Schnittstellenmodul vorzugsweise
eine HTTP-Server-Anwendung, welche zur Kommunikation mit einer entfernten,
im zweiten Schnittstellenmodul angeordneten Client-Anwendung ausgebildet
ist, wobei das Netzwerk zu diesem Zweck vorzugsweise als IP-basiertes
Netzwerk ausgebildet ist. Die Client-Anwendung umfasst vorzugsweise
eine webbasierte Anwendung, die zur Ausführung in einem Web-Browser
ausgebildet ist.
-
Wie
bereits oben beschrieben, kann das Steuergerät jedes Gerät
sein, welches an der Steuerung eines Prozesses eines Automatisierungssystems
beteiligt ist. In einer bevorzugten Ausführungsform ist
das Steuergerät zur Steuerung eines Echtzeitprozesses ausgebildet.
Zu diesem Zweck umfasst das Steuermodul und/oder das erste Schnittstellenmodul
vorzugsweise einen Zwischencode, insbesondere entsprechend dem CIL-Standard
(Common Intermediate Language).
-
Analog
zu den oben beschriebenen vorteilhaften Ausgestaltungen des Verfahrens
umfasst das Steuergerät vorteilhaft ein Modul zur Bereitstellung einer
Ablaufumgebung, das dazu ausgebildet ist, das Steuermodul und das
erste Schnittstellenmodul parallel auszuführen.
-
Ferner
ist das Steuergerät vorteilhaft dazu ausgebildet, das Übertragen
von Daten von dem ersten zu dem zweiten Schnittstellenmodul und
das Abarbeiten von mittels des ersten Schnittstellenmoduls empfangener
Daten zu vorgegebenen Zeiten auszuführen, wobei die Zeiten
an die vom Prozess an die Ausführung des Steuermoduls gestellten
Echtzeitanforderungen zur Laufzeit dynamisch anpassbar sind. Besonders
vorteilhaft ist das Steuergerät dazu ausgebildet, verschiedene
Softwaremodule mit unterschiedlicher Priorität auszuführen,
wobei insbesondere das Steuermodul mit einer höheren Priorität ausgeführt
wird als das erste Schnittstellenmodul, um durch den Prozess vorgegebene
Echtzeitanforderungen einzuhalten. Zur Prozesssteuerung ist das Steuergerät
vorzugsweise mit Prozesskomponenten verbindbar, die zum Bewirken
von Änderungen im Prozessablauf ausgebildet sind.
-
Die
Erfindung sieht vorteilhaft vor, Steuerungsgerät und Steuerungsprogrammierung
physisch zu integrieren, wobei mittels bekannter Web 2.0-Technologien,
insbesondere unter dem Namen Ajax bekannte Technologien, ermöglicht
wird, dieses auf Standard-Geräte zu übertragen.
Dieses ist im typischen Anwendungsfall heute ein Notebook mit Windows-Betriebssystem,
kann aber beispielsweise auch ein Linux- oder Mac OS-Rechner sein,
als auch neue Geräteklassen wie Ultra Mobile PCs (UMPC), PDAs,
Webpads und moderne Handy-Generationen umfassen.
-
Durch
die inzwischen enorme Verbreitung des Internet ist der Umgang mit
einem Browser für viele Menschen weltweit heute tägliche
Praxis. Die Erfindung ermöglicht dementsprechend mit besonderem
Vorteil, die Programmierung einer Steuerung direkt über
einen Standard-Browser ohne spezifische Erweiterungen durchführen.
zu können. Alle für den Produkteinsatz der Steuerung
notwendigen Informationen kommen aus der Steuerung selber und werden über
eine vorhandene, bekannte Standard-Umgebung zur Verfügung
gestellt. Hierdurch ergeben sich im Vergleich zu einer traditionellen
Konfiguration mit einem eigenständigen Software-Tool folgende grundsätzliche
Vorteile:
- – es ist keine spezifische
Software und deren Installation notwendig,
- – es sind keine Inkonsistenzen oder Versionskonflikte
zwischen dem Gerät und dem separaten Software-Tool möglich,
- – es ist keine separate Projektverwaltung mit den damit
verbundenen Inkonsistenzen notwendig,
- – das aktuelle Projekt ist immer das, dass gerade die
Applikation steuert,
- – ein Plattform-unabhängiges Engineering wird ermöglicht,
wobei z. B. embedded Geräte (Web-Pad), MAC OS (Apple),
Linux und Windows (PCs) unterstützt werden, da Voraussetzung
nur noch die Verfügbarkeit eines entsprechenden Webbrowsers
ist.
-
Die
Erfindung wird nachfolgend anhand bevorzugter Ausführungsformen
und unter Bezugnahme auf die beigefügten Zeichnungen näher
beschrieben. Dabei bezeichnen gleiche Bezugszeichen in den Zeichnungen
gleiche oder ähnliche Teile.
-
Es
zeigen:
-
1 schematisch
ein Informationssystem nach dem Stand der Technik,
-
2 schematisch
den Aufbau einer klassischen serverseitigen Webanwendung,
-
3 schematisch
die grundsätzliche Struktur einer Ajax-basierten Webanwendung,
-
4 eine
schematische Darstellung der grundsätzlichen Komponenten
eines Steuerungssystems zur Steuerung eines Automatisierungssystems gemäß einer
ersten bevorzugten Ausführungsform der vorliegenden Erfindung,
ausgebildet zur Ausführung eines erfindungsgemäßen
Verfahrens, und
-
5 schematisch
HTTP-basierte Kommunikationsmechanismen des in 4 dargestellten webbasierten
Steuerungssystems.
-
Es
ist bekannt, das Word Wide Web (WWW) als Infrastruktur zur weltweiten
Verteilung von Informationen zu benutzen. Ein solches Informationssystem
ist in 1 gezeigt. Hierbei bilden über (Hyper-)Links 20 verbundene
Hypermedia-Dokumente 10 ein Netzwerk von Informationen,
der Webbrowser 100 ist das Terminal zu diesem Netzwerk.
Die Anforderung einer Webseite 40 erfolgt durch die Eingabe einer
URL in die Adresszeile des Webbrowsers 100. Der hierüber
adressierte Webserver sendet das angeforderte HTML-Dokument 10 an
den Browser 100, der dieses entsprechend zur Anzeige bringt.
Soll der dargestellte Inhalt der Seite verändert werden,
so muss dies über eine Neuanforderung beim Webserver und
einer erneuten Übertragung der kompletten Seite zum Browser 100 erfolgen – der
Benutzer sieht eine Abfolge statischer Seiten 40.
-
Mit
dem Internetboom ab Mitte der 90er Jahre des letzten Jahrhunderts
wurde das WWW auf weitere Anwendungsbereiche ausgeweitet, insbesondere
auf die im Rahmen von E-Business und elektronischem Handel entstandenen
virtuellen Marktplätze und Webshops. Besonders bekannte Formen
von E-Commerce-Anwendungen sind Buch- und Musikversand und Internetauktionen.
Schnell wurde dabei von einem Onlineshop mehr erwartet, als durch
statische HTML-Seiten möglich ist, was zur Entwicklung
dynamischer serverseitiger Webanwendungen geführt hat.
-
Bei
Webanwendungen mit serverseitig dynamischen Seiten wird eine Webseite 41, 42 bzw. 43 erst
aufgrund der Anfrage des Browsers beim Server generiert. 2 zeigt
den Aufbau einer klassischen serverseitigen Webanwendung, bei der
die Interaktionen zwischen Benutzer und Anwendung über
den Webserver 200 abgewickelt werden. Bei jeder Interaktion
im Browser 100 wird eine Anfrage 50 an den Server 200 erzeugt,
der ein neues Dokument 42 generiert und zum Browser 100 sendet 60,
in dem Standarddarstellungen und benutzerspezifische Daten in einem
Stream aus HTML-Markup vermischt sind – der Browser 100 verwirft
das bisherige Dokument 41 und zeigt das neue Dokument 42 an.
-
Das
wesentliche Grundprinzip von Ajax ist demgegenüber, dieses
klassische seitenbasierte Anwendungsmodell, in dem der Browser nur
als passives Terminal genutzt wird, aufzugeben und einen Teil der
Anwendungslogik vom Server in den Browser zu verlagern.
-
Ajax
(Asynchrones JavaScript And XML) wurde als Begriff Anfang
2005 von Jesse James Garrett von Adaptive Path in seinem Essay "Ajax:
A New Approach to Web Applications" geprägt und
beschreibt ein Konzept, wie mit bereits bestehenden Technologien – im
Kern JavaScript und das XMLHttpRequest-Object – das herkömmliche
Request/Response-Modell der klassischen Webanwendung durch Teilung
in eine Front-End-Anwendung – die in den Browser verlagert
wird – und eine Backend-Anwendung auf dem Server, die über
eine asynchrone Kommunikation miteinander verbunden sind, ersetzt werden
kann. Die von Jesse James Garrett beschriebene Motivation für
Ajax ist es, das Verhalten von Webanwendungen an das einer reinen
Desktopanwendung anzunähern. Eine Ajax-Webanwendung ist entsprechend
dieser Definition eine Anwendung, die ausschließlich in
einem Webbrowser als Ablaufumgebung arbeitet, sich aber gleichzeitig
in Richtung seiner Interaktionen mit dem Benutzer wie eine Desktopanwendung
darstellt.
-
Beispiele
hierfür sind z. B. die webbasierten Textverarbeitungsprogramme
- – ajaxWrite (http://us.ajax13.com/en/ajaxwrite/) oder
- – Writely (http://docs.google.com/)
die
sich mit ihrer Anwendungsoberfläche (User-Interface) an
Microsoft WORD orientieren.
-
AJAX
wird beispielsweise in dem auf der Webseite "http://www.heise.de/ix/artikel/2005/11/056/"
hinterlegten Artikel beschrieben, wobei der Inhalt dieser Webseite
zum Anmeldezeitpunkt hiermit durch Referenz inkorporiert wird.
-
Im
Idealfall würde sich eine Ajax-Webanwendung aus der Sicht
des Benutzers nicht von einer Desktopanwendung unterscheiden. Um
dieses zu erreichen, wird bei einer Ajax-Webanwendung die Anwendungsoberfläche 70 in
den Webbrowser 100 verlagert und über eine sogenannte
Ajax-Engine 80 von der Kommunikation mit dem Webserver 200 entkoppelt,
wie in 3 dargestellt, welche die grundsätzliche
Struktur einer Ajax-basierten Webanwendung zeigt. Diesem Konzept
folgend lassen sich Anwendungsoberflächen aufbauen die
sich gegenüber dem Benutzer wie eine Desktopanwendung verhalten,
da sie unabhängig von der Latenzzeit der Http-Kommunikation
arbeiten kann.
-
Ajax
ist ein Konzept, das beschreibt, wie verschiedene bekannte Web-Technologien
eingesetzt und miteinander kombiniert werden, um interaktive, Desktop-ähnliche
Webanwendungen zu realisieren. Es beschreibt den Einsatz und Nutzung
der Technologien, nicht aber die Struktur der Webanwendung selber.
-
Die
Erfindung ermöglicht besonders vorteilhaft eine Web- bzw.
Browser-basierte Engineering-Anwendung, insbesondere unter Verwendung von
Ajax, für eine Speicherprogrammierbare Steuerung (SPS),
deren grundsätzlichen Komponenten in 4 dargestellt
sind.
-
Die
in 4 dargestellten Komponenten umfassen ein als Engineering-Rechner 300 ausgebildetes
Bediengerät und ein als speicherprogrammierbare Steuerung
(SPS) 400 ausgebildetes Steuergerät, welche zum
Ausführen eines erfindungsgemäßen Verfahrens
ausgebildet sind.
-
Engineering-Rechner 300 und
Steuerung 400 sind über eine Kommunikationsverbindung 500 über
ein physikalisches Kabel, oder eine drahtlose Verbindung miteinander
verbunden, die in der Lage ist, dass Hypertext Transfer Protocol
(HTTP) zu übertragen, z. B. Ethernet TCP/IP. Kern der Steuerung 400 ist
eine Control Engine 410, die die Steuerungsapplikation 600 ausführt,
indem sie den über die Peripherieebene 700 angeschlossenen
Prozess entsprechend dieser Applikation 600 steuert. Erstellt,
in Betrieb genommen und gewartet wird diese Applikation 600 über
die Engineering-Anwendung 310, die auf Basis der Web-Technologien
HTML bzw. XHTML, CSS und JavaScript erstellt ist und vollständig
in einem Webbrowser 110 als Standard-Ablaufumgebung ausgeführt
wird – alternativ ist das Engineering der Applikation auch über
eine autarke Windows-Anwendung möglich.
-
Alle
Komponenten der Engineering-Anwendung 310 sind in einem
Dateisystem auf der Steuerung 400 hinterlegt. Durch Eintragen
der URL der Steuerung 400 in der Adresszeile des Browsers 110 wird
die HTML-Startseite aus dem Dateisystem geladen. Diese HTML-Seite
beinhaltet die Software-Komponenten der Engineering-Anwendung 310 in
Form von JavaScript-Code. Der Browser 110 führt
diesen Code aus und stellt dem Anwender hierdurch die Engineering-Anwendung 310 zur
Verfügung. Nach dem Aufstarten der Engineering-Anwendung 310 wird
die aktuelle Steuerungsapplikation 600 aus der Control-Engine 410 geladen
und der momentane Zustand der Steuerung dem Anwender dargestellt.
Die Steuerungsapplikation 600 kann nun in der Engineering-Anwendung 310 vom
Benutzer bearbeitet werden – hierzu werden, entsprechend
den ausgewählten Bearbeitungsschritten weitere Komponenten (Tools)
aus der Werkzeugablage 450 auf der Steuerung 400 nachgeladen.
Ist die Steuerungsapplikation 600 modular aufgebaut, so
werden auch von dieser nur die Teile in die Engineering-Anwendung 310 geladen,
die der Benutzer entsprechend selektiert hat und beobachten oder
bearbeiten möchte. Dieses modulare Laden beschränkt
die zu übertragenden Komponenten und Daten auf die notwendigen
Anteile und reduziert hierdurch den Ressourcenbedarf für
die Kommunikation und die Wartezeiten für den Anwender.
-
Auf
der Seite der Anwendung wird bei diesem Konzept besonders vorteilhaft
nur beim Start ein einziges Mal eine HTML-Seite geladen. Diese Grundanwendung
(Home-Page) beinhaltet die Anwendungsoberfläche (User-Interface)
und die Infrastruktur-Komponenten der Engineering-Anwendung 310 direkt
oder über Referenzen auf separate Dateien. Spezielle Werkzeuge
können auch erst geladen werden, wenn diese vom Anwender
zur Bearbeitung der entsprechenden Daten der Applikation benötigt werden – dieses
Nachladen erfolgt vorzugsweise im Hintergrund und wird von der Grundanwendung
gesteuert.
-
JavaScript
Infrastruktur-Komponenten umfassen beispielhaft Bedienelemente oder
Komponenten zur Kommunikation. Engineering Tools bzw. Werkzeuge
für spezielle Aufgaben umfassen beispielhaft Werkzeuge
zur Steuerungskonfiguration, Programmeditoren, einen HMI-Designer
oder einen Daten-Monitor.
-
Die
Daten der Steuerungsapplikation 600 werden zu ihrer Bearbeitung
von der Engineering-Anwendung 310 in den Browser 110 geladen und über
diese Tools dem Benutzer präsentiert und bearbeitbar gemacht.
Es werden dabei immer nur die Teile der Steuerungsapplikation 600 aus
der Control Engine 410 in die Engineering-Anwendung 310 übertragen,
die im momentanen Anwendungsszenario benötigt werden. Erst
nachdem ein Bearbeitungsschritt abgeschlossen ist, werden die bearbeiteten Teile
der Steuerungsapplikation aus der Engineering-Anwendung 310 in
die aktuelle Steuerungsapplikation 600 der Control Engine 410 zurück übertragen.
Die Bearbeitung der Daten erfolgt ausschließlich in der
Engineering-Anwendung 310 im Browser 110, so dass
die Ressourcen der Steuerung 400 hiervon freigehalten sind.
-
Die
Kommunikation zwischen der Control Engine 410 der Steuerung 400 und
der Engineering-Anwendung 310 im Browser 110 erfolgt
ausschließlich über den HTTP-Server 420,
der ebenfalls auf der Steuerung 400 arbeitet.
-
5 zeigt
die HTTP-basierten Kommunikationsmechanismen des beschriebenen Web-basierten
Steuerungssystems. Entsprechend der Initiierung des Informationsaustausches
wird unterschieden in Kommandos, die von der Engineering-Anwendung 310 ausgelöst
werden und Meldungen, die durch Ereignisse in der Control Engine 410 ausgelöst
werden.
-
Beispiele
für Kommandos sind:
- – Start/Stop
der zyklischen Bearbeitung der Steuerungsapplikation
- – Reset, Grundzustand der Control Engine
- – Upload/Download, Laden bzw. Zurückschreiben der
Steuerungsapplikation oder Teilen hiervon
- – Abfragen des aktuellen Zustandes der Control Engine
- – Abfrage des aktuellen Bearbeitungszustandes der Steuerungsapplikation
- – Abfrage des aktuellen Zustandes der angeschlossenen
Peripherie (Eingänge/Ausgänge)
- – Einrichten einer Liste einzelner zu beobachtender
Zustände bzw. Zustandsobjekte der Steuerungsapplikation
und der angeschlossenen Peripherie (Eingänge/Ausgänge)
-
Beispiele
für Meldungen sind:
- – Status-
und Fehlermeldungen der Control-Engine
- – Status- und Fehlermeldungen der Steuerungsapplikation
- – Statusänderung zur Beobachtung angemeldeter Zustände
bzw. Zustandsobjekte der Steuerungsapplikation und der angeschlossenen
Peripherie (Eingänge/Ausgänge).
- – Benachrichtigung über Änderungen
der Steuerungsapplikation
-
Grundsätzlich
erfolgt die Kommunikation zwischen einem Webbrowser und einem Webserver über
das transaktionsorientierte Hypertext Transfer Protokoll (HTTP).
Entsprechend der Client/Server-Architektur des WorldWideWeb wird
eine Transaktion immer vom Client (Browser) gestartet, indem dieser
eine Anfrage (Request) erzeugt und an einen Server gesendet. Der
Server schließt die Transaktion ab, indem er eine Antwort
(Response) generiert und zurück an den Client sendet. Moderne
Browser bieten über einen als XMLHttpRequest bezeichneten Mechanismus
die Möglichkeit, direkt aus einer im Browser ablaufenden
JavaScript-Anwendung HTTP-Anfragen (HTTP-Requests) zu senden und HTTP-Anworten
(HTTP-Responses) entgegen zu nehmen.
-
Ein
Kommando ist das Auslösen einer Aktion in der Control Engine 410 durch
einen Bearbeitungsschritt der Engineering-Anwendung 310.
Da Engineering-Anwendung 310 und Control Engine 410 in verschiedenen
Prozessen und typisch auch auf separaten Rechnern mit verschiedenen
Laufzeitumgebungen arbeiten, wird ein Transportmechanismus zur Übertragung
des Kommandos benötigt. Das Prinzip eines solchen Aufrufes
einer "fernen" Aktion (Prozedur) über ein Kommunikationsprotokoll
ist bekannt und wird als "Remote Procedure Call" bezeichnet. In Verbindung
mit dem Ajax-Konzept geschieht dies normalerweise über
den Aufruf eines SOAP-Web-Services oder eines vergleichbaren XML-basierten
Web-Service-Dialektes. Hauptnachteile bei der Verwendung von XML
sind das wenig kompakte Format bei der Übertragung und
die umständliche Art des Zugriffs auf die Informationen.
Mit JSON (JavaScript Object Notation) steht ein kompaktes Format
zur Verfügung, das direkt in JavaScript ausgewertet werden
kann – mit JSON bzw. JSON-RPC übertragene Objekte
stehen unmittelbar als JavaScript-Objekte zur Verfügung.
Vorzugsweise wird daher JSON-RPC zur Übertragung der Kommandos 710 zwischen
der Engineering-Anwendung 310 im Browser 110 und
der Control Engine 410 auf der Steuerung 400 verwendet.
Die Transformation des mit JSON-RPC übertragenen Kommandos 710 in
den Aufruf einer entsprechenden Aktion der Control Engine 410 ist
im HTTP-Server 420 der Steuerung 400 realisiert.
-
JSON
und JSON-RPC wird beispielsweise in dem auf der Webseite "http://www.heise.de/ix/artikel/2006/01/070/"
hinterlegten Artikel beschrieben, wobei der Inhalt dieser Webseite
zum Anmeldezeitpunkt hiermit durch Referenz inkorporiert wird.
-
Eine
Meldung 720 ist eine Benachrichtigung von der Control Engine 410 an
die Engineering-Anwendung 310. Eine Problematik liegt an
dieser Stelle darin, dass die zugrunde liegende HTTP-Kommunikation
grundsätzlich nur von der Seite des Clients, das heißt
im Browser initiiert werden kann.
-
Eine
im Browser ablaufende Anwendung müsste daher, um Meldungen
vom Server empfangen zu können, laufend entsprechende Anfragen
an den Server senden (Polling). Dieses Verfahren führt zu
unnötiger Kommunikation, die wiederum insbesondere die
begrenzten Ressourcen des HTTP-Servers 420 und damit der
Steuerung 400 belasten würde. Unter dem Namen
Comet ist ein Mechanismus bekannt, der eine vom Server initiierte Übertragung von
Daten ermöglicht. Für die Nutzung von Comet ist eine
entsprechende Erweiterung des HTTP-Servers 420 vorgesehen,
auf Seite des Browsers 110 sind keine Erweiterungen oder
Plug-Ins notwendig, so dass weiterhin ein Standard-Browser ausreichend ist.
-
Comet
wird beispielsweise in dem auf der Webseite "http://www.entwickler.com/zonen/portale/psecom,id,101,online,1151,.html"
hinterlegten Artikel beschrieben, wobei der Inhalt dieser Webseite zum
Anmeldezeitpunkt hiermit durch Referenz inkorporiert wird.
-
Industrielle
Steuerungen sind auf Grund der speziellen Anforderungen der verschiedenen
Einsatzbereiche überwiegend proprietäre Lösungen.
Sie unterscheiden sich sowohl im Bereich der verwendeten Hardware,
die insbesondere durch die eingesetzte Micro-Controller Plattform
bestimmt wird als auch beim verwendeten Betriebssystem. Im Vergleich
zum Windows-PC, der eine sehr stabile Plattform zur Verfügung
stellt, bedeutet dies einen erheblichen Aufwand bei der Portierung
von Software für die jeweils spezifischen Geräte.
Die Erfindung sieht daher vorzugsweise vor, sowohl die Control-Engine 410 als auch
den HTTP-Server 420 mit den Mitteln der Microsoft .Net-Sprachfamilie
zu implementieren, die in eine standardisierte Zwischensprache (CIL – Common
Intermediate Language) übersetzt und in einer entsprechenden
Ablaufumgebung ausgeführt werden. Diese Ablaufumgebung
wird als CLR – Common Language Runtime bezeichnet und ist
unter dem Namen Embedded CLR auch für verschiedene Micro-Controller
Plattformen verfügbar. Diese Ausführungsform ermöglicht
eine einfache Portierung des Web-Engineerings auf verschiedene embedded
Geräte, da sowohl die Control-Engine 410 als auch
der HTTP-Server 420 gegen eine Standard-Umgebung implementiert
sind.
-
In
typischen Internet-Szenarien sind die Rechner, auf denen Web-Server
ablaufen, entsprechend leistungsfähige Maschinen, häufig
sogar eine Gruppe vernetzter Rechner – so genannte Serverfarmen,
die es erlauben, für die verschiedenen Prozesse immer ausreichend
Performance vorhalten zu können. Eine Speicherprogrammierbare
Steuerung hat primär die Aufgabe, einen über ihr
Peripheriesystem angeschlossenen Prozess zu steuern. Insbesondere
bei Steuergeräten, welche als Kompakt- und Kleinsteuerungen
ausgebildet sind, steht hierüber hinaus kaum freie Rechenleistung
für weitere Aufgaben zur Verfügung. Die erfindungsgemäße
Konzeption eines Web-basierten Steuerungssystems berücksichtigt
dieses zum einen durch die oben beschriebene Verlagerung der Engineering-Anwendung 310 in den
Browser 110. Weitere Rechenleistung der Steuerung 400 benötigen
nun noch der HTTP-Server 420 und dessen Kommunikation zur
Engineering-Anwendung 310. Für eine einwandfreie
Funktion der Control-Engine 410 muss diese vorzugsweise
ausreichend Ressourcen zur Bearbeitung der Steuerungsapplikation 600 bekommen
und darf nicht durch z. B. die HTTP-Kommunikation zur Engineering-Anwendung 310 beeinträchtigt
werden. Wie bei industriellen Steuerungen üblich, werden
von der Control Engine 410 typischerweise am Anfang eines
jeden dieser Zyklen die Eingangssignale der angeschlossenen Peripherie 700 eingelesen,
dann die Automatisierungsfunktionen entsprechend der aktuellen Steuerungsapplikation 600 ausgeführt
und am Ende des Zyklus die Ausgangssignale über die angeschlossene
Peripherie 700 ausgegeben. Der HTTP-Server 420 wird aktiviert,
wenn eine HTTP-Anfrage eintrifft oder die Control Engine 410 eine
entsprechende Meldung 720 absetzt. Besonders vorteilhaft
werden die Prozesse zur Ausführung der Control Engine 410 und des
HTTP-Servers 420 über Threads und eine dynamische
Prioritätssteuerung verwaltet. Die dynamische Prioritätssteuerung
stellt sicher, dass die Control Engine 410 ausreichend
Rechenzeit zugeteilt bekommt, um die Steuerungsapplikation 600 abarbeiten
zu können.
-
Klassische
Engineering-Werkzeuge für Speicherprogrammierbare Steuerungen
kennen zwei grundsätzliche Zustände, die normalerweise
mit Online und Offline bezeichnet werden. Dabei bedeutet Offline,
dass das Engineering-Werkzeug nicht mit der Steuerung verbunden
ist und die Steuerungsapplikation nur editiert werden kann. Zur Übertragung
der Steuerungsapplikation wird eine Kommunikationsverbindung zwischen
Engineering-Rechner und Steuerung hergestellt, über die
dann das Engineering-Werkzeug die entsprechenden Daten zur Steuerung überspielt.
Demgegenüber ist ein auf Basis von Web-Technologien erstelltes
Engineering-Werkzeug typischerweise immer Online, da eine Browser-basierte
Anwendung prinzipbedingt nur in Kooperation mit dem Server arbeiten
kann. Bei einem Engineering-Werkzeug in Form einer autarken Desktop-Anwendung
werden Applikationen aber durchaus häufig Offline, das
heißt unabhängig vom Automatisierungsgerät
erstellt. Um diesen Anwendungsfall abzudecken, werden HTTP-Server 420 und
Control Engine 410 vorteilhaft auf dem selben Rechner installiert,
auf dem auch der Browser 110 mit der Engineering-Anwendung 310 ablaufen.
Dieser Installationsvorgang kann von einem Datenträger,
wie zum Beispiel einer CD oder DVD, über das Internet,
beispielsweise über die Homepage eines Geräteherstellers,
oder auch direkt aus der Steuerung 400 erfolgen. Zusätzlich
kann die nun physikalisch nicht mehr verfügbare Prozess-Peripherie 700 durch
eine Simulationskomponente ersetzt werden. Hierdurch ist es möglich,
die Steuerungsapplikation 600 auch Offline auszuführen.
-
Der
Anwendungsbereich der Erfindung, insbesondere eines erfindungsgemäßen
Verfahrens und/oder eines erfindungsgemäßen Steuergerätes, und
somit der beschriebenen Mechanismen eines Web-basierten Steuerungssystems
sind insbesondere industrielle Speicherprogrammierbare Steuerungen
(SPS/PLC), aber auch sicherheitsgerichtete Systeme und insbesondere
auch Kombinationen aus sicherheitsgerichteten und nicht sicherheitsgerichteten Automatisierungsfunktionen.
Außerdem kann der beschriebene Mechanismus vorteilhaft
als Basis für Web-basierte Bedien&Beobachten-Funktionen und deren Anzeigesysteme
genutzt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - Anfang 2005
von Jesse James Garrett von Adaptive Path in seinem Essay "Ajax:
A New Approach to Web Applications" [0039]
- - http://us.ajax13.com/en/ajaxwrite/ [0040]
- - http://docs.google.com/ [0040]
- - http://www.heise.de/ix/artikel/2005/11/056/ [0041]
- - http://www.heise.de/ix/artikel/2006/01/070/ [0057]
- - http://www.entwickler.com/zonen/portale/psecom,id,101,online,1151,.html [0060]