Modbus RTU · Weinzierl · RS-485 · Energy meters · 9 min read

KNX Modbus Gateway: Weinzierl KNXGW-MODBUS and Register Mapping

Modbus RTU is the dominant protocol for energy meters, variable frequency drives, and HVAC equipment. The Weinzierl KNXGW-MODBUS bridges the RS-485 Modbus bus with KNX TP, exposing register values as KNX group addresses — making energy data and drive feedback available to KNX visualisation, logic, and BMS gateways without separate software or PLCs.

Modbus RTU/TCP to KNX use cases

Modbus RTU over RS-485 is the dominant field protocol for energy metering equipment, variable frequency drives, and building HVAC sub-systems. These devices have no native KNX interface, yet their data — active power, energy totals, drive speed feedback, motor current — is required in KNX visualisation systems, energy dashboards, and BMS gateway exports. The Weinzierl KNXGW-MODBUS reads Modbus slave registers and writes values to KNX group addresses with DPT-correct scaling.

Energy meters

  • Carlo Gavazzi EM340 (3-phase, DIN-rail)
  • Eastron SDM630 (3-phase, MID certified)
  • Schneider iEM3155 and iEM3255
  • ABB B23 and B24 series meters
  • Janitza UMG 96-PA (power analyser)

Variable frequency drives

  • ABB ACH580 (HVAC VFD, Modbus RTU)
  • Danfoss FC102 (HVAC fan and pump)
  • Mitsubishi FR-F800 (HVAC fan drives)
  • Siemens SINAMICS G120 (general purpose)
  • Yaskawa GA800 (building HVAC)

Weinzierl KNXGW-MODBUS hardware

The Weinzierl KNXGW-MODBUS is a DIN-rail device that connects directly to the KNX TP bus and to an RS-485 Modbus RTU network via screw terminals. An optional Modbus TCP port (Ethernet RJ45) is available on some variants, enabling connection to Modbus TCP slaves such as network-connected meters without running RS-485 cable. The device is configured entirely through ETS6 — no separate software is required.

KNXGW-MODBUS specifications

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

ETS6 product database: download the KNXGW-MODBUS application program from weinzierl.de/en/products, import the .knxprod file into ETS6 via Catalogs → Import. The device appears in the ETS6 product catalog and can be added to the building structure as any other KNX device. All Modbus parameters, register definitions, and KNX group object assignments are made within ETS6 parameters.

ETS6 configuration

ETS6 configuration for the KNXGW-MODBUS proceeds in two stages: global Modbus bus parameters that apply to all connected slaves, then individual register definitions for each slave device. Plan the register map in a spreadsheet before ETS6 entry — register addresses vary between meter manufacturers and firmware versions.

ETS6 parameter pages

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

Carlo Gavazzi EM340 register mapping

The Carlo Gavazzi EM340 is a 3-phase DIN-rail energy meter with Modbus RTU RS-485 interface. It stores measurements as 32-bit IEEE 754 floating-point values in holding registers. All registers are read-only — the gateway reads the meter, no writes are sent. Byte order is big-endian (most significant byte first).

Register (hex)MeasurementTypeKNX DPTUnit
0x0000L1 VoltageFLOAT32 BEDPT 9.020V
0x0002L2 VoltageFLOAT32 BEDPT 9.020V
0x0004L3 VoltageFLOAT32 BEDPT 9.020V
0x0012L1 CurrentFLOAT32 BEDPT 9.021A
0x0034Total Active PowerFLOAT32 BEDPT 9.001W
0x003ETotal Power FactorFLOAT32 BEDPT 9.001
0x0046FrequencyFLOAT32 BEDPT 9.010Hz
0x0100Import Active EnergyFLOAT32 BEDPT 12.001kWh
0x0102Export Active EnergyFLOAT32 BEDPT 12.001kWh

Register addressing: the EM340 manual lists registers with 1-based addresses (e.g., register 1 = 0x0001). ETS6 and most Modbus tools use 0-based addressing. Subtract 1 from the manual address when entering in ETS6. Active Power register is listed as 0x0035 (1-based) = 0x0034 (0-based). Always verify against the specific EM340 firmware version — register maps occasionally change between firmware releases.

Eastron SDM630 register mapping

The Eastron SDM630 is a 3-phase MID-certified energy meter with Modbus RTU. Its register map differs from the EM340 — do not assume register compatibility between meter brands. The SDM630 uses input registers (function code 0x04) for all measurement data, and also stores values as 32-bit IEEE 754 floats in big-endian byte order.

Register (hex)MeasurementFunction codeKNX DPT
0x0000L1 Voltage (V)0x04 InputDPT 9.020
0x0002L2 Voltage (V)0x04 InputDPT 9.020
0x0004L3 Voltage (V)0x04 InputDPT 9.020
0x0006L1 Current (A)0x04 InputDPT 9.021
0x0034Total Active Power (W)0x04 InputDPT 9.001
0x003CTotal Power Factor0x04 InputDPT 9.001
0x0046Frequency (Hz)0x04 InputDPT 9.010
0x0156Import Active Energy (kWh)0x04 InputDPT 12.001
0x015AExport Active Energy (kWh)0x04 InputDPT 12.001

Polling vs COV: deadband configuration

Modbus RTU is a polled protocol — the master (KNXGW-MODBUS) initiates every read. Slaves never send data spontaneously. The gateway polls each configured register at the interval set in ETS6. After each successful poll, the gateway compares the new value against the last value sent to KNX. If the change exceeds the configured deadband, a KNX group telegram is sent with the new value.

Polling and deadband strategy

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.

RS-485 wiring rules

RS-485 (EIA-485) physical layer is differential signalling over a twisted pair. Correct wiring is mandatory — an incorrectly wired RS-485 bus will appear to work at short distances and low baud rates but fail intermittently at longer runs or higher speeds. Follow these rules without exception.

RS-485 wiring rules

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.

Star topology — prohibited

RS-485 requires a daisy-chain (bus) topology. Star topology — where multiple stubs branch from a central point — causes reflections and signal integrity failures. Even short stubs (30cm) cause problems at 19200 baud. Cable from gateway to device 1, then device 1 to device 2, and so on. No T-junctions.

Ground reference

RS-485 does not require a ground conductor for signal transmission, but ground voltage difference between master and slave beyond ±7V relative to the common-mode range will corrupt signals or damage transceivers. Include a ground conductor in the RS-485 cable for installations spanning multiple distribution boards.

Multi-device RS-485 bus design

A single KNXGW-MODBUS can address up to 32 Modbus RTU slave devices on one RS-485 bus. Systematic commissioning of a multi-device bus prevents address conflicts and wiring faults that are difficult to diagnose once all devices are connected.

Multi-device bus commissioning sequence

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

Polling time budget: with 32 devices and 512 total registers, each poll cycle takes approximately 32 × (address frame + response time + inter-frame gap). At 9600 baud with 10ms inter-frame delay, reading 16 registers per device takes roughly 50ms per device, giving a total cycle time of 1.6 seconds for 32 devices. Set ETS6 polling interval to minimum 2s for energy totals to ensure each device is read in every cycle. Increase baud rate to 19200 or 38400 if cycle time is too long.

Need a KNX Modbus gateway integrated into your energy monitoring panel?

We design panels with Weinzierl KNXGW-MODBUS pre-configured — register maps verified for your specific meters and drives, RS-485 bus tested, and ETS6 group objects linked to KNX visualisation before delivery.

Request a quote →
Loading...
Back to top