diy solar

diy solar

Schneider Conext XW

Near the top of the page where it shows the path,
"Solar Equipment Reviews and Technical Support > Grid-tie Inverters >"
Click on "Grid Tie Inverters".
You will be brought to the page of all the threads under that heading. At the top, under the title "Grid Tie Inverters" there is a box to type in. Enter a title to create your new thread under the same heading as this one. As you are asking for tech support for a grid tie inverter, it is a reasonable place for this thread. I put my system build thread under "Show and Tell".

I do agree, the voltage measurement error is a bit annoying, but it does not stop us from using the device effectively. That is one of the least annoying software "Features" I have found in the XW-Pro. Basically, when I first started using the device and noticed the error between my BMS and the XW, I verified it with my Fluke meter. I found they were both off a little. I was able to calibrate the BMS, but not the XW-Pro. So when I entered my desired voltages, I offset my entries by the known reading error in the XW. Not idea, but it works just fine.

I later noticed that the error in the XW is not consistent. I think they are actually trying to compensate for wire resistance. When there is a big change in current, the voltage change lags it a little. For "accurate" voltage readings, they recommend having the Battery Monitor that measure the voltage at the cells.
 
fyi --
Mon, 24 Oct 2022 21:32:14 DEBUG JKBMS2 tot=57.13v low=3.357v high=3.363v delta=0.011v soc=92%
c1=3.36v c2=3.357v c3=3.358v c4=3.359v c5=3.362v c6=3.36v c7=3.362v c8=3.36v c9=3.362v
c10=3.36v c11=3.359v c12=3.362v c13=3.362v c14=3.362v c15=3.363v c16=3.362v c17=3.359v

Mon, 24 Oct 2022 21:32:31 DEBUG JKBMS tot=57.03v low=3.346v high=3.36v delta=0.014v soc=88%
c1=3.346v c2=3.352v c3=3.358v c4=3.357v c5=3.351v c6=3.353v c7=3.36v c8=3.354v c9=3.353v
c10=3.353v c11=3.36v c12=3.355v c13=3.354v c14=3.358v c15=3.358v c16=3.354v c17=3.352v
 
"For "accurate" voltage readings, they recommend having the Battery Monitor that measure the voltage at the cells." from #201 comment
That paste is just the logging I have going on.
 
fyi --
Mon, 24 Oct 2022 21:32:14 DEBUG JKBMS2 tot=57.13v low=3.357v high=3.363v delta=0.011v soc=92%
c1=3.36v c2=3.357v c3=3.358v c4=3.359v c5=3.362v c6=3.36v c7=3.362v c8=3.36v c9=3.362v
c10=3.36v c11=3.359v c12=3.362v c13=3.362v c14=3.362v c15=3.363v c16=3.362v c17=3.359v

Mon, 24 Oct 2022 21:32:31 DEBUG JKBMS tot=57.03v low=3.346v high=3.36v delta=0.014v soc=88%
c1=3.346v c2=3.352v c3=3.358v c4=3.357v c5=3.351v c6=3.353v c7=3.36v c8=3.354v c9=3.353v
c10=3.353v c11=3.36v c12=3.355v c13=3.354v c14=3.358v c15=3.358v c16=3.354v c17=3.352v
At the same time you took these reading, what did the XW-Pro report as the battery voltage, and what did the MPPT 140-60 report for the battery voltage? I see differences from 0.1 to even 0.2 volts between the JK-BMS, my Fluke meter, the Bouge DC charge controller, and the XW-Pro, depending on if the system is charging, idle, or inverting. I just make sure all my settings are taking any offset into account to be sure I stay in the safe limits for the batteries as well as the rest of the connected equipment.

See my latest post where my solar charge controller pushed the battery voltage higher than the XW was set for. My NMC cells act very different from your LFP cells, but the idea is the same. And my cheapo Chinese charge controller is not talking to any other device. They have no idea it is even there, except the voltage climbs faster and kept climbing after the XW stopped charging. I was a little concerned if everything would play nice together. So far so good, except for the one glitch where the charge controller settings reverted back to default.

While your cell balance does not look too bad, it is actually more spread than I would expect from a well matched LFP pack. At 3.35 volts per cell, you are just getting into the top knee range. What do you have the active balance settings at? I would try setting it to minimum delta voltage, and starting at 3.33 volts or less, and let it work for a few days. Each time the system charges up over 3.33 volts per cell, the active balancer can work on pulling your delta even closer. My NMC cells have a much greater voltage change, and the JK was able to pull them to under a 0.004 volt delta from lowest to highest in just a day. I have a cable joining the lower 10 cells to the top 4 cells, so there is a little more resistance there than the buss bars between the other cells. That was causing a case where the JK balancer thought cells 10 and 11 were both a little high while charging, and a little low while discharging. So I ended up setting my cell delta voltage limit to 0.008 volts, and the balancer has not even kicked on now for months. Even as my cell voltage goes from 4.08 volts down to 3.64 volts and back, day after day, the balancer does not need to do a thing. These cells are way better matched to each other than I ever could have hoped for.

My new bank only has the dumb Daly BMS with only 0.060 amps of resistor balance current, only when the voltage is up high. And I can't remote read the cells. 2 weeks ago, after more than a year in service, I pulled the balance lead and checked with my Fluke meter. All the cells in the new bank are also still balanced within 0.006 volts.
 
With a WattNode, it can do zero export by controlling the sell power to zero the power at the grid. But sadly, it still does not fix the AC coupled charging issue. If you are DC coupling with a Schneider MPPT, it will work just fine though.

For it to do AC coupled controlled charging, you need some sort of programmable controller to turn on charging and adjust the charge rate. I am using a Triangle Research Nano-10 PLC with a real time clock option. This little controller is able to talk Modbus TCP to the XW inverter via the Gateway or an Insight module. Another use on this forum is doing it with a Raspberry Pi.

In my case, I have it running a small loop that reads the wattage at the grid, battery, and inverter output, as well as a pair of watt meters measuring the loads in my main panel. A WattNode would also work, but they are $600 or so, I am using a pair of single phase units from Amazon at $18 each.
Is there a write-up of how you’ve built your system? I’m planning to add some AC-coupled PV behind a hybrid and looking for alternatives to charge charge the battery with excess power before exporting once the battery is full.

