# Modbus Registerlisten

# Modbus Registerliste (auch für Pav,e)

<style id="bkmrk-table.smartdog-regis">
table.smartdog-register {
    border-collapse: collapse;
    width: 100%;
}

table.smartdog-register th,
table.smartdog-register td {
    border: 1px solid #D9E2F3;
    padding: 6px 8px;
    vertical-align: top;
}

table.smartdog-register tbody td:first-child {
    background-color: #9BC2E6;
}

table.smartdog-register thead {
    background-color: #00B0F0;
    font-weight: bold;
}

table.smartdog-register .read-write {
    background-color: #757171;
    color: white;
}

table.smartdog-register .read {
    background-color: #8497B0;
    color: white;
}

table.smartdog-register .notsupported {
    background-color: #FF0000;
    color: white;
}

/* Sonderbereich: Externer EZA-Regler */
table.smartdog-register tr.eza-warning td {
    background-color: #FCE8E6 !important;
    border-top: 3px solid #C00000 !important;
    border-left: 3px solid #C00000 !important;
    border-right: 3px solid #C00000 !important;
    padding: 14px;
}

table.smartdog-register .eza-warning-title {
    color: #C00000;
    font-size: 16px;
    font-weight: bold;
}

table.smartdog-register tr.eza-register td:first-child {
    border-left: 3px solid #C00000 !important;
    background-color: #FCE8E6;
    font-weight: bold;
}

table.smartdog-register tr.eza-register td:last-child {
    border-right: 3px solid #C00000 !important;
}

table.smartdog-register tr.eza-register.eza-last td {
    border-bottom: 3px solid #C00000 !important;
}
</style></head><body>## Allgemeine Register

<table class="smartdog-register" id="bkmrk-register-datentyp-be"><thead><tr> <th>Register</th> <th>Datentyp</th> <th>Beschreibung</th> <th>Einheit</th> <th>Kommentar</th> <th>EVU UnitID=1</th> <th>DVM UnitID=2</th> <th>Sonstige UnitID=3</th></tr></thead><tbody><tr> <td>40000</td> <td>s\_32</td> <td>Aktuelle Einspeiseleistung</td> <td>W</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40002</td> <td>s\_32</td> <td>Aktuelle erzeugte Leistung</td> <td>W</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40004</td> <td>s\_32</td> <td>Maximal zulässige Leistung vom Direktvermarkter</td> <td>W</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read-write">read/write</td> <td class="read">read</td></tr><tr> <td>40006</td> <td>s\_32</td> <td>Maximal zulässige Leistung vom Energieversorger</td> <td>W</td> <td>-1 = Nicht erfasst</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40008</td> <td>s\_32</td> <td>Stellwert cos Phi Energieversorger</td> <td></td> <td> -1 = Nicht erfasst  
 0 - 1000 = induk. cos PHI  
 1000 - 2000 = kap. cos PHI </td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40010</td> <td>s\_32</td> <td>Aktueller cos Phi der Erzeugungsanlage</td> <td></td> <td> -1 = Nicht erfasst  
 0 - 1000 = induk. cos PHI  
 1000 - 2000 = kap. cos PHI </td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40012</td> <td>s\_32</td> <td>Nennleistung der Anlage</td> <td>VA</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40014</td> <td>s\_32</td> <td>Aktivierung/Deaktivierung Leistung Direktvermarkter</td> <td></td> <td> 0 = Deaktiviert  
 1 = Aktiviert  
 2 = Master/Slave Betrieb (nur intern verwendbar) </td> <td class="read">read</td> <td class="read-write">read/write</td> <td class="read">read</td></tr><tr> <td>40016</td> <td>s\_32</td> <td>Aktivierung/Deaktivierung Leistung Energieversorger</td> <td></td> <td> 0 = Deaktiviert  
 1 = Aktiviert  
 2 = Master/Slave Betrieb (nur intern verwendbar) </td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40018</td> <td>s\_32</td> <td>Aktivierung/Deaktivierung cos PHI Energieversorger</td> <td></td> <td> 0 = Deaktiviert  
 1 = Aktiviert  
 2 = Master/Slave Betrieb (nur intern verwendbar) </td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40020</td> <td>s\_32</td> <td>Aktuell verfügbare Wirkleistung</td> <td>W</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40022</td> <td>s\_32</td> <td>Aktueller cos Phi am Übergabepunkt</td> <td></td> <td> -1 = Nicht erfasst  
 0 - 1000 = induk. cos PHI  
 1000 - 2000 = kap. cos PHI </td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40024</td> <td>s\_32</td> <td>Aktuelle Bezugsleistung</td> <td>W</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40026</td> <td>s\_32</td> <td>Gesamtverbrauch</td> <td>W</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40028</td> <td>s\_32</td> <td>Eigenverbrauch</td> <td>W</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40030</td> <td>s\_32</td> <td>Eigenverbrauchsquote Tag</td> <td>%</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40032</td> <td>s\_32</td> <td>Eigenverbrauchsquote Monat</td> <td>%</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40034</td> <td>s\_32</td> <td>Eigenverbrauchsquote Jahr</td> <td>%</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40036</td> <td>s\_32</td> <td>Batterieladung</td> <td>W</td> <td> &lt; 0 = Laden  
 &gt; 0 = Entladen </td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40038</td> <td>s\_32</td> <td>Batterieladezustand</td> <td>%</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40040</td> <td>s\_32</td> <td>Sonneneinstrahlung</td> <td>W/m²</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40042</td> <td>s\_32</td> <td>Helligkeit</td> <td>LUX</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40044</td> <td>s\_32</td> <td>Modultemperatur</td> <td>°C</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40046</td> <td>s\_32</td> <td>Außentemperatur</td> <td>°C</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40048</td> <td>s\_32</td> <td>Blindleistung der Erzeugungsanlage</td> <td>VAr</td> <td> -1 = Nicht erfasst  
 positiv = beziehe Q (kap)  
 negativ = liefere Q (ind) </td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40050</td> <td>s\_32</td> <td>Blindleistung am Einspeisepunkt</td> <td>VAr</td> <td> -1 = Nicht erfasst  
 positiv = beziehe Q (kap)  
 negativ = liefere Q (ind) </td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40052</td> <td>s\_32</td> <td>Aktueller cosPhi am Einspeisepunkt</td> <td></td> <td> -1 = Nicht erfasst  
 0 - 1000 = induk. cos PHI  
 1000 - 2000 = kap. cos PHI </td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40054</td> <td>s\_32</td> <td>Aktuell verfügbare Blindleistung untererregt</td> <td>VAr</td> <td> -1 = Nicht erfasst  
 positiv = beziehe Q (kap)  
 negativ = liefere Q (ind) </td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40056</td> <td>s\_32</td> <td>Aktuell verfügbare Blindleistung übererregt</td> <td>VAr</td> <td> -1 = Nicht erfasst  
 positiv = beziehe Q (kap)  
 negativ = liefere Q (ind) </td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40058</td> <td>s\_32</td> <td>Stellwert Q Energieversorger</td> <td>VAr</td> <td> -1 = Nicht erfasst  
 pos = beziehe Q (untererr.)  
 neg = liefere Q (übererr.) </td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40060</td> <td>s\_32</td> <td>Aktivierung/Deaktivierung Q Vorgabe Energieversorger</td> <td></td> <td> 0 = Deaktiviert  
 1 = Aktiviert  
 2 = Master/Slave Betrieb (nur intern verwendbar) </td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40062</td> <td>s\_32</td> <td>Spannung U1N am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>VAr</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40064</td> <td>s\_32</td> <td>Spannung U2N am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>VAr</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40066</td> <td>s\_32</td> <td>Spannung U3N am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>VAr</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40068</td> <td>s\_32</td> <td>Spannung U12 am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>VAr</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40070</td> <td>s\_32</td> <td>Spannung U23 am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>VAr</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40072</td> <td>s\_32</td> <td>Spannung U31 am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>VAr</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40074</td> <td>s\_32</td> <td>Strom L1 am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>A</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40076</td> <td>s\_32</td> <td>Strom L2 am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>A</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40078</td> <td>s\_32</td> <td>Strom L3 am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>A</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40080</td> <td>s\_32</td> <td>Frequenz am Einspeisepunkt  
