Telegrammaufbau (S7-1200, S7-1500) - STEP 7

MODBUS (RTU) (S7-1200, S7-1500)

ft:publication_title
MODBUS (RTU) (S7-1200, S7-1500)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
Telegrammaufbau

Extended_Addressing

Auf die Extended_Addressing-Variable wird in ähnlicher Weise zugegriffen wie auf die HR_Start_Offset-Referenz, außer dass es sich bei der Extended_Addressing-Variable um einen Booleschen Wert handelt.

Für die Modbus-Slave-Adressierung kann, mit Extended_Adressing = FALSE, ein einzelnes Byte (dies ist der Modbus-Standard) oder zwei Bytes konfiguriert werden (Extended_Adressing = TRUE). Die erweiterte Adressierung dient zur Adressierung von mehr als 247 Geräten in einem einzigen Netzwerk. Mit Extended_Adressing = TRUE können Sie maximal 65535 Adressen ansprechen. Im Folgenden wird ein Modbus-Telegramm als Beispiel gezeigt.

Slave-Adresse mit einem Byte (Byte 0)

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anforderung

Slave-
Adresse

Funktionscode

Anfangsadresse

Daten

Gültige Antwort

Slave-
Adresse

Funktionscode

Länge

Daten...

Fehlermeldung

Slave-
Adresse

0xxx

Exception-
code

Slave-Adresse mit zwei Bytes (Byte 0 und Byte 1)

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anforderung

Slave-Adresse

Funktionscode

Anfangsadresse

Daten

Gültige Antwort

Slave-Adresse

Funktionscode

Länge

Daten...

Fehlermeldung

Slave-Adresse

0xxx

Exception-
code

Beschreibung der Telegramme

Der Datenverkehr zwischen Master und Slave bzw. zwischen Slave und Master beginnt mit der Slave-Adresse, gefolgt vom Funktionscode. Dann werden die Daten übertragen. Der Aufbau des Datenfeldes ist abhängig vom verwendeten Funktionscode. Am Ende des Telegramms wird die Prüfsumme (CRC) übertragen.

Funktionscodes mit Performanceoptimierung

Bei aktivierter Option zur Performanceoptimierung gibt es Einschränkungen im Mengengerüst der übertragenen Daten. Informationen zu den Einschränkungen finden Sie im Kapitel Funktionscodes.

Funktionscode 1 - Diese Funktion ermöglicht das Lesen einzelner Ausgangsbits

FC 1 - Ausgangsbits lesen

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anfrage

Slave-Adresse

Funktionscode 1

Anfangsadresse

Anzahl Ausgänge

Gültige Antwort

Slave-Adresse

Funktionscode 1

Länge 1)

Ausgangsdaten 3)

Fehlermeldung

Slave-Adresse

0x81

Exceptioncode 2)

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anfrage

Slave-Adresse

Funktionscode 1

Anfangsadresse

Anzahl Ausgänge

Gültige Antwort

Slave-Adresse

Funktionscode 1

Länge 1

Ausgangsdaten

Fehlermeldung

Slave-Adresse

0x81

Exceptioncode 2

---

Funktionscode 2 - Diese Funktion ermöglicht das Lesen einzelner Eingangsbits

FC 2 - Eingangsbits lesen

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anfrage

Slave-Adresse

Funktionscode 2

Anfangsadresse

Anzahl Eingänge

Gültige Antwort

Slave-Adresse

Funktionscode 2

Länge 1

Eingangsdaten

Fehlermeldung

Slave-Adresse

0x82

Exceptioncode 2

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anfrage

Slave-Adresse

Funktionscode 2

Anfangsadresse

Anzahl Eingänge

Gültige Antwort

Slave-Adresse

Funktionscode 2

Länge 1

Eingangsdaten

Fehlermeldung

Slave-Adresse

0x82

Exceptioncode 2

---

Funktionscode 3 - Diese Funktion ermöglicht das Lesen einzelner Register

FC 3 - Halteregister lesen

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anfrage

Slave-Adresse

Funktionscode 3

Anfangsadresse

Anzahl Register

Gültige Antwort

Slave-Adresse

Funktionscode 3

Länge 1

Registerdaten

Fehlermeldung

Slave-Adresse

0x83

Exceptioncode 2

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anfrage

Slave-Adresse

Funktionscode 3

Anfangsadresse

AnzahlRegister

Gültige Antwort

Slave-Adresse

Funktionscode 3

Länge 1

Registerdaten

Fehlermeldung

Slave-Adresse

0x83

Exceptioncode 2

---

Funktionscode 4 - Diese Funktion ermöglicht das Lesen einzelner Register

FC 4 - Eingangswörter lesen

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anfrage

Slave-Adresse

Funktionscode 4

Anfangsadresse

Anzahl Eingangswörter

Gültige Antwort

Slave-Adresse

Funktionscode 4

Länge 1

Eingangsdaten

Fehlermeldung

Slave-Adresse

