TapHome
Oficiální · TapHome Osvětlení

Resi Dali - Konfigurace

Nástroj pro uvedení DALI 2.0 do provozu pro Modbus-DALI bránu RESI-DALI-SIO a RESI-DALI-ETH. Přiřazuje krátké adresy 0–63 ovládacím zařízením přímo z TapHome, ověřuje jejich přítomnost a spouští rychlé broadcast ON/OFF testy.

ResiModbus RTU1 zařízeníRevize 1.3 Poslední aktualizace: 15. listopadu 2026
Resi Dali - Konfigurace

Import do aplikace TapHomeHardware › Modbus › Přidat ze šablony

Stáhnout šablonu
Na této stránce

Vyžaduje externí bránu

Resi RESI-DALI-PS — stránka produktu

Návod na integraci

Šablona Resi Dali - Konfigurace je jednorázový nástroj pro uvedení do provozu a adresování pro Modbus-DALI bránu RESI-DALI-SIO a RESI-DALI-ETH od společnosti RESI Informatik & Automation GmbH. Přímo z TapHome řídí algoritmus náhodného adresování DALI 2.0, čímž přiřazuje krátké adresy 0–63 ovládacím zařízením na čerstvě zapojené DALI sběrnici, u každé adresy detekuje DALI device type a nabízí rychlé broadcast ON/OFF testy — vše potřebné k uvedení nové instalace do stavu, kdy lze svítidla ovládat jednotlivě.

Komunikace s bránou probíhá přes Modbus RTU při 9600 baud 8N1. Šablona také vystavuje import parametr IpAddress, takže stejný postup funguje i přes serial-to-IP bridge (Moxa NPort, USR-TCP232) nebo přes RESI-DALI-ETH nakonfigurovaný v transparentním RTU-over-Ethernet režimu.

Tato šablona je záměrně určena pouze pro adresování. Po přiřazení krátkých adres modul Resi Dali - Konfigurace z projektu odeberte a pro každodenní ovládání použijte sesterskou operační šablonu Resi DALI (Dali.xml) — stmívání jednotlivých svítidel, stmívání skupin a diagnostika jednotlivých Gear zařízení. Konfigurační modul není navržen tak, aby v projektu zůstal po úvodním nastavení.

Hardwarové zapojení

RESI-DALI-SIO je master brána na DIN lištu (17,5 × 90 × 56,4 mm, CEM17), která sedí mezi sériovým/ethernetovým hostem a DALI osvětlovací sběrnicí. Brána DALI sběrnici nenapájí — kompatibilní DALI napájecí zdroj (RESI-DALI-PS nebo libovolný 200 mA DALI zdroj v souladu se standardem) je povinný.

Připojení RESI-DALI-SIO (RS-485)

Schéma zapojení RESI-DALI-SIO — externí DALI zdroj (nahoře) a s RESI-DALI-PS (dole)

Svorky na levé straně RESI-DALI-SIO (shora dolů): GND, +12..48V=, RS485 DATA+ (A+), RS485 DATA- (B-), RS485 GND, RS232 TX, RS232 RX, RS232 GND. Svorky DALI sběrnice na opačné straně jsou D+ / N/C / D- (3pinový USLIM blok, N/C zůstává nezapojený).

Pro instalaci s TapHome použijte rozhraní RS-485:

  • RS485 DATA+ (A+) → A+/D+ na TapHome RS-485 sběrnici
  • RS485 DATA- (B-) → B-/D- na TapHome RS-485 sběrnici
  • RS485 GND → GND na napájecím zdroji TapHome (doporučeno pro stabilní komunikaci)
  • +12..48V= / GND → 12–48 V DC primární napájení

Připojení RESI-DALI-ETH (Ethernet)

Schéma zapojení RESI-DALI-ETH — externí DALI zdroj (nahoře) a s RESI-DALI-PS (dole)

Ethernet varianta má stejné svorky DALI sběrnice (D+ / N/C / D-) a primární napájení (GND, +12..48V=) plus jeden konektor RJ45 pro 10/100 Mbit Ethernet. Výchozí IP nastavení z výroby jsou 192.168.0.191 / 255.255.255.0 / 192.168.0.1 s Modbus Unit ID 255; přihlašovací údaje webového UI jsou RESI / RESI. TapHome komunikuje s ETH variantou v transparentním RTU-over-Ethernet režimu, který očekává tato konfigurační šablona (viz Konfigurace níže).

Napájecí zdroj DALI sběrnice

RESI-DALI-PS — samostatné napájení DALI sběrnice (nahoře) a v kombinaci s bránou SIO/ETH (dole)

RESI-DALI-PS dodává až 200 mA na DALI sběrnici (zkratový proud ~225 mA, typické napětí sběrnice 14–18 V) a podporuje až 64 DALI 1.0 předřadníků nebo DALI 2.0 ovládacích zařízení na jedné lince. Primární strana akceptuje stejný 12–48 V DC napájecí zdroj jako jednotka SIO/ETH. Brána a napájecí zdroj sdílejí stejný pár D+ / D- — zdroj napájí sběrnici, zatímco brána čte a zapisuje DALI rámce.

Tři LED diody na napájecím zdroji pomáhají při uvedení do provozu: POWER (primárních 12–48 V v pořádku, vždy svítí), DALI (krátce blikne při provozu na sběrnici), ERR (trvale svítí při poruše zdroje, zkratu DALI nebo přetížení sběrnice — při normálním provozu musí být zhasnutá).

Pravidla DALI sběrnice

DALI linka má několik přísných omezení, která přímo ovlivňují úspěch uvedení do provozu:

Průřez vodičeMax délka DALI kabelu
1,5 mm²300 m
1,0 mm²238 m
0,75 mm²174 m
0,5 mm²116 m

Limit vyplývá z maximálně povoleného úbytku napětí 2 V na DALI kabelu. Další pravidla:

  • Maximálně 64 DALI 1.0 předřadníků a až 64 DALI 2.0 ovládacích zařízení na jednu sběrnici (oddělené prostory krátkých adres).
  • Pouze stromová topologie — žádné kruhy, žádné smyčky.
  • Skutečný počet zařízení závisí i na proudové kapacitě zdroje (typicky 200 mA na RESI-DALI-PS, počítejte ~2 mA na zařízení plus rezerva).

