Instructions

Table Of Contents
Kommunikationsprozessor und Modbus-TCP
13.9 Modbus RTU-Kommunikation in älteren Systemen (nur CM/CB 1241)
S7-1200 Automatisierungssystem
Systemhandbuch, V4.2.3, 08/2018, A5E02486681-AL
1343
Die Funktionscodes der Modbus-Kommunikation (3, 6, 16) nutzen ein Modbus-Halteregister,
bei dem es sich um einen Adressbereich im Speicherbereich der Merker oder um einen
Datenbaustein handeln kann. Der Typ des Haltesregisters wird vom Parameter
MB_HOLD_REG der Anweisung MB_SLAVE angegeben.
Hinweis
Typ des Datenbausteins MB_HOLD_REG
Ein Datenbaustein mit Modbus
-Halteregister muss die direkte (absolute) und die
symbolische Adressierung zulassen. Wenn Sie den Datenbaustein anlegen, müssen Sie das
Zugrif
fsattribut "Standard" auswählen.
Die folgende Tabelle zeigt Beispiele für die Zuordnung von Modbus-Adressen zum
Halteregister, das für die Modbus-Funktionscodes 03 (Wörter lesen), 06 (Wort schreiben)
und 16 (Wörter schreiben) verwendet wird. Die tatsächliche obere Grenze der DB-Adressen
wird vom maximalen Arbeitsspeicher und vom maximalen M-Speicher des jeweiligen CPU-
Modells festgelegt.
Tabelle 13- 158 Zuordnung von Modbus-Adressen zum CPU-Speicher
Modbus-Master-
Adresse
Beispiele für Parameter von MB_HOLD_REG
MW100
DB10.DBw0
MW120
DB10.DBW50
"Rezept".Inhaltsstoff
40001
MW100
DB10.DBW0
MW120
DB10.DBW50
"Rezept".Inhaltsstoff[1]
40002
MW102
DB10.DBW2
MW122
DB10.DBW52
"Rezept".Inhaltsstoff[2]
40003
MW104
DB10.DBW4
MW124
DB10.DBW54
"Rezept".Inhaltsstoff[3]
40004
MW106
DB10.DBW6
MW126
DB10.DBW56
"Rezept".Inhaltsstoff[4]
40005
MW108
DB10.DBW8
MW128
DB10.DBW58
"Rezept".Inhaltsstoff[5]
Tabelle 13- 159 Diagnosefunktionen
Modbus-Diagnosefunktionen von MB_SLAVE der S7-1200
Codes
Teilfunktion
Beschreibung
08 0000H Echotest Abfragedaten ausgeben: Die Anweisung MB_SLAVE gibt einem Modbus-
Master das Echo eines empfangenen Datenworts zurück.
08 000AH Kommunikationsereigniszähler löschen: Die Anweisung MB_SLAVE löscht den Kom-
munikationsereigniszähler, der für Modbus-Funktion 11 verwendet wird.
11 Kommunikationsereigniszähler abrufen: Die Anweisung MB_SLAVE nutzt einen inter-
nen Kommunikationsereigniszähler, um die Anzahl erfolgreicher Modbus-Lese- und
Modbus-Schreibanforderungen, die an den Modbus-Slave gesendet werden, zu erfas-
sen. Der Zähler wird bei Funktion 8, Funktion 11 und Broadcast-Anforderungen nicht
hochgezählt. Außerdem wird bei Anforderungen, die zu Kommunikationsfehlern führen
(z.B. Paritäts- oder CRC-Fehler), nicht hochgezählt.
Die Anweisung MB_SLAVE unterstützt Broadcast-Schreibanforderungen von Modbus-
Mastern, solange die Anforderungen den Zugriff auf gültige Adressen umfassen. Für
Funktionscodes, die bei der Broadcast-Funktion nicht unterstützt werden, erzeugt
MB_SLAVE den Fehlercode 0x8188.