TapHome

Intesis IBOX-MBS-DALI

Modbus RTU
Inviato da
Ultimo aggiornamento: 06. 2026

Richiede gateway esterno

Intesis IBOX-MBS-DALI (IBMBSDAL0640000) — pagina prodotto

Intesis IBOX-MBS-DALI

Intesis IBOX-MBS-DALI è un convertitore di protocollo DALI-a-Modbus di Intesis (parte di HMS Networks) che espone reattori e gruppi di illuminazione DALI-2 come registri Modbus holding. Il template TapHome è destinato alla variante RTU a 1 canale (codice ordine IBMBSDAL0640000, ripubblicato come INMBSDAL0640200) e si connette a TapHome via RS-485 Modbus RTU sulla porta B del gateway.

Il template copre la piena capacità indirizzabile di una singola linea DALI: 64 reattori ECG individuali (indirizzi brevi 0–63) e 16 gruppi DALI. Ogni ECG supporta la rilettura del livello attuale (0–100 %), stato di guasto reattore/lampada e scrittura di arc power level, power-on level, system-failure level, fade time e fade rate. I gruppi DALI forniscono controllo dimmer in broadcast solo in scrittura. A livello di modulo, quattro service action di broadcast (All On, All Off, All Set Power-on Level, All Set System-failure Level) indirizzano ogni reattore sulla linea DALI con una singola scrittura Modbus.

Gli indirizzi brevi DALI, l’appartenenza ai gruppi, le scene e i livelli min/max devono essere pre-configurati con il software di commissioning gratuito Intesis MAPS prima che TapHome possa indirizzare i singoli reattori — il template TapHome non esegue autonomamente la discovery di rete DALI né l’assegnazione degli indirizzi.

Collegamento hardware

Varianti del gateway

Il template TapHome è costruito per il gateway RTU a 1 canale. La variante a 2 canali ha mappa registri identica ma non espone Modbus RTU (solo TCP), quindi non è compatibile con questo template RS-485.

Codice ordineCanali DALICapacità ECGGruppiModbus RTUModbus TCP
IBMBSDAL0640000 / INMBSDAL064020016416Sì (Port B)
IBMBSDAL1280000 / INMBSDAL1280200212832No
Intesis IBOX-MBS-DALI — disposizione delle porte sulle varianti a 1 canale (Modbus RTU + TCP) e 2 canali (solo Modbus TCP)

Il template TapHome usa la formula del registro 7000 × canale + 100 × ECG + segnale, valutata con canale = 0. Ciò corrisponde esattamente all’IBOX-MBS-DALI a 1 canale.

Layout dei connettori (IBOX-MBS-DALI a 1 canale)
Layout connettori IBOX-MBS-DALI a 1 canale — alimentazione, DALI Port A, Ethernet, Console, EIA232/EIA485 Port B

Vista dall’alto dell’IBOX-MBS-DALI a 1 canale:

  • Alimentazione — morsetto a vite plug-in a 3 poli, 24 VDC ±10 % (+ / − / Earth)
  • Port A / DALI — morsetto arancione a 2 poli, A4 (DA+) e A3 (DA−), alimentazione DALI 16 VDC
  • Ethernet — 1× RJ45 10/100 Mbps (Modbus TCP)
  • Console — mini-type B USB 2.0 per configurazione in Intesis MAPS
  • Port B / Modbus RTU — morsetto a vite EIA485 a 3 poli B1 (B+) / B2 (A−) / B3 (SGND) e EIA232 SUB-D9 male (alternativa)
  • USB — Type-A USB 2.0 solo per unità flash (max 150 mA)
  • SWA / SWB — DIP switch (SWA riservato, SWB controlla terminazione e polarizzazione RS-485 — vedi sotto Configurazione)
Alimentazione
  • Ingresso: 24 VDC ±10 % sul morsetto a 3 poli (+, −, Earth)
  • Sorgente: NEC Class 2 o Limited Power Source (LPS), classificata SELV
  • Protezione a monte: richiesto interruttore 250 V / 6 A
  • Messa a terra: può essere collegata a terra solo tramite il polo negativo — mai tramite il polo positivo

Per evitare loop di terra che possono danneggiare il gateway e le apparecchiature collegate, non usare mai un’alimentazione DC con il polo positivo collegato a terra. Collega a terra solo tramite il polo negativo, oppure lascia la terra flottante.

Cablaggio RS-485 Modbus RTU (Port B, EIA485)

Collega il bus RS-485 di TapHome al morsetto EIA485 sulla Port B:

Morsetto IBOX-MBS-DALISegnaleTapHome RS-485
B1B+ (D+)A+ / D+
B2A− (D−)B− / D−
B3SGND (terra di riferimento)GND

Rispetta la polarità. B1 = B+ (D+) e B2 = A− (D−). Incrociare A/B interromperà silenziosamente la comunicazione senza danni hardware.

Specifiche cavo (limiti EIA485):

  • Lunghezza max: 1200 m su un singolo segmento RS-485
  • Nodi max: 32 dispositivi compresi il master TapHome e l’IBOX-MBS-DALI
  • Terminazione: 120 Ω a ogni estremità del bus — TapHome Core ha un resistore 120 Ω integrato sui suoi morsetti BUS, quindi l’IBOX-MBS-DALI necessita la terminazione abilitata solo se si trova all’estremità del segmento RS-485 (vedi DIP switch SWB sotto)

Se il gateway è installato al centro del bus RS-485 (non all’estremità), lascia SWB in posizione OFF e non aggiungere terminazione esterna.

