BMZ Helios SE Modul Störung

OP #7999013
Lesenswert?
• ▲
▼

Ich habe mehrere BMZ Helios 2,5 kWh Batteriemodule, welche an ihrem BMS die rote LED anzeigen. Laut Fehlermeldung am Wechselrichter sollen diese Module “driften” d.H. mindestens eine Zellspannung weicht zu weit ab.

Laut BMZ kann durch externes laden, auf volle Leistung (max. Spannung), dass “driften” behoben werden. Ladegerät soll längere Zeit mit mind. 56,9V anliegen, damit das Balancing im Batteriemodul die Zellspannungen angleicht.

Leider hat das laden keine Erfolg gebracht. Ich habe ein Batteriemodul auseinander gebaut und die Zellen gemessen, diese haben alle die gleiche Spannung, bzw. weichen nur um ca. 0,005V voneinander ab.

Hat jemand eine Idee woran es sonst noch liegen könnte?

Gibt es vielleicht eine Software, mit der CAN-Bus des BMS des Batteriemoduls ausgelesen werden kann?

danke im voraus für eure Unterstützung

Angehängte Dateien:
OP #8002170
Lesenswert?
• ▲
▼

Die Zellspannung wurde auch nochmal unter Last gemessen, hier wurde eine Abzweichnung von 0,007V festgestellt.

Wie genau bestimmt das BMS den Innenwiderstand aus den Balastungsschwankungen? Wenn das System hochfährt, noch nicht zugeschaltet hat (keine Laden / Entladen), meldet der Wechselrichter schon ein "driften" eines Batteriemoduls.

OP #8022863
Lesenswert?
• ▲
▼

Ich habe jetzt ein aktiv Balancer besorgt und ein Schnittstellenkabel gebaut um direkt an jede Zelle zu kommen, ohne das ganze Batteriemodul dafür immer zu zerlegen.

Laut Balancer weichen die einzelnen Zellen, je nach Batteriemodul, mal zwischen 0,010V bis 0,065V voneinander ab. Mit Hilfe des Balancers können die Zellen bis auf wenige Millivolt (<= 5mV) ausgeglichen werden.

Der Innenwiderstand der Batteriemodule ist zwischen 20mOhm bis 50mOhm (für ein gesamte Batteriemodul).

Leider erkennt das BMS trotzdem einen Fehler, bzw. läuft nicht an.

Ein Firmware Up- und Downgrate, des BMS, hat auch nichts gebracht.

Meine Vermutung ist, dass im BMS ein Flag gesetzt wurde, welcher durch z.B. SoC außerhalb Bereich oder Modulspannung driftet oder etc. entstanden ist.

Dieser Flag lässt sich aber nicht durch beheben des Problems löschen, sondern nur durch eine externe Software oder ähnliches.

Hat hierzu vielleicht jemand eine Idee?

#8099388
Lesenswert?
• ▲
▼

Hallo zusammen,

ich arbeite aktuell intensiv am Reverse Engineering und an der Reparatur von BMZ Hyperion / Helios 2,5-kWh-Batteriemodulen.

Inzwischen sind wir bei der Analyse deutlich weitergekommen.

Aktueller Stand

Ich habe einen PEAK PCAN-USB FD direkt mit den Helios-BMS verbunden.

Die Kommunikation funktioniert stabil mit:

CAN 500 kbit/s

Ich habe inzwischen vollständige CAN-Traces von:

  • 2 funktionierenden Modulen – LED grün, Leistungsausgang aktiv
  • 2 fehlerhaften Modulen – LED rot, Leistungsausgang 0 V

aufgenommen und miteinander verglichen.

Die Zellspannungen und Temperaturen der roten Module sind unauffällig:

  • alle 14 Zellen sehr gut ausgeglichen
  • Delta nur ca. 3–5 mV
  • Temperaturen normal

Es liegt daher sehr wahrscheinlich kein aktueller Zellspannungs- oder Temperaturfehler vor.

Interessant ist aber eine reproduzierbare CAN-Differenz:

CAN-ID 0x101

bei beiden funktionierenden grünen BMS:

Byte 1 = 0x00

bei beiden roten BMS:

Byte 1 = 0x0B

Zusätzlich gibt es eine reproduzierbare Differenz bei 0x6C1:

grüne Module:

C3 E0 10 40 ...

rote Module:

C3 D7 30 C0 ...

Die Zellspannungen konnten bereits über:

0x201 / 0x241 / 0x281 / 0x2C1

dekodiert werden.

0x141 enthält nach unseren Messungen eindeutig Zellspannung Minimum/Maximum.

0x181 enthält Temperatur Minimum/Maximum.

Auch Counter und CRC einiger Telegramme konnten bereits identifiziert werden.

