Bramka KNX Modbus: Weinzierl KNXGW-MODBUS i mapowanie rejestrów
Modbus RTU jest dominującym protokołem dla liczników energii, przemienników częstotliwości i urządzeń HVAC. Weinzierl KNXGW-MODBUS łączy magistralę RS-485 Modbus z KNX TP, udostępniając wartości rejestrów jako adresy grupowe KNX – umożliwiając dostęp do danych energetycznych i informacji zwrotnych z napędów w wizualizacji KNX, logice i bramkach BMS bez dodatkowego oprogramowania ani sterowników PLC.
Zastosowania Modbus RTU/TCP do KNX
Modbus RTU przez RS-485 jest dominującym protokołem polowym dla urządzeń pomiaru energii, przemienników częstotliwości i podsystemów HVAC w budynkach. Urządzenia te nie mają natywnego interfejsu KNX, ale ich dane – moc czynna, sumy energii, sygnał zwrotny prędkości napędu, prąd silnika – są wymagane w systemach wizualizacji KNX, pulpitach energetycznych i eksportach bramek BMS. Weinzierl KNXGW-MODBUS odczytuje rejestry Modbus slave i zapisuje wartości na adresy grupowe KNX ze skalowaniem zgodnym z DPT.
Liczniki energii
- Carlo Gavazzi EM340 (3-fazowy, szyna DIN)
- Eastron SDM630 (3-fazowy, certyfikat MID)
- Schneider iEM3155 i iEM3255
- Liczniki serii ABB B23 i B24
- Janitza UMG 96-PA (analizator mocy)
Przemienniki częstotliwości
- ABB ACH580 (HVAC VFD, Modbus RTU)
- Danfoss FC102 (wentylator i pompa HVAC)
- Mitsubishi FR-F800 (napędy wentylatorów HVAC)
- Siemens SINAMICS G120 (ogólnego przeznaczenia)
- Yaskawa GA800 (HVAC budynkowy)
Sprzęt Weinzierl KNXGW-MODBUS
Weinzierl KNXGW-MODBUS to urządzenie na szynę DIN, które łączy się bezpośrednio z magistralą KNX TP oraz z siecią RS-485 Modbus RTU za pomocą zacisków śrubowych. Opcjonalny port Modbus TCP (Ethernet RJ45) jest dostępny w niektórych wariantach, umożliwiając połączenie z urządzeniami podrzędnymi Modbus TCP, takimi jak liczniki podłączone do sieci, bez konieczności prowadzenia kabla RS-485. Urządzenie jest konfigurowane w całości przez ETS6 – nie jest wymagane żadne dodatkowe oprogramowanie.
Specyfikacje 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
Baza produktów ETS6: pobierz program aplikacyjny KNXGW-MODBUS ze strony weinzierl.de/en/products, zaimportuj plik .knxprod do ETS6 przez Katalogi → Import. Urządzenie pojawia się w katalogu produktów ETS6 i może być dodane do struktury budynku jak każde inne urządzenie KNX. Wszystkie parametry Modbus, definicje rejestrów i przypisania obiektów grupowych KNX są dokonywane w parametrach ETS6.
Konfiguracja ETS6
Konfiguracja ETS6 dla KNXGW-MODBUS przebiega w dwóch etapach: globalne parametry magistrali Modbus obowiązujące dla wszystkich podłączonych urządzeń podrzędnych, a następnie indywidualne definicje rejestrów dla każdego urządzenia podrzędnego. Zaplanuj mapę rejestrów w arkuszu kalkulacyjnym przed wprowadzeniem do ETS6 – adresy rejestrów różnią się w zależności od producenta licznika i wersji firmware.
Strony parametrów 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
Mapowanie rejestrów Carlo Gavazzi EM340
Carlo Gavazzi EM340 to 3-fazowy licznik energii na szynę DIN z interfejsem Modbus RTU RS-485. Przechowuje pomiary jako 32-bitowe wartości zmiennoprzecinkowe IEEE 754 w rejestrach holdingowych. Wszystkie rejestry są tylko do odczytu – bramka odczytuje licznik, nie są wysyłane żadne zapisy. Kolejność bajtów to big-endian (najbardziej znaczący bajt pierwszy).
| Rejestr (hex) | Pomiar | Typ | KNX DPT | Jednostka |
|---|---|---|---|---|
| 0x0000 | Napięcie L1 | FLOAT32 BE | DPT 9.020 | V |
| 0x0002 | Napięcie L2 | FLOAT32 BE | DPT 9.020 | V |
| 0x0004 | Napięcie L3 | FLOAT32 BE | DPT 9.020 | V |
| 0x0012 | Prąd L1 | FLOAT32 BE | DPT 9.021 | A |
| 0x0034 | Całkowita moc czynna | FLOAT32 BE | DPT 9.001 | W |
| 0x003E | Całkowity współczynnik mocy | FLOAT32 BE | DPT 9.001 | — |
| 0x0046 | Częstotliwość | FLOAT32 BE | DPT 9.010 | Hz |
| 0x0100 | Import Energii Czynnej | FLOAT32 BE | DPT 12.001 | kWh |
| 0x0102 | Eksport energii czynnej | FLOAT32 BE | DPT 12.001 | kWh |
Adresowanie rejestrów: Instrukcja EM340 podaje rejestry z adresami 1-bazowymi (np. rejestr 1 = 0x0001). ETS6 i większość narzędzi Modbus używa adresowania 0-bazowego. Odejmij 1 od adresu z instrukcji podczas wprowadzania w ETS6. Rejestr mocy czynnej jest podany jako 0x0035 (1-bazowy) = 0x0034 (0-bazowy). Zawsze weryfikuj z konkretną wersją firmware EM340 – mapy rejestrów czasami zmieniają się między wydaniami firmware.
Mapowanie rejestrów Eastron SDM630
Eastron SDM630 to 3-fazowy licznik energii z certyfikatem MID z Modbus RTU. Jego mapa rejestrów różni się od EM340 – nie zakładaj kompatybilności rejestrów między markami liczników. SDM630 używa rejestrów wejściowych (kod funkcji 0x04) dla wszystkich danych pomiarowych i przechowuje wartości jako 32-bitowe liczby zmiennoprzecinkowe IEEE 754 w kolejności bajtów big-endian.
| Rejestr (hex) | Pomiar | Kod funkcji | KNX DPT |
|---|---|---|---|
| 0x0000 | Napięcie L1 (V) | 0x04 Wejście | DPT 9.020 |
| 0x0002 | Napięcie L2 (V) | 0x04 Wejście | DPT 9.020 |
| 0x0004 | Napięcie L3 (V) | 0x04 Wejście | DPT 9.020 |
| 0x0006 | Prąd L1 (A) | 0x04 Wejście | DPT 9.021 |
| 0x0034 | Całkowita moc czynna (W) | 0x04 Wejście | DPT 9.001 |
| 0x003C | Całkowity współczynnik mocy | 0x04 Wejście | DPT 9.001 |
| 0x0046 | Częstotliwość (Hz) | 0x04 Wejście | DPT 9.010 |
| 0x0156 | Import energii czynnej (kWh) | 0x04 Wejście | DPT 12.001 |
| 0x015A | Eksport energii czynnej (kWh) | 0x04 Wejście | DPT 12.001 |
Polling vs COV: konfiguracja strefy nieczułości
Modbus RTU to protokół oparty na odpytywaniu – master (KNXGW-MODBUS) inicjuje każdy odczyt. Urządzenia slave nigdy nie wysyłają danych spontanicznie. Bramka odczytuje każde skonfigurowane rejestr w interwale ustawionym w ETS6. Po każdym udanym odczycie bramka porównuje nową wartość z ostatnią wartością wysłaną do KNX. Jeśli zmiana przekroczy skonfigurowaną strefę nieczułości, wysyłany jest telegram grupowy KNX z nową wartością.
Strategia odpytywania i strefy nieczułości
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.
Zasady okablowania RS-485
Warstwa fizyczna RS-485 (EIA-485) to transmisja różnicowa po skrętce. Prawidłowe okablowanie jest obowiązkowe – nieprawidłowo podłączona magistrala RS-485 może działać na krótkich dystansach i przy niskich prędkościach transmisji, ale będzie zawodzić sporadycznie na dłuższych odcinkach lub przy wyższych prędkościach. Należy bezwzględnie przestrzegać tych zasad.
Zasady okablowania 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 gwiazdy — zabroniona
RS-485 wymaga topologii łańcuchowej (magistrali). Topologia gwiazdy — w której wiele odgałęzień odchodzi od centralnego punktu — powoduje odbicia i błędy integralności sygnału. Nawet krótkie odgałęzienia (30 cm) powodują problemy przy 19200 bodach. Kabel od bramy do urządzenia 1, następnie od urządzenia 1 do urządzenia 2 i tak dalej. Żadnych rozgałęzień w kształcie litery T.
Potencjał odniesienia (masa)
RS-485 nie wymaga przewodu masy do transmisji sygnału, ale różnica napięć masy między masterem a slavem przekraczająca ±7 V względem zakresu napięcia wspólnego może zakłócić sygnały lub uszkodzić transceivery. W instalacjach obejmujących wiele rozdzielnic należy dołączyć przewód masy w kablu RS-485.
Projekt magistrali RS-485 z wieloma urządzeniami
Pojedynczy KNXGW-MODBUS może adresować do 32 urządzeń slave Modbus RTU na jednej magistrali RS-485. Systematyczne uruchamianie magistrali z wieloma urządzeniami zapobiega konfliktom adresów i błędom okablowania, które są trudne do zdiagnozowania po podłączeniu wszystkich urządzeń.
Sekwencja uruchamiania magistrali z wieloma urządzeniami
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 neededBudżet czasu odpytywania: Przy 32 urządzeniach i łącznie 512 rejestrach każdy cykl odpytywania trwa około 32 × (ramka adresowa + czas odpowiedzi + odstęp międzyramkowy). Przy 9600 bodach z opóźnieniem międzyramkowym 10 ms odczyt 16 rejestrów na urządzenie zajmuje około 50 ms na urządzenie, co daje całkowity czas cyklu 1,6 sekundy dla 32 urządzeń. Ustaw interwał odpytywania ETS6 na minimum 2 s dla sum energii, aby zapewnić odczyt każdego urządzenia w każdym cyklu. Zwiększ prędkość transmisji do 19200 lub 38400, jeśli czas cyklu jest zbyt długi.
Potrzebujesz bramki KNX Modbus zintegrowanej z panelem monitorowania energii?
Projektujemy panele z prekonfigurowanym Weinzierl KNXGW-MODBUS — mapy rejestrów zweryfikowane dla konkretnych liczników i napędów, magistrala RS-485 przetestowana, a obiekty grupowe ETS6 połączone z wizualizacją KNX przed dostawą.
Poproś o wycenę →