FEMS App Modbus/TCP Schreibzugriff

1. Einleitung

Sehr geehrte Kundin, sehr geehrter Kunde,

vielen Dank, dass Sie sich für die »FEMS App Modbus/TCP Schreibzugriff« entschieden haben. Gerne können Sie uns Ihre Anregungen mitteilen, damit wir die Qualität unserer Produkte noch weiter verbessern können.

2. Installation der App

Mit der Bestellung der »FEMS App Modbus/TCP Schreibzugriff« haben Sie einen 16-stelligen Lizenzschlüssel erhalten. Mittels diesem Lizenzschlüssel können Sie die App eigenständig im FEMS App Center einlösen.

Eine Anleitung zur Vorgehensweise finden Sie hier.

3. Modbus/TCP - Schreibzugriff

Diese Anleitung dient der Beschreibung des Schreibzugriffs auf ein FENECON Stromspeichersystem mittels Modbus/TCP API. Zunächst werden Grundlagen zum Protokoll beschrieben. Anschließend wird die Funktionsweise der Schnittstelle erklärt.

Diese App ist nicht im Standard-Lieferumfang enthalten. Sie kann jedoch nachträglich jederzeit nachgerüstet werden.

3.1. Voraussetzungen

Das auf das Stromspeichersystem zugreifende Gerät (z.B. Notebook/PC) muss direkten Zugriff auf die IP-Adresse des FEMS haben - also z. B. im gleichen physischen Netzwerk angeschlossen sein.

3.2. Grundlagen Modbus/TCP

Das Modbus-Protokoll ist ein Kommunikationsprotokoll, das auf einer Client/Server-Architektur basiert. Es wurde 1979 von Gould-Modicon für die Kommunikation mit seinen speicherprogrammierbaren Steuerungen ins Leben gerufen. In der Industrie hat sich der Modbus zu einem De-facto-Standard entwickelt, da es sich um ein offenes Protokoll handelt. Seit 2007 ist die Version Modbus TCP Teil der Norm IEC 61158.

Mittels Modbus können ein Client (z. B. ein PC/EMS) und mehrere Server (z. B. Mess- und Regelsysteme, Batteriespeicher, PV-Anlage, Ladestation E-Auto) verbunden werden. Es gibt zwei Versionen: Eine für die serielle Schnittstelle (EIA-232 und EIA-485) und eine für Ethernet. In dieser Anleitung wird die Version für Ethernet beschrieben. Hierbei werden TCP/IP-Pakete verwendet, um die Daten zu übermitteln.

Lese- und Schreibzugriffe sind auf folgende Objekttypen möglich:

Objekttyp

Zugriff

Größe

Funktionscode

Einzelner Ein-/Ausgang „Coil“

Lesen & Schreiben

1-bit

01 / 05 / 15

Einzelner Eingang „Discrete Input“

nur Lesen

1-bit

02

(analoge) Eingänge „Input Register“

nur Lesen

16-bits

04

(analoge) Ein-/Ausgänge „Holding Register“

Lesen & Schreiben

16-bits

03 / 06 / 16

Die Modbus-Schnittstelle ist folgendermaßen konfiguriert:

Tabelle 1. Parameter für Schreibzugriff

Geräteadresse

IP-Adresse des EMS (z.B. 192.168.0.20)

Port

502

Unit-ID

1

Function-Codes

03 (Read Holding Registers)

04 (Read Input Registers)

06 (Write Single Holding Register)

16 (Write Multiple Holding Registers)

Die Schnittstelle ermöglicht standardmäßig Zugriff auf die Kanäle der Komponente _sum und ess0.

3.3. Modbus-Tabelle

Die individuelle Modbus-Tabelle für Ihr System können Sie bequem über das Online-Monitoring als Excel-Datei wie folgt herunterladen:

Im Live Detail Widget können Sie über den Button "PROTOKOLL HERUNTERLADEN" den Download starten.

Die wichtigsten Datenpunkte finden Sie auch hier in der Schnellübersicht:

Tabelle 2. Modbus-Tabelle Komponente Sum

Address (Adresse)

Name
(Name)

Type
(Typ)

Value/Description
(Wert/Beschreibung)

Unit
(Einheit)

Access
(Zugang)

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. überschüssiger DC-Erzeugung bei Hybrid-Wechselrichter

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

Minimale je gemessene Wirkleistung am Netzanschlusspunkt

Watt [W]

RO

319

GridMaxActivePower

float32

Maximale je gemessene Wirkleistung am Netzanschlusspunkt

Watt [W]

RO

327

ProductionActivePower

float32

