Das Update 1.8.9 hat eine Funktion eingeführt, die das Erstellen von Verbindungen zwischen Base-Modulen ermöglicht, bei denen ein Modul die übergeordnete Rolle (Master) und das andere die untergeordnete Rolle (Slave) übernimmt (Master-Slave-Verbindungen). Ein Anwendungsfall für diese Art von Verbindungen sind Installationen, in denen mindestens zwei DOMIQ/Base-Module arbeiten und deren Steuerung über eine gemeinsame Benutzeroberfläche erfolgen muss.
1. Eigenschaften der Master-Slave-Verbindungen #
- Das übergeordnete Modul hat Zugriff auf den Status aller Geräte und Variablen, die im untergeordneten Modul verfügbar sind.
- Das übergeordnete Modul erhält Informationen über Statusänderungen im untergeordneten Modul.
- Das übergeordnete Modul hat Zugriff auf die Funktionen im Logik-Tab des untergeordneten Moduls.
- Das übergeordnete Modul kann beliebige Kommandos an das untergeordnete Modul senden.
- Ein Base-Modul kann als Master für mehrere Base-Module fungieren.
- Ein Base-Modul, das als übergeordnetes Modul arbeitet, kann gleichzeitig ein untergeordnetes Modul eines anderen Base-Moduls sein. Allerdings werden Statusänderungen nur eine Ebene in der Hierarchie nach oben weitergegeben. Beispiel: Angenommen, es gibt in der Installation drei Base-Module mit den Namen Base1, Base2 und Base3. Das Modul Base2 ist Master gegenüber Base1 und gleichzeitig Slave gegenüber Base3. In einer solchen Konfiguration erhält Base3 ausschließlich Informationen über Statusänderungen von Variablen und Geräten, die an Base2 angeschlossen sind. Statusänderungen, die von Base1 stammen und auf eine bestehende Master-Slave-Verbindung zwischen Base1 und Base2 zurückgehen, werden in diesem Fall herausgefiltert und gelangen nicht zu Base3.
- Das übergeordnete Modul führt eine automatische Synchronisierung des Status des zugeordneten untergeordneten Moduls durch, falls das übergeordnete Modul neu gestartet oder nach einer Unterbrechung von mehr als 30 Sekunden erneut mit dem LAN verbunden wird.
- Analog dazu führt das übergeordnete Modul eine automatische Synchronisierung des Status des zugeordneten untergeordneten Moduls durch, falls das untergeordnete Modul neu gestartet oder nach einer Unterbrechung von mehr als 30 Sekunden erneut mit dem LAN verbunden wird.
- Bei einer Trennung vom LAN für weniger als 30 Sekunden erfolgt die Statussynchronisation nach der ersten Statusänderung im untergeordneten Modul.
- Im übergeordneten Modul sollten keine Ereignisse erstellt werden, die durch Statusänderungen auf den Wert 0 im untergeordneten Modul ausgelöst werden. In solchen Fällen kann es zu Fehl-Auslösungen während des Neustarts des untergeordneten Moduls kommen, da zu diesem Zeitpunkt eine temporäre Nullstellung des Status erfolgt.
Dank der oben genannten Eigenschaften ist es möglich, eine gemeinsame Benutzeroberfläche (Visualisierung und/oder Remote-Menü) für alle Base-Module in der Installation zu erstellen. Darüber hinaus kann das übergeordnete Modul Kommandos an die untergeordneten Module als Reaktion auf Ereignisse, als Ergebnis von Timern, Funktionen in der Logik usw. senden. Zusammengefasst ermöglichen Master-Slave-Verbindungen die Steuerung des untergeordneten Moduls, als ob alles innerhalb eines einzigen Base-Moduls stattfinden würde.
2. Konfiguration der Verbindung #
Die Verbindungen werden im Konfigurator des Base-Moduls im Tab „Links“ definiert. Die Verbindung muss auf beiden Seiten definiert werden, also sowohl im Base-Modul, das die Rolle des Masters übernimmt, als auch in dem, das das Slave-Modul sein soll. Die Vorgehensweise ist wie folgt:
Hauptmodul
- Füge eine Verbindung mit dem Slave-Modul hinzu, indem du auf die Schaltfläche „Slave hinzufügen“ klickst.
- Im Feld Name trage den Namen der Verbindung ein. Der Name darf nur aus Buchstaben von a bis z (auch Großbuchstaben), Ziffern und dem Unterstrich bestehen. Polnische Zeichen dürfen nicht verwendet werden. Der Verbindungsname muss auf beiden Seiten identisch sein.
- Im Feld Adresse gib die IP-Adresse des untergeordneten Base-Moduls ein.
- Die restlichen Felder sind optional:
- Im Feld Beschreibung kannst du eine Hilfsbeschreibung der Verbindung eintragen.
- Im Feld Port trage die Portnummer ein, die für die Verbindung verwendet werden soll. Dieses Feld sollte nur geändert werden, wenn dies z.B. aufgrund spezifischer Einstellungen des lokalen Netzwerks erforderlich ist.
- Im Feld Passwort kannst du ein Passwort eintragen, wenn du möchtest, dass die Kommunikation verschlüsselt ist. Da die Module in der gleichen LAN arbeiten, kann die Verschlüsselung weggelassen werden. Die Verschlüsselung verlangsamt die Kommunikation zwischen den Base-Modulen etwas.
- Speichere den Tab „Links“.
Das untergeordnete Modul:
Die Konfiguration im Fall des Slave-Moduls ist analog.
- Füge eine Verbindung mit dem Master-Modul hinzu, indem du auf die Schaltfläche „Master hinzufügen“ klickst.
- Im Feld Adresse geben Sie die IP-Adresse des Hauptmoduls ein.
- Die weiteren Schritte sind identisch wie beim Master-Modul.
3. Verwendung #
Nach der Konfiguration der Verbindung übernimmt das Master-Modul automatisch den Status des Slave-Moduls. Alle Identifikatoren des Slave-Moduls sind im Status des Masters mit folgendem Präfix sichtbar: MNT.MNT.<nazwa_połączenia>. Der weitere Teil ist der eigentliche Identifikator. Angenommen, die erstellte Verbindung heißt biuro_produkcja (diesen Namen verwenden wir in allen Beispielen). Dann ist der gesamte Status des Slave-Moduls unter dem Präfix MNT.biuro_produkcja.<identyfikator>. Ist der Status des Slave-Moduls im Master sichtbar, kann er genauso gesteuert werden wie alle anderen Geräte und Variablen, die im Master lokal verfügbar sind. Siehe die Beispiele (Konfiguration erfolgt im Master-Modul):
- Dimmer in Remote: Angenommen, wir wollen einen Dimmer steuern, der am Slave-Base-Modul angeschlossen ist. Der Identifikator des Dimmers im Slave-Modul lautet:
LCN.output.0.10.1. Im Feld Kanal ist daher einzugeben:MNT.biuro_produkcja.LCN.output.0.10.1. - Licht in der Visualisierung: Hier nehmen wir an, dass die Steuerung für denselben Ausgang wie im vorherigen Beispiel erfolgt. Im Feld Kanal des Elements Licht ist einzugeben:
MNT.biuro_produkcja.LCN.output.0.10.1 - Kommando an das Slave-Modul als Aktion im Ereignis: Angenommen, das Kommando soll an das Slave-Modul als Reaktion auf ein Ereignis im Master-Modul gesendet werden. Das Kommando ist das Umschalten eines Relais im LCN-Modul. Nach der Konfiguration der Ereignis-Auslösebedingungen klicke in der Sektion Aktionen auf die Schaltfläche „Kommando hinzufügen…“ und trage im Feld Name ein:
C.MNT.biuro_produkcja.LCN.relay.0.10.2, im Feld Wert:toggle. Analog kann eine Aktion als Timer-Effekt konfiguriert werden. - Ereignisauslösung: Eine Statusänderung im Slave-Modul kann Grund für die Auslösung eines Ereignisses im Master-Modul sein. Angenommen, die beobachtete Statusänderung ist das Scharfschalten der Alarmzone Nr. 1 im Slave-Modul.
Kanal:E.MNT.biuro_produkcja.IDS.armed.1
Daten: 1
In der Sektion Aktionen kann eine beliebige Reaktion auf dieses Ereignis definiert werden. - Aufruf einer Funktion aus dem Logik-Tab: Das Master-Modul kann eine Funktion aus dem Logik-Tab des Slave-Moduls aufrufen. Die Funktion kann als Effekt jedes der oben beschriebenen Fälle aufgerufen werden. Wir beschreiben den Aufruf der Funktion als Ergebnis eines Ereignisses.
Nach der Konfiguration der Ereignis-Auslösebedingungen klicke in der Sektion Aktionen auf die Schaltfläche „Kommando hinzufügen…“. Im Feld Name trage ein:C.MNT.biuro_produkcja.LOGIC, im Feld Wert: den Namen der Funktion, die du aufrufen möchtest, und optional übergib Argumente, z.B.mojafunkcja(argument1, argument2)