(nur bei Carlo Gavazzi EM24)</td> <td>Hz</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40082</td> <td>s\_32</td> <td>BHKW Wirkleistung</td> <td>W</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40084</td> <td>s\_32</td> <td>BHKW Blindleistung</td> <td>VAr</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40086</td> <td>s\_32</td> <td>Gesamt-Nennleistung Master/Slave</td> <td>VA</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40088</td> <td>s\_32</td> <td>Veränderung der Wirkleistung</td> <td>W</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr> <td>40090</td> <td>s\_32</td> <td>Wirkleistung Übergabestation  
(Erzeugerpfeilsystem)</td> <td>W</td> <td>-1 = Nicht erfasst</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td></tr><tr class="eza-warning"><td colspan="8">**⚠ ACHTUNG – Sonderregister für externe EZA-Regler!**  
  
Die Register **40092 und 40094** sind ausschließlich für Anlagen vorgesehen, bei denen ein **externer EZA-Regler** verbaut ist, der entsprechende Sollwerte an den SmartDog übermittelt.  
  
**Diese Register sind NICHT für die normale EVU-Steuerung, Netzbetreiberanbindung oder Fernwirktechnik vorgesehen!**  
  
Die Verwendung ist nur mit einer entsprechenden **SmartDog-Lizenz** möglich.  
  
**Eine Verwendung darf ausschließlich nach vorheriger technischer Abstimmung und Freigabe durch ecodata solutions GmbH erfolgen!**</td></tr><tr class="eza-register"> <td>40092</td> <td>s\_32</td> <td>Vorgabe Wirkleistung von externem EZA-Regler \[0-100\]</td> <td>%</td> <td>Default: 100</td> <td class="read-write">read/write</td> <td class="notsupported">notsupported</td> <td class="notsupported">notsupported</td></tr><tr class="eza-register eza-last"> <td>40094</td> <td>s\_32</td> <td>Vorgabe Blindleistung von externem EZA-Regler</td> <td>VAr</td> <td>Default: 0</td> <td class="read-write">read/write</td> <td class="notsupported">notsupported</td> <td class="notsupported">notsupported</td></tr><tr> <td>40096</td> <td>s\_32</td> <td>Vorgabe Leistung Soll Übergabestation  
nur in Verbindung mit Batterie</td> <td>W</td> <td> -1 = Nicht erfasst  
 &gt; 0 = Bezug  
 &lt; 0 = Liefern </td> <td class="read">read</td> <td class="read-write">read/write</td> <td class="read">read</td></tr><tr> <td>40098</td> <td>s\_32</td> <td>Aktivierung Register 40096</td> <td></td> <td> 0 = Deaktiviert  
 1 = Aktiviert </td> <td class="read">read</td> <td class="read-write">read/write</td> <td class="read">read</td></tr></tbody></table>