RESI-DALI-PS (nebo ekvivalentní DALI zdroj) je povinný. Bez něj RESI-DALI-SIO/ETH nedokáže sběrnici řídit a konfigurační průvodce při každém kroku vypadne timeoutem. Pokud se na dlouhé lince použije druhý zdroj, vložte DALI tlumivku nebo rozdělte sběrnici na galvanicky oddělené segmenty.

Konfigurace

Povolení Modbus komunikace

Všechny parametry sériového rozhraní na RESI-DALI-SIO se vybírají 4polohovým DIP přepínačem na modulu. Šablona TapHome fixuje 9600 baud 8N1, takže DIP přepínače musí být nastaveny odpovídajícím způsobem.

DIP1DIP2Rychlost přenosu
OFFOFF9600 bd (vyžadováno TapHome)
ONOFF19200 bd
OFFON38400 bd
ONONPoužívá rychlost naprogramovanou ve FLASH (výchozí z výroby 57600 bd)
DIP4Zdroj Modbus Unit ID
OFFFLASH registr H:65221 — vyžadováno, aby akce Set Slave ID měla účinek
ONVynuceno na 255 (hardwarový fallback, FLASH hodnota ignorována)

DIP3 je produktově specifický rezervovaný bit; ponechte jej v tovární poloze, pokud servisní manuál RESI výslovně neurčí jinak. Parita je ve FLASH výchozích hodnotách pevně None (8N1) — šablona nevystavuje registry parity/stop bitu.

Zakončení RS-485: sběrnici zakončete 120 Ω rezistorem na obou koncích. TapHome Core poskytuje jedno zakončení na svých svorkách BUS; pokud je RESI brána posledním zařízením na lince, přidejte na její svorky RS-485 diskrétní 120 Ω rezistor mezi A+/B-.

Nastavení RTU-over-TCP: šablona má oba import parametry SlaveId a IpAddress, protože stejný DALI konfigurační tok funguje i přes serial-to-IP bridge (Moxa NPort, USR-TCP232) nebo přes RESI-DALI-ETH v transparentním RTU-over-Ethernet režimu. V takovém případě nastavte IpAddress na IP bridge / ETH jednotky a ostatní nastavení ponechte identická jako u RS-485 varianty. Pro čistý Modbus/TCP na RESI-DALI-ETH by byla přirozenější TCP šablona — šablona DaliConfig předpokládá rámcovou RTU komunikaci.

Nastavení Slave ID brány

Výchozí Unit ID z výroby je 255. Změna postupem:

  1. Nastavte na bráně DIP4 = OFF, aby se respektovalo FLASH Unit ID.
  2. Importujte šablonu v TapHome s SlaveId = 255 (aktuální adresa).
  3. Otevřete servisní nastavení modulu “Resi Dali - Konfigurace” a spusťte akci Set Slave ID s požadovaným novým ID (rozsah 1–255). Akce zapíše hodnotu do registru H:65221 a okamžitě vyvolá softwarový reset přes H:6000 = 1, takže se brána restartuje s novou adresou.
  4. Odeberte šablonu a znovu ji importujte s SlaveId nastaveným na novou hodnotu. Modul lze pak použít pro uvedení do provozu.

Akce Reset Gateway (zapisuje 1 do H:6000) je také k dispozici jako samostatný obnovovací krok — užitečná po zkratu DALI sběrnice, který zanechal DALI motor brány v degradovaném stavu.

Pouze jeden Modbus master najednou. Ani DALI, ani Modbus RTU sběrnice neřeší arbitráž mezi souběžnými mastery. Pokud během uvádění do provozu bránu pollu je i PLC, BMS nebo PC nástroj (například MODBUSConfigurator), programování krátkých adres bude kolidovat a průvodce nahlásí chyby.

Schopnosti zařízení

Šablona je postavena kolem jediného Modbus modulu — Resi Dali - Konfigurace — který sdružuje konfiguračního průvodce, DALI device type sondu pro každou krátkou adresu 0–63, informační atributy brány a sedm akcí na úrovni brány.

Konfigurační průvodce — Find New Devices

Find New Devices je devítistavový multi-value přepínač, který řídí algoritmus náhodného adresování DALI 2.0 jako stavový automat. Každý název stavu odpovídá jedné fázi konfigurační sekvence DALI 2.0; v každém stavu šablona odešle správné surové 16bitové DALI rámce na H:541 / H:542, polluje DALI RX status na H:550 na odpověď brány a poté sama přepne přepínač do dalšího stavu.

KrokStavCo dělá
0TERMINATEDALI rámec TERMINATE (0xA100) — ukončí aktuální adresovací relaci a resetuje stav brány. Vždy bezpečné volat
1StartINITIALISE (0xA5FF) + RANDOMISE (0xA700) — přepne všechna neadresovaná zařízení do adresovacího poolu a vyžádá si od každého 24bitovou náhodnou adresu. Průvodce odešle oba příkazy znovu před každým novým kolem vyhledávání
2Skenovat krátkou adresuDotazuje krátké adresy 0–63 příkazem QUERY CONTROL GEAR PRESENT (0x91) a najde nejvyšší již použitou krátkou adresu, aby nová zařízení dostala čísla za ní. Po Resetovat krátké adresy se přeskočí — číslování pak začíná od 0
3Set SEARCHADDRProvede celé binární vyhledávání v jednom kroku: nahraje horní/střední/dolní bajty SEARCHADDR (0xB500/0xB300/0xB100), odešle COMPARE (0xA900) a půlí 24bitové vyhledávací okno, dokud ho nezúží, poté pokračuje stavem Kontrola
4COMPAREOdešle COMPARE (0xA900) a podle odpovědi zužuje 24bitové vyhledávací okno
5PROGRAM SHORT ADDRESSZapíše další krátkou adresu přes 0xB7xx a ověří ji (0xB9xx). Zařízení pak zabliká na své nové krátké adrese (RECALL MIN, RECALL MAX, RECALL MIN) a opustí vyhledávání (WITHDRAW, 0xAB00); průvodce pokračuje dalším kolem od stavu Start
6KontrolaPotvrdí nalezenou náhodnou adresu příkazem COMPARE na dolním a horním konci zúženého okna — jedna odpověď vede do stavu PROGRAM SHORT ADDRESS, kolize nebo žádná odpověď do stavu Zkusit znovu
7Zkusit znovuObnova po kolizi / timeoutu — půlí aktuální vyhledávací interval a opakuje; když se interval vyčerpá, začne nové kolo s INITIALISE + RANDOMISE
8DokončitNastane po třech kolech vyhledávání bez nově naprogramovaného zařízení nebo když jsou obsazeny všechny krátké adresy 0–63. Přečte DALI výsledný bajt, emituje TapHome informaci/chybovou zprávu (při úspěchu Search finished) a ukončí průvodce