Wirkleistung des PV-Ertrags und ggf. Ertrag durch externe Wechselrichter

Watt [W]

RO

329

ProductionMaxActivePower

float32

Maximale je gemessene Wirkleistung der PV-Anlage

Watt [W]

RO

331

ProductionAcActivePower

float32

Wirkleistung der externen AC-Wechselrichter

Watt [W]

RO

339

ProductionDcActualPower

float32

Leistung der DC-Erzeugung des Hybridwechselrichters

Watt [W]

RO

343

ConsumptionActivePower

float32

Wirkleistung des elektrischen Verbrauchs

Watt [W]

RO

345

ConsumptionMaxActivePower

float32

Maximale je gemessene Wirkleistung des elektrischen Verbrauchs

Watt [W]

RO

351

EssActiveChargeEnergy

float64

Kumulierte elektrische Energie der AC-seitigen Speicherbeladung inkl. überschüssige PV-Erzeugung beim Hybrid-Wechselrichter

Wattstunden [Wh]

RO

355

EssActiveDischargeEnergy

float64

Kumulierte elektrische Energie vom Speicher zum Verbrauch über AC-Ausgang des Wechselrichters inkl. PV-Erzeugung

Wattstunden [Wh]

RO

359

GridBuyActiveEnergy

float64

Kumulierte elektrische Energie des Netzbezuges

Wattstunden [Wh]

RO

363

GridSellActiveEnergy

float64

Kumulierte elektrische Energie der Einspeisung

Wattstunden [Wh]

RO

367

ProductionActiveEnergy

float64

Kumulierte elektrische Energie der PV-Erzeugung + Erzeugung externer Wechselrichter

Wattstunden [Wh]

RO

371

ProductionAcActiveEnergy

float64

Kumulierte elektrische Energie der externen Wechselrichter

Wattstunden [Wh]

RO

375

ProductionDcActiveEnergy

float64

Kumulierte elektrische Energie der PV-Erzeugung des Wechselrichters

Wattstunden [Wh]

RO

379

ConsumptionActiveEnergy

float64

Kumulierter elektrischer Verbrauch

Wattstunden [Wh]

RO

383

EssDcChargeEnergy

float64

Kumulierte DC-elektrische Energie der Speicherbeladung

Wattstunden [Wh]

RO

387

EssDcDischargeEnergy

float64

Kumulierte DC-elektrische Energie der Speicherentladung

Wattstunden [Wh]

RO

415

EssDischargePower

float32

Tatsächliche AC-seitige Wirkleistung des Speichers

Watt [W]

RO

417

GridMode

enum16

1:On-Grid, 2:Off-Grid

RO

Tabelle 3. Modbus-Tabelle Komponente Stromspeichersystem

Address (Adresse)

Name
(Name)

Type
(Typ)

Value/Description
(Wert/Beschreibung)

Unit
(Einheit)

Access
(Zugang)

500

Component-ID

string16

ess0

RO

522

State

enum16

0:Ok, 1:Info, 2:Warning, 3:Fault

RO

602

SoC

uint16

Ladezustand

Prozent [%]

RO

603

GridMode

enum16

1:On-Grid, 2:Off-Grid

RO

604

ActivePower

float32

Be- bzw. Entladeleistung (Negative Werte entsprechen Speicherbeladung - Positive Werte Speicherentladung)

Watt [W]

RO

608

MinCellVoltage

float32

Minimale Zellspannung

Millivolt [mV]

RO

610

MaxCellVoltage

float32

Maximale Zellspannung

Millivolt [mV]

RO

612

MinCellTemperature

float32

Minimale Zelltemperatur

Grad Celsius [C]

RO

614

MaxCellTemperature

float32

Maximale Zelltemperatur

Grad Celsius [C]

RO

702

Minimum Power Set-Point

float32

Minimaler Leistungssollwert

Watt [W]

RO

704

Maximum Power Set-Point

float32

Maximaler Leistungssollwert

Watt [W]

RO

706

SetActivePowerEquals

float32

Vorgabe Be- bzw. Entladeleistung

Watt [W]

WO

708

SetReactivePowerEquals

float32

Vorgabe Blindleistung

Voltampere Reaktiv [var]

WO

710

SetActivePowerLessOrEquals

float32

Vorgabe maximaler Entladeleistung

Watt [W]

WO

712

SetReactivePowerLessOrEquals

float32

Vorgabe maximaler Blindleistung

Voltampere Reaktiv [var]

WO

714

SetActivePowerGreaterOrEquals

float32

Vorgabe maximaler Beladeleistung

Watt [W]

