Zum Hauptinhalt springen

Modbus TCP am VOOL LMC

Netzanschlussströme und -spannungen des LMC über Modbus TCP auslesen: Aktivierung über den Support, Verbindungseinstellungen, Registerkarte, Schreiben der Stromgrenze und Fehlerbehebung.

J
Verfasst von Juhan Harm

Der VOOL LMC verfügt über einen Modbus-TCP-Server für lokale Integrationen. Ein Gebäudeleitsystem (BMS), Energiemanagementsystem (EMS), Home Assistant oder jeder andere Modbus-Client kann die Netzanschlussströme und -spannungen des Standorts pro Phase auslesen und – mit Schreibzugriff – die Stromgrenze des Netzanschlusses festlegen, mit der das Lastmanagement arbeitet. Verfügbar ab LMC-Software v6.4.0.

Dies ist unabhängig von der eigenen Modbus-Schnittstelle der Ladestation (siehe Modbus-Handbuch der Ladestation). Die LMC-Registerkarte enthält keine Messwerte einzelner Ladestationen, keine Energiezähler und keine Start-/Stopp-Register für Ladestationen – dafür nutzen Sie die Schnittstelle der Ladestation.

Erste Schritte

Modbus TCP ist am LMC standardmäßig deaktiviert und wird vom VOOL Support aktiviert. Wenden Sie sich im Chat an den VOOL Support, nennen Sie die Seriennummer des LMC und geben Sie an, ob Sie nur Lesezugriff (Überwachung) oder auch Schreibzugriff benötigen. Auch der Schreibzugriff ist standardmäßig deaktiviert und wird vom Support aktiviert. Aktivierung und Port-Einstellungen lassen sich nicht über Modbus selbst ändern.

  1. Aktivierung mit dem Support vereinbaren – Seriennummer des LMC, nur Lesen oder Lesen/Schreiben.

  2. Lokale Verbindungsdaten bestätigen. Lassen Sie sich die lokale IPv4-Adresse des LMC von Ihrem Installateur oder Netzwerkadministrator geben (oder schauen Sie in der Geräteliste Ihres Routers nach). Verwenden Sie die Ethernet- oder WLAN-Verbindung; sind beide verbunden, klären Sie, welche Adresse Modbus bereitstellt – der Server lauscht jeweils nur auf einer Adresse.

  3. Konfigurieren Sie Ihren Modbus-Client mit den Einstellungen unten und lesen Sie Ihren ersten Messwert aus.

Einstellung

Wert

Protokoll

Modbus TCP – der LMC ist der Server, Ihr System ist der Client

Serveradresse

Lokale IPv4-Adresse des LMC

TCP-Port

Standardmäßig 502 (verwenden Sie den vom Support bestätigten Port)

Unit-ID / Geräte-ID

Verwenden Sie 1, falls Ihr Client einen Wert verlangt. Der LMC ignoriert sie – sie wählt keine nachgeschaltete Ladestation aus.

Zahlenformat

Float32, zwei Register pro Wert, High-Word zuerst und High-Byte zuerst (ABCD, „Big-Endian, ohne Word-Swap“)

Adresskonvention

Nullbasierte Dezimaladressen (siehe „Adressen und Kodierung“)

Modbus TCP hat weder Authentifizierung noch Verschlüsselung. Alles, was den Port erreichen kann, kann die Schnittstelle auslesen. Beschränken Sie den Zugriff auf vertrauenswürdige Systeme und machen Sie den Port niemals aus dem Internet erreichbar. Der Schreibzugriff gilt für alle beschreibbaren Register – einschließlich der Geräte- und Listenbefehle – und lässt sich nicht auf die Stromgrenze beschränken.

Ihr erster Messwert

Strom auf Phase L1 auslesen: Funktion 03 (Read Holding Registers), Startadresse 600 (dezimal, nullbasiert), Anzahl 2 Register, als float32 ABCD dekodieren. Einheit: Ampere.

Beispiel: Liefern die beiden Register 0x41A4 und 0x0000, beträgt der Wert 20,5 A. Fassen Sie beide Register zu einer 32-Bit-Gleitkommazahl zusammen – behandeln Sie kein Register als eigenen Wert und wenden Sie keinen Skalierungsfaktor an.

Messregister (nur lesbar)

Lesen Sie mit FC03 (Holding Registers) oder FC04 (Input Registers) an denselben nullbasierten Adressen.

Register

Messwert

Einheit

Position bei einem Lesevorgang über 26 Register

600–601

Netzanschlussstrom L1

A

0–1

602–603

Netzanschlussstrom L2

A

2–3

604–605

Netzanschlussstrom L3

A

4–5

606–619

Reserviert – Lesen liefert null

—

6–19 (ignorieren)

620–621

Netzanschlussspannung L1

V

20–21

622–623

Netzanschlussspannung L2

V

22–23

624–625

Netzanschlussspannung L3

V

24–25

Alles auf einmal auslesen: Start 600, Anzahl 26. Oder nur die Ströme (Start 600, Anzahl 6) bzw. nur die Spannungen (Start 620, Anzahl 6). Die Spalte „Position“ zählt ab null innerhalb des zurückgegebenen Arrays – sie ist nicht die Registeradresse.

Was „Netzanschlussstrom“ bedeutet: Es ist der vom LMC berechnete Gesamtstrom pro Phase. Sitzt der Zähler (die Stromwandler) am Hauptanschluss, stammt der Wert vom Zähler. Misst der Zähler nur andere Gebäudelasten, addiert der LMC die Ladeströme der Ladestationen. Die Messkonfiguration des Installateurs ist daher wichtig, wenn Sie Werte mit einem anderen System vergleichen. Ein Wert von null oder ein unveränderter Wert allein beweist nicht, dass der Zähler funktioniert.

Stromgrenze des Netzanschlusses festlegen (Schreibzugriff)

Erfordert einen vom VOOL Support aktivierten Schreibzugriff. Eine falsche Stromgrenze kann Lasten über der Kapazität der Anlage zulassen und Schutzeinrichtungen auslösen. Verwenden Sie nur vom Installateur bestätigte Grenzwerte und überschreiten Sie nie die Nennkapazität der Anlage.

Die Stromgrenze des Netzanschlusses ist das Strombudget pro Phase, mit dem das Lastmanagement arbeitet. Sie gilt für den gesamten Netzanschluss einschließlich anderer Gebäudelasten – es ist nicht der Strom einer einzelnen Ladestation.

Register

Einstellung

Einheit

Format / Zugriff

104–105

Stromgrenze des Netzanschlusses

A

Float32 / Lesen-Schreiben

  1. Lesen Sie den aktuellen Wert aus – FC03, Start 104, Anzahl 2. Bewahren Sie ihn auf, falls Sie ihn wiederherstellen müssen.

  2. Schreiben Sie den vereinbarten Grenzwert als einen float32-Wert mit FC16 (Write Multiple Registers), zwei Register in einer einzigen Anfrage. Beispiel für 32 A: Register 104 = 0x4200, Register 105 = 0x0000.

  3. Lesen Sie den Wert zurück und prüfen Sie ihn, und beobachten Sie dann die Anlage. Eine Schreibantwort allein beweist nicht, dass die Änderung wirksam wurde.

Konfigurationsänderungen bleiben dauerhaft gespeichert und wirken sich im Betrieb auf das Lastmanagement aus.

Adressen und Kodierung

Alle Adressen hier sind nullbasierte dezimale Protokolladressen. Die Anzahl bezeichnet 16-Bit-Register, nicht Werte – jeder Zahlenwert belegt zwei aufeinanderfolgende Register. Clients verwenden unterschiedliche Konventionen; für das Auslesen des L1-Stroms geben Sie ein:

Client-Konvention

Eingabe

Nullbasierte Adresse / Offset

600

Einsbasierte Registernummer (Register 1 = Adresse 0)

601

Holding-Register-Referenz (40001 = Adresse 0)

40601

