Verwendete Abkürzungen12
Register Maps12
Antwortzeiten13
Modbus Geräte-ID für Wechselrichter13
Modbus Geräte-ID für Energiezähler13
Registeradressen13
Nicht vorhandene Datensätze16
Zeitverhalten der unterstützten Betriebsarten17
Vorzeichenkonvention für den Power Factor18
Auf der Karte gespeicherte Werte18
Skalierungsfaktoren19
Nicht beschreibbare Register19
Schreiben ungültiger Werte19
Allgemeines32
Bereitgestellte Informationen32
Leistungsfenster-Vorgaben32
Vorgabe des minmalen Ladestandes34
Laden des Energiespeichers vom Netz34
Basic Storage Controls Register34
Register- und Batteriestatusänderungen in Fronius Solar.web34
Meter Model36
Meter Model Register36
End Block37
Allgemeines37
End Block37
4
Das Modbus Protokoll
AllgemeinesDie Beschreibung des Protokolls entstammt zum größten Teil den Modbus Spezi-
fikationen, die öffentlich auf www.modbus.org/specs.php erhältlich sind.
Modbus ist ein einfaches, offenes Kommunikationsprotokoll, mit dem eine Master-Slave- oder Client-Server-Kommunikation zwischen den am Netzwerk angeschlossenen Geräten realisiert werden kann. Das Grundprinzip von Modbus ist:
Ein Master sendet eine Anfrage und ein Slave antwortet darauf. Bei Modbus TCP
wird der Master als Client, ein Slave als Server bezeichnet. Die Funktion ist dieselbe. In weiterer Folge werden für die Beschreibungen der Funktionen des Protokolls unabhängig von den Varianten RTU und TCP nur die gebräuchlicheren Namen Master und Slave verwendet. In Fällen, wo Unterschiede bei zwischen RTU
und TCP auftreten, wird speziell darauf hingewiesen.
Am Wechselrichter kann Modbus auf 2 Arten benutzt werden:
Modbus TCP
-
Mittels TCP/IP über Ethernet (kabelgebunden oder über WLAN)
Modbus RTU
-
Mittels asynchroner serieller Übertragung über RS-485 (EIA/TIA-485-A)
Im Fall von Modbus RTU kann es immer nur einen Master im System geben.
Grundsätzlich gilt, dass nur ein Master Anforderungen (Requests) initiieren darf.
Ein Slave darf nur antworten (Response), wenn dieser vom Master angesprochen
wurde; untereinander dürfen die Slaves nicht kommunizieren. Wird ein Broadcast
Request (Anforderung an alle vorhandenen Slaves per Slave ID oder Unit ID 0)
ausgesendet, darf keiner der Slaves antworten. Daher können Broadcasts nur für
Schreibbefehle verwendet.
DE
Wenn ein Master eine Anforderung an einen Slave sendet, dann erwartet dieser
eine Antwort. Bei einer Anforderung eines Masters gibt es eine von fünf Möglichkeiten:
Erhält der Slave die Anforderung ohne Kommunikationsfehler und kann die-
-
ser die Anforderung fehlerfrei bearbeiten, dann wird eine normale Antwort
mit den gewünschten Daten zurückgesendet.
Erhält der Slave die Anforderung wegen eines Kommunikationsfehlers nicht,
-
dann wird keine Antwort gesendet. Das führt zu einem Timeout am Master.
Erhält der Slave die Anforderung, entdeckt aber einen Kommunikationsfeh-
-
ler (Parity, CRC, …), wird keine Antwort gesendet. Das führt zu einem Timeout am Master.
Erhält der Slave die Anforderung ohne Kommunikationsfehler, kann aber die-
-
se nicht fehlerfrei bearbeiten (z. B. wenn ein nicht vorhandenes Register ausgelesen werden soll), wird eine Fehlernachricht (Exception Response) mit
dem Grund für den Fehler zurückgesendet.
Erhält der Slave eine Broadcast Anforderung, die auch an alle anderen
-
Geräte geht, so wird weder im Fehlerfall noch wenn die Anforderung erfolgreich bearbeitet wurde, eine Antwort gesendet. Daher sind Broadcast Anforderungen nur für Schreibbefehle geeignet.
Modbus Geräte stellen Daten in 16 Bit großen Datenblöcken (Register) zur
Verfügung.
In bestimmten Fällen können einzelne Datenpunkte auch mehrere Datenblöcke
umfassen (z. B. 2 Register = 32 Bit Wert).
Aufbau von Modbus Nachrichten
Eine Modbus Nachricht besteht grundsätzlich aus der Protokolldateneinheit
(protocol data unit, PDU). Diese ist von darunter liegenden Kommunikations-
5
schichten unabhängig.
Abhängig von dem verwendeten Bus oder Netzwerk können noch weitere Felder
hinzukommen. Diese Struktur wird dann Anwendungsdateneinheit (application
data unit, ADU) genannt.
ADU
AdressfeldFunktionscodeDatenCRC
PDU
Struktur einer Modbus Nachricht bei Modbus RTU
ADU
MBAP HeaderFunktionscodeDaten
PDU
Struktur einer Modbus Nachricht bei Modbus TCP
Für Modbus TCP wird ein eigener Header verwendet, um die Anwendungsdateneinheit zu identifizieren. Dieser Header heißt MBAP Header (MODBUS Application Protocol Header).
Die Größe der Protokolldateneinheit (PDU) ist limitiert, bedingt durch die ersten
Modbus Implementierungen in einem seriellen Netzwerk (max. RS485 ADU =
256 Bytes). Dadurch ergibt sich für die Größe der Protokolldateneinheit PDU:
PDU = 256 – Slave ID (1 Byte) – CRC (2 Bytes) = 253 Bytes
Damit ergibt sich:
Transaction ID (2 Bytes): Wird benutzt, um Anfrage und Antwort zu syn-
-
chronisieren. Der Slave übernimmt die Transaction ID von der Anfrage in die
Antwort.
Protocol ID (2 Bytes): Ist immer 0 (Modbus Protokoll).
-
Länge (2 Bytes): Das Längenfeld enthält die Anzahl der Bytes der nachkom-
-
menden Felder, einschließlich Unit ID und Datenfelder.
Unit ID (1 Byte): Dieses Feld wird zur Adressierung der am Wechselrichter
-
angeschlossenen Geräte verwendet (Gateway-Funktion). Die Unit ID entspricht der Slave ID bei Modbus RTU. Der Wert wird vom Master vorgegeben
und wird vom Slave unverändert mit der Antwort zurückgegeben.
Für Details über die Adressierung der Geräte siehe:
Modbus Geräte-ID für Wechselrichter auf Seite 13
-
Modbus Geräte-ID für Energiezähler auf Seite 13
-
WICHTIG! Die richtige Unit ID muss immer angegeben werden, auch wenn
der Fronius Datamanager nur mit einem einzelnen Wechselrichter verbunden
ist.
Der Funktionscode bestimmt die am Slave auszuführende Aktion. Drei Funktionscodes für Lese- und Schreiboperationen werden unterstützt:
-
-
-
03 (0x03)
06 (0x06)
16 (0x10)
1)
Read Holding Registers
1)
Write Single Register
1)
Write Multiple Registers
6
Tritt am Slave bei der Bearbeitung einer Anforderung ein Fehler auf, so wird eine
Fehlernachricht als Antwort (Exception Response) gesendet. Bei einer solchen
Antwort wird beim Funktionscode das höchstwertige Bit auf 1 gesetzt (ent-
spricht einer Addition des Funktionscodes mit 0x80)
1)
und ein Exception Code
hinzugefügt, der den Grund des Fehlers angibt.
1)
Das Prefix "0x" steht für hexadezimale Zahlen
DE
03 (0x03) Read
Holding Registers
Dieser Funktionscode wird dazu verwendet, den Inhalt eines oder mehrerer aufeinanderfolgenden Register eines Gerätes auszulesen. Die Anforderung enthält
die Adresse des ersten auszulesenden Registers und die Anzahl der zu lesenden
Register. In der Anforderung werden Register beginnend bei 0 adressiert. Das bedeutet, dass die Register 1 bis 16 über die Adressen 0 bis 15 angesprochen werden.
Anforderung
Funktionscode1 Byte0x03
Startadresse2 Bytes0x0000 bis 0xFFFF (0 bis
65535)
Anzahl der Register2 Bytes1 bis 125
Antwort
Funktionscode1 Byte0x03
Anzahl der Bytes1 Byte2 x N*
RegisterwerteN* x 2 Bytes
*N = Anzahl der Register
Fehler
06 (0x06) Write
Single Register
Fehlercode1 Byte0x83
Exception Code1 Byte01 oder 02 oder 03 oder 04 oder
11
Dieser Funktionscode wird dazu verwendet, ein einzelnes Register zu beschreiben. Die Anforderung enthält nur die Adresse des zu beschreibenden Registers.
Register werden beginnend bei 0 adressiert. Das bedeutet, dass das Register 1
über die Adresse 0 angesprochen. Die normale Antwort ist eine Kopie der Anforderung, die nach dem erfolgreichen Beschreiben des Registers gesendet wird.
Anforderung
Funktionscode1 Byte0x06
Registeradresse2 Bytes0x0000 bis 0xFFFF (0 bis
65535)
Registerwert2 Bytes
7
Antwort
Funktionscode1 Byte0x06
Registeradresse2 Bytes0x0000 bis 0xFFFF (0 bis
65535)
Registerwert2 Bytes
Fehler
Fehlercode1 Byte0x86
Exception Code1 Byte01 oder 02 oder 03 oder 04 oder
11
16 (0x10) Write
Multiple Registers
Dieser Funktionscode wird dazu verwendet, einen Block von aufeinanderfolgenden Registern zu beschreiben. Die Anforderung enthält die Adresse des ersten
zu beschreibenden Registers, die Anzahl der zu beschreibenden Register, die Anzahl der zu schreibenden Bytes und die zu schreibenden Werte (2 Bytes pro Register). Die normale Antwort enthält den Funktionscode, die Startadresse und
die Anzahl der beschriebenen Register.
Anforderung
Funktionscode1 Byte0x10
Startadresse2 Bytes0x0000 bis 0xFFFF (0 bis
65535)
Anzahl der Register2 Bytes1 bis 123
Anzahl der Bytes1 Byte2 x N*
RegisterwerteN* x 2 Bytes
*N = Anzahl der Register
Antwort
Funktionscode1 Byte0x10
Startadresse2 Bytes0x0000 bis 0xFFFF (0 bis
65535)
Anzahl der Register2 Bytes1 bis 123
Fehler
Fehlercode1 Byte0x90
Exception Code1 Byte01 oder 02 oder 03 oder 04 oder
11
8
Exception CodesEine Fehlernachricht (Exception Response) besitzt zwei Felder, die sie von einer
normalen Antwort unterscheidet:
Feld Funktionscode
-
In einer normalen Antwort wird der Funktionscode der Anforderung in das
Funktionscode Feld der Antwort übernommen. Bei allen Funktionscodes ist
das höchstwertige Bit (MSB) 0 (die Werte der Funktionscodes sind alle kleiner als 0x80). In einer Fehlernachricht wird das MSB auf 1 gesetzt. Das bedeutet eine Addition des Wertes für den Funktionscode mit 0x80. Aufgrund
des gesetzten MSB kann der Master die Antwort als Fehlernachricht identifizieren.
Datenfeld
-
Eine normale Antwort enthält Daten oder Statistikwerte im Datenfeld. Bei einer Fehlernachricht wird ein Exception Code im Datenfeld zurückgeliefert.
Dieser Exception Code zeigt den Grund für die Fehlernachricht an.
Modbus Exception Codes
CodeNameBedeutung
01ILLEGAL FUNCTIONDer Funktionscode in der Anforderung wird
vom Slave nicht unterstützt.
DE
CRC Berechnung für Modbus
RTU
02ILLEGAL DATA AD-
DRESS
03ILLEGAL DATA VALUEEin Wert in der Anforderung ist außerhalb
04SLAVE DEVICE FAILU-REWährend des Versuchs, ein oder mehrere
11GATEWAY TARGET
DEVICE FAILED TO
RESPOND
Jede Modbus RTU Nachricht wird mit einer Prüfsumme (CRC, Cyclic Redundancy Check) versehen, um Übertragungsfehler erkennen zu können. Die Prüfsumme ist 2 Bytes groß. Sie wird vom sendenden Gerät berechnet und an die zu sendende Nachricht angehängt. Der Empfänger berechnet seinerseits über alle
Bytes der erhaltenen Nachricht (ohne CRC) die Prüfsumme und vergleicht diese
mit der empfangenen Prüfsumme. Wenn diese beiden Prüfsummen unterschiedlich sind, ist ein Fehler aufgetreten.
Es werden ungültige Registeradressen abgefragt.
des gültigen Bereichs. Dies gilt sowohl für
die Felder einer Anforderung (z. B. ungültige
Anzahl an Registern) als auch für ungültige
Einstellungswerte der SunSpec Inverter
Control Models.
Register zu beschreiben, ist ein Fehler aufgetreten.
Das angesprochene Gerät ist ausgeschaltet
und kann nicht gefunden werden.
Die Berechnung der Prüfsumme beginnt mit dem Setzen aller Bits eines 16 Bit
Registers (CRC Register) auf 1 (0xFFFF). Danach werden alle Bytes der Nachricht einzeln mit dem CRC Register verarbeitet. Nur die Datenbytes einer Nachricht werden zur Berechnung herangezogen. Start-, Stopp- und Paritätsbits werden nicht berücksichtigt.
Während der Berechnung der CRC wird jedes Byte mit dem CRC Register XORverknüpft. Danach wird das Ergebnis in Richtung des niederwertigsten Bits (LSB)
verschoben und das höchstwertige Bit (MSB) auf 0 gesetzt. Das LSB wird betrachtet. Wenn das LSB vorhin 1 war, wird das CRC Register mit einem fix vorgegebenen Wert XOR-verknüpft. War das LSB 0, dann ist nichts zu tun.
9
Dieser Prozess wird so oft wiederholt, bis das CRC Register 8 Mal verschoben
wurde. Nach dem letzten (achten) Schiebevorgang, wird das nächste Byte genommen und mit dem aktuellen CRC Register XOR-verknüpft. Danach beginnt
der Schiebeprozess von vorne; wieder wird 8 Mal verschoben. Nach Abhandlung
aller Bytes der Nachricht ist der Wert des CRC Registers die Prüfsumme.
CRC Prüfsumme
berechnen
10
Berechnungsalgorithmus der CRC16
Initialisierung eines 16 Bit Registers (2 Bytes) mit 0xFFFF. Dieses Register
1
wird als CRC16 Register bezeichnet.
XOR-Verknüpfung des ersten Bytes der Nachricht mit dem niederwertigen
2
Byte des CRC16 Registers. Das Ergebnis wird im CRC16 Register gespeichert.
Verschieben des CRC16 Registers um 1 Bit nach rechts (in Richtung LSB),
3
MSB mit 0 auffüllen. LSB betrachten.
LSB Wert überprüfen
4
War das LSB 0: Gehe zu Schritt 3 (neuerlich verschieben).
-
War das LSB 1: XOR Verknüpfung des CRC16 Registers mit dem CRC
-
Polynom 0xA001 (1010 0000 0000 0001).
Wiederholung der Schritte 3 und 4 bis 8 Schiebeoperationen durchgeführt
5
worden sind. Wenn diese durchgeführt wurden, wurde ein komplettes Byte
der Nachricht bearbeitet.
Wiederholung der Schritte 3 bis 5 für das nächste Byte der Nachricht. Das
6
ganze wiederholen bis alle Bytes der Nachricht abgearbeitet wurden.
Nach dem letzten Byte enthält das CRC16 Register die Prüfsumme.
7
Wenn die Prüfsumme an die zu sendende Nachricht angehängt wird, dann
8
müssen die beiden Bytes wie unten beschreiben vertauscht werden.
DE
CRC Prüfsumme
zur Nachricht
hinzufügen
Wenn die 16 Bit (2 Bytes) CRC Prüfsumme mit einer Nachricht versendet wird,
dann wird das niederwertige vor dem höherwertigen Byte übertragen.
Zum Beispiel, wenn die CRC Prüfsumme 0x1241 (0001 0010 0100 0001) ist:
AddrFuncData
Count
DataDataDataDataCRC
Lo
CRC
Hi
0x410x12
11
Allgemeines
Verwendete
Abkürzungen
ACWechselstrom
DCGleichstrom
FWFirmware
PF
PVPhotovoltaik
RTCEchtzeit-Uhr
SFSkalierungsfaktor
SWSoftware
VSpannung (Volt)
VAScheinleistung
VArBlindleistung
VMaxMaximale Spannung
VMinMinimale Spannung
VRefReferenzspannung
WLeistung (Watt)
WRWechselrichter
Power Factor (cos j)
Register Maps
WechselrichterEnergiezähler
SID
Identifizierung als SunSpec Gerät
Common Block
Geräteinformationen
Inverter Model
Wechselrichter-Daten
Nameplate ModelEnd Block
Basic Settings Model
Ext. Measurement Model
Immediate Controls Model
Multi. MPPT Inv. Ext. Model
Basic Storage Control
End Block
Die Registerlisten können von der Fronius Homepage heruntergeladen werden:
https://www.fronius.com/de/downloads / Solar Energy / Modbus Sunspec Maps,
State Codes und Events
SID
Identifizierung als SunSpec Gerät
Common Block
Geräteinformationen
Meter Model
Energiezähler-Daten
12
AntwortzeitenEmpfehlung für Timeout-Werte
Modbus-Abfragen sollten nur sequenziell und nicht parallel ausgeführt werden
(maximal 2 Anfragen parallel). Die Abfragen mit einem Timeout von mindestens 1
Sekunden durchführen. Abfragen im Millisekunden-Takt können zu langen Antwortzeiten führen.
Multiple Registerabfragen in einer Nachricht sind schneller als mehrere Abfragen
einzelner Register.
DE
Modbus GeräteID für Wechselrichter
Modbus GeräteID für Energiezähler
TCP: Die unit-id vom Wechselrichter ist immer 0x01. Die Identifikation ist durch
die IP-Adresse möglich.
RTU: Die slave-id muss auf der Weboberfläche des GEN24 konfiguriert werden.
Es können mehrere GEN24-Geräte zusammengeschalten werden. Jedes Gerät
muss eine eindeutige Nummer besitzen.
Ist ein Energiezähler (z. B. Fronius Smart Meter 63A) per Modbus RTU angeschlossen, kann dieser per Modbus TCP über die einstellbare Modbus Geräte-ID
ausgelesen werden.
Fronius Smart Meter
AdresseModbus Geräte-ID
1200 (default, Achtung - 240 bei SnapINverter)
2201
3202
4203
5204
Registeradressen
WICHTIG!
Registeradressen bleiben nicht konstant.
-
Die tatsächlichen Registeradressen sind abhängig von der Zusammensetzung
-
der dynamischen Sunspec Registerliste.
Richtige Vorgehensweise:
das Model per Abfrage suchen (Startadresse ermitteln)
-
dann mit Offsets arbeiten
-
Um ein Register auszulesen muss in der Modbus-Anfrage die Startadresse des
Registers angegeben werden.
SunSpec Basis Register: 40001
Register beginnen bei 1 und stellen keinen Funktionscode dar.
Register nicht mit dem Modicon Adress-Schema verwechseln:
Beim Modicon Adress-Schema wird 40001 als 4x40001 dargestellt.
Um Register 40001 auszulesen, die Adresse 40000 (0x9C40) verwenden.
Die ausgesendete Registeradresse ist also immer um 1 geringer als die eigentliche Registernummer.
13
WICHTIG!
Aufgrund der verwendeten Datentypen können sich die Längen von einzelnen
Models verändern.
Daher werden bei einigen Registertabellen für SunSpec Models Startadressen
angegeben.
Diese Startadresse zusammen mit dem Offset aus der Tabelle ergibt dann den
Wert der tatsächlichen Registernummer.
Beispiel: Tabelle Nameplate Model (120) auf Seite 23:
Das Register WRtg des Nameplate Model hat einen Offset von 4. Die Startadresse ist bei der Einstellung „float“ mit 40131 angegeben.
Somit ist die korrekte Registernummer: 40131 + 4 = 40135.
Beispiele für Modbus RTU:
1. Abfrage von 4 Registern ab Register 40005 (Mn, Manufacturer)
Senden (Bytes in Hexadezimal)
01039C4400042A4C
Gerät
e-ID
Func-
tion
Code
Adresse
40004 (ent-
spricht
Register
40005)
Anzahl der
auszulesen-
den Register
Checksum-
Low
Byte
me
High
Byte
Empfangen (Bytes in Hexadezimal)
01030846726F6E697573008A2A
Gerät
e-ID
Func-
tion
Code
An-
zahl
der
Bytes
Adresse
40005
“F“ und “r“
Adresse
40006
“o“ und “n“
Adresse
40007
“i“ und “u“
Adresse
40008
“s“ und 0
Checksum-
Low
Byte
me
High
Byte
14
2. Schreiben von 1 Register ab Register 40242 (WmaxLimPct)
01109D320001021388E3DD
Gerät
e-ID
01109D3200018FAA
Gerät
e-ID
Func-
tion
Code
Func-
tion
Code
Adresse
40242
Adresse
40242
Anzahl der
zu schrei-
benden Re-
gister
Anzahl der
geschriebenen Register
Anzahl
Daten-
bytes, die
noch fol-
gen
Checksumme
“i“ und “u“
Low
High
Byte
Byte
zu schrei-
bender
Register-
wert
0x1388 =
5000
400
08
“s“
und
0
Checksumme
Low
Byte
Beispiele für Modbus TCP:
DE
High
Byte
1. Abfrage von 4 Registern ab Register 40005 (Mn, Manufacturer)
Senden (Bytes in Hexadezimal)
MBAP Header
Details siehe
Beschreibung
MBAP Header
039C440004
Func-
tion
Code
Adresse 40004
(entspricht
Register 40005)
Anzahl der
auszulesen-
den Register
Empfangen (Bytes in Hexadezimal)
MBAP Header
Details siehe
Beschreibung
MBAP Header
030846726F6E69757300
Func-
tion
Code
Anzahl
der
Bytes
Adresse
40005
“F“ und “r“
Adresse
40006
“o“ und “n“
Adresse
40007
“i“ und “u“
Adresse
40008
“s“ und 0
15
2. Schreiben von 1 Register ab Register 40242 (WmaxLimPct)
Nicht vorhandene Datensätze
MBAP Header
Details siehe
Beschreibung
MBAP Header
MBAP Hea-
109D320001021388
Func-
tion
Code
Adresse 40242Anzahl der
zu schrei-
benden Re-
gister
Anzahl Da-
tenbytes,
die noch fol-
gen
zu schrei-
bender Re-
gisterwert
0x1388 =
5000
109D320001
der
Details siehe
Beschreibung
MBAP Header
Func-
tion
Code
Adresse 40242Anzahl der
geschiebe-
nen Register
Fronius Wechselrichter können nicht immer alle Daten, die in den SunSpec-
Datenmodellen spezifiziert sind, zur Verfügung stellen. Diese Daten werden je
nach Datentyp laut SunSpec Spezifikation durch folgende Werte dargestellt:
int16 (-32767 bis 32767):
-
uint16 (0 bis 65534):
-
acc16 (0 bis 65535):
-
enum16 (0 bis 65534):
-
bitfield16 (0 bis 0x7FFF):
-
pad (0x8000):
-
int32 (-2147483647 bis 2147483647) :
-
uint32 (0 bis 4294967294):
-
acc32 (0 bis 4294967295 ):
-
enum32 (0 bis 4294967294):
-
bitfield32 (0 bis 0x7FFFFFFF):
-
int64 (-9223372036854775807 bis
-
9223372036854775807):
uint64 (0 bis 18446744073709551615):
-
acc64 (0 bis 18446744073709551615):
-
stringX:
-
0x8000
0xFFFF
0
0xFFFF
0xFFFF
immer 0x8000
0x80000000
0xFFFFFFFF
0
0xFFFFFFFF
0xFFFFFFFF
0x8000000000000
000
0xFFFFFFFFFFFFF
FFF
0
alle X Register mit
float32 (Bereich siehe IEEE 754):
-
sunssf (Skalierungsfaktoren; -10 bis 10):
-
0x0000 gefüllt
0x7FC00000 (NaN)
0x8000
1)
16
1)
Das Prefix "0x" steht für hexadezimale Zahlen
HINWEIS!
Nicht unterstützte Datenpunkte sind in den Registertabellen in der Spalte
„Range of values“ mit „Not supported“ gekennzeichnet.
In diesem Fall erhält man beim Auslesen je nach Datentyp den entsprechenden
Wert aus der obigen Liste.
In bestimmten Fällen kann es vorkommen, dass grundsätzlich als unterstützt angeführte Register ebenfalls einen solchen Wert zurückliefern. Der Grund dafür
ist, dass einige Werte vom Gerätetyp abhängig sind, z.B. die Ströme AphB und
AphC bei einem einphasigen Wechselrichter.
Zeitverhalten
der unterstützten Betriebsarten
Zeitverhalten am Beispiel einer Leistungsreduktion
Das Zeitverhalten des Wechselrichters in einer Betriebsart kann durch mehrere
Zeitwerte festgelegt werden.
In der Abbildung “Zeitverhalten am Beispiel einer Leistungsreduktion“ sind die
drei möglichen Zeitwerte dargestellt:
WinTms 0 - 300 [Sekunden]
-
gibt ein Zeitfenster an, in dem die Betriebsart zufällig gestartet wird. Das
Zeitfenster beginnt mit dem Startbefehl der Betriebsart (z.B. OutPF-Set_Ena = 1).
Mit WinTms kann verhindert werden, dass alle Wechselrichter in der Anlage
die Änderungen gleichzeitig übernehmen. Bei 0 (Standardwert) startet die
Betriebsart sofort.
RvrtTms 0 - 28800 [Sekunden]
-
bestimmt, wie lange die Betriebsart aktiv sein soll. Mit jeder empfangenen
Modbus Nachricht wird der Timer neu gestartet. Wenn während der Fallback-Zeit (= RvrtTms) keine neue Modbus Nachricht empfangen wurde, wird
die Betriebsart automatisch beendet und auf die Betriebsart mit der nächsten Priorität zurückgeschaltet, beispielsweise auf dynamische Leistungsreduzierung. Ist RvrtTms = 0 (Standardwert) bleibt die Betriebsart so lange aktiv, bis diese manuell über das entsprechende Register wieder deaktiviert
wird. Die Fallback Option steht in diesem Fall nicht zur Verfügung.
RmpTms
-
gibt vor, wie schnell die Änderungen durchgeführt werden sollen. Der entsprechende Wert wird in der angegebenen Zeit schrittweise vom alten zum
neuen Wert hin verändert.
Ist RmpTms = 0 (Standardwert) oder wird dieser Wert gar nicht unterstützt,
wird sofort der neue Wert aktuell.
DE
17
Vorzeichenkon-
(+kVAr, +kVArh)
(-kW,
-kWh)
(+kW,
+kWh)
(-kVAr, -kVArh)
90°
0°
180°
270°
Quadrant 1
Quadrant 4
Quadrant 2
Quadrant 3
Power factor sign
convention
EEI: +
(Leading, capacitive)
Power factor sign
convention
EEI: +
(Leading, capacitive)
Power factor sign
convention
EEI: -
(Lagging, inductive)
Power factor sign
convention
EEI: -
(Lagging, inductive)
ϕ
ϕ
ϕ
ϕ
Apparent Power (VA)
Apparent Power (V
A
)
Apparent Power (VA)
Ap
par
ent
P
ower (VA)
Active Power
Exported/Received (W)
Active Power
Exported/Received (W)
Active Power
Exported/Received (W)
Active Power
Exported/Received (W)
Reactive Power
Exported/Received (Var)
Reactive Power
Exported/Received (Var)
Reactive Power
Exported/Received (Var)
Reactive Power
Exported/Received (Var)
vention für den
Power Factor
Auf der Karte
gespeicherte
Werte
Die EEI-Vorzeichenkonvention1) für den Power Factor entspricht der SunSpec
Spezifikation, und basiert auf den Angaben aus dem “Handbook for Electricity
Metering“ und der IEC 61557-12 (2007).
Der Power Factor ist:
negativ bei positiver Blindleistung (übererregt, Quadrant 1)
-
positiv bei negativer Blindleistung (untererregt, Quadrant 4)
-
1)
EEI = Edison Electrical Institute
Nameplate Model (IC120):
WRtg
-
-
AC Nennleistung des Wechselrichters
VARtg
AC Nennscheinleistung des Wechselrichters
Standardwert = WRtg
VArRtgQ1
-
Maximale AC Blindleistung im 1. Quadranten (übererregt).
Standardwert wird anhand von verfügbarem cos Phi (0.85) und der Nennscheinleistung berechnet. Skalierungsfaktor VArRtg_SF beachten
VArRtgQ4
-
Maximale AC Blindleistung im 4. Quadranten (untererregt).
Standardwert wird anhand von verfügbarem cos Phi (0.85) und der Nennscheinleistung berechnet. Skalierungsfaktor VArRtg_SF beachten
ARtg
-
AC Nennstrom des Wechselrichters
18
Basic Settings Model (IC121):
WMax
-
Maximale AC Leistung
Standardwert = WRtg
VRef
-
Referenzspannung am Einspeisepunkt
VRefOfs
-
Abweichung zur Referenzspannung
VMax
-
Maximale AC Spannung
VMin
-
Minimale AC Spannung
VAMax
-
Maximale AC Scheinleistung
Standardwert = VARtg
DE
Skalierungsfaktoren
Nicht beschreibbare Register
WICHTIG! Skalierungsfaktoren (auch bei Auswahl von "Float" möglich!) sind
nicht statisch, auch wenn diese als Fixwert in dieser BA angeben werden.
Skalierungsfaktoren können sich bei jeder Firmware-Änderung und auch zur
Laufzeit (auto-scale) verändern (z.B.: Skalierungsfaktor für Leistungsvorgabe).
Skalierungsfaktoren mit unveränderlichen Werten sind in den Tabellen in der
Spalte "Range of values" angeführt.
Aktuelldaten (Daten von Wechselrichtern und Energiezählern) können veränderliche Skalierungsfaktoren haben. Diese müssen aus den entsprechenden Registern ausgelesen werden.
Der Datentyp „sunssf“ ist ein signed integer mit 16bit.
Rechenbeispiel:
(Model 160): 1_DCW = 10000, DCW_SF = -1 -> Leistung = 10000 x 10^(-1) =
1000 W
Folgende Register können nicht beschrieben werden:
Read-Only (R) Register
-
aktuell nicht unterstützte Register
-
HINWEIS!
Wird versucht solche Register zu beschreiben, gibt der Wechselrichter keinen
Exception Code zurück!
Die in diese Register geschriebenen Werte werden ohne Fehlermeldung ignoriert.
Im Model 123 und 124 kommt eine Exception beim Schreibzugriff, wenn die
Steuerungsmöglichkeit im lokalen Webinterface deaktiviert wurden.
Schreiben
ungültiger Werte
Einige Register lassen nur bestimmte Werte zu. Die gültigen Werte sind der jeweiligen Register-Tabelle zu entnehmen.
Wird ein ungültiger Wert in ein Register geschrieben, so gibt der Fronius Datamanager den Exception Code 3 (Illegal Data Value) zurück. Der ungültige Wert wird
ignoriert.
Werden mehrere Register auf einmal beschrieben, werden alle gültigen Werte bis
zu dem Register mit dem ungültigen Wert geschrieben. Anschließend wird der
Schreibvorgang abgebrochen.
19
Einstellungen - Modbus
AllgemeinesÜber die Web-Schnittstelle des Wechselrichters können via Internet-Browser
Einstellungen für die Modbus Anbindung vorgenommen werden, welche über das
Modbus-Protokoll nicht ansprechbar sind.
Einstellungen Modbus öffnen
ModbusModbus RTU-Schnittstelle 0 / 1
Die Weboberfläche des Wechselrichters öffnen
1
Den Bereich “Kommunikation“ (1) auswählen
2
Den Menüpunkt “Modbus“ (2) öffnen
3
Wird eine der beiden Modbus RTU Schnittstellen auf Slave gestellt, stehen folgende Eingabefelder zur Verfügung:
„Baudrate“
Die Baudrate beeinflusst die Geschwindigkeit der Übertragung zwischen den einzelnen im System angeschlossenen Komponenten. Bei der Auswahl der Baudrate
ist darauf zu achten, dass diese auf Sende- und Empfangsseite gleich sind.
„Parität“
Das Paritätsbit kann zur Paritätskontrolle genutzt werden. Diese dient der Erkennung von Übertragungsfehlern. Ein Paritätsbit kann dabei eine bestimmte Anzahl
von Bits absichern. Der Wert (0 oder 1) des Paritätsbits muss beim Sender berechnet werden und wird beim Empfänger mithilfe der gleichen Berechnung
überprüft. Die Berechnung des Paritätsbits kann für gerade oder ungerade Parität erfolgen..
„SunSpec Model Type“
Je nach Sunspec Model gibt es zwei verschiedene Einstellungen.
float: SunSpec Inverter Model 111, 112, 113 bzw. 211, 212, 213.
int + SF: SunSpec Inverter Model 101, 102, 103 bzw. 201, 202, 203.
„Zähleradresse“
Der eingegebene Wert ist die dem Zähler zugewiesene Identifikationsnummer
(Unit ID). Zu finden auf der Webseite des Wechselrichters im Menü Kommunikation - Modbus.
Werkseinstellung: 200
„Wechselrichteradresse“
Der eingegebene Wert ist die dem Wechselrichter zugewiesene Identifikationsnummer
(Unit ID). Zu finden auf der Webseite des Wechselrichters im Menü Kommunikation - Modbus.
Werkseinstellung: 1
Slave als Modbus TCP
Wird die Funktion „Slave als Modbus TCP“ aktiviert, stehen folgende Eingabefelder zur Verfügung:
„Modbus-Port“
Nummer des TCP Ports, der für die Modbus-Kommunikation zu verwenden ist.
20
„SunSpec Model Type“
Je nach Sunspec Model gibt es zwei verschiedene Einstellungen.
float: SunSpec Inverter Model 111, 112, 113 bzw. 211, 212, 213.
int + SF: SunSpec Inverter Model 101, 102, 103 bzw. 201, 202, 203.
„Zähleradresse“
Der eingegebene Wert ist die dem Zähler zugewiesene Identifikationsnummer
(Unit ID).
Zu finden auf der Webseite des Wechselrichters im Menü Kommunikation - Modbus.
Werkseinstellung: 200
„Wechselrichteradresse“
Der eingegebene Wert ist die dem Wechselrichter zugewiesene Identifikationsnummer (Unit ID). Zu finden auf der Webseite des Wechselrichters im Menü
Kommunikation - Modbus.
Werkseinstellung: Dieser Wert ist unveränderbar mit 1 definiert.
Wechselrichter-Steuerung über Modbus
Wenn diese Option aktiviert ist, erfolgt die Wechselrichter-Steuerung über Modbus.
Zur Wechselrichter-Steuerung gehören folgende Funktionen:
Ein / Aus
-
Leistungsreduktion
-
Vorgabe eines konstanten Power Factors (cos Phi)
-
Vorgabe einer konstanten Blindleistung
-
Batteriesteuerungsvorgaben mit Batterie
-
DE
Steuerung einschränken
Die Option “Steuerung einschränken“ ist nur beim Übertragungsprotokollen tcp
verfügbar.
Sie dient dazu Wechselrichter-Steuerungsbefehle durch Unbefugte zu verhindern, indem die Steuerung nur für bestimmte Geräte erlaubt wird.
Steuerung einschränken
Wenn diese Option aktiviert ist, dürfen nur bestimmte Geräte Steuerungsbefehle
schicken.
IP-Adresse
Um die Wechselrichter-Steuerung auf ein oder mehrere Geräte zu beschränken,
werden in diesem Feld die IP-Adressen jener Geräte eingetragen die Befehle an
den Wechselrichter senden dürfen. Mehrere Einträge werden durch Beistriche
getrennt.
Beispiele:
eine IP-Adresse: 98.7.65.4
-
Steuerung nur durch IP Adresse 98.7.65.4 zulässig
-
mehrere IP-Adressen: 98.7.65.4,222.44.33.1
-
Steuerung nur durch IP Adressen 98.7.65.4 und 222.44.33.1 zulässig
-
IP-Adressbereich z.B. von 98.7.65.1 bis 98.7.65.254 (CIDR Notation):
-
98.7.65.0/24
Steuerung nur durch IP Adressen 98.7.65.1 bis 98.7.65.254 zulässig
-
21
Common & Inverter Model
Common Block
Register
Inverter Model
Register
Die Beschreibung des Common Block inklusive der SID Register (Register
40001-40002) zur Identifizierung als SunSpec Gerät gilt für jeden Gerätetyp
(Wechselrichter, Energiezähler). Jedes Gerät besitzt einen eigenen Common
Block, in dem Informationen über das Gerät (Modell, Seriennummer, SW Version,
etc.) aufgeführt sind.
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
Für die Wechselrichter-Daten werden zwei verschiedene SunSpec Models unterstützt:
das standardmäßig eingestellte Inverter Model mit Gleitkomma-Darstellung
-
(Einstellung „float“; 111, 112 oder 113)
das Inverter Model mit ganzen Zahlen und Skalierungsfaktoren
-
(Einstellung „int+SF“; 101, 102 oder 103)
Die Registeranzahl der beiden Model-Typen ist unterschiedlich!
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
SunSpec Operating Codes
NameWertBeschreibung
I_STATUS_OFF1Wechselrichter ist aus
I_STATUS_SLEEPING2Auto-Shutdown
I_STATUS_STARTING3Wechselrichter startet
I_STATUS_MPPT4Wechselrichter arbeitet normal
I_STATUS_THROTTLED5Leistungsreduktion aktiv
I_STATUS_SHUTTING_DOWN
I_STATUS_FAULT7Ein oder mehr Fehler existieren,
I_STATUS_STANDBY8Standby
*Inverter Model Register
6Wechselrichter schaltet ab
siehe St *oder Evt * Register
22
Nameplate Model (120)
AllgemeinesDieses Modell entspricht einem Leistungsschild. Folgende Daten können ausge-
lesen werden:
DERType (3)
-
Art des Geräts. Das Register liefert den Wert 4 zurück (PV-Gerät)
WRtg (4)
-
Nennleistung des Wechselrichters
VARtg (6)
-
Nenn-Scheinleistung des Wechselrichters
VArRtgQ1 (8) - VArRtgQ4 (11)
-
Nenn-Blindleistungswerte für die vier Quadranten
ARtg (13)
-
Nennstrom des Wechselrichters
PFRtgQ1 (15) – PFRtgQ4 (18)
-
Minimale Werte für den Power Factor für die vier Quadranten
DE
Nameplate Register
Startadresse:
bei Einstellung „float“:40131
-
bei Einstellung „int+SF“: 40121
-
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
23
Basic Settings Model (121)
Local Bus
Utility Power System
Local Power
System with
Line Resistors
DER interconnections
Point of Common
Coupling (PCC)
Example Settings
VRef = 120V
VRefOfs = 2V
VRefOfs = 4V
VRefOfs = 3V
= Electrical Connection Point (ECP)
Basic Settings
Register
Referenzspannung
Startadresse:
bei Einstellung „float“:40159
-
bei Einstellung „int+SF“: 40149
-
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
VRef (4)
Die Referenzspannung ist die Spannung an jenem gemeinsamen Anschlusspunkt,
an welchem das lokale Netz mit dem öffentlichen Stromnetz verknüpft ist, und
entspricht der Nennspannung des Wechselrichters.
=> siehe Abbildung “Gemeinsamer Anschlusspunkt“
Die Angabe erfolgt in Volt im Bereich von 0 (0x0000) bis 400 (0x0190).
Abweichung zur
Referenzspannung
Gemeinsamer Anschlusspunkt
VRefOfs (5)
Je nach Verschaltung des lokalen Netzes kann es am Anschlusspunkt jedes einzelnen Wechselrichters an das lokale Netz zu einer Abweichung zur Referenzspannung kommen (siehe Abbildung “Gemeinsamer Anschlusspunkt“).
24
Extended Measurements & Status Model (122)
AllgemeinesDieses Modell liefert einige zusätzliche Mess- und Statuswerte, die das normale
Inverter Model nicht abdeckt:
PVConn (3)
-
Dieses Bitfeld zeigt den Status des Wechselrichter an
Bit 0: Verbunden
-
Bit 1: Ansprechbar
-
Bit 2: Arbeitet (Wechselrichter speist ein)
-
ECPConn (5)
-
Dieses Register zeigt den Verbindungsstatus zum Netz an
ECPConn = 1: Wechselrichter speist gerade ein
-
ECPConn = 0: Wechselrichter speist nicht ein
-
ActWH (6 - 9)
-
Wirkenergiezähler
StActCtl (36 - 37)
-
Bitfeld für zurzeit aktive Wechselrichter-Modi
Bit 0: Leistungsreduktion (FixedW; entspricht WMaxLimPct Vorgabe)
-
Bit 1: konstante Blindleistungs-Vorgabe (FixedVAR; entspricht VAr-
-
MaxPct)
Bit 2: Vorgabe eines konstanten Power Factors (FixedPF; entspricht Out-
-
PFSet)
DE
Extended Measurements &
Status Register
TmSrc (38 - 41)
-
Quelle für die Zeitsynchronisation. Das Register liefert den String „RTC“
zurück.
Tms (42 - 43)
-
Aktuelle Uhrzeit und Datum der RTC
Angegeben werden die Sekunden vom 1. Jänner 2000 00:00 (UTC) bis zur
aktuellen Zeit
Ris
-
Iso Widerstand
Startadresse:
bei Einstellung „float“:40191
-
bei Einstellung „int+SF“: 40181
-
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
25
Immediate Controls Model (123)
AllgemeinesMit den Immediate Controls können folgende Einstellungen am Wechselrichter
vorgenommen werden:
Unterbrechung des Einspeisebetriebs des Wechselrichters (Standby)
-
Konstante Reduktion der Ausgangsleistung
-
Vorgabe eines konstanten Power Factors
-
Vorgabe einer konstanten relativen Blindleistung
-
Am Webinterface des Wechselrichters muss in den Einstellungen unter Modbus
die Einstellung „Wechselrichter-Steuerung über Modbus“ aktiviert sein, um hier
schreibend aktiv werden zu können. Je nach eingestellter Steuerungs-Priorität
(IO-Steuerung, Dynamische Leistungsreduzierung oder Steuerung über Modbus)
werden Modbus Kommandos eventuell nicht angenommen.
Immediate Controls Register
StandbyConn_WinTms (3) bis Conn (5)
Startadresse:
bei Einstellung „float“:40237
-
bei Einstellung „int+SF“: 40227
-
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
Diese Register dienen zur Steuerung des Standby Modus (kein Einspeisebetrieb)
des Wechselrichters.
Conn_WinTms (3) und Conn_RvrtTms (4)
Mit diesen Registern kann das Verhalten des Wechselrichters zeitlich gesteuert
werden. => siehe Abschnitt “Zeitverhalten der unterstützten Betriebsarten“.
Als Standard ist für alle Register 0 vorgegeben.
Conn (5)
Register Conn zeigt an, ob der Wechselrichter aktuell einspeist (0 = Standby, 1 =
Einspeisebetrieb).
Um den Wechselrichter in den Standby zu schalten schreibt man in dieses
-
Register den Wert 0
Um den Wechselrichter wieder zu aktivieren schreibt man in dieses Register
-
den Wert 1
Leistungsreduktion
26
HINWEIS!
Ob der Wechselrichter einspeist oder nicht kann auch über das Register ECPConn aus dem Extended Measurements and Status Model ausgelesen werden.
WMaxLimPct (6) bis WMaxLim_Ena (10)
Über diese Register kann beim Wechselrichter eine Reduktion der Ausgangsleistung eingestellt werden.
WMaxLimPct (6)
In Register WMaxLimPct können Werte zwischen 0% und 100% eingetragen wer-
den.
Die Werte beschränken die maximal mögliche Ausgangsleistung des Gerätes, und
haben daher nicht unbedingt eine Auswirkung auf die aktuelle Leistung.
WICHTIG! Den Skalierungsfaktor für dieses Register beachten!
Weitere Informationen unter:
http://sunspec.org/wp-content/uploads/2015/06/SunSpec-Information-Models-12041.pdf
WMaxLimPct_WinTms (7), WMaxLimPct_RvrtTms (8)
Mit diesen Registern kann das Verhalten des Wechselrichters für diese Betriebsart zeitlich gesteuert werden. => siehe Abschnitt “Zeitverhalten der unterstützten Betriebsarten“.
Als Standard ist für alle Register 0 vorgegeben.
WMaxLim_Ena (10)
Zum Starten und Beenden diese Betriebsart
Wert 1 in das Register WMaxLim_Ena schreiben = Betriebsart starten
-
Wert 0 in das Register WMaxLim_Ena schreiben = Betriebsart beenden
-
HINWEIS!
Um bei einer aktiven Betriebsart Werte zu verändern (z.
B. ein anderes Leistungslimit oder eine andere Rückkehrzeit einstellen), folgendermaßen vorgehen:
neuen Wert in das entsprechende Register schreiben
▶
die Betriebsart über Register WMaxLim_Ena durch Setzen einer 1 erneut
▶
starten
DE
Beispiel:
Leistungsreduktion einstellen
Wenn mit Funktionscode 0x10 (write multiple registers) gearbeitet wird, kann eine Performance-Verbesserung bei den Leistungsvorgaben erreicht werden. Es
kann mit nur einem statt zwei Modbusbefehlen die Leistung und das Enable
gleichzeitig vorgegeben werden. Es können alle 5 Register (WMaxLimPct,
WMaxLimPct_WinTms, WMaxLimPct_RvrtTms, WMaxLimPct_RmpTms,
WMaxLim_Ena) mit einem Befehl geschrieben werden. Das Schreiben auf das
"Read Only"-Register WMaxLimPct_RmpTms erfolgt ohne Rückgabe eines sonst
üblichen Exception-(Fehler)-Codes.
Z.B. Registerwerte für 80% Vorgabe ohne Timingvorgaben: 8000, 0, 0, 0, 1
Wert für die Reduktion der Ausgangsleistung in Register WMaxLimPct
1
schreiben
(z. B. 3000 für 30%)
Optional die Start- und Rückkehrzeit über Register WMaxLimPct_WinTms
2
und WMaxLimPct_RvrtTms einstellen
Durch Schreiben von 1 in Register WMaxLim_Ena die Betriebsart starten
3
WICHTIG! Den Skalierungsfaktor für dieses Register beachten!
Weitere Informationen unter:
http://sunspec.org/wp-content/uploads/2015/06/SunSpec-Information-Models-12041.pdf
Beispiel:
Ändern der
Rückkehrzeit bei
aktiver Leistungsreduktion
Leistungsreduktion ursprünglich mit WMaxLimPct_RvrtTms = 0 gestartet, das
heißt die Betriebsart muss manuell beendet werden.
WMaxLimPct_RvrtTms auf z.B. 30 setzen
1
27
Durch Schreiben von 1 in Register WMaxLim_Ena Änderung übernehmen
2
Betriebsart wird nach 30 Sekunden selbständig beendet und auf die
Auswirkungen
der Blindleistungs-Vorgaben
auf die Wirkleistung
Der Blindleistungs-Betrieb wird grundsätzlich durch den maximalen Ausgangsstrom (die maximale Scheinleistung) sowie durch die operative BlindleistungsGrenze des Wechselrichters begrenzt:
Die folgende Abbildung zeigt den möglichen Arbeitsbereich des Wechselrichters.
Alle durch Wirkleistung P und Blindleistung Q definierten gültigen Arbeitspunkte
sind innerhalb des grauen Bereiches.
Die Maximalwerte müssen über die Register VArRtgQ1 bis VArRtgQ4 und
VArRtg_SF aus den Nameplate Model ausgelesen werden.
untererregt (induktiv)übererregt (kapazitiv)
Blindleistung und Power Factor
Legende:
WLeistungVAr
W
VAr
max
Nennleistung
Blindleistung
VAr
max
rel
Nenn-Blindleistung
relative Blindleistung
(VAr/VArmax)
28
Konstanter
Power Factor
OutPFSet (11) bis OutPFSet_Ena (15)
Über diese Register kann beim Wechselrichter ein konstanter Power Factor vorgegeben werden.
OutPFSet (11)
In Register OutPFSet können positive und negative Werte für den Power
-
Factor eingegeben werden
Die Werte sind mit Faktor im Register OutPFSet_SF zu skalieren
-
Die minimal möglichen Werte hängen vom Wechselrichter-Typ ab und
-
können dem Nameplate Model entnommen werden
HINWEIS!
Der Wert für den Power Factor muss mit dem korrekten Vorzeichen eingegeben
werden, siehe Abschnitt “Vorzeichenkonvention für den Power Factor“
positiv für untererregt
▶
negativ für übererregt
▶
OutPFSet_WinTms (12), OutPFSet_RvrtTms (13)
Mit diesen Registern kann das Verhalten des Wechselrichters für diese Betriebsart zeitlich gesteuert werden. => siehe Abschnitt “Zeitverhalten der unterstützten Betriebsarten“.
Als Standard ist für alle Register 0 vorgegeben.
DE
Beispiel:
Konstanten
Power Factor
vorgeben
OutPFSet_Ena (15)
Zum Starten und Beenden dieser Betriebsart
Wert 1 in das Register OutPFSet_Ena schreiben = Betriebsart starten
-
Wert 0 in das Register OutPFSet_Ena schreiben = Betriebsart beenden
-
HINWEIS!
Um bei einer aktiven Betriebsart Werte zu verändern (z.B. ein anderen Power
Factor oder eine andere Rückkehrzeit einstellen), folgendermaßen vorgehen:
neuen Wert in das entsprechende Register schreiben
▶
die Betriebsart über Register OutPFSet_Ena durch Setzen einer 1 erneut
▶
starten
OutPFSet_RmpTMS
-
Wert für den Power Factor in Register OutPFSet schreiben
1
(z. B. 950 für 0,95)
Optional die Start- und Rückkehrzeit über Register OutPFSet_WinTms und
2
OutPFSet_RvrtTms einstellen
Durch Schreiben von 1 in Register OutPFSet_Ena die Betriebsart starten
3
29
Konstante relative Blindleistung
VArMaxPct (17) bis VArPct_Ena (23)
Über diese Register kann am Wechselrichter ein konstanter Wert für die Blindleistung eingestellt werden, die der Wechselrichter liefern soll.
VArMaxPct (17)
zum Einstellen eines Wertes für die konstante Blindleistung
-
Die minimal und maximal möglichen Werte hängen vom Wechselrichter-Typ
-
ab
HINWEIS!
Im praktischen Betrieb wird die tatsächlich verfügbare Blindleistung durch die
Betriebsgrenzen des Wechselrichters vorgegeben.
Deshalb kann die Blindleistungs-Vorgabe nur dann erreicht werden, wenn ausreichend Wirkleistung eingespeist wird.
Wird zu wenig Wirkleistung eingespeist, arbeitet der Wechselrichter an der Betriebsgrenze.
VArPct_WinTms (19), VArPct_RvrtTms (20)
Mit diesen Registern kann das Verhalten des Wechselrichters für diese Betriebsart zeitlich gesteuert werden. => siehe Abschnitt “Zeitverhalten der unterstützten Betriebsarten“.
Als Standard ist für alle Register 0 vorgegeben.
VArPct_Mod (22)
dieses Register kann nicht verändert werden
-
liefert die (derzeit) unterstützte Betriebsart zurück
-
Blindleistung in Prozent der maximal möglichen Blindleistung
VArPct_Ena (23)
Zum Starten und Beenden dieser Betriebsart
Wert 1 in das Register VArPct_Ena schreiben = Betriebsart starten
-
Wert 0 in das Register VArPct_Ena schreiben = Betriebsart beenden
-
HINWEIS!
Um bei einer aktiven Betriebsart Werte zu verändern (z.
B. ein andere Blindleistung oder eine andere Rückkehrzeit einstellen), folgendermaßen vorgehen:
neuen Wert in das entsprechende Register schreiben
▶
die Betriebsart über Register VArPct_Ena durch Setzen einer 1 erneut star-
▶
ten
VArPct_RmpTms (23)
der relative Annäherungswert in %/s
-
Beispiel:
Konstante Blindleistung vorgeben
30
Wert für die relative Blindleistung in Register VArMaxPct schreiben
1
(z. B. 80 für 80%)
Optional die Start- und Rückkehrzeit über Register VArPct_WinTms und
2
VArPct_RvrtTms einstellen
Durch Schreiben von 1 in Register VArPct_Ena den Betriebsart starten
3
Multiple MPPT Inverter Extension Model (160)
AllgemeinesDas Multiple MPPT Inverter Extension Model beinhaltet die Werte der DC
Eingänge des Wechselrichters.
Verfügt der Wechselrichter über mehrere DC Eingänge, so werden Strom, Spannung, Leistung, Energie und Statusmeldungen der einzelnen Eingänge hier aufgelistet. Im Inverter Model (101 -103 oder 111 - 113) wird in diesem Fall nur die
gesamte DC Leistung beider Eingänge ausgegeben. DC Strom und DC Spannung
werden als "not implemented" angezeigt.
Die Anzahl der Blöcke wird anhand der DC-Eingänge automatisch angepasst. Bei
Geräten mit einer Speicherlösung gibt es zwei zusätzliche Blöcke (Laden (MPP3)
und Entladen (MPP4)). Die Registeradressen verschieben sich bei den nachfolgenden Models (absolutbezogen auf die Registeradressen).
DE
Multiple MPPT
Inverter Extension Register
Startadresse:
bei Einstellung „float“:40263
-
bei Einstellung „int+SF“: 40253
-
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
31
Basic Storage Control Model (124)
AllgemeinesDieses Model ist nur für Wechselrichter mit einer Speicherlösung verfügbar.
Mit dem Basic Storage Control Model können folgende Einstellungen am Wechselrichter vorgenommen werden:
Vorgabe eines Leistungsfensters, in dem sich die Lade-/Entladeleistung vom
-
Energiespeicher bewegen soll.
Vorgabe eines minimalen Ladestandes, den der Energiespeicher nicht unter-
-
schreiten soll
Ladung des Energiespeichers vom Netz erlauben/verbieten
-
HINWEIS!
Alle Vorgaben verstehen sich als Empfehlungen!
Der Wechselrichter kann von den Vorgaben abweichen, wenn dies aus Gründen
der Betriebssicherheit erforderlich ist.
Bereitgestellte
Informationen
Das Basic Storage Control Model stellt folgende Informationen lesend zu
Verfügung:
WChaMax
Wenn ein Energiespeicher verfügbar ist liefert dieses Register den Bezugs-
-
wert für die Register OutWRte und InWRt zurück.
WChaMax := max(MaxChaRte, MaxDisChaRte)
Wenn kein Energiespeicher verfügbar ist liefert das Register den Wert 0
EMPTY: Energiespeicher ist derzeit vollständig entladen
-
DISCHARGING: Energiespeicher wird derzeit entladen
-
CHARGING: Energiespeicher wird derzeit geladen
-
FULL: Energiespeicher ist derzeit vollständig geladen
-
HOLDING: Energiespeicher wird derzeit weder geladen noch entladen
-
TESTING: wird während Kalibrations- oder Service-Ladung benutzt
-
Leistungsfenster-Vorgaben
32
Am Webinterface des Wechselrichters muss in den Einstellungen unter Modbus
die Einstellung „Wechselrichter-Steuerung über Modbus“ aktiviert sein, um hier
schreibend aktiv werden zu können. Je nach eingestellter Steuerungs-Priorität
(IO-Steuerung, Dynamische Leistungsreduzierung oder Steuerung über Modbus)
werden Modbus Kommandos eventuell nicht angenommen.
Für die folgenden Beispiele wird WchaMax = 3300 W angenommen.
Für resultierende Leistungsfenster gilt:
negative Leistungswerte entsprechen einer Ladung des Energiespeichers
-
positive Werte entsprechen einer Entladung des Energiespeichers
-
HINWEIS!
Die Werte in den folgenden Beispielen müssen nach dem Lesen und vor dem
Schreiben entsprechend ihren Skalierungsfaktoren in den angegebenen Skalierungsregistern skaliert werden.
Die Manipulation der Register InWRte, OutWRte und StorCtl_Mod führt zu
Änderungen des Batteriestatus in Fronius Solar.web, zum Beispiel „Erzwungene
Nachladung“ und „Energiesparmodus“, abhängig von den Benutzereinstellungen
und dem aktuellen Status der Batterie.
Beispiel 1: Nur Laden des Energiespeichers erlauben
Dieses Verhalten kann durch Limitierung der maximalen Entladeleistung auf 0%
erreicht werden => resultiert in Fenster [-3300 W, 0 W]
OutWRte = 0% (setze Entladelimit auf 0% von WchaMax)
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf 0% und
Limitierung der maximalen Entladeleistung auf 0% erreicht werden
=> resultiert in Fenster [0 W, 0 W]
InWRte = 0% (setze Ladelimit auf 0% von WchaMax)
-
OutWRte = 0% (setze Entladelimit auf 0% von WchaMax)
-
StorCtl_Mod = 3 (schalte beide Grenzwerte aktiv, Bit-Muster: 11)
-
Beispiel 4: Laden und Entladen mit maximal 50% der nominalen Leistung
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf 50%
und Limitierung der maximalen Entladeleistung auf 50% erreicht werden
=> resultiert in Fenster [-1650 W, 1650 W]
InWRte = 50% (setze Ladelimit auf 50% von WchaMax)
-
OutWRte = 50% (setze Entladelimit auf 50% von WchaMax)
-
StorCtl_Mod = 3 (schalte beide Grenzwerte aktiv, Bit-Muster: 11)
-
Beispiel 5: Laden im Bereich von 50% bis 75% der nominalen Leistung
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf 75%
und Limitierung der maximalen Entladeleistung auf -50% erreicht werden
=> resultiert in Fenster [1650 W, 2475 W]
InWRte = 75% (setze Ladelimit auf 75% von WchaMax)
-
OutWRte = -50% (setze Entladelimit auf -50% von WchaMax)
-
StorCtl_Mod = 3 (schalte beide Grenzwerte aktiv, Bit-Muster: 11)
-
Der Batteriestatus in Fronius Solar.web wechselt zu „Erzwungene Nachla-
-
dung“
Beispiel 6: Entladen mit 50% der nominalen Leistung
Dieses Verhalten kann durch Limitierung der maximalen Ladeleistung auf -50%
und Limitierung der maximalen Entladeleistung auf 50% erreicht werden
=> resultiert in Fenster [-1650 W, -1650 W]
33
InWRte = -50% (setze Ladelimit auf -50% von WchaMax)
-
OutWRte = 50% (setze Entladelimit auf 50% von WchaMax)
-
StorCtl_Mod = 3 (schalte beide Grenzwerte aktiv, Bit-Muster: 11)
-
Beispiel 7: Laden mit 50% bis 100% der nominalen Leistung
Dieses Verhalten kann durch Limitierung der maximalen Entladeleistung auf
-50% erreicht werden => resultiert in Fenster [1650 W, 3300 W]
OutWRte = -50% (setze Entladelimit auf -50% von WchaMax)
Der Batteriestatus in Fronius Solar.web wechselt zu „Erzwungene Nachla-
-
dung“
Vorgabe des
minmalen Ladestandes
Laden des Energiespeichers
vom Netz
Basic Storage
Controls Register
Durch Setzen von Register MinRsvPct kann ein minimal zu erhaltender Ladezustand des Speichers festgelegt werden.
Beispielsweise kann durch Setzen von MinRsvPct=20% eine Reserve von 20% des
Ladezustandes reserviert werden, die der Ladezustand nicht unterschreiten soll.
Mit dem Register ChaGriSet kann es dem Wechselrichter erlaubt oder verboten
werden, den Speicher vom Netz zu laden. Das Register CharGriSet und das Feld
‚Batterieladung aus EVU Netz erlauben' in den Einstellungen der Fronius Anlagenüberwachung sind UND-verknüpft (Gerätekonfiguration - Komponenten Batterie). Soll das Verhalten über das Flag ChaGriSet gesteuert werden, muss
das Häkchen bei ‚Batterieladung aus EVU Netz erlauben' gesetzt sein.
Die Batterie kann über das Modell IC124 aus dem Standby-Betrieb geweckt werden.Wird der SocMin unter den letzten bekannten SoC gesetzt während sich die
Batterie im Standby befindet, wird diese aktiviert.
Startadresse:
bei Einstellung „float“:40313
-
bei Einstellung „int+SF“: 40303
-
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
Register- und
Batteriestatusänderungen
in Fronius Solar.web
34
Mit Fronius Solar.web können Statusänderungen der Batterie visualisiert werden.
Diese Änderungen können in Fronius Solar.web unter der Option Energiebilanz
und dann Erzeugung oder Verbrauch eingesehen werden. Die Änderungen sind
mit einem Blasenstatus gekennzeichnet, ein Klick auf eine Zustandsänderung
zeigt den vorherigen Zustand gefolgt von einem Pfeil und dem neuen Zustand.
Änderung des Batteriezustandes von Inbetriebnahme zum Normalbetrieb
Batteriezustandsänderungen werden während des normalen Betriebs ausgelöst
(wenn die Batterie betriebsbereit ist, aus Sicherheitsgründen...) oder durch
Änderungen der Modbus-Register MinRsvPct, InWRte, OutWRte und
StorCtl_Mod.
Die Änderungen können wie folgt ausgelöst werden:
Über das Register MinRsvPct wird ein minimaler Ladezustand eingestellt, der
-
entsprechende Zustandswechsel ist der „Energiesparmodus“.
Durch Setzen der Register InWRte, OutWRte, StorCtl_Mod könnte der Bat-
-
teriestatus auf „Erzwungene Nachladung“ wechseln.
DE
35
Meter Model
Meter Model Register
Die Daten eines per Modbus RTU mit dem Fronius Datamanager verbundenen
Energiezählers können per Modbus TCP über die entsprechenden SunSpec Models ausgelesen werden.
Ähnlich wie bei den Inverter Models gibt es auch hier zwei verschiedene SunSpec
Models:
das Meter Model mit Gleitkommadarstellung
-
(Einstellung „float“; 211, 212 oder 213)
das Meter Model mit ganzen Zahlen und Skalierungsfaktoren
-
(Einstellung „int+SF“; 201, 202 oder 203)
Die Registeranzahl der beiden Model-Typen ist unterschiedlich!
Die Modbus Geräte-ID des Energiezählers ist konfigurierbar (default = 200).
Die Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
Es gibt 4 verschiedene Meter-Locations, diese werden durch die Locationnummer beschrieben (siehe Tabelle). Je nachdem, wo sich der Smart Meter befindet
und ob der Wechselrichter produziert oder konsumiert, ändern sich die Vorzeichen der PowerReal-Werte und der Energy-Werte. Diese werden in der folgenden
Tabelle aufgezeigt:
Meter_Location
PowerReal_P_Sum (+
positive)
PowerReal_P_Sum (negative)
Energy plus
(absolute
counter)
Energy minus
(absolute
counter)
*Tritt nur bei Ausnahmen auf. Zum Beispiel bei einem versteckten Generator.
0 (grid)1 (load)3 (ext. gene-
rator)
Konsumieren
vom Netz
Einspeisung
ins Netz
Importieren
vom Netz =
Energie konsumieren
Exportieren
ins Netz = Energie produzieren
Power produzieren
Normaler
Konsum
Power produzieren* = Energie produzieren
Konsumieren
= Energie
konsumieren
GenerierenLoad produ-
KonsumierenNormaler
Generieren =
Energie produzieren
Konsumieren
= Energie
konsumieren
256-511
(subload)
ziert Power
Konsum
Power produzieren* = Energie produzieren
Konsumieren
= Energie
konsumieren
36
End Block
AllgemeinesZwei Register nach dem letzten Datenmodell zeigen an, dass keine weiteren Sun-
Spec-Modelle mehr folgen.
Die Adressen dieser beiden Register sind je nach Gerätetyp (Wechselrichter,
String Control, Energiezähler) und ausgewähltem Datentyp („float“ oder „int
+SF“) verschieden.
Wechselrichter:
-
- Startadresse für bei Einstellung „float“: 40313
-
- Startadresse bei Einstellung „int+SF“: 40303
-
String Control:
-
- Startadresse: 40127
-
Energiezähler:
-
- Startadresse für bei Einstellung „float“: 40195
-
- Startadresse bei Einstellung „int+SF“: 40176
-
End BlockDie Register Tabellen sind auf der Fronius Homepage zu finden oder direkt über
den Link
http://www.fronius.com/QR-link/0024 abrufbar.
DE
37
38
Table of contents
The Modbus Protocol41
General41
Structure of Modbus Messages41
Modbus TCP – MBAP Header42
Supported function codes42
03 (0x03) Read Holding Registers43
06 (0x06) Write Single Register43
16 (0x10) Write Multiple Registers44
Exception codes44
CRC Calculation for Modbus RTU45
Calculating CRC Checksum46
Adding CRC Checksum to the Message47
General48
Abbreviations Used48
Register maps48
Response times49
Modbus device ID for inverters49
Modbus device ID for energy meters49
Register addresses49
Unavailable data records52
Time response of the supported operating modes52
Sign Convention for the Power Factor53
Values saved on the card54
Scale factors54
Non-writable registers55
Entering Invalid Values55
Modbus Settings56
General56
Open the Modbus settings56
Modbus56
Limiting control57
Common & Inverter Model58
Common Block Register58
Inverter Model Register58
SunSpec Operating Codes58
Nameplate Model (120)59
General59
Nameplate Register59
Basic Settings Model (121)60
Basic Settings Register60
Reference Voltage60
Deviation from reference voltage60
Extended Measurements & Status Model (122)61
General61
Extended Measurements & Status Register61
Immediate Control Model (123)62
General62
Immediate Controls Register62
Standby62
Power reduction62
Example: setting a power reduction63
Example: Changing the Return Time When Power Reduction Has Been Activated63
Effects of reactive power specifications on effective power64
Constant power factor65
Example: Setting a Constant Power Factor65
Constant relative reactive power66
Example: Setting Constant Reactive Power66
General68
Information Provided68
Power Window Specifications68
Setting the Minimum Charge Level70
Charging the energy storage via the grid70
Basic Storage Controls Register70
Register manipulation and Battery status changes in Fronius Solar.web70
Meter Model72
Meter Model Register72
End Block73
General73
End Block73
40
The Modbus Protocol
GeneralThe description of the protocol is largely taken from the Modbus specifications,
which are publicly available at www.modbus.org/specs.php.
Modbus is a simple, open communication protocol, with which master-slave or
client-server communication can be carried out between the devices connected
to the network. The basic principle of Modbus is: a master sends a request and a
slave responds to this. In Modbus TCP, the master is referred to as the client and
a slave as a server. The function is the same. The descriptions of the protocol
functions provided below will use the more common names master and slave, irrespective of the RTU and TCP variants. In cases where there are differences
between RTU and TCP, this will be specifically indicated.
Modbus can be used in two ways on the inverter:
Modbus TCP
-
using TCP/IP via Ethernet (connected by cable or via WLAN)
Modbus RTU
-
using asynchronous serial transmission via RS-485 (EIA/TIA-485-A)
In the case of Modbus RTU, there can only ever be one master in the system. In
principle, only one master may initiate requests. A slave may only give a response
if it has been addressed by the master; the slaves cannot communicate with each
other. If a broadcast request (request to all available slaves via slave ID or unit
ID 0) is sent, none of the slaves can respond. Broadcasts can therefore only be
used for write commands.
If a master sends a request to a slave, then it expects a response. In the event of
a request from a master, there are five options:
If the slave receives the request without communication errors and can pro-
-
cess this request without errors, then a normal response will be sent with the
required data.
If the slave does not receive the request due to a communication error, then
-
no response is sent. This leads to a timeout on the master.
If the slave receives the request, but discovers a communication error (pari-
-
ty, CRC, etc.), then no response is sent. This leads to a timeout on the master.
If the slave receives the request without communication errors, but cannot
-
process it without errors (e.g., if a register that is not available needs to be
read), then an error message (exception response) is returned with the reason for the error.
If the slave receives a broadcast request, which also goes to all other de-
-
vices, then no response will be sent either in the event of an error or if the
request has been successfully processed. Broadcast requests are therefore
only suitable for write commands.
EN-US
Structure of
Modbus
Messages
Modbus devices provide data in 16 bit large data blocks (registers).
In certain cases, individual data points may also cover several data blocks (e.g.,
2 registers = 32 bit value).
In principle, a Modbus message is made up of the protocol data unit (PDU). This
is independent of the underlying communication layers.
Depending on the bus or network that is used, additional fields can also be added. This structure is then referred to as the application data unit (ADU).
ADU
41
Address fieldFunction codeDataCRC
Modbus TCP –
MBAP Header
PDU
Structure of a Modbus message for Modbus RTU
ADU
MBAP headerFunction codeData
PDU
Structure of a Modbus message for Modbus TCP
Modbus TCP uses its own header to identify the application data unit. This header is called MBAP header (MODBUS application protocol header).
The size of the protocol data unit (PDU) is limited due to the first Modbus implementations in a serial network (max. RS-485 ADU = 256 bytes). This results in
the following for the size of the protocol data unit PDU: PDU = 256 – slave ID
(1 byte) – CRC (2 bytes) = 253 bytes
This results in:
Transaction ID (2 bytes): Is used in order to synchronize request and respon-
-
se. The slave adopts the transaction ID from the request into the response.
Protocol ID (2 bytes): Is always 0 (Modbus protocol).
-
Length (2 bytes): The length field includes the number of bytes of the subse-
-
quent fields, including unit ID and data fields.
Unit ID (1 byte): This field is used for addressing devices connected to the in-
-
verter (gateway function). The unit ID corresponds to the slave ID in Modbus
RTU. The value is specified by the master and is returned unchanged by the
slave with the response.
For details about the addressing of the devices, see:
Modbus device ID for inverters on page 49
-
Modbus device ID for energy meters on page 49
-
Supported function codes
IMPORTANT! The correct unit ID must always be specified, even if the Fro-
nius Datamanager is only connected to one individual inverter.
The function code determines the action to be carried out on the slave. Three
function codes for read and write operations are supported:
-
-
-
03 (0x03)
06 (0x06)
16 (0x10)
1)
read holding registers
1)
write single register
1)
write multiple registers
If an error occurs on the slave during the processing of a request, an error message is sent as the response (exception response). In the event of this kind of response, the most significant bit of the function code is set to 1 (corresponds to
adding 0x80 to the function code)
1)
and an exception code is added, which indi-
cates the reason for the error.
1)
The prefix "0x" stands for hexadecimal numbers.
42
03 (0x03) Read
Holding Registers
This function code is used to read the content of one or more successive registers of a device. The request contains the address of the first register to be read
and the number of registers to be read. Registers are addressed in the request
starting at 0. This means that registers 1 to 16 will be addressed via addresses 0
to 15.
06 (0x06) Write
Single Register
Request
Function code1 byte0x03
Start address2 bytes0x0000 to 0xFFFF (0 to 65535)
Number of registers2 bytes1 to 125
Response
Function code1 byte0x03
Number of bytes1 byte2 x N*
Register valuesN* x 2 bytes
*N = number of registers
Error
Error code1 byte0x83
Exception code1 byte01 or 02 or 03 or 04 or 11
This function code is used in order to write a single register. The request only
contains the address of the register to be written. Registers are addressed starting at 0. This means that register 1 is addressed via address 0. The normal response is a copy of the request, which is sent after successfully writing the register.
EN-US
Request
Function code1 byte0x06
Register address2 bytes0x0000 to 0xFFFF (0 to 65535)
Register value2 bytes
Response
Function code1 byte0x06
Register address2 bytes0x0000 to 0xFFFF (0 to 65535)
Register value2 bytes
Error
Error code1 byte0x86
Exception code1 byte01 or 02 or 03 or 04 or 11
43
16 (0x10) Write
Multiple Registers
This function code is used in order to write a block of successive registers. The
request contains the address of the first register to be written, the number of registers to be written, the number of bytes to be written, and the values to be written (2 bytes per register). The normal response contains the function code, the
start address, and the number of registers written.
Request
Function code1 byte0x10
Start address2 bytes0x0000 to 0xFFFF (0 to 65535)
Number of registers2 bytes1 to 123
Number of bytes1 byte2 x N*
Register valuesN* x 2 bytes
*N = number of registers
Response
Function code1 byte0x10
Start address2 bytes0x0000 to 0xFFFF (0 to 65535)
Number of registers2 bytes1 to 123
Error
Error code1 byte0x90
Exception code1 byte01 or 02 or 03 or 04 or 11
Exception codesAn error message (exception response) has two fields, which distinguishes it from
a normal response:
Function code field
-
In a normal response, the function code of the request is adopted into the
function code field of the response. In all function codes, the most significant bit (MSB) is 0 (the values of the function codes are all lower than 0x80).
In an error message, the MSB is set to 1. This means that 0x80 is added to
the value for the function code. The master can identify the response as an
error message due to the set MSB.
Data field
-
A normal response contains data or statistical values in the data field. In an
error message, an exception code is returned in the data field. This exception
code indicates the reason for the error message.
Modbus exception codes
CodeNameMeaning
44
01ILLEGAL FUNCTIONThe function code in the request is not sup-
ported by the slave.
02ILLEGAL DATA AD-
DRESS
Invalid register addresses have been requested.
Modbus exception codes
CodeNameMeaning
03ILLEGAL DATA VALUEA value in the request is outside of the valid
range. This applies both for the fields of a
request (e.g., invalid number of registers)
and for invalid setting values for the SunSpec inverter control models.
04SLAVE DEVICE FAILU-REAn error occurred during an attempt to wri-
te one or more registers.
EN-US
CRC Calculation
for Modbus RTU
11GATEWAY TARGET
DEVICE FAILED TO
RESPOND
Each Modbus RTU message is equipped with a checksum (CRC, Cyclic Redundancy Check) in order to be able to identify transmission errors. The size of the
checksum is 2 bytes. It is calculated by the sending device and attached to the
message to be sent. For its part, the receiver calculates the checksum from all
bytes of the received message (without CRC) and compares this with the received checksum. If these two checksums are different, then an error has occurred.
The calculation of the checksum starts with setting all bits of a 16 bit register
(CRC register) to 1 (0xFFFF). All bytes of the message are then individually processed with the CRC register. Only the data bytes of one message are used for
the calculation. Start, stop, and parity bits are not considered.
During the calculation of the CRC, each byte is XOR-linked with the CRC register. The result is then moved in the direction of the least significant bit (LSB) and
the most significant bit (MSB) is set to 0. The LSB is considered. If the LSB was
previously 1, then the CRC register is XOR-linked with a fixed assigned value. If
the LSB was 0, then nothing needs to be done.
The addressed device is switched off and
cannot be found.
This process is repeated until the CRC register has been moved eight times. After the last (eighth) movement, the next byte is taken and XOR-linked to the current CRC register. The write process then starts from the beginning; it is again
moved eight times. After dealing with all bytes of the message, the value of the
CRC register is the checksum.
45
Calculation algorithm of the CRC16
Calculating CRC
Checksum
46
Initialize a 16 bit register (2 bytes) with 0xFFFF. This register is referred to as
1
the CRC16 register.
XOR-link the first byte of the message with the less significant byte of the
2
CRC16 register. The result is saved in the CRC16 register.
Move the CRC16 register 1 bit to the right (in the direction of the LSB), fill
3
MSB with 0. Look at LSB.
Check LSB value
4
If the LSB was 0: Go to step 3 (move again).
-
If the LSB was 1: XOR-link the CRC16 register with the CRC polynomial
-
0xA001 (1010 0000 0000 0001).
Repeat steps 3 and 4 until eight movement operations have been carried out.
5
When these have been carried out, a complete byte of the message will have
been processed.
Repeat steps 3 to 5 for the next byte of the message. Repeat everything until
6
all bytes of the message have been processed.
After the last byte, the CRC16 register contains the checksum.
7
When the checksum is added to the message to be sent, then the two byes
8
must be inverted as described below.
Adding CRC
Checksum to the
Message
If the 16 bit (2 bytes) CRC checksum is sent with a message, then the less significant byte is transferred before the more significant one.
For example, if the CRC checksum is 0x1241 (0001 0010 0100 0001):
AddrFuncData
Count
0x410x12
DataDataDataDataCRC
Lo
CRC
Hi
EN-US
47
General
Abbreviations
Used
ACAlternating current
DCDirect current
FWFirmware
PF
PVPhotovoltaics
RTCReal-time clock
SFScale factor
SWSoftware
VVoltage (volts)
VAApparent power
VArReactive power
VMaxMaximum voltage
VMinMinimum voltage
VRefReference voltage
WPower (watts)
INInverter
Power factor (cos j)
Register maps
InverterEnergy meter
SID
Identification as a SunSpec device
Common Block
Device information
Inverter Model
Inverter data
Nameplate ModelEnd Block
Basic Settings Model
Ext. Measurement Model
Immediate Controls Model
Multi. MPPT Inv. Ext. Model
Basic Storage Control
End Block
The register lists can be downloaded from the Fronius website:
https://www.fronius.com/de/downloads / Solar Energy / Modbus Sunspec Maps,
State Codes and Events
SID
Identification as a SunSpec device
Common Block
Device information
Meter Model
Energy meter data
48
Response timesRecommendation for timeout values
Modbus requests should only be executed sequentially and not in parallel (maximum 2 queries in parallel). Perform the requests with a timeout of at least 1 second. Requests in millisecond intervals can lead to long response times.
Multiple register requests in one message are faster than multiple requests of individual registers.
EN-US
Modbus device
ID for inverters
Modbus device
ID for energy
meters
TCP: The unit-id of the inverter is always 0x01. Identification is possible by the IP
address.
RTU: The slave-id must be configured on the web interface of the GEN24.
Several GEN24 devices can be connected together. Each device must have a unique number.
If an energy meter (e.g., Fronius Smart Meter 63A) is connected via Modbus RTU,
it can be read out via the settable Modbus device ID using Modbus TCP.
Fronius Smart Meter addressModbus device ID
1200 (default, note: 240 on SnapINverter)
2201
3202
4203
5204
Register addresses
IMPORTANT!
Register addresses do not remain constant.
-
The actual register addresses depend on the composition of the dynamic
-
SunSpec register list.
Correct procedure:
Search for the model by making a request (determine start address)
-
Then work with offsets
-
To read a register, the register's start address must be specified in the Modbus
request.
SunSpec Basic Register: 40001
Registers begin at 1 and do not represent a function code.
Do not confuse the registers with the Modicon address scheme:
in the Modicon address scheme, 40001 is displayed as 4x40001.
To read register 40001, use address 40000 (0x9C40).
The register address that is output therefore always has 1 number less than the
actual register number.
49
IMPORTANT!
The lengths of individual models may vary due to the data types used.
Start addresses are therefore specified for SunSpec models in the case of some
register tables.
This start address, together with the offset from the table, then produces the value of the actual register number.
Example: Table Nameplate Model (120) on page 59:
the register WRtg of the Nameplate Model has an offset of 4. The start address
is specified as 40131 with the setting "float".
Therefore, the correct register number is: 40131 + 4 = 40135.
Examples for Modbus RTU:
1. Request for 4 registers starting from register 40005 (Mn, Manufacturer)
Send (bytes in hexadecimal)
01039C4400042A4C
Device
ID
Func-
tion
code
Address
40004 (corresponds to
register
40005)
Number of
registers to
be read
Checksum
Low
byte
High
byte
Receive (bytes in hexadecimal)
01030846726F6E697573008A2A
Device
ID
2. Enter one register starting from register 40242 (WmaxLimPct)
01109D320001021388E3DD
Device
ID
Func-
tion
code
Func-
tion
code
Number of
bytes
Address
40242
Address
40005
"F" and "r"
Number of
registers to
be entered
Address
40006
"o" and "n"
Number
bytes still
to follow
of data
Address
40007
"i" and "u"
Register
value to
be ente-
red
Address
40008
"s" and 0
Checksum
Low
byte
Checks-
um
0x1388 =
01109D3200018FAA
Device
ID
Func-
tion
code
Address
40242
Number of
registers entered
Checksums
"i" and "u"
5000
400
08
"s"
and
0
Low
byte
High
byte
High
byte
50
Low
byte
High
byte
Examples for Modbus TCP:
1. Request for 4 registers starting from register 40005 (Mn, Manufacturer)
Send (bytes in hexadecimal)
MBAP header
For details, see
description of
MBAP header
039C440004
Func-
tion
code
Address 40004
(corresponds to
register 40005)
Number of
registers to
be read
Receive (bytes in hexadecimal)
MBAP header
For details, see
description of
MBAP header
2. Enter one register starting from register 40242 (WmaxLimPct)
030846726F6E69757300
Func-
tion
code
Num-
ber of
bytes
Address
40005
"F" and "r"
Address
40006
"o" and "n"
Address
40007
"i" and "u"
Address
40008
"s" and 0
EN-US
MBAP header
For details, see
description of
MBAP header
MBAP header
For details, see
description of
MBAP header
109D320001021388
Func-
tion
code
Address 40242Number of
registers to
be entered
Number of
data bytes
still to fol-
low
Register va-
lue to be en-
tered
0x1388 =
5000
109D320001
Func-
tion
code
Address 40242Number of
registers en-
tered
51
Unavailable data
records
Fronius inverters cannot always provide all the data specified in the SunSpec
data models. Depending on the data type, this data is represented by the following values in accordance with the SunSpec specification:
int16 (-32767 to 32767):
-
uint16 (0 to 65534):
-
acc16 (0 to 65535):
-
enum16 (0 to 65534):
-
bitfield16 (0 to 0x7FFF):
-
pad (0x8000):
-
int32 (-2147483647 to 2147483647):
-
uint32 (0 to 4294967294):
-
acc32 (0 to 4294967295):
-
enum32 (0 to 4294967294):
-
bitfield32 (0 to 0x7FFFFFFF):
-
int64 (-9223372036854775807 to
-
9223372036854775807):
uint64 (0 to 18446744073709551615):
Data points that are not supported are marked with "Not supported" in the
"Range of values" column in the register tables.
In this case, during reading, the corresponding value from the list above is obtained depending on the data type.
In certain instances, registers which are basically listed as supported may also
return this value. This is because some values depend on the device type, e.g.,
currents AphB and AphC in the case of a single-phase inverter.
52
Time response illustrated by power reduction
The inverter's time response in an operating mode can be defined by several time
(+kVAr, +kVArh)
(-kW,
-kWh)
(+kW,
+kWh)
(-kVAr, -kVArh)
90°
0°
180°
270°
Quadrant 1
Quadrant 4
Quadrant 2
Quadrant 3
Power factor sign
convention
EEI: +
(Leading, capacitive)
Power factor sign
convention
EEI: +
(Leading, capacitive)
Power factor sign
convention
EEI: -
(Lagging, inductive)
Power factor sign
convention
EEI: -
(Lagging, inductive)
ϕ
ϕ
ϕ
ϕ
Apparent Power (VA)
Apparent Power (V
A
)
Apparent Power (VA)
Ap
par
ent
P
ower (VA)
Active Power
Exported/Received (W)
Active Power
Exported/Received (W)
Active Power
Exported/Received (W)
Active Power
Exported/Received (W)
Reactive Power
Exported/Received (Var)
Reactive Power
Exported/Received (Var)
Reactive Power
Exported/Received (Var)
Reactive Power
Exported/Received (Var)
values.
Three possible time values are shown in the figure "Time response illustrated by
power reduction":
WinTms 0–300 [seconds]
-
Specifies a time window in which the operating mode is randomly started.
The time window starts when the start command for the operating mode is
issued (e.g., OutPFSet_Ena = 1).WinTms can be used to prevent all the inverters in the system from applying
the changes at the same time. If the time window is set to 0 (the default value), the operating mode will start immediately.
RvrtTms 0–28800 [seconds]
-
Determines how long the operating mode will remain active. The timer is restarted with every Modbus message received. If no new Modbus message
was received during the fallback time (= RvrtTms), the operating mode is automatically ended and the operating mode with the next highest priority becomes active, e.g., dynamic power reduction. If RvrtTms is 0 (the default value), the operating mode remains active until it is manually deactivated via
the corresponding register. In this instance the fallback option is not available.
RmpTms
-
Specifies how quickly the changes are to be made. The corresponding value
gradually changes during the specified time period from the old to the new
value.
If RmpTms is 0 (the default value) or if this value is not supported, the new
value will be valid immediately.
EN-US
Sign Convention
for the Power
Factor
The EEI sign convention1) for the power factor is in line with the SunSpec specification and is based on the information contained in the "Handbook for Electricity
Metering" and IEC 61557-12 (2007).
53
The power factor is:
negative if the reactive power is positive (over-excited, quadrant 1)
-
positive if the reactive power is negative (under-excited, quadrant 4)
-
1)
EEI = Edison Electrical Institute
Values saved on
the card
Nameplate Model (IC120):
WRtg
-
AC nominal output of inverter
VARtg
-
AC nominal apparent output of inverter.
Default value = WRtg
VArRtgQ1
-
Maximum AC reactive power in the first quadrant (over-excited).
Default value is calculated based on the available cos Phi (0.85) and the nominal apparent power. Note the scale factor VArRtg_SF
VArRtgQ4
-
Maximum AC reactive power in the fourth quadrant (under-excited).
Default value is calculated based on the available cos Phi (0.85) and the nominal apparent power. Note the scale factor VArRtg_SF
ARtg
-
AC nominal current of inverter
Basic Settings Model (IC121):
WMax
-
Maximum AC power
Default value = WRtg
VRef
-
Reference voltage at the feed-in point
VRefOfs
-
Deviation from reference voltage
VMax
-
Maximum AC voltage
VMin
-
Minimum AC voltage
VAMax
-
Maximum AC apparent power
Default value = VARtg
Scale factorsIMPORTANT! Scale factors (also possible when selecting "Float"!) are not static,
even if they are entered as a fixed value in these Operating Instructions.
Scale factors can change every time the firmware is changed and also change
with the runtime (auto-scale) (e.g., scale factor for power specification).
Scale factors with constant values are listed in the tables in the column "Range
of values".
Current data (data of inverters and energy meters) may have variable scale factors. These must be read from the corresponding registers.
The data type "sunssf" is a signed integer with 16 bits.
Example calculation:
(Model 160): 1_DCW = 10000, DCW_SF = -1 -> Power = 10000 x 10^(-1) = 1000
W
54
Non-writable registers
The following registers cannot be written:
Read-only (R) registers
-
Registers which are currently not supported
-
NOTE!
Entering Invalid
Values
If an attempt is made to write to such registers, the inverter does not return an
exception code!
The values written to these registers are ignored without an error message.
In Model 123 and 124, an exception occurs during write access if the control option in the local web interface has been deactivated.
Some registers only permit certain values. The valid values can be found in the
relevant register table.
If an invalid value is entered into a register, the Fronius Datamanager will return
exception code 3 (illegal data value). The invalid value is ignored.
If several registers are written at the same time, all the valid values will be entered up to the register containing the invalid value. The write operation will then
be canceled.
EN-US
55
Modbus Settings
GeneralFrom your web browser, you can use the inverter web interface to apply the Mod-
bus connection settings which cannot be accessed via the Modbus protocol.
Open the Modbus settings
ModbusModbus RTU interface 0 / 1
Open the web interface of the inverter
1
Select the "Communication" section (1)
2
Open the "Modbus" menu item (2)
3
If one of the two Modbus RTU interfaces is set to slave, the following input fields
are available:
"Baud rate"
The baud rate influences the speed of the transmission between the individual
components connected in the system. When selecting the baud rate, it should be
ensured that this is the same on the transmit and receive side.
"Parity"
The parity bit can be used for parity checks. This is used to identify transmission
errors. In this case, a parity bit can ensure a specified number of bits. The value
(0 or 1) of the parity bit must be calculated at the transmitter, and is checked at
the receiver using the same calculation. The calculation of the parity bit can be
carried out for even or odd parity.
"SunSpec Model Type"
There are two different settings, depending on the Sunspec model.
float: SunSpec Inverter Model 111, 112, 113 or 211, 212, 213.
int + SF: SunSpec Inverter Model 101, 102, 103 or 201, 202, 203.
"Meter address"
The value entered is the identification number (Unit ID) assigned to the meter.
Can be found on the inverter's website in the Communication - Modbus menu.
Factory setting: 200
"Inverter address"
The value entered is the identification number (Unit ID) assigned to the inverter.
Can be found on the inverter's website in the Communication - Modbus menu.
Factory setting: 1
Slave as Modbus TCP
If the function "Slave as Modbus TCP" is activated, the following input fields are
available:
"Modbus-Port"
Number of the TCP port to be used for Modbus communication.
"SunSpec Model Type"
There are two different settings, depending on the Sunspec model.
float: SunSpec Inverter Model 111, 112, 113 or 211, 212, 213.
int + SF: SunSpec Inverter Model 101, 102, 103 or 201, 202, 203.
56
"Meter address"
The value entered is the identification number (Unit ID) assigned to the meter.
Can be found on the inverter's website in the Communication - Modbus menu.
Factory setting: 200
"Inverter address"
The value entered is the identification number (Unit ID) assigned to the inverter.
Can be found on the inverter's website in the Communication - Modbus menu.
Factory setting: This value is invariably defined as 1.
Inverter control via Modbus
If this option is activated, the inverter is controlled via Modbus.
Inverter control includes the following functions:
On/off
-
Power reduction
-
Setting a constant power factor (cos phi)
-
Setting a constant reactive power
-
Battery control specifications with battery
-
Limiting controlThe "Limit Control" option is only available for the TCP transmission protocols.
It is used to block inverter control commands from unauthorized users by only
permitting control for specific devices.
EN-US
Limit Control
If this option is activated, only certain devices will be able to send control commands.
IP address
To limit inverter control to one or more devices, enter the IP addresses of the devices which are permitted to send commands to the inverter in this field. Multiple
entries are separated by commas.
Examples:
One IP address: 98.7.65.4
-
Control only permitted by IP address 98.7.65.4
-
Several IP addresses: 98.7.65.4,222.44.33.1
-
Control only permitted by IP addresses 98.7.65.4 and 222.44.33.1
-
IP address range, e.g., from 98.7.65.1 to 98.7.65.254 (CIDR notation):
-
98.7.65.0/24
Control only permitted by IP addresses 98.7.65.1 to 98.7.65.254
-
57
Common & Inverter Model
Common Block
Register
Inverter Model
Register
SunSpec Operating Codes
The description of the Common Block including the SID register (register
40001–40002) for identification as a SunSpec device applies for each device type (inverter, energy meter). Each device has its own Common Block, which lists
information about the device (model, serial number, SW version, etc.).
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
Two different SunSpec models are supported for the inverter data:
the default set inverter model with floating point display
-
(setting "float"; 111, 112 or 113)
the inverter model with integers and scale factors
-
(setting "int+SF"; 101, 102 or 103)
The register number of the two model types is different!
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
NameValueDescription
I_STATUS_OFF1Inverter is off
I_STATUS_SLEEPING2Auto shutdown
I_STATUS_STARTING3Inverter starting
I_STATUS_MPPT4Inverter working normally
I_STATUS_THROTTLED5Power reduction active
I_STATUS_SHUTTING_DOWN
I_STATUS_FAULT7One or more faults present, see
I_STATUS_STANDBY8Standby
*Inverter model register
6Inverter shutting down
St*or Evt* register
58
Nameplate Model (120)
GeneralThis model corresponds to a rating plate. The following data can be read:
DERType (3)
-
Type of device. The register returns the value 4 (PV device).
WRtg (4)
-
Nominal power of inverter.
VARtg (6)
-
Nominal apparent power of inverter.
VArRtgQ1 (8) – VArRtgQ4 (11)
-
Nominal reactive power values for the four quadrants.
ARtg (13)
-
Nominal current of inverter.
PFRtgQ1 (15) – PFRtgQ4 (18)
-
Minimal power factor values for the four quadrants.
EN-US
Nameplate Register
Start address:
for "float" setting: 40131
-
for "int+SF" setting: 40121
-
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
59
Basic Settings Model (121)
Local Bus
Utility Power System
Local Power
System with
Line Resistors
DER interconnections
Point of Common
Coupling (PCC)
Example Settings
VRef = 120V
VRefOfs = 2V
VRefOfs = 4V
VRefOfs = 3V
= Electrical Connection Point (ECP)
Basic Settings
Register
Start address:
for "float" setting: 40159
-
for "int+SF" setting: 40149
-
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
Reference Volta-geVRef (4)
The reference voltage is the voltage at the joint connection point where the local
grid is connected to the public grid. The reference voltage is the same as the inverter's nominal voltage.
=> See figure "Joint Connection Point."
The value is given in volts in the range of 0 (0x0000) to 400 (0x0190).
Deviation from
reference voltage
Joint Connection Point
VRefOfs (5)
Depending on the wiring of the local grid, there may be a deviation from the reference voltage at the point where each individual inverter is connected to the local
grid (see "Joint connection point" diagram).
60
Extended Measurements & Status Model (122)
GeneralThis model provides some additional measurement and status values which the
normal inverter model does not cover:
PVConn (3)
-
This bit field displays the inverter's status
Bit 0: Connected
-
Bit 1: Responsive
-
Bit 2: Operating (inverter feeds energy in)
-
ECPConn (5)
-
This register displays the status of connection to the grid
ECPConn = 1: inverter is currently feeding power into the grid
-
ECPConn = 0: inverter is not feeding power into the grid
-
ActWH (6–9)
-
Active energy meter
StActCtl (36–37)
-
Bit field for currently active inverter modes
Bit 0: power reduction (FixedW; corresponds to WMaxLimPct specificati-
-
on)
Bit 1: constant reactive power specification (FixedVAR; corresponds to
-
VArMaxPct)
Bit 2: specification of a constant power factor (FixedPF; corresponds to
-
OutPFSet)
TmSrc (38–41)
-
Source for the time synchronization, the register returns the string "RTC"
EN-US
Extended Measurements &
Status Register
Tms (42–43)
-
Current time and date of the RTC
The seconds are specified from January 1, 2000 00:00 (UTC) to the current
time.
Ris
-
Iso Resistance
Start address:
for "float" setting: 40191
-
for "int+SF" setting: 40181
-
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
61
Immediate Control Model (123)
GeneralThe immediate controls can be used to make the following settings on the inver-
ter:
deactivation of inverter's grid power feed operation (standby)
-
constant reduction of output power
-
specification of a constant power factor
-
specification of a constant relative reactive power
-
In the settings on the inverter's web interface, the setting "Inverter control via
Modbus" must be enabled under Modbus for write functions to be possible. Depending on the control priority that has been set (IO control, dynamic power reduction, or control via Modbus), Modbus commands may not be accepted.
Immediate Controls Register
StandbyConn_WinTms (3) to Conn (5)
Start address:
for "float" setting: 40237
-
for "int+SF" setting: 40227
-
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
These registers are used to control the standby mode (no grid power feed operation) of the inverter.
Conn_WinTms (3) and Conn_RvrtTms (4)
These registers can be used to control the inverter's time response. => See section "Time Response of the Supported Operating Modes".
0 is set as the default for all registers.
Conn (5)
Register Conn indicates whether or not the inverter is currently feeding power into the grid (0 = standby, 1 = grid power feed operation).
In order to switch the inverter to standby, enter the value 0 into this register.
-
In order to reactivate the inverter, enter the value 1 into this register.
-
NOTE!
To find out whether or not the inverter is feeding power into the grid, you can
also use the ECPConn register and check the extended measurements and status model.
Power reductionWMaxLimPct (6) to WMaxLim_Ena (10)
These registers can be used to set an output power reduction in the inverter.
WMaxLimPct (6)
Values between 0% and 100% can be entered in register WMaxLimPct.
The values limit the maximum possible output power of the device, and therefore
do not necessarily have an effect on the current power.
62
IMPORTANT! Observe the scale factor for this register.
Further information can be found at:
http://sunspec.org/wp-content/uploads/2015/06/SunSpec-Information-Models-12041.pdf
WMaxLimPct_WinTms (7), WMaxLimPct_RvrtTms (8)
These registers can be used to control the inverter's time response for this operating mode. => See section "Time response of the supported operating modes".
0 is set as the default for all registers.
WMaxLim_Ena (10)
Used to start and end this operating mode
Enter value 1 into register WMaxLim_Ena = start operating mode
-
Enter value 0 into register WMaxLim_Ena = end operating mode
-
NOTE!
To change values in an active operating mode (e. g.
to set a different power limit or a different return time), proceed as follows:
Enter the new value into the relevant register
▶
Restart the operating mode using register WMaxLim_Ena by setting a 1
▶
EN-US
Example:
setting a power
reduction
If you are working with function code 0x10 (write multiple registers), performance specifications can be used to achieve a higher level of performance. Instead of using two Modbus commands, it is now possible to preset both the power
and enable at the same time with just one command. All 5 registers
(WMaxLimPct, WMaxLimPct_WinTms, WMaxLimPct_RvrtTms,
WMaxLimPct_RmpTms, WMaxLim_Ena) can be written with one command. Writing to the "Read Only" register WMaxLimPct_RmpTms takes place without returning an otherwise usual exception (error) code.
For example, register values for 80% specification without timing specification:
8000, 0, 0, 0, 1
Enter the value for the output power reduction in register WMaxLimPct
1
(e.g., 3000 for 30%).
As an option, you can set the start and return time using registers
2
WMaxLimPct_WinTms and WMaxLimPct_RvrtTms.
Start the operating mode by entering 1 in register WMaxLim_Ena.
3
IMPORTANT! Observe the scale factor for this register.
Further information can be found at:
http://sunspec.org/wp-content/uploads/2015/06/SunSpec-Information-Models-12041.pdf
Example:
Changing the
Return Time
When Power Reduction Has Been Activated
If the power reduction was originally started using WMaxLimPct_RvrtTms = 0,
the operating mode must be manually deactivated.
Set WMaxLimPct_RvrtTms to 30, for example
1
Apply the change by entering 1 in register WMaxLim_Ena
2
The operating mode is automatically deactivated after 30 seconds and
-
the mode with the next highest priority becomes active (e.g., dynamic
power reduction)
63
Effects of reactive power specifications on effective power
In principle, reactive power operation is limited by the maximum output current
(the maximum apparent power) and by the operative reactive power limit of the
inverter:
the following diagram shows the possible working range of the inverter. All valid
operating points defined by effective power P and reactive power Q are within
the gray area.
The maximum values must be read out from the Nameplate Model via registers
VArRtgQ1 to VArRtgQ4 and VArRtg_SF.
OutPFSet (11) to OutPFSet_Ena (15)
These registers can be used to set a constant power factor in the inverter.
OutPFSet (11)
In register OutPFSet it is possible to enter both positive and negative values
-
for the power factor.
The values must be scaled up by the factor in register OutPFSet_SF.
-
The lowest possible values depend on the inverter type and can be found in
-
the Nameplate Model.
NOTE!
The power factor value must be entered with the correct sign, see section "Sign
convention for the power factor"
positive for under-excited
▶
negative for over-excited.
▶
OutPFSet_WinTms (12), OutPFSet_RvrtTms (13)
These registers can be used to control the inverter's time response for this operating mode. => See section "Time response of the supported operating modes".
0 is set as the default for all registers.
OutPFSet_Ena (15)
Used to start and end this operating mode
Enter value 1 into register OutPFSet_Ena = start operating mode
-
Enter value 0 into register OutPFSet_Ena = end operating mode.
-
EN-US
Example:
Setting a Constant Power Factor
NOTE!
Proceed as follows to change values when an operating mode is active (e.g.,
when setting a different power factor or return time):
Enter the new value into the relevant register
▶
Restart the operating mode using register OutPFSet_Ena by setting a 1.
▶
OutPFSet_RmpTMS
-
Enter the power factor value in register OutPFSet
1
(e.g., 950 for 0.95).
As an option, you can set the start and return time using registers OutPF-
2
Set_WinTms and OutPFSet_RvrtTms.
Start the operating mode by entering 1 in register OutPFSet_Ena.
3
65
Constant relative reactive
power
VArMaxPct (17) to VArPct_Ena (23)
These registers can be used to set on the inverter a constant value for the reactive power to be produced by the inverter.
VArMaxPct (17)
Used to set a value for constant reactive power.
-
The minimum and maximum limits depend on the type of inverter.
-
NOTE!
In practical operation, the reactive power that is actually available is specified
by the inverter's operating limits.
For this reason, the reactive power specification can only be reached if enough
effective power is fed into the grid.
If too little effective power is fed into the grid, the inverter will operate at its
operating limit.
VArPct_WinTms (19), VArPct_RvrtTms (20)
These registers can be used to control the inverter's time response for this operating mode. => See section "Time response of the supported operating modes".
0 is set as the default for all registers.
VArPct_Mod (22)
This register cannot be changed.
-
It returns the (currently) supported operating mode.
-
Reactive power as a percentage of the maximum possible reactive power.
Example:
Setting Constant
Reactive Power
VArPct_Ena (23)
Used to start and end this operating mode
Enter value 1 into register VArPct_Ena = start operating mode
-
Enter value 0 into register VArPct_Ena = end operating mode.
-
NOTE!
To change values in an active operating mode (e. g.
to set a different reactive power or a different return time), proceed as follows:
Enter the new value into the relevant register
▶
Restart the operating mode using register VArPct_Ena by setting a 1.
▶
VArPct_RmpTms (23)
the relative approximation value in %/s
-
Enter the relative reactive power value in register VArMaxPct
1
(e.g., 80 for 80%).
As an option, you can set the start and return time using registers
2
VArPct_WinTms and VArPct_RvrtTms.
Start the operating mode by entering 1 in register VArPct_Ena.
3
66
Multiple MPPT Inverter Extension Model (160)
GeneralThe Multiple MPPT Inverter Extension Model contains the values of the DC inver-
ter inputs.
Multiple MPPT
Inverter Extension Register
If the inverter has several DC inputs, then this is where the current, voltage,
power, energy, and status codes for the individual inputs are listed. In the inverter model (101–103 or 111–113), only the full DC power of both inputs is output
in this case. DC current and DC voltage are displayed as "not implemented".
The number of blocks is automatically adjusted based on the DC inputs. For devices with a storage solution, there are two additional blocks (charging (MPP3)
and discharging (MPP4)). The register addresses are shifted in the following models (absolutely related to the register addresses).
Start address:
for "float" setting: 40263
-
for "int+SF" setting: 40253
-
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
EN-US
67
Basic Storage Control Model (124)
GeneralThis model is only available for inverters with a storage solution.
The Basic Storage Control Model can be used to make the following settings on
the inverter:
Setting a power window within which the charge/discharge capacity of the
-
energy storage may fluctuate.
Setting a minimum charge level that the energy storage must not fall below.
-
Permitting/preventing grid charging of the energy storage.
-
NOTE!
All specifications are to be considered recommendations.
The inverter may deviate from the specifications if this is necessary for operational safety reasons.
Information Provided
Power Window
Specifications
The Basic Storage Control Model provides the following read-only information:
WChaMax
If energy storage is available, this register feeds back the baseline value for
-
the registers OutWRte and InWRt.
WChaMax := max(MaxChaRte, MaxDisChaRte)
If energy storage is not available, the register feeds back a value of 0.
EMPTY: Energy storage is currently fully discharged
-
DISCHARGING: Energy storage is in the process of being discharged
-
CHARGING: Energy storage is in the process of being charged
-
FULL: Energy storage is currently fully charged
-
HOLDING: Energy storage is currently neither charged nor discharged
-
TESTING: used during calibration or service charge
-
In the settings on the inverter's web interface, the setting "Inverter control via
Modbus" must be enabled under Modbus for write functions to be possible. Depending on the control priority that has been set (IO control, dynamic power reduction, or control via Modbus), Modbus commands may not be accepted.
68
The following examples assume that WchaMax = 3300 W.
The following applies for the resulting power windows:
Negative power values indicate that the energy storage is charging
-
Positive values indicate that the energy storage is discharging
-
NOTE!
The values in the following examples must be scaled according to their scale
factors in the specified scale registers after reading and before writing.
Manipulating the registers InWRte, OutWRte and StorCtl_Mod will generate
changes in the battery status in Fronius Solar.web, ex: Forced Recharge and Energy saving mode, depending on user settings and current status of the battery.
Example 1: Only permit energy storage charging
This behavior can be achieved by limiting the maximum discharge capacity to 0%
=> results in window [-3300 W, 0 W]
OutWRte = 0% (set discharge limit of WchaMax to 0%)
-
StorCtl_Mod = 2 (activates discharge limit, bit pattern: 10)
-
InWRte is not relevant in this case
-
Example 2: Only permit energy storage discharging
This behavior can be achieved by limiting the maximum charge capacity to 0% =>
results in window [0 W, 3300 W]
This behavior can be achieved by limiting the maximum charge capacity to 0%
and the maximum discharge capacity to 0%
=> results in window [0 W, 0 W]
InWRte = 0% (set charge limit of WchaMax to 0%)
-
OutWRte = 0% (set discharge limit of WchaMax to 0%)
-
StorCtl_Mod = 3 (activate both limit values, bit pattern: 11)
-
Example 4: Charging and discharging with maximum 50% of the nominal power
This behavior can be achieved by limiting the maximum charge capacity to 50%
and the maximum discharge capacity to 50%
=> results in window [-1650 W, 1650 W]
InWRte = 50% (set charge limit of WchaMax to 50%)
-
OutWRte = 50% (set discharge limit of WchaMax to 50%)
-
StorCtl_Mod = 3 (activate both limit values, bit pattern: 11)
-
Example 5: Charging in the range of 50% to 75% of the nominal power
This behavior can be achieved by limiting the maximum charge capacity to 75%
and the maximum discharge capacity to -50%
=> results in window [1650 W, 2475 W]
InWRte = 75% (set charge limit of WchaMax to 75%)
-
OutWRte = -50% (set discharge limit of WchaMax to -50%)
-
StorCtl_Mod = 3 (activate both limit values, bit pattern: 11)
-
Battery status in Fronius Solar.web will change to Forced Recharge
-
Example 6: Discharging with 50% of the nominal power
This behavior can be achieved by limiting the maximum charge capacity to -50%
and the maximum discharge capacity to 50%
=> results in window [-1650 W, -1650 W]
InWRte = -50% (set charge limit of WchaMax to -50%)
-
OutWRte = 50% (set discharge limit of WchaMax to 50%)
-
StorCtl_Mod = 3 (activate both limit values, bit pattern: 11)
-
69
Example 7: Charging with 50% to 100% of the nominal power
This behavior can be achieved by limiting the maximum discharge capacity to
-50% => results in window [1650 W, 3300 W]
OutWRte = -50% (set discharge limit of WchaMax to -50%)
-
StorCtl_Mod = 2 (activates discharge limit, bit pattern: 10)
-
InWRte is not relevant in this case
-
Battery status in Fronius Solar.web will change to Forced Recharge
-
Setting the Minimum Charge Level
Charging the energy storage via
the grid
Basic Storage
Controls Register
By setting register MinRsvPct, a minimum state of charge of the energy storage
can be set.
For example, by setting MinRsvPct to 20%, a reserve of 20% of the state of charge can be reserved that the state of charge should not fall below.
The ChaGriSet register can be used to allow or prevent inverter storage charging
via the grid. The register ChaGriSet and the field "battery charging from DNO
grid" in the Fronius system monitoring settings are AND-linked (Device configuration - Components - Battery). If the behavior is to be controlled by the ChaGriSet flag, "battery charging from DNO grid" must be checked.
The battery can be woken from standby mode via the IC124 model. If the So-cMin under the last known SoC is set while the battery is in standby mode, this
will be enabled.
Start address:
for "float" setting: 40313
-
for "int+SF" setting: 40303
-
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
Register manipulation and Battery status changes in Fronius
Solar.web
Fronius Solar.web allow users to visualize status changes from the battery. These
changes can be seen in Fronius Solar.web under the option Energy balance then
Production or Consumption. The changes are marked with a bubble status, clicking on a state change will show the previous state followed by an arrow and the
new state.
70
Battery state change from Start-up to Normal Operation.
Battery status changes are triggered during normal operation (when the battery
is ready to enter in operation, security reasons,etc) or by manipulating the modbus registers MinRsvPct, InWRte, OutWRte and StorCtl_Mod.
The changes could be triggered as follows:
A minimum state of charge is set using the register MinRsvPct, the corre-
-
sponding state change is “Energy-saving mode”.
Setting the registers InWRte, OutWRte, StorCtl_Mod the battery status
-
could change to “Forced Recharge”.
EN-US
71
Meter Model
Meter Model Register
The data of an energy meter connected with the Fronius Datamanager via Modbus RTU can be read by the relevant SunSpec models via Modbus TCP.
In a similar way to the inverter models, there are also two different SunSpec models in this case:
the meter model with floating point display
-
(setting "float"; 211, 212 or 213)
the meter model with integers and scale factors
-
(setting "int+SF"; 201, 202 or 203)
The register number of the two model types is different!
The Modbus device ID of the energy meter is configurable (default = 200).
The register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
There are 4 different meter locations, which are described by the location number (see table). Depending on where the Smart Meter is located and whether the
inverter is producing or consuming, the signs of the PowerReal values and the
Energy values change. These are shown in the following table:
Meter_Location
PowerReal_P_Sum (+
positive)
0 (grid)1 (load)3 (ext. gene-
rator)
consuming
from grid
producing
power
generationload is produ-
256-511
(subload)
cing power
PowerReal_P_Sum (negative)
energy plus
(absolute
counter)
energy minus
(absolute
counter)
*is not typically. May occur when other power generation is located in load path and producing more
power than load can consume.
feeding in to
grid
import from
grid = energy
consumed
export to grid
= energy produced
normal consumption
producing
power* = energy produced
consumption
= energy consumed
consumptionnormal con-
sumption
generation =
energy produced
consumption
= energy consumed
producing
power* = energy produced
consumption
= energy consumed
72
End Block
GeneralTwo registers according to the last data model indicate that no further SunSpec
models will follow.
The addresses of these two registers are different depending on the device type
(inverter, String Control, energy meter) and selected data type ("float" or "int
+SF").
Inverter:
-
- Start address for setting "float": 40313
-
- Start address for setting "int+SF": 40303
-
Fronius String Control:
-
- Start address: 40127
-
Energy meter:
-
- Start address for setting "float": 40195
-
- Start address for setting "int+SF": 40176
-
End BlockThe register tables can be found on the Fronius website or opened using the link:
http://www.fronius.com/QR-link/0024 .
EN-US
73
74
EN-US
75
-
-
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.