-
Die Erfindung betrifft Fernsteuerungssysteme mit einer
Zentralsteuerung (Master) und mehreren Fernmodulen (Slaves), die
auf Anweisungen der Steuerung ansprechen.
-
Systeme dieser Art werden beispielsweise zur Steuerung der
Beleuchtung, Heizung oder Ventilierung großer Gebäude verwendet.
In derartigen Systemen kann die Steuerung Statusanfragen an alle
Fernmodule im Gebäude senden und kann von diesen Modulen als
Antwort Daten empfangen, die den Status der Systeme betreffen,
welche die Module steuern, beispielsweise ob eine Beleuchtung oder
ein Licht ein- oder ausgeschaltet ist. Die Steuerung kann dann an
die speziellen Module Anweisungen oder Befehle aussenden, um
diese zu veranlassen, das oder die jeweiligen Geräte (Leuchten,
Lampen), mit denen sie verbunden sind, in einer gewünschten Weise zu ·.
steuern.
-
Bei existierenden Fernsteuerungssystemen, wie bei dem
beispielsweise in der GB-A-2180472 beschriebenen System, sind
sämtliche Module typischerweise mit einem Bus verbunden, längs dem
die Anweisungen oder Befehle weitergeleitet werden. Jeder Modul
hat eine eindeutige Adresse, und jeder Anweisung für einen Modul
ist eine Adresse zugeordnet, die den Modul identifiziert, für den
diese Anweisung gedacht ist. Wird ein derartiges System
installiert, ist es erforderlich, jeden Modul mit seiner eindeutigen
Adresse vorzuprogrammieren, um eine gewisse Kenntnis darüber zu
haben, wo dieser Modul installiert worden ist.
-
Bei einer anderen bekannten Systemform sind Module in
einem Ring miteinander verbunden und ein Token wird von Modul zu
Modul weitergereicht. Wird das Token von einem Modul gehalten,
kann die Steuerung eine Statusanfrage zu diesem Modul senden, und
die betreffenden Statusdaten können zur Steuerung zurückgesendet
werden. Eine Anweisung kann dann zu diesem Modul gesendet werden,
wenn es erwünscht ist, den abgefragten Status zu ändern.
-
Bei einem bevorzugten Ausführungsbeispiel der Erfindung
sind alle Module mit der Steuerung in Reihe geschaltet, und ein
Datenpaket, einschließlich Anweisungen für Module, wird durch
jeden Modul in Folge weitergeleitet. Ein Teil des Datenpakets
enthält einen Modulzähler, der inkrementiert wird, wenn das Paket
durch jeden Modul geleitet wird. Durch Überprüfen des Zustands
des Modulzählers ist ein Modul in der Lage, seinen Platz (seine
Adresse) in der Modulschleife abzuleiten, und der Modul kann auf
diese Weise bestimmen, ob eine in dem Datenpaket enthaltene
Anweisung für diesen besonderen Modul gedacht ist.
-
Die Erfindung ist in den angehängten Ansprüchen definiert,
auf die Bezug genommen werden sollte.
-
Ein bevorzugtes Ausführungsbeispiel der Erfindung wird
nachstehend im einzelnen beispielshalber unter Bezugnahme auf
beigefügte Zeichnungen beschrieben. Es zeigen:
-
Fig. 1 ein schematisches Blockschaltbild einer Steuerung
und zugehöriger Fernmodule;
-
Fig. 2 ein Blockschaltbild eines Moduls einer Art, wie sie
in Fig. 1 verwendet wird.
-
Fig. 1 veranschaulicht, wie eine Vielzahl Module 2 in
Reihe mit einer Steuerung 4 in eine Schleife geschaltet sind. Jeder
Modul und die Steuerung haben einen Serieneingang und einen
Serienausgang. Ein von der Steuerung erzeugtes Datenpaket gelangt
von seinem Serienausgang zum Serieneingang des ersten Moduls in
der Schleife. Das Datum oder die Daten laufen durch den Modul,
und zwar jeweils ein Byte zu einer Zeit, und sind dann am Ausgang
des Moduls verfügbar. Es tritt aber zwischen dem Eingang und
Ausgang eine Verzögerung auf, beispielsweise eine Verzögerung von 3
Bits. Dies bedeutet, daß das vordere Ende eines Datenpakets einen
Modul bereits verlassen hat, bevor das Datenpaketende in diesen
Modul eingetreten ist. Sobald ein Datenpaket durch alle Module in
der Schleife gelaufen ist, kehrt es zur Steuerung 4 zurück.
-
Die Zeit, die der Kopf eines Datenpakets benötigt, um rund
um einen Ring aus Modulen zu laufen, ist gleich
(Modulverzöge
rung)
· (Modulanzahl), d.h., bei 9600 Baud mit einer
3-Bit-Modulverzögerung läuft der Kopf eines Datenpakets rund um den Ring in
etwa 18 Millisekunden. Das Datenpaket (auch als Notizblock
bekannt), das von der Steuerung ausgesendet wird, enthält drei
Hauptabschnitte. Diese sind ein Anweisungsabschnitt, ein
Modulzähler und ein Adreß- und Datenabschnitt. Das gesamte Paket wird
durch einen Ende-Code abgeschlossen.
-
Wenn der Notizblock den ersten Modul in der Schleife
erreicht, wird der Modulzähler inkrementiert. Der
Anweisungsabschnitt wird dann decodiert, und es wird auf ihn eingewirkt,
falls er an die Modulnummer gerichtet ist, die durch den
laufenden Wert des Modulzählers angegeben wird. Die Anweisung kann
beispielsweise eine Anweisung zum Einschalten einer einzigen Lampe
oder einer Gruppe von Lampen sein, d.h. all diejenigen zwischen
Modulen 1 und 8. Alternativ kann es sich um eine Statusanfrage an
die Module handeln, die verursacht, daß der Status jedes Moduls
der Reihe nach in den Adreß- und Datenabschnitt des Notizblocks
geschrieben wird, falls eine Änderung im Modulstatus aufgetreten
ist. Wenn somit der Notizblock rund um die Schleife läuft, nimmt
der Adreß- und Datenabschnitt größenmäßig zu, wenn mehr
Information in ihn geschrieben wird.
-
Fig. 2 zeigt ein Blockschaltbild eines Moduls, und sein
Betrieb kann in bezug auf dieses Blockschaltbild besser erläutert
werden. Der Modul enthält einen Eingang 6 zum Empfangen von
Datenpaketen, die durch andere Module in der Kette gelaufen sind
und die ursprünglich von der Steuerung erzeugt worden sind. Jedes
Paket läuft durch einen Verteiler, der das Modulzählerdatum an
einen Zählerinkrementierer 8 sendet. Der Verteiler sendet den
Anweisungsabschnitt des Notizblocks an einen Anweisungsdecodierer
10 und den Adreß- und Datenabschnitt an einen Statusdecodierer
12.
-
Der Zählerinkrementierer 8 hat seinen Ausgang mit dem
Anweisungsdecodierer 10 und dem Statusdecodierer 12 verbunden. Dem
Anweisungsdecodierer und dem Statusdecodierer steht daher der
laufende Wert des Modulzählers zur Verfügung.
-
Der Anweisungsdecodierer 10 decodiert den
Anweisungsabschnitt des Notizblocks. Bei einem Beleuchtungs- oder
Lampensteuerungssystem kann diese Anweisung beispielsweise bedeuten,
daß Lampen einzuschalten sind. Der Datenteil des Adreß- und
Datenabschnitts des Notizblocks enthält Information bezüglich der
einzuschaltenden Lampen. Durch Vergleichen der Adressen der
einzuschaltenden Lampen mit der derzeitigen oder laufenden
Moduladresse kann der Anweisungsdecodierer berechnen, ob durch diesen
besonderen Modul auf die Anweisung eingewirkt werden soll oder
nicht. Soll dies der Fall sein, wird die relevante Anweisung zur
Steuereinheit 14 geschickt, die die Anweisung implementiert.
-
Handelt es sich bei der Anweisung um eine Statusanfrage,
sendet der Anweisungsdecodierer ein Freigabesignal an den
Statusdecodierer 12, der von der Steuereinheit Daten bezüglich ihres
Status erhält. Der Statusdecodierer empfängt auch den laufenden
Wert des Modulzählers und den Adreß- und Datenabschnitt des
Notizblocks. Der Statusdecodierer schreibt in den Adreß- und
Datenabschnitt die laufende Moduladresse und den Status des Geräts,
das gesteuert werden soll. Dies geschieht normalerweise nur dann,
wenn seit der letzten Anfrage eine Änderung im Status aufgetreten
ist. Bei dem Umlauf des Notizblocks rund um den Ring nimmt der
Adreß- und Datenabschnitt des Notizblocks größenmäßig zu.
-
Der laufende Wert des Modulzählers, die Anweisung und der
Adreß- und Datenabschnitt werden in einem Zusammensetzer 16
wieder zusammengesetzt und laufen dann über einen Ausgang zum
nächsten Modul in der Kette.
-
Jeder Modul kann durch eine herkömmliche Gate-Array
(Gatterfeld) auf einem einzigen Chip implementiert werden. Alternativ
kann man für einen intelligenteren Modul einen Mikroprozessor
verwenden.
-
Aus der obigen Beschreibung geht hervor, daß beim Gebrauch
jeder Modul in der Lage ist, seine Adresse (den Modulzählerwert)
anhand seiner Position im Ring auszuarbeiten, d.h., das Datum,
das beim Ring ankommt, enthält einen Modulzähler, den dieser
Mo
dul benutzt, um seine eigene Adresse abzuleiten. Es besteht
deshalb keine Notwendigkeit, in einem Modul irgendeine eindeutige
Adresse vorzuprogrammieren, und, wenn Module in einem
Gebäudeverwaltungssystem, beispielsweise Beleuchtungssteuerungssystem,
installiert werden, können identische Module an jedem Platz
installiert werden.
-
Im derzeitigen System ist ein Schalter-Status-Notizblock
10 Byte lang und wird rund um den Ring mit 9600 Baud bei einer
Verzögerung vom 3 Bit pro Modul übertragen. Der Notizblock
enthält eine Rücksetzsequenz, Köpfe, den Modulzähler und die Umkehr
jedes Byte zur Fehlerüberprüfung.
-
Damit ein Modul einen Schalterstatus am Ende eines
Notizblocks hinzufügen kann, wenn dieser durch einen Modul läuft,
verändert er zunächst das Notizblockende-Byte in ein Fortsetz-Byte.
Er fügt dann ein Modulnummer-Byte an Statusinformation und ein
neues Notizblockende-Byte hinzu. Dies bedeutet, daß drei Bytes
und ihre Umkehrungen für jeden Modul hinzugefügt werden, der eine
Statusänderung hat.
-
Wenn somit zwei Module eine Änderung des Status in einem
60-Modul-Ring haben, kommen 12 Bytes zum Notizblock hinzu, so daß
er 22 Bytes lang wird. Dies bedeutet, daß die Zeit, die der
Notizblock benötigt, um rund um den Ring zu laufen, bei einer
Verzögerung von 3 Bits pro Modul etwa gleich 18 + 22 = 40
Millisekunden beträgt.
-
Wenn der Notizblock von der Steuerung wieder empfangen
wird, kann ein Schalter-Notizblock erzeugt werden, um die zu
schaltenden Lampen zu steuern. Der resultierende Notizblock hat
eine Länge von 10 Bytes plus 4 Bytes für jeden zu adressierenden
Modul. Wenn 6 Module benötigt werden, um die Lampen ein- oder
auszuschalten, würde dies einen 34-Byte-Notizblock erforderlich
machen, der etwa 34 Millisekunden benötigen würde, um rund um den
Ring zu laufen. Die Gesamtzeit vom Drücken eines Schalters bis
zum Einschalten der Lampe würde deshalb etwa 75 Millisekunden
betragen. In der Praxis ist diese Zeit jedoch länger, da
Verzöge
rungen zu berücksichtigen sind, die die Immunität gegenüber
Schaltrauschen usw. verbessern sollen.
-
Liegt im System eine geringe Aktivität vor, dann kann,
wenn es einen Status-Notizblock empfangen hat, der eine Änderung
des Status von einem oder mehreren der Module anzeigt, die
Steuerung einen Befehlsnotizblock ausgeben, der diese Module
auffordert, ihren Status zu verifizieren. Dies könnte zehn oder zwanzig
Mal geschehen, und dennoch könnte das System sehr leicht
innerhalb von 200 Millisekunden ansprechen. Dies ist eine Überprüfung
des empfangenen Status.
-
Das oben beschriebene System ist somit selbstadressierend.
Dies bedeutet, daß keine Notwendigkeit besteht, irgendeinen Modul
mit einer eindeutigen Adresse vorzuprogrammieren. Jeder Modul
leitet seine eigene Adresse aus seiner Position im Ring ab, wie
es durch den Modulzähler festgelegt wird, der in einem rund um
den Ring laufenden Datenpaket enthalten ist.