The Conext XW Pro seems like one of the most capable rigs out there (in it’s price range) but I’m still not clear on how easily it can be configured to deliver the capability I’m seeking…
The only problem is they actually don't know the difference between importing or exporting power, so I ended up running all of the loads through then CT's. So I see the power actually being used from the main panel. The math is different, but no more or less complex.

Once I know how much power the house is using, and how much the solar PV is producing beyond what the backup loads are using, I do a little math and decide if there is enough solar to turn on charging. If there is it commands a bulk charge cycle. Then it adjusts the charge rate every 5 seconds to keep the power exporting between 50 and 100 watts.

Is this ‘math’ embodied in the form of code? Scripts? Commands? I more or less understand what would be involved in setting up a Rasberry-Pi-based programmable energy monitor such as 400bird has done.

I’ve also read enough documentation that Victron makes this capability much easier to configure / access with their Multiplus II.

I’m trying to understand how you set up your Conext XW Pro to do the same and where that approach would stack up in the range or ‘extreme-DIY’ to turnkey…
If there is too much load in the backup loads panel, I do have it stop charging, but if there is too much back in the main panel, I only drop charging to 5%, about 7 amps. But Solar still needs to be making more than the backup loads panel is taking, so I am not charging from grid power. Just loads in my main panel will be taking some grid power before 4 pm. After 4 pm, I have it stop charging and I start using the battery in any loads are greater than solar supply. I do this because from 4 pm to 9 pm the time of use rate is nearly double.
This is exactly the capability I’m looking to establish…
Without the PLC controlling it, the XW does a decent job of supplying the loads in the panel after it, but you need a WattNode or other controller to have it help supply loads on the grid side. You can tell it a fixed amp value to send back to the grid side, but it won't adjust for load changes on it's own like it does for the load output side.
I need offset of grid-side load, so trying to understand the easiest way to achieve that with the Conext XW Pro. And the Wattnode is pricey, so if there is a much lower-cost way to achieve the same functionality, I’m interested…
 
I have a thread here on my system, but it is getting pretty long, so it may be hard to find all the info in there.
The Nano-10 PLC is pretty easy to program, if you have done Basic language before. It's base "program" is actually relay ladder logic, where you connect together contacts, coils, sequencers, and timers to make a virtual circuit. Here is an online PDF manual for the PLC.
What makes this brand of PLC work for this application is that a virtual relay coil can be a block of Basic code. My current code uses a 10 step sequencer that advances every half a second. That makes my 5 second loop. Each step of the sequence runs a small code block. Here is the code to read the PZEM power meters that measure the power being used from my main breaker panel.

' Read the data from rhe PZEM-016 power meters
' L1 at address 4 and L2 at address 5

DM[39] = 41
DM[40] = 51

READMB2 11,4,0,DM[41],10

If STATUS(2) = 1 THEN
DM[39] = 1
N = DM[44]
SETHIGH16 N,DM[45]
ELSE
DM[39] = 0
ENDIF

DELAY 20

READMB2 11,5,0,DM[51],10

If STATUS(2) = 1 THEN
DM[40] = 1
S = DM[54]
SETHIGH16 S,DM[55]
ELSE
DM[40] = 0
ENDIF


X = (N + S)

I'm sorry I don't comment my code much at all, but this gives you an idea of how things work in the Tri Logi language.
The "DM[XX]" values are global variable that can be seen and used in every code block. DM 39 and 40 are just used for status. The monitor software also allows you to see these values in real time, so by having them set and changed as a function runs, I can see if the function is being accessed and if it worked properly. In this module, it sets them to the arbitrary numbers 41 and 51 before it tries to read the power meters. If it gets a proper read from the L1 power meter, it then sets DM[39] to a 1, if the read has an error, it sets it to zero. DM[40] does basically the same for the L2 power meter. It happens so fast that when it get's a good read the DM[39] just shows a "1" all the time, but there is a 20 millisecond delay before it reads the second meter, so I see DM[40] show "51" for a blink before it goes back to a "1". This was put in just for troubleshooting, but it is nice to have it still in there so I know it is getting valid data from the power meters. If I see zero pop up, then a power meter did not respond, or the data was corrupt etc. In that case, I have it set to just export 0.5 amps to the main panel.

The "READMB2" function reads data from the modbus RS-485 port.

READMB2 11,4,0,DM[41],10

The "11" is com port 11, but in reality it is com port 1, but adding 10 tells it to use binary instead of ASCII data on COM1. The 4 is device id 4 on that bus. Each serial RS-485 bus could have 255 total devices on it. Right now I have 2, but I may also add a couple more power meters to read the output from the Enphase solar directly, and maybe for the DC charge controller as well. Then the "0" is starting from register "0" in that device. then "DM[41]" is where it starts putting the data it reads. Finally, the "10" on the end is read 10 registers. So it puts them in the next 9 DM locations as well. Each Modbus register is 16 bits long. But some of the data is 32 bits. I'll get into that more shortly.

The PLC maintains a bunch of "STATUS" registers. STATUS(2) is the last serial read status. 1 was a read success and 0 means read failed.

To make use of the data read from the device, you need the Modbus Map of the device. In this case, I know the registers contain Volts, amps, watts, kilowatt hours, Hz, and power factor. Watts is a 32 bit value using the 4th and 5th 16 bit registers. The letter variables A through Z in the PLC can store 32 bit values, So I set "N" to the low 16 bit value from register 4, and then "SETHIGH" load the upper 16 bits, with the value from register 5. So "N" is now the 32 value of Wats from the L1 power meter. The next part is just doing the same thing for the L2 power meter. Another "fun" part is that the data is all integer, and the PLC can only do integer math. To get around this, many of the values have multipliers. For example, the watts read from the PZEM meters is x10 meaning 5 amps is 50. But in the XW-Pro, current is in milliamps, so sell current of 12 amps is 12,000 milliamps. This is why you need 32 bit values. And you also have to watch out for overflows when doing internal calculations. When I was first trying to figure out the grid sell current, I wanted to keep as much precision as possible, and one of the internal values ended up going too high and it wrapped around to a negative value. Oops. I shifted it over by a factor of 100, and it still has resolution better than 10 milliamps so it is fine.
 

