Lese-Funktionscode (0x03)

Urheber: Mergim Morina
Letzte Aktualisierung: 18.04.2025


Der Funktionscode 0x03 erlaubt externen Master-Geräten die Momentanwerte des Wechselrichters, Menüeinstellungen und Regelwerte der volatilen Register zur Leistungssteuerung auszulesen. Die Modbusprotokolle können per Anfrage an den Techniksupport angefordert werden. Die Zusammensetzung eines Lesebefehls an AZZURRO Wechselrichter wird mit dieser Anleitung erläutert.



Beispiel 1: Die Wirkleistung am Netzaustausch soll für die Überschusssteuerung einer Wärmepumpe ausgelesen werden. Die Eingaben werden vollständig im Hexadezimal-Zahlensystem geschrieben. Folgender Lesebefehl wird an den AZZURRO Wechselrichter geschickt:
  • 01 03 0488 0001 +CRC

Der Befehl setzt sich folgend zusammen:
  • 01 - Geräteradresse (1-247 sind valide)
  • 03 - Funktionscode zum Auslesen der Register
  • 0488 - Startregister für die Abfrage
  • 0001 - Anzahl der auszulesenden Register
  • CRC - Prüfsumme (vom Master-Gerät automatisch generiert)


Der Wechselrichter gibt folgenden Befehl aus:
  • 01 03 02 02D3 F8B9

Die Antwort setzt sich folgend zusammen:
  • 01 - Geräteadresse des gewählten Slave-Gerätes
  • 03 - Funktionscode zum Auslesen der Register
  • 02 - Anzahl der ausgelesenen Bytes (1x 16bit-Register = 2 Bytes)
  • 02D3 - Wert des ausgelesenen Registers ($02D3 = #0723 = 7,23kW)
  • F8B9 - Prüfsumme (generiert vom Slave-Gerät)

Das externe Master-Gerät erhält den Momentanwert des Netzaustausches von 7,23kW und verwendet den verfügbaren Überschuss zum Betreiben der Wärmepumpe.




Beispiel 2: Die Parallel-Einstellungen des Slaves für die Kaskadierung sollen geprüft werden. Drei Register sind in Folge auszulesen. Folgender Lesebefehl wird an den AZZURRO Wechselrichter geschickt:
  • 01 03 1035 0003 +CRC

Der Befehl setzt sich folgend zusammen:
  • 01 - Geräteradresse (1-247 sind valide)
  • 03 - Funktionscode zum Auslesen der Register
  • 1035 - Startregister für die Abfrage
  • 0003 - Anzahl der auszulesenden Register ($1035 - $1037)
  • CRC - Prüfsumme (vom Master-Gerät automatisch generiert)


Der Wechselrichter gibt folgenden Befehl aus:
  • 01 03 06 0001 0000 0005 DCB6

Die Antwort setzt sich folgend zusammen:
  • 01 - Geräteadresse des gewählten Slave-Gerätes
  • 03 - Funktionscode zum Auslesen der Register
  • 06 - Anzahl der ausgelesenen Bytes (3x 16bit-Register = 6 Bytes)
  • 0001 - Wert des ausgelesenen Registers $1035 (= Parallel-Einstellung aktiv)
  • 0000 - Wert des ausgelesenen Registers $1036 (= Gerät definiert als Slave)
  • 0005 - Wert des ausgelesenen Registers $1037 (= Paralleladresse 5)
  • DCB6   - Prüfsumme (generiert vom Slave-Gerät)

Das externe Steuergerät gibt aus, dass die Funktion am Wechselrichter aktiv ist und das Gerät als Slave mit der Geräteadresse 5 arbeitet.




Beispiel 3: Der Entlade-Grenzwert für den Peakshaving-Modus soll ausgelesen werden. Hierbei handelt es sich um ein 32-bit-Register (2x 16-bit). Folgender Lesebefehl wird an den AZZURRO Wechselrichter geschickt:
  • 01 03 1130 0002 +CRC

Der Befehl setzt sich folgend zusammen:
  • 01 - Geräteradresse (1-247 sind valide)
  • 03 - Funktionscode zum Auslesen der Register
  • 1130 - Startregister für die Abfrage
  • 0002 - Anzahl der auszulesenden Register ($1130 - $1131)
  • CRC - Prüfsumme (vom Master-Gerät automatisch generiert)


Der Wechselrichter gibt folgenden Befehl aus:
  • 01 03 04 0001 24F8 B171

Die Antwort setzt sich folgend zusammen:
  • 01 - Geräteadresse des gewählten Slave-Gerätes
  • 03 - Funktionscode zum Auslesen der Register
  • 04 - Anzahl der ausgelesenen Bytes (1x 32bit-Register = 4 Bytes)
  • 0001 - Wert des ausgelesenen Registers $1130
  • 24F8 - Wert des ausgelesenen Registers $1131 (Antwort als Big-Endian = 000124F8 = 75kW)
  • B171   - Prüfsumme (generiert vom Slave-Gerät)

Das externe Steuergerät gibt den Peakshaving-Grenzwert von 75kW wieder.