Überprüfung der Serialbattery software in Victron OS und Raspberry PI

Hallo zusammen,

ich bräuchte bitte von jemanden Unterstützung der sich gut mit dem JK-BMS in Verbindung mit Serialbattery und Victron auskennt.

Wir haben ein einen Speicher mit 16 x 280Ah Zellen, der von einem JK-BMS überwacht wird. Das ganze ist per Serialbattery in Vitron eingebunden.

Ich bin mir nur nicht sicher, ob das alles richtig eingestellt ist und würde gern einen Profi in dem Bereich drüber schauen lassen.

Moin,

ich setzte ein JK-BMS an einem DIY 16S Akku ein. Worin soll denn das "drüber schauen" bestehen?

Hallo, Erstmal danke für deine Rückmeldungen :slight_smile: Es sollte sich auf die Einstellungen im Multi, JK BMS, VRM Portal und die Einstellungen im Serialbattery Treiber beschränken. Die Anlage läuft auch soweit und tut Ihren Dienst aber ich bin mir eben nicht sicher ob alle Einstellungen so passen. Zwei Sachen sind mir bis jetzt aufgefallen: SOC verabschiedet sich wenn sich das Raspberry mal aufhängt und das führt dazu, dass der Multi den Speicher bis BMS Limit entlädt und der Speicher wird ab ca. 70% SOC nicht mehr mit voller Power geladen.

Moin,

puh, das klingt ja nach einer Ganztagsbetreuung :rofl:

Aber als erstes die Frage: Warum hängt sich dein Raspi "mal" auf? Das sollte als allererstes abgestellt werden.

Poste doch mal zum Anfang die cinfig des SerialBattery-Treibers hier als:

CODE Beispiel

Dann könnte man da schon mal drüber schauen.

Gibt es denn sonst noch irgendwelche Auffälligkeiten weshalb deinerseits Unsicherheiten bestehen?

@hf_spsler Hallo,

meinst? hoffe nicht. Dachte wir fliegen über die Einstellungen drüber und du sagst im besten Fall, nichts anrühren passt so :laughing:

wenn man nichts macht, hängt es sich auch nicht auf. ich wollte mal die Daten der SD Karte im Betrieb sichern und das hat leider nicht geklappt, das war zb. der Fall wo das mal passiert ist. Mir ging es da eher darum, wieso verliert der Raspi bzw. die Remote Konsole gewissen Einstellungen und somit auch die SOC Anzeige. Eventuell passt da ja was gröber nicht.

Gerne, da haben wir aber nicht viel drin und da weiß ich jetzt zb. nicht ob das auch so gut ist :-/

--------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT = 170.0
MAX_BATTERY_DISCHARGE_CURRENT = 170.0
; --------- Cell Voltages ---------
; Description: Cell min/max voltages which are used to calculate the min/max ba>
; Example: 16 cells * 3.45V/cell = 55.2V max charge voltage. 16 cells * 2.90V =>
MIN_CELL_VOLTAGE = 2.900
; Max voltage can seen as absorption voltage
MAX_CELL_VOLTAGE = 3.650
FLOAT_CELL_VOLTAGE = 3.450

Die zweimal 170 sind nur eingetragen, da ich gemerkt habe, je höher ich diesen Wert einstelle, desto länger Lädt der MP den Speicher mit voller Leistung, wiso das so ist gibt mir ein Rätsel auf, oder das Phänomen es war damals einfach Zufall. Wir haben ja nur einen MP 5000 somit wäre ja 80 und 120 ein normaler Wert.

Direkt fällt mir gerade nichts ein, eventuell kommt das dann noch.

Moin,

das ist allerdings nicht die komplette config des JK, bitte poste mal die komplette config und bitte in < code > Tags, dann lässt sich das leichter lesen.
Normalerweise hat der Parameter des maximalen Lade- und entladestroms nichts damit zu tun wie lange der MP mit max. Leistung/Strom lädt. Von wie vielen und welchen Multiplussen reden wir denn?
Ich würde dir allerdings auch empfehlen auf max. 0,5C, also bei einem 280Ah Akku 140A zu gehen um ihn nicht unnötig zu stressen. Das sind immerhin noch um die 7,8KW die weg geladen würden.
Ich gehe mal davon aus, dass der MP2 den Ladestrom reduziert weil es in seiner Ladespannungskurve so eingestellt ist oder weil möglicherweise die Zelldrift zu groß geworden ist.
Wie gesagt, bitte poste noch mal die komplette config.

