• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

BMS / Inverter Interaction

Haysdb

New Member
Joined
May 30, 2024
Messages
363
Location
Thailand
Something I’ve never seen discussed is what communication takes places when there’s closed loop communication between an inverter and a BMS. We’re left with setting a couple of voltages in the BMS for high and low “alarms” without understanding what happens at those voltages. Let’s say I set a high voltage alarm (Seplos BMS) at 3.45v. The BMS sends a message to the inverter, but what’s the message, and what do different inverters do with that message? Does the BMS tell the inverter to, for example, go into a constant voltage mode, or reduce the current to some number of amps. My inverter (Deye) has a setting that just says “get your settings from the BMS”, but what all is it paying attention to? Do some inverters simply stop when they get the “alarm” while others are more sophisticated?

With closed loop communication, when will the inverter settings for high and low voltage protection ever get triggered? Hopefully never, but I know some people have to adjust BMS settings to avoid the BMS from shutting off charging. The BMS should never have to do that. That means communication between the BMS and the inverter has failed. The inverter maybe didn’t understand a command.

There’s lots of testing of individual cells with sophisticated battery chargers but there’s not much written about BMS and inverter interaction.
 
Something I’ve never seen discussed is what communication takes places when there’s closed loop communication between an inverter and a BMS. We’re left with setting a couple of voltages in the BMS for high and low “alarms” without understanding what happens at those voltages. Let’s say I set a high voltage alarm (Seplos BMS) at 3.45v. The BMS sends a message to the inverter, but what’s the message, and what do different inverters do with that message? Does the BMS tell the inverter to, for example, go into a constant voltage mode, or reduce the current to some number of amps. My inverter (Deye) has a setting that just says “get your settings from the BMS”, but what all is it paying attention to? Do some inverters simply stop when they get the “alarm” while others are more sophisticated?

With closed loop communication, when will the inverter settings for high and low voltage protection ever get triggered? Hopefully never, but I know some people have to adjust BMS settings to avoid the BMS from shutting off charging. The BMS should never have to do that. That means communication between the BMS and the inverter has failed. The inverter maybe didn’t understand a command.

There’s lots of testing of individual cells with sophisticated battery chargers but there’s not much written about BMS and inverter interaction.

I’d like to know the answer to that, too.

Anyone?

Chris
 
Me three. I've been intending to post this question on the forum. There must be communication protocol references documented somewhere. Ladder diagrams, etc. I'd specifically like to know for EG4 / Lux systems, but I'm sure other brand's data or generic would still be useful.

I've gleaned a few tidbits of information, such as the BMS dictates the charging voltage that the inverter will use and limits the charging current regardless of inverter settings.
 
Last edited:
but what’s the message, and what do different inverters do with that message? Does the BMS tell the inverter to, for example, go into a constant voltage mode, or reduce the current to some number of amps. My inverter (Deye) has a setting that just says “get your settings from the BMS”, but what all is it paying attention to? Do some inverters simply stop when they get the “alarm” while others are more sophisticated?

It's more sophisticated, but I don't know how far I can take it in this reply without losing the audience. Let's start simple.

The limits the BMS communicates with the inverters (and charge controllers more importantly) are varied, but I'll use some example from Victron such as the Distributed Voltage and Current Control parameters. When the battery gets full, or temperature gets a bit high, or whatever the BMS can decide to tell the charge controllers to lower the charge current. This is done by communicating a few different parameters:

- Charge voltage limit (CVL): the maximum charge voltage that the battery currently accepts.
- Charge current limit (CCL): the maximum charge current requested by the battery.
- Discharge current limit (DCL): the maximum discharge current as requested by the battery

The max charge voltage for example is determined by factors such as state of charge, temperature, cell voltages etc. You may for example want to lower charge current once a cell goes over some limit to give the balancer time to get rid of the difference. If the charge controller would just keep sending full current, the cell voltage may rise to the point where the BMS cuts off the battery due to a cell overvoltage situation.

What you do with those parameters depends entirely on what the inverter/charge controller can do with them (software) and liekwise what the BMS supports.
 