Alternativa EIA232: il connettore SUB-D9 maschio della Port B fornisce un’interfaccia EIA232 utilizzando solo TX, RX e GND, con una lunghezza massima del cavo di 15 m. TapHome non supporta nativamente RS-232, quindi EIA485 è la connessione TapHome standard.

Cablaggio bus DALI (Port A)

Collega la linea DALI al morsetto arancione a 2 poli della Port A:

  • A4 — DA+
  • A3 — DA−

IBOX-MBS-DALI fornisce una tensione di bus di 16 VDC (±2 %), con una corrente DALI garantita di 235 mA (max 250 mA). DALI è insensibile alla polarità per standard, ma questa alimentazione interna deve essere abilitata in Intesis MAPS prima che qualsiasi comunicazione DALI funzioni — vedi DALI commissioning sotto.

Capacità DALI su una singola linea (lascia ~10 % di margine per processi dinamici):

  • Fino a 64 reattori ECG (tipicamente 2 mA ciascuno → 128 mA)
  • Fino a 64 dispositivi di ingresso DALI / 16 consigliati quando si usano pulsanti (tipicamente 5 mA ciascuno)
  • Esempio di budget: 64 ECG × 2 mA + 16 sensori × 5 mA = 208 mA < 235 mA × 90 %

DALI è un bus intrinsecamente a bassa velocità (1200 baud) con un tempo di avvio del gateway di 1,5 s e un tempo di arresto di 7 s. I comandi DALI inviati da TapHome raggiungono i reattori con una latenza piccola ma non nulla rispetto al controllo cablato diretto.

Configurazione

DIP switch SWB — terminazione e polarizzazione RS-485

Il DIP switch SWB sull’IBOX-MBS-DALI a 1 canale controlla solo le caratteristiche del bus RS-485 — su questo gateway non esiste un indirizzo slave Modbus impostabile tramite DIP switch (l’indirizzo slave si imposta in Intesis MAPS, vedi sotto).

PosizioneONOFF
1terminazione 120 Ω attivaTerminazione inattiva
2Polarizzazione attivaPolarizzazione inattiva
3Polarizzazione attivaPolarizzazione inattiva
  • Posizione 1 = ON — abilita la resistenza di terminazione interna da 120 Ω. Usala quando l’IBOX-MBS-DALI è all’ultima posizione fisica del bus RS-485.
  • Posizioni 2 e 3 = ON — abilitano il bus biasing (polarizzazione). Usale quando nessun altro master sul bus fornisce biasing. TapHome Core fornisce biasing sui suoi morsetti BUS, quindi queste possono generalmente rimanere OFF.

SWA è riservato per uso futuro su questa revisione hardware e non ha effetto runtime.

Parametri di comunicazione Modbus RTU

Tutti i parametri RTU si configurano nel progetto Intesis MAPS e devono corrispondere esattamente alle impostazioni del modulo TapHome.

ParametroValoriPredefinito nel template
Baud rate1200, 2400, 4800, 9600, 19200, 38400, 56700, 1152009600
Paritànone, even, oddnone
Stop bit1, 21
Bit dati88
Indirizzo slave1–247Configurabile in MAPS

Il gateway Intesis supporta Modbus RTU e Modbus TCP simultaneamente sulla variante a 1 canale. TapHome usa RTU; un BMS parallelo o uno strumento diagnostico possono leggere la stessa mappa registri su TCP senza interferire.

Abilitazione della comunicazione Modbus

La comunicazione Modbus si abilita caricando un progetto valido sul gateway con Intesis MAPS (nessun DIP switch è coinvolto su questo modello). Versione breve:

  1. Installa Intesis MAPS su un PC Windows e connettiti al gateway via USB Console o Ethernet.
  2. Apri o crea un progetto basato su INMBSDAL---0200-Template.
  3. Nella scheda Configuration → Modbus Slave, imposta baud rate, parità, stop bit e indirizzo slave affinché corrispondano a TapHome.
  4. Nella scheda Configuration → DALI, abilita l’alimentazione interna del bus DALI a 16 VDC (vedi DALI commissioning).
  5. Clicca Send per trasferire la configurazione; il gateway si riavvia automaticamente.
  6. Usa Diagnostic → Viewers per verificare i frame Modbus su Port B TX/RX.
Configurazione alimentazione bus DALI in Intesis MAPS — abilita l'alimentazione DALI 16 VDC nella configurazione del gateway prima del commissioning
DALI commissioning

L’indirizzamento DALI viene eseguito in Intesis MAPS — non in TapHome. Il template TapHome fa riferimento agli indirizzi brevi DALI 0–63 e agli indirizzi di gruppo 0–15 tramite il loro offset di registro; i reattori fisici e i gruppi devono prima essere associati a questi indirizzi.

Flusso di lavoro di commissioning ad alto livello (procedura completa nell’Intesis user manual, Annex A):

  1. In MAPS apri il progetto per il gateway a 1 canale e vai su Configuration → DALI → ECG Channel A.
  2. Clicca Commissioning → Scan per rilevare i reattori ECG sul bus DALI.
  3. Assegna a ogni reattore un indirizzo breve (0–63) tramite il pulsante Wink (lampeggia il reattore fisico per identificarlo) o Auto Addr. (assegnazione automatica sequenziale).
  4. Imposta opzionalmente i parametri per ogni ECG: Device Type (0 = Fluorescent, 1 = Emergency, 6 = LED, …), livello min / max, power-on level, system-failure level, configurazione scene e appartenenza al gruppo (0–15).
  5. Clicca Commissioning → Set All per inviare la configurazione da MAPS al bus DALI.
  6. Clicca Send per trasferire la configurazione a livello di gateway (parametri Modbus, mappa dei segnali) all’IBOX-MBS-DALI.

Dopo il commissioning, gli ECG identificati per indirizzo breve in TapHome (es. ECG 5 → registro H:506) vengono mappati uno-a-uno ai reattori fisici. Anche l’appartenenza ai gruppi deve essere definita in MAPS affinché i dispositivi DALI Group funzionino, sebbene il template esponga per ogni ECG le service action Add to DALI Group / Remove from DALI Group che possono riassegnare l’appartenenza al gruppo a runtime su firmware compatibile.

Secondo il user manual r1.5 (maggio 2024), i segnali 29 e 30 (Add to DALI Group / Remove from DALI Group) sono contrassegnati come Not used sul firmware attuale. Il template TapHome continua a esporre queste action perché erano funzionanti sui firmware precedenti, ma le assegnazioni di gruppo stabili dovrebbero essere configurate in Intesis MAPS, non scritte a runtime.

Panoramica mappa registri

TapHome usa un’unica formula per tutti i registri:

1
2
3
H:address = 7000 × channel + 100 × ECG + signal      (ECG individuale)
H:address = 7000 × channel + 20 × group + 6400..6415  (gruppo DALI)
H:address = 7000 × channel + 6800..6815              (broadcast)

Sulla variante a 1 canale, channel = 0 sempre. Il template espone i seguenti intervalli di registri:

IntervalloFunzioneEsposto dal template
H:0 – H:3Bitmask di guasto reattore/lampada (ECG 63..0, 4× UInt16)Sì — come failRegister a livello di modulo
H:SA+5Bitmask di stato del reattore ECG (per ECG)Sì — errors, warnings, info per ECG
H:SA+6Livello attuale ECG 0–100 % (lettura)Sì — feedback di posizione del dimmer
H:SA+7Enum tipo di dispositivo ECGSì — come service attribute
H:SA+11..+14Power-on / system-failure level, fade time / rate (lettura)Sì — come service attributes
H:SA+15Livello arc power ECG 0–100 % (scrittura)Sì — writelevel, mappato linearmente in Min/Max
H:SA+23..+30Imposta fade time/rate, imposta livelli, aggiungi/rimuovi dal gruppoSì — come service action per ECG
H:6400 + 20·GRLivello arc power di gruppo 0–100 % (scrittura)Sì — come dispositivo DALI Group solo scrittura
H:6801Broadcast Arc Power Off/On (0/100 %)Sì — come modulo All On / All Off
H:6812 / H:6813Broadcast Set Power-on / System-failure LevelSì — come service action a livello di modulo

I dispositivi di ingresso (sensori di presenza, pulsanti, sensori di luce) agli indirizzi 14000 + 640·LINE + 10·IDX + INSTANCE + 1280·SIG non sono implementati da questo template.

Capacità del dispositivo

Dimming per ECG (64 dispositivi ECG)

Ogni indirizzo breve 0–63 è esposto come dispositivo dimmer TapHome individuale (ECG 0 fino a ECG 63). Capacità per ECG:

  • Livello attuale — legge H:SA+6 (0–100 %) come feedback di posizione del dimmer
  • Livello arc power — scrive H:SA+15 (0–100 %), mappato linearmente dalla scala dimmer 0–1 di TapHome all’intervallo [min level, max level] configurato del reattore
  • Stato del reattore — una bitmask su H:SA+5 guida la diagnostica TapHome: BallFail e LampFail generano errors, BallLimit, Reset e PowerCycle generano warnings, FadeRun è mostrato come info, MissingShortAddr genera un error
  • Rilevamento guasti di comunicazione — il modulo legge la bitmask di guasto a 64 bit su H:0 – H:3 e segnala i singoli ECG come guasti indipendentemente dallo stato H:SA+5
Service attribute per ECG (metadati in sola lettura)

Ogni dispositivo ECG espone cinque service attribute che leggono la sua configurazione DALI corrente:

  • Main Device TypeH:SA+7 enum (0–8): 0 = Fluorescent, 1 = Emergency, 2 = Discharge, 3 = Halogen, 4 = Incandescent, 5 = Digital signal, 6 = LED, 7 = Switching, 8 = Colour Control
  • Power-on Level [%]H:SA+11 (0–100 %) — livello a cui il reattore ritorna dopo l’accensione del bus DALI
  • System-failure Level [%]H:SA+12 (0–100 %) — livello che il reattore assume in caso di guasto del bus DALI
  • Fade TimeH:SA+13 (0–15) — indice DALI fade-time (tempo per raggiungere un livello target su scritture arc power dirette)
  • Fade RateH:SA+14 (1–15) — indice DALI fade-rate (velocità dei comandi step up / step down)
Service action per ECG (scrittura)

Ogni ECG espone anche sei service action per la riconfigurazione online:

  • Set Power-on Level — scrive H:SA+27 (0–100 %)
  • Set System-failure Level — scrive H:SA+28 (0–100 %)
  • Set Fade Time — scrive H:SA+23 (0–15)
  • Set Fade Rate — scrive H:SA+24 (1–15)
  • Add to DALI Group — scrive H:SA+29 con il numero del gruppo (0–15) — vedi avvertimento sul commissioning sopra
  • Remove from DALI Group — scrive H:SA+30 con il numero del gruppo (0–15)

