Modbus Registers

The AlphaMon Platform incorporates a table-driven architecture which supports simultaneous connections to multiple Modbus devices, including the AlphaESS range of inverters and generic single phase and three phase DIN rail mounted energy meters.

To understand Modbus registers better, In this section we take a closer look at the structure and function of the exposed registers in a typical AlphaESS inverter + battery installation. The inverter’s internal control systems write updated values to the registers during operation. Most registers are read-only however some registers such as those controlling charge and discharge from the grid are read-write.

In typical installations of AlphaESS SMILE5 5kW systems the inverter is configured to send its real-time data to one of a number of global data centers from where it can be accessed by your computer’s browser (https://cloud.alphaess.com) or via the AlphaESS mobile app. This arrangement allows the average user to ignore the complexities of Modbus registers. However, some users need more granular control of their solar system which may require an understanding of what data is available and what inverter features can be controlled via the built-in Modbus interface.

The connection from the inverter to your home or office Internet router is via the WiFi dongle and/or a hard-wired cable connection (CAT-5 or CAT-6) plugged into the RJ-45 connector located behind the inverter’s wiring panel. Note: If both the WiFi dongle and the hard-wired connection are installed and enabled then the hard-wired connection will take precedence.

However, there are scenarios where you may not want, or may not be able, to connect to the AlphaESS cloud servers via the Internet for reasons that may include:

  • An Internet connection may not be available, such as installations in remote areas
  • You may not wish to share your data, possibly for security reasons
  • Your Internet connection may not be reliable or subject to hacking
  • You may have additional needs not catered for by the AlphaESS web and/or App
  • You may need to aggregate your data with energy meters that aren’t part of the AlphaESS eco-system

In these instances you may choose to access the AlphaESS real-time data via the direct-connect Modbus registers using a Modbus-RTU protocol compatible device such as the AlphaMon Outdoor Module. The AlphaMon is designed to query the AlphaESS’s Modbus registers using a built-in scheduling service that ensures the most important registers are interrogated most frequently to ensure your polled data is always up to date. LoRa and MQTT queries are scheduled independently becasue of the greatly differing bandwidths of the two communication channels. Traffic on both channels is echoed to the Serial USB-C channel in addition to status information such as read/write errors.

The following link allows you to download a .CSV file which lists the standard Modbus registers used by AlphaESS inverters. Each register is 16 bits wide allowing unsigned values of between 0 and 65,535 and −32,768 through to +32,767 for signed values. If larger values are involved then two or more consecutive Modbus registers are used and the calling software must know ahead of time the number of registers to be read and the encoding format of those registers. The linked CSV file has all that information.

To simplify matters, floating point values are normally stored as large integers (without a decimal point) and the calling software must apply a multiplier (typically less than zero) to restore the value to its floating point equivalent. The grid voltage register is a good example of this; the returned integer value (such as 2305) must be multiplied by 0.1 to convert the integer value back to a floating point number (in this case, 230.5 Volts AC).

For the sake of compatibility, the register names included in this list are the same as used by Daniel Young in his excellent Alpha2MQTT app, documented here: https://github.com/dxoverdy/Alpha2MQTT. Many thanks to Daniel for unpicking the complexities of the AlphaESS registers. In keeping with the spirit of Daniel’s work the AlphaMon Platform has been designed as an open architecture solution so that you can integrate your own hardware and software extensions.

Owners of an AlphaMon module won’t need to .work directly with these registers as they are already built into the software. However, if you wish to build your own app or test some of your inverter’s features such as enabling and disabling battery charging from the grid the you should find the list very useful.

Most of the register names are self explanatory and the list includes the following fields:

  • Modbus Port – sometimes called the Slave ID (typically 0x55 for all registers)
  • Register Address – a 16 bit hexadecimal address. This is the starting address if the register uses more than one consecutive address.
  • Register Name – Note that the second part of the name gives a good indication of which part of the AlphaESS the data relates to (PV solar, battery, general system information, etc.)
  • Size – the number of consecutive 16 bit data registers that must be read to retrieve the full register value.
  • Decimals – The number of decimal places that should be applied to the formatted data. Note that most registers containing numeric values are stored as either short (16 bit) or long (32 bit) integer values.
  • Multiplier – Use this to multiply the returned integer value to convert it into a floating point value. For example, multiple the data returned from register 0x0014 (REG_GRID_METER_R_VOLTAGE_OF_A_PHASE) by 0.1 to calculate the AC voltage is Phase A. e.g. 2415 x 0.1 = 241.5 Volts AC.
  • UoM – Unit of Measure. This field can be used a suffix when displaying the returned data in a user interface such as a web page,


Built better by Solargy Innovation (Australia)

innovation@solargy.com.au

Powered by WordPress.