Senden Sie 40601 nicht als Protokolladresse.

  • Messwerte und Einstellungen sind in physikalischen Einheiten, ohne Skalierung.

  • Schalter: float32 0.0 = aus, 1.0 = ein (jeder Wert ungleich null gilt als ein).

  • Modi: die dokumentierte Ganzzahl-Auswahl als float32 kodiert, z. B. 1.0.

  • Gängige Werte: 0.0 = 0x0000 0x0000; 1.0 = 0x3F80 0x0000; 20.5 = 0x41A4 0x0000; 32.0 = 0x4200 0x0000.

  • Listenbefehle verwenden rohe Ganzzahlen – siehe unten.

Regeln für Anfragen

Funktion

Verwendung

03 — Read Holding Registers

Jeder lesbare Bereich

04 — Read Input Registers

Nur Messwerte (600–625)

16 (0x10) — Write Multiple Registers

Beschreibbare Werte und Befehlsblöcke

FC06 (Write Single Register) wird nicht unterstützt und liefert Ausnahme 02 – verwenden Sie FC16 auch für einen einzelnen Wert. Coils werden nicht verwendet.

Lesbarer Bereich (einschließlich)

Inhalt

Funktionen

104–111

Netzgrenze, Betriebsmodi, Antenneneinstellung

FC03

240–283

Feinabstimmung des Lastmanagements

FC03

600–625

Messwerte und reservierte Nullen

FC03, FC04

  • Jeder Lesevorgang muss innerhalb eines Bereichs bleiben. Lesevorgänge außerhalb – auch auf Befehlsregister – liefern Ausnahme 02.

  • Schreiben Sie Zahlenwerte ab ihrem ersten Register und schreiben Sie beide Register. Aufeinanderfolgende beschreibbare Werte lassen sich in einer Anfrage kombinieren, aber nicht über eine nicht belegte Lücke hinweg.

  • Schreiben Sie Befehlsblöcke genau an ihrer Startadresse und mit ihrer Anzahl.

  • Die Schnittstelle erzwingt die Inbetriebnahmebereiche aus diesem Artikel nicht – prüfen Sie die Werte in Ihrem Client und verwenden Sie endliche Zahlen.

  • Eine normale Schreibantwort bestätigt nur die Anfrage. Lesen Sie Einstellungen zurück und prüfen Sie, ob Befehle abgeschlossen wurden, bevor Sie es erneut versuchen.

Fehlerbehebung

Symptom

Was zu prüfen ist

Verbindung abgelehnt oder Zeitüberschreitung

Lassen Sie sich vom Support bestätigen, dass Modbus aktiviert ist; prüfen Sie die lokale IPv4-Adresse und den Port des LMC, die Erreichbarkeit und die Firewall-Regeln. Sind Ethernet und WLAN beide verbunden, klären Sie, welche Adresse lauscht. Modbus funktioniert nicht über Subnetze oder VLANs hinweg.

Lesen liefert Ausnahme 02

Prüfen Sie Adresskonvention, Anzahl und Bereichsgrenzen. FC04 liest nur 600–625. Befehlsregister können nicht gelesen werden.

Schreiben liefert Ausnahme 02

Lassen Sie sich den Schreibzugriff vom Support bestätigen. Verwenden Sie FC16, eine beschreibbare Adresse und einen vollständigen Wert oder Block. FC06 wird abgelehnt.

Unplausibel große oder kleine Zahlen

Als float32 ABCD dekodieren, zwei Register pro Wert, ohne Skalierung. Prüfen Sie, ob die Adresse um eins verschoben ist.

Messwerte null oder unverändert

Prüfen Sie die Positionen in der Antwort und den reservierten Bereich. Bitten Sie den Support, Zähler und Messkonfiguration zu prüfen.

Schreiben erfolgreich, Wert aber unverändert

Zurücklesen, Kodierung und zulässige Werte prüfen. Eine Bestätigung allein garantiert nicht, dass die Änderung übernommen wurde.

Integration hat funktioniert, dann nicht mehr