I have a suspicion the behaviors vary with the model and brand of the hardware. Alerts from the BMS will show up as information and may require acknowledgement or just be there for your info. But they will also trigger major events in the system, because an alert is a critical issue in almost all cases (or at least it's SUPPOSED to be).

But alerts are just one data component that comes across the comms. Regular updates to the inverter about battery pack voltage, current, health, SoC and other things will cause the inverter to adjust its behavior to suit the state of the batteries.

In My Victron Venus RPi, any over-voltage related alert from my Epoch BMS causes all charging to turn off completely, and the battery charge FETs shut off, which is why I stopped using the BMS. It was much too abrupt and was causing voltage spikes on my DC bus. I could not determine whether any commands are causing the chargers to just slow down or reduce voltage or anything like that. And after typing this, I think I'm going to review that config and see if the BMS is a better fit, now that my cells are all balanced. Imbalanced cells are a thorn in the side of every system.

What I have been told is supposed to happen is the chargers are commanded to stop charging, but maintain enough voltage to support loads, without sending any charge into the batteries. Basically, they are put into "float" mode. But the manifestation of that was nuts on my setup.

My experience right now is based on my RV system. Once I have my home installation complete, I fully intend to hack the comms and find out what exactly is being sent and received.
 
At a minimum, the BMS could broadcast things state of charge, battery temperature, and maybe a few other things. What the rest of the systems do with that, is dependent on what they have implemented. Note that there are various protocols as well: your BMS has to talk the same protocol (or has to be configured to do so) for anything at all to happen. The charge controller could for example interpret the 100% state of charge as a signal to go into float mode without the BMS having an explicit command for this.
 
It's more sophisticated, but I don't know how far I can take it in this reply without losing the audience. Let's start simple.

.......

- Charge voltage limit (CVL): the maximum charge voltage that the battery currently accepts.
- Charge current limit (CCL): the maximum charge current requested by the battery.
- Discharge current limit (DCL): the maximum discharge current as requested by the battery

.....

Thanks for that quick explanation. Now knowing what to look for, I was able to see my battery sending different "CCL" numbers to the inverter to control the charge rate.

But what about the communication between multiple parallel batteries? What does the 'master' BMS communicate to the 'slave' BMSs?

Chris
 
What does the 'master' BMS communicate to the 'slave' BMSs?

Nothing really, it's just to make sure that there is only one battery (Master) communicating the overall state of charge, highest/lowest cell, etc. from all the batteries and that only one is sending the CCL etc. values for all of them.
 
Nothing really, it's just to make sure that there is only one battery (Master) communicating the overall state of charge, highest/lowest cell, etc. from all the batteries and that only one is sending the CCL etc. values for all of them.

There must be something transmitting between the batteries...? Otherwise, how does the master know what the voltage is of the slaves in order to communicate an appropriate CVL / CCL to the inverter? For example, the master battery may be sitting at 54V with a CCL of 60A, but one of the slaves could be at 55V or 56V with a CCL of only 5A. If the master transmits only its own requirement to the inverter, then slaves could potentially get overcharged. Or am I missing something obvious here?

Chris
 
The Master BMS can communicate to an Inverter with a specific protocol or for many BMS a user selected protocol. Keep in mind that the user selected protocol is only used between the Master BMS and the Inverter. The user selected protocol does not affect the protocol used for battery to battery communications, this is fixed and not user selectable. Each BMS manufacturer has their own proprietary protocol that is used for battery to battery communications.

The Master BMS pulls quite a bit of data from each attached battery, some of which are:
1) Battery Voltage
2) Battery Current
3) Battery designed capacity (for example; 100ah, 200ah etc)
4) SOC (state of charge)
5) SOH (state of health, not all BMS report this)
6) Number of installed cells
7) All individual cell voltages
8) Balance state of each cell
9) Number of temperature sensors
10) All temperature sensor values
11) All Alarm faults
12) All Protection faults