Attachments

  • PLC-Ladder.PNG
    PLC-Ladder.PNG
    19.2 KB · Views: 7
  • PLC-monitor.PNG
    PLC-monitor.PNG
    10.1 KB · Views: 7
It is certainly not the most elegant code, and I do want to go through and clean it up and comment it better. There is an initialize block that sets up a bunch of things. It creates a virtual com port #4 which is actually Modbus over TCP IP to talk to my Schneider equipment. That base com port is pointed at the IP address of the Schneider Gateway box. Then the device id tells it which device on the Schneider Xanbus it will talk to. The default device id for the first XW-Pro inverter is "10". This is the routine for reading the data I need from the XW-Pro.

' Read grid watts
DM[9] = &H66

READMB2 4,10,DM[9],DM[10],2

G = DM[11]
SETHIGH16 G,DM[10]
DM[13] = G

' Read Battery Watts
DM[9] = &H54

READMB2 4,10,DM[9],DM[10],2

B = DM[11]
SETHIGH16 B,DM[10]
DM[14] = B

' Read output watts
DM[9] = &H9A

READMB2 4,10,DM[9],DM[10],2

O = DM[11]
SETHIGH16 O,DM[10]
DM[15] = O


SETLCD 3,1," Grid Batt Out "

H$ = STR$(G)+" "+STR$(B)+" "+STR$(O)+" "

SETLCD 4,1,"W "+H$

' Read AC input voltage
DM[9] = &H62

READMB2 4,10,DM[9],DM[10],2

Y = DM[11]
SETHIGH16 Y,DM[10]

' Read Battery Current
DM[9] = &H52

READMB2 4,10,DM[9],DM[10],2

T = DM[11]
SETHIGH16 T,DM[10]

I know this code is a bit messy, but at least it has a few comments in it.

I set DM[9] to the address I want to read from the XW-Pro. It has hundreds of registers, not just 10 like in the PZEM meters. So the frist read is the "Grid Watts" on the AC1 port of the XW-Pro. The read looks just like the serial read because of the virtual com port. It does not care that it is getting the data over ethernet or serial.

READMB2 4,10,DM[9],DM[10],2

It reads from COM4, device id "10" from register stored in DM[9], puts the data in DM[10], but it is two 16 bit registers again, so the high byte is then in DM[11] as well. " ,2 " told it to read the 2 registers.

I then use the same functions to put the total 32 bit value of grid watts into the 32 bit variable "G".
Repeat this for the battery watts, and the output watts.

The end of this routine displays the data on a virtual LCD screen. The larger PLC's from Triangle Research have a 4 line x 20 character display on them, the little Nano 10 does not have it, but it thinks it does. And the PC monitoring software shows this screen. So I can watch it show the live data on that screen on my PC as it is running. That is all the "SETLCD" commands. Later I also tacked on reading the battery current and grid voltage at the end of this routine. I do need to clean up this code and make it a little nicer to read.

As the sequencer steps along, it reads all the data into the variable, then decides if it should be charging or exporting, based on the power readings and the time of day from the real time clock. Then it calculates the values and sends the commands to the XW-Pro to set the charge mode and power, or the export current amount. And it just keeps looping every 5 seconds.

400bird's Raspberry Pi solution is a lot more polished and does much more than my simple PLC arrangement. The two function blocks I showed here are ReadPZEM and GetWatts. The rest of my function blocks are
Initialize, Event Count, Clear LCD ,Connect TCP, ReadC4, Close_conn, GetTime, GetBvolts, GetCrgCurr, SetCrgCurrent, ForcBulkCharge, ChargeNoFloat, Start_Charge, SetSell

I wrote this code as I was learning how to use the Nano-10 PLC and Modbus, so my code is pretty rough, and get's better as I added new functions. At some point I want to write it from scratch, but it is working so good, I hate taking it offline. Here is a screen grab of the ladder logic part as it is running right now.
View attachment 118450
The blue highlighted is logic true contacts and energized coils, the green is the current function being run. It steps along pretty quick at 0.5 second clock, but that is actually really slow for the PLC. Here is the small live monitor screen.
View attachment 118451
That is the variable page and the fake virtual LCD screen. Click the arrows at the bottom and it has more pages where you can even see all the DM values in real time. It even has a web server, and you can look at most of the data by looking at the web page. I have not coded HTML, but evidently you can create a custom web page and load it in the memory to create a custom web service GUI. I'm not that good at coding.

If you want to go this route, I will share my code, but it is not elegant or easy to follow. And it would need to be modified to fit your system. For example, I just have the ip addresses just hard coded in, and use fixed ip on my network, so DHCP can't mess it up. My PLC is at x.x.x.5 and the Gateway is at x.x.x.144 And the power meters come set to device id 1 and you have to use their software and a usb to RS-485 adapter to get into them and set their id's to different values to have more than one connected.

Looking at this probably makes most people want to run away. If you want to dig deeper, you can actually download a student version of the Tri PLC software and it can simulate code on your PC. To get the full programming code you either have to buy a PLC or pay for a code license. The Nano-10 was about $250 USD with the real time clock module. But that was almost 2 years ago now. With the purchase of the PLC, you get a full version of the programming environment. It actually runs in Java. Once the PLC is programmed, it runs on it's own and the PC does not need to do anything, I only look in on it from time to time now that it is pretty stable. It has crashed on me twice, but I traced that to an odd divide by zero which I finally found and then added code so it will use a fixed value if it reads a zero that the comm error routine does not catch.

So let me know if you want to go down this further. Maybe we can start a new thread about programming devices to control the XW-Pro inverter.
 
It is certainly not the most elegant code, and I do want to go through and clean it up and comment it better. There is an initialize block that sets up a bunch of things. It creates a virtual com port #4 which is actually Modbus over TCP IP to talk to my Schneider equipment. That base com port is pointed at the IP address of the Schneider Gateway box. Then the device id tells it which device on the Schneider Xanbus it will talk to. The default device id for the first XW-Pro inverter is "10". This is the routine for reading the data I need from the XW-Pro.

' Read grid watts
DM[9] = &H66

READMB2 4,10,DM[9],DM[10],2

