TapHome

Daikin DTA116A51 VRV Gateway

Modbus RTU
Submitted by
Last updated: 03. 2026

Richiede gateway esterno

Daikin DTA116A51

Daikin DTA116A51 VRV Gateway

Il Daikin DTA116A51 è un adattatore di comunicazione DIII-NET/Modbus che collega i sistemi Daikin VRV a TapHome tramite RS-485 Modbus RTU. Il gateway si connette al bus DIII-NET VRV da un lato e espone i registri Modbus dall’altro, consentendo a TapHome di monitorare e controllare fino a 16 unità interne e 2 unità esterne tramite un singolo adattatore.

Ogni unità interna viene indirizzata tramite la variabile DeviceNumber (0–15) in TapHome. È necessario creare un’istanza di modulo separata per ogni unità interna da controllare. Il template fornisce accensione/spegnimento, selezione della modalità operativa, controllo della velocità e direzione del ventilatore e funzionalità termostato con feedback della temperatura ambiente.

Collegamento hardware

Panoramica della scheda
Layout dei componenti del PCB Daikin DTA116A51 — interruttori DIP DS1 e DS2, porta RS-485, porta DIII-NET, connettore di alimentazione e LED di stato

Il DTA116A51 si trova tra il sistema HA (TapHome) e l’impianto VRV. Il lato Modbus utilizza il cablaggio RS-485 con una lunghezza massima del cavo di 500 m. Il lato DIII-NET si connette alle unità interne ed esterne VRV.

Componenti principali sul PCB:

  • DS1 — Interruttore DIP per i parametri di comunicazione (baud rate, parità, stop bit)
  • DS2 — Interruttore DIP per l’indirizzo Modbus slave (indirizzo 1–15)
  • R(+) / B(-) — Porta di comunicazione RS-485 Modbus
  • Porta DIII-NET — Connessione alle unità interne/esterne VRV
  • Connettore di alimentazione — Ingresso alimentazione DC
  • H1P–H7P, HAP — LED indicatori di stato
Cablaggio RS-485

Collegare la porta RS-485 del DTA116A51 a TapHome Core:

  • R(+) su DTA116A51 → A+/D+ su TapHome
  • B(-) su DTA116A51 → B-/D- su TapHome

La lunghezza massima del cavo RS-485 è 500 m. Utilizzare cavo a coppia intrecciata (CAT5 o simile) per una comunicazione affidabile. Assicurarsi della corretta terminazione del bus sull’ultimo dispositivo.

Configurazione

Impostazioni degli interruttori DIP

DS1 — Parametri di comunicazione:

PinFunzioneOFFON
1Riservato
2Baud rate9600 bps19200 bps
3Stop bit1 stop bit (parità abilitata)2 stop bit (nessuna parità)
4Parità (quando DS1-3=OFF)PariDispari

Per TapHome: Impostare DS1 tutto su OFF (9600 bps, parità pari, 1 stop bit) — corrisponde ai valori predefiniti del template.

DS2 — Indirizzo slave (1–15):

Pin DS2 (1–4)Indirizzo
OFF OFF OFF ON1 (predefinito)
OFF OFF ON OFF2
OFF OFF ON ON3
OFF ON OFF OFF4
ON ON ON ON15

Impostare l’indirizzo slave a 0 per disabilitare completamente la comunicazione Modbus.

Configurazione TapHome
  1. Importare il template — selezionare “Daikin DTA” dai template Modbus RTU
  2. Impostare lo Slave ID — inserire l’indirizzo corrispondente a DS2 sull’adattatore
  3. Creare il primo modulo — impostare la variabile DeviceNumber a 0 per l’unità interna 1-00
  4. Creare moduli aggiuntivi — per ogni unità interna aggiuntiva, creare una nuova istanza del modulo e impostare DeviceNumber all’indice dell’unità corrispondente (0–15)

Ogni istanza del modulo controlla un’unità interna. Il DeviceNumber corrisponde direttamente all’indirizzo dell’unità interna DIII-NET (0 = unità 1-00, 1 = unità 1-01, ecc.).

