-
Die
vorliegende Erfindung betrifft allgemein Controller für Industrieprozesse,
und insbesondere betrifft sie eine Mensch-Maschinen-Schnittstelle für einen
derartigen Controller unter Verwendung eines Web-Browser-Programms.
-
Industrielle
Controller sind Spezialzweckcomputer, die zur Steuerung industrieller
Prozesse und dergleichen verwendet werden. Während sie ein abgespeichertes
Steuerprogramm ausführen,
lesen sie Eingaben bzw. Eingangssignale von dem gesteuerten Prozess
und stellen über
die Logik des Steuerprogramms Ausgaben bzw. Ausgangssignale für den gesteuerten
Prozess bereit.
-
Industrielle
Controller unterscheiden sich von konventionellen Computern in zwei
hauptsächlichen
Belangen. Zunächst
erlaubt es die Architektur des industriellen Controllers, dass er
problemlos neu konfiguriert werden kann, um den Anforderungen an
den speziellen, zu steuernden Prozess zu entsprechen. Normalerweise
liegt der industrielle Logikcontroller in modularer Form vor und
der Nutzer wählt
verschiedene Module, die in einem Gestell zusammengebaut und miteinander
auf einer Backplane bzw. Rückseitenebene
in dem Gestell verbunden werden. Verschiedene Anzahlen von Eingängen und
Ausgängen
sind mit dem Eingangs-/Ausgangs(I/O)-modulen verbunden, die ebenfalls
in dem Gestell oder in einem entfernten Gestell vorgesehen werden
können,
das mit dem ersten Gestell über
ein Steuernetzwerk verbunden ist.
-
Die
Anpassbarkeit es industriellen Controllers an den gesteuerten Prozess
wird außerdem
durch von Kunden geschriebene Programmen ermöglicht, die auf dem industriellen
Controller ausgeführt
werden, wobei beide zur Steuerung des industriellen Prozesses dienen
und zum Bereitstellen von Mensch-Maschinen-Schnittstellen
(HMIs), die häufig
eine grafische Darstellung des gesamten oder eines Teils des Prozesses anzeigen,
die animiert ist, um den aktuellen Betriebszustand zu zeigen.
-
Industrielle
Controller unterscheiden sich häufig
von herkömmlichen
Computern insofern, als sie hohe Zuverlässigkeit und einen voraussagbaren
Betrieb gewährleisten
müssen.
Um dies zu erreichen, werden Kommunikationen bzw. Verbindungen zwischen
dem industriellen Controller und dem I/O sorgfältig geregelt, beispielsweise
indem sie maximalen Reaktionszeiten unterworfen und auf Fehler überwacht
werden.
-
Mitunter
kann es erwünscht
sein, einen industriellen Prozess zu überwachen oder zu steuern ausgehend
von einem Ort, der von dem industriellen Controller und dem Prozess
selbst entfernt zu liegen kommt. Derartige entfernt stattfindende
Operationen sind an sich bekannt, beispielsweise unter Verwendung
spezieller Telefonleitungen und firmeneigener Kommunikationsprotokolle
zwischen dem industriellen Controller und einem entfernten HMI.
Durch die Entwicklung des Internet und des World Wide Web können Telefonleitungen durch
Internet basierte Kommunikationen zwischen einem entfernt positionierten
Programm und einem Webserver ersetzt werden, der mit dem industriellen
Controller kommuniziert oder in diesem enthalten ist. Der Vorteil
des Web besteht darin, dass ein beliebiger, mit dem Internet verbundener
Computer zu einem entfernt posi tionierten Terminal für einen
industriellen Controller werden kann.
-
Ein
weit verbreiteter Einsatz eines Internet-basierten, entfernt stattfindenden
Betriebs industrieller Controller wird durch die Notwendigkeit behindert,
eine spezielle Software für
den entfernten Computer auszuführen,
die es ihm erlaubt, mit dem industriellen Controller zu kommunizieren.
Beispielsweise komplexe grafische, entfernt positionierte Mensch-Maschinen-Schnittstellen
implementierende Programme können
so umfangreich sein, dass es mühsam
ist, sie zu transportieren und an der entfernten Maschine zu installieren.
Die Softwarewartung zahlreicher dieser entfernten Programme ist
extrem schwierig, von denen jedes für einen speziellen industriellen
Controller kundenspezifisch zugeschnitten sein kann.
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren
zum Durchführen
komplexer entfernt stattfindender Betriebsabläufe mit einem gewöhnlichen
industriellen Controller ausgehend von potentiell einem beliebigen,
browserfähigem
Computer irgendwo in der Welt über
das Internet bereitzustellen.
-
Gelöst wird
diese Aufgabe durch den Gegenstand des unabhängigen Anspruchs. Vorteilhafte
Weiterbildungen sind in den Unteransprüchen festgelegt.
-
Die
US-B1-6201996 und die EP-A-0825506 offenbaren Steuersystemschnittstellen
in Übereinstimmung
mit dem Oberbegriff des Anspruchs 1. In der EP-A-0825506 wird der
Wert von Objekten beschrieben und erkannt zum Programmieren von
Schnittstellen zwischen einem entfernt positionierten Browser und
einem webfähigen,
programmierbaren Logikcontroller. Wenn ein Applet durch einen Namen
einen Zugriff auf ein Objekt anfordert, sendet der Objektservermanager
die Zugriffanforderung an sämtliche
Stationen in dem Fall, dass der Objektmanager den Ort des Objekts
nicht kennt. Die US-B1-6201996 offenbart einen webfähigen, programmierbaren
Logikcontroller, der eine Reihe von Softwareobjekten zur Unterstützung eines
Programmierers bei der Erzeugung eines Interface bereitstellt. Die
Systeme in Übereinstimmung
mit den beiden vorstehend genannten Druckschriften benötigen ein
Applet, das serverseitig unter Verwendung eines feststehenden und
vorbestimmten Satzes von Objekten konfiguriert ist, auf die durch
das Applet Bezug genommen wird.
-
In
einer bevorzugten praktischen Ausführungsform der Erfindung ist
das entfernte Programm auf ein Applet reduziert, das in den entfernten
Computer rasch heruntergeladen werden kann. Das Applet implementiert
ein Interface, das es ihm erlaubt, eine große Anzahl von Softwareobjekten
aufzurufen, die in dem Webserver bevorratet sind, der mit dem industriellen
Controller verbunden ist. Das Applet kann diese Objekte entdecken,
konstruieren und nutzen, beispielsweise bei der Erzeugung eines
komplexen grafischen HMI, während
ein kleiner Fußabdruck
in dem entfernten Computer aufrecht erhalten bleibt. Ein Persistenzmerkmal
erlaubt es, dass instanziierte Objekte auf dem Webserver für den nächsten Zeitpunkt
gespeichert werden, zu dem das Applet verbindet.
-
Insbesondere
stellt die vorliegende Erfindung ein Verfahren bereit, das die Merkmale
des Anspruchs 1 umfasst.
-
Damit
besteht eine Aufgabe der Erfindung darin, die Entwicklung leistungsfähiger entfernt
positionierter Schnittstellen mit einem industriellen Controller
bereitzustellen, die an den gesteuerten Prozess kundenspezifisch
anpassbar sind, die jedoch ebenfalls rasch unter Verwendung bereits
existierender Softwareobjekte entwickelbar sind, die für den speziellen
industriellen Controller geeignet sind.
-
Das
Protokoll stellt für
die Kommunikation Instruktionen zwischen dem ersten Schnittstellenprogramm und
dem zweiten Schnittstellenprogramm unter Verwendung eines SOAP-Protokolls
bereit. Mehrere Instruktionen können
in einer einzigen SOAP-Protokollmitteilung übertragen
werden.
-
Eine
weitere Aufgabe der Erfindung besteht demnach darin, ein Kommunikationsprotokoll
bereitzustellen, das sich einer vollständigen Web-Kompatibilität erfreut.
Das SOAP-Protokoll erlaubt es, dass Kundeninstruktionen problemlos
und effizient durch einen Standard-Webserver zu einer ihnen unterliegenden
industriellen Steueranwendung geleitet werden können.
-
Das
Applet kann die Java-Programmiersprache nutzen.
-
Eine
weitere Aufgabe der Erfindung besteht darin, ein entferntes Betriebsprogramm
bereitzustellen, das in virtuell jedem browserfähigen Computer ungeachtet der
Architektur oder dem Betriebssystem laufen kann. Ein Java-Applet
kann auf jedem Computer ausgeführt
werden, der eine Java-Virtual-Machine implementieren kann, wie sie
beispielsweise in die führenden
Browserprogramme eingebaut ist.
-
Das
Protokoll kann zumindest eine der folgenden Instruktionen bereitstellen:
(a) Eine Erkundungsinstruktion (Discovery Instruction), die vom
ersten Schnittstellenprogramm übertragen
wird und das zweite Schnittstellenprogramm veranlasst, eine Liste
von Eigenschaften der Softwareobjekte bereitzustellen, (b) eine Konstruktorinstruktion
(Constructor Instruction), die eine momentane Existenz (Instance)
eines Softwareobjekts auf dem Webserver erzeugt, (c) eine Einstellfähigkeitsinstruktion
(Set Property Instruction), die eine Fähigkeit (Property) eines Softwareobjekts
auf dem Webserver einstellt, (d) eine Aufrufinstruktion (Invocation
Instruction) zum Aufrufen (Invocation) eines Verfahrens eines Softwareobjekts
auf dem Webserver, (e) eine Ereignisindizierungsinstruktion (Event
Subscription Instruction), die den Empfang durch das erste Schnittstellenprogramm
von Ereignismitteilungen von dem Softwareobjekt auf dem Webserver
empfängt,
und zumindest eine Haltbarkeitsinstruktion (Persistence Instruction),
die eine momentane Existenz eines Softwareobjekts auf dem Webserver
während
einer Beendigung einer Kommunikationssitzung auf dem Internet zwischen
dem entfernten Computer und dem Webserver haltbar macht.
-
Eine
weitere Aufgabe der Erfindung besteht demnach darin, Objekte haltbar
zu machen, die in der entfernten Schnittstelle verwendet werden,
um eine praxisgerechte schnelle Schnittstelle von dem entfernten Computer
bereitzustellen.
-
Die
Erfindung kann die Schritte umfassen: (a) Verbinden des entfernten
Computers über
ein Web-Browserprogramm mit einer Webseite, die das erste Schnittstellenprogramm
bereitstellt, (b) Lesen des ersten Schnittstellenprogramms in den
entfernten Computer und Ausführen
des Programms auf dem entfernten Computer, und (c) Verbinden des
Web-Browserprogramms mit dem Webserver, der mit dem industriellen Steuersystem
in Verbindung steht.
-
Eine
Aufgabe der Erfindung besteht demnach darin, einen beliebigen browserfähigen Computer
in die Lage zu versetzen, auf das Internet zuzugreifen, um eine
Schnittstelle mit einem industriellen Steuersystem bereitzustellen,
ohne dass ein Nutzer eine Kopie des entfernten Schnittstellenprogramms
ausführen
muss. Eine weitere Aufgabe der Erfindung besteht darin, eine Modifikation
des entfernten Schnittstellenprogramms zu ermöglichen, damit dieses problemlos
zu zahlreichen entfernten Nutzern selbst für unterschiedliche industrielle
Controller verteilt werden kann. Das entfernt positionierte Schnittstellenprogramm
kann für
sämtliche Nutzer
von einem Ort oder von einer begrenzten Anzahl von Orten immer dann
heruntergeladen werden, wenn es benötigt wird.
-
Die
vorstehend genannten Aufgaben und Vorteile können nicht auf sämtliche
Ausführungsformen
der Erfindung zutreffen und es ist nicht beabsichtigt, dass sie
deren Umfang festlegen, für
welchen Zweck die Ansprüche
dienen. In der nachfolgenden Beschreibung wird auf die anliegenden
Zeichnungen Bezug genommen, die einen Teil von ihr bilden, und in
denen zu Illustrationszwecken eine bevorzugte Ausführungsform
der Erfindung gezeigt ist. Diese Ausführungsform legt ebenfalls nicht
den Umfang fest, für
welchen Zweck auf die Ansprüche
Bezug genommen werden muss.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
ein vereinfachtes Blockdiagramm einer Internetverbindung zwischen
einem entfernten Browser und zwei Servern, von denen ein erster
ein HMI-Applet enthält,
und von denen ein zweiter eine Schnittstelle mit einem industriellen
Controller bereitstellt
-
2 zeigt
ein Flussdiagramm der Verbindung des Browsers mit dem industriellen
Controller zur Implementierung eines HMI;
-
3 zeigt
ein detailliertes Blockdiagramm von Softwarekomponenten des Browsers
und des Servers unter Darstellung von Strukturen innerhalb des Servers
zur Implementierung eines Objekt-basierten Schnittstellenprotokolls
sowie ihre Verbindungen mit einem externen industriellen Controller;
-
4 zeigt
eine grafische Darstellung von einem der Objekte des Servers von 3 unter
Darstellung seiner Eigenschaften, Verfahren und Ereignisse;
-
5 zeigt
ein vereinfachtes Beispiel eines industriellen Prozesses, umfassend
ein Förderband
unter Darstellung eines Ausgangsobjekts zur Betätigung des Förderbands
in einem Eingangsobjekt zum Messen des Vorbeilassens von Objekten
auf dem Förderband;
-
6 zeigt
eine ähnliche
grafische Darstellung wie 4 unter
Darstellung der Konstruktion eines Objekts, das von dem Eingangs-
und Ausgangsobjekten von 5 Gebrauch macht;
-
7 zeigt
ein Flussdiagramm der Übertragung
von Instruktionen von dem entfernten Terminal zu dem Server; und
-
8 zeigt
ein grafisches Anzeigeobjekt, das durch die vorliegende Erfindung
implementiert sein kann.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Unter
Bezug auf 1 wird die vorliegende Erfindung
nunmehr im Zusammenhang mit einer Mensch-Maschinen-Schnittstelle
(HMI) erläutert,
die auf einem browserfähigen
entfernten Computer 10 implementierbar ist. Die Erfindung
ist allgemein anwendbar auf andere entfernt stattfindende Betriebsabläufe, die eine
Schnittstelle zu einem industriellen Steuersystem oder über das
Internet erfordern.
-
Wie
in 3 gezeigt, umfasst der entfernt positionierte
Computer 10 einen Anzeigbildschirm 44 und eine
Nutzereingabeeinrichtung 46, wie etwa eine Tastatur, die
mit einem Prozessorsystem 48 kommuniziert, das abgespeicherte
Programme 49 ausführt.
Typischerweise enthalten die Programme 49 ein Betriebssystem 52,
wie etwa das Windows-NT-Betriebssystem der Microsoft Corporation,
Redmond, Washington. Die Programme 49 umfassen außerdem einen
Browser 50, der eine Java-Virtual-Machine (JVM) implementiert, wie etwa
den Internet-Explorer, der kommerziell von Microsoft erhältlich ist.
-
Der
entfernt positionierte Computer 10 kann eine auf einem
Schreibtisch genutzte Maschine sein, wie gezeigt, oder ein Laptop,
ein Palmtop oder eine andere browserfähige Recheneinrichtung.
-
Der
entfernte Computer 10 kann über eine Internetverbindung 12,
bei der es sich um eine standardgemäße Telefonleitung oder eine
drahtfreie Verbindung oder ein funktionell äquivalentes Medium handeln kann,
mit dem Internet 20 kommunizieren, wobei diese Kommunikationen
mit einem Webserver 26 (nur in 1 gezeigt)
und einem Webserver 16 erstellt wird durch ein standardmäßiges Internetprotokoll,
das auf diesem Gebiet der Technik bekannt ist. Der Webserver 16 kommuniziert
seinerseits mit einem industriellen Controller 14, der
dahingehend betrieben ist, einen industriellen Prozess 41 durch
Eingänge
und Ausgänge 39 zu steuern.
Die Webserver 16 und 26 können beispielsweise Server
mit standardmäßiger Architektur
sein, die Apache-Serversoftware unter dem Linux-Betriebssystem ausführen, die beide kommerziell
erhältlich
sind als Distributionen von einer Anzahl von Quellen, einschließlich RedHat
Software, Durham, North Carolina.
-
Insbesondere
unter Bezug auf 3 führt der Webserver 16 das
Betriebssystem 56 (wie etwa Linux) und Serversoftware 60 (wie
etwa Apache) aus, um eine oder mehrere vorab definierte Webseiten 24 zu
serven, wie nachfolgend erläutert.
Die Serversoftware 60 enthält ein Modul, das die Nutzung
des Simple Object Access Protocol (SOAP) erlaubt, das durch den
Apache-Server implementiert
ist, und beispielsweise die Übertragung von
objektorientierten Instruktionen erlaubt, wie nachfolgend erläutert, unter
Verwendung des Hypertext Transfer Protocol, dem standardgemäßen Webprotokoll,
das auf diesem Gebiet der Technik bekannt ist. Der Webserver 16 hält außerdem in
seinem Speicher 27 einen dauerhaften Speicherbereich 42,
in dem zur Rückgewinnung
von dauerhaften Objekten 38 notwendige Parameter gespeichert
sein können.
-
Üblicherweise
werden die objektorientierten Instruktionen durch die Serversoftware 60 einem
Parser 62 zugeleitet, der Teil der vorliegenden Erfindung
bildet, und die objektorientierten Instruktionen dem serverseitigen
HMI-Programm 37 bereitstellt (wie nachfolgend erläutert),
das grundsätzliche
Objektmanipulationen bewirkt, einschließlich einer Instanzi ierung
neuer Objekte und den Aufruf von Objektverfahren und die Übertragung
von Objektereignissen.
-
Der
Parser 62 liest üblicherweise
den Namen der objektorientierten Instruktionen, die in der Einkapselung
einer SOAP-Hülle 35 enthalten
sind, und leitet diese zu einer Anzahl von Objektschnittstellenprogrammen 36,
die das serverseitige HMI-Programm 37 ausmachen.
Die SOAP-Hülle
kann mehrere Instruktionen enthalten und die Aufrufanordnung der
Instruktionen kann sequenziell oder verschachtelt sein (und die
Rückführung von
einem Aufruf ermöglichen,
der als Kontext für
einen weiteren benutzt wird), oder eine Kombination aus beiden Möglichkeiten.
-
Das
spezielle Objektschnittstellenprogramm 36, das die Instruktion
empfängt,
wird in Übereinstimmung
mit dem Instruktionsnamen und den standardmäßigen Sprachen-Parser-Techniken
ermittelt, die auf diesem Gebiet der Technik bekannt sind. Die objektorientierten
Instruktionen fallen in die Kategorien der Objekterkennung, der
Objekthaltbarkeit, der Objektkonstruktoren und einem Objektzugang,
jeweils angezeigt durch ein separates Anwendungsprogramm. Allgemeiner
gesagt, beziehen sich die objektorientierten Instruktionen auf die
Objekte 38 in Übereinstimmung
mit an sich bekannten, objektorientierten Techniken und laufen auf
diesen ab. Üblicherweise
ist den Objektschnittstellenprogrammen 36 ein universeller
Ressourcenindikator (URI) 39 zugeordnet und dieser legt
dadurch einen Endpunkt fest.
-
Die
Objekte 38, die durch die Objektschnittstellenprogramme 36 erzeugt
und manipuliert werden, und zwar durch die objektorientierten Instruktionen,
die von dem entfernten Computer 10 empfangen werden, sind durch
ein Kommunikationsprogramm 64 mit dem industriellen Controller 14 derart
verbunden bzw. verknüpft, dass
die Objekte 38 als Pfad zum Lesen und Schreiben der Eingangssignale
und Ausgangssignale 39 des industriellen Prozesses 41 genutzt
werden können.
In diesem Hinblick dienen die Objekte 38 zum Verkapseln von
Eingangs- und Ausgangsdaten; andere Objekte 38, die nicht
direkt auf die Daten bezogen sind, beispielsweise Grafikobjekte
mit beliebigem Eingangssignal, sind jedoch ebenfalls in Betracht
zu ziehen.
-
Wie
in 1, 2 und 3 gezeigt,
instruiert ein Nutzer, der eine HMI mit einem industriellen Controller 14 öffnen möchte, zunächst den
Browser 50, der auf dem entfernten Computer 10 ausgeführt wird,
um mit dem Webserver 16 Verbindung aufzunehmen, der mit
dem industriellen Controller 14 kommuniziert, wie durch
den Prozessblock 22 in 2 gezeigt.
Die Verbindung kann über
das Internet 20 durch Bereitstellen der universellen Ressourcenlokator(URL)-adresse
für den
Browser 50 erfolgen, der mit einem Webserver 16 verbunden
ist.
-
In
Reaktion auf diese Verbindung wird eine Webseite 24 entsprechend
der URL durch den Webserver 16 bedient bzw. geservt. In
einer bevorzugten Ausführungsform
der Erfindung richtet die Webseite 24 den Browser 50 auf
dem entfernten Computer 10 durch das Internet 20 zu
einer zweiten Webseite 28 auf dem Webserver 26,
der eine URL aufweist, die sich von derjenigen der Webseite 24 unterscheidet.
Dieses erneute Richten bzw. diese Redirektion ist in 1 durch
einen punktierten Pfeil 25 bezeichnet.
-
Die
Webseite 28 enthält
ein Appletprogramm 30, das beispielsweise in der Java-Sprache
geschrieben sein kann, verbreitet durch Sun Microsystems, Palo Alto,
Kalifornien, und das an sich bekannt ist. Das Appletprogramm 30 in Übereinstimmung
mit den standardmäßigen Webprotokollen
wird in den Browser 50 des entfernten Computers 10 geladen,
um unter dem Browser 50 ausgeführt zu werden, wie durch den
Prozessblock 32 von 2 gezeigt.
In einer alternativen Ausführungsform
kann die Redirektion entlang dem Pfeil 25 zu einer anderen
Webseite auf dem Webserver 16 erfolgen; dies schließt jedoch
den Vorteil einer zentralisierten Verteilung des Appletprogramms 30 aus,
wie aus der nachfolgenden Beschreibung hervorgeht. Eine Ausführung des
Appletprogramms 30, wie durch den Prozessblock 34 von 2 bezeichnet,
veranlasst den Browser dazu, Daten mit dem Webserver 16 unter
Verwendung des SOAP-Protokolls zum Austausch von objektorientierten Instruktionen
innerhalb der Einkapselung einer SOAP-Hülle 35 auszutauschen.
-
Wie
in 4 gezeigt, stellt das serverseitige HMI-Programm 37 einen
Standardsatz vorkonfigurierter I/O-Objekte bereit, die physikalische
Ein- und Ausgangssignale 39 des industriellen Controllers 14 ver-
bzw. einkapseln. Beispielsweise kann das Ausgangsobjekt 38' ein binäres Ausgangssignal
entsprechend einem Ausgang bzw. Ausgangssignal 39 des industriellen
Controllers 14 bereitstellen, das beispielsweise eine spezielle
Einrichtung in dem industriellen Prozess 41 steuern kann.
Als standardmäßige Objektkonvention
stellt das Objekt 38' eine
Anzahl von Eigenschaften 66 bereit, die Variable darstellen,
die den Zustand des Objekts 38' beeinflussen. In diesem Beispiel
eines binären
Ausgangsobjekts 38' wird
lediglich eine einzige Eigenschaft bereitgestellt, die entweder
anzeigt, dass der Ausgang bzw. das Ausgangssignal EIN bzw. ON (d.
h., WAHR oder HOCH bzw. TRUE oder HIGH) oder OFF bzw. AUS (d. h.,
FALSCH oder NIEDRIG bzw. FALSE oder LOW) ist. Wie durch die Tätigkeit
des Kommunikationsprogramms 64 (in 3 gezeigt)
erläutert,
kann diese Zustandseigenschaft 66 in den entsprechenden
Ausgang 39, der mit dem industriellen Controller 14 verbunden
ist, geschrieben oder aus diesem gelesen werden, um den entsprechenden
Ausgang 39 zu offenbaren oder zu ändern.
-
Das
Objekt 38' erhält außerdem ein
Verfahren 68, das einen internen Code des Objekts 38' aufruft, um
die Ausgangszustandseigenschaft in diesem Fall zu kippen, die sich
ausgehend vom Zustand ON bzw. EIN in den Zustand OFF bzw. AUS oder
von OFF bzw. AUS in ON bzw. EIN abhängig von ihrem vorausgehenden Zustand ändert.
-
Das
Ausgangsobjekt 38' kann
außerdem
Ereignisse bereitstellen, bei denen es sich um Signale handelt,
die durch das Objekt 38' unter
bestimmten Bedingungen bereitgestellt werden, in diesem Fall ein
Zustandsänderungsereignis 70.
-
In
einer bevorzugten Ausführungsform
ist jedem Eingang und Ausgang 39 des industriellen Controllers 14 ein
I/O-Objekt 38 zugeordnet; andere abstrakte Objekte 38 können jedoch
ebenfalls erzeugt werden. Wie vorstehend angesprochen, können diese
abstrakten Objekte 38 von einem entfernten Computer 10 erstellt bzw.
konstruiert werden und sie können
Haltbarkeitseigenschaften besitzen, das heißt, selbst dann resistent bleiben
bzw, zurückbleiben,
nachdem der entfernte Computer 10 ausgeloggt hat.
-
Wie
in 5 gezeigt, kann in einem einfachen gesteuerten
Prozess 41 ein Förderband 72 durch
einen Motor 74 betätigt
sein, der ein Signal 76 von einem Ausgang 80 des
industriellen Controllers 14 empfängt. Dieser Ausgang 80 kann
ein entsprechendes Ausgangsobjekt 38a aufweisen, wie in 6 gezeigt.
Ein fotoelektrischer Sensor 82 kann über der Oberseite des Förderbands 72 positioniert
sein, um den Lauf von Teilen 84 über das Förderband 72 zu ermitteln.
Ein fotoelektrischer Sensor kann ein Signal 86 erzeugen,
das durch einen Eingang 88 empfangen wird, der mit dem
industriellen Controller 14 kommuniziert und ein entsprechendes
Objekt 38b aufweist, wie in 6 gezeigt.
Die beiden I/O-Objekte 38a und 38b können mit
einem abstrakten "Fehler"-Objekt 38c verbunden
sein, das durch den Nutzer an einem entfernten Computer 10 unter
Verwendung objektorientierter Instruktionen instanziiert sein kann,
die in den SOAP-Hüllen 35 übertragen
bzw. hindurch gelassen werden. Dieses Fehlerobjekt 38c ermittelt
in diesem Beispiel die korrekte Betätigung des Förderbands 72,
wie durch die Zustandseigenschaft des Objekts 38a angezeigt,
und reguläre
Ereignisse von dem Eingangsobjekt 38b, die eine periodische
Unterbrechung des fotoelektrischen Sensors 82 durch Teile 84 bezeichnen.
Wenn reguläre
Unterbrechungen nicht auftreten, erzeugt das Fehlerobjekt 38c einen
Fehlerzustand, bei dem es sich um eine Eigenschaft 66 und
ein Fehlerereignis 70 handelt. Das Fehlerobjekt 38c kann
außerdem
ein Rücksetzverfahren 68 enthalten,
das eine Veranlassung eines Rücksetzvorgangs
seines Ausgangsfehlersignalereignisses 70 bereitstellt.
Die abstrakten Objekte 38 können außerdem ein grafisches Anzeigeobjekt
enthalten.
-
Wie
sich dem Fachmann auf diesem Gebiet der Technik erschließt, variieren
die Anzahl von I/O-Objekten 38 und die Anzahl und die Art
anderer abstrakter Objekte 38 (wie etwa des Fehlerobjekts 38c)
abhängig vom
gesteuerten Prozess 41 und der gewünschten HMI. Die Objekte 38 können nicht
nur logische Objekte, wie gezeigt, enthalten, sondern auch grafische
Anzeigeobjekte, wie etwa Messgeräte
oder Tasten, die auf dem Bildschirm 44 des entfernten Computers
aufscheinen kön nen,
um das Kommunizieren von Information in Bezug auf den industriellen
Prozess 41 zu unterstützen.
-
Wie
in 8 gezeigt, kann beispielsweise ein Objekt 38d dafür sorgen,
dass ein grafisches Element dem Browser des entfernten Computers 10 kommuniziert
wird. Das gezeigte grafische Element ist vorliegend eine grafische
Balkensteuerung mit einer grafischen Balkenanzeige 73 und
Auf- und Abwärtstasten 75 und 77, die
beispielsweise durch den Nutzer aktivierbar sind, um das betreffende
Objekt zu steuern, dessen Ausgang bzw. Ausgangssignal durch die
grafische Balkenanzeige 73 reflektiert wird. Zwei Eigenschaften 66 können dabei
vorliegen, von denen eine den Wert der grafischen Balkenanzeige 73 hält und eine
einen Stiel von einer Anzahl von Stielen der grafischen Balkenanzeige
einstellt bzw. wählt.
Das Anzeigeobjekt 38d kann außerdem Ereignisse 70 erzeugen,
bei denen es sich um ein Drücken
der Auf- und Abwärtstasten 75 und 77 handelt.
Die Ereignisse und der Wert können
so gewählt
werden, dass sie mit anderen Objekten, entweder Basislinienobjekten
oder solchen verbunden werden, die durch den Nutzer erzeugt werden.
Die Grafikelemente können
allgemein Anzeigelemente, wie etwa Messgeräte, digitale Auslesungen und
Instrumente enthalten, und sie können
außerdem
grafische Steuerelemente enthalten, wie etwa Texteintragkästen, Tasten
und Gleitverschiebungsbalken.
-
Durch
die Verwendung des Objektparadigmas kann ein zentral verteiltes
Appletprogramm 30 die Fähigkeit
bereitstellen, verschiedene HMIs für verschiedene industrielle
Prozesse 41 bereitzustellen und die Objekte 38 als
notwendig aufzurufen, um bestimmte Merkmale des HMI durch die Schnittstelle
des Internet zu implementieren. Die Objekte 38 erlauben
es damit, dass das Applet klein sein kann und dass der Appletentwickler die
Notwendigkeit vermeiden kann, durch die Objekte bereits bereitgestellte
Funktionen zu schreiben. Durch Bereitstellen von Haltbarkeit für die konstruierten
Objekte auf der Serverseite wird die vollständige Flexibilität am entfernten
Ort des Computers und der Computerart weiterhin beibehalten, wodurch
es möglich
ist, ein spezielles HMI für
einen beliebigen industriellen Controller 14 von einem
beliebigen Browser aufzurufen, wodurch der entfernte Computer 10 an
beliebiger Stelle auf der Welt freigegeben werden kann.
-
Die
Möglichkeit,
ein gewünschtes
HMI durch das Appletprogramm 30 für einen beliebigen industriellen Controller 14 zu
erzeugen, erfordert, dass die I/O-Objekte 38 sowie weitere
standardmäßige abstrakte
Objekte 38 fernerkennbar sind. Die vorliegende Erfindung
stellt einen speziellen Satz von objektorientierten Instruktionen
bereit, der die Erkennung der Objekte 38 in einem speziellen
Webserver 16 zusammen mit ihren Eigenschaften, Methoden,
Ereignissen und anderen Eigenschaften ermöglicht, wie in der folgenden
Tabelle dargestellt.
-
Tabelle
I Objekterkennungsinstruktionen
-
-
Die
Erkennungsinstruktionen ändern
sich nicht bei Änderung
des industriellen Prozesses 41 (beispielsweise I/O) oder
selbst bei Aktualisierungen des Applet und sie können dadurch in jedem Webserver 16 standardisiert
werden. Andererseits ändern
sich die durch die Erkennungsinstruktionen rückgeführten Werte abhängig von
sowohl dem industriellen Prozess 41 wie seiner Steuerung,
prinzipiell in Gestalt davon, welche Objekte 38 verfügbar sind,
was es ermöglicht,
dass die präzise
Konfiguration der HMI unter identischen Appletprogrammen 30 beträchtlich
variiert. Die Implementierung der Objekterkennungsinstruktionen
wird durch die DISCOVER- bzw. Entdeckungs-Objektschnittstellenprogramme 36 durchgeführt, die
eine Tabelle überprüfen, die
eine Objektdefinition hält,
die für
die I/O-Objekte während
der Konfiguration des industriellen Controllers 14 und
für abstrakte
Objekte durch die HMI-Programmdesigner
erzeugt wird.
-
Die
Flexibilität
der HMI unter Verwendung des Appletprogramms erfordert die Haltbarkeit
der erzeugten Objekte (so dass die durch die HMI aufgerufenen Objekte
keine erneute Instanziierung für
jede Sitzung erfordern), so dass die vorliegende Erfindung außerdem einen
Satz von Haltbarkeitsinstruktionen bereitstellt, die Haltbarkeit
für ein
Objekt bereitstellen, das durch einen entfernten Nutzer erzeugt
wird, und zwar selbst dann, nachdem sich der Nutzer abgemeldet hat.
-
Tabelle
II Objekthaltbarkeitsinstruktionen
-
Die
Objekthaltbarkeitsinstruktionen werden durch das PERSISTENCE- bzw.
Haltbarkeitsobjektschnittstellenprogramm 36 implementiert,
das die notwendigen Instanziierungsdaten auf einen nicht flüchtigen
Speicherteil speichert und lädt,
der einen dauerhaften Speicherbereich 42 bildet, und das
den Dateinamen in Übereinstimmung
mit den an sich bekannten Dateispeichertechniken aufzeichnet.
-
Die
vorliegende Erfindung sieht eine vollständige Anpassung der HMI an
Kundenbedarf durch den entfernten Nutzer vor und stellt damit die
Konstruktion der Objekte bereit, die erforderlich sind, diese Schnittstelle in Übereinstimmung
mit standardmäßigen objektorientierten
Techniken zu erzeugen. In diesem Hinblick werden zwei Objektinstanziierungsinstruktionen
wie folgt bereitgestellt:
-
Tabelle
III Objektinstanziierungsinstruktionen
-
Die
Objektinstanziierungsinstruktionen sind durch das CONSTRUCTOR- bzw.
Konstruktionsobjektschnittstellenprogramm 36 unter Verwendung
an sich bekannter Objektkonstruktionstechniken implementiert.
-
Der
endgültige
Satz von Objektzugangsinstruktionen verschafft Zugang zu den Eigenschaften,
Methoden und Ereignissen des Objekts, so dass sie im Rahmen ihrer
Eigenschaften gelesen oder geschrieben werden können, oder dass ihre Verfahren
aufgeru fen oder mitgeteilt werden bei Ereignissen in dem Subskriptionsprozess.
-
Tabelle
IV Objektzugriffinstruktionen
-
Die
Zugriffobjektinstruktionen werden durch ein ACCESS- bzw. Zugriffobjektschnittstellenprogramm 36 ausgeführt unter
Verwendung von Objektzugrifftechniken, die auf dem Gebiet des objektorientierten
Programmierens bekannt sind. Die Verwaltung von Subskriptionen für Ereignisse
wird gehandhabt durch einen Mitteilungshandhaber 81, der
Teil des serverseitigen HMI-Programms bildet, der Mitteilungen akzeptiert,
die Ereignisse von freigegebenen Subskriptionen in einer Ereigniswarteschlange
einträgt
und Mitteilungen zu den entfernten Computern entsprechend verarbeitet.
-
Die
Objekte können
auf diese Weise Mitteilungen zu dem Appletprogramm über das
Internet senden, die Teil einer effektiven Anwendungsprogrammiererschnittstelle
bzw. eines API bilden.
-
Wie
in 3 und 7 gezeigt, startet eine typische
Interaktion zwischen dem Browser 50 auf dem entfernt positionierten
Computer 10 und dem Webserver 16 durch den Empfang
einer oder eines Satzes objektorientierter Instruktionen von dem
Appletprogramm 30, initiiert durch den Nutzer, um zu dem
Appletprogramm 30 übertragen
zu werden, wie durch den Prozessblock 83 bezeichnet.
-
Das
Appletprogramm 30, das durch den Prozessblock 85 bezeichnet
ist, verkapselt die objektorientierte Instruktion in dem SOAP-Protokoll
zur Übertragung
durch den Browser 50 in Übereinstimmung mit standardmäßigen Techniken,
die in der Browserbetriebssysteminteraktion genutzt werden. Der
Browser 50, der durch den Prozessblock 87 bezeichnet
ist, überträgt diese
SOAP-Hülle 35 zur
der URL des Webservers 16, wo sie als durch den Prozessblock 89 bezeichnet
empfangen wird, und die SOAP-Verkapselung,
die durch die Serversoftware 60 entfernt wird.
-
Die
betreffenden objektorientierten Instruktionen werden zu dem Parser 62 übertragen,
wie durch den Prozessblock 90 be zeichnet, und daraufhin
zu dem serverseitigen HMI-Programm 37 zur Verarbeitung,
wie vorstehend erläutert.
-
Speziell
ist es beabsichtigt, dass die vorliegende Erfindung nicht auf die
vorliegenden Ausführungsformen
und Darstellungen beschränkt
ist; vielmehr enthält
sie modifizierte Ausführungsformen,
einschließlich
Teilen der Ausführungsformen
und Kombinationen von Elementen der unterschiedlichen Ausführungsformen
als im Umfang der nachfolgenden Ansprüche enthalten.
-
Die
Erfindung kann wie folgt zusammengefasst werden:
Ein entfernte
ablaufendes Betriebsprogramm für
einen industriellen Controller läuft
auf einem browserfähigen entfernten
Computer ab durch Verbindung mit einem Webserver, der mit dem industriellen
Controller verbunden ist, um ein Applet zu laden. Das Applet stellt
ein Kommunikationsprotokoll mit dem Server des industriellen Controllers
bereit, das es dem Applet ermöglicht,
Objekte auf dem Server zu erkennen und zu nutzen, die durch das
entfernt ablaufende Betriebsprogramm implementiert sein können.