OpenEMS Modbus-API (pv)

Die OpenEMS Modbus-API ist eine in die OpenEMS Edge Energiemanagementsoftware integrierte Schnittstelle, die interne Kanäle über Modbus TCP für externe Systeme zugänglich macht. Die PV-Variante dieser Vorlage richtet sich an die Photovoltaik-Produktionskomponente einer OpenEMS-Installation. Sie liest zwei Kanäle: die momentane Erzeugungsleistung an Adresse 327 und die kumulierte Energie an Adresse 367. Beide Werte sind Gleitkommazahlen und werden jede Zyklusperiode aktualisiert. Der ModbusCloud Gateway verbindet sich mit dem TCP-Port von OpenEMS Edge und liefert Ihrem Portal aktuelle Solarertragsdaten sowie langfristige Produktionszähler.

Protokoll
Modbus TCP
Anschluss
Ethernet, Modbus TCP
Register
2, nur lesen
Marke
OpenEMS
Kompatible Modelle
Modbus-API
Zuletzt aktualisiert

Register (2)

2 lesen, 0 schreiben

NameEinheitZugriffAdresse (Verborgen bis zur Eingabe Ihrer E-Mail-Adresse)Funktion (verborgen)Typ (verborgen)
powerWLesen
energyWhLesen

Register werden geladen…

Senden Sie Ihre Geräteliste

Steht ein Gerät noch nicht in der Bibliothek, erstellen wir die Vorlage kostenlos, sobald wir die Register haben.

Anzahl Anlagen (optional)

Anwendungsfälle

  • Überwachen Sie die momentane PV-Erzeugungsleistung, um sicherzustellen, dass der Wechselrichter im erwarteten Bereich arbeitet.
  • Verfolgen Sie die kumulierte Energieproduktion, um monatliche und jährliche Solarerträge je Standort auszuwerten.
  • Lösen Sie einen Alarm bei Nullproduktion während der Tagesstunden aus, um Wechselrichterausfälle oder Kommunikationsprobleme zu erkennen.
  • Vergleichen Sie tägliche Produktionssummen mehrerer OpenEMS-Standorte in der Multi-Standort-Übersicht Ihres ModbusCloud-Portals.
  • Prüfen Sie nach Firmware- oder Konfigurationsänderungen am EMS, ob der Energiezähler korrekt weiterzählt.

Installation

  1. Aktivieren Sie den Modbus-TCP-API-Controller in OpenEMS Edge über die Apache Felix Web Console unter der Komponente 'Controller Api Modbus TCP', und stellen Sie sicher, dass die PV-Komponente in der Liste der exportierten Kanäle enthalten ist.

  2. Verbinden Sie den ModbusCloud Gateway mit demselben Netzwerk wie den OpenEMS Edge-Host, und stellen Sie sicher, dass TCP-Port 502 (oder der konfigurierte Modbus-Port) vom Gateway aus erreichbar ist.

  3. Fügen Sie im ModbusCloud-Portal den Gateway hinzu, importieren Sie die Vorlage 'OpenEMS Modbus-API (pv)', und setzen Sie die Unit-ID auf die in der OpenEMS-Konfiguration festgelegte Modbus-Slave-ID.

  4. Prüfen Sie die Verbindung, indem Sie sicherstellen, dass Register 327 tagsüber einen gültigen Float-Wert zurückgibt. Liefert es zur Mittagszeit null, überprüfen Sie, ob die PV-Komponenten-ID korrekt im OpenEMS-Modbus-Registerexport eingetragen ist.

Zu beachten

Warum liefert das Leistungsregister tagsüber den Wert null?

Die OpenEMS Modbus-API ordnet Kanäle dynamisch zu, abhängig davon, welche Komponenten exportiert werden. Ist die PV-Komponente nicht in der Komponentenliste des Modbus-API-Controllers eingetragen, liefert Register 327 null oder keinen Wert. Öffnen Sie die OpenEMS UI, rufen Sie die Konfiguration des Modbus-API-Controllers auf, und prüfen Sie, ob die PV-Komponenten-ID als exportierte Komponente aufgeführt ist.

Warum erhalte ich NaN oder ungültige Float-Werte an Register 327?

Register 327 verwendet einen 32-Bit-IEEE-754-Float, der sich über zwei aufeinanderfolgende Modbus-Register erstreckt. Manche Abfrage-Tools interpretieren diese als zwei separate 16-Bit-Integer. Stellen Sie sicher, dass Ihr Modbus-Client zwei Register ab Adresse 327 liest und diese als einzelnen float32 im Big-Endian-Format dekodiert, dem Standard in OpenEMS.

Register 367 liefert veraltete oder eingefrorene Werte.

Register 367 enthält einen float64-Energiezähler, der vier aufeinanderfolgende Register belegt. Umfasst die Leseanforderung weniger als vier Register, ist der Wert unvollständig oder erscheint eingefroren. Stellen Sie sicher, dass der Lesebereich alle vier Register (367 bis einschliesslich 370) abdeckt und Funktionscode 3 verwendet wird, der zum Holding-Register-Typ passt.

Die Modbus-Verbindung wird verweigert, obwohl OpenEMS Edge läuft.

Der Modbus-TCP-API-Controller muss in OpenEMS Edge explizit aktiviert werden. Eine laufende Edge-Instanz stellt standardmässig keinen Modbus-Zugang bereit. Prüfen Sie in der Apache Felix Web Console, ob eine Komponente vom Typ 'Controller.Api.ModbusTcp.ReadOnly' oder 'ReadWrite' aktiv ist, und stellen Sie sicher, dass keine Firewall-Regel TCP-Port 502 zwischen dem ModbusCloud Gateway und dem Edge-Host blockiert.

Weitere OpenEMS-Vorlagen

Selbst sehen, wie es funktioniert?

Elektriker bei der Arbeit an einem offenen Verteilerschrank