Typický postup uvedení do provozu:

  1. Napájejte DALI sběrnici (RESI-DALI-PS), zařízení zapojte ve stromové topologii a ujistěte se, že sběrnici neřídí nic jiného.
  2. (Volitelné, ale doporučené) nejprve spusťte akci modulu Resetovat krátké adresy s Confirm = Yes, abyste začali z čistého stavu bez adresovaných zařízení.
  3. Vyberte Start — odešle INITIALISE + RANDOMISE, takže každé zařízení si zvolí novou 24bitovou náhodnou adresu.
  4. Přepínač pak sám projde stavy Skenovat krátkou adresu → Set SEARCHADDR → Kontrola → PROGRAM SHORT ADDRESS a vrátí se na Start pro další zařízení. Každé nově naprogramované zařízení jednou zabliká na své nové krátké adrese, což ukáže, které svítidlo dostalo kterou adresu.
  5. Kolize a timeouty řeší Zkusit znovu automaticky, bez zásahu instalatéra.
  6. Když se přepínač zastaví na Dokončit, přečtěte informaci/chybovou zprávu a poté vyberte TERMINATE, čímž ukončíte DALI adresovací relaci.
  7. Použijte servisní atributy Gear 0 … Gear 63 a akce Turn On / Off All Lamps k ověření, že krátké adresy 0–N jsou nyní obsazeny (viz níže).

Instalatér přesto potřebuje během běhu sledovat chování DALI sběrnice (potvrzovací zablikání, rytmus LED STATE na bráně), aby zachytil špatně zapojená nebo chybějící zařízení.

DALI gear sonda — Gear 0 … Gear 63

Každý ze 64 servisních atributů Gear 0, Gear 1, … Gear 63 sonduje jednu DALI krátkou adresu příkazem DALI 2.0 QUERY DEVICE TYPE (0x99). Interně šablona zapíše (SA << 8) | 0x99 do H:511, polluje H:550 bity 0–2 dokud nedorazí odpověď, poté přečte odpovídající bajt z H:511.

Možné návratové hodnoty v TapHome servisním UI:

  • DT{n} — ovládací zařízení je naprogramováno na této adrese a odpovědělo device type n. Typické hodnoty: DT0 (zářivka), DT1 (nouzové), DT2 (HID), DT5 (0–10 V), DT6 (LED driver), DT7 (relé), DT8 (barva / tunable white), DT9 (sekvencer).
  • -- — na této adrese není naprogramováno žádné zařízení nebo brána vrátila sentinel 0x8000 “no answer / already consumed”.

Sonda poskytuje rychlý pass/fail přehled o tom, které krátké adresy jsou po uvedení do provozu obsazeny a jaké device type byly objeveny — to je primární verifikační krok před přepnutím projektu na operační šablonu Resi Dali.

Akce na úrovni brány

Sedm servisních akcí na modulu řídí bránu přímo:

  • Reset Gateway — zapíše 1 do H:6000 (DIP SWITCH / SOFTWARE RESET). Restartuje bránu; užitečné po zkratu sběrnice pro obnovení DALI motoru.
  • Set Slave ID — zapíše nové Unit ID (1–255) do FLASH registru H:65221, poté resetuje přes H:6000. Vyžaduje DIP4 = OFF, aby akce měla účinek.
  • Turn On All Lamps — zapíše 0xFE (výkonový oblouk 254 = 100 %) do DALI broadcast úrovňového registru H:530. Rozsvítí každé zařízení na sběrnici bez ohledu na krátkou adresu — rychlé vizuální potvrzení, že sběrnice a zdroj jsou v pořádku.
  • Turn Off All Lamps — zapíše 0x00 do H:530, zhasne každé zařízení. Stejná broadcast cesta, opačná hodnota.
  • Resetovat krátké adresy — parametr Confirm (Yes / No). Při Yes odešle DTR0 = 0xFF (0xA3FF) a broadcast SET SHORT ADDRESS, takže každé zařízení na sběrnici ztratí svou krátkou adresu; další běh průvodce pak čísluje zařízení od krátké adresy 0. Při No se nic neodešle.
  • Delete short address — parametry Short address (0–63) a Confirm (Yes / No). Příkazem QUERY CONTROL GEAR PRESENT (0x91) ověří, že na adrese odpovídá zařízení, odešle DTR0 = 0xFF a SET SHORT ADDRESS na tuto adresu, poté ověří znovu a nahlásí Address N deleted, Address N still answers, No gear answers on address N nebo Not confirmed.
  • Change short address — parametry Old short address a New short address (0–63). Příkazem QUERY CONTROL GEAR PRESENT ověří, že nová adresa je volná a že na staré odpovídá právě jedno zařízení, přesune zařízení (DTR0 = nová adresa, SET SHORT ADDRESS na starou adresu) a potvrdí ho na nové adrese. Pokud starou adresu sdílí více zařízení, akce se zastaví a vyzve ke smazání adresy a spuštění adresovacího průvodce.

Servisní atribut Slave ID na modulu zpětně čte aktuální Unit ID z FLASH registru H:65221, takže před odesláním Set Slave ID lze ověřit aktuálně naprogramovanou adresu.

Dalších šest servisních atributů modulu zobrazuje informace o bráně: Gateway firmware (H:65202, jako verze a surová hex hodnota), Gateway software group (H:65201), Gateway hardware group (H:65200), Gateway firmware author (H:65203), Gateway DIP switches (H:10009, stav DIP 1–4 ve tvaru 1:… 2:… 3:… 4:…) a Gateway converter status (H:5050); hodnoty skupin, autora a stavu se zobrazují v hex.