Ogni scrittura è automaticamente confermata dal template tramite H:SA+4 = 1 (Update All ECG Status), che aggiorna i valori di lettura cached nel gateway.

Gruppi DALI (16 dimmer broadcast solo scrittura)

DALI Group 0 fino a DALI Group 15 sono esposti come dispositivi dimmer solo in scrittura:

  • Registro di scrittura: H:6400 + 20 × GR (es. Group 0 = H:6400, Group 15 = H:6700)
  • Comportamento: scrivere un valore dimmer TapHome 0–1 invia Arc Power Level = Le × 100 a ogni ECG membro di quel gruppo DALI
  • Nessun feedback di lettura — il segnale di gruppo non ha un registro di livello attuale, quindi TapHome traccia il livello del gruppo solo dall’input utente, non dallo stato reale dei reattori

Usa i gruppi per stanze o zone dove diversi reattori dimmerano insieme. L’appartenenza al gruppo è configurata per ECG tramite la service action ECG Add to DALI Group o (preferibilmente) in Intesis MAPS.

Azioni di broadcast a livello di modulo

Il modulo principale (Intesis DALI Gateway) espone quattro service action che indirizzano contemporaneamente ogni reattore sulla linea DALI:

  • All — On — scrive H:6801 = 1, facendo broadcast del 100 % a ogni ECG
  • All — Off — scrive H:6801 = 0, facendo broadcast dello 0 % a ogni ECG
  • All — Set Power-on Level — scrive H:6812 (0–100 %) per configurare il livello a cui tutti i reattori ritornano dopo l’accensione DALI
  • All — Set System-failure Level — scrive H:6813 (0–100 %) per configurare il livello che tutti i reattori assumono in caso di guasto del bus DALI

Queste sono più veloci dell’iterazione di scritture per ECG quando tutti i reattori devono raggiungere lo stesso stato target (es. panic off, preset mattutino).

LED di stato e pulsanti

LED di stato e pulsanti IBOX-MBS-DALI — Run, Error, Port A TX/RX (DALI), Port B TX/RX (Modbus RTU), Button A, Button B
LEDStatoSignificato
RunOff / VerdeNessuna alimentazione / dispositivo alimentato e in esecuzione
ErrorOff / RossoNessun errore / condizione di errore
Port A Tx / Rx (DALI)Off / Verde lampeggiante / Giallo lampeggianteNessuna attività / pacchetto TX a DALI / pacchetto RX da DALI
Port B Tx / Rx (Modbus RTU)Off / Verde lampeggiante / Giallo lampeggianteNessuna attività / pacchetto TX su RS-485 / pacchetto RX su RS-485
Indicatore Button AOff / VerdeStato broadcast DALI: OFF / RECALL_MAX_LEVEL
Indicatore Button BOff / VerdeNessuna funzione predefinita (configurabile in MAPS)

Button A (DALI A) — premerlo alterna un broadcast DALI tra RECALL_MAX_LEVEL (100 %) e OFF, utile per un rapido sanity check on-site della linea DALI senza coinvolgere TapHome. Dopo 30 s il LED Button A si spegne e i reattori tornano al livello precedente.

Button B — nessuna funzione predefinita su questo gateway; può essere configurato come action RS-485 in Intesis MAPS.

Montaggio

Guida DIN (raccomandato)
Montaggio IBOX-MBS-DALI su guida DIN — guida standard EN60715 TH35, clip di fissaggio nella posizione di fabbrica verso l'interno

EN60715 TH35, preferibilmente all’interno di un armadio metallico collegato a terra. Lascia le clip di fissaggio nella loro posizione di fabbrica verso l’interno, aggancia prima il bordo superiore della guida, poi premi verso il basso per far scattare il fondo.

Montaggio a parete
Montaggio IBOX-MBS-DALI a parete — clip di fissaggio spostate verso l'esterno per esporre i fori di montaggio
  1. Separa le clip di fissaggio dalla loro posizione originale (per montaggio su guida DIN) spingendole verso l’esterno finché non scattano nella posizione di montaggio a parete.
  2. Usa i fori nelle clip per fissare la scatola alla parete. Usa il template sottostante per le forature.
Spazio e ambiente
  • Spazio di installazione: lascia 130 × 100 × 100 mm (A × L × P) attorno al dispositivo per connettori e cablaggio. Dimensioni nette: 90 × 88 × 56 mm.
  • Ambiente: IP20, solo interno. Temperatura di esercizio 0 °C a +50 °C (user manual) / +60 °C (installation sheet), umidità 5–95 % non condensante.

Risoluzione dei problemi

Nessuna comunicazione Modbus (i LED Port B Tx/Rx rimangono spenti)
  1. Controlla il cablaggio RS-485 — verifica la polarità B1 (B+) / B2 (A−) rispetto ai morsetti RS-485 di TapHome; incrociarli è l’errore più comune.
  2. Controlla SGND — collega B3 alla terra di TapHome. La mancanza di segnale di terra è la seconda causa più comune di RTU instabile.
  3. Allinea i parametri seriali — baud rate, parità, stop bit e indirizzo slave in TapHome devono corrispondere esattamente ai valori del progetto Intesis MAPS.
  4. Controlla i DIP switch SWB — se questo gateway è all’estremità fisica del bus RS-485, imposta la posizione 1 di SWB = ON (terminazione 120 Ω). Se è al centro del bus, imposta tutte le posizioni SWB su OFF.
  5. Conferma che TCP non stia occupando lo slot — il gateway consente 5 socket TCP simultanei e 1 master RTU; una connessione MAPS mal configurata non blocca RTU, ma vale la pena chiudere MAPS durante il debug di TapHome.