G = DM[11]
SETHIGH16 G,DM[10]
DM[13] = G

' Read Battery Watts
DM[9] = &H54

READMB2 4,10,DM[9],DM[10],2

B = DM[11]
SETHIGH16 B,DM[10]
DM[14] = B

' Read output watts
DM[9] = &H9A

READMB2 4,10,DM[9],DM[10],2

O = DM[11]
SETHIGH16 O,DM[10]
DM[15] = O


SETLCD 3,1," Grid Batt Out "

H$ = STR$(G)+" "+STR$(B)+" "+STR$(O)+" "

SETLCD 4,1,"W "+H$

' Read AC input voltage
DM[9] = &H62

READMB2 4,10,DM[9],DM[10],2

Y = DM[11]
SETHIGH16 Y,DM[10]

' Read Battery Current
DM[9] = &H52

READMB2 4,10,DM[9],DM[10],2

T = DM[11]
SETHIGH16 T,DM[10]

I know this code is a bit messy, but at least it has a few comments in it.

I set DM[9] to the address I want to read from the XW-Pro. It has hundreds of registers, not just 10 like in the PZEM meters. So the frist read is the "Grid Watts" on the AC1 port of the XW-Pro. The read looks just like the serial read because of the virtual com port. It does not care that it is getting the data over ethernet or serial.

READMB2 4,10,DM[9],DM[10],2

It reads from COM4, device id "10" from register stored in DM[9], puts the data in DM[10], but it is two 16 bit registers again, so the high byte is then in DM[11] as well. " ,2 " told it to read the 2 registers.

I then use the same functions to put the total 32 bit value of grid watts into the 32 bit variable "G".
Repeat this for the battery watts, and the output watts.

The end of this routine displays the data on a virtual LCD screen. The larger PLC's from Triangle Research have a 4 line x 20 character display on them, the little Nano 10 does not have it, but it thinks it does. And the PC monitoring software shows this screen. So I can watch it show the live data on that screen on my PC as it is running. That is all the "SETLCD" commands. Later I also tacked on reading the battery current and grid voltage at the end of this routine. I do need to clean up this code and make it a little nicer to read.

As the sequencer steps along, it reads all the data into the variable, then decides if it should be charging or exporting, based on the power readings and the time of day from the real time clock. Then it calculates the values and sends the commands to the XW-Pro to set the charge mode and power, or the export current amount. And it just keeps looping every 5 seconds.

400bird's Raspberry Pi solution is a lot more polished and does much more than my simple PLC arrangement. The two function blocks I showed here are ReadPZEM and GetWatts. The rest of my function blocks are
Initialize, Event Count, Clear LCD ,Connect TCP, ReadC4, Close_conn, GetTime, GetBvolts, GetCrgCurr, SetCrgCurrent, ForcBulkCharge, ChargeNoFloat, Start_Charge, SetSell

I wrote this code as I was learning how to use the Nano-10 PLC and Modbus, so my code is pretty rough, and get's better as I added new functions. At some point I want to write it from scratch, but it is working so good, I hate taking it offline. Here is a screen grab of the ladder logic part as it is running right now.
View attachment 118450
The blue highlighted is logic true contacts and energized coils, the green is the current function being run. It steps along pretty quick at 0.5 second clock, but that is actually really slow for the PLC. Here is the small live monitor screen.
View attachment 118451
That is the variable page and the fake virtual LCD screen. Click the arrows at the bottom and it has more pages where you can even see all the DM values in real time. It even has a web server, and you can look at most of the data by looking at the web page. I have not coded HTML, but evidently you can create a custom web page and load it in the memory to create a custom web service GUI. I'm not that good at coding.

If you want to go this route, I will share my code, but it is not elegant or easy to follow. And it would need to be modified to fit your system. For example, I just have the ip addresses just hard coded in, and use fixed ip on my network, so DHCP can't mess it up. My PLC is at x.x.x.5 and the Gateway is at x.x.x.144 And the power meters come set to device id 1 and you have to use their software and a usb to RS-485 adapter to get into them and set their id's to different values to have more than one connected.

Looking at this probably makes most people want to run away. If you want to dig deeper, you can actually download a student version of the Tri PLC software and it can simulate code on your PC. To get the full programming code you either have to buy a PLC or pay for a code license. The Nano-10 was about $250 USD with the real time clock module. But that was almost 2 years ago now. With the purchase of the PLC, you get a full version of the programming environment. It actually runs in Java. Once the PLC is programmed, it runs on it's own and the PC does not need to do anything, I only look in on it from time to time now that it is pretty stable. It has crashed on me twice, but I traced that to an odd divide by zero which I finally found and then added code so it will use a fixed value if it reads a zero that the comm error routine does not catch.

So let me know if you want to go down this further. Maybe we can start a new thread about programming devices to control the XW-Pro inverter.
I appreciate all this detail. I’m still on the fence about which way to go and giving myself another ~year to finalize my plan.

The Conext XT Pro seems like one if the most capable solutions out there (at it’s pricepoint) but if I’m understanding correctly, exploiting it’s full capability (and especially it’s ‘zero-export-through-variable-charger-power’ capability) requires diving into writing custom controller code - either on a Rasberry Pi or a PLC.

That’s not an absolute showstopper for me but it is a significant hurdle.

Victron’s solution also requires purchasing a separate controller / brain (Cerbo GX) costing $200-300 but there is no need for programming, per se. There are a range of scripts / preprogrammed functionality that can be chosen from and configured through parameter settings.

Among other things, I’m considering how my system would be maintained / repaired if I’m ever out of the picture for an extended period…

Thanks again for taking the time to explain and I may wade through your build thread to get a better picture of the path you followed…
 
If I remember correctly, you don't have any solar right now?

If that's the case, you can go with DC coupled solar (through a charge controller) and get the wattnode. This would cover all your loads in the main panel, allow selling to the utility (if that's something you desire) and would not require the PLC or Raspberry Pi solution or any custom software.

You could also go with a combo of AC and DC coupled solar as long as you are ok with only charging from the DC coupled solar when on-grid. When off grid, the XW will charge from the AC coupled solar as expected.
 
