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) | Measurement | Type | KNX DPT | Unit |
|---|---|---|---|---|
| 0x0000 | L1 Voltage | FLOAT32 BE | DPT 9.020 | V |
| 0x0002 | L2 Voltage | FLOAT32 BE | DPT 9.020 | V |
| 0x0004 | L3 Voltage | FLOAT32 BE | DPT 9.020 | V |
| 0x0012 | L1 Current | FLOAT32 BE | DPT 9.021 | A |
| 0x0034 | Total Active Power | FLOAT32 BE | DPT 9.001 | W |
| 0x003E | Total Power Factor | FLOAT32 BE | DPT 9.001 | — |
| 0x0046 | Frequency | FLOAT32 BE | DPT 9.010 | Hz |
| 0x0100 | Import Active Energy | FLOAT32 BE | DPT 12.001 | kWh |
| 0x0102 | Export Active Energy | FLOAT32 BE | DPT 12.001 | kWh |
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) | Measurement | Function code | KNX DPT |
|---|---|---|---|
| 0x0000 | L1 Voltage (V) | 0x04 Input | DPT 9.020 |
| 0x0002 | L2 Voltage (V) | 0x04 Input | DPT 9.020 |
| 0x0004 | L3 Voltage (V) | 0x04 Input | DPT 9.020 |
| 0x0006 | L1 Current (A) | 0x04 Input | DPT 9.021 |
| 0x0034 | Total Active Power (W) | 0x04 Input | DPT 9.001 |
| 0x003C | Total Power Factor | 0x04 Input | DPT 9.001 |
| 0x0046 | Frequency (Hz) | 0x04 Input | DPT 9.010 |
| 0x0156 | Import Active Energy (kWh) | 0x04 Input | DPT 12.001 |
| 0x015A | Export Active Energy (kWh) | 0x04 Input | DPT 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 neededPolling 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 →