Prima di controllare le unità, verificare la connettività tramite gli attributi di servizio Connessione unità interna (N) sul modulo. Questi mostrano quali unità sono fisicamente collegate al bus DIII-NET.

Procedura di inizializzazione

Dopo l’accensione del sistema VRV e dell’adattatore DTA116A51:

  1. Interrogare l’attributo di servizio Stato adattatore fino a che non riporta “Ready”
  2. Controllare gli attributi di servizio Connessione unità interna per identificare le unità collegate
  3. TapHome sincronizza automaticamente i valori dei registri — l’adattatore invia comandi DIII-NET solo quando il valore di un registro holding cambia

La sincronizzazione dello stato è critica. Il DTA116A51 invia comandi alle unità VRV solo quando il valore di un registro holding cambia. TapHome gestisce questo automaticamente, ma se i registri diventano desincronizzati (ad es. dopo un’interruzione di corrente), il primo comando per ogni funzione potrebbe essere ignorato. Se necessario, alternare il valore due volte per forzare una modifica del registro.

Funzionalità del dispositivo

Accensione/spegnimento e modalità operativa
  • ON/OFF — accende o spegne l’unità interna indirizzata
  • Modalità operativa — seleziona la modalità Ventilatore, Riscaldamento, Raffreddamento, Auto, Setpoint o Deumidificazione. Le modalità disponibili dipendono dalle capacità dell’unità interna. La modalità Setpoint è disponibile solo per le unità non Master Cool/Heat; la modalità Auto è disponibile solo per le unità non Slave Cool/Heat
Controllo ventilatore
  • Velocità ventilatore — seleziona la velocità del ventilatore. Le unità con capacità a 2 velocità supportano Bassa e Alta; le unità con capacità a 3 velocità supportano Bassa, Media e Alta. Il valore “Non supportato” appare se l’unità non supporta il controllo della velocità del ventilatore
  • Direzione deflettori — controlla la posizione delle lamelle da P0 (orizzontale) a P4 (verticale), più le posizioni Stop e Oscillazione. Le posizioni disponibili dipendono dalla capacità di direzione del ventilatore dell’unità interna (Fix, 2 posizioni, 3 posizioni, 4 posizioni o 5 posizioni)
Controllo temperatura
  • Termostato — legge la temperatura ambiente corrente e consente di impostare la temperatura desiderata con una risoluzione di 0,1 °C. Entrambi i valori utilizzano una conversione /10 dai dati grezzi del registro
Diagnostica di servizio

Il modulo espone 19 attributi di servizio per il monitoraggio:

  • Stato adattatore — indica se il gateway DTA116A51 è pronto per la comunicazione
  • Connessione unità interna (1–16) — mostra quali unità interne sono fisicamente collegate al bus DIII-NET
  • Capacità modalità raffreddamento e Capacità modalità ventilatore — indicano se l’unità interna indirizzata supporta la modalità raffreddamento e solo ventilatore

Il ReadScript del modulo monitora gli errori di comunicazione per tutte le 16 possibili unità interne tramite il registro A:6. Se viene rilevato un errore di comunicazione per un’unità, TapHome riporta un messaggio di errore che identifica il numero del dispositivo interessato.

Funzionalità aggiuntive

L’adattatore DTA116A51 espone anche registri per i flag di capacità modalità riscaldamento/auto/deumidificazione, conteggi dei passi di direzione e velocità del ventilatore, limiti setpoint per unità (intervalli raffreddamento e riscaldamento), stato di spegnimento forzato, stato operativo effettivo (riscaldamento/raffreddamento/ventilatore), monitoraggio e reset filtro, stato Cool/Heat Master/Slave, diagnostica degli errori per unità con ricerca del codice errore, stato del sensore di temperatura e impostazioni iniziali DIII-NET (gestione intervallo indirizzi, flag master). Questi possono essere aggiunti in un futuro aggiornamento del template.

