BMW BMW BMW Modbus RTU template

BMW BMW

Das BMW-Batteriespeichersystem ist ein stationäres Energiespeichersystem auf Basis von BMW-Hochvoltakkus, das in gewerblichen und industriellen Anlagen unter OpenEMS-Steuerung eingesetzt wird. Diese Modbus-Vorlage kommuniziert über Modbus RTU und liest einen umfassenden Satz BMS-Register: State of Charge, State of Health, DC-Link-Spannung, Packstrom, Zellspannungen in Millivolt, Zell- und Packtemperaturen, Isolationswiderstand, String-Topologie, verbleibende Lade- und Entladeenergie sowie den Vollzyklenzeähler. Das beschreibbare Befehlsregister erlaubt dem EMS das Auslösen von Zustandsübergängen. ModbusCloud stellt diese Daten für Monitoring, Alarmierung und Langzeitanalyse bereit.

Protokoll
Modbus RTU
Anschluss
RS485
Register
36, lesen und schreiben
Marke
BMW
Zuletzt aktualisiert

Register (36)

35 lesen, 1 schreiben

NameEinheitZugriffAdresse (Verborgen bis zur Eingabe Ihrer E-Mail-Adresse)Funktion (verborgen)Typ (verborgen)
battery_state_commandSchreiben
battery_stateLesen
max_operating_currentALesen
min_operating_currentALesen
charge_max_voltageVLesen
discharge_min_voltageVLesen
bp_discharge_bmsLesen
bp_charge_bmsLesen
max_dynamic_voltageVLesen
min_dynamic_voltageVLesen
connected_string_numbercountLesen
installed_string_numbercountLesen
battery_total_soc%Lesen
battery_soc%Lesen
remaining_charge_capacityLesen
remaining_discharge_capacityLesen
remaining_charge_energyWhLesen
remaining_discharge_energyWhLesen
nominal_energyWhLesen
nominal_energy_totalLesen
nominal_capacityLesen
capacityWhLesen
soh%Lesen
link_voltageVLesen
internal_voltageVLesen
currentALesen
avg_battery_temperature°CLesen
min_cell_temperature°CLesen
max_cell_temperature°CLesen
min_cell_voltagemVLesen
max_cell_voltagemVLesen
avg_cell_temperature°CLesen
insulation_resistanceLesen
discharge_max_current_high_resolutionALesen
charge_max_current_high_resolutionALesen
full_cycle_countcountLesen

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

  • Vergleichen Sie battery_total_soc mit battery_soc, um Ungleichgewichte zwischen verbundenen Strings frühzeitig zu erkennen.
  • Überwachen Sie soh und full_cycle_count, um vorausschauende Wartung zu planen, bevor die Kapazität unter den Schwellenwert sinkt.
  • Richten Sie Alarme auf min_cell_voltage und max_cell_voltage ein, um Zelldrift zu erkennen, bevor das BMS abschaltet.
  • Prüfen Sie nach Wartungsarbeiten, ob connected_string_number mit installed_string_number übereinstimmt, um sicherzustellen, dass alle Strings online sind.
  • Protokollieren Sie insulation_resistance über die Zeit, um frühe Isolationsfehler im Hochvolt-Batteriegehäuse zu erkennen.

Installation

  1. Stellen Sie sicher, dass das BMW-Batteriesystem für Modbus RTU konfiguriert ist, und notieren Sie die RS485-Slave-Adresse in den BMS- oder Systemcontroller-Einstellungen.

  2. Verbinden Sie die RS485-Adern A und B vom Modbus-Anschluss des Batteriesystems mit den seriellen Klemmen des ModbusCloud Gateways, achten Sie auf die Polarität und setzen Sie an beiden Busenden einen 120-Ohm-Abschlusswiderstand.

  3. Fügen Sie im ModbusCloud-Portal das Gateway hinzu, legen Sie ein neues Gerät an, importieren Sie die BMW-Batterie-Vorlage und tragen Sie die Modbus-Unit-ID entsprechend der am Speicher eingestellten Slave-Adresse ein.

  4. Führen Sie im Portal-Konsolentool einen Live-Poll auf Register 1016 (battery_total_soc) und Register 1026 (soh) durch, um den korrekten Datenempfang zu bestätigen, bevor Sie die vollständige Dashboard-Erfassung aktivieren.

Zu beachten

Alle Register liefern null oder eine Fehlermeldung. Was soll ich prüfen?

Prüfen Sie zuerst die RS485-Verdrahtung: Vertauschte A- und B-Adern sind die häufigste Ursache. Vergewissern Sie sich anschließend, dass die Modbus-Slave-Adresse im Portal mit der am BMW-BMS eingestellten Adresse übereinstimmt. Kontrollieren Sie auch, ob Baudrate und Parität des Gateways mit der RS485-Konfiguration des Speichers übereinstimmen, typischerweise 9600 oder 19200 Baud, 8 Datenbits, keine Parität.

battery_total_soc und battery_soc weichen voneinander ab. Ist das normal?

Ja, wenn mehrere Strings installiert, aber nicht alle verbunden sind, weichen die beiden Register voneinander ab. battery_total_soc (Adresse 1016) aggregiert alle installierten Strings, battery_soc (Adresse 1017) gibt den aktiven String wieder. Vergleichen Sie beide Werte mit connected_string_number und installed_string_number, um festzustellen, ob ein String offline gegangen ist.

min_cell_voltage und max_cell_voltage zeigen unerwartet hohe Werte. Warum?

Beide Register verwenden Millivolt als Einheit: Ein Wert von 3500 entspricht 3,5 V pro Zelle. Teilen Sie Rohwerte durch 1000, um in Volt umzurechnen. Prüfen Sie in Ihrer Dashboard-Konfiguration, ob die Einheit auf mV gesetzt ist, und passen Sie den Skalierungsfaktor bei Bedarf an.

Ist es sicher, während des Betriebs in battery_state_command zu schreiben?

Gehen Sie mit Schreibregister 1400 sorgfältig um. Ein unbeabsichtigter Zustandsübergangsbefehl während eines aktiven Lade- oder Entladevorgangs kann dazu führen, dass das BMS Schütze öffnet, laufende Zyklen unterbricht und Schutzverriegelungen auslöst. Senden Sie Befehle ausschließlich im Ruhezustand der Anlage und halten Sie sich an die dokumentierte Zustandsmaschinensequenz des BMW-Batteriesystems.

Weitere RTU-Vorlagen

Selbst sehen, wie es funktioniert?

Elektriker bei der Arbeit an einem offenen Verteilerschrank