Modbus Master| Mit
diesem Funktionsbaustein wird die Modbus Master Funktion
konfiguriert. Die Konfiguration ist hierbei in Slaves und
Register unterteilt. Mit Slave ist hierbei eine Modbus ID gemeint,
mehrere Slaves können auch dieselbe Schnittstelle verwenden. Sind
mehrere Schnittstellen konfiguriert, werden diese der Reihe nach
ausgelesen. Der Funktionsbaustein ist auf 128 Ausgänge begrenzt, werden mehr Register benötigt, können diese auf mehrere Funktionsbausteine aufgeteilt werden. Wichtig: An den Funktionsbausteinen müssen immer Variablen verknüpft werden. Beim Erzeugen der Variablen geschieht dies automatisch. Folgende Geräte sind bereits als Vorlage integriert. Weitere können manuell konfiguriert werden. Wechselrichter: Fronius Symo Gen 24 Float (TCP) Fronius Symo Gen 24 Float Batterie (TCP) Fronius Symo Gen 24 Float Smart Meter (TCP) Fronius Verto Float (TCP) Fronius Verto Float Batterie (TCP) Huawei (TCP) Huawei Batterie (TCP) Huawei EMMA (TCP) Solaredge (TCP) Solaredge (TCP) + Smartmeter Solax (TCP) + Smartmeter Sungrow SH15/20/25T (TCP) Wallbox: Wallbox KEBA KeContact P30 (TCP) Wallbox ABB Terra AC (TCP) Wallbox ABB Terra AC (RTU) Wallbox Siemens VersiCharge (TCP) Wärmepumpe / Kessel: Ochsner (RTU) Fröhling Lamdatronic 3200 (RTU) Klima: Samsung MIM-B19N (RTU) Energiezähler: Energiezähler SDM 630 (RTU) EMU Professional II (RTU) SINEAX AMx000 (TCP) Wetterstation: Wetterstation Thies (RTU) Allgemein: Victron Cerbo (TCP) |
Parameter
|
|
| Deaktivieren | Mit diesem Parameter wird der Baustein deaktiviert und die Register nicht mehr abgefragt. Dies kann zur Diagnose verwendet werden um bestimmte Register vorübergehend auszublenden. |
| Modbus ID |
Modbus ID |
| Telegrammabstand | Minimaler Telegrammabstand. Laut Modbus Spezifikation ist der minimale Telegrammabstand 3.5 Zeichen und mindestens 1.75 ms, dies ist für manche Geräte zu kurz, dieser Parameter wird zum Standard Abstand addiert. |
| Timeout |
Zeit die auf eine Antwort des Slaves
gewartet wird bis ein Fehler erkannt wird. |
| Protokoll |
Auswahl des Protokolls
|
| Schnittstellenparameter |
Bei Auswahl des Protokolls Modbus RTU
werden hier die Schnittstellenparameter eingestellt. Wichtig: Über
USB Umsetzer dürfen nur nicht kritische Komponenten verwendet
werden. Wichtig: Wenn mehrere Modbus Slaves auf einer Schnittstelle betrieben werden, müssen alle Funktionsbausteine die selben Schnittstellenparameter haben. |
| IP
Adresse, Port |
Bei Auswahl des Protokolls Modbus TCP
werden hier die IP Adresse und der Port eingestellt, Standardport
für Modbus ist 502. |
| Register Adresse | Hier kann eingestellt werden ob die Register Adresse bei 0 oder 1 beginnen. |
| Verbindung trennen | Nur bei TCP. Mit dieser Option wird die Verbindung zum Modbus TCP Slave getrennt und neu initialisiert. Dies kann bei manchen Geräten notwendig sein wenn diese nach einer gewissen Zeit nicht mehr antworten oder bei Inaktivität die Verbindung trennen, beispielsweise wenn nur geschrieben wird und es keine Änderungen gibt. |
| Verbindungen zusammenfassen | Nur bei TCP. Mit dieser Option werden Geräte mit der selben IP Adresse und Portnummer über eine gemeinsame Verbindung ausgelesen. Standardmäßig werden alle Funktionsbausteine über separate Verbindungen ausgelesen. Das Zusammenfassen von Verbindungen kann bei Geräten notwendig sein die nur eine begrenzte Anzahl an gleichzeitigen Verbindungen zulassen. |
Parameter Register
|
|
| Register
aktiv |
Ist diese Option nicht angewählt, wird das Register nicht abgefragt. |
| Kommentar |
Bezeichnung des Registers |
| Adresse |
Registeradresse. Diese beginnt immer
bei 0. |
| Register Länge |
Anzahl an Registern welche die
Variable umfasst. Ein Register ist immer 2 Byte lang. Bei
Bitbefehlen (Coils, discrete Inputs) wird diese Angabe ignoriert. |
| Anzahl Block Lesen |
Anzahl an Variablen welche mit einer
Abfrage gelesen werden sollen. Gilt nicht für Schreibbefehle, wenn
Daten geschrieben werden muss die Anzahl 1 sein. Bei Bitbefehlen (Coils, discrete Inputs) ist dies die Anzahl der Coils die gelesen werden. |
| Schreiben bei |
|
| Initialisieren |
Schreiben des Registers einmalig bei Hochlauf der Steuerung bzw. Änderung des Projektes. |
| Funktionscode |
Modbus Funktionscode. |
| Intervall |
Intervall in der das Register ausgelesen wird. Für Schreibbefehle nur wenn Senden auf zyklisch eingestellt. |
| Aktualisierung
lesen |
Verknüpfte Variable nur aktualisieren
wenn sich der Wert geändert hat. Nur Lesebefehle. Standard ist ein.
Diese Option kann beispielsweise verwendet werden um die
Kommunikation zu überwachen, die Variable wird nur dann
aktualisiert, wenn die Lesefabfrage erfolgreich war, da die Variable
auch ohne Änderung des Wertes aktualisiert wird, kann dies mit dem
Funktionsbaustein KNX
Überwachung überwacht werden. |
| Register |
Datentyp des Modbus Registers, dieser
muss der Beschreibung des Slaves entnommen werden. |
| Byte Order |
|
| Faktor |
Wert des Modbus Registers wird mit
diesem Faktor multipliziert, beispielsweise um einen Zählerwert von
W auf kW umzurechnen. |
| Offset |
Offset wird zum Wert des Modbus
Registers addiert, beispielsweise um einen Temperatur oder
Zählerwert zu korrigieren. |
CSV Import / ExportÜber die Schaltfläche CSV in der Toolbar können alle Konfigurationsdaten
exportiert und wieder importiert werden. Das Format ist Tab-getrennt (TSV),
UTF-8 kodiert. Zeilen, die mit Dateiaufbau:
# Protokoll<TAB>IP-Adresse<TAB>Port<TAB>Knoten-ID<TAB>Register-Offset<TAB>Serielle-Schnittstelle<TAB>Timeout(ms)<TAB>Telegramm-Wartezeit(ms)<TAB>TCP-kombinieren
{9 Verbindungswerte}
# Aktiv<TAB>Name<TAB>Register-Adresse<TAB>Laenge<TAB>Anzahl-Block<TAB>Datentyp-Register<TAB>Vorzeichen<TAB>Datentyp-Variable<TAB>Byte-Order<TAB>Funktionscode<TAB>Variable-aktualisieren<TAB>Schreiben-bei<TAB>Faktor<TAB>Offset<TAB>Intervall
{15 Felder pro Registerzeile}
...
|
|
Verbindungsparameter (Zeile 2, 9 Felder) |
|
| Protokoll | 0 = Modbus RTU (RS485) 1 = Modbus TCP |
| IP-Adresse | IP-Adresse des Slaves (nur TCP), z. B. 192.168.1.100. Bei RTU leer lassen. |
| Port | TCP-Port (nur TCP), Standard 502. Bei RTU leer lassen. |
| Knoten-ID | Modbus-Slave-ID, Wertebereich 0–255. |
| Register-Offset | 0 = Registeradresse beginnt bei 0 1 = Registeradresse beginnt bei 1 |
| Serielle-Schnittstelle | Schnittstellenparameter-String (nur RTU), z. B. COM1,9600,8,N,1. Bei TCP leer lassen. |
| Timeout(ms) | Wartezeit auf Antwort in Millisekunden, z. B. 1000. |
| Telegramm-Wartezeit(ms) | Zusätzliche Pause zwischen Telegrammen in Millisekunden, Standard 0. |
| TCP-kombinieren | 0 = separate Verbindungen 1 = Verbindungen mit gleicher IP zusammenfassen |
Registerparameter (ab Zeile 4, 15 Felder pro Zeile) |
|
| Aktiv | 0 = Register deaktiviert 1 = Register aktiv |
| Name | Bezeichnung des Registers. Kein Tabulator erlaubt. |
| Register-Adresse | Modbus-Registeradresse, Wertebereich 0–65535. |
| Laenge | 1 = 16 Bit 2 = 32 Bit 3 = 64 Bit |
| Anzahl-Block | Anzahl Variablen, die mit einer Abfrage gelesen werden (1–32). Bei Schreibbefehlen muss der Wert 1 sein. |
| Datentyp-Register | 0 = Integer 1 = Float |
| Vorzeichen | 0 = Unsigned 1 = Signed (nur bei Datentyp Integer) |
| Datentyp-Variable |
Index des Variablentyps:0 EIS 0: Konstante1 EIS 1: Bit schalten (Bit)2 EIS 2: Dimmen (4 Bit)3 EIS 3: Zeit (3 Byte)4 EIS 4: Datum (3 Byte)5 EIS 5: Fließkomma (2 Byte)6 EIS 6: Relativ Wert 0–100% (1 Byte)7 EIS 7: Antriebsteuerung (Bit)8 EIS 8: Zwangsteuerung/Priorität (2 Bit)9 EIS 9: Fließkomma (4 Byte) – häufigste Verwendung10 EIS 10: Zählerwert 16 Bit (2 Byte)11 EIS 11: Zählerwert 32 Bit (4 Byte)12 EIS 12: Zugangskontrolle (4 Byte)13 EIS 13: ASCII Zeichen (1 Byte)14 EIS 14: Zählerwert (1 Byte)15 EIS 15: Zeichenkette (14/255 Byte)16 EIS 16: Zählerwert (8 Byte)17 EIS 17: Fließkomma (8 Byte)
|
| Byte-Order |
0 = Big Endian (ABCD) – Standard1 = Mid-Little Endian (CDAB)2 = Little Endian (DCBA)
|
| Funktionscode |
Echter Modbus-Funktionscode (nicht der Index):1 = Read Coils2 = Read Discrete Input3 = Read Holding Register4 = Read Input Register5 = Write Single Coil6 = Write Single Register15 = Write Multiple Coils16 = Write Multiple Registers
|
| Variable-aktualisieren | 0 = nur bei Änderung 1 = immer (auch ohne Wertänderung) |
| Schreiben-bei | 0 = Änderung 1 = Start + Änderung 2 = Zyklisch |
| Faktor | Multiplikator für den Registerwert (Dezimalzahl), Standard 1. Beispiel: 0.001 um Wh in kWh umzurechnen. |
| Offset | Additionswert zum Registerwert (Dezimalzahl), Standard 0. |
| Intervall | Abfrageintervall in Millisekunden. Bei Schreibbefehlen nur relevant wenn Schreiben-bei = Zyklisch. |
Beispiel-CSV (Fronius Wechselrichter, Modbus TCP)# Protokoll IP-Adresse Port Knoten-ID Register-Offset Serielle-Schnittstelle Timeout(ms) Telegramm-Wartezeit(ms) TCP-kombinieren 1 192.168.1.100 502 1 0 1000 0 0 # Aktiv Name Register-Adresse Laenge Anzahl-Block Datentyp-Register Vorzeichen Datentyp-Variable Byte-Order Funktionscode Variable-aktualisieren Schreiben-bei Faktor Offset Intervall 1 AC Wirkleistung [W] 40092 2 1 1 0 9 0 3 0 0 1 0 5000 1 AC Lifetime Energy [kWh] 40102 2 1 1 0 9 0 3 0 0 0.001 0 60000 1 DC Spannung [V] 40282 2 1 1 0 9 0 3 0 0 1 0 5000 |
|