TapHome

Resi Dali - Configuration

Modbus RTU
Autor
Posljednje ažuriranje: 10. 2026

Potreban je vanjski pristupnik (gateway)

Resi RESI-DALI-PS — stranica proizvoda

Resi Dali - Configuration

Predložak Resi Dali - Konfiguracija jednokratni je alat za puštanje u rad i adresiranje za Modbus-DALI pristupnik (gateway) RESI-DALI-SIO i RESI-DALI-ETH tvrtke RESI Informatik & Automation GmbH. Iz sustava TapHome pokreće algoritam nasumičnog adresiranja DALI 2.0 kojim se predspojnim napravama na tek ožičenoj sabirnici DALI dodjeljuju kratke adrese 0–63, na svakoj adresi provjerava vrstu DALI uređaja i nudi skupne testove uključivanja/isključivanja: sve što je potrebno da se nova instalacija dovede u stanje u kojem se žaruljama može upravljati pojedinačno.

Komunikacija s pristupnikom koristi Modbus RTU na 9600 baud 8N1. Predložak daje i parametar uvoza IpAddress, pa isti postupak radi i preko pretvarača serijske veze u IP (Moxa NPort, USR-TCP232) ili preko RESI-DALI-ETH postavljenog u transparentni način RTU preko Etherneta.

Ovaj predložak namjerno služi samo za adresiranje. Nakon dodjele kratkih adresa uklonite modul Resi Dali - Konfiguracija i za svakodnevno upravljanje koristite srodni predložak za rad Resi DALI (Dali.xml): prigušivanje pojedinačnih žarulja, prigušivanje grupa i dijagnostika pojedinih predspojnih naprava. Modul za puštanje u rad nije predviđen da ostane u projektu nakon početnog postavljanja.

Hardversko spajanje

RESI-DALI-SIO je master pristupnik za DIN šinu (17,5 × 90 × 56,4 mm, CEM17) koji se nalazi između serijskog/Ethernet nadređenog sustava i sabirnice DALI rasvjete. Pristupnik ne napaja sabirnicu DALI: obavezno je zasebno napajanje sabirnice DALI (RESI-DALI-PS ili bilo koje sukladno DALI napajanje od 200 mA).

Spajanje RESI-DALI-SIO (RS-485)
Shema spajanja RESI-DALI-SIO — vanjsko DALI napajanje (gore) i s RESI-DALI-PS (dolje)

Stezaljke na lijevoj strani RESI-DALI-SIO (odozgo prema dolje): GND, +12..48V=, RS485 DATA+ (A+), RS485 DATA- (B-), RS485 GND, RS232 TX, RS232 RX, RS232 GND. Stezaljke sabirnice DALI na suprotnoj strani su D+ / N/C / D- (tropolni blok USLIM, N/C ostaje nespojen).

Za instalaciju TapHome koristite sučelje RS-485:

  • RS485 DATA+ (A+) → A+/D+ na sabirnici RS-485 sustava TapHome
  • RS485 DATA- (B-) → B-/D- na sabirnici RS-485 sustava TapHome
  • RS485 GND → GND na napajanju TapHome (preporučeno za stabilnu komunikaciju)
  • +12..48V= / GND → primarno napajanje 12–48 V DC
Spajanje RESI-DALI-ETH (Ethernet)
Shema spajanja RESI-DALI-ETH — vanjsko DALI napajanje (gore) i s RESI-DALI-PS (dolje)

Ethernet varijanta ima iste stezaljke sabirnice DALI (D+ / N/C / D-) i primarno napajanje (GND, +12..48V=), uz jedan konektor RJ45 za Ethernet 10/100 Mbit. Tvorničke IP postavke su 192.168.0.191 / 255.255.255.0 / 192.168.0.1 s Modbus Unit ID 255; pristupni podaci web-sučelja su RESI / RESI. TapHome s varijantom ETH komunicira u transparentnom načinu RTU preko Etherneta, koji ovaj predložak za puštanje u rad očekuje (vidi Konfiguracija niže).

Napajanje sabirnice DALI
RESI-DALI-PS — samostalno napajanje sabirnice DALI (gore) i u kombinaciji s pristupnikom SIO/ETH (dolje)