Hned po zapojení a před spuštěním adresovacího průvodce spusťte Turn On All Lamps. Každé napájené a správně připojené zařízení na sběrnici se rozsvítí na 100 %, což je velmi rychlý způsob jak odhalit chybějící nebo špatně zapojená svítidla předtím, než strávíte čas programováním krátkých adres.

Řešení problémů

Průvodce při každém kroku spadne na timeout

  1. Ověřte napětí DALI sběrnice na svorkách zdroje — musí být 11,5–22,5 V (typicky 14–16 V). Výrazně nižší hodnota obvykle indikuje zkrat DALI.
  2. Zkontrolujte LED ERR na RESI-DALI-PS — pokud svítí, sběrnice je zkratovaná, přetížená nebo je zdroj sám vadný.
  3. Zkontrolujte LED STATE na bráně — pomalý rytmus 1 s znamená, že DALI sběrnice je v pořádku, rychlý rytmus ~250 ms indikuje chybu sběrnice, zkrat nebo chybějící DALI napájení.
  4. Ujistěte se, že s bránou současně nekomunikuje žádný jiný Modbus master (MODBUSConfigurator, BMS, PLC).

Gear 0–63 hlásí všechny -- po uvedení do provozu

  1. Změřte napětí DALI na zařízení nejdále od zdroje — musí být nad 9,5 V. Pokud je nižší, sběrnice je příliš dlouhá pro průřez vodiče (viz tabulka délek DALI kabelu výše). Rozdělte sběrnici na dva segmenty s druhým zdrojem.
  2. Znovu spusťte průvodce po akci modulu Resetovat krátké adresy (Confirm = Yes). Vyhledávání najde pouze zařízení bez krátké adresy, takže zařízení, která si stále drží dříve naprogramovanou adresu, se bez předchozího resetu znovu neadresují.
  3. Hledejte smyčky v zapojení. DALI netoleruje kruhy; přerušte jakoukoli smyčku a znovu zakončete oba otevřené konce.

Set Slave ID nezmění adresu

  1. Potvrďte DIP4 = OFF na bráně. Když je DIP4 = ON, hardware nutí Unit ID 255 bez ohledu na FLASH hodnotu.
  2. Potvrďte, že se brána po akci skutečně restartovala (LED brány krátce zhasnou). Pokud ne, spusťte ručně Reset Gateway.
  3. Znovu importujte šablonu s novým import parametrem SlaveId — dříve importovaný modul stále polluje na staré adrese.

Komunikace chvíli funguje a poté selže

  1. Zkontrolujte, že RS485 GND je připojena mezi bránou a společnou zemí napájecího zdroje TapHome. Chybějící GND je nejčastější chyba RS-485.
  2. Ověřte zakončení — 120 Ω na obou koncích RS-485 sběrnice. Pro RTU-over-TCP přes serial bridge se ujistěte, že je bridge v rámcovém RTU režimu, nikoli v raw TCP, a že meziznaková mezera na sériové straně odpovídá časování 9600 baud 8N1.
  3. Snižte počet paralelních DALI dotazů — brána serializuje DALI transakce a neřeší arbitráž mezi více Modbus mastery.

Dostupná zařízení 1

Tato zařízení se po importu zobrazí v TapHome.

