-
TECHNISCHES GEBIET
-
Die vorliegende Anmeldung betrifft einen Steuerungslogikanalysator und ein Verfahren dafür und betrifft insbesondere einen Steuerungslogikanalysator zum Steuern einer Mehrzahl an Geräten in einem separaten Raum und ein Verfahren dafür.
-
ALLGEMEINER STAND DER TECHNIK
-
Mit der Entwicklung intelligenter Technologien sind in Fahrzeugen höherer Komfort und leichtere Bedienung erforderlich. Verschiedene Geräte in einem herkömmlichen Fahrzeug können jedoch nur durch direkte Benutzeranweisungen gesteuert werden und das System ist nicht in der Lage, automatisch zu bestimmen, ob es erforderlich ist, ein Gerät basierend auf der Umgebung, in der sich das Fahrzeug befindet, zu betreiben. Zum Beispiel kann eine Klimaanlage in einem herkömmlichen Fahrzeug nur durch Drücken einer Schaltfläche auf einer Steuerkonsole ein- oder ausgeschaltet werden.
-
Dadurch weisen herkömmliche Fahrzeuge folgende Nachteile auf: 1) es ist gefährlich, wenn ein Fahrer während der Fahrt ein in das Fahrzeug integriertes Gerät betreibt; 2) ein Benutzer bedient ein Gerät, weil der Benutzer feststellt, dass die Umgebung nicht komfortabel ist, was bedeutet, dass der Benutzer eine unangenehme Erfahrung macht, auch wenn sie nur kurz andauert; 3) wenn mehr als ein Gerät betrieben wird, kann dies unter Umständen nicht für jeden Benutzer einfach und praktisch sein.
-
Demnach besteht ein Bedarf, die oben erwähnten Probleme zu lösen.
-
KURZDARSTELLUNG
-
Gemäß einer Ausführungsform der vorliegenden Anmeldung ist ein Steuerungslogikanalysator zum Steuern einer Mehrzahl von Geräten bereitgestellt. Der Steuerungslogikanalysator umfasst einen Steuerungslogikzerleger, der konfiguriert ist, um Steuerungslogiken von verschiedenen Quellen zu analysieren, um die an den Steuerungslogiken beteiligten Geräte aus der Mehrzahl an Geräten zu identifizieren und die Steuerungslogiken in Steuerungsanweisungen zu zerlegen, die durch die identifizierten Geräte ausgeführt werden sollen; und einen potenziellen Konfliktsucher, der konfiguriert ist, um eine Datenbank zum Speichern zerlegter Steuerungslogiken zu durchsuchen und zu bestimmen, ob ein potenzieller Konflikt zwischen der aktuellen Steuerungslogik und den vorab in der Datenbank gespeicherten Steuerungslogiken vorliegt, wobei der Steuerungslogikzerleger die an den Steuerungslogiken beteiligten Geräte durch Analysieren des Schlüsselworts in den Steuerungslogiken identifiziert.
-
In einigen Ausführungsformen kann der Steuerungslogikzerleger ferner überprüfen, ob die identifizierten Geräte bereit sind, und die aktuelle Steuerungslogik ablehnen und einen Fehlerhinweis an einen Benutzer senden, wenn die identifizierten Geräte nicht bereit sind.
-
In einigen Ausführungsformen kann der potenzielle Konfliktsucher konfiguriert sein, einen Konflikthinweis bereitzustellen und die aktuelle Steuerungslogik zu unterbrechen, wenn ein potenzieller Konflikt existiert.
-
In einigen Ausführungsformen kann der potenzielle Konfliktsucher konfiguriert sein, um zu bestimmen, ob die aktuelle Steuerungslogik mit einer beliebigen der vorab in der Datenbank gespeicherten Steuerungslogiken zusammengelegt werden kann.
-
In einigen Ausführungsformen kann der potenzielle Konfliktsucher konfiguriert sein, um die aktuelle Steuerungslogik und eine vorab in der Datenbank gespeicherte Steuerungslogik zusammenzulegen, um eine zusammengelegte Steuerungslogik zu erhalten, und die vorab in der Datenbank gespeicherte Steuerungslogik durch die zusammengelegte Steuerungslogik zu ersetzen, wenn die aktuelle Steuerungslogik mit der vorab in der Datenbank gespeicherten Steuerungslogik zusammengelegt werden kann.
-
Gemäß einer Ausführungsform der vorliegenden Anmeldung ist ein Steuerungslogikanalyseverfahren bereitgestellt. Das Steuerungslogikanalyseverfahren beinhaltet: Empfangen einer Steuerungslogik in Form einer natürlichen Sprache; Analysieren der Steuerungslogik, um die an der Steuerungslogik beteiligten Geräte aus einer Mehrzahl an Geräten zu identifizieren; Zerlegen der Steuerungslogik in einen Satz an Steuerungsanweisungen, die von den identifizierten Geräten ausgeführt werden; Durchsuchen einer Datenbank zum Speichern von Steuerungslogiken, um zu bestimmen, ob ein potenzieller Konflikt zwischen der aktuellen Steuerungslogik und den vorab in der Datenbank gespeicherten Steuerungslogiken vorliegt, und Unterbrechen der aktuellen Steuerungslogik, wenn ein potenzieller Konflikt zwischen der aktuellen Steuerungslogik und den vorab in der Datenbank gespeicherten Steuerungslogiken vorliegt.
-
In einigen Ausführungsformen kann das Verfahren ferner das Senden eines Konflikthinweises an einen Benutzer beinhalten, wenn ein potenzieller Konflikt zwischen der aktuellen Steuerungslogik und den vorab in der Datenbank gespeicherten Steuerungslogiken vorliegt.
-
In einigen Ausführungsformen kann das Verfahren ferner beinhalten, dass vor dem Durchsuchen der Datenbank überprüft wird, ob die identifizierten Gerät bereit sind, falls die Geräte nicht bereit sind, das Ablehnen der aktuellen Steuerungslogik und das Senden eines Fehlerhinweises an einen Benutzer.
-
In einigen Ausführungsformen beinhaltet das Verfahren ferner das Bestimmen, ob die aktuelle Steuerungslogik mit beliebigen der vorab in der Datenbank gespeicherten Steuerungslogiken zusammengelegt werden kann, falls die aktuelle Steuerungslogik mit einer vorab in der Datenbank gespeicherten Steuerungslogik zusammengelegt werden kann, das Zusammenlegen der zwei Steuerungslogiken, um eine zusammengelegt Steuerungslogik zu erhalten; und das Ersetzen der vorab in der Datenbank gespeicherten Steuerungslogik durch die zusammengelegte Steuerungslogik.
-
Gemäß einer Ausführungsform der vorliegenden Anmeldung ist ein Steuerungslogikanalysator bereitgestellt. Der Steuerungslogikanalysator ist konfiguriert, um eine Steuerungslogik des Betriebs eines Geräts in Steuerungsanweisungen zu zerlegen, wenn ein Parameter einen vorab bestimmten Wert erreicht, einschließlich: Empfangen von Daten von einem Sensor, der konfiguriert ist, um den Parameter zu überwachen, Vergleichen der empfangenen Daten mit dem vorab bestimmten Wert, um zu bestimmen, ob der Parameter den vorab bestimmten Wert erreicht, und Anweisen einer Steuerung, das Gerät entsprechend zu betreiben, wenn der Parameter den vorbestimmten Wert erreicht, wobei die Steuerungslogik in Form einer natürlichen Sprache vorliegt.
-
In einigen Ausführungsformen zerlegt der Steuerungslogikanalysator die Steuerungslogik basierend auf Schlüsselwörtern in der Steuerungslogik.
-
In einigen Ausführungsformen ist der Steuerungslogikanalysator ferner konfiguriert, um eine Datenbank zu durchsuchen, um zu überprüfen, ob ein potenzieller Konflikt zwischen der aktuellen Steuerungslogik und vorab in der Datenbank gespeicherten Steuerungslogiken vorliegt, und die aktuelle Steuerungslogik zu unterbrechen und eine Fehlermitteilung auszugeben, wenn ein potenzieller Konflikt vorliegt.
-
In einigen Ausführungsformen ist der Steuerungslogikanalysator ferner konfiguriert, um zu überprüfen, ob die aktuelle Steuerungslogik mit beliebigen vorab in einer Datenbank gespeicherten Steuerungslogiken zusammengelegt werden kann, die aktuelle Steuerungslogik und eine vorab in der Datenbank gespeicherte Steuerung zusammenzulegen, wenn die zwei Steuerungslogiken zusammengelegt werden können, um eine zusammengelegte Steuerungslogik zu erhalten, und die vorab in der Datenbank gespeicherte Steuerungslogik durch die zusammengelegte Steuerungslogik zu ersetzen.
-
In einigen Ausführungsformen kann der Steuerungslogikanalysator in ein Fahrzeug integriert sein, wobei der Sensor ausgewählt ist aus der Gruppe bestehend aus: Geschwindigkeitsmesser, Tankanzeige, Zeitgeber, Menschenanwesenheitsdetektor, Feuchtigkeitssensor und Temperatursensor. In einigen Ausführungsformen ist das Gerät ausgewählt aus der Gruppe bestehend aus: Klimaanlage, elektrischer Fensterheber, Sitzheizung, Kamera und Audiowiedergabegerät.
-
Die vorliegende Anmeldung stellt eine Lösung bereit, die Benutzern automatische und kontinuierliche Steuerungsleistungen anbietet; eine intelligente, universelle Steuerungsplattform bereitstellt und potenzielle Konflikte zwischen verschiedenen Steuerungslogiken vermeidet.
-
Andere Systeme, Verfahren, Merkmale und Vorteile der vorliegenden Anmeldung werden für Fachleute anhand der nachfolgenden Abbildungen und der ausführlichen Beschreibung ersichtlich.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die Erfindung ist mit Verweis auf die nachfolgenden Zeichnungen und die ausführliche Beschreibung besser verständlich.
-
1 zeigt ein schematisches Blockdiagramm eines Steuerungslogikanalysators, der in einer universellen Steuerungsplattform verwendet wird, gemäß einer Ausführungsform der vorliegenden Anmeldung;
-
2 zeigt ein schematisches Blockdiagramm eines Steuerungslogikanalysators, der in einer anderen universellen Steuerungsplattform verwendet wird, gemäß einer Ausführungsform der vorliegenden Anmeldung;
-
3 zeigt ein schematisches Ablaufdiagramm eines Steuerungslogikanalyseverfahrens gemäß einer Ausführungsform der vorliegenden Anmeldung; und
-
4 zeigt ein schematisches Ablaufdiagramm eines Steuerungslogikanalyseverfahrens gemäß einer anderen Ausführungsform der vorliegenden Anmeldung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die vorliegende Anmeldung stellt einen Steuerungslogikanalysator zum Steuern einer Mehrzahl an Geräten in einem separaten Raum und ein Verfahren dafür bereit. 1 zeigt eine Steuerungsplattform 100, die eine Benutzerschnittstelle oder eine Mensch-Maschine-Schnittstelle (UI/HMI) 110, einen Steuerungslogikanalysator 120 und ein Steuerungszentrum 130 beinhaltet. Wie in 1 dargestellt, beinhaltet der Steuerungslogikanalysator 120 einen Steuerungslogikzerleger 121 und einen potenziellen Konfliktsucher 122. Das Steuerungszentrum 130 kann eine(n) Geräteüberwacher und -steuerung 131 und eine Datenbank 132, die Steuerungslogiken speichert, beinhalten. Der Steuerungslogikanalysator 120 empfängt Steuerungslogiken von der UI/HMI 110. Die UI/HMI 110 kann jedes beliebige Eingabemittel, wie eine Tastatur, eine Maus, einen Touchscreen, ein Mikrofon usw., beinhalten. Der Steuerungslogikanalysator 120 analysiert die empfangenen Steuerungslogiken von verschiedenen Eingabequellen/-mitteln, um herauszufinden, welche(s) Gerät(e) (Sensoren/Steuerungen) an den Steuerungslogiken beteiligt ist/sind, und zerlegt die Steuerungslogiken in einen Satz an Steuerungsanweisungen zum Ausführen durch die beteiligten Geräte. Ferner kann der Steuerungslogikanalysator 120 die Datenbank 132 durchsuchen, um zu überprüfen, ob ein Konflikt zwischen der aktuellen Logik und den vorab in der Datenbank 132 gespeicherten Logiken vorliegt.
-
Insbesondere empfängt der Steuerungslogikzerleger 121 im Steuerungslogikanalysator 120 Steuerungslogiken von verschiedenen Quellen/Mitteln über eine Schnittstelle (nicht in den Abbildungen dargestellt) und bestimmt die beteiligten Geräte aus der Mehrzahl an Geräten. Die durch natürliche Sprachen definierten Steuerungslogiken werden in Anweisungen übersetzt, die das Steuerungszentrum 130 ausführen kann. Der Steuerungslogikzerleger 121 geht die Steuerungslogik durch, findet die an dieser Steuerungslogik beteiligten Geräte (z. B. wenn es ein Schlüsselwort „Temperatur” gibt, muss ein Temperatursensor an dieser Steuerungslogik beteiligt sein) und ihre zugehörigen Parameter (wie höher als 28°C) in der Steuerungslogik und erzeugt dann eine überwachende (Sensor) oder steuernde (Steuerung) Anweisung für jedes der Geräte. Die Geräte können ein beliebiges beinhalten von: einer Klimaanlagensteuerung, einer elektrischen Fensterhebersteuerung, einer Sitzheizungssteuerung, einer Kamerasteuerung, einer Audio- und/oder Videowiedergabegerätsteuerung, einem Geschwindigkeitsmesser, einer Tankanzeige, einem Radar, einem GPS-Gerät, einem Lichtschalter, einer Stromquelle, einem Zeitgeber oder jedes beliebige andere in eine Steuerungsplattform integrierte Gerät.
-
Der Steuerungslogikzerleger 121 kann außerdem den Status des beteiligten Geräts überprüfen. Der Steuerungslogikzerleger 121 sendet Geräteanfragen an den Geräteüberwacher und die Gerätesteuerung 131 im Steuerungszentrum 130, um Statusberichte der Geräte zu erhalten. Der Steuerungslogikzerleger 121 bestimmt dann, ob das beteiligte Gerät bereit ist, d. h. ob das beteiligte Gerät aktiv oder inaktiv ist. Wenn die beteiligten Geräte nicht bereit sind, sendet der Steuerungslogikzerleger 121 einen Fehlerhinweis über die Schnittstelle an den Benutzer und lehnt die Steuerungslogik ab. Wenn die beteiligten Geräte bereit sind, zerlegt der Steuerungslogikzerleger 121 die Steuerungslogik in einen Satz an Steuerungsanweisungen zum Ausführen durch die beteiligten Geräte und sendet den Satz an Steuerungsanweisungen an den potenziellen Konfliktsucher 122 im Steuerungslogikanalysator 120. Der potenzielle Konfliktsucher 122 durchsucht dann die Datenbank 132 und überprüft, ob ein potenzieller Konflikt zwischen der aktuellen Steuerungslogik und den vorab in der Datenbank 132 gespeicherten Steuerungslogiken vorliegt. Wenn ein Konflikt vorliegt, meldet der potenzielle Konfliktsucher 122 den Konflikt an den Benutzer, dann kann die aktuelle Steuerungslogik unterbrochen werden und der Steuerungslogikanalysator 120 wartet auf die Entscheidung des Benutzers. Wenn die aktuelle Steuerungslogik zum Beispiel „den vorderen elektrischen Fensterheber öffnen, wenn die Geschwindigkeit unter 45 km/h ist” lautet, während eine andere in der Datenbank vorliegende Steuerungslogik „alle elektrischen Fensterheber schließen, wenn die Geschwindigkeit über 35 km/h ist” lautet, muss ein Konflikt zwischen ihnen vorliegen. Der potenzielle Logiksucher 122 sollte die aktuelle Steuerungslogik ablehnen oder derartige Konflikte an Benutzer melden und die aktuelle Steuerungslogik unterbrechen, bevor Benutzer die Konflikte lösen.
-
Wenn kein Konflikt vorliegt, kann der potenzielle Konfliktsucher 122 ferner die Datenbank 132 durchsuchen, um zu überprüfen, ob die aktuelle Steuerungslogik mit den vorab in der Datenbank gespeicherten Steuerungslogiken zusammengelegt werden kann. Wenn sie mit der vorherigen Steuerungslogik zusammengelegt werden kann, wird die vorherige Steuerungslogik aus der Datenbank 132 entfernt und die zusammengelegte Steuerungslogik wird in der Datenbank 132 gespeichert. Wenn die aktuelle Steuerungslogik zum Beispiel „den vorderen elektrischen Fensterheber öffnen, wenn die Geschwindigkeit unter 45 km/h ist” lautet, während eine andere in der Datenbank vorliegende Steuerungslogik „den vorderen elektrischen Fensterheber öffnen, wenn es nicht regnet” lautet, können sie in einer Steuerungslogik zusammengelegt werden, um die zwei Bedingungen zusammenzulegen. Der potenzielle Konfliktsucher 122 entfernt die vorherige Steuerungslogik aus der Datenbank und legt sie mit der aktuellen zusammen.
-
2 zeigt ein schematisches Blockdiagramm eines Steuerungslogikanalysators in einer anderen universellen Steuerungsplattform gemäß einer anderen Ausführungsform der vorliegenden Anmeldung. Wie in 2 dargestellt, beinhaltet eine Steuerungsplattform 200 eine Benutzerschnittstelle oder eine Mensch-Maschine-Schnittstelle (UI-HMI) 210, einen Steuerungslogikanalysator 220, einen Gerätemanager 231 zum Verwalten von Geräten, einen Steuerungsanweisungsausführer 232 zum Betreiben der Geräte, um die Steuerungsanweisungen auszuführen, und eine Steuerungslogikdatenbank 233. Ähnlich wie in 1 dargestellt, beinhaltet der Steuerungslogikanalysator 220 einen Steuerungslogikzerleger 221 und einen potenziellen Konfliktsucher 222. Der Steuerungslogikanalysator 220 empfängt Steuerungslogiken von der UI/HMI 210. Die UI/HMI 210 kann jede(s) beliebige Eingabequelle/-mittel, wie eine Tastatur, eine Maus, einen Touchscreen, ein Mikrofon usw., umfassen. Der Steuerungslogikanalysator 220 analysiert die empfangenen Steuerungslogiken von verschiedenen Eingabequellen/-mitteln, um herauszufinden, welche(s) Gerät(e) (Sensoren/Steuerungen) an den Steuerungslogiken beteiligt ist/sind, und zerlegt die Steuerungslogiken in eine Mehrzahl an Anweisungen zum Ausführen durch die beteiligten Geräte. Ferner kann der Steuerungslogikanalysator 220 die Steuerungslogikdatenbank 233 durchsuchen, um zu überprüfen, ob ein Konflikt zwischen der aktuellen Logik und den vorab in der Steuerungslogikdatenbank 233 gespeicherten Logiken vorliegt.
-
Insbesondere empfängt der Steuerungslogikzerleger 221 im Steuerungslogikanalysator 220 Steuerungslogiken von verschiedenen Quellen/Mitteln über eine Schnittstelle (nicht in den Abbildungen dargestellt) und bestimmt die beteiligten Geräte aus der Mehrzahl an Geräten. Die durch natürliche Sprachen definierten Steuerungslogiken werden in Anweisungen übersetzt, die der Steuerungsanweisungsausführer 232 ausführen kann. Der Steuerungslogikzerleger 221 geht die Steuerungslogik durch, findet die an dieser Steuerungslogik beteiligten Geräte und ihre zugehörigen Parameter in der Steuerungslogik und erzeugt dann eine überwachende (Sensor) oder steuernde (Steuerung) Anweisung für jedes der Geräte. Die Geräte können ein beliebiges beinhalten von: einer Klimaanlagensteuerung, einer elektrischen Fensterhebersteuerung, einer Sitzheizungssteuerung, eine Kamerasteuerung, eine Audio- und/oder Videowiedergabegerätsteuerung, ein Geschwindigkeitsmesser, eine Tankanzeige, ein Radar, ein GPS-Gerät, einen Lichtschalter, eine Stromquelle, einen Zeitgeber oder jedes beliebige andere in eine Steuerungsplattform integrierte Gerät.
-
Der Steuerungslogikzerleger 221 kann außerdem den Status des beteiligten Geräts überprüfen. Der Steuerungslogikzerleger 221 sendet Geräteanfragen an den Gerätemanager 231, um Statusberichte der Geräte zu erhalten. Der Steuerungslogikzerleger 221 bestimmt dann, ob das beteiligte Gerät bereit ist, d. h. ob das beteiligte Gerät aktiv oder inaktiv ist. Wenn die beteiligten Geräte nicht bereit sind, sendet der Steuerungslogikzerleger 221 einen Fehlerhinweis über die Schnittstelle an den Benutzer und lehnt die Steuerungslogik ab. Wenn die beteiligten Geräte bereit sind, zerlegt der Steuerungslogikzerleger 221 die Steuerungslogik in einen Satz an Steuerungsanweisungen zum Ausführen durch die beteiligten Geräte und sendet den Satz an Steuerungsanweisungen an den potenziellen Konfliktsucher 222 im Steuerungslogikanalysator 220. Der potenzielle Konfliktsucher 222 durchsucht dann die Steuerungslogikdatenbank 233 und überprüft, ob ein potenzieller Konflikt zwischen der aktuellen Steuerungslogik und den vorab in der Datenbank 233 gespeicherten Steuerungslogiken vorliegt. Wenn ein Konflikt vorliegt, meldet der potenzielle Kontliktsucher 222 den Konflikt an den Benutzer, dann kann die aktuelle Steuerungslogik unterbrochen werden und der Steuerungslogikanalysator 220 wartet auf die Entscheidung des Benutzers. Wenn kein Konflikt vorliegt, kann der potenzielle Konfliktsucher 222 die Steuerungsanweisungen an den Steuerungsanweisungsausführer 232 senden.
-
3 zeigt ein schematisches Ablaufdiagramm eines Steuerungslogikanalyseverfahrens 300 gemäß einer Ausführungsform der vorliegenden Anmeldung. In 301 wird eine Steuerungslogik empfangen, z. B. „den vorderen elektrischen Fensterheber öffnen, wenn die Geschwindigkeit unter 45 km/h ist”. In 302 werden die beteiligten Geräte herausgefunden, d. h. ein Geschwindigkeitsmesser (Sensor) und eine Fenstersteuerung (Steuerung). Der Status des Geschwindigkeitsmessers und der Fenstersteuerung werden in 303 überprüft. In 304 wird bestimmt, ob die zwei obengenannten Geräte bereit sind. Wenn sie nicht bereit sind, wird ein Fehlerhinweis an den Benutzer gesendet und die Steuerungslogik wird in 305 abgelehnt. Wenn die beteiligten Geräte bereit sind, wird in 306 ein Satz an Steuerungsanweisungen erzeugt, zum Beispiel kann die Steuerungslogik „den vorderen elektrischen Fensterheber öffnen, wenn die Geschwindigkeit unter 45 km/h ist” in den folgenden Satz an Steuerungsanweisungen zerlegt werden: 1) periodisches Ablesen des Geschwindigkeitsmessers (wie alle 10 Sekunden); 2) wenn Geschwindigkeit <= 45 km/h, fortfahren mit 3), ansonsten zurück zu 1); und 3) den Fensterheber anweisen, das vordere Fenster zu öffnen. In 307 wird der Satz an Steuerungsanweisungen zur weiteren Verarbeitung an den potenziellen Konfliktsucher weitergeleitet. In 308 durchsucht der potenzielle Konfliktsucher die existierende, in der Datenbank gespeicherte Steuerungslogik. In 309 wird bestimmt, ob ein Konflikt zwischen der aktuellen Steuerungslogik und der vorherigen in der Datenbank gespeicherten Steuerungslogik vorliegt. Wenn ein Konflikt vorliegt, zum Beispiel wenn die Datenbank bereits eine Steuerungslogik „alle Fenster schließen, wenn die Geschwindigkeit höher als 35 km/h ist” enthält, und diese der aktuellen Steuerungslogik widerspricht, dann wird in 310 ein Konflikthinweis an den Benutzer gemeldet, die aktuelle Steuerungslogik wird unterbrochen und es wird auf die Entscheidung des Benutzers gewartet. Wenn kein Konflikt vorliegt, fährt das Verfahren mit 311 fort und durchsucht die bestehenden Steuerungslogiken in der Datenbank auf Zusammenlegungsmöglichkeiten mit der aktuellen Steuerungslogik. In 312 wird bestimmt, ob die aktuelle Steuerungslogik mit den in der Datenbank gespeicherten Steuerungslogiken zusammengelegt werden kann. Wenn sie nicht zusammengelegt werden können, springt das Verfahren zu Schritt 315, in dem der Satz an in 306 erzeugten Steuerungsanweisungen an ein Steuerungszentrum gesendet wird. Wenn zusammengelegt werden kann, zum Beispiel wenn die Steuerungslogik „das vordere Fenster öffnen, wenn es nicht regnet” in der Datenbank gespeichert wurde, wird in 313 die in der Datenbank gespeicherte Steuerungslogik entfernt und die zusammengelegte Steuerungslogik lautet zum Beispiel „das vordere Fenster öffnen, wenn die Geschwindigkeit unter 45 km/h ist und es nicht regnet”. In 314 können die zusammengelegten Steuerungsanweisungen erzeugt werden, zum Beispiel 1) periodisches Ablesen des Geschwindigkeitsmessers (wie alle 10 Sekunden); 2) wenn Geschwindigkeit > 45 km/h, fortfahren mit 1); und 3) Ablesen des Umgebungsdetektors; 4) wenn es regnet, fortfahren mit 1); 5) Anweisen der Fenstersteuerung, das vordere Fenster zu öffnen. In 315 wird der Satz an in 314 erzeugten Steuerungsanweisungen an ein Steuerungszentrum gesendet. Für Fachleute ist ersichtlich, dass 311~314 nicht notwendig sind.
-
4 zeigt ein schematisches Ablaufdiagramm eines Steuerungslogikanalyseverfahrens 400 gemäß einer anderen Ausführungsform der vorliegenden Anmeldung. Das Steuerungslogikanalyseverfahren 400 wird in einer Steuerungsplattform ausgeführt, die in einer Büroumgebung verwendet wird. In einem derartigen Verfahren können Steuerungslogiken durch einen Administrator eingegeben werden. Der Steuerungslogikanalysator zerlegt und analysiert die Steuerungslogik und sendet Steuerungsanweisungen an die Büroausrüstungssteuerung. Die Büroausrüstungssteuerung überwacht die Büroausrüstung und führt entsprechend Steuerungsanweisungen aus.
-
Mit Bezugnahme auf 4 empfängt der Steuerungslogikanalysator in 401 eine Steuerungslogik, zum Beispiel „alle Klimaanlagen und Lichter (außer Notfallbeleuchtung) abschalten, wenn alle Mitarbeiter das Büro nach 19:00 Uhr verlassen”. In 402 können die beteiligten Geräte herausgefunden werden, zum Beispiel können sie einen Zeitgeber (Sensor), einen Menschenanwesenheitsdetektor (Sensor), Klimaanlagensteuerungen und Lichtschalter beinhalten. In 403 überprüft der Steuerungslogikanalysator den Status der beteiligten Geräte mit dem Gerätemanager 231, um in 404 zu bestimmen, ob die beteiligten Geräte bereit sind. Wenn die beteiligten Geräte nicht bereit sind, fährt das Verfahren mit 405 fort. In 405 wird die Steuerungslogik abgelehnt. Wenn die beteiligten Geräte bereit sind, werden in 406 Steuerungsanweisungen erzeugt als: 1) periodisches Überprüfen des Zeitgebers; 2) wenn aktuelle Zeit <= 19:00 Uhr, dann fortfahren mit 4); 3) periodisches Überprüfen des Menschenanwesenheitsdetektors; 4) wenn Menschen im Büro erkannt werden, fortfahren mit 3); und 5) Abschalten von Klimaanlagen und allen Lichtern (außer Notfallbeleuchtung) im Büro. In 407 wird bestimmt, ob ein Konflikt zwischen der aktuellen Steuerungslogik und den vorherigen in der Datenbank 233 gespeicherten Steuerungslogiken vorliegt. Wenn ein Konflikt vorliegt, fährt das Verfahren mit 405 fort. In 405 wird die aktuelle Steuerungslogik abgelehnt. Wenn kein Konflikt vorliegt, fährt das Verfahren mit 408 fort. In 408 werden die in 406 erzeugten Steuerungsanweisungen zur Ausführung an den Steuerungsanweisungsausführer 232 gesendet.
-
Für Fachleute ist ersichtlich, dass die verschiedenen beispielhaften in Verbindung mit den hierin offenbarten Ausführungsformen beschriebenen logischen Blöcke, Module und Schritte als elektronische Hardware, Computersoftware oder Kombinationen von beiden implementiert sein können. Um diese Austauschbarkeit von Hardware und Software deutlich darzustellen, wurden verschiedene beispielhafte Komponenten, Blöcke, Module und Schritte oben in Bezug auf ihre Funktionalität allgemein beschrieben. Ob eine derartige Funktionalität als Hardware oder Software implementiert wird, hängt von der jeweiligen Anwendung und den dem Gesamtsystem auferlegten Einschränkungen ab. Fachleute können die beschriebene Funktionalität für jede bestimmte Anwendung auf verschiedene Arten implementieren, derartige Implementierungen sollten jedoch nicht als ein Abweichen vom Umfang der vorliegenden Erfindung verursachend ausgelegt werden.
-
Die verschiedenen beispielhaften in Verbindung mit den hierin offenbarten Ausführungsformen beschriebenen Logikblöcke können mit einem Allgemeinzweckprozessor, einem Digitalsignalprozessor (DSP), einer anwendungsspezifischen integrierten Schaltung (ASIC), einem feldprogrammierbaren Gate-Array (FPGA) oder anderen programmierbaren Logikgeräten, eigenständiger Gate- oder Transistorlogik, eigenständigen Hardware-Komponenten oder einer beliebigen Kombination davon, die entwickelt wurde, um die hierin beschriebenen Funktionen auszuführen, implementiert oder ausgeführt werden. Ein Allgemeinzweckprozessor kann ein Mikroprozessor sein, alternativ kann der Prozessor jedoch jede(r/s) beliebige(r) herkömmliche(r) Prozessor, Steuerung, Mikrosteuerung oder Zustandsmaschine sein.
-
Die in Verbindung mit den hierin offenbarten Ausführungsformen beschriebenen Schritte eines Verfahrens können direkt in Hardware, in einem durch einen Prozessor ausgeführten Softwaremodul oder in einer Kombination der beiden ausgeführt sein. Das Verfahren wird durch Software ausgeführt, die Software kann in einem Softwarespeicher (nicht dargestellt) in einer/-m geeigneten elektronischen Verarbeitungskomponente oder -system gespeichert sein. Die Software im Speicher kann ausführbare Anweisungen zum Implementieren logischer Funktionen beinhalten (d. h. „Logik”, die entweder in digitaler Form, wie Digitalschaltung oder Quellcode, oder in analoger Form, wie Analogschaltung oder einer Analogquelle, wie einem analogen elektrischen Signal, implementiert sein kann) und kann selektiv in einem beliebigen computerlesbaren Medium zur Verwendung durch oder in Verbindung mit einem/-r Anweisungsausführsystem, -vorrichtung oder -gerät ausgeführt sein. Das computerlesbare Medium kann selektiv zum Beispiel ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -gerät, wie RAM, ROM, EPROM usw. sein, wobei diese Aufzählung nicht abschließend ist.
-
Ferner ist die obige Beschreibung der offenbarten Ausführungsformen bereitgestellt, um es Fachleuten zu ermöglichen, die vorliegende Erfindung herzustellen oder zu verwenden. Verschiedene Modifikationen dieser Ausführungsformen sind für Fachleute ersichtlich und allgemeine hierin definierte Grundsätze können auf andere Ausführungsformen angewendet werden, ohne vom Geist oder Umfang der Erfindung abzuweichen. Demnach ist nicht angedacht, dass die vorliegende Erfindung auf die hierin dargestellten Ausführungsformen beschränkt ist, sondern ihr soll der weiteste mit den hierin offenbarten Grundlagen und neuartigen Merkmalen übereinstimmende Umfang zugeschrieben werden.