Guten Morgen :slight_smile: /p>

gerne, musste mich nur informieren wie das geht ^^

ich schau mal was ich alles raus bekomme.

einmal: bei /data/etc/dbus-serialbattery/config.default.ini

[DEFAULT]
; --------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT    = 50.0
MAX_BATTERY_DISCHARGE_CURRENT = 60.0
; --------- Cell Voltages ---------
; Description: Cell min/max voltages which are used to calculate the min/max battery voltage
; Example: 16 cells * 3.45V/cell = 55.2V max charge voltage. 16 cells * 2.90V = 46.4V min discharge voltage
MIN_CELL_VOLTAGE   = 2.900
; Max voltage can seen as absorption voltage
MAX_CELL_VOLTAGE   = 3.450
FLOAT_CELL_VOLTAGE = 3.375
; --------- Bluetooth BMS ---------
; Description: List the Bluetooth BMS here that you want to install
; -- Available Bluetooth BMS:
; Jkbms_Ble, LltJbd_Ble
; Example:
;     1 BMS: Jkbms_Ble C8:47:8C:00:00:00
;     3 BMS: Jkbms_Ble C8:47:8C:00:00:00, Jkbms_Ble C8:47:8C:00:00:11, Jkbms_Ble C8:47:8C:00:00:22
BLUETOOTH_BMS =
; --------- BMS disconnect behaviour ---------
; Description: Block charge and discharge when the communication to the BMS is lost. If you are removing the
;              BMS on purpose, then you have to restart the driver/system to reset the block.
; False: Charge and discharge is not blocked on BMS communication loss
; True: Charge and discharge is blocked on BMS communication loss, it's unblocked when connection is established
;       again or the driver/system is restarted
BLOCK_ON_DISCONNECT = False
; --------- Charge mode ---------
; Choose the mode for voltage / current limitations (True / False)
; False is a step mode: This is the default with limitations on hard boundary steps
; True is a linear mode:
;     For CCL and DCL the values between the steps are calculated for smoother values (by WaldemarFech)
;     For CVL max battery voltage is calculated dynamically in order that the max cell voltage is not exceeded
LINEAR_LIMITATION_ENABLE = True
; Specify in seconds how often the linear values should be recalculated
LINEAR_RECALCULATION_EVERY = 60
; Specify in percent when the linear values should be recalculated immediately
; Example: 5 for a immediate change, when the value changes by more than 5%
LINEAR_RECALCULATION_ON_PERC_CHANGE = 5
; --------- Charge Voltage limitation (affecting CVL) ---------
; Description: Limit max charging voltage (MAX_CELL_VOLTAGE * cell count), switch from max voltage to float
;              voltage (FLOAT_CELL_VOLTAGE * cell count) and back
;     False: Max charging voltage is always kept
;     True: Max charging voltage is reduced based on charge mode
;         Step mode: After max voltage is reached for MAX_VOLTAGE_TIME_SEC it switches to float voltage. After
;                    SoC is below SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT it switches back to max voltage.
;         Linear mode: After max voltage is reachend and cell voltage difference is smaller or equal to
;                      CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL it switches to float voltage after 300 (fixed)
;                      additional seconds.
;                      After cell voltage difference is greater or equal to CELL_VOLTAGE_DIFF_TO_RESET_VOLTAGE_LIMIT
;                      OR
;                      SoC is below SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT
;                      it switches back to max voltage.
; Example: The battery reached max voltage of 55.2V and hold it for 900 seconds, the the CVL is switched to
;          float voltage of 53.6V to don't stress the batteries. Allow max voltage of 55.2V again, if SoC is
;          once below 90%
;          OR
;          The battery reached max voltage of 55.2V and the max cell difference is 0.010V, then switch to float
;          voltage of 53.6V after 300 additional seconds to don't stress the batteries. Allow max voltage of
;          55.2V again if max cell difference is above 0.080V or SoC below 90%.
; Charge voltage control management enable (True/False).
CVCM_ENABLE = True