Resi Dali - Konfigurace Modul
Servisní atributy
Slave IDČte Modbus Unit ID uložené ve FLASH registru H:65221 — slouží k ověření aktuální adresy brány
Gear 0DALI device-type sonda na krátké adrese 0 — vrací DT{n}, když ovládací zařízení odpoví, nebo -- když je adresa volná
Gear 1DALI device-type sonda na krátké adrese 1 — vrací DT{n} nebo --
Gear 2DALI device-type sonda na krátké adrese 2 — vrací DT{n} nebo --
Gear 3DALI device-type sonda na krátké adrese 3 — vrací DT{n} nebo --
Gear 4DALI device-type sonda na krátké adrese 4 — vrací DT{n} nebo --
Gear 5DALI device-type sonda na krátké adrese 5 — vrací DT{n} nebo --
Gear 6DALI device-type sonda na krátké adrese 6 — vrací DT{n} nebo --
Gear 7DALI device-type sonda na krátké adrese 7 — vrací DT{n} nebo --
Gear 8DALI device-type sonda na krátké adrese 8 — vrací DT{n} nebo --
Gear 9DALI device-type sonda na krátké adrese 9 — vrací DT{n} nebo --
Gear 10DALI device-type sonda na krátké adrese 10 — vrací DT{n} nebo --
Gear 11DALI device-type sonda na krátké adrese 11 — vrací DT{n} nebo --
Gear 12DALI device-type sonda na krátké adrese 12 — vrací DT{n} nebo --
Gear 13DALI device-type sonda na krátké adrese 13 — vrací DT{n} nebo --
Gear 14DALI device-type sonda na krátké adrese 14 — vrací DT{n} nebo --
Gear 15DALI device-type sonda na krátké adrese 15 — vrací DT{n} nebo --
Gear 16DALI device-type sonda na krátké adrese 16 — vrací DT{n} nebo --
Gear 17DALI device-type sonda na krátké adrese 17 — vrací DT{n} nebo --
Gear 18DALI device-type sonda na krátké adrese 18 — vrací DT{n} nebo --
Gear 19DALI device-type sonda na krátké adrese 19 — vrací DT{n} nebo --
Gear 20DALI device-type sonda na krátké adrese 20 — vrací DT{n} nebo --
Gear 21DALI device-type sonda na krátké adrese 21 — vrací DT{n} nebo --
Gear 22DALI device-type sonda na krátké adrese 22 — vrací DT{n} nebo --
Gear 23DALI device-type sonda na krátké adrese 23 — vrací DT{n} nebo --
Gear 24DALI device-type sonda na krátké adrese 24 — vrací DT{n} nebo --
Gear 25DALI device-type sonda na krátké adrese 25 — vrací DT{n} nebo --
Gear 26DALI device-type sonda na krátké adrese 26 — vrací DT{n} nebo --
Gear 27DALI device-type sonda na krátké adrese 27 — vrací DT{n} nebo --
Gear 28DALI device-type sonda na krátké adrese 28 — vrací DT{n} nebo --
Gear 29DALI device-type sonda na krátké adrese 29 — vrací DT{n} nebo --
Gear 30DALI device-type sonda na krátké adrese 30 — vrací DT{n} nebo --
Gear 31DALI device-type sonda na krátké adrese 31 — vrací DT{n} nebo --
Gear 32DALI device-type sonda na krátké adrese 32 — vrací DT{n} nebo --
Gear 33DALI device-type sonda na krátké adrese 33 — vrací DT{n} nebo --
Gear 34DALI device-type sonda na krátké adrese 34 — vrací DT{n} nebo --
Gear 35DALI device-type sonda na krátké adrese 35 — vrací DT{n} nebo --
Gear 36DALI device-type sonda na krátké adrese 36 — vrací DT{n} nebo --
Gear 37DALI device-type sonda na krátké adrese 37 — vrací DT{n} nebo --
Gear 38DALI device-type sonda na krátké adrese 38 — vrací DT{n} nebo --
Gear 39DALI device-type sonda na krátké adrese 39 — vrací DT{n} nebo --
Gear 40DALI device-type sonda na krátké adrese 40 — vrací DT{n} nebo --
Gear 41DALI device-type sonda na krátké adrese 41 — vrací DT{n} nebo --
Gear 42DALI device-type sonda na krátké adrese 42 — vrací DT{n} nebo --
Gear 43DALI device-type sonda na krátké adrese 43 — vrací DT{n} nebo --
Gear 44DALI device-type sonda na krátké adrese 44 — vrací DT{n} nebo --
Gear 45DALI device-type sonda na krátké adrese 45 — vrací DT{n} nebo --
Gear 46DALI device-type sonda na krátké adrese 46 — vrací DT{n} nebo --
Gear 47DALI device-type sonda na krátké adrese 47 — vrací DT{n} nebo --
Gear 48DALI device-type sonda na krátké adrese 48 — vrací DT{n} nebo --
Gear 49DALI device-type sonda na krátké adrese 49 — vrací DT{n} nebo --
Gear 50DALI device-type sonda na krátké adrese 50 — vrací DT{n} nebo --
Gear 51DALI device-type sonda na krátké adrese 51 — vrací DT{n} nebo --
Gear 52DALI device-type sonda na krátké adrese 52 — vrací DT{n} nebo --
Gear 53DALI device-type sonda na krátké adrese 53 — vrací DT{n} nebo --
Gear 54DALI device-type sonda na krátké adrese 54 — vrací DT{n} nebo --
Gear 55DALI device-type sonda na krátké adrese 55 — vrací DT{n} nebo --
Gear 56DALI device-type sonda na krátké adrese 56 — vrací DT{n} nebo --
Gear 57DALI device-type sonda na krátké adrese 57 — vrací DT{n} nebo --
Gear 58DALI device-type sonda na krátké adrese 58 — vrací DT{n} nebo --
Gear 59DALI device-type sonda na krátké adrese 59 — vrací DT{n} nebo --
Gear 60DALI device-type sonda na krátké adrese 60 — vrací DT{n} nebo --
Gear 61DALI device-type sonda na krátké adrese 61 — vrací DT{n} nebo --
Gear 62DALI device-type sonda na krátké adrese 62 — vrací DT{n} nebo --
Gear 63DALI device-type sonda na krátké adrese 63 — vrací DT{n} nebo --
Gear 58
Gear 59
Gear 60
Gear 61
Gear 62
Gear 63
Servisní akce
Reset GatewayZapíše 1 do registru H:6000 pro restart brány RESI-DALI — nutné po změně Slave ID nebo pro obnovu DALI motoru po zkratu sběrnice
Set Slave IDZapíše nové Modbus Unit ID do FLASH registru H:65221 a vyvolá reset, aby se brána restartovala s novou adresou (1–255, DIP4 musí být OFF)
Turn On All LampsZapíše 0xFE do DALI broadcast úrovňového registru H:530 — rozsvítí každé ovládací zařízení na sběrnici na maximální jas (rychlý test uvedení do provozu)
Turn Off All LampsZapíše 0x00 do DALI broadcast úrovňového registru H:530 — vypne každé ovládací zařízení na sběrnici
${xml_reset_short_addresses}
Delete short address
Change short address

${resi_dali_configuration}