## Hinweise zur Modbus-Kommunikation

<p class="callout info"> **Unterstützte Modbus-Funktionscodes:**  
 Read Holding Registers (0x03)  
 Read Input Registers (0x04)  
 Write Multiple Registers (0x10) </p>

<p class="callout danger"> **Timeout der Steuerregister**  
  
 Die Register 40004, 40006, 40008, 40014, 40016, 40018, 40058, 40060, 40096 und 40098 sind mit einem Timeout von 5 Minuten verknüpft.   
  
 Wird länger als 5 Minuten das Register nicht neu beschrieben, wird das Register zurückgesetzt. </p>

### Beispiel zur Kommunikation

Wird eine Wirkleistungsreduktion vorgegeben, bleibt diese solange erhalten, wie der Modbus-Client mit dem Modbus-Server kommuniziert.

Hier wird nicht unterschieden, ob nur Daten abgefragt oder auch gesetzt werden.

## Allgemeine Hinweise

<p class="callout info"> **Vorzeichenkonvention:**  
 Alle Werte sind im Verbraucherpfeilsystem angegeben, sofern beim jeweiligen Register nicht anders beschrieben. </p>

<p class="callout info"> **Blindleistungsvorgabe:**  
 Zur Einstellung der Blindleistung kann entweder Register **40008 (Vorgabe cosPhi)** ODER Register **40058 (Vorgabe Q)** verwendet werden.   
  
 Eine gleichzeitige Verwendung beider Vorgabearten ist nicht vorgesehen. </p>

# Modbus Registerliste Batteriesystem

