Modbus TCP
The Teleport can be configured to have a local Modbus TCP server running. By default it is disabled.
Conventions
- Values are in big-endian word order.
- The highest allowed value of the type is used to signal
null
, eg.2^16 - 1
for UInt16 and2^31 - 1
for Int32. - Unlisted addresses for listed Unit IDs will return
2^16 - 1
. - In case the unit includes a number, e.g.
0.001 °C
, it means that the value is scaled. E.g. with the unit being0.001 °C
, a register with value1000
represents1.000 °C
, i.e. the register should be multiplied by0.001
to get the actual value.
Register
Teleport Device
On Unit ID 0
a Modbus TCP client can interact with the Teleport device.
Item | Start address | Size | Type | Unit | R/W | Notes |
---|---|---|---|---|---|---|
Heartbeat | 0 | 1 | UInt16 | R/W1 | Value does not matter. Modbus server power limits are removed if there is no heartbeat for 60 seconds. Any other write is also counted as a heartbeat | |
Unix timestamp | 1 | 4 | UInt64 | ms | R | |
Number of assets configured | 5 | 1 | UInt16 | R | The number of assets the Teleport should be connected to. | |
Number of connected assets | 6 | 1 | UInt16 | R | The number of assets the Teleport is connected to. |
Aggregated solar and wind assets
At Unit ID 1
a Modbus TCP client can control and readout all connected solar and wind assets together. Aggregated statistics are provided for connected assets. Be aware that these statistics are partial aggregates if (and only if) registers 0
and 1
are not equal. To avoid drawing incorrect conclusions by reading out registers 0
and 1
at a different time than the aggregate statistics, it is advisable to read out all required registers of this Unit ID in a single request.
Item | Start address | Size | Type | Unit | R/W | Notes |
---|---|---|---|---|---|---|
Number of solar and wind assets configured | 0 | 1 | UInt16 | R | The number of assets the Teleport should be connected to. | |
Number of connected solar and wind assets | 1 | 1 | UInt16 | R | The number of assets the Teleport is connected to. | |
Nominal active power of configured solar and wind assets | 2 | 2 | UInt32 | W | R | The sum of the values from the assets the Teleport should be connected to. |
Nominal active power of connected assets | 21 | 2 | UInt32 | W | R | The sum of the values from the assets the Teleport is connected to. |
Combined target active power limit of connected assets | 31 | 1 | UInt16 | 0.01% | R | The minimum of setpoints from the various sources listed here, corrected for static limits. Is null if it differs between connected assets. |
Target active power limit from modbus server of connected assets | 32 | 1 | UInt16 | 0.01% | R/W1 | As set through the local modbus interface of the Teleport. Writing null (2^16 - 1 ) means that there is no limit. Overwrites the individual limits set using Unit ID >= 100 . Is null if it differs between connected assets. |
Target active power limit from cloud of connected assets | 33 | 1 | UInt16 | 0.01% | R | As set through the Teleport Cloud API using limitProductionPower commands. Is null if it differs between connected assets. |
Target active power limit from realtime interface of connected assets | 34 | 1 | UInt16 | 0.01% | R | As set through the Realtime Interface by the grid operator. Is null if it differs between connected assets. |
Target active power limit from local active control of connected assets | 35 | 1 | UInt16 | 0.01% | R | As set by the Teleport as the result of a control strategy. Is null if it differs between connected assets. |
Target active power limit aFRR-delta of connected assets | 36 | 2 | Int32 | W | R | As set through the Teleport Cloud API using applyAfrrDeltaSetpoint commands. Is the sum of connected assets. |
Target active power limit aFRR-delta of connected assets | 38 | 1 | Int16 | 0.01% | R | As set through the Teleport Cloud API using applyAfrrDeltaSetpoint commands. Is null if it differs between connected assets. |
Effective active power limit of connected assets | 50 | 1 | UInt16 | 0.01% | R | Is null if it differs between connected assets. |
Active power of connected assets | 51 | 2 | Int32 | W | R | The sum of the values read out from the connected assets. |
Available active power of connected assets | 53 | 2 | Int32 | W | R | The sum of the values read out from the connected asset or calculated using an asset like a pyranometer. |
Individual wind or solar asset
Starting at Unit ID 100
a Modbus TCP client can control and readout an individual asset. The second asset is available at Unit ID 101
and so on. The number of assets can be retrieved from register 1
of Unit ID 1
(see above).
Item | Start address | Size | Type | Unit | R/W | Notes |
---|---|---|---|---|---|---|
Asset type | 0 | 1 | UInt16 | R | 1 = solar, 2 = wind, 3 = battery. | |
Asset identifier | 1 | 20 | ascii string | R | Uniquely identifies the asset within the assets connected to this Teleport device. | |
Nominal active power | 21 | 2 | UInt32 | W | R | |
Combined target active power limit | 31 | 1 | UInt16 | 0.01% | R | The minimum of setpoints from the various sources listed here, corrected for static limits. |
Target active power limit from modbus server | 32 | 1 | UInt16 | 0.01% | R/W1 | As set through the local modbus interface of the Teleport. Writing null (2^16 - 1 ) means that there is no limit. Overwrites the limit set on Unit ID 1 for this asset. |
Target active power limit from cloud | 33 | 1 | UInt16 | 0.01% | R | As set through the Teleport Cloud API using limitProductionPower commands. |
Target active power limit from realtime interface | 34 | 1 | UInt16 | 0.01% | R | As set through the Realtime Interface by the grid operator. |
Target active power limit from local active control | 35 | 1 | UInt16 | 0.01% | R | As set by the Teleport as the result of a control strategy. |
Target active power limit aFRR-delta | 36 | 2 | Int32 | W | R | As set through the Teleport Cloud API using applyAfrrDeltaSetpoint commands. |
Target active power limit aFRR-delta | 38 | 1 | Int16 | 0.01% | R | As set through the Teleport Cloud API using applyAfrrDeltaSetpoint commands. |
Effective active power limit | 50 | 1 | UInt16 | 0.01% | R | As read out from the solar or wind asset. |
Active power | 51 | 2 | Int32 | W | R | As read out from the solar or wind asset. |
Available active power | 53 | 2 | Int32 | W | R | As read out from the solar or wind asset or calculated using an asset like a pyranometer. |
Number of environmental sensors | 100 | 1 | Uint16 | R | Between 0 and 20 environmental sensors. | |
Environmental sensor data | 1000 | 4000 | R | Environmental sensor data, as described in Environmental Sensors. |
Environmental sensors
The following table describes the data of an environmental sensor. The starting address is offset by the index of the environmental sensor multiplied by 200
, plus the offset of the environmental sensor data in the table that refers to this section. For example, with a starting register of 1000
, the starting address of the first sensor is 1000
and the starting address of the second sensor is 1200
.
Item | Start address | Size | Type | Unit | R/W | Notes |
---|---|---|---|---|---|---|
Environmental sensor type | 0 | 1 | UInt16 | R | 1 = irradiance, 2 = temperature, 3 = wind. | |
Sensor identifier | 1 | 30 | ascii string | R | ||
Irradiance factor | 31 | 2 | UInt32 | R | ||
Irradiance | 33 | 2 | UInt32 | 0.001 W/m² | R | |
Wind speed | 40 | 2 | UInt32 | 0.001 m/s | R | |
Number of temperature measurements | 90 | 1 | Uint16 | R | Between 0 and 10 temperature measurements. | |
Temperature measurement 1 | 91 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 2 | 93 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 3 | 95 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 4 | 97 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 5 | 99 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 6 | 101 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 7 | 103 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 8 | 105 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 9 | 107 | 2 | Int32 | 0.001 °C | R | |
Temperature measurement 10 | 109 | 2 | Int32 | 0.001 °C | R |
Individual Battery
Starting at Unit ID 100
a Modbus TCP client can control and readout an individual asset. The second asset is available at Unit ID 101
and so on. The number of assets can be retrieved from the Teleport Device with Unit ID 0
.
Name | Address Start | Size | Type | Unit | Access | Notes |
---|---|---|---|---|---|---|
Asset type | 0 | 1 | UInt16 | R | 1 = solar, 2 = wind, 3 = battery. | |
Asset identifier | 1 | 30 | ascii string | R | Uniquely identifies the asset within the assets connected to this Teleport device. | |
Nominal active power | 31 | 2 | UInt32 | W | R | |
Rated energy | 33 | 2 | UInt32 | Wh | R | |
Battery Status | 40 | 1 | UInt16 | R | 1 = off, 2 = on, 3 = other. | |
Energy charged | 41 | 4 | UInt64 | Wh | R | |
Energy discharged | 45 | 4 | UInt64 | Wh | R | |
Frequency | 49 | 1 | UInt16 | 0.001 Hz | R | |
Active power | 50 | 2 | Int32 | W | R | Positive means discharging, negative charging. |
Reactive power | 52 | 2 | Int32 | var | R | Positive = injecting, negative = absorbing. |
Power factor | 54 | 1 | Int16 | 0.001 | R | Positive = capacitive (quadrants 2 & 4), Negative = inductive (quadrants 1 & 3). |
State of charge | 55 | 1 | UInt16 | 0.01% | R | |
State of health | 56 | 1 | UInt16 | 0.01% | R | |
Available energy | 57 | 2 | UInt32 | Wh | R | |
Available active power - charge | 59 | 2 | UInt32 | W | R | |
Available active power - discharge | 61 | 2 | UInt32 | W | R | |
Available reactive power - inject | 63 | 2 | UInt32 | var | R | |
Available reactive power - absorb | 65 | 2 | UInt32 | var | R | |
Three-phase connection type - high voltage | 67 | 1 | UInt16 | R | 1 = wye, 2 = delta. | |
AC voltage medium voltage phase L1 | 68 | 2 | UInt32 | 0.001 V | R | |
AC voltage medium voltage phase L2 | 70 | 2 | UInt32 | 0.001 V | R | |
AC voltage medium voltage phase L3 | 72 | 2 | UInt32 | 0.001 V | R | |
AC voltage medium voltage line L1 | 74 | 2 | UInt32 | 0.001 V | R | |
AC voltage medium voltage line L2 | 76 | 2 | UInt32 | 0.001 V | R | |
AC voltage medium voltage line L3 | 78 | 2 | UInt32 | 0.001 V | R | |
AC current medium voltage phase L1 | 80 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current medium voltage phase L2 | 82 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current medium voltage phase L3 | 84 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current medium voltage line L1 | 86 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current medium voltage line L2 | 88 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current medium voltage line L3 | 90 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
Auxiliary active power | 92 | 2 | Int32 | W | R | Negative means consuming, positive generating (will be negative or 0). |
Auxiliary reactive power | 94 | 2 | Int32 | var | R | Negative means consuming, positive generating (will be negative or 0). |
Output active power setpoint | 96 | 2 | Int32 | W | R | Active power setpoint. Positive = discharging, negative = charging. |
reserved | 98 | 4 | ||||
Output Deliver FCR setpoint | 102 | 2 | Int32 | W | R | Active power setpoint. Positive = discharging, negative = charging. |
Output charge to percentage setpoint | 104 | 1 | UInt16 | 0.01% | R | Active power setpoint. Positive = discharging, negative = charging. |
Output aggregate active power setpoint | 105 | 2 | Int32 | W | R | Aggregate active power setpoint. Positive = discharging, negative = charging. |
reserved | 107 | 2 | ||||
Confirmed active power setpoint | 109 | 2 | Int32 | W | R | Positive = discharging, negative = charging. |
reserved | 111 | 4 | ||||
Confirmed deliverFCR setpoint | 115 | 2 | Int32 | W | R | Active power setpoint. Positive = discharging, negative = charging. |
Confirmed chargeToPercentage | 117 | 1 | UInt16 | 0.01% | R | |
Desired active power setpoint - cloud | 118 | 2 | Int32 | W | R | |
Desired active power setpoint - activeControl | 120 | 2 | Int32 | W | R | |
Desired active power setpoint - gridOperator | 122 | 2 | Int32 | W | R | |
Desired active power setpoint - modbusServer | 124 | 2 | Int32 | W | R/W | |
reserved | 126 | 16 | ||||
Desired chargeToPercentage (cloud) | 142 | 1 | UInt16 | 0.01% | R | |
Desired deliverFCR (cloud) | 143 | 2 | Int32 | W | R | Positive = discharging, negative = charging. |
Effective active power setpoint | 145 | 2 | Int32 | W | R | Positive = discharging, negative = charging. |
reserved | 147 | 4 | ||||
Number of battery energy storage systems | 151 | 1 | UInt16 | R | Between 0 and 20 battery energy storage systems. | |
Battery energy storage systems data | 1000 | 60000 | BESS data, as described in Battery energy storage systems. |
Battery energy storage systems
The following table describes the data of a battery energy storage system (BESS). A BESS is a subdivision of a battery system with its own AC output. The starting address is offset by the index of the BESS multiplied by 3000
, plus the offset of the battery energy storage systems data in the table that refers to this section. For example, with a starting register of 1000
, the starting address of the first BESS is 1000
and the starting address of the second BESS is 4000
.
Name | Address Start | Size | Type | Unit | Access | Notes |
---|---|---|---|---|---|---|
BESS identifier | 0 | 30 | ascii string | R | Brand and serial number of the BESS, or its index if not available. | |
Minimum cell temperature | 30 | 2 | Int32 | 0.001 °C | R | |
Maximum cell temperature | 32 | 2 | Int32 | 0.001 °C | R | |
Room temperature | 34 | 2 | Int32 | 0.001 °C | R | |
State of charge | 36 | 1 | UInt16 | 0.01% | R | |
Available energy | 37 | 2 | UInt32 | Wh | R | Available energy for charge/discharge. |
Available active power - charge | 39 | 2 | UInt32 | W | R | Power the BESS can absorb. |
Available active power - discharge | 41 | 2 | UInt32 | W | R | Power the BESS can deliver. |
Three-phase connection type - low voltage | 43 | 1 | UInt16 | R | 1 = wye, 2 = delta. | |
AC voltage low voltage phase L1 | 44 | 2 | UInt32 | 0.001 V | R | |
AC voltage low voltage phase L2 | 46 | 2 | UInt32 | 0.001 V | R | |
AC voltage low voltage phase L3 | 48 | 2 | UInt32 | 0.001 V | R | |
AC voltage low voltage line L1 | 50 | 2 | UInt32 | 0.001 V | R | |
AC voltage low voltage line L2 | 52 | 2 | UInt32 | 0.001 V | R | |
AC voltage low voltage line L3 | 54 | 2 | UInt32 | 0.001 V | R | |
AC current low voltage phase L1 | 56 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current low voltage phase L2 | 58 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current low voltage phase L3 | 60 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current low voltage line L1 | 62 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current low voltage line L2 | 64 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
AC current low voltage line L3 | 66 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
Number of racks | 99 | 1 | UInt16 | R | Between 0 and 28 racks. | |
Rack data | 200 | 2800 | Rack data as described in Racks. |
Racks
The following table describes data of a rack within a BESS. A rack is a subdivision of a BESS with its own DC output. The starting address is offset by the index of the rack multiplied by 100
, plus the offset of the racks data in the table that refers to this section. For example, with a starting register of 1000
for the BESS and 200
for the rack, the starting address of the first rack is 1200
and the starting address of the second rack is 1300
.
Name | Address Start | Size | Type | Unit | Access | Notes |
---|---|---|---|---|---|---|
Rack identifier | 0 | 30 | ascii string | R | Brand and serial number of the rack, or its index if not available | |
Rack status | 30 | 1 | UInt16 | R | 1 = off, 2 = on, 3 = other. | |
State of charge | 31 | 1 | UInt16 | 0.01% | R | |
DC voltage | 32 | 2 | UInt32 | 0.001 V | R | |
DC current | 34 | 2 | Int32 | 0.001 A | R | Positive = delivering to grid. |
Minimum cell temperature | 36 | 2 | Int32 | 0.001 °C | R | |
Minimum cell temperature ID | 38 | 1 | UInt16 | R | ID of the cell with the maximum temperature. | |
Maximum cell temperature | 39 | 2 | Int32 | 0.001 °C | R | |
Maximum cell temperature ID | 41 | 1 | UInt16 | R | ID of the cell with the maximum temperature. | |
Minimum cell voltage | 42 | 2 | UInt32 | 0.001 V | R | |
Minimum cell voltage ID | 44 | 1 | UInt16 | R | ID of the cell with the minimum voltage. | |
Maximum cell voltage | 45 | 2 | UInt32 | 0.001 V | R | |
Maximum cell voltage ID | 47 | 1 | UInt16 | R | ID of the cell with the maximum voltage. | |
Average cell voltage | 48 | 2 | UInt32 | 0.001 V | R |