Unser Verdacht ist daher inzwischen ein persistenter Fehlerzustand / Hardlock im BMS, eventuell im externen NOR-Flash bzw. im XMC4200 gespeichert.

Was wir jetzt benötigen

Wir suchen dringend das originale:

BMZ ESS HV Flash Tool

vorzugsweise:

ESSHVFlashTool V1.0.15

oder

ESSHVFlashTool V1.0.16

Bitte wenn möglich das komplette ZIP bzw. den kompletten Programmordner, nicht nur die Anleitung.

Außerdem suchen wir die zugehörigen Firmware-Dateien:

ESS-Master_Dev.hex

20240521_Unified_5p1p45.hex

und eventuell weitere vorhandene BMZ Hyperion / Helios Firmware-Versionen.

Besonders interessant wären auch ältere Slave-Firmware-Versionen zum Vergleich.

Warum wir die Dateien benötigen

Wir möchten zunächst NICHT blind Firmware flashen.

Wir haben funktionierende BMS als Referenz und möchten untersuchen, wie das ESS HV Flash Tool mit dem XMC4200 bzw. dem externen NOR kommuniziert.

Ziel ist:

  1. NOR/Flash eines funktionierenden BMS vollständig auslesen und sichern
  2. NOR eines fehlerhaften BMS auslesen
  3. beide Dumps binär vergleichen
  4. gespeicherte Fehler-/Hardlock-Daten lokalisieren
  5. möglichst nur den betreffenden Fehlerstatus zurücksetzen, ohne Seriennummer, Kalibrierung oder modulspezifische Daten zu verändern.

Falls jemand zusätzlich Folgendes besitzt, wäre das extrem hilfreich:

  • CAN-Trace eines vollständigen Hyperion-Systems mit BMU/Master
  • BMZ Service-/Entwicklersoftware
  • DBC oder CAN-Protokollbeschreibung
  • BMS/NOR-Dumps
  • ältere oder neuere Helios-Firmware
  • Service-Schulungsunterlagen
  • BMZ Service USB-Stick / Service Kit Dateien
  • Informationen zum XMC4200 Bootloader bzw. NOR-Zugriff

Ich stelle im Gegenzug gerne unsere CAN-Traces von funktionierenden und fehlerhaften Modulen sowie die bisherige Dekodierung zur Verfügung.

Ziel ist es, eine reproduzierbare Reparatur- und Diagnosemöglichkeit für diese Module zu entwickeln, da der ursprüngliche Support praktisch nicht mehr verfügbar ist.

Vielen Dank für jede Hilfe oder Datei.

Viele Grüße Mino

OP #8099430
Lesenswert?
• ▲
▼

Hallo Mino,

der Flash kann mit Hilfe von NeoProgrammer ausgelesen werden. Auf den meisten BMS ist ein Adesto AT25SF041B-SHD NOR-Flash-Speicher 4Mb, 2,5V, SPI,108MHz, SO-8 verbaut.

Der Flash-Speicher speichert einen Hardlock und muss zurückgesetzt werden.

Ich habe schon meherer Flash-Speicher ausgelesen und BMS wieder funktionsfähig gemacht. Aktuell ist ein Batteriemodul im Testaufbau und fährt einige Zyklen.

Vorab prüfe ich immer alle wichtigen Parameter:

  • Zellen Innenwiderstand
  • Zellspannungen
  • Drift der Zellen
  • Temperaturfühler
  • Balancer Widerstände
  • DC-Sicherungen

Das beschriebene auslesen, via Peak CAN-Adapter und decodieren, von dir, mache ich auch schon längere Zeit.

Die Kommunikation des BMS ist dem CAN-Bus CiA 454 (EnergyBus) Battery Device Profile angelehnt.

z.B. ein Befehl auf auf die ID 581, Byte 0 = 01 erzeugt eine Reaktion auf ID 082 Byte 0 = 01

Die meisten Daten sind als Littel Ending Codiert, was du mit Sicherheit bei der Zellstpannung festgestellt hast.

Die ID 301 sind die 6 Temperaturfühler, jedes Byte = ein Temperaturfühler, ohne Nachkommastelle in HEX-Format.

Die ID 0C1 gibt an, ob das BMS ein Störung hat oder freigeben ist. Byte 0 = 01 = BMS i.O. Byte 3 = 80 = BMS Störung Letzten Bytes = Protokollabsicherung (Byte 6: Der Rolling Counter / Byte 7: Die CRC-Prüfsumme für diese Nachricht)

COSIMO M. schrieb:

Zusätzlich gibt es eine reproduzierbare Differenz bei 0x6C1: grüne Module: C3 E0 10 40 ... rote Module: C3 D7 30 C0 ...

Hier habe ich bei verschiedenen Batteriemodulen andere Werte, ob grüne oder rote LED.

COSIMO M. schrieb:

2 funktionierenden Modulen – LED grün, Leistungsausgang aktiv 2 fehlerhaften Modulen – LED rot, Leistungsausgang 0 V

Bei dem 0V Leistungsausgang, habe die Zellen noch Spannung? Falls ja, hat die DC-Sicherheitssicherung ausgelöst. Das BMS kann diese aus Sicherheitsgründen eigenständig zerstören. Die Sicherung sitzt im 0V Stromkreis und besitzt ein Erhitzungsanschluss, womit das BMS im Notfall die Batterie trennen kann.

COSIMO M. schrieb:

Informationen zum XMC4200 Bootloader bzw. NOR-Zugriff

Kann bei Infinion downgeloadet werden

COSIMO M. schrieb:

ältere oder neuere Helios-Firmware

Vorhanden, aber nicht hilfreich

COSIMO M. schrieb:

BMZ Service-/Entwicklersoftware DBC oder CAN-Protokollbeschreibung

Diese Daten hat leider nur BMZ. Ich habtte schon probiert diese Daten bei verschiedenen Ex-BMS Angestellten diese Daten zu bekommen, leider ohen Erfolg.

COSIMO M. schrieb:

0x141 enthält nach unseren Messungen eindeutig Zellspannung Minimum/Maximum.

ID: 141 = Sicherheits-Grenzwerte-Telegramm

COSIMO M. schrieb:

0x181 enthält Temperatur Minimum/Maximum.

ID: 181 = direkte Statusrückmeldung des Akkus oder ID: 181 = Es dient zur Übertragung von dynamischen Betriebs- und Temperaturmesswerten Abhängig der CAN-Bus Einstellungen.

Gruß Jusch

#8099431
Lesenswert?
• ▲
▼

Hallo Jusch, vielen Dank! Das hilft uns enorm weiter. Welchen Programmer verwendest du mit NeoProgrammer für den AT25SF041B-SHD? Liest du den Flash in-circuit mit SOIC8-Clip oder lötest du ihn aus? Und könntest du mir bitte sagen, welchen Bereich/Block du für den Permanent Block zurücksetzt bzw. ob du einen Vergleich zwischen einem grünen und roten Dump hast? Vielen Dank!

OP #8099461
Lesenswert?
• ▲
▼

Hallo Cosimo Giuseppe M,

als Software nutze ich die NeoProgrammer V2.2.0.10 (ist kostenlos zum Download) kann ich aber auch zur Verfügung stellen (ca. 12Mb groß).

Ich löte den Flash nicht aus, ich nutzte den CH341B mit Adapter Zange. Kostet ca. 11€ bei ebay

https://www.ebay.de/itm/296734867926?var=594557895510&mkevt=1&mkcid=1&mkrid=707-53477-19255-0&campid=5338900900&toolid=20006&_ul=DE&customid=56357.4cde1006c458b4661da417a7fe083ddfe05d3759&gclid=CjwKCAjw_eLVBhBEEiwAeaYZfKGlc45HlT0_PCTo14YQQdqPcFYnwfi-WJBmQMWIYy7PrAF8sWxmlRoCiEgQAvD_BwE&adtype=pla&loc_physical_ms=9044278

Die Zange wird mit der roten Ader auf Pin 1 kontaktiert. Pin 1 ist unten links, wenn die Schrift des Chips richtigrum zu lesen ist oder da, wo eine kleine Vertiefung ist (ähnlich eines Kreis).

Wenn der Adapter kontaktiert ist, blinkt die LED des BMS rot und startet immer mal wieder neu, ist normal nicht wundern.

Es kann sein, dass die Software meldet das der Flash nicht erreichbar ist, dann die Zange neu kontaktieren oder ein bisschen bewegen, liegt meist an dem Schutzlack. Hat bei mir auch nicht immer auf anhieb funktioniert.

Ich wollte auch erst die Daten im Flash analysieren, hab mir aber dann gedacht, spiel doch einfach eine von einem i.O. Modul auf. Dies hat auch funktioniert. Mir ist aufgefallen das bei einem Modul mit Fehler, einige Register beschrieben sind und andere anderes beschrieben sind, als bei dem Modul ohne Fehler (dort sehen die Daten "strukturierter" aus).

Aktuell teste ich das Modul in einem Testaufbau, es hat aktuell 2 Zyklen (Laden- / Entladen ohne Probleme durchlaufen.

Ich mache vorab aber immer ein Sicherheitskopie des Flash-Speichers.

Vorgehen:

  • Sicherheitskopie von Flash anlegen
  • Flash komplett löschen
  • Datensicherung von i.O. Modul aufspielen

Wichtig: Flash muss erst komplett gelöscht werden, wenn nur die Datensicherung überspielt wird, kann es zu Störungen kommen, da ggf. nicht alle Register gelöscht werden.

Gruß Jusch

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren