← Wszystkie artykuły
Standardy / Instancje DALI

Urządzenia wejściowe DALI — część I: przyciski

Jak przyciski generują eventy na magistrali DALI, dlaczego to samo długie naciśnięcie sterowniki obsługują na dwa różne sposoby i skąd biorą się usterki konfiguracyjne, które nie zgłaszają żadnego błędu.

Panel przyciskowy na ścianie — każdy klawisz to osobna instancja DALI
Panel przyciskowy na ścianie — każdy klawisz to osobna instancja DALI

O oprawach i zasilaczach DALI napisano już wszystko. O czujnikach i panelach przycisków prawie nic, choć to one decydują, jak instalacja zachowuje się na co dzień. Ta seria jest o nich. Zaczynamy od przycisków.

Co właściwie wisi na ścianie

Typowy panel przyciskowy jest monostabilny: naciskasz, a przycisk zaraz powraca do poprzedniej pozycji. Styk zwiera się na ułamek sekundy, a główna informacja, którą możemy wykorzystać, to czas jego zwarcia. Tak wygląda jakieś 95% tego, co się widzi na obiektach — gotowe panele, w których mechanika i elektronika siedzą w jednej obudowie.

Druga, popularna na realizacjach, opcja to moduł wejściowy (input unit). Nie ma żadnych klawiszy, ma za to kilka wejść bezpotencjałowych, do których podpina się zwykły osprzęt elektryczny: przyciski dzwonkowe, łączniki, styki przekaźnikowe z innych urządzeń. Moduł zamienia zwarcie styku na event DALI. Żeby coś wpiąć w instalację, nie trzeba więc kupować gotowego panelu.

Nie wszystko jednak, co się do takiego modułu podpina, jest przyciskiem.

Ścianka działowa — krańcówka zgłasza położenie, nie naciśnięcie
Ścianka działowa — krańcówka zgłasza położenie, nie naciśnięcie

Najczęstszy przypadek to ścianki działowe. W dużych obiektach sala konferencyjna bywa dzielona na dwie albo cztery mniejsze i oświetlenie musi w każdym z tych układów zachowywać się inaczej. Pozycję ścianki wykrywa krańcówka wpięta w moduł wejściowy. Ta krańcówka jest wciśnięta często godzinami, dopóki ktoś nie przestawi ścianki. Tak samo zachowują się styki bezpotencjałowe z innych systemów, choćby wyjście przekaźnikowe z centrali BMS.

To zupełnie inna informacja niż z przycisku. Z przycisku sterownik dowiaduje się, co użytkownik przed chwilą zrobił. Z krańcówki — w jakim stanie coś się teraz znajduje i będzie tak, dopóki ktoś tego nie zmieni.

DALI ma na oba przypadki osobne eventy. Naciśnięcie użytkownika opisują krótkie i długie naciśnięcie. Położenie styku opisują surowe button pressed i button released, które lecą dokładnie w chwili zwarcia i rozwarcia. To pierwsza decyzja przy konfiguracji i najczęstsze źródło cichych usterek. Wrócimy do nich na końcu.

Dziewięć eventów, z których w praktyce używa się dwóch

Pojedynczy przycisk na panelu to w DALI osobna instancja: ma własny numer, własny filtr eventów i własny zestaw timerów. Panel z czterema klawiszami to jedno urządzenie na magistrali i cztery instancje, każda konfigurowana osobno. Zachowanie przycisku ustawia się właśnie tutaj, nie na poziomie całego panelu.

IEC 62386-301 definiuje dla instancji przycisku dziewięć eventów: zwarcie, rozwarcie, krótkie naciśnięcie, podwójne naciśnięcie, początek przytrzymania, powtórzenie i koniec długiego przytrzymania oraz zacięcie i zwolnienie po zacięciu.

W typowej instalacji pracuje się na dwóch. Krótkie naciśnięcie wywołuje akcję domyślną — najczęściej załączenie na 100% albo wywołanie sceny. Długie przytrzymanie służy do ściemniania i rozjaśniania. Reszta to przypadki brzegowe albo diagnostyka.

