Modbus RTU · Weinzierl · RS-485 · Contatori energetici · 9 min di lettura

Gateway KNX Modbus: Weinzierl KNXGW-MODBUS e mappatura dei registri

Modbus RTU è il protocollo dominante per contatori energetici, azionamenti a frequenza variabile e apparecchiature HVAC. Il Weinzierl KNXGW-MODBUS collega il bus RS-485 Modbus con KNX TP, esponendo i valori dei registri come indirizzi di gruppo KNX – rendendo i dati energetici e i feedback degli azionamenti disponibili per la visualizzazione KNX, la logica e i gateway BMS senza software o PLC separati.

Casi d'uso Modbus RTU/TCP verso KNX

Modbus RTU su RS-485 è il protocollo di campo dominante per le apparecchiature di misura dell'energia, gli azionamenti a frequenza variabile e i sottosistemi HVAC degli edifici. Questi dispositivi non hanno un'interfaccia KNX nativa, ma i loro dati – potenza attiva, totali energetici, feedback di velocità dell'azionamento, corrente motore – sono richiesti nei sistemi di visualizzazione KNX, nei dashboard energetici e negli export dei gateway BMS. Il Weinzierl KNXGW-MODBUS legge i registri slave Modbus e scrive i valori sugli indirizzi di gruppo KNX con scaling corretto dei DPT.

Contatori di energia

  • Carlo Gavazzi EM340 (trifase, guida DIN)
  • Eastron SDM630 (trifase, certificato MID)
  • Schneider iEM3155 e iEM3255
  • Contatori serie ABB B23 e B24
  • Janitza UMG 96-PA (analizzatore di potenza)

Azionamenti a frequenza variabile

  • ABB ACH580 (VFD HVAC, Modbus RTU)
  • Danfoss FC102 (ventilatore e pompa HVAC)
  • Mitsubishi FR-F800 (azionamenti ventilatori HVAC)
  • Siemens SINAMICS G120 (uso generale)
  • Yaskawa GA800 (HVAC per edifici)

Hardware Weinzierl KNXGW-MODBUS

Il Weinzierl KNXGW-MODBUS è un dispositivo su guida DIN che si collega direttamente al bus KNX TP e a una rete RS-485 Modbus RTU tramite morsetti a vite. Una porta Modbus TCP opzionale (Ethernet RJ45) è disponibile su alcune varianti, consentendo la connessione a slave Modbus TCP come contatori connessi in rete senza dover posare cavo RS-485. Il dispositivo è configurato interamente tramite ETS6 – non è richiesto alcun software separato.

Specifiche KNXGW-MODBUS

Interface:
  KNX TP bus connector (bus-powered, 10mA)
  RS-485 Modbus RTU: A, B, GND screw terminals
  Modbus TCP: RJ45 Ethernet (on -TCP variant)

Modbus RTU parameters:
  Baud rate: 9600 / 19200 / 38400 baud
  Parity: None / Even / Odd
  Stop bits: 1 / 2

Capacity:
  Up to 512 Modbus registers mapped to KNX objects
  Up to 32 Modbus slave devices on RS-485 bus
  Slave address range: 1 – 247

Configuration:
  ETS6 only — download product database from weinzierl.de
  No separate software required
  Parameters and group objects configured in ETS6

Database prodotti ETS6: scarica il programma applicativo KNXGW-MODBUS da weinzierl.de/en/products, importa il file .knxprod in ETS6 tramite Cataloghi → Importa. Il dispositivo appare nel catalogo prodotti ETS6 e può essere aggiunto alla struttura dell'edificio come qualsiasi altro dispositivo KNX. Tutti i parametri Modbus, le definizioni dei registri e le assegnazioni degli oggetti di gruppo KNX vengono effettuati all'interno dei parametri ETS6.

Configurazione ETS6

La configurazione ETS6 per KNXGW-MODBUS procede in due fasi: parametri globali del bus Modbus che si applicano a tutti gli slave collegati, quindi definizioni individuali dei registri per ogni dispositivo slave. Pianifica la mappa dei registri in un foglio di calcolo prima dell'inserimento in ETS6 — gli indirizzi dei registri variano tra i produttori di contatori e le versioni firmware.

Pagine dei parametri ETS6

General parameters (applies to all slaves on RS-485):
  Baud rate:   9600 baud (EM340 default), or 19200/38400
  Parity:      Even (EM340 default), None, or Odd
  Stop bits:   1 (standard for Even parity)

Per-slave parameters (one set per connected device):
  Slave address:    1 – 247 (must match device front panel)
  Slave type:       RTU (RS-485) or TCP (Ethernet)
  IP address:       Required for TCP slaves only