WO

716

SetReactivePowerGreaterOrEquals

float32

Vorgabe minimaler Blindleistung

Voltampere Reaktiv [var]

WO

Die Register für Blindleistungsvorgaben sind aktuell für Home-Systeme nicht nutzbar.

3.4. Visualisierung und Konfiguration

Nach der Installation der »FEMS App Modbus/TCP Schreibzugriff« sehen Sie das folgende Widget in Ihrem Live-Monitoring:

Modbus Schreibzugriff Beispiel 4
Abbildung 1. Live Flat Widget

Das Flat Widget zeigt den aktuellen Status der externen Schreibvorgaben an. Sobald ein Register überschrieben wird, ändert sich der Status von "Keine externen Vorgabe vorhanden" auf "Externe Vorgabe wird berücksichtigt".

Ein Klick auf das Widget öffnet die Detailansicht:

Modbus Schreibzugriff Beispiel 5
Abbildung 2. Live Detail Widget

In der Detailansicht finden Sie eine Übersicht zu den jeweiligen Registern. Diese Übersicht beinhaltet für das Register der Wirkleistungsvorgabe (SetActivePowerEquals/706) Ihren gesetzten Vorgabewert sowie den tatsächlichen Wert, der technisch umsetzbar ist. Für alle weiteren Register wird lediglich der Vorgabewert angezeigt. Sobald weitere Register überschrieben werden, wird die Detailansicht automatisch aktualisiert.

3.5. Beispiel 1: Schreibzugriff auf EssActivePower mit QModMaster

Im Folgenden soll der Schreibzugriff für das Setzen der EssActivePower mittels des kostenlosen Tools QModMaster exemplarisch gezeigt werden. Hierdurch kann die Funktion des Controller Fix Active Power Symmetric simuliert werden.

Der Wert ist wie folgt hinterlegt (s. oben):

Tabelle 4. Registeradresse für das Setzen der EssActivePower des Speichers

Address

Name

Type

Value/Description

Unit

Access

706

ess0/SetActivePowerEquals

float32

Watt [W]

WO

Zusätzlich zur Überprüfung der Base Address auf 0 muss sichergestellt werden, dass unter Endian die Einstellung Big ausgewählt ist.
Modbus Schreibzugriff Beispiel 1
Abbildung 3. Einstellungen

Da es sich um einen float32 handelt, müssen zwei 16-bit Wörter, also zwei Register, geschrieben werden. In diesem Beispiel soll der Speicher mit 4000 (4E+03) Watt entladen werden. Der Wert kann direkt als Dezimalzahl in das Register eingegeben werden, wobei das Data Format Float zu wählen ist. Nach Setzen des Wertes auf den Menüpunkt "Read/Write" klicken, um die Schreiboperation durchzuführen.

Modbus Schreibzugriff Beispiel 2
Abbildung 4. Wert schreiben

Der Abgleich mit dem Online-Monitoring bestätigt die Korrektheit des geschriebenen Wertes:

Modbus Schreibzugriff Beispiel 3
Abbildung 5. Vergleich mit Online-Monitoring
Modbus Schreibzugriff Beispiel 6
Abbildung 6. Aktualisierte Detailansicht
Positive Werte entsprechen Speicherentladung — Negative Werte Speicherbeladung

Die Durchführung anderer Schreiboperationen erfolgt analog.

3.6. Watchdog

Die »FEMS App Modbus/TCP Schreibzugriff« hat eine integrierte „Watchdog“-Funktionalität. Diese stellt sicher, dass bei einem Verbindungsabbruch (z. B. Ausfall der übergeordneten Steuerung oder des Netzwerks) eine Be- oder Entladungsvorgabe beendet wird. In der Standardkonfiguration ist dieser „Api-Timeout“ auf 60 Sekunden gesetzt. Eine Schreibvorgabe wird somit für 60 Sekunden umgesetzt. Um eine kontinuierliche Ansteuerung umzusetzen, empfehlen wir eine erneute Vorgabe nach der Hälfte der konfigurierten Zeit, also in diesem Fall nach 30 Sekunden. Erfolgt keine erneuter Schreibvorgabe innerhalb von 60 Sekunden, wird die Be- oder Entladung beendet.

Der "Api-Timeout" kann über die App-Konfiguration im App Center geändert werden. Ein Wert von „0 Sekunden“ deaktiviert die Watchdog-Funktion.

Modbus Schreibzugriff Beispiel 7
Abbildung 7. App-Konfiguration
Modbus Schreibzugriff Beispiel 8
Abbildung 8. Api-Timeout erhöhen