RESI-DALI-PS daje do 200 mA na sabirnici DALI (struja kratkog spoja ~225 mA, napon sabirnice obično 14–18 V) i podržava do 64 predspojne naprave DALI 1.0 ili DALI 2.0 na jednoj liniji. Primarna strana prihvaća isto napajanje 12–48 V DC kao jedinica SIO/ETH. Pristupnik i napajanje spajaju se na isti par D+ / D-: napajanje napaja sabirnicu, a pristupnik čita i upisuje DALI okvire.

Tri LED diode na napajanju pomažu pri puštanju u rad: POWER (primarno napajanje 12–48 V u redu, stalno svijetli), DALI (kratko treperi tijekom prometa na sabirnici), ERR (stalno svijetli pri kvaru napajanja, kratkom spoju DALI ili preopterećenju sabirnice — u normalnom radu mora biti ugašena).

Pravila za sabirnicu DALI

Linija DALI ima nekoliko strogih ograničenja koja izravno utječu na uspjeh puštanja u rad:

Presjek vodičaNajveća duljina DALI kabela
1,5 mm²300 m
1,0 mm²238 m
0,75 mm²174 m
0,5 mm²116 m

Ograničenje proizlazi iz najvećeg dopuštenog pada napona od 2 V na DALI kabelu. Ostala pravila:

  • Najviše 64 predspojne naprave DALI 1.0 i do 64 predspojne naprave DALI 2.0 po sabirnici (odvojeni prostori kratkih adresa).
  • Samo stablasta topologija — bez prstenova i petlji.
  • Stvarni broj predspojnih naprava ovisi i o nazivnoj struji napajanja (na RESI-DALI-PS obično 200 mA; računajte ~2 mA po predspojnoj napravi plus rezervu).

RESI-DALI-PS (ili odgovarajuće DALI napajanje) je obavezno. Bez njega RESI-DALI-SIO/ETH ne može pogoniti sabirnicu i čarobnjaku za puštanje u rad istječe vrijeme na svakom koraku. Ako se na dugoj liniji koristi drugo napajanje, umetnite DALI prigušnicu ili podijelite sabirnicu na galvanski odvojene segmente.

Konfiguracija

Uključivanje Modbus komunikacije

Svi serijski parametri nadređenog sustava na RESI-DALI-SIO biraju se četveropoložajnom DIP sklopkom na modulu. Predložak TapHome fiksno koristi 9600 baud 8N1, pa DIP sklopke treba postaviti u skladu s tim.

DIP1DIP2Brzina prijenosa
OFFOFF9600 bd (potrebno za TapHome)
ONOFF19200 bd
OFFON38400 bd
ONONKoristi brzinu prijenosa programiranu u FLASH (tvornički 57600 bd)
DIP4Izvor Modbus Unit ID-a
OFFFLASH registar H:65221 — potrebno da bi radnja Set Slave ID imala učinak
ONPrisilno 255 (hardverska rezervna vrijednost, vrijednost u FLASH se zanemaruje)

DIP3 je rezervirani bit specifičan za proizvod; ostavite ga u tvorničkom položaju, osim ako servisni priručnik RESI izričito ne navodi drugačije. Paritet je u zadanim vrijednostima FLASH fiksno None (8N1); predložak ne daje registre pariteta i stop bitova.

Zaključenje RS-485: sabirnicu zaključite s 120 Ω na oba kraja. TapHome Core osigurava jedno zaključenje na svojim stezaljkama BUS; ako je pristupnik RESI posljednji uređaj na liniji, dodajte zasebni zaključni otpornik od 120 Ω između A+/B- na njegovim stezaljkama RS-485.

Postavljanje RTU preko TCP-a: predložak ima parametre uvoza SlaveId i IpAddress, jer isti postupak puštanja DALI u rad radi i preko pretvarača serijske veze u IP (Moxa NPort, USR-TCP232) ili preko RESI-DALI-ETH u transparentnom načinu RTU preko Etherneta. U tom slučaju u IpAddress upišite IP adresu pretvarača / jedinice ETH, a ostale postavke ostavite iste kao kod varijante RS-485. Za čisti Modbus/TCP na RESI-DALI-ETH prirodniji bi bio predložak temeljen na TCP-u — predložak DaliConfig pretpostavlja upravo RTU promet u okvirima.

Postavljanje Slave ID-a pristupnika