Servisní atributy
${xml_slave_id}
modbusr(H,65221,uint16)
Gateway firmware
var x := modbusr(H, 65202, uint16);
return(getbits(x, 12, 4) + "." + getbits(x, 8, 4) + "." + getbits(x, 0, 8) + " (" + "0x" + tostring(x, "X4") + ")");
Gateway software group
var x := modbusr(H, 65201, uint16);
return("0x" + tostring(x, "X4"));
Gateway hardware group
var x := modbusr(H, 65200, uint16);
return("0x" + tostring(x, "X4"));
Gateway firmware author
var x := modbusr(H, 65203, uint16);
return("0x" + tostring(x, "X4"));
Gateway DIP switches
var x := modbusr(H, 10009, uint16);
return("1:" + getbit(x, 0) + " 2:" + getbit(x, 1) + " 3:" + getbit(x, 2) + " 4:" + getbit(x, 3));
Gateway converter status
var x := modbusr(H, 5050, uint16);
return("0x" + tostring(x, "X4"));
Gear 0
var ShortAddress := 0;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 1
var ShortAddress := 1;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 2
var ShortAddress := 2;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 3
var ShortAddress := 3;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 4
var ShortAddress := 4;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 5
var ShortAddress := 5;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 6
var ShortAddress := 6;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 7
var ShortAddress := 7;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 8
var ShortAddress := 8;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 9
var ShortAddress := 9;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 10
var ShortAddress := 10;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 11
var ShortAddress := 11;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 12
var ShortAddress := 12;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 13
var ShortAddress := 13;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 14
var ShortAddress := 14;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 15
var ShortAddress := 15;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 16
var ShortAddress := 16;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 17
var ShortAddress := 17;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 18
var ShortAddress := 18;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 19
var ShortAddress := 19;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 20
var ShortAddress := 20;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 21
var ShortAddress := 21;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 22
var ShortAddress := 22;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 23
var ShortAddress := 23;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 24
var ShortAddress := 24;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 25
var ShortAddress := 25;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 26
var ShortAddress := 26;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 27
var ShortAddress := 27;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 28
var ShortAddress := 28;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 29
var ShortAddress := 29;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 30
var ShortAddress := 30;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 31
var ShortAddress := 31;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 32
var ShortAddress := 32;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 33
var ShortAddress := 33;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 34
var ShortAddress := 34;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 35
var ShortAddress := 35;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 36
var ShortAddress := 36;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 37
var ShortAddress := 37;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 38
var ShortAddress := 38;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 39
var ShortAddress := 39;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 40
var ShortAddress := 40;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 41
var ShortAddress := 41;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 42
var ShortAddress := 42;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 43
var ShortAddress := 43;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 44
var ShortAddress := 44;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 45
var ShortAddress := 45;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 46
var ShortAddress := 46;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 47
var ShortAddress := 47;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 48
var ShortAddress := 48;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 49
var ShortAddress := 49;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 50
var ShortAddress := 50;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 51
var ShortAddress := 51;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 52
var ShortAddress := 52;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 53
var ShortAddress := 53;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 54
var ShortAddress := 54;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 55
var ShortAddress := 55;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 56
var ShortAddress := 56;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 57
var ShortAddress := 57;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 58
var ShortAddress := 58;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 59
var ShortAddress := 59;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 60
var ShortAddress := 60;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 61
var ShortAddress := 61;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 62
var ShortAddress := 62;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Gear 63
var ShortAddress := 63;
modbusw(SH, 511, uint16, (ShortAddress << 8) + 0x99);
sleep(5); var rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
var x := modbusr(SH, 511, uint16);
if (x != 0x8000, return("DT" + x), return("--"));
Servisní akce
${xml_reset_gateway}
modbusw(SH,6000,uint16,1)
${xml_set_slave_id}
Parametry: ${xml_slave_id} (1–255 SID)
modbusw(SH, 65221, uint16, SID);

modbusw(SH,6000, uint16, 1);
${xml_turn_on_all_lamps}
modbusw(SH, 530, uint16, 0xFE)
${xml_turn_off_all_lamps}
modbusw(SH, 530, uint16, 0x00)
${xml_reset_short_addresses}
Parametry: Confirm (Yes / No)
if CONF
    # DTR0 = 0xFF, then SET SHORT ADDRESS to all gear (sent twice): every gear loses its short address
    modbusw(SH, 541, uint16, 0xA3FF);
    sleep(100);
    modbusw(SH, 532, uint16, 0x80);
    SHORTADDR := -1;
    iterator := 64;
end
Delete short address
Parametry: Short address (0–63 ADDR), Confirm (Yes / No)
if CONF
    # QUERY CONTROL GEAR PRESENT first: nothing to delete when no gear answers
    var x := 0;
modbusr(SH, 511, uint16);
modbusw(SH, 511, uint16, (ADDR << 8) + 0x91);
sleep(60);
x := modbusr(SH, 511, uint16);
    if x = 0x8000
        return("No gear answers on address " + ADDR);
    end
    # DTR0 = 0xFF (MASK), then SET SHORT ADDRESS to that address (sent twice by the gateway): every gear on it loses the address
    modbusw(SH, 541, uint16, 0xA3FF);
    sleep(100);
    modbusw(SH, 512, uint16, (ADDR << 8) + 0x80);
    sleep(300);
modbusr(SH, 511, uint16);
modbusw(SH, 511, uint16, (ADDR << 8) + 0x91);
sleep(60);
x := modbusr(SH, 511, uint16);
    if x = 0x8000
        return("Address " + ADDR + " deleted");
    end
    return("Address " + ADDR + " still answers (0x" + tostring(x, "X4") + ")");
end
return("Not confirmed");
Change short address
Parametry: Old short address (0–63 FROM), New short address (0–63 TO)
if FROM = TO
    return("Old and new address are the same");
end
var x := 0;
# the new address must be free
modbusr(SH, 511, uint16);
modbusw(SH, 511, uint16, (TO << 8) + 0x91);
sleep(60);
x := modbusr(SH, 511, uint16);
if x != 0x8000
    return("Address " + TO + " is already in use");
end
# a gear must answer on the old address; a collision means more gears share it
modbusr(SH, 511, uint16);
modbusw(SH, 511, uint16, (FROM << 8) + 0x91);
sleep(60);
x := modbusr(SH, 511, uint16);
if x = 0x8000
    return("No gear answers on address " + FROM);
end
if x = 0x20FF
    return("More gears answer on address " + FROM + ", delete the address and run the addressing wizard");
end
# DTR0 = new address in the DALI format (2*TO + 1), then SET SHORT ADDRESS to the old address (sent twice by the gateway)
modbusw(SH, 541, uint16, 0xA300 + (TO << 1) + 1);
sleep(100);
modbusw(SH, 512, uint16, (FROM << 8) + 0x80);
sleep(300);
modbusr(SH, 511, uint16);
modbusw(SH, 511, uint16, (TO << 8) + 0x91);
sleep(60);
x := modbusr(SH, 511, uint16);
if x = 0x8000
    return("Change failed, no gear answers on address " + TO);
end
return("Gear moved from address " + FROM + " to " + TO);
Najít nová zařízení Vícestavový přepínač Čtení i zápis

Průvodce uvedením do provozu, který prochází algoritmem náhodného adresování DALI 2.0, aby přiřadil krátké adresy 0–63 ovládacím zařízením

Registr: H:541 → H:542 UInt16 numeric
Hodnoty / Stavy: TERMINATE · ${xml_start} · ${xml_scan_short_address} · Set SEARCHADDR · COMPARE · PROGRAM SHORT ADDRESS · Check · Try again · ${xml_finish}

Najít nová zařízení

Čtení stavu přepínače
var x := 0x8000; var rx := 0;

