Hab hier ein Akku 60V mit verbautem (eingegossenem) BMS, der über RS485 seinen SOC an eine übergeordnete Steuerung herausgibt. In der übergeordneten Steuerung sehe ich den Wert und habe ihn mit den Botschaften auf RS485 verglichen. Deshalb kenn ich den Protokollaufbau der Botschaften des BMS nun etwas. Der Aufbau jedes Request (an das BMS) und jeder Response (vom BMS) ist wie folgt: Byte 1: Adresse (immer 0x10) Byte 2: Anzahl an Bytes der gesamten Botschaft Byte 3: Kommando (Request/Response) Byte 4-x: Daten Byte x+1: Prüfsumme (Addition Byte 1 bis Byte x ohne Übertrag) Durch rumprobieren habe ich herausgefunden, dass Byte 8 und 9 ein Integer16-Wert ist (Little Endian), der mir die Stromentnahme / den Ladestrom in Vielfache von 10mA ausgibt. Sprich Byte 8: 0x93 Byte 9: 0xFF -> 0xFF93 = -1,090A (Entladen) oder Byte 8: 0x9E Byte 9: 0x01 > 4,140A (Laden). Im Beispiel des Bildes wird gerade nicht geladen und nicht entladen, also ist dieser Wert 0. Da damit Little Endian als Byte Order klar war, hab ich erkannt, dass ab Byte 10 mehrere gleiche Werte übertragen werden, die sich wenig ism niedrigwertigen Byte unterscheiden und beim Laden auch langsam zunehmen. Mit obiger Methode umgewandelt und der Annahme, dass zwei Byte hintereinander wieder einen 16-Bit-Wert darstellen, ergibt sich der folgende Dezimalwert (für die erste Nachricht): 4080. Ich vermute, es handelt sich um eine Zellspannung in mV. Soweit so gut. Allerdings hat der Akku eine Entladeschlussspannung von 71,4V (laut Netzteil) und bei Standard-Li-Ion Entladeschlussspannung von 4,2V ergibt sich eine Zellkonfiguration von 17 Zellen in Reihe. Ich erhalte aber nur 13 Werte vom BMS? Meine Frage: a)Kennt jemand dieses BMS-Protokoll (Chinesisch) b)Wie komme ich an die anderen Zellspannungen oder meint ihr, die haben da nur ein 13s-Zellen BMS verbaut (war nicht gerade Qualitätsware)? c) Was könnte der Rest der Botschaft sein? Bei den 0x15 0x15 am Anfang dachte ich schon an Temperatur. d)Die letzten Bytes ab 43 ändern sich nie. Byte 42 muss der SOC sein.
Zeigt denn die übergeordnete Steuerung 17 Zellen an? Oder hat die gar nicht die Möglichkeit, die Einzelspannungen anzuzeigen? Gibts noch einen Multistecker am Akkupack? 13 Zellen jedenfalls deuten auf ein BMS hin, das eigentlich für 48V gedacht ist.
:
Bearbeitet durch User
Timo N. schrieb: > Hab hier ein Akku 60V mit verbautem Typ und oder Hersteller oder Link zum Datenblatt ? Wäre nett. Mehr Infos mehr mögliche Hilfe.
Ich vergaß zu sagen, das du da hervorragende Arbeit geleistet hast! Respekt für die Analyse.
:
Bearbeitet durch User
Timo N. schrieb: > Mit obiger Methode umgewandelt und der Annahme, dass zwei Byte > hintereinander wieder einen 16-Bit-Wert darstellen, Glaube da irrst Du Dich. Da wird kein 16 Bit AD-Wandler drin sein. Da wird ein 12 Bit AD-Wandler drin sein. 13*8*2 = 208 Bit 208 : 12 = 17,33 Langt also für 17 Werte.
Matthias S. schrieb: > Zeigt denn die übergeordnete Steuerung 17 Zellen an? Oder hat die gar > nicht die Möglichkeit, die Einzelspannungen anzuzeigen? Gibts noch einen > Multistecker am Akkupack? > 13 Zellen jedenfalls deuten auf ein BMS hin, das eigentlich für 48V > gedacht ist. Nein, die übergeordnete Steuerung (eigentlich nur ein Display eines E-Rollers), sendet lediglich einen anderen Request (Byte 3 = 0x65) an den Akku und erhält nur eine 5 Byte lange Antwort mit lediglich 1 Byte Payload, der den SOC in Prozent enthält. Das gilt bisher als gesichert. Mehr wird in der regulären Applikation nicht vom Akku abgefragt, ich möchte aber mehr wissen. Der Akkustecker hat nur die zwei Batteriepole (+ und -) und 2 Pins für RS485A und RS485B. Die Zellen und das BMS sind leider in einer grauen Vergussmasse vergossen. Man kommt nicht ran ohne den Akku zu zerstören. Aus der Masse zur Buchse kommen nur besagte 4 Adern. Es handelt sich um ein Reverse Engineering, da ich mehr über den Akku in Erfahrung bringen möchte. Hobby B. schrieb: > Typ und oder Hersteller oder Link zum Datenblatt ? > Wäre nett. > Mehr Infos mehr mögliche Hilfe. Der Akkuhersteller ist völlig unbekannt. Er ist von einem Elektroroller (nicht so ein Trittbrettding, sondern für die Straße) und wird ein Zukauf sein. Es steht lediglich außen "72V/20Ah" auf dem Akku (Nennspannung 60V). Innen ist ein Kleber auf Chinesisch, auf dem dann die wahren Werte stehen "60V /20Ah". Wobei ich bei den 20Ah vorsichtig bin.
Dieter D. schrieb: > Glaube da irrst Du Dich. Da wird kein 16 Bit AD-Wandler drin sein. Da > wird ein 12 Bit AD-Wandler drin sein. > > 13*8*2 = 208 Bit > 208 : 12 = 17,33 > > Langt also für 17 Werte. Warum sind die 13 Werte dann ungefähr gleich, wenn ich von einem 16Bit Integer ausgehe? Wenn es so wäre wie du behauptest, dann würde sich bei den Bytes immer etwas verschieben un man würde kein Muster erkennen. Außerdem sind die Werte mit z.b. bei Zelle 1: 0x0FE4 = 4068 = 4,068V sehr plausible Zellspannungen, die wenn ich sie mit 17 multipliziere genau der gemessenen Gesamtspannung am Batteriepol entspricht. Ich traue den Chinesen echt alles zu. Dass sie da dann nur ein billigeres BMS verbauen mit nur 13 Zellspannungsüberwachungen nur um ein paar Cent zu sparen. Wenn es keinen Balancer hat, wäre das vielleicht noch nicht mal sooo tragisch. Aber dann wäre tragisch, dass so ein Akku gar kein Balancer hat und ich kann mich auf einen Defekt nach kurzer Zeit einstellen.
Timo N. schrieb: > Dass sie da dann nur ein billigeres BMS verbauen mit nur 13 > Zellspannungsüberwachungen nur um ein > paar Cent zu sparen. Das ware durchaus möglich. Dreizehn Zellen mit BMS und darüber vier bessere Zellen (selektiert) mit einer simplen Über- und Unterspaannungsüberwachung mit einem Schaltausgang zu setzen. D.h. irgendwo in einem Byte werden dann zwei Bits geändert. Es gibt auch die Variante, indem die Abschaltung im Minuspfad verwendet wird, um in dem Falle die Spannung der 13. Zelle zum Messeingang zu unterbrechen.
Ok, es gäbe noch die Möglichkeit, das es ein Kommando zur Abfrage der übrigen Zellen gibt, aber ich nehme mal an, das du da schon alles durch hast?
Matthias S. schrieb: > Ok, es gäbe noch die Möglichkeit, das es ein Kommando zur Abfrage der > übrigen Zellen gibt, aber ich nehme mal an, das du da schon alles durch > hast? Ja. Für 4-Byte lange Requests hab ich das Kommandobyte 1-255 schon durchprobiert. Da gibt es außer dem Request 0x13 nur noch den Request 0x65 (der mir nur den SOC zurückschickt, wie oben beschrieben) und noch den Request mit dem Kommando-Code 0x48. Bei dem bekomme ich aber nur 0x0D + 55* 0x00 zurück. Dann dachte ich noch: Vielleicht gibt es zwei Byte lange Kommando-Codes, aber dann schickt er mir für z.b. einen Request "0x10 0x05 0x13 0xYY 0xCRC" trotzdem die Response für 0x13. Scheinbar führt er da keinen Format check durch. Ich finde es sehr seltsam, dass er da nur 13 Werte liefert für die 17 Zellen. Aber ja, bei chinesischen Billigprodukten sollte man sich nie wundern.
Timo N. schrieb: > Aber ja, bei chinesischen Billigprodukten sollte man sich nie > wundern. 48V sind im Gegensatz zu 60V Fahrbatterien ja wesentlich verbreiteter. (kann ich ein Liedchen von singen mit meinem 60V E-Auto). Kann also sein, das sich da jemand die Mühe gespart hat, ein richtiges BMS zu verwenden. Du solltest davon ausgehen, das, wenn überhaupt ein Balancing vorhanden ist, die 4 übriggebliebenen Zellen nicht balanciert werden.
:
Bearbeitet durch User
Timo N. schrieb: > schickt er mir für z.b. einen Request "0x10 0x05 0x13 0xYY > 0xCRC" trotzdem die Response für 0x13 Dieser eine Versuch sagt aber noch nichts definitives darüber aus, ob das für sämtliche übrigen 255 1-Byte Codes ebenso passiert, daß ein allfälliges 2.Byte komplett ignoriert wird. Wirklich wahrscheinlich scheint es mir zwar nicht, daß sich da noch Kommandos verstecken, schließlich stellt sich ja schon die Frage, warum sollte es 2-Byte Request-Codes geben, wenn eh noch fast alle 1-Byte Codes unbenutzt sind. Insofern wären eigentlich gültige 2-Byte Codes nahezu genauso unwahrscheinlich, wie die Existenz von gültigen 3 oder gar 25-Byte Request-Codes; bloß die gut 65000 2-Byte Varianten kann man noch mit akzeptablem Aufwand nebenher durchlaufen lassen.
Michi S. schrieb: > bloß die gut 65000 2-Byte Varianten kann man noch mit > akzeptablem Aufwand nebenher durchlaufen lassen. Es sollte aber dann bei den funktionslosen 2-Byte-Varianten immer die gleiche Rückantwort erfolgen um das automatisiert auszuwerten. 65 Tausend Zeilen ohne Hilfsmittel mit den Augen zu durchsuchen, wird unangenehm.
Dieter D. schrieb: > Langt also für 17 Werte. Wie erklärst du dir dann, dass bei den ungeraden Bytes das obere Nibble immer 0 ist. Bei komprimierten 12 Bit Werten müssten alle Bits benutzt sein.
Matthias S. schrieb: > 48V sind im Gegensatz zu 60V Fahrbatterien ja wesentlich verbreiteter. > (kann ich ein Liedchen von singen mit meinem 60V E-Auto). Kann also > sein, das sich da jemand die Mühe gespart hat, ein richtiges BMS zu > verwenden. Du solltest davon ausgehen, das, wenn überhaupt ein Balancing > vorhanden ist, die 4 übriggebliebenen Zellen nicht balanciert werden. Ich als bei so E-Rollern ist 60V mit 17 Zellen eigentlich sehr verbreitet. 48V natürlich auch. Die wieviel Zellen werden denn bei 48V genutzt? Bei 60V (bei 17 Zellen also 17 * 3,6V) ist die Nominalspannung eigentlich 61,2V. Bei 48V ist sie dann 50,4V? mit 14 Zellen? Selbst dann würde das BMS von mir ja nicht ausreichen (wenn es eigentlich für 48V-Systeme gedacht war). Nur bei 46,8V mit 13 Zellen. Normal wird da dann aber immer etwas mehr Spannung genommen, als durch gleichwertige Bleiakkus (24 x 2V) erreicht werden würden. Außerdem lassen sich doch 14 Zellen in Reihe viel besser zu einem gerade Zellenblock formen, da man 2 Reihen a 7 Zellen bilden kann, die man parallel schaltet. Es bleibt ein Mysterium. Muss ich warten, bis der Akku das zeitliche segnet, bis ich dem auf den Grund gehen kann.
Timo N. schrieb: > Bei 60V (bei 17 Zellen also 17 * 3,6V) ist die Nominalspannung > eigentlich 61,2V. Bei 48V ist sie dann 50,4V? mit 14 Zellen? Ich kenne die 48V Blöcke mit 13 Zellen. Und es ist ja auch wurscht, ob gerade oder ungrade Zellenanzahl, da sie sowieso pro Zelle parallel sind. 3,7V x 13 = 48,1V Nominal werden LiIon meist mit 3,7V berechnet. Und du hast ja auch nur 13 Werte in der Response.
Matthias S. schrieb: > Ich kenne die 48V Blöcke mit 13 Zellen. Und es ist ja auch wurscht, ob > gerade oder ungrade Zellenanzahl, da sie sowieso pro Zelle parallel > sind. > 3,7V x 13 = 48,1V > Nominal werden LiIon meist mit 3,7V berechnet. Und du hast ja auch nur > 13 Werte in der Response. Ja, manche sagen 3,6, manche 3,7. Gerade bei NMC wird es wohl irgendwo in der Mitte liegen. Wenn du es mit 3,7V rechnest, dann sind das bei 13 Zellen natürlich 1,3V mehr und die 48V passen genau. Wenn du dich da auskennst, mit den 48V Akkus und sagst, dass es meist 13-Zeller sind, dann glaub ich dir das. Genau das meinte ich ja, wenn es ein Akkutyp gibt, der oft vorkommt, dann macht es auch Sinn, wenn man da mal ein 13s-BMS an falscher Stelle trifft, weil es einfach deutlich günstiger ist.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.