Tvornički zadani Unit ID je 255. Za promjenu:

  1. Na pristupniku postavite DIP4 = OFF kako bi se uvažavao Unit ID iz FLASH.
  2. Uvezite predložak u TapHome sa SlaveId = 255 (trenutačna adresa).
  3. Otvorite servisne postavke modula „Resi Dali - Konfiguracija” i pokrenite radnju Set Slave ID sa željenim novim ID-om (raspon 1–255). Radnja upisuje vrijednost u registar H:65221 i odmah pokreće softverski reset preko H:6000 = 1, pa se pristupnik ponovno pokreće s novom adresom.
  4. Uklonite predložak i ponovno ga uvezite sa SlaveId postavljenim na novu vrijednost. Modul se tada može koristiti za puštanje u rad.

Radnja Reset Gateway (upisuje 1 u H:6000) dostupna je i kao zaseban korak oporavka, korisna nakon kratkog spoja na sabirnici DALI koji je DALI jezgru pristupnika ostavio u lošem stanju.

Samo jedan Modbus master istodobno. Ni DALI ni sabirnica Modbus RTU ne arbitriraju između istodobnih mastera. Ako tijekom puštanja u rad pristupnik očitava i PLC, nadzorni sustav zgrade (BMS) ili alat na računalu (na primjer MODBUSConfigurator), programiranje kratkih adresa će se sudarati i čarobnjak će javljati greške.

Mogućnosti uređaja

Predložak je izgrađen oko jednog Modbus modula, Resi Dali - Konfiguracija, koji objedinjuje čarobnjak za puštanje u rad, provjeru vrste DALI uređaja za svaku kratku adresu 0–63 i četiri radnje na razini pristupnika.

Čarobnjak za puštanje u rad — Pronađi nove uređaje

Pronađi nove uređaje je prekidač s više vrijednosti s deset stanja koji algoritam nasumičnog adresiranja DALI 2.0 izvodi u zasebnim koracima. Svaki naziv stanja odgovara jednoj fazi slijeda puštanja u rad DALI 2.0; odabirom stanja predložak šalje odgovarajući sirovi 16-bitni DALI okvir na H:541 / H:542, a zatim na H:550 očitava stanje DALI RX dok pristupnik ne odgovori.

KorakStanjeŠto radi
0TERMINATEDALI okvir TERMINATE (0xA100) — prekida trenutačnu sesiju adresiranja i resetira stanje pristupnika. Uvijek ga je sigurno pozvati
1PokreniINITIALISE (0xA5FF) + RANDOMISE (0xA700) — sve predspojne naprave bez adrese uključuje u skup za adresiranje i traži od svake da odabere 24-bitnu nasumičnu adresu
2Skeniraj kratku adresuProvjerava sljedeće mjesto kratke adrese; vraća kod stanja 7 kad nijedna predspojna naprava ne odgovori
3Set SEARCHADDRUčitava viši/srednji/niži bajt SEARCHADDR (0xB500/0xB300/0xB100) za binarno pretraživanje
4COMPAREŠalje COMPARE (0xA900) i prema odgovoru sužava 24-bitni prozor pretraživanja
5PROGRAM SHORT ADDRESSUpisuje provjerenu kratku adresu preko 0xB7xx — predspojna naprava je sada trajno adresirana
6ProvjeraProvjerava programiranu adresu drugim COMPARE na konačnom SEARCHADDRL
7Pokušaj ponovnoOporavak nakon kolizije / isteka vremena — prepolovljuje trenutačni interval pretraživanja i ponavlja pokušaj
8Resetiraj kratke adreseDALI DTR = 0xFF (0xA3FF) + skupno REMOVE SHORT ADDRESS — briše sve postojeće kratke adrese, spremno za potpuno ponovno adresiranje
9ZavršiČita DALI bajt rezultata, ispisuje informativnu poruku ili poruku o grešci u sustavu TapHome i izlazi iz čarobnjaka

Uobičajeni postupak puštanja u rad:

  1. Uključite napajanje sabirnice DALI (RESI-DALI-PS), ožičite predspojne naprave u stablastoj topologiji i provjerite da sabirnicom ne upravlja ništa drugo.
  2. (Neobavezno, ali preporučeno) najprije pokrenite Resetiraj kratke adrese kako biste krenuli od čistog stanja u kojem nijedna predspojna naprava nema adresu.
  3. Pokrenite Pokreni: šalje INITIALISE + RANDOMISE, pa svaka predspojna naprava odabire novu 24-bitnu nasumičnu adresu.
  4. Redom pokrenite Skeniraj kratku adresu → Set SEARCHADDR → COMPARE → PROGRAM SHORT ADDRESS → Provjera. Stanja obuhvaćaju binarno pretraživanje DALI 2.0; svaki korak pomiče algoritam za jednu fazu.
  5. Ako korak javi koliziju ili istek vremena, pozovite Pokušaj ponovno i ponovite slijed usporedbe i programiranja.
  6. Kad su sve vidljive predspojne naprave programirane, pokrenite TERMINATE, a zatim Završi za uredan izlazak iz čarobnjaka.
  7. Pomoću servisnih atributa Gear 0 … Gear 63 i radnji Turn On / Off All Lamps provjerite jesu li kratke adrese 0–N sada zauzete (vidi niže).

