---
title: "ABB TRIO-50.0/60.0 Solar Inverter (Gt03 Modbus Map)"
description: "ABB TRIO-50.0/60.0 inverter over Modbus RTU (RS-485): AC power, energy, grid values, DC input, temperatures, alarms. Enable Modbus in Aurora Manager LITE."
url: "https://taphome.com/en/compatibility/abb-trio-solar-inverter-gt03/"
language: en
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","inverter","solar","photovoltaics","3-phase","energy-monitoring","daisy-chain"]
  questions: ["How to integrate an ABB TRIO-50.0 or TRIO-60.0 solar inverter with TapHome?","What does the ABB TRIO Gt03 TapHome template measure?","How to connect the ABB TRIO inverter to TapHome via Modbus RTU and RS-485?","How to switch the ABB TRIO-50.0/60.0 RS-485 line from Aurora to Modbus RTU?","Does the ABB TRIO Gt03 template work with the TRIO-20.0 and TRIO-27.6?","Why does the ABB TRIO inverter answer Modbus exception code 2?","How to terminate the RS-485 line when several TRIO inverters are daisy-chained?","What does the derating code of the ABB TRIO inverter mean?"]
---

# ABB TRIO-50.0/60.0 Solar Inverter (Gt03 Modbus Map)

Communication: Modbus RTU

## Integration guide

The ABB TRIO is a three-phase, transformerless grid-tied photovoltaic string inverter. TapHome reads it over Modbus RTU on an RS-485 line, using the manufacturer's proprietary register map **version Gt03.0** ("Modbus RTU Slave"). The manufacturer's documentation for the TRIO range is now published by FIMER.

The template reads AC output power and energy, today's production, grid voltage, current and frequency, power, voltage and current of DC input #1, two inverter temperatures, and decodes the inverter's global state, alarm state and derating state into TapHome notifications. It only reads — it does not switch the inverter on or off and does not limit its power.

### Which TRIO models the template fits

The Gt03.0 register map is the manufacturer's map for these inverters:

| Model | Minimum inverter update version (Europe) | USA | Japan |
|-------|------------------------------------------|-----|-------|
| TRIO-50.0-TL-OUTD | 1711C | 1711D | 1708B |
| TRIO-60.0-TL-OUTD | 1715B | 1715C | — |
| TRIO-TM-50.0-400 | 1741E | — | — |
| TRIO-TM-60.0-480 | 1741F | — | — |

> [!WARNING]
> The template name also lists TRIO-20.0 and TRIO-27.6, but the manufacturer's register map for **TRIO-20.0/27.6-TL-OUTD** (version GT05, revision 1.6) is a different map: its measurements sit at input registers 0100–0174 (for example global state 0124, daily energy 0132, grid voltage 0144, grid power 0148, inverter temperature 0164). The registers this template reads (1050–1122) do not appear in that map, so on a TRIO-20.0 or TRIO-27.6 the template is not expected to return values. Verify on the inverter before relying on it.

## Hardware connection

> [!WARNING]
> Work inside the inverter's wiring area may only be carried out by a qualified installer, with the inverter disconnected as described in the manufacturer's product manual.

### RS-485 lines on the TRIO-50.0/60.0

The inverter has two RS-485 lines, **RS485-1** and **RS485-2**. Each line runs either the proprietary "Aurora" protocol or Modbus, set separately per line. Both lines can be used for monitoring devices, configuration and power management commands; they differ only in that firmware upgrades must go through RS485 (1), and ABB monitoring devices must be wired to RS485 (1). If an ABB monitoring device already uses RS485 (1) with the Aurora protocol, connect TapHome to RS485 (2).

Each line can be connected in two equivalent ways on the communication board:

- **Terminal block a11** — terminals **+T/R**, **−T/R**, **RTN** and **SH**, one row per line. Use the SH terminal for the cable shield.
- **RJ45 connectors** — **a16** for RS485-1 and **a14** for RS485-2. Each line has two RJ45 sockets (A) and (B); they are equivalent and serve as the IN and OUT of a daisy chain.