Die lokale IP des LMC kann sich nach einem Routerwechsel oder Update geändert haben – richten Sie für den LMC (und die Ladestationen) eine statische IP oder DHCP-Reservierung ein. Auch ein Software-Update oder ein Neustart des Dienstes beendet die Sitzung; wiederholen Sie einen Update-Befehl nach einer Zeitüberschreitung nicht automatisch.

Ausnahmen: 01 Illegal Function – unbekannte Funktion. 02 Illegal Data Address – Fehler bei der Prüfung gegen die Registerkarte und deaktivierte Schreibvorgänge. 03 Illegal Data Value – ungültige Protokoll-Anzahl (z. B. ein FC16-Schreibvorgang außerhalb von 1–123 Registern); es bedeutet nicht, dass der Wertebereich einer Einstellung geprüft wurde.

Erweiterte Einstellungen (Schreibzugriff – Werte mit dem VOOL Support abstimmen)

Diese ändern das Verhalten des Lastmanagements oder die Hardwarekonfiguration. Alle sind float32-Werte mit Lese-/Schreibzugriff. Die Bereiche sind Inbetriebnahmegrenzen, keine empfohlenen Einstellungen – lesen Sie die installierten Werte aus, bevor Sie etwas ändern.

Betriebsmodi und Antenne

Register

Einstellung

Werte

106–107

Messmodus Netzanschluss

0 = Zähler am Hauptanschluss, einschließlich Ladestationen; 1 = Zähler misst andere Gebäudelasten, LMC addiert die Ladeströme

108–109

Lastmanagement-Modus

0 = priorisierte Verteilung; 1 = gleichmäßige Leistungsverteilung

110–111

Externe WLAN-Antenne verwenden

0 = aus; 1 = ein. Erfordert kompatible Hardware und Antenne; wirksam nach Neustart des LMC

Feinabstimmung des Lastmanagements

Register

Einstellung

Einheit

Bereich / Werte

240–241

Begrenzung der Sollwert-Änderungsrate aktiviert (Stromrampe)

—

0 = aus; 1 = ein

242–243

Begrenzung der Sollwert-Änderungsrate

A/s

0–32

244–245

Stromschwelle für den Abschluss der Anlauframpe

A

0–32

246–247

Gleichmäßige Leistungsverteilung: anfänglicher Stromschritt

A

0.01–32

248–249

Gleichmäßige Leistungsverteilung: Standard-Stromschritt

A

0.01–32

250–251

Gleichmäßige Leistungsverteilung: minimale Schwelle für gleichen Strom

A

0–32

252–253

Gleichmäßige Leistungsverteilung: Verzögerung vor dem Sperren des Ladens

s

0–86400

254–255

Gleichmäßige Leistungsverteilung: Verzögerung vor dem Freigeben des Ladens

s

0–86400

256–257

Phasen-Lastmanagement aktiviert

—

0 = aus; 1 = ein

258–259

Verzögerung der Phasenumschaltung

s

0–30

260–261

Stromschwelle der Phasenumschaltung

A

0–1000

262–263

Unsymmetrieschwelle der Phasenumschaltung

%

0–100

264–265

Unterbrechung bei Phasenüberlast aktiviert

—

0 = aus; 1 = ein

266–267

Einphasiges Laden bei Phasenüberlast erzwingen

—

0 = aus; 1 = ein

268–269

Auszeit bei Phasenüberlast

s

0–86400

270–271

Vermeidung von Unterbrechungen aktiviert

—

0 = aus; 1 = ein

272–273

Stromschwelle Unterbrechungsstufe 1

A

0–32

274–275

Haltezeit Unterbrechungsstufe 1

s

0–600

276–277

Stromschwelle Unterbrechungsstufe 2

A

0–32

278–279

Haltezeit Unterbrechungsstufe 2

s

0–600

280–281

Stromschwelle Unterbrechungsstufe 3

A

0–32

282–283

Haltezeit Unterbrechungsstufe 3

s

0–600

Geräte- und Listenbefehle (nur schreibbar)