Čarobnjak je namijenjen prolasku stanje po stanje: predložak ne automatizira cijelu petlju jer instalater mora pratiti ponašanje sabirnice DALI (pulsiranje žarulja, ritam LED diode STATE na pristupniku) kako bi uočio pogrešno ožičene predspojne naprave ili one koje nedostaju.

Provjera DALI predspojnih naprava — Gear 0 … Gear 63

Svaki od 64 servisna atributa Gear 0, Gear 1, … Gear 63 provjerava jednu kratku DALI adresu naredbom DALI 2.0 QUERY DEVICE TYPE (0x99). Predložak interno upisuje (SA << 8) | 0x99 u H:511, očitava bitove 0–2 registra H:550 dok ne stigne odgovor, a zatim bajt odgovora čita iz H:511.

Moguće vrijednosti u servisnom sučelju TapHome:

  • DT{n} — na ovoj adresi programirana je predspojna naprava koja je odgovorila vrstom uređaja n. Tipične vrijednosti: DT0 (fluorescentna), DT1 (sigurnosna), DT2 (HID), DT5 (0–10 V), DT6 (LED driver), DT7 (relej), DT8 (boja / podesiva bijela), DT9 (sekvencer).
  • -- — na ovoj adresi nije programirana nijedna predspojna naprava ili je pristupnik vratio oznaku 0x8000 „nema odgovora / odgovor već pročitan”.

Provjera brzo pokazuje koje su kratke adrese nakon puštanja u rad zauzete i koje su vrste uređaja pronađene: to je glavni korak provjere prije prelaska projekta na predložak za rad Resi Dali.

Radnje na razini pristupnika

Četiri servisne radnje na modulu izravno upravljaju pristupnikom:

  • Reset Gateway — upisuje 1 u H:6000 (DIP SWITCH / SOFTWARE RESET). Ponovno pokreće pristupnik; korisno nakon kratkog spoja na sabirnici za oporavak DALI jezgre.
  • Set Slave ID — upisuje novi Unit ID (1–255) u FLASH registar H:65221, a zatim pokreće reset preko H:6000. Za učinak je potrebno DIP4 = OFF.
  • Turn On All Lamps — upisuje 0xFE (razina snage 254 = 100 %) u registar skupne DALI razine H:530. Uključuje svaku predspojnu napravu na sabirnici bez obzira na kratku adresu: brza vizualna potvrda da su sabirnica i napajanje ispravni.
  • Turn Off All Lamps — upisuje 0x00 u H:530 i isključuje svaku predspojnu napravu. Isti put skupnog slanja, suprotna vrijednost.

Servisni atribut Slave ID na modulu očitava trenutačni Unit ID iz FLASH registra H:65221, pa se trenutačno programirana adresa može provjeriti prije slanja radnje Set Slave ID.

Pokrenite Turn On All Lamps odmah nakon ožičenja, prije pokretanja čarobnjaka za adresiranje. Svaka predspojna naprava na sabirnici koja ima napajanje i ispravno je spojena uključit će se na 100 %, što je vrlo brz način da se prije programiranja kratkih adresa uoče svjetiljke koje nedostaju ili su pogrešno ožičene.

Rješavanje problema

Čarobnjaku istječe vrijeme na svakom koraku
  1. Provjerite napon sabirnice DALI na stezaljkama napajanja: mora biti 11,5–22,5 V (tipično 14–16 V). Znatno niža vrijednost obično znači kratki spoj DALI.
  2. Provjerite LED diodu ERR na RESI-DALI-PS: ako svijetli, sabirnica je u kratkom spoju, preopterećena ili je neispravno samo napajanje.
  3. Provjerite LED diodu STATE na pristupniku: spori ritam od 1 s znači da je sabirnica DALI ispravna, a brzi ritam od ~250 ms upućuje na grešku sabirnice, kratki spoj ili nedostatak DALI napajanja.
  4. Provjerite da s pristupnikom istodobno ne komunicira nijedan drugi Modbus master (MODBUSConfigurator, BMS, PLC).