![TRIO-50.0/60.0 communication board: RS485-1 and RS485-2 terminal block a11 (+T/R, -T/R, RTN, SH) and RJ45 connectors a14 and a16 with IN/OUT daisy chain.](https://taphome.com/images/compatibility/abb-trio-solar-inverter-gt03/wiring-rs485-terminals-trio-50-60_hu_b1faa0d31af2f42.jpg)

| Inverter terminal | RS-485 bus to TapHome |
|-------------------|-----------------------|
| +T/R | A (+), positive data |
| −T/R | B (−), negative data |
| RTN | Reference (GND) |
| SH | Cable shield |

### RJ45 pinout

| RJ45 pin | Signal |
|----------|--------|
| 3 | +T/R |
| 5 | −T/R |
| 7 | Reference (RTN; labelled GND COM in the TRIO-20.0/27.6 manual) |
| 1, 2, 4, 6, 8 | Not used |

![RJ45 pinout for the RS-485 line (pin 3 +T/R, pin 5 -T/R, pin 7 GND COM) and shielded twisted-pair cable signals +T/R, -T/R, GND COM, SH on the TRIO-20.0/27.6 inverter.](https://taphome.com/images/compatibility/abb-trio-solar-inverter-gt03/wiring-rs485-rj45-pinout_hu_75cbe41e420216ff.jpg)

Use an RJ45 connector with a metal body so that the shield stays continuous. For long distances the manufacturer prefers the terminal block with a shielded twisted-pair cable of 120 Ω characteristic impedance. The shield must be continuous along the whole line and grounded at a single point.

### Daisy chain and line termination

Several inverters can share one RS-485 line in a daisy chain (in–out). The manufacturer recommends a line length of at most 1000 m and allows at most 62 inverters on one RS-485 line.

Terminate the line with the 120 Ω termination switch on the **last inverter** of the chain — **a12** (S6) for RS485-1, **a13** (S5) for RS485-2 — by setting it to ON. The line must also be terminated at the first element, which is normally the monitoring device, here the TapHome side of the bus. With a single inverter, set its termination switch to ON.

![TRIO-50.0/60.0 RS-485 daisy chain with 120 ohm termination switches a12 and a13 set ON on the last inverter and on the monitoring system.](https://taphome.com/images/compatibility/abb-trio-solar-inverter-gt03/rs485-termination-switch-trio-50-60_hu_2693fe3d11f6f4ef.jpg)

Inverters ship with the termination switches set to OFF. When an inverter is added to an existing chain later, set the termination switch of the previously last inverter back to OFF.

## Configuration

### Enabling Modbus RTU with Aurora Manager LITE

Out of the factory, both RS-485 lines of the TRIO-50.0/60.0 use the **Aurora** protocol, so Modbus does not answer until it is enabled. The serial line — protocol, address (Slave ID), baud rate, parity and stop bits — is configured with the manufacturer's **Aurora Manager LITE** software. The PC connects to the inverter's RS-485 line through a **PVI-USB-RS485_232** signal converter. The advanced (installer) settings in Aurora Manager LITE are password protected; the password is obtained by registering on the manufacturer's registration website.

1. Connect the PC with the PVI-USB-RS485_232 converter to the RS-485 line of the inverter.
2. In Aurora Manager LITE, set the protocol of the line that TapHome will use (RS485-1 or RS485-2) to **Modbus RTU Slave**. RS485-2 also offers "Modbus SunSpec"; the template uses the proprietary Modbus RTU map, not SunSpec.
3. Set the **RS-485 address** of the inverter to a fixed value from **2 to 63**. Every inverter on the line needs a different address, and none may be left on "Auto".
4. Check the serial parameters: the template expects the defaults **19200 bps, 8 data bits, no parity, 1 stop bit**.

> [!NOTE]
> The product manual states that inverters ship with RS-485 address 2, while its list of default parameters shows "AUTO" for both lines. Check the address in Aurora Manager LITE rather than relying on the default.

The register map also contains holding registers **1006** (RS485 #1) and **1007** (RS485 #2) for the protocol of each line: 0 = Aurora, 1 = Modbus. They can only be written over Modbus, so they do not replace the first activation in Aurora Manager LITE. According to the register map, writing a value other than 1 changes the protocol immediately after the reply, which ends Modbus communication on that line. The template does not write these registers.

### Communication parameters

| Parameter | Inverter (Gt03.0 map) | Template |
|-----------|-----------------------|----------|
| Interface | RS-485, half duplex | — |
| Baud rate | 2400, 4800, 9600, 19200 (default), 38400, 57600, 115200 bps | 19200 bps |
| Data bits | 8 | 8 |
| Parity | None (default), even or odd | None |
| Stop bits | 1 | 1 |
| Address (Slave ID) | 2–63 | Import parameter, default 2 |
| Minimum timeout | 100 ms | 1000 ms |

In TapHome, import the template on the Modbus RTU interface the inverter is wired to and enter the inverter's RS-485 address as **Modbus Slave ID**; with several inverters on one line, import the template once per inverter.

## Device capabilities

The register map numbers registers as Modbus **data addresses** starting at 1; the request itself carries the address minus one. The tables below give both. All values come from input registers (function 04).

### AC power and energy

| Device | Measurement | Map data address | Request address | Type, unit |
|--------|-------------|------------------|-----------------|------------|
| AC Power and Energy | Output active power, instantaneous | 1094 | 1093 | SF32, W |
| AC Power and Energy | Total energy since installation | 1072 | 1071 | U32, Wh |
| Daily Energy | Energy produced today | 1070 | 1069 | U32, Wh |

### Grid measurements

| Device | Measurement | Map data address | Request address | Type, unit |
|--------|-------------|------------------|-----------------|------------|
| AC Voltage | Mean grid voltage, phase to neutral | 1090 | 1089 | SF32, V |
| AC Current | Mean output current, phase to neutral | 1092 | 1091 | SF32, A |
| Grid Frequency | Mean grid frequency | 1106 | 1105 | SF32, Hz |

### DC input #1

| Device | Measurement | Map data address | Request address | Type, unit |
|--------|-------------|------------------|-----------------|------------|
| DC Input #1 Power | Active power on DC input #1 | 1108 | 1107 | SF32, W |
| DC Input #1 Voltage | Voltage on DC input #1 | 1110 | 1109 | SF32, V |
| DC Input #1 Current | Current on DC input #1 | 1112 | 1111 | SF32, A |

### Temperatures

| Device | Measurement | Map data address | Request address | Type, unit |
|--------|-------------|------------------|-----------------|------------|
| Inverter Temperature | DC/AC converter temperature | 1122 | 1121 | SF32, °C |
| DC Box Temperature | Internal (DC box) temperature | 1120 | 1119 | SF32, °C |

The register map notes that the DC box temperature may refresh slightly more slowly than the other values.

### Inverter state, alarms and derating

The module reads three status registers and turns them into TapHome notifications:

- **Global State** (data address 1050) — "Running" when the inverter is connected to the grid (value 6), "Wait Sun / Grid" (1) and "Pause" (8) as information; ground fault, over-temperature fault, grid protection self-test fault, leakage fault and remote off (interlock) as errors. The inverter feeds power into the grid only in state 6.
- **Alarm State** (data address 1051) — "No Alarm" or the alarm with its code, for example E001 Input OC, E002 Input OV, E004 Bulk OV, E014 Over Temp., E025 Riso Low or E035 Remote Off, as a warning or an error.
- **Derating State** (data address 1054) — any value other than 0 raises the warning "Derating active (code …)".

The derating code is a bit field; several deratings can be active at once, and the output is then limited to the lowest of them:

| Bit | Derating cause |
|-----|----------------|
| 0 | Power curtailment from user set point |
| 1 | Grid over-frequency |
| 2 | Average grid over-voltage |
| 3 | Anti-islanding |
| 4 | Nameplate grid current limitation |
| 5 | Over-temperature |
| 6 | DC over-voltage |
| 7 | Energy storage system zero-power injection |

For example, code 3 means bits 0 and 1: power curtailment and grid over-frequency.

## Troubleshooting

### No response from the inverter

- Check in Aurora Manager LITE that the line TapHome uses is set to **Modbus RTU Slave** — the factory setting is Aurora on both lines.
- Check that the **Modbus Slave ID** in TapHome equals the inverter's RS-485 address and that the address is not "Auto".
- Check the polarity: +T/R to A (+), −T/R to B (−). Swapped wires are a common cause.
- Check that baud rate, parity and stop bits in TapHome match the inverter (default 19200 bps, no parity, 1 stop bit).
- Check the termination: ON only on the last inverter of the chain, OFF on all others.
- Make sure TapHome is not connected to a line that an ABB monitoring device uses with the Aurora protocol.

### Exception code 2 (illegal data address)

The inverter answers exception code 2 for every register that is not in its map. Typical causes:

- The inverter firmware is older than the minimum update version for the Gt03.0 map (see the table at the top).
- The inverter is a TRIO-20.0 or TRIO-27.6, which uses a different register map.
- A 32-bit value (SF32 or U32) was requested only partly. Every request must cover both registers of a 32-bit value.

### A fault is shown on the inverter but not in TapHome

The template decodes only a selection of the state and alarm codes. The full lists are in annexes 3 (Global State), 4 (Alarm State) and 7 (Derating State) of the Gt03.0 register map — for example arc fault is Global State 51 and the "Reset by hand" latch is Global State 124. Read the inverter's state in Aurora Manager LITE in that case.

## Available devices 10

These devices appear in TapHome after import.

ABB TRIO Inverter Module

Read (module)

```taphome
VAR gs := MODBUSR(A, 1049, UInt16);
IF(gs = 6, ADDINFO(0, "Running"));
IF(gs = 1, ADDINFO(1, "Wait Sun / Grid"));
IF(gs = 8, ADDINFO(2, "Pause"));
IF(gs = 25, ADDERROR(0, "Remote OFF"));
IF(gs = 9, ADDERROR(1, "Ground Fault"));
IF(gs = 10, ADDERROR(2, "OTH Fault"));
IF(gs = 13, ADDERROR(3, "Self-Test Fail"));
IF(gs = 15, ADDERROR(4, "Leak Fault"));
IF(gs = 16, ADDERROR(5, "Waiting for manual reset"));
IF(gs = 31, ADDERROR(6, "Temperature Fault"));
IF(gs = 32, ADDERROR(7, "Fan Stuck"));
IF(gs = 115, ADDERROR(8, "Arc Fault"));
VAR al := MODBUSR(A, 1050, UInt16);
IF(al = 0, ADDINFO(10, "No Alarm"));
IF(al = 1, ADDWARNING(11, "W001 Sun Low"));
IF(al = 2, ADDERROR(12, "E001 Input OC"));
IF(al = 3, ADDWARNING(13, "W002 Input UV"));
IF(al = 4, ADDERROR(14, "E002 Input OV"));
IF(al = 7, ADDERROR(15, "E004 Bulk OV"));
IF(al = 8, ADDERROR(16, "E005 Comm. Error"));
IF(al = 9, ADDERROR(17, "E006 Output OC"));
IF(al = 13, ADDWARNING(18, "W003 Grid Fail"));
IF(al = 16, ADDERROR(19, "E012 DC/DC Fail"));
IF(al = 19, ADDERROR(20, "E014 Over Temp."));
IF(al = 21, ADDERROR(21, "E016 Inverter Fail"));
IF(al = 23, ADDERROR(22, "E018 Ground Fault"));
IF(al = 38, ADDERROR(23, "E025 Riso Low"));
IF(al = 47, ADDWARNING(24, "W010 Fan Fail"));
IF(al = 50, ADDERROR(25, "E035 Remote Off"));
IF(al = 56, ADDERROR(26, "E038 Fan Stuck"));
VAR dr := MODBUSR(A, 1053, UInt16);
IF(dr != 0, ADDWARNING(30, "Derating active (code " + TOSTRING(dr, "F0") + ")"));
```

AC Power and Energy Electricity Meter

Read total consumption

```taphome
MODBUSR(A, 1071, UInt32)
```

Read demand

```taphome
MODBUSR(A, 1093, Float)
```

Daily Energy Variable

Read

```taphome
MODBUSR(A, 1069, UInt32)
```

AC Voltage Analog Input

Read input level

```taphome
MODBUSR(A, 1089, Float)
```

AC Current Analog Input

Read input level

```taphome
MODBUSR(A, 1091, Float)
```

Grid Frequency Analog Input

Read input level

```taphome
MODBUSR(A, 1105, Float)
```

DC Input #1 Power Analog Input

Read input level

```taphome
MODBUSR(A, 1107, Float)
```

DC Input #1 Voltage Analog Input

Read input level

```taphome
MODBUSR(A, 1109, Float)
```

DC Input #1 Current Analog Input

Read input level

```taphome
MODBUSR(A, 1111, Float)
```

Inverter Temperature Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 1121, Float)
```

DC Box Temperature Temperature Sensor

Read temperature

```taphome
MODBUSR(A, 1119, Float)
```

**Connection:** Modbus RTU • 19200 baud• 8N1 • Slave ID: $\[SlaveId]

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default |
|------------------|---------|
| Modbus Slave ID  | `2`     |

## Related Documentation

- [Modbus Integration](https://taphome.com/en/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/en/docs/integration/modbus/)
- [Simple configuration using templates](https://taphome.com/en/docs/integration/modbus/templates/)
- [Modbus scripts and prefetch](https://taphome.com/en/docs/script/modbus-scripts/)
- [Modbus functions](https://taphome.com/en/docs/script/modbus/)
- [Modbus data types](https://taphome.com/en/docs/script/modbus-data-types/)

