URL: https://www.overclockers.at/coding-stuff/kommunikation-mit-bms_255046/page_1 - zur Vollversion wechseln!
Hallo,
bin dabei mir einen kleinen Speicher zu bauen, der mit Solarstrom geladen und dann nachts über über einen kleinen WR entladen wird.
Die Lithiumakkus sind über ein BMS angeschlossen, das per USB/RS232 und Software amPC oder über Bluetooth und eine App bedient werden kann.
Ich möchte nun die Mosfets manuell schalten können, bevor das BMS selbst aufgrund der einstellbaren Settings die Verbindung von Last oder Lader trennt. Vom Hersteller gibts hierzu die Beschreibung des Protokolls in einem XLS.
Auslesen ist kein Problem, das ist eines der kurz gezeigten Beispiele. Wenn ich die entsprechenden Werte ans BMS schicke, so antwortet das wunschgemäß mit jede Menge Daten (Akkuspannung, Strom, Mosfet Status, Temperaturen, Restkapazität und vieles mehr).
Ich scheitere aber an der Checksum Berechnung oder auch am Schreibbefehl selbst, obwohl ich die Checksum Berechnung vom Lesebefehl nachvollziehen kann.
In der Beschreibung steht zur Checksum Berechnung (16Bit Wert) folgendes:
Code:verfication on data,Length and command code ,then act inverse code plus one,big-endian at highest address and little endian at low address
vielleicht meinen die mit "inverse code" nicht das 1er Komplement sondern die Bit- oder Bytereihenfolge
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025