Svi Gear 0–63 nakon puštanja u rad javljaju --
  1. Izmjerite DALI napon na predspojnoj napravi najudaljenijoj od napajanja: mora biti iznad 9,5 V. Ako je niži, sabirnica je preduga za presjek kabela (vidi tablicu duljina DALI kabela gore). Podijelite sabirnicu na dva segmenta s drugim napajanjem.
  2. Ponovno pokrenite čarobnjak počevši od Resetiraj kratke adrese. Ne pokrećite Pokreni na sabirnici koja još sadrži prethodno programirane predspojne naprave, osim ako prije toga ne napravite reset: algoritam pronalazi samo predspojne naprave bez kratke adrese.
  3. Potražite petlje u ožičenju. DALI ne podnosi prstenove; prekinite svaku pronađenu petlju i ponovno zaključite oba otvorena kraja.
Set Slave ID ne mijenja adresu
  1. Provjerite je li na pristupniku DIP4 = OFF. Kad je DIP4 = ON, hardver prisilno koristi Unit ID 255 bez obzira na vrijednost u FLASH.
  2. Provjerite je li se pristupnik nakon radnje doista ponovno pokrenuo (LED diode pristupnika nakratko se ugase). Ako nije, ručno pokrenite Reset Gateway.
  3. Ponovno uvezite predložak s novim parametrom uvoza SlaveId: prethodno uvezeni modul i dalje očitava staru adresu.
Komunikacija kratko radi, a zatim prestaje
  1. Provjerite je li RS485 GND spojen između pristupnika i zajedničke mase napajanja TapHome. Nespojeni GND najčešća je greška RS-485.
  2. Provjerite zaključenje: 120 Ω na oba kraja sabirnice RS-485. Za RTU preko TCP-a kroz serijski pretvarač provjerite radi li pretvarač u načinu RTU s okvirima, a ne kao sirovi TCP, i odgovara li razmak između znakova na serijskoj strani vremenskim zahtjevima za 9600 baud 8N1.
  3. Smanjite broj istodobnih DALI upita: pristupnik DALI transakcije obrađuje jednu po jednu i ne arbitrira između više Modbus mastera.

Dostupni uređaji

