Instructions

Table Of Contents
Kommunikationsprozessor und Modbus-TCP
13.5 Modbus-Kommunikation
S7-1200 Automatisierungssystem
1266 Systemhandbuch, V4.2.3, 08/2018, A5E02486681-AL
Tabelle 13- 85 Diagnosefunktionen
Modbus-Diagnosefunktionen von Modbus_Slave der S7-1200
Codes
Teilfunktion
Beschreibung
08 0000H Echotest Abfragedaten ausgeben:
Vor STEP 7 V15.1 gibt die Anweisung Modbus_Slave einem Modbus-Master das
Echo eines empfangenen Datenworts zurück.
Ab STEP 7 V15.1 gibt die Anweisung Modbus_Slave V4.1 oder höher Echos eines
oder mehrerer empfangener Datenwörter zurück.
08 000AH Kommunikationsereigniszähler löschen: Die Anweisung Modbus_Slave löscht den
Kommunikationsereigniszähler, der für Modbus-Funktion 11 verwendet wird.
11 Kommunikationsereigniszähler abrufen: Die Anweisung Modbus_Slave nutzt einen
internen Kommunikationsereigniszähler, um die Anzahl erfolgreicher Modbus-Lese- und
-Schreibanforderungen, die an den Modbus_Slave gesendet werden, zu erfassen. Der
Zähler wird bei Funktion 8, Funktion 11 und Broadcast-Anforderungen nicht hochge-
zählt. Außerdem wird bei Anforderungen, die zu Kommunikationsfehlern führen (z.B.
Paritäts- oder CRC-Fehler), nicht hochgezählt.
Die Anweisung Modbus_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
Modbus_Slave den Fehlercode "0x8188".
Regeln für die Modbus_Slave-Kommunikation
Modbus_Comm_Load muss ausgeführt werden, um einen Port zu konfigurieren, damit
die Anweisung Modbus_Slave über diesen Port kommunizieren kann.
Wenn ein Port als Slave auf einen Modbus_Master reagieren soll, darf dieser Port nicht
mit der Anweisung Modbus_Master programmiert werden.
Nur eine Instanz von Modbus_Slave kann mit einem bestimmten Port verwendet werden,
andernfalls kann unerwartetes Verhalten auftreten.
Die Modbus-Anweisungen nutzen keine Kommunikations-Alarmereignisse zum Steuern
des Kommunikationsprozesses. Ihr Programm muss den Kommunikationsprozess durch
Abfrage der Anweisung Modbus_Slave auf abgeschlossene Sende- und
Empfangsvorgänge steuern.
Die Anweisung Modbus_Slave muss regelmäßig mit einer Häufigkeit ausgeführt werden,
die eine zeitnahe Antwort auf eingehende Anforderungen eines Modbus_Masters
ermöglicht. Es wird empfohlen, Modbus_Slave in jedem Zyklus aus einem
Programmzyklus-OB auszuführen. Modbus_Slave kann aus einem Weckalarm-OB
ausgeführt werden, doch ist dies nicht empfehlenswert, weil übermäßige
Zeitverzögerungen im Interruptprogramm die Ausführung anderer Interruptprogramme
temporär blockieren können.