The Master BMS consolidates the above and reports to the Inverter that data as "One Big Battery":
1) The average of all battery reported SOC.
2) The average of all battery reported Voltage (should be very close if properly connected in parallel)
3) The "Total" bank/stack capacity (the sum of all battery reported capacities)
4) Max cell voltage and first battery with this cell voltage
5) Min cell voltage and first battery with this cell voltage
6) Max temperature and first battery with this temperature
7) Min temperature and first battery with this temperature
8) Consolidated alarm data.
9) Consolidated protection data.
10) Charge/Discharge control information such as max charge voltage, max charge current and flags to enable or disable charging.
Note: Alarm faults may cause the inverter to alarm without taking any action whereas protection faults may cause the inverter to stop charging or discharging the battery, or stop inverter output if there is no PV or grid power to shift to.

Some BMS (and protocols) may be more detailed than this. What I have provided is more or less what a PACE BMS using the Pylontech protocol provides to an Inverter.

The entire closed loop process in not well documented and what each brand of inverter does with the information is ?????
 
Thanks for the replies.... I'm starting to get a better understanding of the whole communication gamut.

Would it be fair to say that using closed loop (BMS communication) versus a 'dumb battery' setup results in higher useable battery capacity? For example, on my equipment (AOLithium server rack batteries & SRNE ASF series inverter), if I am NOT using communication, the online community suggests bulk charge at 56V and float at 54.6V. When I use BMS communication, the batteries charge & float at 56.4V all day long. Does this higher float result in more capacity??

Chris
 
Thanks for the replies.... I'm starting to get a better understanding of the whole communication gamut.

Would it be fair to say that using closed loop (BMS communication) versus a 'dumb battery' setup results in higher useable battery capacity? For example, on my equipment (AOLithium server rack batteries & SRNE ASF series inverter), if I am NOT using communication, the online community suggests bulk charge at 56V and float at 54.6V. When I use BMS communication, the batteries charge & float at 56.4V all day long. Does this higher float result in more capacity??

Chris
Many Inverters will set the Bulk and Float charge voltages to those reported by the BMS in closed loop. Many BMS/Battery Manufacturers provide software that will allow you to change these values in the BMS, often referred to as "Full CHG Voltage" or "Pack Full Charge Voltage(V)"

Ideally you want to charge cells to at least 3.5 volts (may go to 3.55); 16 cells x 3.5 volts = 56.0 volts. 16 cells x 3.55 volts = 56.8
In addition you want to get cells charged to at least the "Balance Threshold". This is the voltage where the BMS will start balancing cells and depending on the BMS and the type of balancing circuit used can be anywhere from 3.3 volts to 3.5 volts.

You do not want to charge to or exceed 3.65 volts in any cell.

There are a number of factors that will determine the best Bulk and Float charge voltages such as what the BMS Cell Over Voltage Protection setting is. Some BMS have this set at 3.60 while others have it at 3.65. When any cells hits this voltage the BMS will shut down further charging.

The other setting is the "Pack Over Voltage Protection" setting. If the battery as a whole reaches this voltage the BMS will shut down further charging. Many BMS have this set at 58.4 volts

One of the best things you can do is download the BMS software and at least look at it so you know what the parameter settings for your battery are. In addition you can monitor the battery during a charge
 
Would it be fair to say that using closed loop (BMS communication) versus a 'dumb battery' setup results in higher useable battery capacity? For example, on my equipment (AOLithium server rack batteries & SRNE ASF series inverter), if I am NOT using communication, the online community suggests bulk charge at 56V and float at 54.6V. When I use BMS communication, the batteries charge & float at 56.4V all day long. Does this higher float result in more capacity??

No, this only is because settings in the BMS don't match the charge controller. Proper settings should be used at all times in all devices, but the BMS should be considered a last line of defense to protect the cells. I would not have a float at 56.4V at all, anywhere - float should be 3.375V per cell or thereabout, or 54V for a 16s pack. LFP wants and needs to settle.
 
I can confirm the behavior of an inverter (Deye) charging to the over-voltage protection voltage and then just holding it there for 8 hours. Not cool.
 

Attachments

  • IMG_2493.jpeg
    IMG_2493.jpeg
    84.5 KB · Views: 4

diy solar

diy solar
Back
Top