Per-register parameters (one entry per mapped register):
  Register address: Decimal or hex, 0-based or 1-based
  Register type:    Holding (0x03) / Input (0x04) / Coil
  Data type:        INT16 / UINT16 / INT32 / UINT32 / FLOAT32
  Byte order:       Big-endian / Little-endian / Byte-swapped
  KNX DPT:          DPT 9.001, DPT 12.001, etc.
  Polling interval: 1s – 3600s

Mappatura registri Carlo Gavazzi EM340

Il Carlo Gavazzi EM340 è un contatore di energia trifase su guida DIN con interfaccia Modbus RTU RS-485. Memorizza le misurazioni come valori a virgola mobile IEEE 754 a 32 bit nei registri di holding. Tutti i registri sono di sola lettura — il gateway legge il contatore, non vengono inviate scritture. L'ordine dei byte è big-endian (byte più significativo per primo).

Registro (hex)MisuraTipoKNX DPTUnità
0x0000Tensione L1FLOAT32 BEDPT 9.020V
0x0002Tensione L2FLOAT32 BEDPT 9.020V
0x0004Tensione L3FLOAT32 BEDPT 9.020V
0x0012Corrente L1FLOAT32 BEDPT 9.021A
0x0034Potenza attiva totaleFLOAT32 BEDPT 9.001W
0x003EFattore di potenza totaleFLOAT32 BEDPT 9.001
0x0046FrequenzaFLOAT32 BEDPT 9.010Hz
0x0100Import Energia AttivaFLOAT32 BEDPT 12.001kWh
0x0102Esporta energia attivaFLOAT32 BEDPT 12.001kWh

Indirizzamento registri: Il manuale EM340 elenca i registri con indirizzi a base 1 (es. registro 1 = 0x0001). ETS6 e la maggior parte degli strumenti Modbus utilizzano indirizzamento a base 0. Sottrarre 1 dall'indirizzo del manuale quando si inserisce in ETS6. Il registro della potenza attiva è elencato come 0x0035 (base 1) = 0x0034 (base 0). Verificare sempre con la versione firmware EM340 specifica — le mappe dei registri talvolta cambiano tra versioni firmware.

Mappatura registri Eastron SDM630

L'Eastron SDM630 è un contatore di energia trifase certificato MID con Modbus RTU. La sua mappa dei registri differisce dall'EM340 — non assumere compatibilità dei registri tra marche di contatori. Il SDM630 utilizza registri di ingresso (codice funzione 0x04) per tutti i dati di misura e memorizza anche i valori come float IEEE 754 a 32 bit in ordine big-endian.

Registro (hex)MisuraCodice funzioneKNX DPT
0x0000Tensione L1 (V)0x04 IngressoDPT 9.020
0x0002Tensione L2 (V)0x04 IngressoDPT 9.020
0x0004Tensione L3 (V)0x04 IngressoDPT 9.020
0x0006Corrente L1 (A)0x04 IngressoDPT 9.021
0x0034Potenza attiva totale (W)0x04 IngressoDPT 9.001
0x003CFattore di potenza totale0x04 IngressoDPT 9.001
0x0046Frequenza (Hz)0x04 IngressoDPT 9.010
0x0156Importo energia attiva (kWh)0x04 IngressoDPT 12.001
0x015AEsporto energia attiva (kWh)0x04 IngressoDPT 12.001

Polling vs COV: configurazione della banda morta

Modbus RTU è un protocollo a polling – il master (KNXGW-MODBUS) avvia ogni lettura. Gli slave non inviano mai dati spontaneamente. Il gateway interroga ogni registro configurato all'intervallo impostato in ETS6. Dopo ogni polling riuscito, il gateway confronta il nuovo valore con l'ultimo valore inviato a KNX. Se la variazione supera la banda morta configurata, viene inviato un telegramma di gruppo KNX con il nuovo valore.

Strategia di polling e banda morta

Polling interval recommendations:
  Active power (kW):    5s – 10s  (fast-changing, demand monitoring)
  Energy total (kWh):   60s       (slow-accumulating)
  VFD speed feedback:   2s        (control feedback)
  Temperature sensors:  30s       (slow physical process)

Deadband recommendations (prevents telegram storms):
  Temperature:    ±0.2°C  (avoids 0.1°C floating-point noise)
  Active power:   ±10W    (noise on lightly loaded circuits)
  Energy total:   ±0.01kWh (send every 36Wh increment)
  VFD speed %:    ±0.5%   (avoids resolver dither noise)

Without deadband on a noisy FLOAT32 register:
  Gateway sends a new KNX telegram every poll cycle
  even when the physical value has not changed.
  On a 512-signal configuration at 1s polling,
  this can saturate the KNX TP bus at 9600 baud.