Il numero di comandi di controllo per un’unità interna deve rientrare in 7.000 volte all’anno. Se TapHome utilizza programmi di controllo automatici (ad es. pianificazioni, scene), assicurarsi che il conteggio totale dei comandi rimanga entro questo limite per evitare problemi di comunicazione.

Indicatori LED di stato

LEDFunzione
H1PLampeggia quando l’adattatore invia un comando DIII-NET
H2PLampeggia quando l’adattatore riceve un comando DIII-NET
H3PLampeggia quando l’adattatore invia una risposta Modbus
H4PLampeggia quando l’adattatore riceve una query Modbus
HAPLampeggia a intervalli di 400 ms durante il normale funzionamento

Stato normale: HAP lampeggia regolarmente, H3P/H4P lampeggiano durante la comunicazione Modbus, H1P/H2P lampeggiano durante la comunicazione DIII-NET.

Risoluzione dei problemi

Nessuna comunicazione Modbus (H3P/H4P non lampeggiano)
  1. Verificare il cablaggio RS-485: R(+) → A+/D+, B(-) → B-/D- su TapHome
  2. Controllare l’indirizzo slave DS2 — deve essere 1–15 (non 0)
  3. Confermare che le impostazioni DS1 corrispondano a TapHome: 9600 baud, parità pari, 1 stop bit
  4. Controllare la terminazione del bus sull’ultimo dispositivo
  5. Assicurarsi che l’intervallo di silenzio tra le query sia di almeno 5 ms (a 9600 bps)
Lo stato dell’adattatore rimane “Not ready”
  1. Verificare il collegamento del cavo DIII-NET tra l’adattatore e le unità interne VRV
  2. Assicurarsi che il sistema VRV sia acceso
  3. Verificare che il flag master DIII-NET nel registro 40001 sia impostato correttamente — se è installato un altro centralino, l’adattatore dovrebbe essere impostato in modalità Slave (bit 9 = 0)
I comandi non raggiungono le unità VRV
  1. Si tratta tipicamente di un problema di sincronizzazione dello stato — l’adattatore invia comandi solo quando il valore di un registro holding cambia
  2. Leggere lo stato corrente dai registri di ingresso e verificare che i registri holding corrispondano
  3. Alternare il valore desiderato due volte (ad es. OFF → ON → OFF → ON) per forzare una modifica del registro
  4. Assicurarsi che l’intervallo tra le scritture nello stesso registro sia di almeno 0,5 secondi
L’unità interna mostra “Unconnected”
  1. Controllare il cablaggio DIII-NET verso l’unità interna
  2. Verificare che l’indirizzo DIII-NET dell’unità interna corrisponda al DeviceNumber in TapHome (DeviceNumber 0 = indirizzo 1-00)
  3. Riavviare l’adattatore e attendere lo stato “Ready”

Dispositivi disponibili

Daikin DTA116A51 Modulo
Attributi di servizio
Stato adattatoreDisponibilità gateway — Non pronto durante l'inizializzazione, Pronto quando la comunicazione DIII-NET è stabilita
Capacità modalità raffreddamentoSe l'unità interna indirizzata supporta la modalità raffreddamento
Capacità modalità ventilatoreSe l'unità interna indirizzata supporta la modalità solo ventilatore
Connessione unità interna (1)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (2)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (3)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (4)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (5)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (6)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (7)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (8)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (9)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (10)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (11)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (12)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (13)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (14)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (15)Stato connessione bus DIII-NET — Connessa o Non connessa
Connessione unità interna (16)Stato connessione bus DIII-NET — Connessa o Non connessa

Daikin DTA