if Mu = 1
	if exit <= 0
		status := 255;
        return(8);
    end
    # check SEARCHADDRH
    modbusw(SH, 541, uint16, 0xB500 + getbyte(SEARCHADDRH,0));
    sleep(500);
    modbusw(SH, 541, uint16, 0xB300 + getbyte(SEARCHADDRH,1));
    sleep(500);
    modbusw(SH, 541, uint16, 0xB100 + getbyte(SEARCHADDRH,2));
    sleep(500);
    modbusw(SH, 541, uint16, 0xA900);
    sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    if !rx
        sleep(50);
        rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    end
    if rx
        x := modbusr(SH, 541, uint16);
        if getbyte(x, 0) = 0xFF
            #match: lets check
            return(2);
        else
            return(7);
        end
    else
        return(7);
    end
end
if Mu = 2
    # find max short address
    if SHORTADDR >= 63
        status := 254;
        return(8);
    end
    if iterator >= 64
        status := 10;
        return(3);
    end
    modbusw(SH, 511, uint16, (iterator << 8) + 0x91);
    sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
    x := modbusr(SH, 511, uint16);
    if (x = 0xFF, SHORTADDR := iterator); 
    iterator := iterator + 1;
end
if Mu = 3
    # bisection of SEARCHADDR in one run: SET SEARCHADDR to the middle, COMPARE, keep the half with an answer
    SEARCHADDRM := SEARCHADDRH - ((SEARCHADDRH - SEARCHADDRL) >> 1);
    while SEARCHADDRM != SEARCHADDRH and SEARCHADDRM != SEARCHADDRL
        modbusw(SH, 541, uint16, 0xB500 + getbyte(SEARCHADDRM,0));
        sleep(50);
        modbusw(SH, 541, uint16, 0xB300 + getbyte(SEARCHADDRM,1));
        sleep(50);
        modbusw(SH, 541, uint16, 0xB100 + getbyte(SEARCHADDRM,2));
        sleep(50);
        modbusw(SH, 541, uint16, 0xA900);
        sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2);
        if !rx
            sleep(50);
            rx := getbits(modbusr(SH, 550, uint16), 0, 2);
        end
        if rx
            x := modbusr(SH, 541, uint16);
            # collision or match: the gear is in the lower segment
            SEARCHADDRH := SEARCHADDRM;
        else
            # no response: look in the higher segment
            SEARCHADDRL := SEARCHADDRM;
        end
        SEARCHADDRM := SEARCHADDRH - ((SEARCHADDRH - SEARCHADDRL) >> 1);
    loop
    return(6);
end
if Mu = 4
    # COMPARE
    modbusw(SH, 541, uint16, 0xA900);
    sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    if !rx
        sleep(50);
        rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    end
    if rx
        x := modbusr(SH, 541, uint16);
        #collision or match: lets search the lower segment
        SEARCHADDRH := SEARCHADDRM;
    else
        #no response: lets look up in the higher segment
        SEARCHADDRL := SEARCHADDRM;
    end
    return(3);
end
if Mu = 6
    # check SEARCHADDRL
    modbusw(SH, 541, uint16, 0xB500 + getbyte(SEARCHADDRL,0));
    sleep(50);
    modbusw(SH, 541, uint16, 0xB300 + getbyte(SEARCHADDRL,1));
    sleep(50);
    modbusw(SH, 541, uint16, 0xB100 + getbyte(SEARCHADDRL,2));
    sleep(50);
    modbusw(SH, 541, uint16, 0xA900);
    sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    if !rx
        sleep(50);
        rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    end
    if rx
        x := modbusr(SH, 541, uint16);
        if getbyte(x, 0) = 0xFF
            #exact match: we have it, lets finish
            return(5);
        else
            #collision: 2 gear with same SEARCHADDR or something went wrong, start over
            return(7);
        end
    end
    # check SEARCHADDRH
    modbusw(SH, 541, uint16, 0xB500 + getbyte(SEARCHADDRH,0));
    sleep(50);
    modbusw(SH, 541, uint16, 0xB300 + getbyte(SEARCHADDRH,1));
    sleep(50);
    modbusw(SH, 541, uint16, 0xB100 + getbyte(SEARCHADDRH,2));
    sleep(50);
    modbusw(SH, 541, uint16, 0xA900);
    sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    if !rx
        sleep(50);
        rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    end    
    if rx
        x := modbusr(SH, 541, uint16);
        if getbyte(x, 0) = 0xFF
            #exact match: we have it, lets finish
            return(5);
        else
            #collision: 2 gear with same SEARCHADDR or something went wrong, start over
            return(7);
        end
    else
        #no response: something went wrong, finish with error
        status := 220;
        #return(8);
        return(7);
    end
end
if Mu = 5
	exit := 3;
    # PROGRAM SHORT ADDRESS
    SHORTADDR := SHORTADDR + 1;
    #program
    modbusw(SH, 542, uint16, 0xB701 + (SHORTADDR << 1));
    sleep(100);
    #verify
    modbusw(SH, 541, uint16, 0xB901 + (SHORTADDR << 1));
    sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
    x := modbusr(SH, 541, uint16);
    if getbyte(x, 0) = 0xFF
        status := 0;
    else
        status := 230;
        #return(8);
        SHORTADDR := SHORTADDR - 1;
        return(7);
    end
    #blink
    # blink the new address: RECALL MIN, RECALL MAX, RECALL MIN (short address in the upper byte)
    modbusw(SH, 511, uint16, (SHORTADDR << 8) + 0x06);
    sleep(500);
    modbusw(SH, 511, uint16, (SHORTADDR << 8) + 0x05);
    sleep(500);
    modbusw(SH, 511, uint16, (SHORTADDR << 8) + 0x06);
    #WITHDRAW
    modbusw(SH, 541, uint16, 0xAB00);
    sleep(100);
    SEARCHADDRH := 0xFFFFFF;
    SEARCHADDRL := 0;
    # a new search round needs a fresh 15-minute DALI window: INITIALISE (gear without short address) and RANDOMISE again
    modbusw(SH, 542, uint16, 0xA5FF);
    sleep(100);
    modbusw(SH, 542, uint16, 0xA700);
    sleep(100);
    return(1);