Modbus funziona ma i reattori DALI non rispondono
  1. Abilita l’alimentazione interna del bus DALI — i gateway nuovi vengono forniti con l’alimentazione DALI disabilitata. Apri Intesis MAPS → Configuration → DALI → DALI Channel A e imposta Power the DALI bus = Enabled, poi Send la configurazione. Senza alimentazione del bus, il gateway segnala un errore hardware a ogni scrittura DALI.
  2. Sanity check rapido — premi Button A sul gateway. Dovrebbe fare broadcast di RECALL_MAX_LEVEL e alternare ogni reattore collegato on/off. Se nulla si muove, il problema è il bus DALI stesso (cablaggio, tensione, alimentazione del reattore).
  3. Esegui un on-bus scan in MAPSCommissioning → Scan sul DALI Channel A elenca ogni reattore che il gateway riesce a vedere. I reattori mancanti di solito significano ECG non alimentati, indirizzo breve DALI non assegnato o un taglio nel bus DALI.
  4. Verifica gli indirizzi brevi — TapHome indirizza l’ECG 5 al registro H:506; se l’indirizzo breve 5 non è stato assegnato in MAPS, il registro esiste ma il reattore fisico non è associato a esso.
Un ECG specifico riporta un guasto in TapHome

TapHome espone due sorgenti di guasto per ogni ECG:

  • Modulo failRegister (H:0 – H:3) — un bit per ECG. Un bit impostato genera un errore di comunicazione (il gateway non riesce a parlare con il reattore).
  • ECG ballast status (H:SA+5) — una bitmask per ECG. BallFail e LampFail generano errors (guasto hardware del reattore o della lampada), MissingShortAddr genera un error (l’ECG ha risposto ma non ha un indirizzo breve), BallLimit, Reset e PowerCycle generano warnings, FadeRun è informativo.

Sostituisci il reattore guasto o ri-commissiona l’indirizzo breve in MAPS per cancellare il guasto.

Scrittura accettata ma il reattore non cambia livello
  1. Conferma che il reattore non sia in fadeFadeRun su H:SA+5 significa che il reattore sta attualmente facendo fade; attendi il completamento. Accorciare Fade Time (H:SA+23) riduce la latenza percepita.
  2. Controlla Min / Max Level — TapHome mappa linearmente la sua scala dimmer 0–1 nella finestra [min level, max level] letta dal reattore (H:SA+9 / H:SA+10). Se entrambi sono uguali, il reattore non può cambiare livello; riconfigura min/max in MAPS.
  3. Add/Remove da gruppo DALI — sull’ultimo firmware r1.5 queste action per-ECG sono contrassegnate come deprecate; esegui le assegnazioni di gruppo in MAPS.

Dispositivi disponibili

Intesis DALI Modulo
Azioni di servizio
Tutti — OnTrasmette 100 % di arc power a ogni reattore sulla linea DALI — panic-on o preset mattutino in una singola scrittura Modbus
Tutti — OffTrasmette 0 % di arc power a ogni reattore sulla linea DALI — panic-off o preset di pulizia in una singola scrittura Modbus
Tutti — Imposta Power-on LevelTrasmette un nuovo power-on level (0–100 %) a ogni reattore — il livello a cui ritornano dopo l'accensione del bus DALI
Tutti — Imposta System-failure LevelTrasmette un nuovo system-failure level (0–100 %) a ogni reattore — il livello che assumono in caso di guasto del bus DALI

Intesis Dali

Lettura (modulo)
failRegister := modbusr(H, base_modifier + 0, Uint16) + 
(modbusr(H, base_modifier + 1, Uint16) << 16) +
(modbusr(H, base_modifier + 2, Uint16) << 32) +
(modbusr(H, base_modifier + 3, Uint16) << 48)
Azioni di servizio
All - On
modbusw(H, base_modifier + 6801, uint16, 1);
All - Off
modbusw(H, base_modifier + 6801, uint16, 0);
All - Set Power-on Level
Parametri: Level (0–100 Lvl)
modbusw(H, base_modifier + 6812, uint16, Lvl);
All - Set System-failure Level
Parametri: Level (0–100 Lvl)
modbusw(H, base_modifier + 6813, uint16, Lvl);
ECG 0 Dimmer

Reattore DALI individuale all'indirizzo breve 0 — dimmer con feedback del livello attuale, stato di guasto reattore/lampada, scrittura di arc power e configurazione di fade time/rate e power-on / system-failure level per ECG

Registro: H:6H:15 UInt16 Unità: % numeric
Attributi di servizio
Tipo di dispositivo principaleTipo di dispositivo DALI — Fluorescent (0), Emergency (1), Discharge (2), Halogen (3), Incandescent (4), Digital signal (5), LED (6), Switching (7) o Colour Control (8)
Power-on LevelLivello (0–100 %) a cui il reattore ritorna dopo l'accensione del bus DALI
System-failure LevelLivello (0–100 %) che il reattore assume in caso di guasto del bus DALI
Fade TimeIndice DALI fade-time (0–15) — tempo per raggiungere un livello target su scritture arc power dirette
Fade RateIndice DALI fade-rate (1–15) — velocità dei comandi step up / step down
Azioni di servizio
Imposta Power-on LevelScrive un nuovo power-on level (0–100 %) su questo ECG
Imposta System-failure LevelScrive un nuovo system-failure level (0–100 %) su questo ECG
Imposta Fade TimeScrive un nuovo indice DALI fade-time (0–15) su questo ECG
Imposta Fade RateScrive un nuovo indice DALI fade-rate (1–15) su questo ECG
Aggiungi al gruppo DALIAssegna questo ECG a un gruppo DALI (0–15) in modo che possa essere indirizzato tramite il dimmer broadcast del gruppo
Rimuovi dal gruppo DALIRimuove questo ECG dal gruppo DALI specificato (0–15)