0x84

Exceptioncode 2

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anfrage

Slave-Adresse

Funktionscode 4

Anfangsadresse

Anzahl Eingangswörter

Gültige Antwort

Slave-Adresse

Funktionscode 4

Länge 1

Eingangsdaten

Fehlermeldung

Slave-Adresse

0x84

Exceptioncode 2

---

Funktionscode 5 - Mit dieser Funktion kann ein einzelnes Bit gesetzt oder gelöscht werden

FC 5 - Ein Ausgangsbit schreiben

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anfrage

Slave-Adresse

Funktionscode 5

Anfangsadresse

Wert

Gültige Antwort

Slave-Adresse

Funktionscode 5

Länge

Wert

Fehlermeldung

Slave-Adresse

0x85

Exceptioncode 1

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anfrage

Slave-Adresse

Funktionscode 5

Anfangsadresse

Wert

Gültige Antwort

Slave-Adresse

Funktionscode 5

Länge

Wert

Fehlermeldung

Slave-Adresse

0x85

Exceptioncode 1

---

Funktionscode 6 - Diese Funktion ermöglicht das Schreiben einzelner Register

FC 6 - Halteregister schreiben

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anfrage

Slave-Adresse

Funktionscode 6

Adresse

Register

Gültige Antwort

Slave-Adresse

Funktionscode 6

Adresse

Register

Fehlermeldung

Slave-Adresse

0x86

Exceptioncode 1

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anfrage

Slave-Adresse

Funktionscode 6

Adresse

Register

Gültige Antwort

Slave-Adresse

Funktionscode 6

Adresse

Register

Fehlermeldung

Slave-Adresse

0x86

Exceptioncode 1

---

Funktionscode 8 - Diese Funktion dient der Überprüfung der Kommunikationsverbindung

FC 8 - Slave-Zustand

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anfrage

Slave-Adresse

Funktionscode 8

Diagnosecode

Testwert

Gültige Antwort

Slave-Adresse

Funktionscode 8

Diagnosecode

Testwert

Fehlermeldung

Slave-Adresse

0x88

Exceptioncode 1

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anfrage

Slave-Adresse

Funktionscode 8

Diagnosecode

Testwert

Gültige Antwort

Slave-Adresse

Funktionscode 8

Diagnosecode

Testwert

Fehlermeldung

Slave-Adresse

0x88

Exceptioncode 1

---

Funktionscode 11 - Diese Funktion ermöglicht das Lesen von 2 Byte "Status-Word" und ein 2 Byte "Event‑Counter"

FC 11 - Ereigniszähler der Slave-Kommunikation

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Anfrage

Slave-Adresse

Funktionscode 11

---

Gültige Antwort

Slave-Adresse

Funktionscode 11

Status

Ereigniszähler

Fehlermeldung

Slave-Adresse

0x8B

Exceptioncode 1

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Anfrage

Slave-Adresse

Funktionscode 11

---

Gültige Antwort

Slave-Adresse

Funktionscode 11

Status

Ereigniszähler

Fehlermeldung

Slave-Adresse

0x8B

Exceptioncode 1

---

Funktionscode 15 - Diese Funktion ermöglicht das Schreiben mehrerer Bits

FC 15 - Ein/mehrere Ausgangsbits schreiben

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

Byte n

Anfrage

Slave-Adresse

Funktionscode 15

Anfangsadresse

Anzahl Ausgangswörter

Bytezähler 1

Wert

Gültige Antwort

Slave-Adresse

Funktionscode 15

Anfangsadresse

Anzahl Ausgangswörter

---

Fehlermeldung

Slave-Adresse

0x8F

Exceptioncode 2

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

Byte 8

Byte n

Anfrage

Slave-Adresse

Funktionscode 15

Anfangsadresse

Anzahl Ausgangswörter

Bytezähler 1

Wert

Gültige Antwort

Slave-Adresse

Funktionscode 15

Anfangsadresse

Anzahl Ausgangswörter

---

Fehlermeldung

Slave-Adresse

0x8F

Exceptioncode 2

---

Funktionscode 16 - Diese Funktion ermöglicht das Schreiben einzelner oder mehrerer Register

FC 16 - Ein/mehrere Halteregister schreiben

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

Byte n

Anfrage

Slave-Adresse

Funktionscode 16

Anfangsadresse

Anzahl Register

Bytezähler 1

Wert

Gültige Antwort

Slave-Adresse

Funktionscode 16

Anfangsadresse

Anzahl Register

---

Fehlermeldung

Slave-Adresse

0x90

Exceptioncode 2

---

 

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

Byte 8

Byte n

Anfrage

Slave-Adresse

Funktionscode 16

Anfangsadresse

Anzahl Register

Bytezähler 1

Wert

Gültige Antwort

Slave-Adresse

Funktionscode 16

Anfangsadresse

Anzahl Register

---

Fehlermeldung

Slave-Adresse

0x90

Exceptioncode 2

---