Filtr eventów decyduje, które z nich w ogóle trafią na magistralę. Fabrycznie włączone są: krótkie naciśnięcie, cały cykl długiego przytrzymania i zacięcie. Surowe button pressed i button releasedwyłączone, podwójne kliknięcie też. Panel prosto z pudełka zachowuje się więc dokładnie tak, jak się po nim spodziewamy.

Ten sam domyślny filtr ma jednak moduł wejściowy, a do niego bywa wpięta krańcówka ścianki działowej. Tam surowe eventy trzeba włączyć ręcznie — inaczej sterownik nigdy nie dowie się, w jakim położeniu ścianka stoi.

Cztery timery

ParametrCo rozróżniaPrzyrostDomyślnieZakres
tShortkrótkie naciśnięcie od długiego20 ms≥ 500 msdo 5 100 ms
tDoublepojedyncze od podwójnego20 ms0 (wyłączone)do 2 000 ms
tRepeatodstęp powtórzeń przy przytrzymaniu20 ms160 ms100 – 2 000 ms
tStuckczas, po którym przycisk uznaje się za zacięty1 s20 s5 – 255 s

Do timerów nie wpisuje się czasu w milisekundach, tylko mnożnik. Rzeczywisty czas to mnożnik razy przyrost z tabeli, więc tShort = 800 ms to mnożnik 40, czyli 0x28.

Podobnie jak większość funkcji konfiguracyjnych, zmiana tych parametrów idzie przez rejestr DTR0: najpierw odkłada się w nim wartość, a dopiero potem wysyła komendę, która ją stamtąd pobiera. Żeby ustawić tShort na 800 ms, trzeba wysłać:

  1. DTR0 (0x28) — komenda specjalna, ramka 0xC1 0x30 0x28. Wartość ląduje w rejestrze.
  2. SET SHORT TIMER (DTR0) — opcode 0x00, adresowany na konkretne urządzenie i konkretną instancję.
  3. Ta sama ramka jeszcze raz. To komenda typu send twice: urządzenie wykona ją dopiero po odebraniu dwóch identycznych ramek pod rząd, bez żadnej innej ramki pomiędzy (IEC 62386-101, 9.4). Pojedyncza ramka zostanie po cichu zignorowana.

Pozostałe timery ustawia się identycznie — zmienia się tylko opcode w kroku drugim: 0x01 dla SET DOUBLE TIMER, 0x02 dla SET REPEAT TIMER, 0x03 dla SET STUCK TIMER. Odczyt idzie komendami QUERY z zakresu 0x0A0x0F i tam DTR0 ani powtarzania już nie potrzeba.

Jeżeli mnożnik wykracza poza dopuszczalny zakres z tabeli, urządzenie odrzuca komendę i zostawia starą wartość. Bez odczytu przez QUERY nie widać, że nic się nie zmieniło.

Dwa sposoby ściemniania

Długie przytrzymanie — jedno przytrzymanie przycisku, dwa różne obrazy na magistrali
Długie przytrzymanie — jedno przytrzymanie przycisku, dwa różne obrazy na magistrali

Przytrzymujesz przycisk, światło płynnie schodzi w dół. Dla użytkownika ta funkcja zawsze wygląda tak samo. W DALI realizuje się ją na dwa sposoby i na magistrali wyglądają one zupełnie inaczej. Który zadziała, zależy od sterownika nadrzędnego — norma tego nie rozstrzyga, bo kończy się na urządzeniu wejściowym.

Sposób 1: powtarza sterownik. Sterownik patrzy wyłącznie na long press start i long press stop. Po odebraniu startu sam zaczyna wysyłać komendy UP albo DOWN do opraw i ponawia je mniej więcej co 150 ms, aż przyjdzie stop. Panel wysyła w całej operacji dwa eventy.

Sposób 2: powtarza przycisk. Panel wysyła long press start, a potem cyklicznie long press repeat, i każde powtórzenie sterownik tłumaczy na osobną akcję dla grupy. Logika po stronie sterownika jest wtedy prostsza i dlatego takie rozwiązanie spotyka się częściej. Kosztem jest ruch: zamiast dwóch eventów na całe przytrzymanie magistrala dostaje ich tyle, ile trwa przytrzymanie.