Befehle erfordern Schreibzugriff, können nicht gelesen werden (Ausnahme 02) und können den Betrieb unterbrechen oder die Konfiguration der Anlage ändern – verwenden Sie sie nur im Rahmen eines vereinbarten Service- oder Inbetriebnahmeablaufs.

Gerätebefehle

FC16, genau zwei Register ab der Startadresse. Das Schreiben von float32 1.0 (0x3F80 0x0000) – oder eines beliebigen Werts ungleich null – löst den Befehl aus; 0.0 bewirkt nichts.

Register

Befehl

Wirkung

4–5

LMC-Software aktualisieren

Startet das Standard-Software-Update. Der Abschluss wird nicht über Modbus gemeldet.

12–13

LMC-Dienst neu starten

Startet die Steuerungsanwendung neu und beendet die Modbus-Verbindung.

Ladestationsliste

Schreiben Sie genau 7 Register ab 8900 in einer FC16-Anfrage. Rohe vorzeichenlose Ganzzahlen, nicht float32. Die Liste kann nicht über Modbus zurückgelesen werden.

Register

Feld

Kodierung / Verwendung

8900

Unterbefehl

1 = hinzufügen; 2 = entfernen; 3 = aktualisieren; 4 = leeren

8901–8903

Seriennummer der Ladestation

6 Bytes, High-Byte zuerst pro Register. Seriennummer 112233445566 → 0x1122, 0x3344, 0x5566

8904

Multipoint-ID

0–255, nur Low-Byte – der Punkt, dem die Ladestation zugeordnet ist

8905

Flags

Bit 0 aktiviert OCPP 1.6 für die Ladestation (1 verwenden); übrige Bits auf null lassen

8906

Reserviert

0 schreiben

Entfernen verwendet nur die Seriennummer (schreiben Sie in die übrigen Felder null). Leeren setzt die Liste auf die Standardwerte zurück und ignoriert die Nutzdaten. Ein unbekannter Unterbefehl wird bestätigt, aber ignoriert.

Multipoint-Liste

Ein Multipoint ist ein Anschlusspunkt mit eigener Stromgrenze. Schreiben Sie genau 4 Register ab 8920 in einer FC16-Anfrage, rohe vorzeichenlose Ganzzahlen. Die Liste kann nicht über Modbus zurückgelesen werden.

Register

Feld

Kodierung / Verwendung

8920

Unterbefehl

1 = hinzufügen; 2 = entfernen; 3 = aktualisieren; 4 = leeren

8921

Multipoint-ID

1–255. Punkt 0 ist der Netzanschluss und kann mit diesen Befehlen nicht geändert werden

8922

Stromgrenze

Ganze Ampere, uint16 (0–65535), innerhalb der vereinbarten Kapazität der Anlage

8923

Übergeordnete Multipoint-ID

0 schreiben (kein übergeordneter Punkt) – übergeordnete Punkte ungleich null werden von diesem Befehl nicht unterstützt

Entfernen verwendet nur die Multipoint-ID. Entfernen Sie zugeordnete Ladestationen und untergeordnete Punkte, bevor Sie einen Punkt entfernen. Leeren stellt die Standardwerte wieder her. Lassen Sie die resultierende Konfiguration vom Support bestätigen.

Support kontaktieren

Für Aktivierung, Schreibzugriff oder Hilfe bei der Integration wenden Sie sich im Chat an den VOOL Support und nennen Sie die Seriennummer des LMC. Wenn Sie ein Problem melden, geben Sie außerdem die Client-Software, die lokale IP und den Port des LMC, den Funktionscode, die Startadresse, die Anzahl, die Antwort oder Ausnahme, den Zeitpunkt und – falls bekannt – die LMC-Softwareversion an.

Dieser Artikel beschreibt die mit LMC-Software v6.4.0 eingeführte Modbus-Schnittstelle des LMC. Lassen Sie sich vom Support bestätigen, welche Funktionen Ihre installierte Software bietet, bevor Sie eine erweiterte Integration in Betrieb nehmen.

Hat dies deine Frage beantwortet?