If I remember correctly, you don't have any solar right now?
Grid-tied under NEM since 2016…
If that's the case, you can go with DC coupled solar (through a charge controller) and get the wattnode.
I’ve added a small 1kW DC coupled array charging a 14kWh LiFePO4 battery last year. Looking to add another 1-2kW but AC-coupled this time.
This would cover all your loads in the main panel, allow selling to the utility (if that's something you desire) and would not require the PLC or Raspberry Pi solution or any custom software.
The new zero-export / limited-export solution recently introduced by Hoymiles also used a WattNode and means I can pretty safely and easily add additional AC-coupled solar while limiting export to my cap of 3.5kW max.

So at this stage, the two things I’m trying to achieve with a hybrid like the Conext XW Pro or the Victron Multiplus II are:

-offset grid-side compensation overnight (using CT sensors or a meter like the WartNode).

-capture as much of the AC-coupled energy that otherwise would be throttled to charge the battery (without importing).

The ideal system would ramp all the way to my 3.5kW cap after offsetting loads then start using the excess power beyond that 3.5kW limit to charge the LiFePO4 battery, then begin to throttle AC-coupled output once the LiFePO4 battery is fully charged (from the Hoymiles export-limiter) until consumption exceeds generation at which point the hybrid takes over to offset as much of the consumption as it can.

Hybrids pretty much cannot throttle AC-coupled PV connected on their AC output when grid-tied, but these new zero-export / export-limited Microinverters change that equation.

You could also go with a combo of AC and DC coupled solar as long as you are ok with only charging from the DC coupled solar when on-grid. When off grid, the XW will charge from the AC coupled solar as expected.
Off-grid is not a priority for me. The 1kW array of DC-coupled PV will give me enough to keep the fridges powered through the rare extended PSPS event (with pretty much any half-decent hybrid inverter).

Most important feature is grid-side offset consumption (as easily, painlessly, and cost-effectively as possible).

And after that, the next most important feature I’m looking for is to absorb excess AC-coupled energy beyond my 3.5 kW export cap by charging the battery from AC-power (variable charge-power modulated by CT sensors or energy meter like WattNode).
 
fafrd... Why don't you list all of the equipment you have in use now with a description of what it is doing and what you are trying to achieve? What is the wattage of the original grid tie system? What kind of inverter(s)? It can probably be AC coupled into the battery system as well. If you have some DC coupled now, is there a reason you don't want to just add more DC coupling?

I really thought about adding more Enphase microinverters to my system, but due to my back feed power limitation, I decided to try the DC coupling into the battery. That way I don't have to deal with increased back feed to my main panel. It sounds like you ae in a similar situation. What are you using as the battery inverter now? Does it support frequency shift while off grid? Can it back feed to the grid input? Those two questions are what pushed me to using the Schneider XW-Pro. Out of the inverters I have looked into, not many do the grid input back feed very well. The XW-Pro does, but it needs at least a Watt0Node to do zero export as it has no built in provision for remote CTs.

I now have 1,000 watts of panels doing DC charging. Those panels at this time of year (early winter) in Sunny So Cal are producing 3,500 to 4,000 watt hours a day. But I have my XW-Pro outputting and exporting a total of more like 13,000 watt hours per day. The 1,000 watts of DC panels are supplying 25% to 30% of the power I am charging into the battery. So it is only working because I have the external PLC controller commanding the XW-Pro to charge from the grid tied solar. as well. Right now, 11:12 am, my batteries are getting 1,700 watts from the Enphase Solar and just 520 watts from the DC panels. Even going to 2,000 watts of DC panels, I would not make enough without the AC coupled charging. And that is the one place the XW-Pro fails. It needs the external control to charge from AC while on grid.

I am a bit torn at this point. I have been asked by a friend to help him design a system from scratch for a new home. He also needs to run a well pump, so I am really leaning on the XW-Pro for it's massive surge capacity. I have him doing an energy audit to see if one will be enough. He does have grid power, but it is not reliable where he is. My thinking now is 2/3rds of his solar will be DC coupled into the batteries, and 1/3 will be on Enphase microinverters. It will only charge from DC, and we will use the Watt Node as it is a fully supported Schneider configuration, so he will be able to get direct support if there are any issues. The smaller amount of Enphase will cover most of his loads while the sun is up, but there won't be much extra. Any extra will just back feed the grid. And that AC coupled power just makes it so the DC panels are basically only charging the battery during the day. as the XW will just sit idle until the sun goes down. Then the batteries will power the house on the output side, and even back feed the main panel if needed. Once I know his load profile, we will plan out the amount of solar panels. And we will most likely use the Schneider charge controllers as well, just to keep it simple. Ease of use and having factory support is a bit more important than the lowest cost for this guy.

My system is a bit more budget minded. I don't mind having to tinker with my own custom stuff to keep it working.
 
fafrd... Why don't you list all of the equipment you have in use now with a description of what it is doing and what you are trying to achieve?
My 2016-era grid-tie is 4kW of panels hooked up through 6 BDM300x2 Microinverters that max out at 3.5kW.

That’s tied into the mains panel and I don’t really want to mess with it.

Those Microinverters are from before frequency shift was a thing, so they can only be turned on or off, no throttling.
What is the wattage of the original grid tie system? What kind of inverter(s)? It can probably be AC coupled into the battery system as well. If you have some DC coupled now, is there a reason you don't want to just add more DC coupling?
Very good question. I currently have 1.1kW of DC-coupled PV charging my 24V DIY 14kWh LiFePO4 battery and that little system is working well to capture all of the solar energy generated during the day and to use it to offset load starting at peak hours and into the night (I’m using a pair of GTIL inverters to offset consumption).

There are a few reasons adding DC-coupled is not my preferred path forward:

-the new system is being built to accommodate a planned-for EV. I figure I can charge the EV ‘for free’ during peak hours of 1-4pm or 12-5pm, meaning minimum charge power of 1.44kW will be getting absorbed when I’ve got oodles of energy to spare. I’d rather spend the money in an EV than a larger house battery.

-throttling and controlling AC-coupled output has always been the challenge of a hybrid-based system, but the new zero-export / limited-export Microinverter solutions take that problem off if the table - WattNode monitors export power in real-time and throttles back Microinverter output to stay under programmed limit whenever output power approaches the limit that has been set (3.5kW in my case). That system works with or without a hybrid inverter present. The hybrid offers after-sundown consumption offset as well as (possibly) increased energy capture, but is not required to govern export.

-the new array is on a different roof orientation with much earlier solar power generation, and I’d like to export all that early-morning power rather than capture it. Perhaps there is a way to monitor DC-coupled production with a hybrid inverter to export it, but doing so with Microinverters seems much easier and fool-proof…

-the roof I’m dealing with suffers from severe morning shading (moving shade) so I want to stick to 1S strings. The currents add up quick when you go 1S with DC-coupling, while Microinverters give you easy 1S strings…

I really thought about adding more Enphase microinverters to my system, but due to my back feed power limitation, I decided to try the DC coupling into the battery. That way I don't have to deal with increased back feed to my main panel. It sounds like you ae in a similar situation.
Yes, I’m in an identical situation. What’s different from even a year ago is the emergence of the Hoymiles zero-export / limited-export Microinverter-throttling solution. You can now add as much Microinverter-based AC-coupled power into your main panel or anywhere in your system without worrying that you will ever exceed your export cap.
What are you using as the battery inverter now? Does it support frequency shift while off grid? Can it back feed to the grid input?
I knew I’d be putting together a more permanent, higher-quality system once we get the EV, so my little 1kW ‘learner system’ is based on cheap Chinese boxes.

I’m using a 60A Epever SCC to charge the LiFePO4 (which I’ve been surprisingly happy with) and a pair of 1kW GTIL inverters to offset consumption.

Very bare-bones. Grid-tied so never off-grid and no frequency-shift. CT sensors limit power to offset consumption, so no export.

SCC controls a pair of relays to turn on the GTILs either when battery nears full or based on time (beginning of Peak Period). SCC monitors battery voltage and shuts down the relays when the battery nears empty as the night unfolds.

I’ve planning to replace this little cheapo rig with a proper hybrid which is why I’ve been looking at the Conext XW Pro and the Multiplus II.

Those two questions are what pushed me to using the Schneider XW-Pro. Out of the inverters I have looked into, not many do the grid input back feed very well. The XW-Pro does, but it needs at least a Watt0Node to do zero export as it has no built in provision for remote CTs.
When you put that system together, I believe the XW Pro was the most cost-effective hybrid offering that capability (Solark being the other, but at a much higher pricepoint).



I now have 1,000 watts of panels doing DC charging. Those panels at this time of year (early winter) in Sunny So Cal are producing 3,500 to 4,000 watt hours a day. But I have my XW-Pro outputting and exporting a total of more like 13,000 watt hours per day. The 1,000 watts of DC panels are supplying 25% to 30% of the power I am charging into the battery. So it is only working because I have the external PLC controller commanding the XW-Pro to charge from the grid tied solar. as well.
So you’ve got the PLC programmed to monitor DC-coupled production, AC-coupled production, and controlling the XW Pro to export exactly the amount of energy you want going to grid on a minute-by-minute basis? Sounds ideal but I’m concerned about the complexity of programming a PLC and how anyone else could support the system if something ever goes wrong when I’m indisposed.

If I can get a system delivering similar capability based on settings and configurations alone (which would be documented in user manuals) that seems like it would be better in my situation.

Right now, 11:12 am, my batteries are getting 1,700 watts from the Enphase Solar and just 520 watts from the DC panels. Even going to 2,000 watts of DC panels, I would not make enough without the AC coupled charging. And that is the one place the XW-Pro fails. It needs the external control to charge from AC while on grid.
Yes, I remember understanding that from you in earlier discussions on the subject.

To be clear, ‘AC-coupled charging’ in your case means consuming some of your Enphase energy to add additional battery charging, right? You’re never actually importing from grid to charge your battery, are you?

In my case, I’m not concerned about backup power and not concerned about keeping my house battery charged. The primary purpose of the house battery is to capture excess AC-coupled energy that is exceeds my 3.5kW export cap and would otherwise be getting throttled / wasted.

So, for example, with a system like yours if I could control the XW Pro to maintain charge power so that export power remains at ~3.45kW, Microinverters would never get throttled and slightly more than 100% of excess AC-coupled production would be used to charge the house battery.

Once the house battery is fully-charged, XW Pro would no longer be able to consume needed charge power so at that point, Export would reach the 3.5kW limit and the Microinverter-based throttling would kick in.

But it sounds like I’d need a PLC or Rasberry Pi controller programmed up to make all of this happen and I’m hoping solutions emerge that are more turn-key before I take the plunge…
 
(Continued - first post I’ve ever made that exceeded to 1000-character limit :)).