end
if Mu = 8
    # finish (state 8 since the short address reset moved to a module service action)
    # finish
    if(status = 99, adderror("Timeout!"));
    if(status = 220, adderror("Check failed! (" + tostring(SEARCHADDRH, "X2") + " | " + tostring(SEARCHADDRL, "X2") + " )"));
    if(status = 230, adderror("Verify short address failed! (" + tostring(SHORTADDR, "X2") + " | " + tostring(x, "X2") + 
        " | " + tostring(SEARCHADDRH, "X2") + " | " + tostring(SEARCHADDRM, "X2") + " | " + tostring(SEARCHADDRL, "X2") + " )"));
    if(status = 231, adderror("Short address mismatch! (" + tostring(SHORTADDR, "X2") + " | " + tostring(x, "X2") + " )"));
    if(status = 254, adderror("All short addresses are in use!"));
    if status = 255
        modbusw(SH, 531, uint16, 0x96);
        sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2); if(rx, 0, sleep(50));
        x := modbusr(SH, 531, uint16);
        if getbyte(x, 0) = 0xFF
            adderror("Some gear is still missing short address, but no response from SEARCHADDRH! ( " + tostring(SEARCHADDRH, "X2") + " )");
        else    
            status := 1;
        end
    end
    if(status = 1, addinfo("Search finished")); 
    if(status = 200 or status = 230 or status = 231 or status = 254, iterator := 0); 
end
#debug
#if(Mu = 7, addinfo("Debug:" + tostring(x, "X2") + " | " + status),0);

#if(Mu = 1, status := "rx:" + getbits(y, 0, 2) + "|" + getbits(y, 4, 1) + "|" + getbits(y, 5, 1), 0);
#if(Mu = 1, return(7),0);
if Mu = 7
	if SEARCHADDRH = SEARCHADDRL
    	SEARCHADDRH := 0xFFFFFF;
    	SEARCHADDRL := 0;
    	exit := exit -1;
        # a new search round needs a fresh 15-minute DALI window: INITIALISE (gear without short address) and RANDOMISE again
        modbusw(SH, 542, uint16, 0xA5FF);
        sleep(100);
        modbusw(SH, 542, uint16, 0xA700);
        sleep(100);
        return(1);
    end
	SEARCHADDRH := SEARCHADDRH >> 1;
	SEARCHADDRL := 0;
	if(iterator < 64, SHORTADDR := -1);
	if(iterator < 64, iterator := 0);    
    # check SEARCHADDRH
    modbusw(SH, 541, uint16, 0xB500 + getbyte(SEARCHADDRH,0));
    sleep(500);
    modbusw(SH, 541, uint16, 0xB300 + getbyte(SEARCHADDRH,1));
    sleep(500);
    modbusw(SH, 541, uint16, 0xB100 + getbyte(SEARCHADDRH,2));
    sleep(500);
    modbusw(SH, 541, uint16, 0xA900);
    sleep(5); rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    if !rx
        sleep(50);
        rx := getbits(modbusr(SH, 550, uint16), 0, 2);
    end
    if rx
        x := modbusr(SH, 541, uint16);
        if getbyte(x, 0) = 0xFF
            #match: lets check
            return(2);
        else
            return(6);
        end
    else
        return(6);
    end
end
return(Mu);
Zápis stavu přepínače
# TERMINATE
if(Mu = 0, modbusw(SH, 542, uint16, 0xA100), 0);
# INITIALIZE:CONTROL GEARS WITHOUT SHORT ADDRESS
if(Mu = 1, modbusw(SH, 542, uint16, 0xA5FF), 0);
if(Mu = 1, sleep(100));
# RANDOMIZE
if(Mu = 1, modbusw(SH, 542, uint16, 0xA700), 0);
if(Mu = 1, sleep(100));
# Init SEARCHADDR variables
if(Mu = 1, SEARCHADDRH := 0xFFFFFF, 0);
#if(Mu = 1, SEARCHADDRM := SEARCHADDRH / 2, 0);
if(Mu = 1, SEARCHADDRL := 0, 0);
if(Mu = 1, if(iterator < 64, SHORTADDR := -1, 0), 0);
if(Mu = 1, if(iterator < 64, iterator := 0, 0), 0);
if(Mu = 1, exit := 3, 0);
# Reset All to Defaults 
#if(Mu = 7, modbusw(SH, 532, uint16, 0x20), 0);
#if(Mu = 7, sleep(100));
#collision: halve interval


sleep(100);
Připojení: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Možná vylepšení (9)
  • H:510 Lamp Level (per short address) — Daily operational dimming (upper 8b = short addr, lower 8b = arc power 0–254). Covered by the sibling operational template (Resi Dali, Dali.xml) — this commissioning template is intentionally addressing-only
  • H:520 Group Level — Group 0–15 arc power for daily group control — handled by the operational Resi Dali template
  • H:521 Group Command — Group commands (ON/OFF/scenes/recall) — not needed for addressing
  • H:531 Broadcast Command — The Finish state uses H:531=0x96 internally to poll QUERY MISSING SHORT ADDRESS, but the register is not exposed as a user action
  • H:551 DALI Bus Error (word) — 1 = DALI bus fault / short — useful diagnostic during commissioning, could be added as a module-level service attribute
  • H:100 DALI Priority Slot — 0–4 → 12–16 ms forward-frame slots, default 2. Bus-tuning parameter; safe to leave at default
  • H:65222 Baud Rate (FLASH) — Only honored when DIP1=DIP2=ON. Template pins 9600 baud via connection_details, so this register is out of scope
  • H:65224 Parity (FLASH) — 0=None, 1=Even, 2=Odd. Template hard-codes None (8N1)
  • H:65225 Stop Bits (FLASH) — 1 or 2. Template hard-codes 1

Parametry importu

Tyto hodnoty zadáte při importu XML.

Ptá se v aplikaciVýchozí
Slave ID255
IP adresa192.168.1.0

Zdroje

Dokumenty výrobců jsou © jejich příslušných vlastníků. Poskytujeme je tak, jak je výrobce zveřejnil, pouze pro informaci.

Našli jste problém s touto šablonou zařízení?

Napište nám, co nefunguje, co chybí, nebo jak by se měla šablona chovat. Vaše zpětná vazba nám pomáhá udržet katalog přesný.

Šablona · portál TapHome Resi Dali - Konfigurace Otevřete tuto šablonu v zákaznickém portálu a použijte ji ve svém domově, nebo navrhněte úpravu a odešlete ji zpět do katalogu. Modbus RTU Zobrazit v portálu TapHome