ECG 0

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 1 Dimmer
Registro: H:106H:115 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 1

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 2 Dimmer
Registro: H:206H:215 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 2

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 3 Dimmer
Registro: H:306H:315 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 3

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 4 Dimmer
Registro: H:406H:415 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 4

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 5 Dimmer
Registro: H:506H:515 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 5

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 6 Dimmer
Registro: H:606H:615 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 6

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 7 Dimmer
Registro: H:706H:715 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 7

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 8 Dimmer
Registro: H:806H:815 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 8

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 9 Dimmer
Registro: H:906H:915 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 9

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 10 Dimmer
Registro: H:1006H:1015 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 10

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 11 Dimmer
Registro: H:1106H:1115 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 11

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 12 Dimmer
Registro: H:1206H:1215 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 12

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 13 Dimmer
Registro: H:1306H:1315 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 13

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 14 Dimmer
Registro: H:1406H:1415 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 14

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 15 Dimmer
Registro: H:1506H:1515 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 15

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 16 Dimmer
Registro: H:1606H:1615 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 16

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 17 Dimmer
Registro: H:1706H:1715 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 17

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 18 Dimmer
Registro: H:1806H:1815 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 18

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 19 Dimmer
Registro: H:1906H:1915 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 19

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 20 Dimmer
Registro: H:2006H:2015 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 20

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 21 Dimmer
Registro: H:2106H:2115 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 21

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 22 Dimmer
Registro: H:2206H:2215 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 22

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 23 Dimmer
Registro: H:2306H:2315 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 23

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 24 Dimmer
Registro: H:2406H:2415 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 24

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 25 Dimmer
Registro: H:2506H:2515 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 25

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 26 Dimmer
Registro: H:2606H:2615 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 26

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 27 Dimmer
Registro: H:2706H:2715 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 27

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 28 Dimmer
Registro: H:2806H:2815 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 28

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 29 Dimmer
Registro: H:2906H:2915 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 29

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 30 Dimmer
Registro: H:3006H:3015 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 30

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 31 Dimmer
Registro: H:3106H:3115 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 31

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 32 Dimmer
Registro: H:3206H:3215 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 32

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 33 Dimmer
Registro: H:3306H:3315 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 33

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 34 Dimmer
Registro: H:3406H:3415 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 34

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 35 Dimmer
Registro: H:3506H:3515 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 35

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 36 Dimmer
Registro: H:3606H:3615 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 36

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 37 Dimmer
Registro: H:3706H:3715 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 37

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 38 Dimmer
Registro: H:3806H:3815 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 38

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 39 Dimmer
Registro: H:3906H:3915 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 39

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 40 Dimmer
Registro: H:4006H:4015 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 40

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 41 Dimmer
Registro: H:4106H:4115 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 41

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 42 Dimmer
Registro: H:4206H:4215 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 42

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 43 Dimmer
Registro: H:4306H:4315 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 43

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 44 Dimmer
Registro: H:4406H:4415 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 44

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 45 Dimmer
Registro: H:4506H:4515 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 45

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 46 Dimmer
Registro: H:4606H:4615 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 46

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 47 Dimmer
Registro: H:4706H:4715 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 47

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 48 Dimmer
Registro: H:4806H:4815 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 48

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 49 Dimmer
Registro: H:4906H:4915 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 49

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 50 Dimmer
Registro: H:5006H:5015 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 50

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 51 Dimmer
Registro: H:5106H:5115 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 51

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 52 Dimmer
Registro: H:5206H:5215 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 52

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 53 Dimmer
Registro: H:5306H:5315 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 53

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 54 Dimmer
Registro: H:5406H:5415 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 54

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 55 Dimmer
Registro: H:5506H:5515 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 55

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 56 Dimmer
Registro: H:5606H:5615 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 56

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 57 Dimmer
Registro: H:5706H:5715 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 57

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 58 Dimmer
Registro: H:5806H:5815 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 58

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 59 Dimmer
Registro: H:5906H:5915 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 59

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 60 Dimmer
Registro: H:6006H:6015 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 60

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 61 Dimmer
Registro: H:6106H:6115 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 61

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 62 Dimmer
Registro: H:6206H:6215 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 62

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
ECG 63 Dimmer
Registro: H:6306H:6315 UInt16 Unità: % numeric
Attributi di servizio
Main Device Type
Power On Level [%]
System Failure Level [%]
Fade Time
Fade Rate
Azioni di servizio
Set Power-on Level
Set System-failure Level
Set Fade Time
Set Fade Rate
Add to DALI Group
Remove from DALI Group

ECG 63

Lettura (modulo)
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
int shift := floor(SA / 32);