i am a bit torn at this point. I have been asked by a friend to help him design a system from scratch for a new home. He also needs to run a well pump, so I am really leaning on the XW-Pro for it's massive surge capacity. I have him doing an energy audit to see if one will be enough. He does have grid power, but it is not reliable where he is. My thinking now is 2/3rds of his solar will be DC coupled into the batteries, and 1/3 will be on Enphase microinverters. It will only charge from DC, and we will use the Watt Node as it is a fully supported Schneider configuration, so he will be able to get direct support if there are any issues. The smaller amount of Enphase will cover most of his loads while the sun is up, but there won't be much extra. Any extra will just back feed the grid. And that AC coupled power just makes it so the DC panels are basically only charging the battery during the day. as the XW will just sit idle until the sun goes down. Then the batteries will power the house on the output side, and even back feed the main panel if needed. Once I know his load profile, we will plan out the amount of solar panels. And we will most likely use the Schneider charge controllers as well, just to keep it simple. Ease of use and having factory support is a bit more important than the lowest cost for this guy.
He’s lucky to have you as a friend…
My system is a bit [b\more budget minded. [/b]I don't mind having to tinker with my own custom stuff to keep it working.
I’m similar to you in that regard. Especially in the face of rapidly-evolving technology and product offerings, I’m reluctant to spend on top-tier equipment.

My current view is that the arrival of EVs supporting bidirectional charging and bidirectional chargers supporting V2H will mark a milestone of maturity worth investing in.

In a future where you’ll be able to charge up your EV during the day and use that stored energy to offset consumption overnight, AC-coupled seems to be the superior choice. That, coupled with the new zero-export / limited-export solutions emerging for Microinverters have changed my thinking about adding more AC-coupled solar power versus more DC-coupled…

But easy variable AC-coupled charge-power is an important feature of my architecture and that capability is still unfortunately harder than it ought to be…
 
Correct, I never charge from grid power. Before 4 pm, I will consume some grid power, but it is technically powering the house, and the solar power is going to the battery. Not that the electrons really know which way to go though. But my logic works like this. As long as the Enphase solar is producing at least 300 watts, the XW-Pro will stay in charge mode. If the loads in the main panel exceed production, those loads can pull from the grid, while the XW will stay charging at just 300 watts. But if production falls any lower, it will stop charging.

My DC charging is currently unknown to both the XW-Pro and the PLC. It is just "Bonus Energy". Today, to tomorrow morning is going to be a really good test. We had clouds all day and the Enphase production was way down. The 4,800 watts of panels on the Enphase system made just 12.6 KWHs all day today. Yesterday the system made 19.4 KWHs. But what really cuts into this is that the Enphase inverters are also powering the whole house. So that only left 6.1 KWHs from the AC coupled Enphase to charge the battery bank. That alone would never make it through the night. Now the production from the DC panels was also cut down a chunk by the clouds, but, everything the DC panels did produce, all goes into the battery, no matter what. So I still got 2,116 watt hours from the 1,000 watts of DC panels.

If we look at just the battery charging, the SilFab panel Enphase system managed 6.1 KWH out of 4,800 watts of panels, just 1.27 sun hours.
The 1,000 watts of NewPowa panels on the BougeRV charge controller did 2,116 or 2.12 sun hours. Even though it is a small addition of panels, it makes a big difference in the battery charging when the production is down. Of course the Enphase powered panels actually did better, but they powered the house with 6.5 KWHs straight to the breaker panel. This is why I like having both in the system. I think I will be adding another 1,000 watts of DC panels. I think that will be enough to basically zero my entire year electricity consumption.
 
Correct, I never charge from grid power. Before 4 pm, I will consume some grid power, but it is technically powering the house, and the solar power is going to the battery. Not that the electrons really know which way to go though.

But my logic works like this. As long as the Enphase solar is producing at least 300 watts, the XW-Pro will stay in charge mode. If the loads in the main panel exceed production, those loads can pull from the grid, while the XW will stay charging at just 300 watts. But if production falls any lower, it will stop charging.
I’m not understanding why you’d charge using grid power (ever). At least over winter once peak periods are done with.

A kWh consumed during the day is the same as a kWh consumed at night, do what is the benefit of consuming a kW to charge during the day to offset a kW you’d otherwise consume at night?

Of course, if you always want a full battery heading into night fir backip power, that’s a different story…
My DC charging is currently unknown to both the XW-Pro and the PLC. It is just "Bonus Energy".
Same here, except it’s my only battery / consumption offset energy…
Today, to tomorrow morning is going to be a really good test. We had clouds all day and the Enphase production was way down. The 4,800 watts of panels on the Enphase system made just 12.6 KWHs all day today. Yesterday the system made 19.4 KWHs. But what really cuts into this is that the Enphase inverters are also powering the whole house. So that only left 6.1 KWHs from the AC coupled Enphase to charge the battery bank. That alone would never make it through the night. Now the production from the DC panels was also cut down a chunk by the clouds, but, everything the DC panels did produce, all goes into the battery, no matter what. So I still got 2,116 watt hours from the 1,000 watts of DC panels.

If we look at just the battery charging, the SilFab panel Enphase system managed 6.1 KWH out of 4,800 watts of panels, just 1.27 sun hours.
The 1,000 watts of NewPowa panels on the BougeRV charge controller did 2,116 or 2.12 sun hours. Even though it is a small addition of panels, it makes a big difference in the battery charging when the production is down. Of course the Enphase powered panels actually did better, but they powered the house with 6.5 KWHs straight to the breaker panel. This is why I like having both in the system. I think I will be adding another 1,000 watts of DC panels. I think that will be enough to basically zero my entire year electricity consumption.
I’m already at net zero on an annual basis but if I go through with the additional power I’m considering, I should be net zero on a monthly basis except possibly for December.

The idea is to use that excess / free power to recharge an EV… (meaning offset increased consumption).
 
I’m not understanding why you’d charge using grid power (ever). At least over winter once peak periods are done with.

A kWh consumed during the day is the same as a kWh consumed at night, do what is the benefit of consuming a kW to charge during the day to offset a kW you’d otherwise consume at night?

Of course, if you always want a full battery heading into night fir backip power, that’s a different story…
This part came down to a balancing act. It does not happen often, but it did for a little yesterday with the heavy clouds were rolling through.

You are correct, ideally I would never want to consume any grid power at all, but if I have to, I really want to do my best to only consume while at the lower cost time of use, which happens to be 8 am to 4 pm while solar should be producing. MY PLC can't predict the future. If I really wanted to get into the tiny details, I guess I could look at the battery state of charge, and try to guess if it will make it past 9 pm. But my consumption is not that well controlled. So what I ended up doing is to allow up to 300 watts of grid consumption before 4 pm, on the cheapest time of use rate. 300 watts is pretty small. If grid consumption exceeds that, it turns off the charging completely. There is no smaller step in the XW-Pro. So the grid power at that point falls to say 10 watts of consumption again.

As soon as I hit 4 pm, and the rate goes up, it will then use battery power to zero the grid consumption. I originally had it doing that only to 9 pm, then it would let the battery rest. But then I was wasting a lot of PV Solar power that I was able to get on good solar production days. If I left the battery closer to full after 4 pm, and then ran on grid power, even at the cheap rate, the next ay, the PV Solar would top out the battery very early, and I would be exporting a lot of power. But that export only credits at the cheap rate, which works out to less than 80% of what I have to pay in the evening cheap rate. So the net cost is still more than using my own stored power all night. I only stop running off the battery when it falls to about 45% state of charge. I want to stop there for 2 reasons. The shorter cycle will help make the batteries last longer, and the remaining 15 KWHs in the battery should get me through a night until the sun comes up if there is a grid outage after the PV solar stops producing power.

The main difference between loads in my main panel and loads in the backup sub panel is that the XW-Pro and the PLC see them differently. While I am directly measuring all of the load in the main panel, I only know the difference between the Enphase production and the loads in the backup panel. So when I see 300 watts coming into the system on the backup loads, The PLC has no idea if that is just 300 watts of solar power with no loads running, OR if the solar is producing 3,000 watts, but the backup loads panels is consuming 2,700 watts of it. The end result is the PLC ASSUMES that anything coming in means the solar must be producing at least 300 watts. But if power starts going out to the backup loads panel, then the solar might not be making 300 watts, so I stop charging. In most cases, my base house load on the backup panel rarely ever falls below 600 watts. So even if I see zero on the backup panel, and I have the XW-Pro charging at 300 watts, the Enphase solar is probably producing over 600 watts. While this means the system as a whole is probably consuming 300 watts from the grid, I can safely assume that loads are using more than that 300 watts, and all the charge power is offset by solar production.

Here is what my battery voltage and current did yesterday. The XW graph is updated every minute, but my PLC was making adjustments every 5 seconds.
XW-Batt_10-31-22.PNG
You can easily see where it was dropping charge power to the 300 watt mark (7 amps) and from 2:30 to 3 pm it dropped it to zero. Then it was able to charge a little again before the 4 pm charge stop time hit. It never did get the battery full to 57 volts yesterday, but it looks lie it just might make it to sun up again. It stops inverting if it drops to 51 volts, it is at 52.1 volts at 4:43 am as I type this. The small spikes going down from 4 am to 8 am yesterday were the furnace starting since it was pretty cold out.
 
That’s a very capable rig. I’m going to only comment on small snippets of your post to keep under 1000 characters…
MY PLC can't predict the future. If I really wanted to get into the tiny details, I guess I could look at the battery state of charge, and try to guess if it will make it past 9 pm.
In June through September, I understand the benefit of wanting the battery charged up enough to offset all load from 4-9pm, but come October 1, there is pretty much no benefit. I begin my discharge / load offset as soon as the battery is charged up to a threshold voltage and keep it going until the battery is drained (below a second threshold voltage).

Over the summer months, I raise the ‘excess power’ threshold so that discharge does not begin until the battery is ~70% filled and in addition, my SCC has a second voltage threshold linked to a timer, so I can force discharge to continue all the way to 9pm unless the battery gets deeply depleted (~14%).

But come October 1, I’m perfectly happy if my battery just bounces between ~45% and 55% all day long (and runs out well before 9pm…).
300 watts is pretty small. If grid consumption exceeds that, it turns off the charging completely. There is no smaller step in the XW-Pro. So the grid power at that point falls to say 10 watts of consumption again.
Ah, I was not aware of that. So minimum charge power of 300W. Snd what is the step size above that, still 300W? So 0W, 300W, 600W, 900W…?

The smartEV chargers have a minimum charge current of 6A (1440W @ 240VAC) but support 0.6A / 144W increments above that minimum (so 1440W, 1594W, 1738W…).
As soon as I hit 4 pm, and the rate goes up, it will then use battery power to zero the grid consumption. I originally had it doing that only to 9 pm, then it would let the battery rest. But then I was wasting a lot of PV Solar power that I was able to get on good solar production days.
Exact same here (but only June 1 through September 30). Come October 1, my rate difference between 4-9pm and off-peak hours is less than 10%, so I really don’t care that much whether I’ve preserved enough battery power to get all the way to 9pm or not…

And in peak summer months, I’ve generally got enough stored power to run into the wee hours of the morning…
If I left the battery closer to full after 4 pm, and then ran on grid power, even at the cheap rate, the next ay, the PV Solar would top out the battery very early, and I would be exporting a lot of power.
Same here, though in my case there is never any export from DC-coupled power. If the battery charged up full enough that the SCC enters CV mode, that translates to the SCC starting to throttle PV input power and potential power generation being wasted. My battery is big enough that that pretty much has never happened (at least while we are home and consuming power).

The new system I am planning should end up completely charging the battery during clear summer days, so I’m trying to plan for that…

The shorter cycle will help make the batteries last longer,
Yes, that’s the same reason I change my voltage / SOC limits come October 1 to stress my battery less…. Over Peak Summer Months, I set the limits to assure the battery reaches 4pm with enough charge to get all the way to 9pm. Come October 1, I’ll change the limits so that the battery starts discharging as soon as it is ~70% full and stops discharging at ~40% (regardless of what time that is).
and the remaining 15 KWHs in the battery should get me through a night until the sun comes up if there is a grid outage after the PV solar stops producing power.
And that’s the other important difference n our setups - I don’t have backup power and don’t feel the need for it.
Here is what my battery voltage and current did yesterday. The XW graph is updated every minute, but my PLC was making adjustments every 5 seconds.
View attachment 118664
It’s a very nice set up. I’m still not getting a clear-enough idea what is involved in setting up and programming a PLC to achieve this. You shared your code, so that’s not my question - more one of the development environment - is there a tutorial somewhere about how to program a PLC?

If I understand correctly how the Conext XT Pro supports variable charging, the same could be achieved with a number of 300W chargers controlled by relays, corrrect?

It’s kludgy and it’s unclear whether a PLC could be programmed to control relays as flexibly / easily as a Rasberry Pi, but I’m looking forward to how my system will work once I have a V2H-capable bidirectional EV charger as part of my system and trying to decide on the best architecture to assure al the various pieces work effectively with each other (and how best to control them).
 
Sort of. The resolution of the XW-Pro is 1% steps, but the minimum is 5%. The maximum charge current is 140 amps, so it starts at 7 amps and has 1.4 amp steps above that.

I had thought about using 3 or 4 chargers. If you get a 2.5 amp, 5 amp, 10 amp, and 20 amp then you could do binary count and get any current from 0 to 37.5 amps in 2.5 amp steps.

Even in Winter, the off peak to peak rate swing is still a 55% jump for me. Until I know how long my batteries will last, it makes it tough to calculate how much I am saving or is it wasting? At this rate, I will break even if the cells last 5 years, and they might make 7 years. In the Chevy Bolt, they are warrantied for 10 years, so I am hopeful.
 
Back
Top