Resi Dali - Konfiguracija Modul
Servisni atributi
Slave IDČita Modbus Unit ID spremljen u FLASH registru H:65221 — služi za provjeru trenutačne adrese pristupnika
Gear 0Provjera vrste DALI uređaja na kratkoj adresi 0 — vraća DT{n} kad predspojna naprava odgovori ili -- kad je adresa slobodna
Gear 1Provjera vrste DALI uređaja na kratkoj adresi 1 — vraća DT{n} ili --
Gear 2Provjera vrste DALI uređaja na kratkoj adresi 2 — vraća DT{n} ili --
Gear 3Provjera vrste DALI uređaja na kratkoj adresi 3 — vraća DT{n} ili --
Gear 4Provjera vrste DALI uređaja na kratkoj adresi 4 — vraća DT{n} ili --
Gear 5Provjera vrste DALI uređaja na kratkoj adresi 5 — vraća DT{n} ili --
Gear 6Provjera vrste DALI uređaja na kratkoj adresi 6 — vraća DT{n} ili --
Gear 7Provjera vrste DALI uređaja na kratkoj adresi 7 — vraća DT{n} ili --
Gear 8Provjera vrste DALI uređaja na kratkoj adresi 8 — vraća DT{n} ili --
Gear 9Provjera vrste DALI uređaja na kratkoj adresi 9 — vraća DT{n} ili --
Gear 10Provjera vrste DALI uređaja na kratkoj adresi 10 — vraća DT{n} ili --
Gear 11Provjera vrste DALI uređaja na kratkoj adresi 11 — vraća DT{n} ili --
Gear 12Provjera vrste DALI uređaja na kratkoj adresi 12 — vraća DT{n} ili --
Gear 13Provjera vrste DALI uređaja na kratkoj adresi 13 — vraća DT{n} ili --
Gear 14Provjera vrste DALI uređaja na kratkoj adresi 14 — vraća DT{n} ili --
Gear 15Provjera vrste DALI uređaja na kratkoj adresi 15 — vraća DT{n} ili --
Gear 16Provjera vrste DALI uređaja na kratkoj adresi 16 — vraća DT{n} ili --
Gear 17Provjera vrste DALI uređaja na kratkoj adresi 17 — vraća DT{n} ili --
Gear 18Provjera vrste DALI uređaja na kratkoj adresi 18 — vraća DT{n} ili --
Gear 19Provjera vrste DALI uređaja na kratkoj adresi 19 — vraća DT{n} ili --
Gear 20Provjera vrste DALI uređaja na kratkoj adresi 20 — vraća DT{n} ili --
Gear 21Provjera vrste DALI uređaja na kratkoj adresi 21 — vraća DT{n} ili --
Gear 22Provjera vrste DALI uređaja na kratkoj adresi 22 — vraća DT{n} ili --
Gear 23Provjera vrste DALI uređaja na kratkoj adresi 23 — vraća DT{n} ili --
Gear 24Provjera vrste DALI uređaja na kratkoj adresi 24 — vraća DT{n} ili --
Gear 25Provjera vrste DALI uređaja na kratkoj adresi 25 — vraća DT{n} ili --
Gear 26Provjera vrste DALI uređaja na kratkoj adresi 26 — vraća DT{n} ili --
Gear 27Provjera vrste DALI uređaja na kratkoj adresi 27 — vraća DT{n} ili --
Gear 28Provjera vrste DALI uređaja na kratkoj adresi 28 — vraća DT{n} ili --
Gear 29Provjera vrste DALI uređaja na kratkoj adresi 29 — vraća DT{n} ili --
Gear 30Provjera vrste DALI uređaja na kratkoj adresi 30 — vraća DT{n} ili --
Gear 31Provjera vrste DALI uređaja na kratkoj adresi 31 — vraća DT{n} ili --
Gear 32Provjera vrste DALI uređaja na kratkoj adresi 32 — vraća DT{n} ili --
Gear 33Provjera vrste DALI uređaja na kratkoj adresi 33 — vraća DT{n} ili --
Gear 34Provjera vrste DALI uređaja na kratkoj adresi 34 — vraća DT{n} ili --
Gear 35Provjera vrste DALI uređaja na kratkoj adresi 35 — vraća DT{n} ili --
Gear 36Provjera vrste DALI uređaja na kratkoj adresi 36 — vraća DT{n} ili --
Gear 37Provjera vrste DALI uređaja na kratkoj adresi 37 — vraća DT{n} ili --
Gear 38Provjera vrste DALI uređaja na kratkoj adresi 38 — vraća DT{n} ili --
Gear 39Provjera vrste DALI uređaja na kratkoj adresi 39 — vraća DT{n} ili --
Gear 40Provjera vrste DALI uređaja na kratkoj adresi 40 — vraća DT{n} ili --
Gear 41Provjera vrste DALI uređaja na kratkoj adresi 41 — vraća DT{n} ili --
Gear 42Provjera vrste DALI uređaja na kratkoj adresi 42 — vraća DT{n} ili --
Gear 43Provjera vrste DALI uređaja na kratkoj adresi 43 — vraća DT{n} ili --
Gear 44Provjera vrste DALI uređaja na kratkoj adresi 44 — vraća DT{n} ili --
Gear 45Provjera vrste DALI uređaja na kratkoj adresi 45 — vraća DT{n} ili --
Gear 46Provjera vrste DALI uređaja na kratkoj adresi 46 — vraća DT{n} ili --
Gear 47Provjera vrste DALI uređaja na kratkoj adresi 47 — vraća DT{n} ili --
Gear 48Provjera vrste DALI uređaja na kratkoj adresi 48 — vraća DT{n} ili --
Gear 49Provjera vrste DALI uređaja na kratkoj adresi 49 — vraća DT{n} ili --
Gear 50Provjera vrste DALI uređaja na kratkoj adresi 50 — vraća DT{n} ili --
Gear 51Provjera vrste DALI uređaja na kratkoj adresi 51 — vraća DT{n} ili --
Gear 52Provjera vrste DALI uređaja na kratkoj adresi 52 — vraća DT{n} ili --
Gear 53Provjera vrste DALI uređaja na kratkoj adresi 53 — vraća DT{n} ili --
Gear 54Provjera vrste DALI uređaja na kratkoj adresi 54 — vraća DT{n} ili --
Gear 55Provjera vrste DALI uređaja na kratkoj adresi 55 — vraća DT{n} ili --
Gear 56Provjera vrste DALI uređaja na kratkoj adresi 56 — vraća DT{n} ili --
Gear 57Provjera vrste DALI uređaja na kratkoj adresi 57 — vraća DT{n} ili --
Gear 58Provjera vrste DALI uređaja na kratkoj adresi 58 — vraća DT{n} ili --
Gear 59Provjera vrste DALI uređaja na kratkoj adresi 59 — vraća DT{n} ili --
Gear 60Provjera vrste DALI uređaja na kratkoj adresi 60 — vraća DT{n} ili --
Gear 61Provjera vrste DALI uređaja na kratkoj adresi 61 — vraća DT{n} ili --
Gear 62Provjera vrste DALI uređaja na kratkoj adresi 62 — vraća DT{n} ili --
Gear 63Provjera vrste DALI uređaja na kratkoj adresi 63 — vraća DT{n} ili --
Servisne radnje
Reset GatewayUpisuje 1 u registar H:6000 za ponovno pokretanje pristupnika RESI-DALI — potrebno nakon promjene Slave ID-a ili za oporavak DALI jezgre nakon kratkog spoja na sabirnici
Set Slave IDUpisuje novi Modbus Unit ID u FLASH registar H:65221 i pokreće reset kako bi se pristupnik ponovno pokrenuo s novom adresom (1–255, DIP4 mora biti OFF)
Turn On All LampsUpisuje 0xFE u registar skupne DALI razine H:530 — svaku predspojnu napravu na sabirnici uključuje na najveću svjetlinu (brza provjera pri puštanju u rad)
Turn Off All LampsUpisuje 0x00 u registar skupne DALI razine H:530 — isključuje svaku predspojnu napravu na sabirnici