zweiter Teil von /data/etc/dbus-serialbattery/config.default.ini

; -- CVL reset based on cell voltage diff (linear mode)
; Specify cell voltage diff where CVL limit is kept until diff is equal or lower
CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL = 0.010
; Specify cell voltage diff where CVL limit is reset to max voltage, if value get above
; the cells are considered as imbalanced, if the cell diff exceeds 5% of the nominal cell voltage
; e.g. 3.2 V * 5 / 100 = 0.160 V
CELL_VOLTAGE_DIFF_TO_RESET_VOLTAGE_LIMIT = 0.080
; -- CVL reset based on SoC option (step mode)
; Specify how long the max voltage should be kept, if reached then switch to float voltage
MAX_VOLTAGE_TIME_SEC = 900
; Specify SoC where CVL limit is reset to max voltage, if value gets below
SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT = 90
; --------- Cell Voltage Current limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be in-/decreased depending on min and max cell voltages
; Example: 18 cells * 3.55V/cell = 63.9V max charge voltage
;          18 cells * 2.70V/cell = 48.6V min discharge voltage
;          But in reality not all cells reach the same voltage at the same time. The (dis)charge current
;          will be (in-/)decreased, if even ONE SINGLE BATTERY CELL reaches the limits
; Charge current control management referring to cell-voltage enable (True/False).
CCCM_CV_ENABLE = True
; Discharge current control management referring to cell-voltage enable (True/False).
DCCM_CV_ENABLE = True
; Set steps to reduce battery current
; The current will be changed linear between those steps if LINEAR_LIMITATION_ENABLE is set to True
CELL_VOLTAGES_WHILE_CHARGING   = 3.55, 3.50, 3.45, 3.30
MAX_CHARGE_CURRENT_CV_FRACTION =    0, 0.05,  0.5,    1
CELL_VOLTAGES_WHILE_DISCHARGING   = 2.70, 2.80, 2.90, 3.10
MAX_DISCHARGE_CURRENT_CV_FRACTION =    0,  0.1,  0.5,    1
; --------- Temperature limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be in-/decreased depending on temperature
; Example: The temperature limit will be monitored to control the currents. If there are two temperature senors,
;          then the worst case will be calculated and the more secure lower current will be set.
; Charge current control management referring to temperature enable (True/False).
CCCM_T_ENABLE = True
; Charge current control management referring to temperature enable (True/False).
DCCM_T_ENABLE = True
; Set steps to reduce battery current
; The current will be changed linear between those steps if LINEAR_LIMITATION_ENABLE is set to True
TEMPERATURE_LIMITS_WHILE_CHARGING = 0,   2,   5,  10,  15, 20, 35,  40, 55
MAX_CHARGE_CURRENT_T_FRACTION     = 0, 0.1, 0.2, 0.4, 0.8,  1,  1, 0.4,  0
TEMPERATURE_LIMITS_WHILE_DISCHARGING = -20,   0,   5,  10, 15, 45, 55
MAX_DISCHARGE_CURRENT_T_FRACTION     =   0, 0.2, 0.3, 0.4,  1,  1,  0
; --------- SOC limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be increased / decreased depending on State of Charge,
;              see CC_SOC_LIMIT1 etc.
; Example: The SoC limit will be monitored to control the currents.
; Charge current control management enable (True/False).
CCCM_SOC_ENABLE = True
; Discharge current control management enable (True/False).
DCCM_SOC_ENABLE = True
; Charge current soc limits
CC_SOC_LIMIT1 = 98
CC_SOC_LIMIT2 = 95
CC_SOC_LIMIT3 = 91
; Charge current limits
CC_CURRENT_LIMIT1_FRACTION = 0.1
CC_CURRENT_LIMIT2_FRACTION = 0.3
CC_CURRENT_LIMIT3_FRACTION = 0.5
; Discharge current soc limits
DC_SOC_LIMIT1 = 10
DC_SOC_LIMIT2 = 20
DC_SOC_LIMIT3 = 30
; Discharge current limits
DC_CURRENT_LIMIT1_FRACTION = 0.1
DC_CURRENT_LIMIT2_FRACTION = 0.3
DC_CURRENT_LIMIT3_FRACTION = 0.5
; --------- Time-To-Go ---------
; Description: Calculates the time to go shown in the GUI
;              Recalculation is done based on TIME_TO_SOC_RECALCULATE_EVERY
TIME_TO_GO_ENABLE = True

dritter Teil von /data/etc/dbus-serialbattery/config.default.ini

; --------- Time-To-Soc ---------
; Description: Calculates the time to a specific SoC
; Example: TIME_TO_SOC_POINTS = 50, 25, 15, 0
;          6h 24m remaining until 50% SoC
;          17h 36m remaining until 25% SoC
;          22h 5m remaining until 15% SoC
;          28h 48m remaining until 0% SoC
; Set of SoC percentages to report on dbus and MQTT. The more you specify the more it will impact system performance.
; [Valid values 0-100, comma separated list. More that 20 intervals are not recommended]
; Example: TIME_TO_SOC_POINTS = 100, 95, 90, 85, 75, 50, 25, 20, 10, 0
; Leave empty to disable
TIME_TO_SOC_POINTS =
; Specify TimeToSoc value type [Valid values 1, 2, 3]
; 1 Seconds
; 2 Time string <days>d <hours>h <minutes>m <seconds>s
; 3 Both seconds and time string "<seconds> [<days>d <hours>h <minutes>m <seconds>s]"
TIME_TO_SOC_VALUE_TYPE = 1
; Specify in seconds how often the TimeToSoc should be recalculated
; Minimum are 5 seconds to prevent CPU overload
TIME_TO_SOC_RECALCULATE_EVERY = 60
; Include TimeToSoC points when moving away from the SoC point [Valid values True, False]
; These will be as negative time. Disabling this improves performance slightly
TIME_TO_SOC_INC_FROM = False
; --------- Additional settings ---------
; Specify only one BMS type to load else leave empty to try to load all available
; -- Available BMS:
; Daly, Ecs, HeltecModbus, HLPdataBMS4S, Jkbms, Lifepower, LltJbd, Renogy, Seplos
; -- Available BMS, but disabled by default:
; https://louisvdw.github.io/dbus-serialbattery/general/install#how-to-enable-a-disabled-bms
; Ant, MNB, Sinowealth
BMS_TYPE =
; Publish the config settings to the dbus path "/Info/Config/"
PUBLISH_CONFIG_VALUES = 1
; Select the format of cell data presented on dbus [Valid values 0,1,2,3]
; 0 Do not publish all the cells (only the min/max cell data as used by the default GX)
; 1 Format: /Voltages/Cell (also available for display on Remote Console)
; 2 Format: /Cell/#/Volts
; 3 Both formats 1 and 2
BATTERY_CELL_DATA_FORMAT = 1
; Simulate Midpoint graph (True/False).
MIDPOINT_ENABLE = False
; Battery temperature
; Specify how the battery temperature is assembled
; 0 Get mean of temperature sensor 1 to sensor 4
; 1 Get only temperature from temperature sensor 1
; 2 Get only temperature from temperature sensor 2
; 3 Get only temperature from temperature sensor 3
; 4 Get only temperature from temperature sensor 4
TEMP_BATTERY = 0
; Temperature sensor 1 name
TEMP_1_NAME = Temp 1
; Temperature sensor 2 name
TEMP_2_NAME = Temp 2
; Temperature sensor 2 name
TEMP_3_NAME = Temp 3
; Temperature sensor 2 name
TEMP_4_NAME = Temp 4

vierter Teil von /data/etc/dbus-serialbattery/config.default.ini

; --------- BMS specific settings ---------
; -- LltJbd settings
; SoC low levels
; NOTE: SOC_LOW_WARNING is also used to calculate the Time-To-Go even if you are not using a LltJbd BMS
SOC_LOW_WARNING = 20
SOC_LOW_ALARM   = 10
; -- Daly settings
; Battery capacity (amps), if the BMS does not support reading it
BATTERY_CAPACITY = 50
; Invert Battery Current. Default non-inverted. Set to -1 to invert
INVERT_CURRENT_MEASUREMENT = 1
; -- ESC GreenMeter and Lipro device settings
GREENMETER_ADDRESS  = 1
LIPRO_START_ADDRESS = 2
LIPRO_END_ADDRESS   = 4
LIPRO_CELL_COUNT = 15
; -- HeltecModbus (Heltec SmartBMS/YYBMS) settings
; Set the Modbus addresses from the adapters
; Separate each address to check by a comma like: 1, 2, 3, ...
; factory default address will be 1
HELTEC_MODBUS_ADDR = 1
; --------- Battery monitor specific settings ---------
; If you are using a SmartShunt or something else as a battery monitor, the battery voltage reported
; from the BMS and SmartShunt could differ. This causes, that the driver never goapplies the float voltage,
; since max voltage is never reached.
; Example:
;     cell count: 16
;     MAX_CELL_VOLTAGE = 3.45
;     max voltage calculated = 16 * 3.45 = 55.20
;     CVL is set to 55.20 and the battery is now charged until the SmartShunt measures 55.20 V. The BMS
;     now measures 55.05 V since there is a voltage drop of 0.15 V. Since the dbus-serialbattery measures
;     55.05 V the max voltage is never reached for the driver and max voltage is kept forever.
;     Set VOLTAGE_DROP to 0.15
VOLTAGE_DROP = 0.00

dann hier /data/etc/dbus-serialbattery/config

[DEFAULT]
; --------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT    = 170.0
MAX_BATTERY_DISCHARGE_CURRENT = 170.0
; --------- Cell Voltages ---------
; Description: Cell min/max voltages which are used to calculate the min/max ba>
; Example: 16 cells * 3.45V/cell = 55.2V max charge voltage. 16 cells * 2.90V =>
MIN_CELL_VOLTAGE   = 2.900
; Max voltage can seen as absorption voltage
MAX_CELL_VOLTAGE   = 3.650
FLOAT_CELL_VOLTAGE = 3.450

Da bin ich voll bei dir, meiner Meinung nach hat das damit auch nix zu tun.

Wir haben einen MP 5000

Gebe ich dir recht, da ein MP 5000 eh nicht so viel schafft, dachte ich man kann mit den Werte eh nicht viel kaputt machen, da er die Leistung eh nicht bringt.

Das von dir hört sich plausibel an, ich testet das heut mal, da soll schönes Wetter werden.

@hf_spsler

Sorry für die vielen Antworten, leider kann man den gesamten Text hier nicht einfügen.

@pv-1-0 Alles gut, ich muss mir etwas Zeit nehmen um dir antworten zu können. Bitte hab etwas Geduld, bei mir brennt grad der Baum :grinning:

@hf_spsler alles gut :slight_smile: bin froh wenn jemand drüber schaut :slight_smile:

solange es nur der Baum und nicht der Speicher ist :wink:

Moin,
also, grundsätzlich wird im dbus-serialBattery Treiber die config.default.ini verwendet. Wenn man von der default abweichende Einstellungen vornehmen möchte wird das in der config.ini erledigt. Nach einem Update würden Änderungen in der default mit einer neuen default wieder überschrieben werden.
Ich würde also folgende Einstellungen über die config.ini empfehlen, wie gesagt ist nur eine Empfehlung von mir, (ich liste nur mal auf wo Änderungen erforderlich wären):

[DEFAULT]
; --------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT    = 140.0
MAX_BATTERY_DISCHARGE_CURRENT = 140.0
; --------- Cell Voltages ---------
; Description: Cell min/max voltages which are used to calculate the min/max battery voltage
; Example: 16 cells * 3.45V/cell = 55.2V max charge voltage. 16 cells * 2.90V = 46.4V min discharge voltage
MIN_CELL_VOLTAGE   = 2.900
; Max voltage can seen as absorption voltage
MAX_CELL_VOLTAGE   = 3.470
FLOAT_CELL_VOLTAGE = 3.375

An dieser Stelle müsstest du Erfahrungen sammeln wie dein Akkupack sich verhält. Ggfs. kann es notwendig sein die Ladeströme in Richtung 100% SOC noch etwas zu erhöhen damit das Balancing sinnvoll ablaufen kann. Wird der Ladestrom oben raus zu stark reduziert mindert das zwar zunächst das Auslösen von Überspannungsalarmen, aber bei zu niedrigem Ladestrom fallen die Zellen die nicht nach oben gedriftet sind zu schnell wieder in ihrer Spannung ab:

; --------- Cell Voltage Current limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be in-/decreased depending on min and max cell voltages
; Example: 18 cells * 3.55V/cell = 63.9V max charge voltage
;          18 cells * 2.70V/cell = 48.6V min discharge voltage
;          But in reality not all cells reach the same voltage at the same time. The (dis)charge current
;          will be (in-/)decreased, if even ONE SINGLE BATTERY CELL reaches the limits
; Charge current control management referring to cell-voltage enable (True/False).
CCCM_CV_ENABLE = True
; Discharge current control management referring to cell-voltage enable (True/False).
DCCM_CV_ENABLE = True
; Set steps to reduce battery current
; The current will be changed linear between those steps if LINEAR_LIMITATION_ENABLE is set to True
CELL_VOLTAGES_WHILE_CHARGING   = 3.55, 3.50, 3.45, 3.30
MAX_CHARGE_CURRENT_CV_FRACTION =    0, 0.1,  0.5,    1
CELL_VOLTAGES_WHILE_DISCHARGING   = 2.70, 2.80, 2.90, 3.10
MAX_DISCHARGE_CURRENT_CV_FRACTION =    0,  0.1,  0.5,    1

Da der SOC von JK verhältnismäßig schlecht ermittelt wird und die Lade- Entladeströme nach Zellspannung(en) geregelt werden sollen kann die SOC basierte Lade- /Entladestromkennlinie deaktiviert werden:

; --------- SOC limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be increased / decreased depending on State of Charge,
;              see CC_SOC_LIMIT1 etc.
; Example: The SoC limit will be monitored to control the currents.
; Charge current control management enable (True/False).
CCCM_SOC_ENABLE = False
; Discharge current control management enable (True/False).
DCCM_SOC_ENABLE = False

Ich gehe mal davon aus dass dein Akku im Warmen steht und an der temperaturabhängigen Lade/Entladekurve soweit erst mal nichts verändert werden muss. Ein MP2-5000 kommt beim Entladestrom sowieso nur auf max. 0,4C Entladestrom und max. 0,25C beim Ladestrom.

Ich denke damit ist auf Seiten des BMS erstmal alles soweit gut. Wie gesagt, nach oben raus einfach mal beobachten ob sauber balanciert werden kann. Sollten die Zellspannungen nach oben raus sinken während noch weiter geladen und balanciert wird, muss der Ladestrom ab 3.45V etwas weiter angehoben werden. Anfangs kann es vorkommen dass dann wegen starker Drift Überspannungsalarme ausgelöst werden - das ist jetzt erst mal nicht weiter bedenklich sollte sich aber mit der Zeit legen. Zusätzlich dazu würde ich in den Einstellungen im BMS (via Bluetooth) prüfen ob Kapazität richtig einstellt ist und den Überspannungsalarm auf 3.60 oder 3.55V senken.

1 „Gefällt mir“

@hf_spsler Hallo :slight_smile:

erstmal danke für deine ausführliche Erklärung. So in der Art hab ich mir das schon gedacht, aber sicher wusste ich es nicht, wie das mit der config.default.ini und config.ini so läuft.

Das heißt jetzt, ich starte mal so in der config.ini ?

