question

jctibor avatar image
jctibor asked

Victron MODBUS control proper way

Hello guys,


I am using Victron Multiplus + Venus GX in our factory for final factory testing of produced batteries (charge discharge and then export). I have our application which controls this setup via ethernet modbus. In application is the desired grid power (which results in the desired current) and desired charge or discharge voltage.


Sometimes happen some network issue, connection is lost and battery is over charged or over discharged (because voltage setpoint is in remote C# application). I know that Multiplus have some internal limits which can be changed using VEconfigure. But it is uncomfortable because each battery could have different nominal voltage and i would set it from my C# app.


I ask if i am using this remote control in proper way? If there is any mode, that i need to feed Venus with some heartbeat otherwise inverter breaks the power contacts etc.


Could some body give me any suggestion?


Thank you,

Jiri

Venus GX - VGXModbus TCPcontrol
2 |3000

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

1 Answer
matt1309 avatar image
matt1309 answered ·

Hi @jctibor

Got a few suggestions other than the obvious of minimising the chance of network issues etc.

1. The correct option in my mind would be to load VeConfigure as you suggest. How fast are batteries swapped out?

You could automate the loading of VeConfigure settings via VRM and have a template veconfgiure file saved for each nominal voltage/battery chemistry.

I'm not 100% sure if there's an official api endpoint to support load remote veconfigure files however you could write something using selenium (think that supports C#) to load a VeConfigure file via VRM webpage. And you'd just have different template VeConfigure settings saved down for each nominal voltage so when you set nominal voltage in C# it would load that into venus os via VRM remote VeConfigure.


2. Write something internal to Venus os that just externally queries a server for data at start. That way the safety limits are internal/not reliant on external communication.

You could do this using node red on venus os large. Or a more complex version you can write custom driver for venus os (most common community made once was written in python). You could get this to query a server for battery specs and store locally that way the limits will be internal/not impacted by a network disconnection.




2 comments
2 |3000

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

jctibor avatar image jctibor commented ·
Hello,

thank you very much for your anvers.

1. changing limits by VRM portal using selenium is good idea, but not very robust solution and I will not go this way.


2. doing such config at the Venus OS level sounds good. I didn't know that something like this is possible. Maybe I can write a new driver for the inverter which one when he loses communication he stops charging/discharging etc. Thank you and I will study more that.


BR,

Jiri

0 Likes 0 ·
matt1309 avatar image matt1309 jctibor commented ·

It may be worth asking someone at Victron to see if they can add (or explain if it already exists) how to add VeConfigure settings remotely via VRM api.

Less reliant on selenium then.


Victron have a very basic example of a driver (for a tank sensor is their example) but might be a starting point. The easier option would be node red in my opinion but python driver should work.


howto add a driver to Venus · victronenergy/venus Wiki · GitHub

https://github.com/victronenergy/velib_python/blob/master/dbusdummyservice.py

0 Likes 0 ·

Related Resources

Modbus TCP Basics

Venus GX manual

Venus GX product page

Additional resources still need to be added for this topic