${resi_dali_configuration}

Servisni atributi
${xml_slave_id}
modbusr(H,65221,uint16)
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("--"));
Servisne radnje
${xml_reset_gateway}
modbusw(SH,6000,uint16,1)
${xml_set_slave_id}
Parametri: ${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)
Pronađi nove uređaje Prekidač s više vrijednosti

Čarobnjak za puštanje u rad koji korak po korak prolazi algoritam nasumičnog adresiranja DALI 2.0 kako bi predspojnim napravama dodijelio kratke adrese 0–63

Registar: H:541 → H:542 UInt16 numeric
Vrijednosti / stanja: TERMINATE · ${xml_start} · ${xml_scan_short_address} · Set SEARCHADDR · COMPARE · PROGRAM SHORT ADDRESS · Check · Try again · ${xml_reset_short_addresses} · ${xml_finish}

Pronađi nove uređaje

Čitanje stanja sklopke
var x := 0x8000; var rx := 0;

if Mu = 1
	if exit <= 0
		status := 255;
        return(9);
    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(9);
    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
    # set SEARCHADDR
    SEARCHADDRM := SEARCHADDRH - ((SEARCHADDRH - SEARCHADDRL) >> 1);
    if(SEARCHADDRM = SEARCHADDRH or SEARCHADDRM = SEARCHADDRL, return(6));
    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);
    return(4);
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(9);
        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(9);
        SHORTADDR := SHORTADDR - 1;
        return(7);
    end
    #blink
    modbusw(SH, 511, uint16, SHORTADDR + 0x06);
    sleep(500);
    modbusw(SH, 511, uint16, SHORTADDR + 0x05);
    sleep(500);
    modbusw(SH, 511, uint16, SHORTADDR + 0x06);
    #WITHDRAW
    modbusw(SH, 541, uint16, 0xAB00);
    sleep(100);
    SEARCHADDRH := 0xFFFFFF;
    SEARCHADDRL := 0;
    return(1);
end
if Mu = 9
    # 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;
        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);
Zapis stanja sklopke
# 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 Short Addresses 
if(Mu = 8, modbusw(h, 541, uint16, 0xA3FF), 0);
if(Mu = 8, sleep(100));
if(Mu = 8, modbusw(h, 532, uint16, 0x80), 0);
if(Mu = 8, SHORTADDR := -1, 0);
if(Mu = 8, iterator := 64, 0);
# Reset All to Defaults 
#if(Mu = 7, modbusw(SH, 532, uint16, 0x20), 0);
#if(Mu = 7, sleep(100));
#collision: halve interval


sleep(100);
Povezivanje: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Moguća poboljšanja (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

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu