I’m just setting up a small 48V system with a 100/20 48V solar charger, cerbo and BMS system. There is also an MP2 3000 with ESS assistant loaded.
At the moment, the MPPT is not charging the battery, as the voltage limit appears to be wrong.
This seems to be the problem, but where is this configured?
Also system seems to be taking power from ‘grid’ instead of PV to charge the battery - not surprising as the MPPT is being fed the wrong limit voltage.
Hi Matthias,
Yes the battery BMS is connected to the GX device, and is sending the DVCC information in CAN message 0x351: [0x351,0x24,0x02,0xb4,0x0a,0xac,0x0d,0xe0,0x01] #[pdu,chg volt/0.1,charge A/0.1,dischg A/0.1, dischg vlt/0.1]
Bytes 3 & 4 (italics) in the above are updated with the current request,as can be seen in the second screenshot above, which is from the Cerbo using dbus-spy on the BMS. There the volt limit is correctly set at 54.8V, and the current limit is 57.2A.
Exactly as expected.
The 54.8V is a constant, and is not adjusted by the BMS. Current control is used for limiting the charge.
BTW, Firmware in the Cerbo is V3.60~25
Hub/charge voltage: This appears to be the limit set by the ESS, and it’s not the limit set by the BMS.
The reason the/Dc0/ Voltages are the same is cause the battery has stopped charging due to a false limit.
Can’t edit that one either. However, it’s suggesting this limit is comming from the BMS, which does NOT agree with the BMS’s D-bus values.
Being slightly fed up with this, I edited the BMS charge voltage from 0x224 (548) to 0x234 (564) and all of a sudden the MPPT charge limit voltage is now 54.8V !!
Another possible Bug: I have the system functioning, however, it still seems to want to charge from grid rather than solar, however whilst implementing & Testing the Alarms for the BMS,I found that though the Battery High Voltage & cell High Voltage alarms are set, the Solar charger is not turned off!! - at this stage the inverter is forced to invert only, and remains on as should be. However, in the event of a high voltage alarm from cell or battery, then the solar charging (as well as the inverter/charging) should be forced off!
Lack of this action from the Cerbo / ESS means that the BMS is also going to have to force CCL to zero in the event of a high voltage, and possibly also reduce the VCL by a fixed amount…
0x35c also has flags for enable charge and discharge, turning off the enable charge flag, also does not seem to turn off the MPPT!!
Amongst the other documentation I’ve found on the CAN - BMS implementation is this: By way of example, if the BMS sends a CVL of 58V, the MPPT solar charger will add 0.4V to the CVL for a operating charging voltage of 58.4V. At the same time, the inverter/charger will try and hold the voltage down to the CVL value of 58V, feed-in limits and maximum inverter power permitting. As a result, the MPPT solar charger will keep operating at its MPP point, pushing power onto the DC-bus, while the inverter/charger works to remove that power from the DC-bus by inverting it and feeding it to the AC side.
If we are to interpret this as the inverter WILL NOT export any power to grid UNLESS the battery voltage is above the CVL, then this means that to get excess export, the CVL must be dynamic. This may well explain why there is still no export with the grid target set to -150W. Does this still apply in “External Control” mode of the ESS?
Given the bug described above, where the system CVL is not the same as the BMS sent CVL, this is going to make life difficult…
Thinking more on the dynamics of the CVL requirement, my BMS software calculates the CCL, so to derive the CVL from this:
Rules:
Below 3.35V per cell - CVL fixed at 16x3.35 = 53.6V
Between 3.35 and 3.55 CVL = Battery voltage plus CCL*R_battery
3)At 3.55V per cell CVL Fixed at 56.8V
(Topic moved to beta testing as deemed more relevant).
Having done the dynamic voltage setting, and reset some fixed limits, the CVL dynamic setting now appears to be working. I can only conclude that the original 52.5V limit must have been a default setting from some part of the original setup - not a bug. However, the Lack of turning off of the Solar charging with High (cell) voltage Alarms should be looked into.
To export an offset of 0.4V is added to solar chargers, over-voltage is the mechanism used for exporting, this only applies when exporting is enabled, not under other conditions.
If you enable exporting if it was not previously enabled on a system with a charged battery, there tends to be a short period where the system will start to charge the battery again, briefly, as it starts to export. Once this stabilises, the multi by exporting, will draw down the DC voltage and the battery should stop charging.
There is a constant tug of war between the chargers and the inverter as one tries to push the voltage up, while the other draws it down.
Victron have always recommended that BMS’s use a dynamic CVL as that is the best way to control current, not setting CCL to 0.
I have systems that do both, and that certainly is the case.
If you disabled solar chargers with a high cell warning or alarm, you would not be able to service loads from PV. That isn’t desirable behaviour for most installations. The system should be able to manage this, which seems to be the case at least for the supported batteries we have used.
Hi Nick,
I disagree with you about disabling the solar charger under alarm conditions.
The 0.4 over-volt from the MPPT / solar chargers compared with the inverter is required to make the export work nicely, BUT this should not take the system over the MAX voltage set. So perhaps the inverter ought to deduct the 0.4V rather than the MPPT add this?
Maybe this needs to be addressed this way…
All batteries have a range of (safe) voltages for charging. Like Pylontech (15S): 52.5V - 53.5V.
So the minimum voltage for which the SOC will be 100% is 52.5V. Also the delta of the (safe) range is 1V in the example above.
So, set the charging voltage to the low end of the range and then those 0.4V will not be a problem, even if the export is dropped suddenly.
What do you think ?..
The system does not sustain the overvoltage. It is drawn down, I presume you aren’t using a “supported” battery?
On a 16 cell battery you are talking about 0.02V per cell.
I will test again on mine tomorrow and report back.
Hi Alex, that would of course work, but requires manual intervention in capping the DVCC charge voltage limit.
My points are:
Overvolt alarms should inhibit ALL sources of charging, this is not currenly the case
The enable charge flag from the BMS should be implemented in Venus, this is not inhibiting solar charging.
(Note: I have not yet tested either the alarm or inhibit charge flag on the Inverter’s charger)
It would be more appropriate for the inverter to deduct 0.4V from the CVL set by the BMS, rather than the MPPT adding this. This results in the same system operation, but with reduced chance of tripping the battery high voltage alarm, and NOT requiring the DVCC limit to be capped manually.
You may be right, because, from my experiences, many, if not all BMSes already send as default CVL the maximum upper limit…
So the inverter deducting 0.4V will still be in a good range for 100% charging.
Having tried and failed to get the ESS> External control mode working, I found with External Control mode set, the Solar charger Voltage limit was at 0V this morning, and the inverter set back to 52.5V. I reset to ‘optimised without battery life’ and the solar charger went back to 52.5V also.
This is despite the BMS still sending the correct CVL (54.9V).
This behavior is weird, and seems to indicate the 52.5V is coming from either the inverter or the ESS assistant.
Hi Nick,
The BMS and Battery are my own design, therefore I have control over the messages sent to the Cerbo. CAN messages are derived from information accessible on the net, similar to the Pylonech battery spec.
Problem is that the CVL is NOT always picked up by the Cerbo, despite it being correct in the D-Bus messages from the BMS-CAN interface in the Cerbo.