question

hartmut avatar image
hartmut asked

CAN Bus communication via VE.Can with Pylontech BMS

First of all, many thanks to the forum operators for providing and maintaining this valuable source of information. Unfortunately, my search for my specific problem did not yield any hits. Therefore I would like to make a direct inquiry in this regard:

My plant consists of:

1 x Victron Color Control GX

4 x Victron BlueSolar MPPT 150/35 solar charge controller 12/24/36/48V 35 A.

2 x Multiplus-II 48/3000/35-32 inverter (master - slave)

3 x Pylontech LiFePO4 storage 48V 2,4 kWh US2000 Plus

...the latter communicate via Pylontech BMS with VE.Can.


By a lucky coincidence I was able to get another LiFePO4 battery, also 48V and 150Ah. For this package I developed my own BMS and implemented a MCP2515 Can module for communication with the CCGX. Basically, this system is equipped with enough safety mechanisms regarding all-pole disconnection via solenoids, over- and undervoltage monitoring as well as a balancing system, so that the system could sufficiently take care of its own safety... However, CCGX, for example, only reports half the currents during charging and discharging in this constellation.


Although I found a lot of information about communication through their document VE.Can-registers-public.pdf, I find the initial basic communication a bit difficult, especially in the context of the NMEA 2000 standard used. So I would be grateful for any sample code that includes, for example, the following parameters:


- Registration of the system to CCGX with ID and an individual name.

- transmission of the measured current, so that it is added to the one transmitted by Pylontech.

- Transmission of SOC


from here I could certainly figure out all the other steps on my own.


And one final question: at what interval is the stay alive message sent from CCGX to the BMS?


Many thanks and greetings

Hartmut

CCGX Color Control
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

3 Answers
jacola avatar image
jacola answered ·

Hi Hartmut,
the keepalive seems to be sent every second.


I have programmed a simple CAN sniffer on a linux box and managed to decode the pylontech protocol (there was some sources with info online also) ..
Are you sure Color Control will accept reports from TWO batteries ?

In my view you might be best off to be 'man in the middle', implement the pylontech protocol to the victron side, use a second can interface for the pylons and add the values together and present ONE battery to victron.

Johannes

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

mvader (Victron Energy) avatar image mvader (Victron Energy) ♦♦ commented ·

Hi both,

> Are you sure Color Control will accept reports from TWO batteries ?


i have the answer for you: it does not accept that.

0 Likes 0 ·
maureralex avatar image
maureralex answered ·

Hi

Iam also developing a BMS interface to Ve.Can my problem is I can not shut down the Battery Power to the Multiplus.

Is there any way for a Heartbeat Setting in Venus Os that Victron will shut off if the CAN connection get lost?

Or is it possible to receive CAN frames in NodeJs then I could do it with NodeJs?


Thanks for any answer

Alex


2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

jacquesvdm avatar image
jacquesvdm answered ·

Hi. @hartmut Did you come right with it? I also have two battery banks that I want to combine so that the Cerbo only sees it as one. I need to just "provide" the Cerbo with a CAN bus interface with data so it sees it as a single battery bank. Getting comms (serial) to my batteries is not a problem. It is the CAN comms to the Cerbo that I need to do. Maybe someone else has done it? Looking at using an ESP32 or a raspberry pi. Thanks so long, Jacques

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.