SunnyBoy Modbus Registers

So I currently have a Sunnyboy inverter up and running but I am having trouble accessing the registers through Ignition OPC tags, has anyone else run into this problem?

Can you clarify what specifically you are having problems with? There are multiple steps to make this work typically. The first step is setting up the device on the gateway. This is usually just a Modbus device, with the IP address specified. You might have to tweak some settings if you get unexpected values back (ones vs zero based addressing, byte swap, word swap, etc…). The next step is to configure a tag. This is also key to understand what the data type is your are reading, and match that with the appropriate information on the Tag definition. This (Modbus Addressing - Ignition User Manual 7.9 - Ignition Documentation) will walk you through some of what that means.

I will take an example for you. Let’s say you are trying to read from Modbus Address 42110, that is 2 words, or 32 bits (unsighned - U32). It might also be worth noting if the Unit ID is 1 or some other value, but let’s assume 3. Being that the address is in the 4xxxx range, it’s a holding register (modbus lingo). If the device is configured with a name as Sunnyboy in the gateway, we would consider the following information from the documentation Iinked above.

  • To address the device in the path, you would begin the path with the device name [Sunnyboy]
  • If you need to add a unit ID, you would add that here 3.
  • Because you have a holding register of 2 words that you want an unsigned 32-bit reading from, we would add: HRUI
  • Finally, add the register number. In this case: 2110

The final path would be [Sunnyboy]3.HRUI2110

When you attempt to do this, you want to use something that is fixed and something you know you can expect to receive. I was looking at a manual for what I believe you are using, and that would be a serial number that you can confirm matches what you expect. If you get something other than that, then you might need to modify the advanced device configuration parameters on the gateway configuration to do the word/byte swapping, or the ones/zero offset. You can check the offset by adjusting the 2110 from above and if the value comes out ok, change it back and check the box on the config page.

Hope that helps get you off the ground.