Aktualizacja 1.8.9 wprowadziła funkcjonalność umożliwiającą tworzenie połączeń między modułami Base, w których jeden moduł pełni rolę nadrzędną, a drugi rolę podrzędną (połączenia master–slave). Miejscem zastosowania tego typu połączeń są instalacje, gdzie pracują co najmniej dwa moduły DOMIQ/Base i niezbędne jest sterowanie nimi z użyciem wspólnego interfejsu użytkownika.
1. Właściwości połączeń master-slave #
- Moduł nadrzędny ma dostęp do stanu wszystkich urządzeń i zmiennych dostępnych w module podrzędnym.
- Moduł nadrzędny otrzymuje informacje o zmianach stanu w module podrzędnym.
- Moduł nadrzędny ma dostęp do funkcji w zakładce Logika modułu podrzędnego.
- Moduł nadrzędny może wysyłać dowolne komendy do modułu podrzędnego.
- Jeden moduł Base może pełnić rolę nadrzędną dla kilku modułów Base.
- Moduł Base pracujący jako moduł nadrzędny może być jednocześnie modułem podrzędnym względem innego modułu Base. Jednakże zmiany stanu są przekazywane wyłącznie o jeden poziom w górę hierarchii. Przykład: przyjmijmy, że w instalacji są trzy moduły Base o nazwach kolejno: Base1, Base2 oraz Base3. Moduł Base2 jest nadrzędny względem modułu Base1 i jednocześnie podrzędny względem modułu Base3. W takiej konfiguracji moduł Base3 otrzyma wyłącznie informacje o zmianach stanu zmiennych i urządzeń podłączonych do modułu Base2. Zmiany stanu pochodzące z modułu Base1, wynikające z istnienia połączenia master-slave pomiędzy modułami Base1 i Base2 zostaną w takim przypadku odfiltrowane i nie trafią do modułu Base3.
- Moduł nadrzędny wykona automatyczną synchronizację stanu przypisanego modułu podrzędnego w przypadku, gdy moduł nadrzędny zostanie zrestartowany lub podłączony ponownie do sieci LAN po przerwie dłuższej niż 30s.
- Analogicznie, moduł nadrzędny wykona automatyczną synchronizację stanu przypisanego modułu podrzędnego w przypadku, gdy moduł podrzędny zostanie zrestartowany lub podłączony ponownie do sieci LAN po przerwie dłuższej niż 30s.
- W przypadku odłączenia od sieci LAN na okresy krótsze niż 30s, synchronizacja stanu nastąpi po pierwszej zmianie stanu w module podrzędnym.
- Nie należy tworzyć w module nadrzędnym zdarzeń, które wyzwalane są przez moduł podrzędny zmianami stanu na wartość 0. W przypadku takich zdarzeń będzie dochodzić do ich fałszywego wyzwalania w czasie restartu modułu podrzędnego, gdyż wówczas następuje tymczasowe wyzerowanie stanu.
Dzięki powyższym właściwościom możliwe staje się utworzenie jednego wspólnego interfejsu użytkownika (wizualizacji i/lub menu Remote) dla wszystkich modułów Base pracujących w danej instalacji. Ponadto moduł nadrzędny może wysyłać komendy do modułów podrzędnych w reakcji na zdarzenia, jako efekt działania timera, funkcji w Logice itd. Uogólniając, połączenia master–slave umożliwiają sterowanie modułem podrzędnym w sposób taki, jak gdyby wszystko odbywało się w obrębie jednego modułu Base.
2. Konfiguracja połączenia #
Połączenia definiowane są w konfiguratorze modułu Base, w zakładce Łącza. Połączenie należy zdefiniować po obu jego stronach, czyli w module Base, który ma pełnić rolę nadrzędną i w tym, który ma być modułem podrzędnym. Procedura jest następująca:
Moduł nadrzędny
- Dodaj połączenie z modułem podrzędnym poprzez kliknięcie przycisku Dodaj slave.
- W polu Nazwa wpisz nazwę połączenia. Nazwa może składać się wyłącznie z liter od a do z (również wielkich), cyfr oraz znaku podkreślenia. W nazwie nie wolno używać polskich znaków. Nazwa połączenia musi być koniecznie identyczna po obu jego stronach.
- W polu Adres należy wpisać adres IP podrzędnego modułu Base.
- Pozostałe pola są opcjonalne:
- W polu Opis możesz wpisać pomocniczy opis połączenia.
- W polu Port wpisz numer portu, który będzie używany do nawiązania połączenia. To pole należy modyfikować tylko, gdy jest to uzasadnione np. wynika ze specyficznych ustawień sieci lokalnej.
- W polu Hasło możesz wpisać hasło, jeżeli chcesz, aby komunikacja była szyfrowana. Z uwagi na fakt, że moduły biorące udział w połączeniu pracują w tej samej sieci LAN szyfrowanie można pominąć. Szyfrowanie nieco spowalnia komunikację między modułami Base.
- Zapisz zakładkę Łącza.
Moduł podrzędny
Konfiguracja w przypadku modułu podrzędnego jest analogiczna.
- Dodaj połączenie z modułem nadrzędnym klikając przycisk Dodaj master.
- W polu Adres wpisz adres IP modułu nadrzędnego.
- Pozostałe czynności należy wykonać identycznie, jak dla modułu nadrzędnego.
3. Użytkowanie #
Po skonfigurowaniu połączenia moduł nadrzędny automatycznie pobierze stan modułu podrzędnego. Wszystkie identyfikatory modułu podrzędnego będą widoczne w stanie modułu nadrzędnego z następującym prefiksem: MNT.<nazwa_połączenia>
. Dalszą część będzie stanowić już zasadniczy identyfikator. Załóżmy, że utworzone połączenie ma nazwę biuro_produkcja (tę nazwę będziemy używać we wszystkich przykładach). Wówczas cały stan modułu podrzędnego będzie widoczny z prefiksem MNT.biuro_produkcja.<identyfikator>
. Gdy stan modułu podrzędnego jest widoczny w module nadrzędnym, można nim sterować, tak samo, jak wszystkimi innymi urządzeniami i zmiennymi, które są dostępne lokalnie w module nadrzędnym. Przestudiuj przykłady (konfiguracja wykonywana jest po stronie modułu nadrzędnego):
- Ściemniacz w Remote – Załóżmy, że chcemy sterować ściemniaczem podłączonym do podrzędnego modułu Base. Identyfikator ściemniacza w module podrzędnym to:
LCN.output.0.10.1
. Zatem w polu Kanał należy wpisać:MNT.biuro_produkcja.LCN.output.0.10.1
. - Światło na wizualizacji – W tym przypadku załóżmy sterowanie tym samym wyjściem, jak w poprzednim przykładzie. W polu Kanał elementu Światło należy wpisać:
MNT.biuro_produkcja.LCN.output.0.10.1
- Komenda do modułu podrzędnego jako akcja w zdarzeniu – Załóżmy, że komenda ma być wysłana do podrzędnego modułu Base jako reakcja na wywołanie zdarzenia w module nadrzędnym. Komendą jest przełączenie przekaźnika w module LCN. Po skonfigurowaniu warunków wyzwolenia zdarzenia, w sekcji Akcje należy kliknąć na przycisk Dodaj komendę…, a następnie w polu Nazwa wpisz:
C.MNT.biuro_produkcja.LCN.relay.0.10.2
, natomiast w polu Wartość wpisz:toggle
. Analogicznie można skonfigurować akcję, która wykona się jako efekt wywołania timera. - Wywołanie zdarzenia – Zmiana stanu w module podrzędnym może być powodem wywołania zdarzenia w module nadrzędnym. Załóżmy, że obserwowaną zmiana stanu jest uzbrojenie strefy alarmowej nr 1 w module podrzędnym.
Kanał:E.MNT.biuro_produkcja.IDS.armed.1
Dane: 1
W sekcji Akcje można zdefiniować dowolną reakcję na to zdarzenie. - Wywołanie funkcji z zakładki Logika – Moduł nadrzędny może wywołać funkcję zawartą w zakładce Logika modułu podrzędnego. Funkcja może być wywołana jako efekt każdego z powyżej opisanych przypadków. My opiszemy wywołanie funkcji jako efekt wystąpienia zdarzenia.
Po skonfigurowaniu warunków wywołania zdarzenia, w sekcji Akcje należy kliknąć przycisk Dodaj komendę… . W polu Nazwa wpisz:C.MNT.biuro_produkcja.LOGIC
, natomiast w polu Wartość wpisz nazwę funkcji, którą chcesz wywołać i opcjonalnie przekaż do niej argumenty, np.mojafunkcja(argument1, argument2)
.