Przy drugim sposobie tRepeat ustawia się zwykle na 100 ms, czyli na dolnej granicy dopuszczonej przez normę. Nie po to, żeby ściemnianie było płynniejsze, tylko po to, żeby sterownik zdążył przetworzyć każdy event i wystawić UP lub DOWN na grupę.

Sposobu nie wybiera się z gustu — decyduje o nim sterownik zastosowany w instalacji. Ale kiedy szuka się przyczyny nadmiernego ruchu na linii, trzeba wiedzieć, który z nich pracuje.

Na co uważać

Nic tu nie wygląda na zepsute — i na tym polega problem
Nic tu nie wygląda na zepsute — i na tym polega problem

Przycisk DALI, który nie działa albo reaguje z opóźnieniem, ma zwykle jedną z czterech przyczyn konfiguracyjnych. Trzy pierwsze łączy jedno: żadna nie zgłasza błędu. Nic nie miga na czerwono, nic nie trafia do logu. System robi dokładnie to, co mu ustawiono — tylko ustawiono mu coś innego, niż ktoś zamierzał. Najpierw trzeba więc w ogóle wpaść na to, żeby tam zajrzeć. Czwarta jest odwrotnością pozostałych: zgłasza błąd, którego fizycznie nie ma.

Wyłączona instancja

Instancję można włączyć i wyłączyć osobno od reszty urządzenia. Domyślnie jest włączona, ale bywa, że ktoś ją wyłączył przy wcześniejszej konfiguracji i nie przywrócił. Wyłączona instancja nie wysyła nic — naciśnięcie przycisku nie generuje żadnej ramki.

Jak rozpoznać? Przycisk nie robi nic, a reszta panelu może działać normalnie. Jeśli panel ma diody feedbackowe, bywa, że dioda mruga przy każdym naciśnięciu — przy wyłączonej instancji nie mrugnie. To nie jest wymóg normy, tylko spotykana praktyka producentów, ale w terenie często wystarcza, żeby ustawić diagnozę w kilka sekund.

Jak diagnozować? Odczytać stan instancji (QUERY INSTANCE ENABLED) i porównać z pozostałymi przyciskami tego samego panelu. Sterowniki nadrzędne zwykle pokazują to zresztą wprost — instancje mają w interfejsie jawny znacznik włączona/wyłączona i wyłączoną łatwo wypatrzeć na liście.

Filtr zgłasza zwarcie styku zamiast naciśnięcia

Zamiast short press ktoś włącza button pressed i button released. Panel zaczyna wtedy zgłaszać, że styk jest zwarty, a nie że ktoś nacisnął przycisk — sterownik czeka na krótkie naciśnięcie, które nigdy nie przyjdzie. To ta sama pomyłka co w pierwszej sekcji, tylko widziana od strony konfiguracji.

Jak rozpoznać? Znowu: naciskasz i nic się nie dzieje. Jak diagnozować? Odczytać filtr eventów instancji (QUERY EVENT FILTER 0-7) i sprawdzić, czy bit krótkiego naciśnięcia jest ustawiony. Podgląd magistrali rozstrzyga to od razu — przy wyłączonej instancji po naciśnięciu nie leci nic, przy złym filtrze ramki lecą, tylko niosą inny typ eventu.

Włączone podwójne kliknięcie

Trafia się rzadko, ale bywa najtrudniejszy do rozgryzienia, bo objaw jest zupełnie inny niż w poprzednich. Nic nie przestaje działać — wszystko zaczyna działać wolno.

Trzy przebiegi: to samo naciśnięcie przy tDouble = 0 i przy tDouble = 500 ms
Trzy przebiegi: to samo naciśnięcie przy tDouble = 0 i przy tDouble = 500 ms

tDouble liczy się od zwolnienia przycisku. Jeśli w tym czasie przyjdzie kolejne naciśnięcie, powstaje podwójne kliknięcie. Jeśli nie przyjdzie, krótkie naciśnięcie powstaje dopiero po upływie całego tDouble — instancja musi odczekać, żeby mieć pewność, że drugiego naciśnięcia nie będzie. Włączenie podwójnego kliknięcia opóźnia więc każde pojedyncze naciśnięcie o pełną wartość tego timera.

