-
Die Erfindung betrifft ein Verfahren zum Steuern von Komponenten eines Automationssystems.
-
Bei einem Automationssystem kann es sich beispielsweise um ein Gebäudeautomationssystem, ein Automationssystem zur Automatisierung eines Smart Grids, ein Maschinenautomationssystem, ein Anlagenautomationssystem oder ein System zur Prozessautomation handeln.
-
Ein Automationssystem kann beispielsweise eine Vielzahl von Komponenten, beispielsweise Sensoren und Aktoren aufweisen, die von einer Steuerung gesteuert werden. Es ist bekannt für die Kommunikation den Standard KNX zu verwenden. Dieser ist als internationale Norm ISO/IEC 14543-3 akzeptiert und basiert nicht auf Standard Ethernet. Nachteilig an diesem Standard ist, dass die Koexistenz von Internet basierenden Technologien nicht unterstützt wird, so dass neben der Kommunikation über KNX parallel weitere Kommunikationsstandards, wie z. B. Wireless LAN's, eingesetzt werden müssen.
-
Weiterhin ist es bekannt, Ethernet basierende Automatisierungsprofile, wie Profinet oder Ethernet IP, zu verwenden. Hier ist jedoch die Kodierung der Ein- und Ausgangswerte kryptisch im Ethernet Frame hinterlegt und kann erst durch spezielles Wissen des Anwenders entschlüsselt werden.
-
Weiterhin ist es bekannt, im Bereich der Mensch-Maschinen-Automation Client-Server-Technologie einzusetzen. In einer solchen Anwendung entfällt die Interpretation der Nutzdaten weitestgehend, da direkt mit den bekannten physikalischen Größen, wie beispielsweise Druck, Temperatur usw., gearbeitet werden kann.
-
In 1 ist eine Anwendung aus dem Bereich Mensch-Maschinen-Automation dargestellt. Über einen Client können IO-Server im Netzwerk adressiert werden. Diese stellen ihre Funktionalität in Form einer Webseite dar. Die Webseiten, die beispielsweise in HTML oder XML beschrieben sind, werden durch einen Browser auf dem Client dargestellt. Auf diesem Wege wird eine Bedienung einschließlich einer Parametrisierung und Diagnose der IO-Server ermöglicht. Die IO-Server sind beispielsweise in Schalter, Sensoren und Aktoren der Applikation integriert.
-
In der in 1 beispielhaft dargestellten Applikation kann eine Heizung über den Browser ein- und ausgeschaltet werden. Über die URL ”Temperatur” erhält der Nutzer Zugang zu weiteren Bedien- und Einstellmöglichkeiten der Heizung.
-
Beispielsweise übergibt der IO-Server der Heizung unter der URL ”Temperatur” den Wert der Außentemperatur –10 Grad Celsius zum aktuellen Zeitpunkt. Über diese Webseite ist der Nutzer auch in der Lage die aktuelle Außentemperatur in andern physikalischen Einheiten, wie z. B. Grad Fahrenheit, abzurufen. Über die Combobox ”Grad Celsius” können durch einen Mouseclick weitere Darstellungsformen des physikalischen Wertes der Temperatur über den IO-Server angefordert werden. Beispielshaft könnten auch Außentemperaturwerte zu früheren Zeitpunkten durch das Mensch-Maschinen-Benutzerinterface angefordert werden.
-
Im Dialogfeld darunter kann der Benutzer die Vorlauftemperatur der Heizung parametrisieren. Der bisherige Wert der Vorlauftemperatur der Heizung beträgt im Beispiel 40 Grad Celsius zur Tagzeit.
-
Bei starken Minusgraden im Winter kann es sinnvoll sein, die Vorlauftemperatur beispielhaft auf 60 Grad Celsius zu erhöhen. Dies kann durch den menschlichen Benutzer über das webbasierende Mensch-Maschinen-Interface bewerkstelligt werden.
-
DE 298 23 119 U1 beschreibt ein Automatisierungsgerät zur Steuerung eines technischen Prozesses, welches über ein Internet- oder Intranet-Netzwerk zum Zwecke der Prozessbeobachtung mit einem Beobachtungsgerät verbunden wird.
-
DE 10 2006 025 747 A1 betrifft ein automatisiertes System zur netzwerkbasierten Steuerung von Textilmaschinen. Das System umfasst mehrere Human-Machine-Interface-Einheiten, die mit der Maschinensteuerung vernetzt sind. Diese HMI-Einheiten sind als sogenannte „Thin-Clients” ausgebildet. Es können Prozessdaten und Software auf die HMI-Einheiten von einem entfernten Server geladen werden.
-
DE 101 32 038 A1 beschreibt ein Verfahren zum Steuern von Komponenten eines Automatisierungssystems, wobei ein Steuerungsgerät als Client mit weiteren Komponenten des Systems, die als Server fungieren, kommuniziert. Zur Kommunikation wird das HTTP-Protokoll verwendet.
-
US 2004/0111488 A1 beschreibt ein Verfahren zum Aufzeichnen und anschließenden Wiederholen von Bedienschritten durch ein HTTP-Makro. Ähnliche Merkmale gehen aus
US 2004/0254935 A1 hervor.
-
Aufgabe der Erfindung ist es, ein vereinfachtes Verfahren zum Steuern von Komponenten eines Automationssystems bereitzustellen.
-
Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale des Anspruchs 1.
-
Das erfindungsgemäße Verfahren ist dadurch gekennzeichnet, dass ein Steuerungsgerät, das insbesondere als Steuerungsendgerät ausgebildet ist, als Client mit Komponenten des Automationssystems, die als Server fungieren, kommuniziert, wobei für die Kommunikation das Hypertext Transfer Protokoll (HTTP) verwendet wird. Insbesondere handelt es sich bei der Kommunikation um eine eigenständige Kommunikation, die ohne die Mitwirkung eines menschlichen Benutzers stattfindet.
-
Bei dem erfindungsgemäßen Automationssystem kann es sich um ein Gebäudeautomationssystem, ein System zur Automatisierung eines Smart Grids, ein Maschinenautomationssystem, ein Anlagenautomationssystem oder ein System zur Prozessautomation handeln. Andere Automationssysteme sind ebenfalls möglich.
-
Erfindungsgemäß bauen somit die Clients in einem Netzwerk, das Webserver und Clients aufweist, insbesondere gesteuert durch ein Automatisierungsprogramm, Verbindungen zu den Webservern auf und fordern mittels Requests Informationen über das HTTP an, welche in Form von Responses vom Server an den anfordernden Client beantwortet werden. Die Clients übertragen ihre Daten, Parameter und Kommandos bevorzugt mittels der Requests im Message-Body an den adressierten Webserver.
-
Insofern fungieren das Steuerungsgerät (Client) bevorzugt als Master und die Komponenten (Server) des Automationssystems als Slaves. Die Server stellen hierbei die Peripherie eines Automatisierungssystems beispielsweise in Form von Sensoren und Aktoren dar.
-
Erfindungsgemäß ist somit eine Client-Server gebundene Automatisierungslösung gelungen, welche nur auf den offenen Standards der webbasierenden Kommunikation aufbaut. Alle Ein- und Ausgangsvariablen stehen in profilneutraler Form zur Verfügung, sind durch einen menschlichen Benutzer direkt erfassbar und können direkt weiterverarbeitet werden. Es ist somit auf einfache Weise gelungen, das Mensch-Maschinen-Interface auf eine Maschine-Maschine-Kommunikation zu übertragen. Webserver, die heute in den meisten Geräten vorhanden sind, können in dem erfindungsgemäßen Verfahren weiterverwendet werden.
-
Erfindungsgemäß bedienen somit die Komponenten des Automatisierungssystems als Server oder Slaves die Anfragen des Steuerungsgerätes als Master oder Client.
-
Es ist erfindungsgemäß vorgesehen, dass auf dem Steuerungsgerät ein Automatisierungsprogramm ausgeführt wird, das eine Lernsoftware umfasst, wobei das Automatisierungsprogramm durch die Lernsoftware, die durch einen menschlichen Benutzer vorgenommenen Bedienschritte lernt. Die Lernsoftware kann auch getrennt vom Automatisierungsprogramm auf einem separaten Rechner ausgeführt werden. Hierdurch ist das Automatisierungsprogramm in der Lage, in gleicher Weise über das HTTP mit den Komponenten des Automationssystems zu interagieren wie der menschliche Benutzer.
-
Es ist ferner erfindungsgemäß vorgesehen, dass das Lernen der durch den menschlichen Benutzer vorgenommenen Bedienschritte folgende Schritte umfasst:
- – Aufzeichnen aller Bedienschritte des Benutzers, die dieser während einer Beispielsanwendung durchführt,
- – Extrahieren der zugrundeliegenden webbasierenden Kommunikationsprozeduren, wobei diese anschließend dem Automatisierungsprogramm zur Verfügung gestellt werden.
-
Das Aufzeichnen der Bedienschritte des menschlichen Benutzers umfasst folgende Verfahrensschritte:
Zunächst wird eine Bedienschritt-Lernprozedur durch den Benutzer in der Lernsoftware initiiert. Hierbei werden alle aktivierbaren Links der angezeigten Webseite graphisch für den Benutzer hervorgehoben. Anschließend wird durch den Benutzer eine Abfolge von Bedienschritten durch Aktivieren eines oder mehrerer der hervorgehobenen Links eingegeben. Aus der durch den Benutzer getätigten Abfolge von Bedienschritten wird ein Kommunikations-Makro erstellt. Es ist bevorzugt diesem Makro einen Aufrufnamen zuzuordnen. Mit diesem ist das Automatisierungsprogramm später in der Lage die entsprechenden Parameter über das HTTP zu übermitteln.
-
Das Kommunikations-Makro ist bevorzugt zur Laufzeit des Automatisierungsprogramms abrufbar und hat die gleiche Antwort des Servers zur Folge wie die durch den menschlichen Benutzer generierten Eingaben. Mit anderen Worten lösen die durch den Benutzer aktivierten Links mit ihren Parametern im Client einen entsprechenden Kommunikationsprozess zum Server auf Basis des HTTP aus, welcher in seiner Gesamtheit vom Automatisierungsprogramm aufgezeichnet wird und ein Kommunikations-Makro bildet. Durch den Aufrufnamen des Kommunikations-Makros wird später das Automatisierungsprogramm befähigt, dieses Makro zu initiieren.
-
Es ist weiterhin erfindungsgemäß vorgesehen, dass das Lernen der Bedienschritte des menschlichen Benutzers durch die Lernsoftware ein Herausfiltern von Rückgabewerten umfasst, die durch den Server an den Client übermittelt werden. Ziel dieses Herausfilterns ist, dem Automatisierungsprogramm mitzuteilen, an welcher Stelle Rückgabewerte des Servers zu finden sind, sowie ggf. ihren Datentyp anzugeben, so dass diese Rückgabewerte durch das Automatisierungsprogramm selbsttätig weiterverarbeitet werden können. Das Herausfiltern der Rückgabewerte umfasst die folgenden Schritte:
Zunächst wird eine Rückgabewert-Lernprozedur durch den Benutzer in der Lernsoftware initiiert. Hierbei werden alle Rückgabewerte auf der angezeigten Webseite des Servers graphisch für den Benutzer hervorgehoben. Dieser wählt einen oder mehrere graphisch gekennzeichnete Rückgabewerte aus, so dass die Stelle dieses Rückgabewerts im http-Protokoll durch das Automatisierungsprogramm insbesondere mit seinem Datentyp herausgefiltert und weiterverarbeitet werden kann.
-
Das Lernen der Bedienschritte des menschlichen Benutzers durch die Lernsoftware kann ferner ein Deklarieren von Eingabewerten, die vom Benutzer eingegeben werden, umfassen. Bei den Eingabewerten handelt es sich um Werte, die der Benutzer über den Browser auf dem Client in Eingabemasken oder andere Felder auf der Webseite des Servers eingibt. Das Deklarieren der Eingabewerte kann die folgenden Schritte einschließen:
Zunächst wird eine Eingabewert-Lernprozedur durch den Benutzer in der Lernsoftware initiiert. Hierbei werden alle Eingabewerte auf der angezeigten Webseite des Servers graphisch für den Benutzer hervorgehoben. Der Benutzer wählt mindestens einen graphisch hervorgehobenen Eingabewert aus, so dass dieser hierdurch für das Automatisierungsprogramm als Eingabewert auffindbar ist.
-
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand von Figuren erläutert.
-
Es zeigen:
-
1 eine Darstellung eines Webinhalts einer Heizung in einem Gebäude-Automationssystem gemäß dem Stand der Technik,
-
2 eine vereinfachte Darstellung der Kommunikationsbeziehungen in einem Automationssystem,
-
3–9 Darstellungen der Webseite einer Komponente eines Gebäude-Automationssystems zur Verdeutlichung der Lernprozedur.
-
1 wurde bereits in Zusammenhang mit dem Stand der Technik beschrieben.
-
Gemäß 2 wird über den Router 14 ein lokales Netzwerk aufgespannt. Auf dem Client 10, beispielsweise einem PC, ist ein Automatisierungsprogramm installiert. Router 14 und Client 10 können auch als ein Automatisierungsgerät mit Mensch-Maschine-Interface (HMI) Funktion zusammengefasst sein. Weitere Clients 10, wie z. B. Smartphones, können als Subclients mit reduzierter Funktionalität in die Applikation eingebunden werden. Die IO-Server 12 stellen die Steuerungsperipherie der Applikation dar. Sie sind beispielsweise in Schalter, Sensoren und Aktoren der Applikation integriert. Auch Haushaltsgeräte aller Art, Alarm- und Feuermelderanlagen, Mulitmediageräte und Energieerzeugungsgeräte können mit den IO-Servern 12 ausgestattet sein. Über das Internet können weitere Clients 10 und Server 12 integriert werden, wobei ein Server z. B. als powersubstation bzw. virtual power substation ausgebildet sein kann.
-
In den 3 bis 9 wird anhand des Beispiels einer Heizung die Funktion der Lernsoftware näher erläutert. Mittels eines Browsers ist der menschliche Benutzer in der Lage, mit verschiedenen IO-Servern zu kommunizieren und diese zu bedienen. Erfindungsgemäß wird unter einem Bedienen das Tätigen jeglicher Bedienschritte, einschließlich des Eingebens von Parameter oder anderen Werten, das Abfragen von Daten usw., verstanden. Im Beispiel der Heizung kann der menschliche Benutzer die URL ”Temperatur” besuchen und erhält die Informationen zur aktuellen Außentemperatur in Grad Celsius und zu der aktuell eingestellten Vorlauftemperatur der Heizung. Folgende Schritte werden üblicherweise händisch durch den menschlichen Benutzer durchgeführt:
Über das Pull-Down-Menü wählt er im Feld Außentemperatur die Einstellung ”aktuell”. Über diesen vom Menschen aktivierten Link wird über das Internet der Parameter ”aktuell” an den Server der Heizung übertragen bzw. gesetzt. Beispielhafte andere Einstellungen könnten sein ”Vortag” oder ”gemittelte Außentemperatur über die letzten zwei Tage” usw. Im nächsten Pull-Down-Menü wird durch den Benutzer die physikalische Einheit der Temperatur auf Grad Celsius eingestellt und in gleicher Weise zum Server der Heizung (IO-Server) übertragen. Mit der nächsten Antwort des Servers wird dem Client der aktuelle Wert der Außentemperatur in Grad Celsius übergeben und graphisch auf dem Bildschirm des Benutzers angezeigt.
-
Nun verfügt der menschliche Benutzer über eine Information, auf deren Basis er weitere Entscheidungen fällen kann. Liegt z. B. der Wert der Außentemperatur unter –8 Grad Celsius, kann der Mensch die Entscheidung fällen, den Wert der Vorlauftemperatur von 40 auf 60 Grad Celsius zu erhöhen. Diese Entscheidung des Menschen ist vergleichbar mit der Entscheidung, die ein Automatisierungsprogramm einer Steuerung fällen kann. Die Ermittlung des Vorlauftemperaturwertes kann selbstverständlich im Falle des Automationsprogrammes durch komplexere Algorithmen wie z. B. PID-Regelung realisiert werden.
-
Die grundsätzliche Funktionsweise derartiger Automatisierungsprogramme ist aus dem Stand der Technik bekannt. Wesentlich für die vorliegende Erfindung ist die Frage, wie das Automatisierungsprogramm an die benötigten Daten, hier an den Wert der aktuellen Außentemperatur gelangt.
-
Erfindungsgemäß geschieht dies über eine Lernsoftware, um die der Client erweitert wird. Hierdurch werden alle Bedienschritte des Benutzers aufgezeichnet, die zugrundeliegenden webbasierenden Kommunikationsprozeduren extrahiert und diese anschließend dem Automatisierungsprogramm zur Verfügung gestellt. Das Automatisierungsprogramm ist dann erfindungsgemäß in der Lage in gleicher Weise wie im Falle der Mensch-Maschinen-Automation mit den IO-Servern zu interagieren.
-
Ein Parser, welcher in einer bevorzugten Ausführungsform Bestandteil der Lernsoftware ist, untersucht die vom Benutzer aufgerufene Seite, welche beispielsweise dem Client vom Server in Form eines XML-basierten Dokuments zur Verfügung gestellt wird.
-
Aktiviert der Benutzer beispielsweise per Mouseclick den zur Lernsoftware zugehörigen Button ”get action” (siehe 4), so werden alle Aktionen, nämlich alle aktivierbaren Links dieser Seite, die vorliegend zur Parametrisierung der Ein- und Ausgangsgrößen dienen, graphisch für den Benutzer hervorgehoben. Im Beispiel sind das die Parameter ”aktuell”, ”Tag” und zweimal ”Grad Celsius”. Das Mouse Icon mit der Aktionsnummer (hier = 1) kennzeichnet im Folgenden die Aktionen, welche der Benutzer durchführt.
-
In der Folge wird der Benutzer ggf. die gekennzeichneten Aktionen durch Anklicken durchführen, um die Parameter vom Rückgabewert vom Server zu parametrisieren. Dies ist in 5 dargestellt, wobei jede Aktion mit einem Mouse Icon und einer entsprechenden Nummer versehen ist.
-
Beispielhaft sind die Aktionen 2 und 3 in 5 dargestellt, wobei über die entsprechenden Command-Buttons die Parameter ”aktuell” und ”Grad Celsius” vom Benutzer gesetzt werden. Anschließend kann dem hierzu entsprechenden Kommunikations-Makro ein Aufrufname übergeben werden (Aktion 4). Mit diesem ist später das Automatisierungsprogramm in der Lage, die entsprechenden Parameter über das HTTP zu setzen, bzw. entsprechende Sollwerte vorzugeben.
-
Die aktivierten Links mit ihren Parametern lösen im Client einen entsprechenden Kommunikationsprozess zum Server auf Basis des HTTP aus, welcher in seiner Gesamtheit aufgezeichnet wird und ein Kommunikations-Makro bildet, welches später zur Laufzeit des Automatisierungsprogramms ausgelöst, eine Antwort des Servers zur Folge haben wird, welche im Beispiel den Wert der aktuellen Außentemperatur auf dem Bildschirm ausgeben wird. Über den Aufrufnamen kann das Makro später durch das Automatisierungsprogramm initiiert werden.
-
Mit dem Command-Button ”get variable” werden anschließend alle Rückgabewerte dieser Webseite, beispielsweise vom Server gesendete Objekte, Variablen usw., auf der Seite graphisch gekennzeichnet und für den Benutzer zur Auswahl bereitgestellt. Die nächsten Aktionsschritte 6 und 7 sind in 6 dargestellt.
-
Der Benutzer wählt daraufhin den Rückgabewert ”–10” am Bildschirm aus. Im geschilderten Beispiel ist dies die Variable der aktuellen Außentemperatur. Durch die vom Parser untersuchte Webseite kann jetzt die vom Benutzer im Beispiel ausgewählte Variable inklusiv Datentyp herausgefiltert werden und vom Benutzer mit einem Variablennamen zur Verwendung im Automatisierungsprogramm versehen werden.
-
Der Datentyp des Wertes ”aktuelle Außentemperatur” kann aus dem Datentyp des XML-Dokuments übernommen oder vom Benutzer neu definiert werden, wobei in diesem Fall der Datentyp konvertiert werden muss. Dies kann durch unterstützende Tools, welche in der Lernsoftware integriert sind, durchgeführt werden.
-
Der Lernvorgang (Teaching) wird zum Abschluss dieses Makros vom Benutzer durch Betätigung des Buttons ”finish” beendet, wobei für das gesamte Makro jetzt ein Aufrufname zur Verfügung steht, der beispielsweise der Name der Variablen sein kann.
-
Mit Aufruf dieses Makros durch das Automatisierungsprogramm (nämliche eine Maschine) wird dem Automatisierungsprogramm der Wert der aktuellen Außentemperatur mit dem vom Benutzer bestimmten Variablennamen und Datentyp vom Server mittels des HTTP zur Verfügung gestellt und kann im Automatisierungsprogramm weiterverarbeitet werden. Die genannten Werte werden somit nicht mehr durch einen Menschen angefordert, sondern durch eine Maschine, nämlich das Automatisierungsprogramm.
-
In gleicher Weise kann jetzt der Wert der Vorlauftemperatur durch das Automatisierungsprogramm im IO-Server der Heizung gesetzt werden. Hierzu ist erneut ein Kommunikations-Makro aufzuzeichnen. Der Lernprozess beginnt wieder mit der Initiierung des Aufzeichnungsprozesses mit ”get action” (siehe 7).
-
Den 8 und 9 können die folgenden Bedienschritte entnommen werden. Durch die Aktionsschritte 10, 11 und 12 gemäß 8 wird in ähnlicher Weise zuerst die Parametrisierung der zu setzenden Variablen vorgenommen und dann durch die Aktionsschritte 14 und 15 (9) die Variablendeklaration durchgeführt. Jetzt stehen für das Automatisierungsprogramm alle Variablen mit entsprechender Parametrisierung zur Verfügung.
-
Zur Laufzeit der Automatisierungsapplikation fordert der Client bei Bedarf oder zyklisch, d. h. abhängig vom Applikationsprogramm, die parametrisierte Eingangsvariable ”Außentemperatur” vom adressierten Server an. Zuerst werden vom Applikationsprogramm (Maschine) die Parameter ”aktuell” an den Server übertragen, anschließend ”Grad Celsius” und zum Schluss wird die Rückgabewert ”Außentemperatur” von der adressierten Webseite des Servers angefordert und vom IO-Server dem Applikationsprogramm unter dem deklarierten Namen und Typ zur Verfügung gestellt.
-
In ähnlicher Weise wird mit der Ausgangsvariablen ”Vorlauftemperatur” verfahren. Nach der Übergabe der Parameter ”Tag” und ”Grad Celsius” wird dem adressierten Server vom Applikationsprogramm über den Client der Wert der Vorlauftemperatur mittels HTTP übergeben.
-
Auf diesem Wege wird über eine Client Server Architektur eine Master/Slave Automation realisiert. Die Clients stellen hierbei die Automatisierungsmaster und die IO-Server, die Slaves dar.
-
Das Automatisierungsprogramm kann durch verschiedene Programmiersprachen realisiert werden. Beispielhaft seien C++, C sharp, visual Basic oder die Programmiersprachen nach IEC 61131 genannt. Lösungen als Java Applets sind auch denkbar.