Transcription of Modbus TCP & RTU Fronius Datamanager
1 Fronius prints on elemental chlorine free paper (ECF) sourced from certifi ed sustainable forests (FSC)./ Perfect Charging / Perfect Welding / Solar EnergyFronius DatamanagerModbus TCP & RTUDEB edienungsanleitungEN-USOperating instructions42,0410,2049025-13012022 InhaltsverzeichnisDas Modbus Protokoll5 Allgemeines5 Aufbau von Modbus Nachrichten5 Modbus TCP MBAP Header6 Unterst tzte Funktionscodes603 (0x03) Read Holding Registers706 (0x06) Write Single Register716 (0x10) Write Multiple Registers8 Exception Codes8 CRC Berechnung f r Modbus RTU9 CRC Pr fsumme berechnen10 CRC Pr fsumme zur Nachricht hinzuf gen11 Allgemeines12 Verwendete Abk rzungen12 Kommunikation mit dem Modbus Master12 Kommunikation mit dem Modbus Master13 Register Maps14 Antwortzeiten14 Modbus Ger te-ID f r Wechselrichter15 Modbus Ger te-ID f r Fronius String Controls15 Modbus Ger te-ID f r Energiez hler16 Modbus Ger te-ID f r Fronius Sensor Cards16 Event Flags17 Registeradressen17 Nicht vorhandene Datens tze20 Zeitverhalten der unterst tzten Betriebsarten21 Vorzeichenkonvention f r den Power Factor22 Auf der Karte gespeicherte Werte22 Skalierungsfaktoren23 Nicht beschreibbare Register23 Schreiben ung ltiger Werte24 Einstellungen - Modbus25 Allgemeines25 Einstellungen - Modbus ffnen25 Datenausgabe ber Modbus26 Steuerung einschr nken28 nderungen speichern oder verwerfen29 Fronius Register30 Fronius Register30 Status-Code des Wechselrichters30L schen der Event Flags und des
2 Status-Codes30 Daten speichern und l schen30 Datentyp ndern30 Anlagensummen31 Common & Inverter Model32 Common Block Register32 Inverter Model Register32 SunSpec Operating Codes32 Fronius Operating Codes32 Nameplate Model (120)34 Allgemeines34 Nameplate Register34 Basic Settings Model (121)35 Basic Settings Register35 Referenzspannung35 Abweichung zur Referenzspannung35 Extended Measurements & Status Model (122)36 Allgemeines36 Extended Measurements & Status Register36 Immediate Controls Model (123)373 DEAllgemeines37 Immediate Controls Register37 Standby37 Leistungsreduktion37 Beispiel: Leistungsreduktion einstellen38 Beispiel: ndern der R ckkehrzeit bei aktiver Leistungsreduktion38 Auswirkungen der Blindleistungs-Vorgaben auf die Wirkleistung39 Konstanter Power Factor40 Beispiel: Konstanten Power Factor vorgeben40 Konstante relative Blindleistung41 Beispiel: Konstante Blindleistung vorgeben41 Multiple MPPT Inverter Extension Model (160)42 Allgemeines42 Multiple MPPT Inverter Extension Register42 Basic Storage Control Model (124)44 Allgemeines44 Bereitgestellte Informationen44 Leistungsfenster-Vorgaben44 Vorgabe des minmalen Ladestandes46 Laden des Energiespeichers vom Netz46 Basic Storage Controls Register46 Register- und Batteriestatus nderungen in Fronius Combiner Model (403)48 String Combiner Register48 Meter Model49 Meter Model Register49 End Block50 Allgemeines50 End Block50 String Combiner Event Flags51 String Combiner Event Flags514 Das Modbus ProtokollAllgemeinesDie Beschreibung des Protokolls entstammt zum gr ten Teil den Modbus Spezifikatio-nen, die ffentlich auf erh ltlich ist ein einfaches, offenes Kommunikationsprotokoll, mit dem eine Master-Slave-oder Client-Server-Kommunikation zwischen den am Netzwerk angeschlossenenGer ten realisiert werden kann.
3 Das Grundprinzip von Modbus ist: Ein Master sendet ei-ne 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 rdie Beschreibungen der Funktionen des Protokolls unabh ngig von den Varianten RTUund TCP nur die gebr uchlicheren Namen Master und Slave verwendet. In F llen, woUnterschiede bei zwischen RTU und TCP auftreten, wird speziell darauf Fronius Datamanager kann Modbus auf 2 Arten benutzt werden:- Modbus TCPM ittels TCP/IP ber Ethernet (kabelgebunden oder ber WLAN)- Modbus RTUM ittels asynchroner serieller bertragung ber RS-485 (EIA/TIA-485-A), nur bei Fro-nius Datamanager Fall von Modbus RTU kann es immer nur einen Master im System geben. Grunds tz-lich gilt, dass nur ein Master Anforderungen (Requests) initiieren darf. Ein Slave darf nurantworten (Response), wenn dieser vom Master angesprochen wurde; untereinanderd rfen die Slaves nicht kommunizieren.
4 Wird ein Broadcast Request (Anforderung an al-le vorhandenen Slaves per Slave ID oder Unit ID 0) ausgesendet, darf keiner der Slavesantworten. Daher k nnen Broadcasts nur f r Schreibbefehle ein Master eine Anforderung an einen Slave sendet, dann erwartet dieser eineAntwort. Bei einer Anforderung eines Masters gibt es eine von f nf M glichkeiten:- Erh lt der Slave die Anforderung ohne Kommunikationsfehler und kann dieser dieAnforderung fehlerfrei bearbeiten, dann wird eine normale Antwort mit dengew nschten Daten zur Erh lt der Slave die Anforderung wegen eines Kommunikationsfehlers nicht, dannwird keine Antwort gesendet. Das f hrt zu einem Timeout am Erh lt der Slave die Anforderung, entdeckt aber einen Kommunikationsfehler (Parity,CRC, ..), wird keine Antwort gesendet. Das f hrt zu einem Timeout am Erh lt der Slave die Anforderung ohne Kommunikationsfehler, kann aber diese nichtfehlerfrei bearbeiten (z. B. wenn ein nicht vorhandenes Register ausgelesen werdensoll), wird eine Fehlernachricht (Exception Response) mit dem Grund f r den Fehlerzur 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.
5 Daher sind Broadcast Anforderungen nur f r Ger te stellen Daten in 16 Bit gro en Datenbl cken (Register) zur Verf bestimmten F llen k nnen einzelne Datenpunkte auch mehrere Datenbl cke umfas-sen (z. B. 2 Register = 32 Bit Wert).Aufbau von Mod-bus NachrichtenEine Modbus Nachricht besteht grunds tzlich aus der Protokolldateneinheit (protocol da-ta unit, PDU). Diese ist von darunter liegenden Kommunikationsschichten unabh ngig von dem verwendeten Bus oder Netzwerk k nnen noch weitere Felder hinzu-kommen. Diese Struktur wird dann Anwendungsdateneinheit (application data unit, ADU) AdressfeldFunktionscodeDatenCRC PDU Struktur einer Modbus Nachricht bei Modbus RTUADU MBAP HeaderFunktionscodeDaten PDU Struktur einer Modbus Nachricht bei Modbus TCPF r Modbus TCP wird ein eigener Header verwendet, um die Anwendungsdateneinheitzu identifizieren. Dieser Header hei t MBAP Header ( Modbus Application ProtocolHeader).Die Gr e der Protokolldateneinheit (PDU) ist limitiert, bedingt durch die ersten ModbusImplementierungen in einem seriellen Netzwerk (max.)
6 RS485 ADU = 256 Bytes). Da-durch ergibt sich f r die Gr e der Protokolldateneinheit PDU: PDU = 256 Slave ID (1 Byte) CRC (2 Bytes) = 253 BytesDamit ergibt sich:- Modbus RTU ADU = 253 + Slave ID (1 Byte) + CRC (2 Bytes) = 256 Bytes- Modbus TCP ADU = 253 Bytes + MBAP (7 Bytes) = 260 BytesModbus TCP MBAP HeaderDer MBAP Header umfasst 7 Bytes:-Transaction ID (2 Bytes): Wird benutzt, um Anfrage und Antwort zu synchronisie-ren. Der Slave bernimmt die Transaction ID von der Anfrage in die ID (2 Bytes): Ist immer 0 ( Modbus Protokoll).-L nge (2 Bytes): Das L ngenfeld enth lt die Anzahl der Bytes der nachkommendenFelder, einschlie lich Unit ID und ID (1 Byte): Dieses Feld wird zur Adressierung der an den Fronius Datamana-ger angeschlossenen Ger te verwendet (Gateway-Funktion des Fronius Datamana-gers). Die Unit ID entspricht der Slave ID bei Modbus RTU. Der Wert wird vom Mas-ter vorgegeben und wird vom Slave unver ndert mit der Antwort zur r Details ber die Adressierung der Ger te siehe:- Modbus Ger te-ID f r Wechselrichter auf Seite 15- Modbus Ger te-ID f r Fronius String Controls auf Seite 15- Modbus Ger te-ID f r Energiez hler auf Seite 16 WICHTIG!
7 Die richtige Unit ID muss immer angegeben werden, auch wenn der Fro-nius Datamanager nur mit einem einzelnen Wechselrichter verbunden tzteFunktionscodesDer Funktionscode bestimmt die am Slave auszuf hrende Aktion. Drei Funktionscodesf r Lese- und Schreiboperationen werden unterst tzt:-03 (0x03) 1) Read Holding Registers-06 (0x06) 1) Write Single Register-16 (0x10) 1) Write Multiple RegistersTritt am Slave bei der Bearbeitung einer Anforderung ein Fehler auf, so wird eine Fehler-nachricht als Antwort (Exception Response) gesendet. Bei einer solchen Antwort wirdbeim Funktionscode das h chstwertige Bit auf 1 gesetzt (entspricht einer Addition desFunktionscodes mit 0x80) 1) und ein Exception Code hinzugef gt, der den Grund desFehlers ) Das Prefix "0x" steht f r hexadezimale Zahlen603 (0x03) ReadHolding Regis-tersDieser Funktionscode wird dazu verwendet, den Inhalt eines oder mehrerer aufeinander-folgenden Register eines Ger tes auszulesen. Die Anforderung enth lt die Adresse desersten auszulesenden Registers und die Anzahl der zu lesenden Register.
8 In der Anfor-derung werden Register beginnend bei 0 adressiert. Das bedeutet, dass die Register 1bis 16 ber die Adressen 0 bis 15 angesprochen 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 RegisterFehler Fehlercode1 Byte0x83 Exception Code1 Byte01 oder 02 oder 03 oder 04 oder 1106 (0x06) WriteSingle RegisterDieser Funktionscode wird dazu verwendet, ein einzelnes Register zu beschreiben. DieAnforderung enth lt nur die Adresse des zu beschreibenden Registers. Register werdenbeginnend bei 0 adressiert. Das bedeutet, dass das Register 1 ber die Adresse 0 ange-sprochen. Die normale Antwort ist eine Kopie der Anforderung, die nach dem erfolgrei-chen Beschreiben des Registers gesendet Funktionscode1 Byte0x06 Registeradresse2 Bytes0x0000 bis 0xFFFF (0 bis 65535) Registerwert2 Bytes 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 117DE16 (0x10) WriteMultiple Regis-tersDieser Funktionscode wird dazu verwendet, einen Block von aufeinanderfolgenden Re-gistern zu beschreiben.
9 Die Anforderung enth lt die Adresse des ersten zu beschreiben-den Registers, die Anzahl der zu beschreibenden Register, die Anzahl der zu schreiben-den Bytes und die zu schreibenden Werte (2 Bytes pro Register). Die normale Antwortenth lt den Funktionscode, die Startadresse und die Anzahl der beschriebenen 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 RegisterAntwort 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 Exception CodesEine Fehlernachricht (Exception Response) besitzt zwei Felder, die sie von einer norma-len Antwort unterscheidet:-Feld FunktionscodeIn einer normalen Antwort wird der Funktionscode der Anforderung in das Funkti-onscode Feld der Antwort bernommen. Bei allen Funktionscodes ist das h chst-wertige Bit (MSB) 0 (die Werte der Funktionscodes sind alle kleiner als 0x80).
10 In ei-ner Fehlernachricht wird das MSB auf 1 gesetzt. Das bedeutet eine Addition desWertes f r den Funktionscode mit 0x80. Aufgrund des gesetzten MSB kann derMaster die Antwort als Fehlernachricht normale Antwort enth lt Daten oder Statistikwerte im Datenfeld. Bei einer Feh-lernachricht wird ein Exception Code im Datenfeld zur ckgeliefert. Dieser ExceptionCode zeigt den Grund f r die Fehlernachricht Exception CodesCodeNameBedeutung01 ILLEGAL FUNCTIONDer Funktionscode in der Anforderung wirdvom Slave nicht unterst DATA ADDRESSEs werden ung ltige Registeradressen Exception CodesCodeNameBedeutung03 ILLEGAL DATA VALUEEin Wert in der Anforderung ist au erhalb desg ltigen Bereichs. Dies gilt sowohl f r die Fel-der einer Anforderung (z. B. ung ltige Anzahlan Registern) als auch f r ung ltige Einstel-lungswerte der SunSpec Inverter Control DEVICE FAILUREW hrend des Versuchs, ein oder mehrere Re-gister zu beschreiben, ist ein Fehler TARGET DE-VICE FAILED TO RE-SPONDNur bei Modbus angesprochene Ger t kann nicht gefundenwerden:a) das Ger t befindet sich nicht im SolarNetRingoderb) das Ger t ist ausgeschaltetoderc) der SolarNet Ring ist offenCRC Berechnungf r Modbus RTUJede Modbus RTU Nachricht wird mit einer Pr fsumme (CRC, Cyclic RedundancyCheck) versehen, um bertragungsfehler erkennen zu k nnen.