presence-detector
Opis
Bloczek presence-detector służy do wykrywania obecności na podstawie wielu wejść logicznych. Dopóki przynajmniej jedno z podłączonych wejść zwraca wartość logiczną true, bloczek wystawia na swoim jedynym wyjściu wartość true.
Po zaniku obecności na wszystkich wejściach bloczek nie wyłącza się od razu. Zamiast tego uruchamia timer i jeszcze przez skonfigurowany czas podtrzymuje stan true. Jeśli w tym czasie któreś wejście ponownie zwróci true, timer zostaje zatrzymany, a bloczek nadal zgłasza obecność bez przerwy.
Bloczek posiada jedno wejście i jedno wyjście. Do wejścia można podłączyć wiele innych bloczków.
Parametry konfiguracyjne
| Nazwa parametru | Wartość |
|---|---|
time_limit |
Obowiązkowy czas podtrzymania obecności po zaniku sygnału z czujników. Wartość minimalna to 0.1 sekundy, wartość maksymalna to 64800 sekund (18 godzin). Krok 0.1 sekundy. |
Obsługa wejścia
Bloczek dopuszcza wiele połączeń do jedynego wejścia.
Każda nowa zmiana wejściowa powoduje przeliczenie stanu według następujących zasad:
- jeśli co najmniej jedno wejście ma aktualnie wartość logiczną true, bloczek wystawia na wyjściu true
- jeśli żadne wejście nie ma aktualnie wartości logicznej true, ale wcześniej obecność była wykrywana, bloczek uruchamia timer i nadal podtrzymuje na wyjściu true
- jeśli podczas pracy timera któreś wejście ponownie przyjmie wartość logiczną true, timer zostaje zatrzymany, a bloczek dalej wystawia true
- jeśli timer dojdzie do końca i nadal żadne wejście nie ma wartości logicznej true, bloczek wystawia na wyjściu false
Bloczek rozpoznaje obecność wyłącznie na podstawie wartości logicznych true. Wartości false, null oraz wartości innych typów nie oznaczają obecności.
Jeśli timer już odlicza po zaniku obecności i w tym czasie pojawiają się kolejne wartości różne od true, timer nie jest restartowany i dalej odlicza czas od pierwotnego momentu uruchomienia.
Jeśli do wejścia bloczka nie jest podłączony żaden inny bloczek, bloczek zgłasza błąd Input disconnected..
Wyjście bloczka
Bloczek posiada jedno wyjście logiczne:
- true gdy obecność jest aktualnie wykrywana na co najmniej jednym wejściu
- true gdy wejścia chwilowo nie wykrywają obecności, ale trwa jeszcze podtrzymanie przez timer
- false gdy obecność nie jest wykrywana i timer podtrzymania nie pracuje
Opis widoczny pod bloczkiem odzwierciedla bieżący stan:
true: presence detectedoznacza, że obecność jest wykrywana przez co najmniej jedno wejścietrue: presence hold activeoznacza, że wejścia nie wykrywają już obecności, ale trwa jeszcze podtrzymanie stanu true przez timerfalse: no presence detectedoznacza, że obecność nie jest wykrywana
Błędy widoczne dla użytkownika
Bloczek może pokazywać następujące komunikaty błędów:
| Kod błędu | Opis błędu |
|---|---|
Invalid time_limit configuration. |
Parametr time_limit ma niepoprawną wartość. Należy ustawić dodatnią wartość liczbową z krokiem 0.1 sekundy, nie większą niż 64800 sekund. |
Input disconnected. |
Pod wejście bloczka nie jest podłączony żaden inny bloczek. |
Przykłady działania
- Jeśli do bloczka podłączone są trzy wejścia i przynajmniej jedno z nich ma wartość true, na wyjściu pojawi się true, a opis przyjmie postać
true: presence detected. - Jeśli wszystkie wejścia zmienią się na wartości inne niż true, bloczek uruchomi timer i nadal będzie wystawiał true z opisem
true: presence hold active. - Jeśli przed końcem odliczania timer'a jedno z wejść ponownie przyjmie wartość true, timer zostanie zatrzymany, a opis wróci do
true: presence detected. - Jeśli czas
time_limitupłynie i nadal żadne wejście nie ma wartości true, na wyjściu pojawi się false, a opis zmieni się nafalse: no presence detected.