Regole di cablaggio RS-485

Il livello fisico RS-485 (EIA-485) è una trasmissione differenziale su doppino intrecciato. Un cablaggio corretto è obbligatorio – un bus RS-485 cablato in modo errato può sembrare funzionare a brevi distanze e a bassi baud rate, ma fallirà in modo intermittente su tratte più lunghe o a velocità più elevate. Seguire queste regole senza eccezioni.

Regole di cablaggio RS-485

Signal polarity (EIA-485 standard):
  A terminal = non-inverting (+)  →  positive when marking (idle)
  B terminal = inverting (-)      →  negative when marking (idle)

Termination resistors:
  120 Ω resistor at BOTH physical ends of the bus only
  Never terminate in the middle of the bus
  Total bus impedance = 60 Ω when both terminations installed
  Most Weinzierl gateways have built-in switchable termination

Cable requirements:
  120 Ω characteristic impedance twisted pair
  Belden 9841 or equivalent (22 AWG, shielded)
  Shield: drain both ends to panel earth (same earth reference)
  Maximum bus length: 1200m at 9600 baud (EIA-485 spec)
  Maximum 32 standard unit loads (UL) without repeater

WAGO polarity note:
  WAGO 750-653 Modbus RTU coupler labels
  A and B REVERSED vs EIA-485 standard.
  A(WAGO) connects to B(EIA-485) and vice versa.
  Always verify with oscilloscope on first connection.

Topologia a stella — vietata

RS-485 richiede una topologia a margherita (bus). La topologia a stella — in cui più rami si diramano da un punto centrale — provoca riflessioni e problemi di integrità del segnale. Anche rami corti (30 cm) causano problemi a 19200 baud. Cavo dal gateway al dispositivo 1, poi dal dispositivo 1 al dispositivo 2 e così via. Nessuna giunzione a T.

Riferimento di terra

RS-485 non richiede un conduttore di terra per la trasmissione del segnale, ma una differenza di tensione di terra tra master e slave superiore a ±7 V rispetto alla gamma di modo comune può corrompere i segnali o danneggiare i ricetrasmettitori. Includere un conduttore di terra nel cavo RS-485 per installazioni che si estendono su più quadri di distribuzione.

Progettazione di bus RS-485 multi-dispositivo

Un singolo KNXGW-MODBUS può indirizzare fino a 32 dispositivi slave Modbus RTU su un bus RS-485. Una messa in servizio sistematica di un bus multi-dispositivo previene conflitti di indirizzo e errori di cablaggio difficili da diagnosticare una volta che tutti i dispositivi sono collegati.

Sequenza di messa in servizio del bus multi-dispositivo

Pre-connection preparation:
  1. Assign unique slave addresses 1–247 to each device
     via front panel programming (DIP switches or menu)
     BEFORE connecting to shared bus
  2. Verify each device address with a Modbus RTU tester
     connected directly to the individual device
  3. Document address assignments in panel schedule

Connection sequence:
  1. Connect gateway to device 1 only (install 120Ω at both ends)
  2. Verify gateway polls device 1 successfully in ETS6 diagnostics
  3. Add device 2 (remove termination from device 1 if not end of bus)
  4. Verify both devices poll successfully
  5. Repeat for each additional device

Bus capacity (EIA-485, 9600 baud):
  Maximum 32 unit loads (UL) — one UL per standard transceiver
  Many modern meters present 1/4 UL → up to 128 devices possible
  Verify UL rating in device datasheet before exceeding 32 devices
  Use RS-485 repeater (e.g. Weidmuller RS-485 REP) if needed

Budget di tempo di polling: Con 32 dispositivi e 512 registri totali, ogni ciclo di polling richiede circa 32 × (frame di indirizzo + tempo di risposta + intervallo tra frame). A 9600 baud con un ritardo inter-frame di 10 ms, la lettura di 16 registri per dispositivo richiede circa 50 ms per dispositivo, dando un tempo di ciclo totale di 1,6 secondi per 32 dispositivi. Imposta l'intervallo di polling ETS6 a minimo 2 s per i totali energetici per garantire che ogni dispositivo venga letto in ogni ciclo. Aumenta il baud rate a 19200 o 38400 se il tempo di ciclo è troppo lungo.

Hai bisogno di un gateway KNX Modbus integrato nel tuo pannello di monitoraggio energetico?

Progettiamo pannelli con Weinzierl KNXGW-MODBUS preconfigurato — mappe dei registri verificate per i tuoi contatori e azionamenti specifici, bus RS-485 testato e oggetti di gruppo ETS6 collegati alla visualizzazione KNX prima della consegna.

Richiedi un preventivo →
Caricamento in corso ...
Torna all'inizio