<style id="bkmrk-table-tbody-td%3Afirst">
  
  table tbody td:first-child, .separator {
    background-color: #9BC2E6;
  }
  table thead {
    background-color:#00B0F0;
    font-weight: bold;
  }
  table .read-write {
    background-color: #757171;
  }
  table .read {
    background-color: #8497B0;
  }
  table .notsupported {
    background-color: #FF0000;
  }
}
</style></head><body><table id="bkmrk-register-datentyp-be"> <thead> <tr> <th>Register</th> <th>Datentyp</th> <th>Beschreibung</th> <th>Einheit</th> <th style="min-width: 50px;">FC</th> <th>Sonderheit</th> <th>EVU UnitID=1</th> <th>DVM UnitID=2</th> <th>Sonstige UnitID=3</th> </tr><tr> </tr></thead> <tbody> <tr> <td>41000</td> <td>float</td> <td>Nennleistung Batteriesytem  
Big Endian</td> <td>kW</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41002</td> <td>float</td> <td>Nennkapazität Batteriesytem  
Big Endian</td> <td>kWh</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41004</td> <td>float</td> <td>Leistung  
Big Endian</td> <td>kW</td> <td>0x03  
0x04</td> <td>&gt; 0 = Laden  
&lt; 0 = Entladen</td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41006</td> <td>u\_16</td> <td>Ladezustand (SOC)  
Big Endian</td> <td>%</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41007</td> <td>u\_16</td> <td>Lebenszustand (SOH)  
Big Endian</td> <td>%</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41008</td> <td>u\_16</td> <td>minimaler SOC bei Eigenverbrauchsregelung  
Big Endian</td> <td>%</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41009</td> <td>u\_16</td> <td>maximaler SOC bei Eigenverbrauchsregelung  
Big Endian</td> <td>%</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41010</td> <td>u\_16</td> <td>minimaler SOC bei Trading  
Big Endian</td> <td>%</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41011</td> <td>u\_16</td> <td>maximaler SOC bei Trading  
Big Endian</td> <td>%</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41012</td> <td>u\_16</td> <td>minimaler SOC bei Peakshaving  
Big Endian</td> <td>%</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41013</td> <td>u\_16</td> <td>maximaler SOC bei Peakshaving  
Big Endian</td> <td>%</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41014</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41015</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41016</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41017</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41018</td> <td>u\_16</td> <td>Verfügbare Energie für Eigenverbrauch  
Big Endian</td> <td>kWh</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41019</td> <td>u\_16</td> <td>Verfügbare Energie für Trading  
Big Endian</td> <td>kWh</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41020</td> <td>u\_16</td> <td>Verfügbare Energie für Peakshaving  
Big Endian</td> <td>kWh</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41021</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41022</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41023</td> <td>u\_64</td> <td>Zählerstand Ladung  
Big Endian</td> <td>Wh</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41027</td> <td>u\_64</td> <td>Zählerstand Entladung  
Big Endian</td> <td>Wh</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41031</td> <td>u\_16</td> <td>Verfügbare Ladeenergie DVM  
Big Endian</td> <td>MW/h / 100</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41032</td> <td>u\_16</td> <td>Verfügbare Entladeenergie DVM  
Big Endian</td> <td>MW/h / 100</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41033</td> <td>u\_16</td> <td>Verfügbare Ladeleistung  
Big Endian</td> <td>MW / 100</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41034</td> <td>u\_16</td> <td>Verfügbare Entladeleistung  
Big Endian</td> <td>MW / 100</td> <td>0x03  
0x04</td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41035</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41036</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41037</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41038</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41039</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41040</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41041</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41042</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41043</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41044</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41045</td> <td></td> <td>RESERVE</td> <td></td> <td></td> <td></td> <td class="read">read</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41046</td> <td>float</td> <td>Vorgabe minimale Entladeleistung  
Direktvermarkter  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>0% bis 100%</td> <td class="read">read</td> <td class="read-write">read/write</td> <td class="read">read</td> </tr> <tr> <td>41048</td> <td>float</td> <td>Vorgabe maximale Entladeleistung  
Direktvermarkter  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>0% bis 100%  
</td> <td class="read">read</td> <td class="read-write">read/write</td> <td class="read">read</td> </tr> <tr> <td>41050</td> <td>float</td> <td>Vorgabe minimale Ladeleistung  
Direktvermarkter  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>0% bis 100%  
</td> <td class="read">read</td> <td class="read-write">read/write</td> <td class="read">read</td> </tr> <tr> <td>41052</td> <td>float</td> <td>Vorgabe maximale Ladeleistung  
Direktvermarkter  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>0% bis 100%  
</td> <td class="read">read</td> <td class="read-write">read/write</td> <td class="read">read</td> </tr> <tr> <td>41054</td> <td>float</td> <td>Fallback minimale Entladeleistung  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>Default: 0%  
0 bis 100</td> <td class="read-write">read/write</td> <td class="read-write">read/write</td> <td class="read">read</td> </tr> <tr> <td>41056</td> <td>float</td> <td>Fallback maximale Entladeleistung  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>Default: 100%  
0 bis 100</td> <td class="read-write">read/write</td> <td class="read-write">read/write</td> <td class="read">read</td> </tr> <tr> <td>41058</td> <td>float</td> <td>Fallback minimale Ladeleistung  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>Default: 0%  
0 bis 100</td> <td class="read-write">read/write</td> <td class="read-write">read/write</td> <td class="read">read</td> </tr> <tr> <td>41060</td> <td>float</td> <td>Fallback maximale Ladeleistung  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>Default: 100%  
0 bis 100</td> <td class="read-write">read/write</td> <td class="read-write">read/write</td> <td class="read">read</td> </tr> <tr> <td>41062</td> <td>float</td> <td>Fallback cosPhi Batterie  
Big Endian</td> <td></td> <td>0x03  
0x04  
0x10</td> <td>Default: 1.00  
-0.950 bis 0.950</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41064</td> <td>float</td> <td>Fallback Blindleistung Batterie  
Big Endian</td> <td>Var</td> <td>0x03  
0x04  
0x10</td> <td>Default: 0  
-0,33\*Pnenn bis + 0,33\*Pnenn</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41066</td> <td>float</td> <td>Vorgabe minimale Entladeleistung  
Energieversorger  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>0% bis 100%</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41068</td> <td>float</td> <td>Vorgabe maximale Entladeleistung  
Energieversorger  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>0% bis 100%  
</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41070</td> <td>float</td> <td>Vorgabe minimale Ladeleistung  
Energieversorger  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>0% bis 100%  
</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41072</td> <td>float</td> <td>Vorgabe maximale Ladeleistung  
Energieversorger  
Big Endian</td> <td>%</td> <td>0x03  
0x04  
0x10</td> <td>0% bis 100%  
</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41074</td> <td>float</td> <td>Vorgabe Stellwert cosPhi  
Energieversorger für Batterie  
Big Endian</td> <td></td> <td>0x03  
0x04  
0x10</td> <td>&gt; 0 = Untererregt  
&lt; 0 = Übererregt  
-0.950 bis 0.950</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41076</td> <td>float</td> <td>Vorgabe Stellwert Blindleistung  
Energieversorger für Batterie  
Big Endian</td> <td>VAr</td> <td>0x03  
0x04  
0x10</td> <td>&gt; 0 = Untererregt  
&lt; 0 = Übererregt  
-0,33\*Pnenn bis + 0,33\*Pnenn</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr> <td>41078</td> <td>float</td> <td>Vorgabespannung Q(U) für Batterie)  
Big Endian</td> <td>V</td> <td>0x03  
0x04  
0x10</td> <td>0 - 35000</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> <tr class="separator"> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>41200</td> <td>s\_16</td> <td>Vorgabe Blindleistungsregelung  
für Batterie  
Big Endian</td> <td></td> <td>0x03  
0x04  
0x06</td> <td>0 = Deaktiviert  
1 = Q(U)  
2 = Q(P)  
3 = Q(Udb)  
4 = vorgabe cosPhi  
5 = vorgabe Q</td> <td class="read-write">read/write</td> <td class="read">read</td> <td class="read">read</td> </tr> </tbody> </table>

<p class="callout info">Funkionscodes: Read Holding Registers (0x03), Read Input Registers (0x04), Write Multiple Registers (0x10) </p>

<p class="callout danger">Ein Ausfall der Verbindung wird erkannt, wenn länger als 300 Sekunden keine Kommunikation stattgefunden hat. Ist das der Fall, so kann am EZA Relger das Verhalten für Wirk- und Blindleistung eingestellt werden. </p>