[DEFAULT]
; --------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT    = 80.0
MAX_BATTERY_DISCHARGE_CURRENT = 110.0
; --------- Cell Voltages ---------
; Description: Cell min/max voltages which are used to calculate the min/max battery voltage
; Example: 16 cells * 3.45V/cell = 55.2V max charge voltage. 16 cells * 2.90V = 46.4V min discharge voltage
MIN_CELL_VOLTAGE   = 2.900
; Max voltage can seen as absorption voltage
MAX_CELL_VOLTAGE   = 3.550
FLOAT_CELL_VOLTAGE = 3.450
; --------- Cell Voltage Current limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be in-/decreased depending on min and max cell voltages
; Example: 18 cells * 3.55V/cell = 63.9V max charge voltage
;          18 cells * 2.70V/cell = 48.6V min discharge voltage
;          But in reality not all cells reach the same voltage at the same time. The (dis)charge current
;          will be (in-/)decreased, if even ONE SINGLE BATTERY CELL reaches the limits
; Charge current control management referring to cell-voltage enable (True/False).
CCCM_CV_ENABLE = True
; Discharge current control management referring to cell-voltage enable (True/False).
DCCM_CV_ENABLE = True
; Set steps to reduce battery current
; The current will be changed linear between those steps if LINEAR_LIMITATION_ENABLE is set to True
CELL_VOLTAGES_WHILE_CHARGING   = 3.55, 3.50, 3.45, 3.30
MAX_CHARGE_CURRENT_CV_FRACTION =    0, 0.1,  0.5,    1
CELL_VOLTAGES_WHILE_DISCHARGING   = 2.70, 2.80, 2.90, 3.10
MAX_DISCHARGE_CURRENT_CV_FRACTION =    0,  0.1,  0.5,    1
; --------- SOC limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be increased / decreased depending on State of Charge,
;              see CC_SOC_LIMIT1 etc.
; Example: The SoC limit will be monitored to control the currents.
; Charge current control management enable (True/False).
CCCM_SOC_ENABLE = False
; Discharge current control management enable (True/False).
DCCM_SOC_ENABLE = False

Ja der Speicher seht im Warmen Keller. Da hat es eigentlich nie unter 15 Grad, eher etwas mehr.

Wenn ich das Go von dir habe spiele ich das ganze ein und teste es :slight_smile:

@hf_spsler hier wären noch ein paar Bilder der Einstellungen in der Remote Konsole, des Neey Balancers und vom JK BMS.

@hf_spsler

Moin, nee du startest mit den Einstellungen die ich dir mühevoll zusammengestellt habe :wink: Siehe dazu weiter oben in meinem letzten Post :blush:

Bezüglich der Einstellungen direkt im BMS und dem Neey, ich habe aktuell noch keine Erfahrungen wie sich zwei Balancer an einem Akku verhalten, bis meine neuen Akkus da sind ist in meinem aktuellen DIY Akku nur das JK BMS der Balancer. Jedenfalls, ich hab die Einstellungen des JK Balancers jetzt mal soweit zurück genommen dass dieser eigentlich nicht mehr anspringen sollte. Da der Neey wesentlich potenter ist sollte nach meinem aktuellen Kenntnisstand nur der Neey balancen.

Die Werte hab ich allerdings mal etwas entschärft. Es reicht wenn der Balancer bei 10mV Differenz aktiv ist. Bei Differenzen unter 10mV braucht m.E. nicht balanciert zu werden. Zudem sollte der Balancer im Bezug auf die Zellspannungen so spät wie möglich beginnen sonst wirkt er u.U. kontraproduktiv. D.h. wie du unten sehen kannst soll erst eine Zellspannung von 3.45V erreicht werden, dann kann er beginnen.

Ich hab jetzt nicht vor Augen ob man den JK BMS Balancer dirket deaktivieren kann, daher hab ich die Werte so hoch gesetzt dass er eigentlich nicht aktiv werden sollte.

Den Überspannungsalarm hab ich sicherheitshalber auf 3,6V reduziert, das reicht masse. Es kann am Anfang sein, dass der Alarm ein paar mal kommt bis alle Zellen sauber balanciert sind.

Hier noch mal die Zelldifferenz auf 10mV gestellt. Alles Andere wäre m.E. viel zu empfindlich.

Zu den Cerbo/VenusOS Screenshots:

Entladestrombegrenzung (DCL) sollte sich mit den Einstellungen im BMS decken. D.h. wenn direkt im BMS "Continued Discharge Curr (A) auf 130A steht, dann dies bitte auch in der config.ini so übernehmen. Oder eben anders herum.
Gleiches gilt natürlich auch für Continued Charge Current (A). Da der Akku 0.5C als Dauerlast/Dauerladen verträgt kann an beiden Stellen eigentlich 140A angegeben werden.
Ich muss jetzt noch mal fragen: Bei dir lädt nur der Multiplus als "Ladegerät" oder gibt es noch MPPT Lader im System?
Befindet sich ein Victron Smart-Shunt im System?
Bei "Steuerndes BMS" sollte das JK BMS eingestellt sein.

