Du hast bereits ein bevorzugtes Energiemanagementsystem von einem anderen Hersteller und möchtest damit deinen neoom C&I Speicher BLOKK oder TERRA steuern? Mit folgender Modbus Spezifikation wird dies nun möglich!
Metadata
Property | Value |
---|---|
Summary | The Modbus TCP Interface for the BLOKK variants BLOKK (NN), BLOKK (NN) Light and BLOKK NEA, as well as TERRA |
Version | V3.0 |
Byte-Order | BigEndian |
Word-Order | LittleEndian |
Enums
Enum TypeName | Key | Value | Description |
---|---|---|---|
BLOKK_State | UNKNOWN | 0 | |
BLOKK_State | SLEEP | 1 | BLOKK is in deep sleep state / start is possible |
BLOKK_State | SETUP | 2 | BLOKK is starting up and checking components |
BLOKK_State | EMERGENCY_STOP | 3 | BLOKK is in error state / Emergency stop is active |
BLOKK_State | ERROR | 4 | BLOKK is in error state / see registers AlarmIDActive01..AlarmIDActive20 |
BLOKK_State | STOPPED | 5 | BLOKK is stopped / no error active / start is possible |
BLOKK_State | ONGRID_SETUP | 10 | BLOKK is starting ongrid operation |
BLOKK_State | ONGRID_RUN | 11 | BLOKK is operating in ongrid mode |
BLOKK_State | ONGRID_TEARDOWN | 12 | BLOKK is stopping ongrid operation |
BLOKK_State | OFFGRID_SETUP | 20 | BLOKK is starting offgrid operation |
BLOKK_State | OFFGRID_RUN | 21 | BLOKK is operating in offgrid mode |
BLOKK_State | OFFGRID_TEARDOWN | 22 | BLOKK is stopping offgrid operation |
ExternalControl_OperationMode | Standard | 0 | BLOKK operates autonomously in it's normal mode with a static configuration and mode selection based on it's SoC |
ExternalControl_OperationMode | InverterSetpoint | 2 | given active power setpoint on ExternalControl.SetpointPrimaryPowerActive is directly distributed to the inverters / grid power control is inactive. |
ExternalControl_OperationMode | GridSetpoint | 3 | given active power setpoint on ExternalControl.SetpointPrimaryPowerActive is used as the setpoint for grid power control. |
ExternalControl_OperationMode | GridSetpointReplaceConsumptionOptimization | 4 | given active power setpoint on ExternalControl.SetpointPrimaryPowerActive is used as the setpoint for grid power control in the SoC-region of consumption optimization. Peak shaving limits are active and it's SoC region is maintained to have enough energy for peak shaving. |
ExternalControl_OperationMode | InverterSetpointReplaceConsumptionOptimization | 5 | given active power setpoint on ExternalControl.SetpointPrimaryPowerActive is distributed to the inverters, if peak shaving limits can be adhered. Otherwise the grid power control kicks in to keep power within peak-shaving limits. The peak-shaving SoC region is maintained to have enough energy for peak shaving. |
ExternalControl_OperationMode | StandBy | 99 | BLOKK is in Standby mode, power switch is closed but no power active |
ExternalControl_OperationMode | Maintenance | 100 | BLOKK is in maintenance mode, manual power set point on BLOKK active |
ExternalControl_OperationModeReactive | InverterConfig | 0 | The BLOKK does not control the reactive power. Either the inverter has configured options Q(U), constant cos(phi) or similar on the device configuration itself, or the reactive power is from the inverter is zero. |
ExternalControl_OperationModeReactive | ExternalControlInverterSetpoint | 1 | The BLOKK sets the reactive power setpoint (ExternalControl.SetpointPowerReactive) directly on to the inverters, by distributing it across all inverters. If the setpoint can't be achived the reactive power is staurated. This option is may not be supported with all inverters, if the inverter is not configured to support this mode. |
BLOKK_PowerDistributionMode | Support | 0 | EMS acts as Support, inverter power set point is received from Main EMS |
BLOKK_PowerDistributionMode | Main | 1 | EMS acts as Main, operation mode/control/power distribution to Supports is enabled |
Bitfields
Bitfield TypeName | Byte Size | BitNum | FieldName |
---|---|---|---|
BLOKK_MainSupportStatus | 4 | 0 | AtLeastOneBlokkOnGrid |
BLOKK_MainSupportStatus | 4 | 1 | AtLeastOneBlokkOnGridAndControllable |
BLOKK_MainSupportStatus | 4 | 2 | AtLeastOneBlokkRunningInRequestedMode |
BLOKK_MainSupportStatus | 4 | 3 | WarningActive |
BLOKK_MainSupportStatus | 4 | 4 | ErrorActive |
Groups
Group Name | Description | Start Address |
---|---|---|
BLOKK | Settings and data for whole BLOKK or TERRA | 36000 |
MainSupport | Interface for a Main/Support BLOKK or TERRA combination | 36500 |
ExternalControl | Control interface for a external EMS | 36800 |
Group - BLOKK
Group Data
Description | Start Address |
---|---|
Settings and data for whole BLOKK Config data only relevant for ExternalControl_OperationMode = 0 / 4 / 5 |
36000 |
Group Command (read / write)
Name | Datatype | RegisterAddress | Unit & Scaling | Default Config | Description |
---|---|---|---|---|---|
AlarmAcknowledge | BOOL | 36280 | 0 | 1=acknowledge all alarms, resetting register to 0 after receiving command |
Group Config (read / write)
Name | Datatype | RegisterAddress | Unit & Scaling | Default Config | Description |
---|---|---|---|---|---|
MinInfeedPriorizationSoC | UINT16 | 36310 | %*100.0 | minimal SoC level, where infeed is prioritized over PV/self-consumption. below this level PV/self-consumption is active | |
FeedInPriorizationChargeOver | UINT32 | 36311 | W | infeed priorization: grid power setpoint to charge the battery above this level. always >= 0 | |
MinPVSOC | UINT16 | 36320 | %*100.0 | minimal SoC level, where PV/self-consumption is active. below this level the capacity is used for peak shaving and as blackout reserve. | |
MinPeakSOC | UINT16 | 36330 | %*100.0 | minimal SoC level, where peak shaving is active. below this level the capacity is blackout reserve. | |
PeakShavingDischargeOver | UINT32 | 36331 | W | peak shaving grid power setpoint to discharge the battery above this level. always >= 0 | |
MinBlackoutSOC | UINT16 | 36335 | %*100.0 | minimal SoC level for blackout reserve. always >= 0 |
Group Outputs (read only)
Name | Datatype | RegisterAddress | Unit & Scaling | Description |
---|---|---|---|---|
InterfaceVersionMajor | UINT16 | 36000 | major version of the modbus interface | |
InterfaceVersionMinor | UINT16 | 36001 | minor version of the modbus interface | |
HardwareVersionMajor | UINT16 | 36003 | major version of the BLOKK hardware | |
HardwareVersionMinor | UINT16 | 36004 | minor version of the BLOKK hardware | |
SoftareVersionMajor | UINT16 | 36006 | major version of the BLOKK PLC software | |
SoftwareVersionMinor | UINT16 | 36007 | minor version of the BLOKK PLC software | |
SoftwareVersionPatch | UINT16 | 36008 | patch version of the BLOKK PLC software | |
SerialNumber | STRING(19) | 36010 | serial number of the BLOKK | |
Lifecounter | UINT16 | 36030 | Life signal from PLC, is increased every 1sec | |
State | enum/BLOKK_State | 36031 | current BLOKK state | |
OffgridCapability | BOOL | 36032 | BLOKK is offgrid capable | |
OffgridModeActive | BOOL | 36033 | offgrid mode active and running | |
WarningActive | BOOL | 36034 | At least one warning is active. Register State shows if BLOKK is running | |
ActivePowerDistributionMode | enum/BLOKK_PowerDistributionMode | 36040 | actual power distribution mode of BLOKK (Main/Support) | |
PowerDistributionModeMainActiveSince | UINT32 | 36041 | s | elapsed time since power distribution mode Main was activated on this BLOKK |
ActiveInverterCount | UINT16 | 36075 | number of active/running inverters in this BLOKK | |
ActivePowerSum | INT32 | 36080 | W | sum of BLOKK active power. Discharge > 0 / charge < 0 |
ReactivePowerSum | INT32 | 36082 | VAr | sum of BLOKK reactive power. over-excited = voltage-rising = reactive power generation > 0 / under-excited = voltage-lowering = reactive power consumption < 0 |
ApparentPowerSum | INT32 | 36084 | VA | sum of BLOKK apparent power, always >= 0 |
DCPowerSum | INT32 | 36086 | W | sum of BLOKK DC power. Discharge < 0 / charge > 0 |
SoH | UINT16 | 36100 | %*100 | minimal state of health of the entire BLOKK |
MaxSOC | UINT16 | 36110 | % | maximal SoC of the battery's DoD range |
MinSOC | UINT16 | 36111 | % | minimal SoC of the battery's DoD range |
GrossSoC | UINT16 | 36112 | %*100.0 | gross state of charge of the entire BLOKK (PylonTech 8 .. 98%) |
NetSoC | UINT16 | 36113 | %*100.0 | net state of charge of the entire BLOKK (0 .. 100%) |
AvailableGrossSoC | UINT16 | 36114 | %*100.0 | gross state of charge, only available batteries/inverters (PylonTech 8 .. 98%) |
AvailableNetSoC | UINT16 | 36115 | %*100.0 | net state of charge, only available batteries/inverters (0 .. 100%) |
InstalledNominalCapacity | UINT32 | 36130 | Wh | sum of the nominal capacity of all batteries installed. |
AvailableNominalCapacity | UINT32 | 36132 | Wh | sum of the nominal capacity of all batteries installed and available. |
AvailableEnergyCharge | UINT32 | 36134 | Wh | available energy for charging. |
AvailableEnergyDischarge | UINT32 | 36136 | Wh | available energy for discharging / in case of BLOKK Light NEA -> remaining energy to blackout reserve |
InstalledActivePower | UINT32 | 36150 | W | sum of the nominal power of all inverters installed. |
AvailableNominalActivePower | UINT32 | 36152 | W | sum of the nominal power of all inverters installed and available. |
AvailableActivePowerCharge | INT32 | 36154 | W | available active power for charging / usually >= 0, if < 0 => forced discharging. |
AvailableActivePowerDischarge | INT32 | 36156 | W | available active power for discharging / in case of BLOKK Light NEA -> in SoC region of blackout reserve = 0 / usually >= 0, if < 0 => forced charging. |
UsedSetpointActivePower | INT32 | 36170 | W | sum of all active power setpoints of the inverters. Discharge > 0 / charge < 0 |
UsedSetpointReactivePower | INT32 | 36172 | VAr | sum of all reactive power setpoints of the inverters, if reactive power setpoint is used. over-excited = voltage-rising = reactive power generation > 0 / under-excited = voltage-lowering = reactive power consumption < 0 |
TemperatureMainCabinet | INT16 | 36220 | °C*10.0 | temperature Main cabinet |
HumidityMainCabinet | INT16 | 36221 | %*10.0 | relative humidity Main cabinet |
LoadShed_DO1_SheddingActive | BOOL | 36240 | load shed DO 1 is set (TRUE), such that a load can be shed (dropped). If FALSE, load is enabled/active. | |
LoadShed_DO2_SheddingActive | BOOL | 36241 | load shed DO 2 is set (TRUE), such that a load can be shed (dropped). If FALSE, load is enabled/active. | |
LoadShed_DO3_SheddingActive | BOOL | 36242 | load shed DO 3 is set (TRUE), such that a load can be shed (dropped). If FALSE, load is enabled/active. | |
LoadShed_DO4_SheddingActive | BOOL | 36243 | load shed DO 4 is set (TRUE), such that a load can be shed (dropped). If FALSE, load is enabled/active. | |
RippleControl_DI1 | BOOL | 36250 | ripple control digital input 1 is set, (standard setting: 100% level). | |
RippleControl_DI2 | BOOL | 36251 | ripple control digital input 2 is set, (standard setting: 60% level). | |
RippleControl_DI3 | BOOL | 36252 | ripple control digital input 3 is set, (standard setting: 30% level). | |
RippleControl_DI4 | BOOL | 36253 | ripple control digital input 4 is set, (standard setting: 0% level). | |
AlarmIDActive01 | UINT16 | 36260 | alarm ID of list entry 1 in alarm list, list order: severity then trigger time. | |
AlarmIDActive02 | UINT16 | 36261 | alarm ID of list entry 2 in alarm list, list order: severity then trigger time. | |
AlarmIDActive03 | UINT16 | 36262 | alarm ID of list entry 3 in alarm list, list order: severity then trigger time. | |
AlarmIDActive04 | UINT16 | 36263 | alarm ID of list entry 4 in alarm list, list order: severity then trigger time. | |
AlarmIDActive05 | UINT16 | 36264 | alarm ID of list entry 5 in alarm list, list order: severity then trigger time. | |
AlarmIDActive06 | UINT16 | 36265 | alarm ID of list entry 6 in alarm list, list order: severity then trigger time. | |
AlarmIDActive07 | UINT16 | 36266 | alarm ID of list entry 7 in alarm list, list order: severity then trigger time. | |
AlarmIDActive08 | UINT16 | 36267 | alarm ID of list entry 8 in alarm list, list order: severity then trigger time. | |
AlarmIDActive09 | UINT16 | 36268 | alarm ID of list entry 9 in alarm list, list order: severity then trigger time. | |
AlarmIDActive10 | UINT16 | 36269 | alarm ID of list entry 10 in alarm list, list order: severity then trigger time. | |
AlarmIDActive11 | UINT16 | 36270 | alarm ID of list entry 11 in alarm list, list order: severity then trigger time. | |
AlarmIDActive12 | UINT16 | 36271 | alarm ID of list entry 12 in alarm list, list order: severity then trigger time. | |
AlarmIDActive13 | UINT16 | 36272 | alarm ID of list entry 13 in alarm list, list order: severity then trigger time. | |
AlarmIDActive14 | UINT16 | 36273 | alarm ID of list entry 14 in alarm list, list order: severity then trigger time. | |
AlarmIDActive15 | UINT16 | 36274 | alarm ID of list entry 15 in alarm list, list order: severity then trigger time. | |
AlarmIDActive16 | UINT16 | 36275 | alarm ID of list entry 16 in alarm list, list order: severity then trigger time. | |
AlarmIDActive17 | UINT16 | 36276 | alarm ID of list entry 17 in alarm list, list order: severity then trigger time. | |
AlarmIDActive18 | UINT16 | 36277 | alarm ID of list entry 18 in alarm list, list order: severity then trigger time. | |
AlarmIDActive19 | UINT16 | 36278 | alarm ID of list entry 19 in alarm list, list order: severity then trigger time. | |
AlarmIDActive20 | UINT16 | 36279 | alarm ID of list entry 20 in alarm list, list order: severity then trigger time. |
Group - MainSupport
Group Data
Description | Start Address |
---|---|
Interface for a Main/Support BLOKK combination For use only with multiple BLOKKs in one system Only valid on Main BLOKK |
36500 |
Group Config (read / write)
Name | Datatype | RegisterAddress | Unit & Scaling | Default Config | Description |
---|---|---|---|---|---|
MainSupport_PowerDistributionMode | enum/BLOKK_PowerDistributionMode | 36500 | BLOKK_PowerDistributionMode.Main | BLOKK EMS power distribution mode for Main/Support BLOKK combination, for standalone BLOKK use BLOKK_PowerDistributionMode.Main |
Group Outputs (read only)
Name | Datatype | RegisterAddress | Unit & Scaling | Description |
---|---|---|---|---|
Main_NumberOfSupportsOnline | UINT16 | 36520 | Main - Number of online/reachable Support BLOKKs in Main/Support BLOKK combination / for standalone BLOKK =1 | |
Main_NumberOfSupportsRunning | UINT16 | 36521 | Main - Number of active/on-grid running Support BLOKKs in Main/Support BLOKK combination / for standalone BLOKK =1 | |
Main_SystemStatus | bitfield/BLOKK_MainSupportStatus | 36522 | Status bits of Main/Support combination, also valid for standalone BLOKK | |
Main_SumActivePower | INT32 | 36530 | W | AC active power sum of BLOKK combination or standalone BLOKK, Discharge > 0 / charge < 0 |
Main_SumReactivePower | INT32 | 36532 | VAr | AC reactive power sum of BLOKK combination or standalone BLOKK, over-excited = voltage-rising = reactive power generation > 0 / under-excited = voltage-lowering = reactive power consumption < 0 |
Main_SumPowerDC | INT32 | 36534 | W | DC power sum of BLOKK combination or standalone BLOKK, Discharge < 0 / charge > 0 |
Main_SumAvailableActivePowerDischarge | INT32 | 36536 | W | available DC power sum of BLOKK combination or standalone BLOKK for discharging / usually >= 0, if < 0 => forced charging. |
Main_SumAvailableActivePowerCharge | INT32 | 36538 | W | available DC power sum of BLOKK combination or standalone BLOKK for charging / usually >= 0, if < 0 => forced discharging. |
Main_UsedSetpointActivePower | INT32 | 36540 | W | sum of all active power setpoints of the inverters. Discharge > 0 / charge < 0 |
Main_UsedSetpointReactivePower | INT32 | 36542 | VAr | sum of all reactive power setpoints of the inverters, if reactive power setpoint is used. over-excited = voltage-rising = reactive power generation > 0 / under-excited = voltage-lowering = reactive power consumption < 0 |
Main_SumGrossSoC | UINT16 | 36550 | %*100.0 | gross state of charge of BLOKK combination or standalone BLOKK (PylonTech 8 .. 98%) |
Main_SumNetSoC | UINT16 | 36551 | %*100.0 | net state of charge of the BLOKK combination or standalone BLOKK (0 .. 100%) |
Main_MaxAvailableGrossSoC | UINT16 | 36552 | %*100.0 | max. possible gross state of charge (with currently available batteries/inverters) of the BLOKK combination or standalone BLOKK (PylonTech 8 .. 98%) |
Main_MaxAvailableNetSoC | UINT16 | 36553 | %*100.0 | max. possible net state of charge (with currently available batteries/inverters) of the BLOKK combination or standalone BLOKK (0 .. 100%) |
Main_AvailableEnergyCharge | UINT32 | 36560 | Wh | available energy sum of BLOKK combination or standalone BLOKK for charging. |
Main_AvailableEnergyDischarge | UINT32 | 36562 | Wh | available energy sum of BLOKK combination or standalone BLOKK for discharging. |
Group - ExternalControl
Group Data
Description | Start Address |
---|---|
Control interface for a external EMS | 36800 |
Group Inputs (read / write)
Name | Datatype | RegisterAddress | Unit & Scaling | Description |
---|---|---|---|---|
Lifecounter | UINT16 | 36800 | lifecounter from external control / must be increased every 1s | |
TimeoutConnectionLost | UINT16 | 36801 | s | timeout for detection of connection loss if no lifecounter value change / max. 12h (=43200s) BLOKK stops operation if timeout detected |
Priority | UINT16 | 36802 | priority of the EMS to control the BLOKK / set to 0 for standalone operation / set to 1 for following external control set point | |
OperationMode | enum/ExternalControl_OperationMode | 36810 | selection for the EMS control operation mode for active power / set to 2 for direct power set point without grid connection point control | |
SetpointPrimaryPowerActive | INT32 | 36820 | W | primary active power set point => set point power for selected operation mode. Discharge or grid infeed > 0 / charge or grid consumption < 0 |
LimitPowerActiveDischarge | UINT32 | 36830 | W | discharge active power limit for BESS / if no limitation is active, write installed sum inverter power |
LimitPowerActiveCharge | UINT32 | 36832 | W | charge active power limit for BESS / if no limitation is active, write installed sum inverter power |
LimitGridPowerActiveInfeed | INT32 | 36834 | W | usually >= 0 / LimitGridPowerActiveInfeed >= -LimitGridPowerActiveConsumption / grid active power infeed limit / if no limitation is active, use rated power of grid connection point |
LimitGridPowerActiveConsumption | INT32 | 36836 | W | usually >= 0 / LimitGridPowerActiveConsumption >= -LimitGridPowerActiveInfeed / grid active power consumption limit / if no limitation is active, use rated power of grid connection point |
OperationModeReactive | enum/ExternalControl_OperationModeReactive | 36850 | For future use cases selection for the EMS control operation mode for reactive power / default is InverterConfig without possibility to give a reactive power set point !!! reactive power set point is not working without setting the corresponding operation mode at inverter configuration !!! |
|
SetpointPowerReactive | INT32 | 36852 | Var | For future use cases over-excited = voltage-rising = reactive power generation > 0 / under-excited = voltage-lowering = reactive power consumption < 0 |
Group Outputs (read only)
Name | Datatype | RegisterAddress | Unit & Scaling | Description |
---|---|---|---|---|
ExternalControlActive | BOOL | 36870 | signal external control that BLOKK follows it's set points. | |
CurrentOperationMode | enum/ExternalControl_OperationMode | 36871 | feedback of the EMS control operation mode for active power | |
CurrentOperationModeReactive | enum/ExternalControl_OperationModeReactive | 36872 | feedback of the EMS control operation mode for reactive power | |
RealizedPrimaryPowerActiveSetPoint | INT32 | 36873 | W | portion of total active power, that is realized because of the external control primary power setpoint. Discharge > 0 / charge < 0 |