Anleitung für Modbus/TCP lesend
1 Einleitung
Abschnitt betitelt „1 Einleitung“Diese Anleitung beschreibt den Lesezugriff auf ein SESAM-Stromspeichersystem mittels Modbus/TCP-API. Zunächst werden die Grundlagen des Protokolls erläutert, anschließend die Funktionsweise der Schnittstelle beschrieben.
Die auslesbaren Daten werden in Echtzeit erfasst und können Abweichungen oder Ungenauigkeiten enthalten. Diese Daten dienen ausschließlich zu Informationszwecken und dürfen nicht als Grundlage für rechtlich verbindliche Entscheidungen oder Handlungen verwendet werden.
1.1 Voraussetzungen
Abschnitt betitelt „1.1 Voraussetzungen“Das auf das Stromspeichersystem zugreifende Gerät (z. B. Notebook oder PC) muss direkten Zugriff auf die IP-Adresse von SESAM haben, also z. B. im selben physischen Netzwerk angeschlossen sein.
1.2 Grundlagen Modbus/TCP
Abschnitt betitelt „1.2 Grundlagen Modbus/TCP“Das Modbus-Protokoll ist ein Kommunikationsprotokoll, das auf einer Client/Server- Architektur basiert. Es wurde ursprünglich für die Kommunikation mit speicherprogrammierbaren Steuerungen entwickelt und hat sich in der Industrie als De-facto-Standard etabliert, da es sich um ein offenes Protokoll handelt.
Modbus/TCP ist die Ethernet-basierte Variante des Protokolls und ist seit 2007 Teil der Norm IEC 61158. Die Kommunikation erfolgt über TCP/IP-Pakete.
Weitere Informationen: Modbus/TCP - Wikipedia
Über Modbus können ein Client (z. B. ein PC oder ein EMS) und mehrere Server (z. B. Mess- und Regelsysteme, Batteriespeicher, PV-Anlagen oder Ladestationen) miteinander verbunden werden.
Objekttypen und Zugriffe
Abschnitt betitelt „Objekttypen und Zugriffe“Lese- und Schreibzugriffe sind auf folgende Objekttypen möglich:
| Objekttyp | Zugriff | Größe | Funktionscode |
|---|---|---|---|
| Coil (Einzelner Ein-/Ausgang) | Lesen & Schreiben | 1-bit | 01 / 05 / 15 |
| Discrete Input (Einzelner Eingang) | Nur Lesen | 1-bit | 02 |
| Input Register (Analoge Eingänge) | Nur Lesen | 16-bit | 04 |
| Holding Register (Analoge Ein-/Ausgänge) | Lesen & Schreiben | 16-bit | 03 / 06 / 16 |
Modbus-Schnittstellenparameter
Abschnitt betitelt „Modbus-Schnittstellenparameter“| Parameter | Wert |
|---|---|
| Geräteadresse | IP-Adresse von SESAM (z. B. 192.168.0.20) |
| Port | 502 |
| Unit-ID | 1 |
| Function-Codes | 03 (Read Holding Registers) 04 (Read Input Registers) |
Standardmäßig ermöglicht die Schnittstelle den Zugriff auf die Kanäle der Komponente
_sum.
1.3 Modbus-Tabelle
Abschnitt betitelt „1.3 Modbus-Tabelle“Die individuelle Modbus-Tabelle für Ihr System können Sie über das SESAM Online-Monitoring als Excel-Datei herunterladen.
Schnellübersicht - Komponente _sum
Abschnitt betitelt „Schnellübersicht - Komponente _sum“| Adresse | Name | Typ | Beschreibung | Einheit | Zugriff |
|---|---|---|---|---|---|
| 200 | Component-ID | string16 | _sum | - | RO |
| 222 | State | enum16 | 0: Ok, 1: Info, 2: Warning, 3: Fault | - | RO |
| 302 | EssSoc | uint16 | Ladezustand [0-100] | Prozent [%] | RO |
| 303 | EssActivePower | float32 | AC-seitige Wirkleistung des Speichers inkl. DC-Überschuss bei Hybrid-WR | Watt (W) | RO |
| 309 | EssReactivePower | float32 | AC-seitige Blindleistung des Speichers | Voltampere Reaktiv (var) | RO |
| 315 | GridActivePower | float32 | Wirkleistung am Netzanschlusspunkt | Watt (W) | RO |
| 317 | GridMinActivePower | float32 | Minimal gemessene Wirkleistung am Netzanschlusspunkt | Watt (W) | RO |
| 319 | GridMaxActivePower | float32 | Maximal gemessene Wirkleistung am Netzanschlusspunkt | Watt (W) | RO |
| 327 | ProductionActivePower | float32 | Wirkleistung der PV-Erzeugung und externer Wechselrichter | Watt (W) | RO |
| 329 | ProductionMaxActivePower | float32 | Maximal gemessene PV-Wirkleistung | Watt (W) | RO |
| 331 | ProductionAcActivePower | float32 | Wirkleistung externer AC-Wechselrichter | Watt (W) | RO |
| 339 | ProductionDcActualPower | float32 | DC-Leistung des Hybrid-Wechselrichters | Watt (W) | RO |
| 343 | ConsumptionActivePower | float32 | Elektrischer Verbrauch | Watt (W) | RO |
| 345 | ConsumptionMaxActivePower | float32 | Maximal gemessener Verbrauch | Watt (W) | RO |
| 351 | EssActiveChargeEnergy | float64 | Kumulierte AC-Ladeenergie des Speichers | Wattstunden (Wh) | RO |
| 355 | EssActiveDischargeEnergy | float64 | Kumulierte AC-Entladeenergie des Speichers | Wattstunden (Wh) | RO |
| 359 | GridBuyActiveEnergy | float64 | Kumulierte Energie aus dem Netz | Wattstunden (Wh) | RO |
| 363 | GridSellActiveEnergy | float64 | Kumulierte Einspeiseenergie | Wattstunden (Wh) | RO |
| 367 | ProductionActiveEnergy | float64 | Kumulierte PV- und Fremderzeugung | Wattstunden (Wh) | RO |
| 371 | ProductionAcActiveEnergy | float64 | Kumulierte AC-Erzeugung externer WR | Wattstunden (Wh) | RO |
| 375 | ProductionDcActiveEnergy | float64 | Kumulierte DC-Erzeugung des Hybrid-WR | Wattstunden (Wh) | RO |
| 379 | ConsumptionActiveEnergy | float64 | Kumulierter elektrischer Verbrauch | Wattstunden (Wh) | RO |
| 383 | EssDcChargeEnergy | float64 | Kumulierte DC-Ladeenergie des Speichers | Wattstunden (Wh) | RO |
| 387 | EssDcDischargeEnergy | float64 | Kumulierte DC-Entladeenergie des Speichers | Wattstunden (Wh) | RO |
| 415 | EssDischargePower | float32 | Tatsächliche AC-seitige Entladeleistung des Speichers | Watt (W) | RO |
| 417 | GridMode | enum16 | 1: On-Grid, 2: Off-Grid | - | RO |
1.4 Beispiel: Lesezugriff Batterieladezustand mit QModMaster
Abschnitt betitelt „1.4 Beispiel: Lesezugriff Batterieladezustand mit QModMaster“Im Folgenden wird der Lesezugriff auf den Ladezustand (SoC) der Batterie mit dem kostenlosen Tool QModMaster gezeigt.
Download: https://sourceforge.net/projects/qmodmaster/
Der Ladezustand ist in folgendem Register hinterlegt:
| Adresse | Name | Typ | Einheit | Zugriff |
|---|---|---|---|---|
| 302 | _sum/EssSoc | uint16 | Prozent [%] | RO |
Vorgehen
Abschnitt betitelt „Vorgehen“- Unter Modbus TCP Settings die Slave-IP und den TCP-Port korrekt konfigurieren.
- Da es sich um ein
uint16handelt, ein 16-bit Register auslesen. - Auf Read/Write klicken.
- Der gelesene Wert erscheint im unteren Bereich.
Der Abgleich mit dem SESAM Online-Monitoring bestätigt die Korrektheit des gelesenen Wertes. Weitere Leseoperationen erfolgen analog.