Aber an dieser Stelle noch mal der Hinweis, es sind nur Empfehlungen.

@hf_spsler Hallo :slight_smile:

nochmal danke für deine Erklärung.

Wir haben nun direkt die config.default.ini in die config.ini kopiert und alles nach deinen Werten geändert.

Was ich jetzt aber nicht verstehe ist, wiso MAX_CELL_VOLTAGE = 3.470 / FLOAT_CELL_VOLTAGE = 3.375 ?

So kommt man ja fast nie in den Bereich zum Balancen, da er ja bei 3.45V das Balancen anfängt? Und bei dem Float von 3.375 wird der Speicher ja auch nicht mehr Balanced da man unter 3.40V ist oder versteh ich da was nicht so ganz....

Und noch was, du hast nicht den Überspannungsalarm auf 3.6V gesetzt, sondern da schaltet das BMS ab, oder meintest du das damit?

Beim JK-BMS kann man das Balancen in den Einstellungen ausschalten.

Ja wir haben nur den MP als Ladegerät, keine MPPT´s

Einen Victron Smart-Shunt haben wir nicht verbaut

Erfahrungsgemäß gibt es immer ein, zwei Zellen die als erstes die 3,45V erreichen oder überschreiten während die anderen Zellen noch deutlich unter diesem Wert liegen (also, wenn eine Dysbalance vorliegt). Diese Zellen die die 3,45V erreicht oder überschritten haben würden dann auch relativ schnell in Richtung 3,6V nach oben driften. Das ist dann der Zeitpunkt bei dem der Balancer mit seiner Arbeit startet und Ladung aus der Zelle mit dem höchsten Spannungswert in die Zelle mit dem niedrigsten Spannungswert verschiebt. Zeitgleich wird der Ladestrom reduziert um dem relativ schnellen Driften in Richtung 3,6V entgegen zu wirken. Hier müsstest du dann mal schauen ob die anderen Zellen allesamt in ihrem Spannungswert während des Balancen deutlich sinken. Ist das der Fall sollte der Ladestrom bei 3,45V etwas angehoben werden.

Wird die Gesamtspannung MAX_CELL_VOLTAGE x 16 erreicht, ist dem Ladeprozess noch eine Zeit zugeordnet während dieser der Akku auf MAX_CELL_VOLTAGE x 16 gehalten wird um dem Balancer Zeit für seine Arbeit zu geben.

MAX_VOLTAGE_TIME_SEC = 900

Das ist dann der Status "Absorption". Hier sollten zwischen 30- und 90Minuten ausreichen, achtung der Parameter wird in Sekunden in der config.ini angegeben. Ist die Zeit abgelaufen gilt der Akku als voll und wechselt in den Status FLOAT. Im Status FLOAT und bei nach wie vor ordentlich PV Leistung wird der Akku dann auf FLOAT_CELL_VOLTAGE x 16 gehalten und gilt immer noch als voll. Man muss in den Spannungswerten MAX_CELL_VOLTAGE für Aufladeprozess und FLOAT_CELL_VOLTAGE für "Auf voll Halten" unterscheiden. Oder anders gesagt, aufgeladen wird mit einem höheren Spannungswert als "voll lagern".

Würde dann ein einstellbarer SOC Wert unterschritten startet der Prozess "aufladen" erneut. Der Schwellwert ist einstellbar unter:

SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT = 90

Wird der Wert 3,6V bei "Cell OVP" erreicht, wird ein Überspannungsalarm ausgegeben und das BMS stoppt das Laden. Ein Entladen ist aber weiterhin möglich.

Okay das hatte ich jetzt nicht mehr so vor Augen, dann sollte das deaktiviert werden und der Neey übernimmt das Balancen komplett.

Hier sollte man dann im Nachgang noch mal schauen das sich die Einstellungen im MP2 nicht mit denen im BMS beißen, mir fehlen da ehrlicherweise die Erfahrungen in wie weit die Einstellungen des BMS IMMER den Parametern des MP2 überlagert sind.

In unserer aktuellen Anlage haben wir nur MPPT als Lader, erst in der großen Anlage im Keller mit 3x MP2 5000 werden auch die Multiplusse das Laden mit übernehmen.