FEMS App Modbus/TCP lesend

1. Einleitung

Sehr geehrte Kundin, sehr geehrter Kunde,

vielen Dank, dass Sie sich für die »FEMS App Modbus/TCP lesend« 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 lesend« 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.

Die Schnittstelle für den Lesezugriff ist bereits ab Werk inklusive und vorinstalliert.

3. Modbus/TCP - Lesezugriff

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

Die auslesbaren Daten werden in Echtzeit erfasst und können Abweichungen oder Ungenauigkeiten enthalten. Diese Daten dienen lediglich zu Informationszwecken und dürfen nicht als Grundlage für rechtlich verbindliche Entscheidungen oder Handlungen verwendet 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

Diese App ist im Standard-Lieferumfang enthalten.

Die Modbus-Schnittstelle ist folgendermaßen konfiguriert:

Tabelle 1. Parameter für Lesezugriff

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)

Die Schnittstelle ermöglicht standardmäßig Zugriff auf die Kanäle der Komponente _sum. Der Zugriff auf weitere Komponenten wird projektspezifisch freigegeben - um z. B. ansteuerbare Stromspeichersysteme oder Ladesäulen über die Schnittstelle freizugeben.

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:

app center start 01
Abbildung 1. Reiter links oben im Online-Monitoring öffnen
app center start 02
Abbildung 2. Reiter "Einstellungen" öffnen
Modbus Anlagenprofil 3
Abbildung 3. Anlagenprofil öffnen
Modbus Anlagenprofil 4
Abbildung 4. ctrlApiModbusTcp öffnen und auf "Download Protocol" klicken

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

Address (Adresse)

Name (Name)

Type (Typ)

Value/Description (Wert/Beschreibung)

Unit (Einheit)

Access (Zugang)

Sum

200

Component-ID

string16

_sum

RO

222

State

enum16

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

RO

302

EssSoc

uint16

Ladezustand [0 - 100]

Percent [%]

RO

303

EssActivePower

float32

AC-seitige Wirkleistung des Speichers. Inklusive überschüssiger DC-Stromerzeugung bei Hybrid-Wechselrichter.

Watt [W]

RO

309

EssReactivePower

float32

AC-seitige Blindleistung des Speichers

VoltAmpereReactive [var]

RO

315

GridActivePower

float32

Wirkleistung am Netzanschlusspunkt

Watt [W]

RO

317

GridMinActivePower

float32

Minimale Wirkleistung Netzanschluss/ Beschränkung der Netzbeladung

Watt [W]

RO

319

GridMaxActivePower

float32

Maximale Wirkleistung Netzanschluss/ Beschränkung des Netzbezuges

Watt [W]

RO

327

ProductionActivePower

float32

Wirkleistung der gesamten Stromerzeugung (immer positiv)

Watt [W]

RO

329

ProductionMaxActivePower

float32

Maximale Wirkleistung der gesamten Stromerzeugung (immer positiv)

Watt [W]

RO

331

ProductionAcActivePower

float32

Wirkleistung der AC-Stromerzeugung

Watt [W]

RO

339

ProductionDcActualPower

float32

Wirkleistung der DC-Stromerzeugung

Watt [W]

RO

343

ConsumptionActivePower

float32

Wirkleistung Stromverbrauch

Watt [W]

RO

345

ConsumptionMaxActivePower

float32

Maximale Wirkleistung Stromverbrauch

Watt [W]

RO

351

EssActiveChargeEnergy

float64

Kumulierte Gesamtstrommenge der AC-seitigen Speicherbeladung. Inklusive überschüssiger DC-Stromerzeugung bei Hybrid-Wechselrichter.

WattHours [Wh]

RO

355

EssActiveDischargeEnergy

float64

Kumulierte Gesamtstrommenge der Speicherentladung

WattHours [Wh]

RO

359

GridBuyActiveEnergy

float64

Kumulierte Strommenge des Netzbezuges

WattHours [Wh]

RO

363

GridSellActiveEnergy

float64

Kumulierte Strommenge der Netzbeladung

WattHours [Wh]

RO

367

ProductionActiveEnergy

float64

Kumulierte Strommenge der gesamten Erzeugung

WattHours [Wh]

RO

371

ProductionAcActiveEnergy

float64

Kumulierte Strommenge der AC-Erzeugung

WattHours [Wh]

RO

375

ProductionDcActiveEnergy

float64

Kumulierte Strommenge der DC-Erzeugung

WattHours [Wh]

RO

379

ConsumptionActiveEnergy

float64

Kumulierter Stromverbrauch

WattHours [Wh]

RO

383

EssDcChargeEnergy

float64

Kumulierte DC-Strommenge der Speicherbeladung

WattHours [Wh]

RO

387

EssDcDischargeEnergy

float64

Kumulierte DC-Strommenge der Speicherentladung

WattHours [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

Speichersystem

500

Component-ID

string16

ess0

RO

522

State

enum16

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

RO

602

Soc

uint16

Ladezustand

Percent [%]

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

DegreeCelsius [C]

RO

614

MaxCellTemperature

float32

Maximale Zelltemperatur

DegreeCelsius [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

VoltAmpereReactive [var]

WO

710

SetActivePowerLessOrEquals

float32

Vorgabe maximaler Entladeleistung

Watt [W]

WO

712

SetReactivePowerLessOrEquals

float32

Vorgabe maximaler Blindleistung

VoltAmpereReactive [var]

WO

714

SetActivePowerGreaterOrEquals

float32

Vorgabe maximaler Beladeleistung

Watt [W]

WO

716

SetReactivePowerGreaterOrEquals

float32

Vorgabe minimaler Blindleistung

VoltAmpereReactive [var]

WO

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

3.4. Beispiel 1: Lesezugriff Batterieladezustand mit QModMaster

Im Folgenden soll der Lesezugriff auf den Ladezustand (SoC) der Batterie mittels des kostenlosen Tools QModMaster exemplarisch gezeigt werden.

Das Tool kann unter folgendem Link heruntergeladen werden:
Online: https://sourceforge.net/projects/qmodmaster/

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

Tabelle 2. Registeradresse für den Ladezustand der Batterie

Address

Name

Type

Value/Description

Unit

Access

302

_sum/EssSoc

uint16

Percent [%]

RO

Standardmäßig wird in QModbusMaster die Base Address auf 1 gesetzt. Dieser Wert ist auf 0 zu ändern. Anderenfalls sind die Registeradressen aus dem Anlagenprofil um 1 verschoben.

Modbus Lesezugriff Beispiel 4
Abbildung 5. Einstellungen

Unter Modbus TCP Settings müssen Slave IP und TCP Port richtig konfiguriert sein.

Modbus Lesezugriff Beispiel 2
Abbildung 6. Modbus TCP Einstellungen

Da es sich um einen unit16 handelt, muss ein 16-bit Wort, also ein Register, ausgelesen werden. Nach Setzen der Werte auf den Menüpunkt "Read/Write" klicken. Der gelesene Wert erscheint unten.

Modbus Lesezugriff Beispiel 1
Abbildung 7. Wert lesen

Der Abgleich mit dem Online-Monitoring bestätigt die Korrektheit des gelesenen Wertes.

Modbus Lesezugriff Beispiel 3
Abbildung 8. Vergleich mit Online-Monitoring

Die Durchführung anderer Leseoperationen erfolgt analog.