SolarEdge Modbus - Float 32 - Slip into two "words"

Hello all,

I’m hoping someone will know what I’m on about here, I’m not sure I do!

I’m trying to communicate with my SolarEdge solar inverter via Modbus. I can now remotely control the inverter, for example, I can put it into Remote Control Mode and then charge the battery from the grid/AC. I now need to write a Float32 value to the inverter to limit the speed it charges the battery.

I’ve got no idea what a Float32 value/number is, however after much googling I’ve found I need to take the decimal number (1000) and convert it to either hex (0x447A0000) or binary (1111101000), I’m unsure which. Then from what I’ve found online, I need to split this into two “words” so the 32-bit value can be written into two 16-bit registers via Modbus.

I’ve been unable to find a converter or the formula online to help with this. It’s also possible I’m completely off and do this all wrong! Has anyone tried to get this to work before?

1 Like

Maybe this can help?

It’s an implementation for a Alfen Pro EV station, but the technique can be used for all modbus devices where you need to set a float32 value in the registers.

Thank you very much, I will look into this!