Zakładka Zdarzenia przeznaczona jest to definiowania reguł logicznych, które mają być wykonywane
przez moduł Base. Można o nich myśleć, jak o rodzaju makr, które definiują reguły zachowania systemu w
reakcji na warunki, które zainstniały. W dalszej części rozdziału będziemy je nazywać zdarzeniami. Kluczowe jest dobre zrozumienie koncepcji tu przedstawionych, dlatego jeżeli coś wydaje Ci się niezrozumiałe,
poświęć temu więcej czasu, będzie to czas dobrze zainwestowany.
O zdarzeniach możesz myśleć w następujący sposób: JEŻELI TO, WTEDY ZRÓB TAMTO.
Pierwsza część wyrażenia – JEŻELI TO, oznacza przyczynę, czyli coś wydarzyło się w systemie, na co
ma on zareagować w określony sposób. W tej części definicji zdarzenia można określić także dodatkowe
warunki, aby zdarzenie przeszło do fazy wykonania akcji.
Druga część wyrażenia – WTEDY ZRÓB TAMTO, to definicja akcji, jakie mają być wykonane przez system
DOMIQ w reakcji na wystąpienie zdarzenia.
Przestudiuj poniższe przykłady, które w sposób opisowy przedstawiają koncepcję:
- Jeżeli została naruszona czujka ruchu w korytarzu -> załącz oświetlenie w korytarzu.
- Powyższy przykład, ale rozszerzony o dodatkowy warunek: Jeżeli została naruszona
czujka ruchu w korytarzu i jest po zmroku -> załącz oświetlenie w korytarzu. - Jeszcze jedna wersja pierwszego przykładu: Jeżeli została naruszona czujka ruchu w korytarzu i jest uzbrojony jest alarm -> Włącz wszystkie światła, wyślij notyfikację na urządzenia mobilne, włącz nagrywanie w kamerach.
Zakładka Zdarzenia podzielona jest na trzy sekcje:
- Pasek przycisków;
- Struktura;
- Szczegóły;
- Akcje;
1. Pasek przycisków #
W górnej części okna znajduje się pasek z przyciskami.
- + Zdarzenie – Kliknij, aby dodać nowe zdarzenie.
- + Grupa – Kliknij, aby dodać nową grupę zdarzeń.
- Kopiuj – Kopiuje do schowka aktualnie zaznaczony element (zdarzenie lub grupę).
- Wklej – Wkleja zawartość schowka.
- Usuń – Kliknij, aby usunąć zaznaczone elementy.
- Importuj – Umożliwia zaimportowanie pliku .xml z konfiguracją.
- Eksportuj – Umożliwia zapis do pliku .xml bieżącej listy zdarzeń.
- Eksportuj zaznaczone – Umożliwia zapis do pliku jedynie elementów, które mają zaznaczone pole
wyboru. Częstą sytuacją jest powielanie danej funkcjonalności w kolejnych instalacjach. W ten sposób
możesz wyeksportować tylko część zdarzeń i użyć ich w innej lokalizacji. - Zapisz – Zapisuje bieżącą konfigurację w pamięci modułu Base.
- Przywróć – Wczytuje do drzewa struktury ostatnio zapisaną konfigurację.
2. Struktura #
W oknie Struktury wyświetlana jest lista zdarzeń. Lista ma budowę hierarchiczną, tak jak w przypadku zakładki Remote.
- Aby dodać nowe elementy użyj przycisków + Zdarzenie lub + Grupa. Jeżeli chcesz dodać element
wewnątrz grupy, wybierz ją z listy, a następnie użyj przycisków + Zdarzenie lub + Grupa. - Aby zmienić pozycję elementu w strukturze, przeciągnij wybrany element i upuść w nowym miejscu.
W ten sposób można również dodawać pojedyncze zdarzenia do grup. - Jeżeli element nie może być dodany w wybranym miejscu, wówczas zobaczysz czerwony znacznik.
Dla prawidłowych operacji znacznik ma kolor zielony. - W drzewie struktury obowiązują następujące zasady dotyczących hierarchii elementów:
- Na głównym poziomie można elementy obu rodzajów.
- Wewnątrz Grupy można dodać oba rodzaje elementów.
- Zdarzenia nie mogą mieć elementów zagnieżdzonych.
- Aby zmienić właściwości wybranego elementu, należy kliknąć na nim – jego atrybuty zostaną wyświetlone w oknie Szczegóły i Akcje (tylko zdarzenia).
- Aby usunąć element(y), należy zaznaczyć go przez kliknięcie w pole wyboru po prawej stronie etykiety, a następnie kliknąć przycisk Usuń lub klawisz backspace na klawiaturze. Jeśli usuwany element interfejsu ma zagnieżdżone elementy, wówczas one również zostaną usunięte.
- Aby skopiować element, kliknij na nim (po prawej stronie etykiety pojawi się znacznik błękitny prostokąt), a następnie kliknij przycisk Kopiuj lub kombinację klawiszy ctrl + c. Element został skopiowany i
znajduje się w schowku. - Aby wkleić skopiowany element, użyj przycisku Wklej lub skorzystaj ze skrótu klawiaturowego ctrl +v. Skopiowany element zostanie umieszczony w następującej lokalizacji:
- poniżej aktualnie wybranego elementu;
- na końcu listy, jeżeli zaznaczony jest element typu Grupa.
- Pole wyszukiwania pozwala na szybkie wyszukanie elementów w strukturze. Możliwe jest przeszukiwanie na podstawie: opisu, zawartości pola Kanał lub typu elementu.
Wpisując w pasku wyszkiwania: E.IDS.input, zostaną wyświetlone wszytkie kontrolki, które zawierają taką zawartość w polu Kanał. - Pole wyboru Zaznacz wszystko umożliwia szybkie zaznaczenie wszystkich elementów struktury. Jest
to szczególnie przydatne, kiedy chcesz szybko usunąć całą strukturę.
2.1. Grupa #
Grupa służy do łączenia w zbiory zdarzeń wykonujących funkcjonalność o podobnej tematyce. Np. zdarzenia dotyczące systemu alarmowego lub zdarzenia dotyczące wentylacji, itd. W ten sposób łatwiej
utrzymać porządek w strukturze zdarzeń.
Grupa może mieć przypisane warunki wykonania. Tworzą one iloczyn logiczny z warunkami poszczególnych zdarzeń. Jednakże warunki przypisane do grupy mają wyższy priorytet – są sprawdzane w pierwszej
kolejności. Jeżeli nie są one spełnione, wówczas nie zostanie wyzwolone żadne zdarzenie wewnątrz
grupy.
2.2. Zdarzenie #
Pojedyncza reguła logiczna.
3. Szczegóły #
Ta tabela służy do definowania atrybutów zdarzeń i grup. Na tym etapie wracamy do opisywanej wcześniej koncepcji: JEŻELI TO, WTEDY ZRÓB TAMTO. Okno Szczegóły służy do definiowania pierwszej
części wyrażenia, czyli JEŻELI TO.
- Aktywny – Odznacz, aby deaktywować zdarzenie. Nieaktywne elementy są wyświetlane w drzewie
struktury z przekreśloną etykietą. Domyślnie to pole jest zaznaczone. - Opis – Wprowadź tu zwięzły opis zdarzenia/grupy. Pole opcjonalne.
- Kanał (tylko zdarzenia) – WAŻNE! Zwróć uwagę na pomarańczowy kolor tła w polu Kanał oraz przypis
„Wymaga przedrostka C. lub E.”.
Czym jest przedrostek C. oraz przedrostek E.?
Przedrostek C. (ang. command) należy rozumieć jako „w reakcji na komendę”. Natomiast E. (ang.
event) jako „w reakcji na zmianę wartości (stanu) identyfikatora”.
To ważne rozróżnienie, gdyż nie wszystkie komendy pociągają za sobą modyfikację stanu.
Zatem w polu Kanał należy wpisać nazwę identyfikatora, którego zmiana stanu ma być obserwowana lub do którego została wysłana komenda.
Najlepiej zobrazuje to przykład:
- Kanał: C.IDS.armed.1
Dane: 1
Odebrano komendę uzbrojenia strefy nr 1 w systemie alarmowym. Moduł Base może
zareagować na to dowolną sekwencją akcji i mogą zostać one wykonane nawet zanim strefa alarmowa zostanie faktycznie uzbrojona. - Kanał: E.IDS.armed.1
Dane: 1
Strefa alarmowa nr została uzbrojona – fakt dokonany, stan strefy uległ zmianie. Na tą
zmianę stanu moduł Base może zareagować dowolną sekwencją akcji np. zgaszenie
świateł pozostawionych w domu, obniżenie temperatury ogrzewania itd.
W polu Kanał można użyć również wzorców dopasowania, dzięki którym stworzysz bardziej zaawansowane definicje zdarzeń. Więcej o tym przeczytasz w akapicie Wzorce w dalszej części rozdziału.
- Dane – W tym polu należy wpisać wartość (komendy lub aktualizacji stanu), na którą system ma zareagować. Obrazują to poniższe przykłady:
- System ma zareagować na włączenie przekaźnika – przyjmuje on wówczas wartość 1
Dane: 1 - System ma zareagować na osiągnięcie temperatury równej 23°C
Dane: 23
- System ma zareagować na włączenie przekaźnika – przyjmuje on wówczas wartość 1
Jeżeli pole Dane pozostanie puste, wówczas zdarzenie zostanie wyzwolone dowolną wartością. Ponadto w polu Dane można wykonać odwołanie do wartości innego identyfikatora używając bindowania identyfikatorów – zostało to przedstawione w akapicie: Bindowanie identyfikatorów.
- Warunek – Umożliwia zdefiniowanie dodatkowego warunku, który musi być spełniony, aby zdarzenie zostało wykonane. Warunek stanowi iloczyn logiczny z podstawowym warunkiem, jaki zawarty jest w polu Dane.
Podstawową formą warunku jest porównanie bieżącego stanu identyfikatora z określoną wartością, zgodnie z notacją:<nazwa_identyfikatora><operator><wartość>. Jeżeli wartością identyfikatora jest ciąg znaków (string) np. „ciemno”, wówczas wartość należy objąć cudzysłowem. Warunków dodatkowych może być kilka, dzięki czemu możliwe jest utworzenie bardziej złożonych reguł logicznych determinujących wykonanie zdarzenia. Należy jednak pamiętać, że komendy poprzedzone warunkiem zostaną wykonane wtedy i tylko wtedy, gdy wyrażenie warunkowe będzie spełnione.
Pole Warunek dopuszcza użycie następujących operatorów:
| Operator | Opis |
|---|---|
| < | Mniejszy |
| > | Większy |
| <= | Mniejszy równy |
| >= | Większy równy |
| == | Równy |
| ~= | Różny |
and | Iloczyn logiczny |
or | Suma logiczna |
not | Negacja |
Należy pamiętać, że iloczyn logiczny (and) ma pierwszeństwo przed sumą logiczną (or). W przypadku bardziej złożonych gdzie jednocześnie stosowany jest and i or zalecamy stosować nawiasy, aby wydzielać
mniejsze fragmenty instrukcji warunkowej i uniknąć tym samym pomyłki w kolejności sprawdzania wyrażeń (patrz przykłady poniżej).
Przykłady podstawowe
IDS.armed.1==1
Tylko wtedy, gdy strefa pierwsza jest uzbrojona.IDS.entry.1==1 and VAR.pora=='lato'Tylko wtedy, gdy jest ustawiony czas na wejście strefy 1 i zmiennaVAR.porama wartośćlato.MEM.godzina>20 or VAR.pora=='ciemno'Tylko wtedy, gdy zmienna wartość zmiennejMEM.godzinajest większa od 20
lub zmiennaVAR.porama wartośćciemno.EXP.output.3.1~=1Tylko wtedy, gdy przekaźnik nr 1 w bloku Satel o adresie 3 nie jest włączony.
Pierwszeństwo w warunkach i wyrażenia złożone
zmienna3==1 or zmienna2==0 and zmienna1==1
W pierwszej kolejności zostanie sprawdzony iloczyn logiczny, a następnie suma
logiczna.- (
zmienna3==1 or zmienna2==0)and zmienna1==1
Dodanie nawiasów do poprzedniego przykładu zupełnie zmienia znaczenie warunku.
W pierwszej kolejności sprawdzane jest wyrażenie w nawiasach, a następnie jest realizowany iloczyn logiczny. - (
zmienna1==1 and zmienna2==2)or(zmienna3==3 and zmienna4==4)
Jest to przykład sumy iloczynów logicznych. W pierwszej kolejności sprawdzane są wyrażenia z nawiasów (iloczyny), a następnie rozpatrywana jest suma logiczna. Analogicznie można zrealizować iloczyn sum logicznych itd.
W polu Warunek można także użyć funkcji age, która zwraca czas wyrażony w sekundach od ostatniej
zmiany danego identyfikatora. Dzięki temu zdarzenie może zostać wykonane z określonym opóźnieniem
w stosunku do ostatniej zmiany dowolnego identyfikatora w systemie.
- age(’MODBUS.int.vent.temp’) > 60.
Taki warunek należy rozumieć jako: „wykonaj, gdy ostatnia zmiana wartości identyfikatora MODBUS.int.vent.temp była co najmniej 60 sekund temu“.
Ponadto w polu Warunek można deklarować wyrażenia używając wzorców (patrz Wzorce) oraz bindowania identyfikatorów (patrz niżej – Bindowanie identyfikatorów). W ten sposób możliwe jest zrealizowanie bardzo
złożonych reguł, co czyni zdarzenia bardzo ważnym elementem automatyzacji budynku.
4. Akcje #
W oknie Akcje definiowana jest lista czynności, jakie moduł Base ma wykonać jako wynik wywołania zdarzenia. Opis interfejsu znajduje się w podrozdziale: 8.1. Akcje
- Wykorzystanie czujników PIR centrali alarmowej do załączania świateł.
Przymijmy, że czujnik jest podłączony do wejścia binarnego nr 1 w module Satel INTIORS z adresem 1, a oświetlenie do przekaźnika nr 3 w tym samym module. Całość sterowana jest przez moduł DOMIQ/Expander.- Kanał: E.EXP.input.1.1
- Dane: 1
- +Komenda:
- Nazwa: C.EXP.output.1.3
- Wartość: 1.
- Automatyczne podnoszenie rolety w przypadku otwarcia okna. Przyjmijmy, że czujnik otwarcia okna podłączony jest do centrali alarmowej Satel, nr. wejścia 10, a roleta podłączona jest do modułu Shelly 2.5 o nazwie
rolety_salon- Kanał: E.IDS.input.10
- Dane: 1
- +Komenda:
- Nazwa: C.SHELLY.rolety_salon.roller.0
- Wartość: up
5. Zagadnienia zaawansowane #
5.1. Bindowanie identyfikatorów #
To funkcjonalność, która upraszcza tworzenie złożonych reguł logicznych. Umożliwia odwołanie się w definicji zdarzenia do bieżącej wartości dowolnego identyfikatora. W tym celu należy nazwę identyfikatora
ująć w nawiasy klamrowe, np. {LCN.output.0.10.1}. Gdy użyjesz takiego zapisu, moduł Base automatycznie w momencie wywołania danej reguły, pobierze aktualną wartość wskazanego identyfikatora.
Bindowania identyfikatorów możesz użyć w polach Dane w oknie Szczegóły, w polu Wartość w oknie +
Komenda. Ponadto bindowanie identyfikatorów jest dostępne w polu Warunek, ale wyjątkowo nie wymaga stosowania nawiasów klamrowych.
Przestudiuj poniższe przykłady:
- Wykonanie komendy w oparciu o wartość wybraną przez użytkownika w aplikacji
Remote.
Załóżmy sytuację, gdzie w reakcji na zdarzenie ma być wykonana pewna komenda.
Jednakże wartość komendy ma zależeć od opcji wybranej przez użytkownika w aplikacji Remote. Przykładem może być ustawienie temperatury zadanej ogrzewania (w tym
przykładzie regulator LCN), w wyniku uzbrojenia alarmu (co może oznaczać wyjście z
domu). Jest to szczególnie przydatne, gdy użytkownik chce mieć zawsze możliwość
zmiany tej temperatury w przyszłości bez rekonfiguracji systemu.
Wybór użytkownika jest zapisany np. w zmiennej MEM. Na potrzeby przykładu nazwiemy ją:MEM.userChoice. Wówczas zdarzenie może mieć następującą definicję:
Kanał: E.IDS.armed.1
Dane: 1
W sekcji Akcje -> + Komenda
Nazwa: C.LCN.regulator.0.10.1
Wartość: {MEM.userChoice} - Zapisywanie daty i godziny wystąpienia zdarzenia alarmowego w systemie Satel
do zmiennej nieulotnej MEM.
Kanał: E.IDS.alarm.1
Dane: 1
W sekcji Akcje -> + Komenda
Nazwa: C.MEM.lastAlarm
Wartość: {CLOCK.datetime}
W momencie wystąpienia zdarzenia, moduł Base pobierze aktualną wartość identyfikatoraCLOCK.datetime, który przechowuje datę i godzinę i zapisze ją w zmiennejMEM.lastAlarm.
5.2. Arytmetyka #
Moduł Base umożliwia wykonywanie działań arytmetycznych na wartościach identyfikatorów.
Dostępne są następujące operacje: dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie (^),
dzielenie modulo (%). Arytmetyka dostępna jest w polach Dane (zdarzenia) oraz Warunek (zdarzenia i
timery).
- Zastosowanie działań arytmetycznych w polu Warunek do sterowania ogrzewaniem z histerezą. Na potrzeby przykładu załóżmy, że: temperatura zadana jest przechowywana w zmiennej MEM o nazwie
MEM.temp.salon. Natomiast temperatura mierzona jest dostępna w identyfikatorzeMODBUS.int.sensor.temp. Wyjście temperatury mierzonej poza ustalony zakres ma przełączyć przekaźnik sterujący zaworem pętli grzewczej. Załóżmy, że odchyłka temperatury mierzonej może wynosić maksymalnie 1,5°C. Przekaźnik sterujący zaworem jest podłączony do bloku Satel INT-IORS, sterowanego modułem DOMIQ/Expander. Blok ma adres 1, a przekaźnik nr 3.- Temperatura za niska
- Kanał: E.MODBUS.int.sensor.temp
- Dane: pozostaw puste, aby wywołać zdarzenie przy każdorazowej zmianie temperatury pomieszczenia.
- Warunek: MODBUS.int.sensor.temp – 1,5 <= MEM.temp.salon WAŻNE! Jest to jednocześnie przykład bindowania identyfikatorów i działań arytmetycznych w polu Warunek. W sekcji Akcje -> + Komenda
- Nazwa: C.EXP.output.1.3
- Wartość: 1
- Analogicznie można zrealizować działanie dla temperatury za wysokiej, zmieniając jedynie operator w warunku na >= oraz wartość komendy na 0.
- Temperatura za niska
Użycie działań arytmetycznych w polu Dane jest ściśle związane z bindowaniem identyfikatorów. Dzięki
temu możesz tworzyć bardziej elastyczne definicje zdarzeń, które będą wywoływane w zależności od stanu innego identyfikatora w module Base. Pamiętaj, aby nazwę identyfikatora w tym przypadku objąć nawiasami klamrowymi.
Także działania arytmetyczne używane w polu Wartość w oknie + Komenda wymagają użycia nawiasów
klamrowych. Arytmetyka w tym miejscu pozwala na dynamiczną modyfikację wartości komendy w zależności od stanu innego identyfikatora. Dzięki temu możliwe jest np. skalowanie wartości.
- Kompensacja temperatury mierzonej. Niektóre czujniki temperatury wymagają kompensacji swoich odczytów ze względu na miejsce ich montażu. Załóżmy, że chcemy skompensować odczyty czujnika podłączonego do magistrali MODBUS o 2°C i zapisać nową skompensowaną wartość w zmiennej VAR o nazwie
VAR.sensor.temp. Przyjmijmy następujący identyfikator czujnika:MODBUS.int.sensor.temp. Kanał: E.MODBUS.int.sensor.temp
Dane: Pozostaw puste, aby zdarzenie było wyzwalane przy każdej zmianie temperatury.
+Komenda:
Nazwa: C.VAR.sensor.temp
Wartość: $D0 – 2
Powyższy zapis należy rozmieć jako: weź wartość z jaką zostało wywołane zdarzenie i pomniejsz o 2. Więcej o użyciu parametrów przyczytasz w sekcji Parametry.
5.3. Wzorce #
Wzorce umożliwiają tworzenie bardzo uniwersalnych reguł, które mogą reagować na wiele zdarzeń jednocześnie. Jest to bardzo duże uproszczenie konfiguracji, znaczna oszczędność czasu, a także optymalizacja z punktu widzenia wydajności pracy systemu. Wzorce można stosować wyłącznie w polu Kanał.
Można użyć kilku wzorców w obrębie jednej definicji zdarzenia.
| Wzorzec | Opis |
|---|---|
%d | Dowolna cyfra od 0 do 9. |
%a | Dowolna litera alfabetu. |
%w | Dowolna litera lub cyfra. Parametr %w jest połączeniem parametrów %d oraz %a . |
%. | Dowolny znak. |
+ | Jedno lub więcej wystąpień. Parametr ten jest dodatkiem do pierwszych czterech parametrów. |
* | Zero lub więcej wystąpień. Parametr ten jest dodatkiem do pierwszych czterech parametrów. |
[0-9aZ] | Dowolna cyfra lub litera z określonego zakresu. Zakresy można swobodnie zmieniać, np. [1-4aD]. Ten parametr pozwala na wygodne filtrowanie zdarzeń. Umożliwia filtrowanie występowania jednocześnie cyfr i liter. |
Aby zrozumieć koncepcję wzorców rozpatrz poniższe przykłady:
- Załóżmy sytuację, że system DOMIQ ma zareagować taką samą akcją, na naruszenie
jednej znczujek ruchu, gdzien, to dowolna liczba czujek. Zamiast tworzyć zdarzenie
dla każdej czujki, możesz utworzyć jedno zdarzenie korzystając z wzorców, które wychwyci wszystkie te zdarzenia! Załóżmy, że czujki są podłączone do modułu Satel INTIORS o adresie 3, sterowanym przez moduł DOMIQ/Expander. Wówczas zdarzenie miałoby następującą definicję:
Kanał: E.EXP.input.3.(%d)
Zdarzenie zostanie wywołane dla dowolnego wejścia binarnego (1-8), które zmieniło
swoją wartość z 0 na 1.
Dane: 1
W sekcji Akcje zadeklaruj komendy. - Zdarzenie zostanie wywołane, jeżeli którykolwiek przekaźnik w module LCN o adresie
10 zostanie wyłączony.
Kanał: E.LCN.relay.0.10.(%d)
Dane: 0 - Zdarzenie zostanie wywołane, jeżeli którekolwiek wyjście ściemniane w segmencie nr
10 zostanie wysterowane na 100%.
Kanał: E.LCN.output.10.(%d+).(%d)
Dane: 100 - Zdarzenie zostanie wywołane, jeżeli jakiekolwiek urządzenie alarmowe zmieni swój
stan – w reakcji zarówno na zmiany stanu identyfikatorów typu:IDS.alarm.x, jak iIDS.output.x. itd.
Kanał: E.IDS.(%a+).(%d+)
Dane: 1
5.4. Parametry #
Parametry są ściśle związane z wzorcami, ponieważ przechwytuja elementy wyodrębnione przez wzorce.
Można użyć kilka parametrów w obrębie definicji zdarzenia. Aby zawartości wzorców były przekazywane
do parametrów, wzorzec w definicji zdarzenia musi być objęty nawiasami okrągłymi. Dzięki parametrom
utworzysz bardzo uniwersalne zdarzenia (patrz przykłady).
Parametry mogą być użyte w polu Warunek oraz w polach Nazwa i Wartość w oknie edycji + Komenda.
| Parametr | Opis |
|---|---|
$C0 | Przechowuje pełną nazwę zdarzenia (wraz z identyfikatorem). |
$C1-9 | Przechowuje zawartość wyodrębnioną przez wzorzec. Numeracja parametrów jest nadawana w zależności od użytej liczby wzorców. Jeżeli wykorzystane są 2 wzorce, wówczas dostępne są parametry $C1 oraz $C2 itd. |
$D0 | Przechowuje wartość z jaką zdarzenie zostało wywołane. |
$D1-9 | Przechowuje wartość elementu wyodrębnionego przez wzorzec. Ten rodzaj parametrów może być stosowany jedynie w stosunku do wzorców użytych w polu Dane. Numeracja parametrów jest nadawana w zależności od użytej liczby wzorców. Jeżeli wykorzystane są 2 wzorce, wówczas dostępne są parametry $D1 oraz $D2 itd. |
Parametr $C0 zawsze przechowuje pełną nazwę zdarzenia, natomiast $D0 jego aktualną wartość.
Parametr $D0 daje duże możliwości, dlatego ważne jest zrozumienie sposobu jego użycia.
- Zdarzenie reagujące na przekroczenie obserwowanej wartości np. przekroczenie
temperatury w pomieszczeniu.
Na potrzeby przykładu załóżmy, że obserwujemy temperaturę mierzoną przez czujnik
podłączony do magistrali MODBUS. Jego identyfikator toMODBUS.int.sensor.temp. Zdarzenie ma wykonać określoną listę akcji, kiedy temperatura spadnie
poniżej 0°C.
Kanał: E.MODBUS.int.sensor.temp
Dane: Pozostaw to pole puste, aby zdarzenie było wywołane przez każdą zmianę mierzonej temperatury.
Warunek: $D0 < 0
Warunek należy rozumieć następująco: jeżeli wartość, z jaką zostało wywołane zdarzenie
jest mniejsza od 0. - Załączanie przekaźnika w zależności od stanu wejścia binarnego.
Bez użycia wzorców i parametrów, wymagałoby to utworzenia dwóch zdarzeń: jednego
dla logicznej 1 na wejściu binarnym i drugiego dla logicznego 0. Z ich użyciem można
zrealizować to przy pomocy pojedynczego zdarzenia. Załóżmy, że obserwujemy zmianę stanu wejścia binarnego nr 5 podłączonego do modułu Satel INT-IORS o adresie 2,
sterowanego przez moduł Expander oraz, że przekaźnik ma nr 7 i jest w module LCN o
adresie 10.
Kanał: E.EXP.input.2.5
Dane: Pozostaw to pole puste, aby zdarzenie było wyzwalane przez oba stany wejścia
binarnego. + Komenda:
Nazwa: C.LCN.relay.0.10.7
Wartość: $D0
Użycie parametru$D0przechwytuje wartość wejścia binarnego (1 lub 0) i przekazuje
tę wartość do przekaźnika. - Zapisanie do zmiennej MEM numeru czujki alarmowej, która wywołała alarm.
Zmienna MEM będzie zachowywać informację o ostatnio naruszonej czujce alarmowej.
Na potrzeby przykładu nazwiemy ją:MEM.lastInput. To przykład, w którym pokazujemy użycie parametrów w polu Kanał.
Kanał: E.IDS.input.(%d+)
Dane: 1 + Komenda:
Nazwa: C.MEM.lastInput
Wartość: $C1
Wzorzec (%d+) oznacza „jedna lub więcej cyfr”. Zatem przechwycona zostanie zarówno
cyfra od 0-9, jak i liczba np. 123.
Wartość przechwycona przez wzorzec dostępna jest następnie w parametrze$C1. Zatem, odwołując się do niego w komendzie powodujemy zapisanie numeru czujki, jako
wartości zmiennej MEM. - Wysłanie notyfikacji do aplikacji DOMIQ/Remote.
Kanał: E.IDS.alarm.(%d+) – sprawdzana będzie dowolna strefa alarmowa.
Dane: 1 + Komenda:
Wartość: C.REMOTE.notify
Wartość: Tu wpisz treść powiadomienia, która zostanie wyświetlona na ekranie urządzenia. Wpisując np. Alarm w strefie $C1, użytkownik w przypadku alarmu zobaczy komunikat o treści Alarm w strefie x, gdzie x to nr strefy, w której wystąpił alarm. - Kanał: E.LCN.output.0.10.(%d)
Dane: (%d+)
Załóżmy, że wyjście ściemniane nr 2 w module LCN o adresie 10 osiąga wartość 50%.
Generowane jest wtedy zdarzenieE.LCN.output.0.10.2=50. Wówczas do parametru$C1przypisywany jest numer wyjścia, które zmieniło stan, w tym przypadku 2,
natomiast parametr$D1ma wartość 50.