Użytkownik zgłasza to jako ociężałość systemu: światło zapala się z wyczuwalnym opóźnieniem. Nikt nie łączy tego z funkcją, z której zwykle nawet nie korzysta.

Jak rozpoznać? Panel albo cała instalacja reaguje wolniej, niż powinna, przy poprawnym okablowaniu i adresowaniu. Jak naprawić? Jeśli aplikacja nie używa podwójnego kliknięcia, ustawić tDouble na zero — opóźnienie znika, a zachowanie użytkowe się nie zmienia.

Wejście zwarte godzinami, czyli zacięcie, którego nie ma

Ten przypadek dotyczy dokładnie tych zastosowań, o których była mowa na początku: krańcówki ścianki działowej, styku z centrali BMS, wszystkiego, co potrafi zostać zwarte na wiele godzin.

Instancja przycisku nie wie, że po drugiej stronie zacisków siedzi krańcówka, a nie klawisz. Widzi zwarte wejście i odlicza tStuck. Po jego upływie uznaje przycisk za zacięty: wysyła button stuck i ustawia flagę instanceError. Domyślnie tStuck to 20 s, a norma dopuszcza najwyżej 255 s — czyli niecałe cztery i pół minuty. Ścianka stoi zamknięta godzinami, więc żadne przestawienie tego timera nie pomoże. Zacięcie wystąpi zawsze.

Problem ujawnia się dopiero przy rozwarciu. Norma mówi wprost: po evencie zacięcia instancja nie wysyła nic aż do zwolnienia przycisku, a samo zwolnienie generuje najwyżej jeden event — i jest nim button free, nie button released (IEC 62386-301, 9.4.5 i 9.6.1). Sterownik nadrzędny, który nasłuchuje wyłącznie button released, nigdy się nie dowie, że ścianka została otwarta. Oświetlenie zostaje w układzie sprzed kilku godzin.

Jak rozpoznać? Scenariusz przełącza się poprawnie przy szybkim przestawianiu ścianki na uruchomieniu, a przestaje działać w normalnej eksploatacji, kiedy ścianka stoi dłużej niż tStuck. To jedyny z opisanych przypadków, który zostawia ślad: QUERY INSTANCE STATUS pokazuje ustawiony instanceError, a QUERY INSTANCE ERROR zwraca bit zacięcia. Tyle że komunikat jest mylący — mówi o uszkodzonym przycisku, a przycisku tam w ogóle nie ma.

Jak naprawić? Najprościej wyłączyć bit 7 filtra eventów, czyli button stuck i button free. Filtr blokuje wtedy samo powstanie tych eventów, a nie tylko ich wysłanie — na magistralę nie idzie nic, instanceError się nie ustawia, a button released po rozwarciu przychodzi normalnie. Wystarczy o tym pamiętać przy uruchamianiu każdego wejścia, które ma pozostawać zwarte przez dłuższy czas. Druga droga to obsłużyć button free w sterowniku nadrzędnym na równi z button released — sensowna, jeśli zależy nam na zachowaniu diagnostyki zacięcia na pozostałych, zwykłych przyciskach tego samego urządzenia.


To inna robota niż szukanie usterki na magistrali. Przy przyciskach rzadko szuka się awarii. Szuka się różnicy między tym, co ustawiono, a tym, co zamierzano — a ta nigdzie się nie zgłasza i trzeba jej poszukać ręcznie w ustawieniach.

Moduł Inspector w Pilo One czyta rzeczywistą konfigurację instancji wprost z urządzeń: stan instancji, filtr eventów i wartości czterech timerów. Nie trzeba więc wierzyć temu, co pokazuje interfejs sterownika. Monitor pokazuje z kolei, co faktycznie leci na magistralę po naciśnięciu przycisku — to od razu rozstrzyga, czy problem jest po stronie panelu, czy sterownika.

Kolejna część serii: czujniki światła (IEC 62386-304).

Pilo One

Masz dość godzin spędzonych na szukaniu usterek DALI?

Pilo One łączy kieszonkowy analizator sprzętowy z asystentem AI, pozwalając zlokalizować i naprawić usterki w kilka minut.