if(getbit(failRegister >> 32*shift,SA - 32*shift) = 1, adderror("DALI communication error, Ballast/Lamp Failure"));
if(getbit(status,0) = 1, adderror("Ballast Fail"));
if(getbit(status,1) = 1, adderror("Lamp Fail"));
#if(getbit(status,2) = 1, addwarning("Lamp Power On"));
if(getbit(status,3) = 1, addwarning("Ballast Limit"));
if(getbit(status,4) = 1, addinfo("Fade Run"));
if(getbit(status,5) = 1, addwarning("Reset"));
if(getbit(status,6) = 1, adderror("Missing Short Address"));
if(getbit(status,7) = 1, addwarning("Power Cycle"));
Inizializzazione
var base := base_modifier + (100 * SA);
modbusw(H, base + 4, uint16, 1);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);
Lettura livello
var base := base_modifier + (100 * SA);
status := modbusr(H, base + 5, uint16);
level := modbusr(H, base + 6, uint16);
minLevel := modbusr(H, base + 9, uint16);
maxLevel := modbusr(H, base + 10, uint16);

# fade run or updating values or <=1% diff
var diff := abs(level - Le * 100);
if getbit(status,4) or (diff > 0 and diff <= 1) or count > 0
	count := count -1;
	return(le);
else
	if level = 0
		return(0);
	else
		return(linear(level, minLevel, if(minLevel=0, 0, 0.01), maxLevel, 1));
	end
end
Scrittura livello
var base := base_modifier + (100 * SA);
if !isnull(Le)
	count := 2;
	if le = 0
		modbusw(H, base + 15, uint16, 0);
	else
		modbusw(H, base + 15, uint16, linear(le, if(minLevel=0, 0, 0.01), minLevel, 1, maxLevel));
	end
end
#trigger update
modbusw(H, base + 4, uint16, 1);
Attributi di servizio
Main Device Type

var base := base_modifier + (100 * SA);

switch(modbusr(H, base + 7, uint16),
0, "Fluorescent",
1, "Emergency",
2, "Discharge",
3, "Halogen",
4, "Incandescent",
5, "Digital signal",
6, "LED",
7, "Switching",
8, "Color control",
255, "Other",
"Unknown")
Power On Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 11, uint16);
System Failure Level [%]
var base := base_modifier + (100 * SA);
modbusr(H, base + 12, uint16);
Fade Time
var base := base_modifier + (100 * SA);
modbusr(H, base + 13, uint16);
Fade Rate
var base := base_modifier + (100 * SA);
modbusr(H, base + 14, uint16);
Azioni di servizio
Set Power-on Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 27, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set System-failure Level
Parametri: Level (0–100 Lvl)
var base := base_modifier + (100 * SA);
modbusw(H, base + 28, uint16, Lvl);
modbusw(H, base + 4, uint16, 1);
Set Fade Time
Parametri: Fade Time (0–15 FT)
var base := base_modifier + (100 * SA);
modbusw(H, base + 23, uint16, FT);
modbusw(H, base + 4, uint16, 1);
Set Fade Rate
Parametri: Fade Rate (1–15 FR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 24, uint16, FR);
modbusw(H, base + 4, uint16, 1);
Add to DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 29, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Remove from DALI Group
Parametri: Group (0–15 GR)
var base := base_modifier + (100 * SA);
modbusw(H, base + 30, uint16, GR);
modbusw(H, base + 4, uint16, 1);
Gruppo DALI 0 Dimmer

Dimmer broadcast solo in scrittura per tutti gli ECG assegnati al gruppo DALI 0 — nessun feedback di lettura, TapHome traccia il livello solo dall'input utente

UInt16 Unità: % numeric

Gruppo DALI 0

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 1 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 1

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 2 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 2

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 3 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 3

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 4 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 4

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 5 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 5

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 6 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 6

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 7 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 7

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 8 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 8

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 9 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 9

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 10 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 10

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 11 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 11

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 12 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 12

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 13 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 13

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 14 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 14

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Gruppo DALI 15 Dimmer
UInt16 Unità: % numeric

Gruppo DALI 15

Scrittura livello
if !isnull(Le)
	modbusw(H, (20 * GA) + 6400 + base_modifier, uint16, Le * 100);