Lettura (modulo)
IF(GETBIT(MODBUSR(A, 6, Uint16),0) = 1, ADDERROR("Communication Error with device 1"));
IF(GETBIT(MODBUSR(A, 6, Uint16),1) = 1, ADDERROR("Communication Error with device 2"));
IF(GETBIT(MODBUSR(A, 6, Uint16),2) = 1, ADDERROR("Communication Error with device 3"));
IF(GETBIT(MODBUSR(A, 6, Uint16),3) = 1, ADDERROR("Communication Error with device 4"));
IF(GETBIT(MODBUSR(A, 6, Uint16),4) = 1, ADDERROR("Communication Error with device 5"));
IF(GETBIT(MODBUSR(A, 6, Uint16),5) = 1, ADDERROR("Communication Error with device 6"));
IF(GETBIT(MODBUSR(A, 6, Uint16),6) = 1, ADDERROR("Communication Error with device 7"));
IF(GETBIT(MODBUSR(A, 6, Uint16),7) = 1, ADDERROR("Communication Error with device 8"));
IF(GETBIT(MODBUSR(A, 6, Uint16),8) = 1, ADDERROR("Communication Error with device 9"));
IF(GETBIT(MODBUSR(A, 6, Uint16),9) = 1, ADDERROR("Communication Error with device 10"));
IF(GETBIT(MODBUSR(A, 6, Uint16),10) = 1, ADDERROR("Communication Error with device 11"));
IF(GETBIT(MODBUSR(A, 6, Uint16),11) = 1, ADDERROR("Communication Error with device 12"));
IF(GETBIT(MODBUSR(A, 6, Uint16), 12) = 1, ADDERROR("Communication Error with device 13"));
IF(GETBIT(MODBUSR(A, 6, Uint16),13) = 1, ADDERROR("Communication Error with device 14"));
IF(GETBIT(MODBUSR(A, 6, Uint16),14) = 1, ADDERROR("Communication Error with device 15"));
IF(GETBIT(MODBUSR(A, 6, Uint16),15) = 1, ADDERROR("Communication Error with device 16"));
Attributi di servizio
Adaptor status
SWITCH(MODBUSR(A, 0, Bool), 1, "Ready", 0, "Not ready", "Error")
Cooling Mode capability
SWITCH(GETBIT(MODBUSR(A, 997 + (3*DeviceNumber), Uint16), 1), 0, "Not exist", 1, "Exist", "Error");
Fan mode capability
SWITCH(GETBIT(MODBUSR(A, 997 + (3*DeviceNumber), Uint16), 0), 0, "Not exist", 1, "Exist", "Error");
Indoor unit (1)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),0), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (2)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),1), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (3)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),2), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (4)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),3), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (5)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),4), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (6)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),5), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (7)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),6), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (8)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),7), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (9)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),8), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (10)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),9), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (11)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),10), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (12)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),11), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (13)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),12), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (14)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),13), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (15)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),14), 0, "Unconnected", 1, "Connected", "Error");
Indoor unit (16)
SWITCH(GETBIT(MODBUSR(A, 1, Uint16),15), 0, "Unconnected", 1, "Connected", "Error");
Direzione deflettori Interruttore multivalore

Controllo posizione lamelle — da P0 a P4 (orizzontale a verticale), Stop o Oscillazione

Registro: H:1997+(DN×3) UInt16 bitfield
Valori / Stati: P0 · P1 · P2 · P3 · P4 · STOP · Swing

Direzione deflettori

Lettura stato interruttore
GETBITS(MODBUSR(H, 1997 + (DeviceNumber*3), UInt16), 8,3);
Scrittura stato interruttore
var reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBITS(reg,4,4, 6));
reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBITS(reg,8,3, Mu));
Velocità ventilatore Interruttore multivalore

Selezione velocità ventilatore — passi disponibili in base alle capacità dell'unità interna (2 velocità: Bassa/Alta, 3 velocità: Bassa/Media/Alta)

Registro: H:1997+(DN×3) UInt16 bitfield
Valori / Stati: Not capable · Low · Medium · High

Velocità ventilatore

Lettura stato interruttore
GETBITS(MODBUSR(H, 1997 + (DeviceNumber*3), Int16), 12, 3);
Scrittura stato interruttore
var reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBITS(reg,4,4, 6));
reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBITS(reg,12,3, Mu));
Modalità operativa Interruttore multivalore

Modalità operativa HVAC — Ventilatore, Riscaldamento, Raffreddamento, Auto, Setpoint (unità slave) o Deumidificazione

