KNX-Modbus RTU Gateway

Technische Daten:
– Modbus galvanisch getrennt
– Modbus Hilfsspannung: 12V-24V
– KNX: NCN5120
– µC: SAMD

Mechanische Daten:
– Montage: Hutschiene
– Gehäusebreite: 2TE

Modbus RTU:
– Master mit interner Terminierung (390R / 220R / 390R)
– Baudraten: 1200/2400/4800/9600/19200/38400/56000/115200 kBit/s
– Slaves: 10stk.
– Kanäle: 100stk.

Supported Devices

PictureTypManuf.DeviceETS ConfigLinks
Single phase meterORNOOR-WE-514/515Linkmanuel
Three phase meterORNOOR-WE-516/517Linkmanuel
Single phase meterEASTRONSDM120Linkmanuel + Modbus Register
Three phase meterEASTRONSDM72D Linkmanuel + Modbus Register
LüftungsanlageBrinkBrink Flair 325Linkinstallation manuel
Modbus-Register (S.60)

Applikationsbeschreibung

Diese KNXprod wird nicht von der KNX Association offiziell unterstützt!

Die Erzeugung der KNXprod geschieht auf Eure eigene Verantwortung!


Modbus Einstellungen

Folgende Einstellungen sind möglich:

Baudrate

Es stehen folgende Baudraten zur Verfügung. Alle Modbus-Slaves die an diesen Gateway angeschlossen sind, müssen über die gleiche Baudrate verfügen.

Parity

Es stehen folgende Parity Einstellmöglichkeiten zu Verfügung. Auch hier müssen alle Modbus-Slaves die gleichen Parity Einstellungen besitzen.

Abfrage-Einstellungen

Hier kann definiert werden wie oft und damit auch wie schnell die einzelnen Register abgefragt werden. Ein Abfrage-Interval = Abfragezyklus beinhaltet alle in der ETS definierten Modbus Kanäle. Werden in der ETS nur 8 Kanäle belegt, dann ist der Abfragezyklus auch nur 8CH lang. Es spielt keine Rolle auf welche Kanäle die 8 Register Abfragen gelegt werden. Nicht belegte Kanäle werden von der Firmware ignoriert. Es spielt also keine Rolle auf welche Kanäle ihr eure Abfragen legt.

Vereinfachte Berechnung des Abfrage-Intervalls = Anzahl der belegten Kanäle * ( 50ms + “Zeit zwischen zwei Modbus Register Abfragen”) + “Zeit zwischen zwei Abfragezyklen.

Bsp: Es wurden 8 Kanäle belegt, die “Zeit zwischen zwei Register Abfragen” auf 200ms gelegt und für die “Zeit zwischen zwei Abfragezyklen” auf 2s gestellt.
Damit ist die Dauer eines Abfrage-Intervalls = 8 * ( 50ms + 200ms ) + 2s = ~4000ms = ~4sek
–> Mit diesen Einstellungen stehen alle 4sek neue Werte zur Verfügung.

Da immer noch parallel andere Vorgange/Berechnungen im Gateway ablaufen, sind diese Angaben nur gute Schätzwerte.

Zeit zwischen zwei Modbus Register Abfragen
Zeit zwischen zwei Abfragezyklen

Slave-ID

Hier können die einzelnen Slave Device Konfiguriert werden. Die Firmware unterstützt aktuell 10 Slaves.

Default sind alle Slaves am Anfang deaktiviert. Erst du das ändern der ID, klappen weitere Einstellparameter auf. Sind diese Parameter sichtbar, so versucht die Firmware diese Slaves auch anzusprechen. Das passiert aber nur, wenn dieser Slave auch in einem der Kanäle ausgewählt wurde.

Slave 1-10:

Hier kann eine ID zwischen 1 – 247 eingetragen werden. Adressen >247 werden von der Firmware ignoriert.

Register Position: (noch nicht implementiert)

Gibt die Reihenfolge an, ob das erste Byte das MSB beinhaltet oder das LSB. Im Modbus Standard wird immer erst das MSB gesendet, somit ist diese Einstellung nur für sehr spezielle Device gedacht, die sich nicht an den Modbus Standard halten.

Register Start:

Hier ist der Modbus Standard leider nicht immer sehr genau. Einige Hersteller fangen bei Adresse 0 und andere bei Adresse 1 an zu zählen. Daher kann es zu einem Offset kommen. Also, einfach ausprobieren.
Mit dieser Offset-Einstellung kann man sich später das Leben etwas einfacher machen und die Werte aus dem Datenblatt übernehmen, ohne das man was daran ändern muss.


Kanal Einstellungen

Beschreibung des Kanals:

Textfeld zur freien Beschreibung der Kanalfunktion. Dienst der späteren Übersichtlichkeit und dem Verständnis für was dieser Kanal verwendet wird.

Slave:

Hier kann der jeweilige Slave bestimmt werden, der mit diesem Kanal angesprochen werden soll. Erst nachdem ein Slave ausgewählt wurde, stehen weitere Einstellmöglichkeiten zur Verfügung.

DPT- Auswahl:

Hier muss der passende DPT ausgewählt werden. Es stehen folgende DPTs zur Verfügung:

Richtung:

Gibt die Richtung der Daten an. Man kann Daten von KNX Richtung Modbus Slave schicken oder andersrum.

KNX

zyklisch senden (0=nicht senden):
stellt das Sendeintervall ein wie schnell die Daten auf den KNX-Bus zyklisch gesendet werden sollen. Ein Wert von 0 deaktiviert das zyklische Senden.

abs Abweichung senden (0=nicht senden):
Ändert sich zwischen zwei Abfragen der Wert um diesen absoluten Wert, wird das KO mit dem neuen Wert auf den KNX-Bus geschickt.

Modbus

Noch nicht implementiert!
Hier soll es später möglich sein, diesen Kanal für jeden xten Durchlauf aus der Abfrage zu nehmen. Damit könnte man eine Art Priorisierung der der einzelnen Kanäle bestimmen. Fällt ein Kanal aus dem Abfragezyklus raus, wird dieser kürzer und damit würden alle restlichen Kanäle schneller abgefragt werden.

Register

Hier wird der Register-Wert eingetragen
Wichtig:
1.) die Werte müssen Dezimal (Bsp: 255) eingetragen werden und nicht Hexadezimal (Bsp: 0xFF)
2.) . Manchmal werden die Register auch mit Adressen wie 30000 und 40000 angegeben. Gemeint sind dann Register der Adressen 0, die man mit Function code 0x03 und 0x04 liest.

Funktion

Aktuell stehen diese 6 Funktionen zur Verfügung. In der ETS werden nur die Funktionen bereitgestellt, die für die davor gewählten Parameter übrig bleiben. Sollte bei euch hier die gewünschte Funktion fehlen, dann prüft die Parameter DPT-Auswahl und Richtung.

  • 0x01 – Read Coils
  • 0x02 – Read Input Status (Read Discrete Inputs)
  • 0x03 – Read Holding Registers 
  • 0x04 – Read Input Registers
  • 0x05 – Write Single Coil
  • 0x06 – Write Single Register