end
Connessione: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possibili miglioramenti (40)
  • H:6800 Broadcast Arc Power Level — Write 0–100 % to set every ballast on the DALI line to the same arc power level — not exposed as an action; only per-group (6400+20*GR) and All On/Off (6801) are wired up
  • H:6802 Broadcast Step Down / Up — 0 = Step Down, 1 = Step Up applied to all ECGs on the line (step size controlled by each ECG's Fade Rate)
  • H:6803 Broadcast Recall Min Level — Write 1 → every ballast jumps to its individually configured Min Level
  • H:6804 Broadcast Recall Max Level — Write 1 → every ballast jumps to its individually configured Max Level
  • H:6805 Broadcast Go to Scene — Write 0–15 to recall a DALI scene on every ballast (scenes pre-configured in MAPS or via Set Scene action per ECG)
  • H:6806 Broadcast Store Current Level as Scene — Write 0–15 to save the current arc power level of every ballast into the selected scene slot
  • H:6807 Broadcast Clear/Remove Scene — Write 0–15 to erase the selected scene on every ballast
  • H:6808 Broadcast Set Fade Time — Write 0–15 to apply the same fade-time index to every ballast (faster than per-ECG configuration for uniform fades)
  • H:6809 Broadcast Set Fade Rate — Write 1–15 to apply the same fade-rate index to every ballast
  • H:6810 Broadcast Set Min Level — Write 0–100 % to set the same minimum dim level on every ballast
  • H:6811 Broadcast Set Max Level — Write 0–100 % to set the same maximum dim level on every ballast
  • H:6814 Broadcast Multicontrol — Compound register — 0=Off, 1=100%, 2=StpUp, 3=StpDwn, 1XX=GoScene(XX), 2XX=StoreScene, 3XX=RmvScene, 1XXX=FdRate, 2XXX=FdTime, 3XXX=MinLvl, 4XXX=MaxLvl, 5XXX=PwrOnLvl, 6XXX=SysFailLvl; enables 'one-write many-ops' for advanced BMS scripting
  • H:SA+8 Physical Minimum Level (per ECG) — Hardware-defined minimum dim level per ballast (distinct from user-settable Min Level at +9); read-only
  • H:SA+16 Arc Power Off/On (per ECG) — R/W toggle: 0 = Off, 1 = 100 %; TapHome writes arc power level at +15 instead which covers the same capability
  • H:SA+17 Step Down/Up (per ECG) — 0 = Step Down, 1 = Step Up — relative dimming per ballast using the stored fade-rate
  • H:SA+18 Recall Min Level (per ECG) — Write 1 → this ECG jumps to its Min Level
  • H:SA+19 Recall Max Level (per ECG) — Write 1 → this ECG jumps to its Max Level
  • H:SA+20 Go to Scene (per ECG) — 0–15 scene recall per ballast
  • H:SA+21 Store Current Level as Scene (per ECG) — 0–15 scene save per ballast
  • H:SA+22 Clear/Remove Scene (per ECG) — 0–15 scene clear per ballast
  • H:SA+25 Set Min Level (per ECG) — 0–100 %; R/W — TapHome reads current min via service attribute Fade Time but does NOT expose a writer for minLevel (template caches the read value into minLevel variable for writelevel linear mapping)
  • H:SA+26 Set Max Level (per ECG) — 0–100 %; mirror of the above for maxLevel
  • H:SA+31 Multicontrol (per ECG) — Compound write (see Broadcast Multicontrol for encoding) — advanced single-register scripting entry-point per ECG
  • H:6401+20*GR Group Arc Power Off/On — Group-wide 0/100 % toggle; template only exposes Arc Power Level (group writelevel), so ON/OFF is achievable only by writing 0 or 100
  • H:6402+20*GR Group Step Down/Up — Relative dim per group
  • H:6403+20*GR Group Recall Min Level
  • H:6404+20*GR Group Recall Max Level
  • H:6405+20*GR Group Go to Scene — 0–15
  • H:6406+20*GR Group Store Current Level as Scene — 0–15
  • H:6407+20*GR Group Clear/Remove Scene — 0–15
  • H:6408+20*GR Group Set Fade Time — 0–15
  • H:6409+20*GR Group Set Fade Rate — 1–15
  • H:6410+20*GR Group Set Min Level — 0–100 %
  • H:6411+20*GR Group Set Max Level — 0–100 %
  • H:6412+20*GR Group Set Power-on Level — 0–100 %
  • H:6413+20*GR Group Set System-failure Level — 0–100 %
  • H:SA+42..+73 Emergency Control Gear (EML) signals — Failure Status, Emergency Mode, Battery Charge, Function/Duration test control, Rated Duration, Prolong Time, Store* parameters — Entire DALI Emergency (Part 202) feature set: SA+42 Failure Status, +43 Emergency Mode, +44 Emergency Status, +45 Battery Charge %, +46..+49 test schedule, +50..+57 timing/level config, +60..+68 trigger writes (Rest, Inhibit, Start/Stop tests, Reset Lamp Time), +69..+73 Store* R/W settings; ECGs of type 1 (Emergency) in this template fall back to the generic Fluorescent/LED script, so none of these are surfaced — dedicated EML template would be needed
  • H:SA+80..+93 LED Control Gear (Device Type 6) signals — Failure Status bitmask, Gear Type, Dimming Curve, Operating Modes, Reference Running, Current Protector, Fast Fade Time, Enable/Disable Current Protector, Select Dimming Curve, Store Fast Fade Time — Advanced LED diagnostics and tuning per DALI-2 Part 207; template uses only the common signals (0..28) so LED-specific bits are not exposed even though gateway supports them
  • 14000 + 640*LINE + 10*IDX + INSTANCE + 1280*SIG DALI Input Devices (Occupancy, Light sensors, Push buttons, Absolute inputs) — Gateway supports up to 64 DALI input devices per line (recommended 16 with push buttons) — occupancy (0/1/2/3), light level (lux), push-button event bitmask (press/release/short/double/long), absolute input (0–100 % / raw); template exposes NO input devices. Local management (gateway directly drives ECGs from push-button events) is also unused. This is the largest feature gap for IBOX-MBS-DALI integrations that use DALI-native sensors
  • H:SA+29 (Add to DALI Group), H:SA+30 (Remove from DALI Group) Add/Remove DALI Group (per ECG) — Firmware-drift deprecation: the r1.5 manual (May 2024) marks signals 29–30 as 'Not used' in the common-signals table, but the TapHome template still exposes them as per-ECG service actions ('Add to DALI Group' / 'Remove from DALI Group') because they were functional on earlier firmware where this template was authored. Behavior on latest firmware should be verified before relying on group-membership-at-runtime writes; configure groups via Intesis MAPS commissioning instead for stable deployments

Fonti

Hai trovato un problema con questo template?

Dicci cosa non funziona, cosa manca o come dovrebbe comportarsi il template. Il tuo feedback ci aiuta a mantenere il catalogo accurato.

Verificato da TapHome

Vuoi usarlo nel tuo TapHome Core?

Apri questo template nel Customer Portal per applicarlo a una delle tue case, o crea una proposta di modifica e inviala al catalogo.

Apri nel portale