Registro: H:1998+(DN×3) UInt16 bitfield
Valori / Stati: Fan · Heating · Cooling · Auto · Setpoint · Dry

Modalità operativa

Lettura stato interruttore
GETBITS(MODBUSR(H, 1998+(DeviceNumber*3), Int16), 0, 4)
Scrittura stato interruttore
var reg :=MODBUSR(H, 1998+(DeviceNumber*3), UInt16);
MODBUSW(H, 1998+(DeviceNumber*3), UInt16, SETBITS(reg, 0, 4, mu));
ON/OFF Interruttore
Registro: H:1997+(DN×3) UInt16 bitfield

ON/OFF

Lettura stato interruttore
GETBIT(MODBUSR(H, 1997 + (DeviceNumber*3), UInt16), 0);
Scrittura stato interruttore
var reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBIT(reg,0,St));
Termostato Termostato

Lettura temperatura ambiente e controllo setpoint con risoluzione 0,1 °C

Registro: A:1998+(6×DN)H:1999+(DN×3) Int16 Unità: °C numeric

Termostato

Lettura temperatura
MODBUSR(A, 1998 + (6*DeviceNumber), Int16) / 10
Lettura temperatura desiderata
MODBUSR(H, 1999+(3*DeviceNumber), Int16)/10
Scrittura temperatura desiderata
MODBUSW(H, 1999 + (DeviceNumber*3), Int16, Se*10);
Connessione: Modbus RTU • 9600 baud• 8E1 • Slave ID: $[SlaveId]
Possibili miglioramenti (14)
  • A:997+(3×DN) bits 2–4 Heating/Auto/Dry Mode Capability — Capability flags for heating (bit 2), auto (bit 3), dry (bit 4) modes — only cooling and fan capability exposed in template
  • A:997+(3×DN) bits 5–7 Fan Direction Level Capability — Fan direction step count (Fix/2step/3step/4step/5step) — useful for UI to show only available positions
  • A:997+(3×DN) bits 9–11 Fan Volume Level Capability — Fan volume step count (Fix/2step/3step) — useful for UI to show only available fan speeds
  • A:997+(3×DN)+1, A:997+(3×DN)+2 Setpoint Limits (Cooling/Heating) — Cooling upper/lower limits and heating upper/lower limits per indoor unit — 8-bit signed integer pairs
  • A:2000+(6×DN) bits 1 Forced Off Status — Bit 1 of status register N+0 — indicates if indoor unit is in forced off state
  • A:2000+(6×DN) bits 2–4 Fan Direction Status (Read) — Current fan direction from status register — template only reads/writes via holding register
  • A:2000+(6×DN) bits 5–7 Fan Volume Status (Read) — Current fan volume from status register — template only reads/writes via holding register
  • A:2001+(6×DN) bits 3–6 Filter Sign Status — Filter sign (0=Off, 1-15=On) per indoor unit — no filter monitoring in template
  • A:2001+(6×DN) bits 7–8 Operation Status — Actual thermal operation: 0=Fan, 1=Heating, 2=Cooling — not exposed in template
  • A:2001+(6×DN) bits 13–14 Cool/Heat Master Status — 0=Not decided, 1=Slave, 2=Master — determines which modes are available
  • A:2003+(6×DN) Error Info — Malfunction bit (9), warning bit (10), error code (bits 0-3 value1, bits 4-8 value2) — per-unit error diagnostics with code lookup table
  • A:2005+(6×DN) Temperature Sensor Status — Bit 8=sensor error, bit 15=data received — temperature sensor health per indoor unit
  • H:1998+(DN×3) bits 3–6 Filter Sign Reset — Write 15 to reset filter sign, then set back to 0 — not exposed in template
  • H:0 DIII-NET Initial Settings — Bit 0=managed address range, bit 9=DIII-NET master flag, bit 14=communication start/stop — stored in EEPROM, applied after power cycle

Fonti

  • Daikin DTA116A51 Functional Specifications — DIII-NET/Modbus Communication Adaptor
    2026-03-22
    PDF