"Beispiel: Wird eine Wirkleistungsreduktion vorgegeben, bleibt diese solange erhalten, wie der ModBus-Client mit dem ModBus-Server kommuniziert. Hier wird nicht unterschieden, ob nur Daten abgefragt oder auch gesetzt werden." Alle Werte sind Im Verbraucherpfeilsystem angegeben

# Steuerung Direktvermarkter

# Direktvermarktung über Modbus

Über die Modbus-Schnittstelle des SmartDog können Direktvermarkter verschiedene Regelungsarten umsetzen.

Grundsätzlich stehen drei Möglichkeiten zur Verfügung:

1. **PV-Anlage prozentual abregeln**
2. **Leistung am Netzverknüpfungspunkt / Übergabepunkt vorgeben**
3. **Batteriesystem direkt laden oder entladen**

Der Direktvermarkter kommuniziert grundsätzlich mit:

**UNIT-ID: 2**

Die vollständigen Registerlisten finden Sie hier:

- [PV- und Anlagenregister](https://anleitung.smart-dog.eu/link/661)
- [Registerliste Batteriesystem](https://anleitung.smart-dog.eu/link/802)

---

# 1. PV-Anlage prozentual abregeln

Bei dieser Variante gibt der Direktvermarkter vor, auf wie viel Prozent die AC-Leistung der PV-Anlage begrenzt werden soll.

Die Vorgabe erfolgt dabei nicht direkt in Prozent, sondern als absoluter Leistungswert in Watt.

Als Bezugsgröße für die Prozentberechnung dient die **DC-Nennleistung der PV-Anlage** aus Register `40012`.

Der aus der DC-Nennleistung berechnete Prozentwert wird anschließend zur Begrenzung der **AC-Leistung der Anlage** verwendet.

## Benötigte Register

<table id="bkmrk-register-beschreibun"><thead><tr><th>Register</th><th>Beschreibung</th></tr></thead><tbody><tr><td>`40004`</td><td>Maximal zulässige Leistung vom Direktvermarkter in W</td></tr><tr><td>`40014`</td><td>Aktivierung / Deaktivierung Direktvermarkter</td></tr><tr><td>`40000`</td><td>Aktuelle Einspeisung / Lieferung ins Netz</td></tr><tr><td>`40002`</td><td>Aktuell erzeugte Leistung</td></tr><tr><td>`40012`</td><td>DC-Nennleistung der PV-Anlage</td></tr></tbody></table>

Der Direktvermarkter verwendet für den Zugriff:

**UNIT-ID: 2**

---

## Berechnung des Sollwerts

Die DC-Nennleistung aus Register `40012` entspricht der Bezugsgröße für 100 %.

Die Berechnung lautet:

```text
Sollwert [W] = DC-Nennleistung × gewünschter Prozentwert / 100

```

Der berechnete Wert wird anschließend in Register `40004` geschrieben.

Wichtig:

> Die Berechnung des Prozentwerts basiert auf der DC-Nennleistung der PV-Anlage.  
> Der SmartDog begrenzt anschließend die AC-Leistung der Anlage auf den daraus resultierenden Prozentsatz.

---

## Beispiel

Die PV-Anlage besitzt eine DC-Nennleistung von:

```text
Register 40012 = 375000 W

```

Dies entspricht:

```text
100 % = 375000 W DC-Nennleistung

```

### Begrenzung auf 20 %

Berechnung:

```text
375000 × 20 / 100 = 75000 W

```

Zu schreiben:

```text
40004 = 75000
40014 = 1

```

Die Anlage wird dadurch auf **20 % ihrer Leistung** begrenzt.

Die Bezugsgröße für die Berechnung war die DC-Nennleistung, geregelt wird anschließend die AC-Leistung der PV-Anlage.

---

### Begrenzung auf 50 %

Berechnung:

```text
375000 × 50 / 100 = 187500 W

```

Zu schreiben:

```text
40004 = 187500
40014 = 1

```

Die AC-Leistung der Anlage wird damit auf **50 %** begrenzt.

---

### Begrenzung auf 100 %

Berechnung:

```text
375000 × 100 / 100 = 375000 W

```

Zu schreiben:

```text
40004 = 375000
40014 = 1

```

Damit wird dem Direktvermarkter eine Begrenzung auf 100 % vorgegeben.

---

## Aktivierung der Direktvermarkter-Vorgabe

Die Vorgabe aus Register `40004` muss über Register `40014` aktiviert werden.

```text
40014 = 1

```

<table id="bkmrk-wert-funktion-0-dire"><thead><tr><th>Wert</th><th>Funktion</th></tr></thead><tbody><tr><td>`0`</td><td>Direktvermarkter-Vorgabe deaktiviert</td></tr><tr><td>`1`</td><td>Direktvermarkter-Vorgabe aktiviert</td></tr></tbody></table>

Zum Deaktivieren:

```text
40014 = 0

```

---

## Kurzablauf

1. DC-Nennleistung aus Register `40012` lesen
2. Gewünschten Prozentwert berechnen
3. Berechneten Wattwert in Register `40004` schreiben
4. Direktvermarkter-Vorgabe über Register `40014 = 1` aktivieren
5. Sollwerte regelmäßig aktualisieren

Beispiel:

```text
DC-Nennleistung: 375000 W
gewünschte Begrenzung: 30 %

375000 × 30 / 100 = 112500 W

40004 = 112500
40014 = 1

```

Ergebnis:

**Die AC-Leistung der PV-Anlage wird auf 30 % begrenzt.**

---

# 2. Leistung am Netzverknüpfungspunkt vorgeben

Alternativ zur direkten Begrenzung der PV-Leistung kann ein Sollwert für die Wirkleistung am Netzverknüpfungspunkt bzw. Übergabepunkt vorgegeben werden.

Diese Regelungsart ist insbesondere in Verbindung mit einem steuerbaren Batteriesystem interessant.

Der SmartDog regelt die angeschlossenen Erzeuger und Speicher so, dass der gewünschte Leistungswert am Übergabepunkt erreicht wird.

## Benötigte Register

<table id="bkmrk-register-beschreibun-1"><thead><tr><th>Register</th><th>Beschreibung</th></tr></thead><tbody><tr><td>`40090`</td><td>Aktuelle Wirkleistung an der Übergabestation</td></tr><tr><td>`40096`</td><td>Sollwert Wirkleistung Übergabestation</td></tr><tr><td>`40098`</td><td>Aktivierung des Sollwerts aus Register 40096</td></tr></tbody></table>

Der Direktvermarkter verwendet:

**UNIT-ID: 2**

---

## Vorzeichen

Die Leistung wird im Verbraucherpfeilsystem angegeben.

Für Register `40096` gilt:

```text
> 0 W = Bezug aus dem Netz
< 0 W = Lieferung / Einspeisung ins Netz

```

---

## Beispiel: 0 W am Netzverknüpfungspunkt

Soll weder Energie bezogen noch eingespeist werden:

```text
40096 = 0
40098 = 1

```

Der SmartDog versucht anschließend, durch die Regelung des Batteriesystems den Netzverknüpfungspunkt auf 0 W zu halten.

---

## Beispiel: 50 kW Einspeisung

Gewünschte Einspeisung:

```text
50 kW = 50000 W

```

Da Lieferung bzw. Einspeisung negativ dargestellt wird:

```text
40096 = -50000
40098 = 1

```

Ziel:

```text
50 kW Einspeisung am Netzverknüpfungspunkt

```

---

## Beispiel: 30 kW Netzbezug

Gewünschter Bezug:

```text
30 kW = 30000 W

```

Zu schreiben:

```text
40096 = 30000
40098 = 1

```

Ziel:

```text
30 kW Bezug am Netzverknüpfungspunkt

```

---

## Aktivierung

Der Sollwert aus Register `40096` wird über Register `40098` aktiviert.

Aktivieren:

```text
40098 = 1

```

Deaktivieren:

```text
40098 = 0

```

---

# Unterschied zwischen PV-Abregelung und NVP-Regelung

Die beiden Regelungsarten verfolgen unterschiedliche Ziele.

## PV-Abregelung

Hier wird vorgegeben:

> Wie stark darf die PV-Anlage maximal produzieren?

Beispiel:

```text
PV-Anlage auf 40 % begrenzen

```

Verwendete Register:

```text
40012 = DC-Nennleistung lesen
40004 = daraus berechneten Sollwert schreiben
40014 = Regelung aktivieren

```

---

## NVP-Regelung

Hier wird vorgegeben:

> Welche Wirkleistung soll tatsächlich am Netzverknüpfungspunkt anliegen?

Beispiel:

```text
Es sollen genau 50 kW ins Netz eingespeist werden.

```

Zu schreiben:

```text
40096 = -50000
40098 = 1

```

Der SmartDog regelt das Batteriesystem entsprechend, um diesen Wert am Netzverknüpfungspunkt einzuhalten.

---

# 3. Batteriesystem direkt steuern

Der Direktvermarkter kann alternativ das Batteriesystem direkt beeinflussen.

Hierbei wird nicht auf einen bestimmten Wert am Netzverknüpfungspunkt geregelt.

Stattdessen gibt der Direktvermarkter direkt vor, in welchem Leistungsbereich die Batterie laden oder entladen darf.

Die vollständige Registerliste finden Sie hier:

[Batterie-Modbus-Registerliste](https://anleitung.smart-dog.eu/link/802)

---

## Kommunikation

Für den Direktvermarkter gilt:

```text
UNIT-ID = 2

```

Die Leistungsvorgaben werden als:

```text
Float 32 Bit
Big Endian

```

übertragen.

Zum Schreiben kann verwendet werden:

```text
Function Code 0x10
Write Multiple Registers

```

---

## Wichtige Statusregister

<table id="bkmrk-register-beschreibun-2"><thead><tr><th>Register</th><th>Beschreibung</th><th>Einheit</th></tr></thead><tbody><tr><td>`41000`</td><td>Nennleistung Batteriesystem</td><td>kW</td></tr><tr><td>`41002`</td><td>Nennkapazität Batteriesystem</td><td>kWh</td></tr><tr><td>`41004`</td><td>Aktuelle Batterieleistung</td><td>kW</td></tr><tr><td>`41006`</td><td>Ladezustand / SOC</td><td>%</td></tr></tbody></table>

Für Register `41004` gilt:

```text
> 0 = Batterie lädt
< 0 = Batterie entlädt

```

---

# Leistungsvorgaben des Direktvermarkters

Dem Direktvermarkter stehen vier Register zur Vorgabe der Lade- und Entladeleistung zur Verfügung:

<table id="bkmrk-register-beschreibun-3"><thead><tr><th>Register</th><th>Beschreibung</th><th>Bereich</th></tr></thead><tbody><tr><td>`41046`</td><td>Minimale Entladeleistung</td><td>0–100 %</td></tr><tr><td>`41048`</td><td>Maximale Entladeleistung</td><td>0–100 %</td></tr><tr><td>`41050`</td><td>Minimale Ladeleistung</td><td>0–100 %</td></tr><tr><td>`41052`</td><td>Maximale Ladeleistung</td><td>0–100 %</td></tr></tbody></table>

Die Register sind über **UNIT-ID 2** beschreibbar.

Über minimale und maximale Leistung kann jeweils ein Leistungsbereich vorgegeben werden.

---

## Batterie mit fester Leistung entladen

Soll die Batterie beispielsweise mit genau 50 % ihrer möglichen Entladeleistung arbeiten, werden Minimal- und Maximalwert identisch gesetzt.

```text
41046 = 50.0
41048 = 50.0

41050 = 0.0
41052 = 0.0

```

Damit gilt:

```text
Entladeleistung = 50 %
Ladeleistung = 0 %

```

---

## Batterie mit fester Leistung laden

Soll die Batterie mit genau 60 % laden:

```text
41046 = 0.0
41048 = 0.0

41050 = 60.0
41052 = 60.0

```

Damit gilt:

```text
Entladeleistung = 0 %
Ladeleistung = 60 %

```

---

## Entladeleistung begrenzen

Soll die Batterie entladen dürfen, jedoch maximal mit 50 %:

```text
41046 = 0.0
41048 = 50.0

```

Damit wird ein zulässiger Entladebereich von:

```text
0 % bis 50 %

```

vorgegeben.

---

## Ladeleistung begrenzen

Soll die Batterie laden dürfen, jedoch maximal mit 40 %:

```text
41050 = 0.0
41052 = 40.0

```

Damit wird ein zulässiger Ladebereich von:

```text
0 % bis 40 %

```

vorgegeben.

---

## Entladung verhindern

Soll die Batterie nicht entladen werden dürfen:

```text
41046 = 0.0
41048 = 0.0

```

Die Ladung kann unabhängig davon freigegeben werden.

Beispiel:

```text
41050 = 0.0
41052 = 100.0

```

Damit gilt:

```text
Entladen: nicht erlaubt
Laden: 0 bis 100 % erlaubt

```

---

## Ladung verhindern

Soll die Batterie nicht geladen werden dürfen:

```text
41050 = 0.0
41052 = 0.0

```

Die Entladung kann beispielsweise vollständig freigegeben werden:

```text
41046 = 0.0
41048 = 100.0

```

Damit gilt:

```text
Laden: nicht erlaubt
Entladen: 0 bis 100 % erlaubt

```

---

## Batterie weder laden noch entladen

```text
41046 = 0.0
41048 = 0.0
41050 = 0.0
41052 = 0.0

```

Damit werden Lade- und Entladeleistung auf 0 % begrenzt.

---

## Vollständigen Leistungsbereich freigeben

Soll der Direktvermarkter keine Einschränkung der Batterie vorgeben:

```text
41046 = 0.0
41048 = 100.0

41050 = 0.0
41052 = 100.0

```

Damit sind Laden und Entladen jeweils im gesamten Bereich von 0 bis 100 % möglich.

---

# Fallback bei Kommunikationsausfall

Für die Batteriesteuerung stehen zusätzliche Fallback-Werte zur Verfügung.

<table id="bkmrk-register-beschreibun-4"><thead><tr><th>Register</th><th>Beschreibung</th><th>Standardwert</th></tr></thead><tbody><tr><td>`41054`</td><td>Fallback minimale Entladeleistung</td><td>0 %</td></tr><tr><td>`41056`</td><td>Fallback maximale Entladeleistung</td><td>100 %</td></tr><tr><td>`41058`</td><td>Fallback minimale Ladeleistung</td><td>0 %</td></tr><tr><td>`41060`</td><td>Fallback maximale Ladeleistung</td><td>100 %</td></tr></tbody></table>

Diese Werte bestimmen das Verhalten der Batteriesteuerung, wenn keine gültige Vorgabe des Direktvermarkters mehr vorhanden ist.

---

# Timeout der Direktvermarkter-Vorgaben

Die folgenden Register sind mit einem Timeout von 5 Minuten verknüpft:

```text
40004
40006
40008
40014
40016
40018
40058
40060
40096
40098

```

Wird eines dieser Register länger als 5 Minuten nicht neu beschrieben, setzt sich der jeweilige Wert automatisch zurück.

Der Direktvermarkter sollte die benötigten Sollwerte deshalb zyklisch übertragen.

---

# Zusammenfassung

<table id="bkmrk-regelungsart-registe"><thead><tr><th>Regelungsart</th><th>Register</th><th>Vorgabe</th></tr></thead><tbody><tr><td>PV prozentual begrenzen</td><td>`40004`, `40014`</td><td>Wattwert berechnet aus DC-Nennleistung</td></tr><tr><td>Leistung am NVP regeln</td><td>`40096`, `40098`</td><td>Leistung in W</td></tr><tr><td>Batterie entladen</td><td>`41046`, `41048`</td><td>0–100 %</td></tr><tr><td>Batterie laden</td><td>`41050`, `41052`</td><td>0–100 %</td></tr></tbody></table>

Für den Direktvermarkter gilt grundsätzlich:

```text
UNIT-ID = 2

```

## Vollständige Registerlisten

- [PV- und Anlagenregister](https://anleitung.smart-dog.eu/link/661)
- [Batterie-Modbus-Registerliste](https://anleitung.smart-dog.eu/link/802)

```

```

# Steuerung EVU per ModbusTCP/RTU

# EVU-Steuerung über Modbus

Über die Modbus-Schnittstelle des SmartDog kann der Energieversorger (EVU) die Wirkleistung einer PV-Anlage begrenzen.

Dabei kann die **PV-Anlage prozentual abgeregelt** werden.

Der Energieversorger kommuniziert grundsätzlich mit:

**UNIT-ID: 1**

Die vollständige Registerliste finden Sie hier:

- [PV- und Anlagenregister](https://anleitung.smart-dog.eu/link/661)

---

# 1. PV-Anlage prozentual abregeln

Bei dieser Variante gibt der Energieversorger vor, auf wie viel Prozent die AC-Leistung der PV-Anlage begrenzt werden soll.

Die Vorgabe erfolgt dabei nicht direkt in Prozent, sondern als absoluter Leistungswert in Watt.

Als Bezugsgröße für die Prozentberechnung dient die **DC-Nennleistung der PV-Anlage** aus Register `40012`.

Der aus der DC-Nennleistung berechnete Prozentwert wird anschließend zur Begrenzung der **AC-Leistung der Anlage** verwendet.

## Benötigte Register

<table id="bkmrk-register-beschreibun"><thead><tr><th>Register</th><th>Beschreibung</th></tr></thead><tbody><tr><td>`40006`</td><td>Maximal zulässige Leistung vom Energieversorger in W</td></tr><tr><td>`40016`</td><td>Aktivierung / Deaktivierung Energieversorger</td></tr><tr><td>`40000`</td><td>Aktuelle Einspeisung / Lieferung ins Netz</td></tr><tr><td>`40002`</td><td>Aktuell erzeugte Leistung</td></tr><tr><td>`40012`</td><td>DC-Nennleistung der PV-Anlage</td></tr></tbody></table>

Der Energieversorger verwendet für den Zugriff:

**UNIT-ID: 1**

---

## Berechnung des Sollwerts

Die DC-Nennleistung aus Register `40012` entspricht der Bezugsgröße für 100 %.

Die Berechnung lautet:

```text
Sollwert [W] = DC-Nennleistung × gewünschter Prozentwert / 100

```

Der berechnete Wert wird anschließend in Register `40006` geschrieben.

Wichtig:

> Die Berechnung des Prozentwerts basiert auf der DC-Nennleistung der PV-Anlage.  
> Der SmartDog begrenzt anschließend die AC-Leistung der Anlage auf den daraus resultierenden Prozentsatz.

---

## Beispiel

Die PV-Anlage besitzt eine DC-Nennleistung von:

```text
Register 40012 = 375000 W

```

Dies entspricht:

```text
100 % = 375000 W DC-Nennleistung

```

### Begrenzung auf 20 %

Berechnung:

```text
375000 × 20 / 100 = 75000 W

```

Zu schreiben:

```text
40006 = 75000
40016 = 1

```

Die Anlage wird dadurch auf **20 % ihrer Leistung** begrenzt.

Die Bezugsgröße für die Berechnung war die DC-Nennleistung, geregelt wird anschließend die AC-Leistung der PV-Anlage.

---

### Begrenzung auf 50 %

Berechnung:

```text
375000 × 50 / 100 = 187500 W

```

Zu schreiben:

```text
40006 = 187500
40016 = 1

```

Die AC-Leistung der Anlage wird damit auf **50 %** begrenzt.

---

### Begrenzung auf 100 %

Berechnung:

```text
375000 × 100 / 100 = 375000 W

```

Zu schreiben:

```text
40006 = 375000
40016 = 1

```

Damit wird dem Energieversorger eine Begrenzung auf 100 % vorgegeben.

---

## Aktivierung der EVU-Vorgabe

Die Vorgabe aus Register `40006` muss über Register `40016` aktiviert werden.

```text
40016 = 1

```

<table id="bkmrk-wert-funktion-0-evu-"><thead><tr><th>Wert</th><th>Funktion</th></tr></thead><tbody><tr><td>`0`</td><td>EVU-Vorgabe deaktiviert</td></tr><tr><td>`1`</td><td>EVU-Vorgabe aktiviert</td></tr></tbody></table>

Zum Deaktivieren:

```text
40016 = 0

```

---

## Kurzablauf

1. DC-Nennleistung aus Register `40012` lesen
2. Gewünschten Prozentwert berechnen
3. Berechneten Wattwert in Register `40006` schreiben
4. EVU-Vorgabe über Register `40016 = 1` aktivieren
5. Sollwerte regelmäßig aktualisieren

Beispiel:

```text
DC-Nennleistung: 375000 W
gewünschte Begrenzung: 30 %

375000 × 30 / 100 = 112500 W

40006 = 112500
40016 = 1

```

Ergebnis:

**Die AC-Leistung der PV-Anlage wird auf 30 % begrenzt.**