Herunterladen Inhalt Inhalt Diese Seite drucken

Regeln Für Die Kommunikation Des Modbus-Masters - Siemens SIMATIC S7 Serie Systemhandbuch

Inhaltsverzeichnis

Werbung

Kommunikationsprozessor und Modbus-TCP
13.9 Modbus RTU-Kommunikation in älteren Systemen (nur CM/CB 1241)
Regeln für die Kommunikation des Modbus-Masters
• MB_COMM_LOAD muss ausgeführt werden, um einen Port zu konfigurieren, damit die
Anweisung MB_MASTER mit diesem Port kommunizieren kann.
• Wenn ein Port zum Initiieren von Modbus-Masteranforderungen verwendet werden soll,
darf dieser Port nicht von MB_SLAVE verwendet werden. Eine oder mehrere Instanzen von
MB_MASTER können mit diesem Port verwendet werden. Doch alle Ausführungen von
MB_MASTER müssen den gleichen Instanz-DB MB_MASTER für den Port verwenden.
• Die Modbus-Anweisungen nutzen keine Kommunikations-Alarmereignisse zum Steuern des
Kommunikationsprozesses. Ihr Programm muss die Anweisung MB_MASTER auf
abgeschlossene Sende- und Empfangsvorgänge abfragen.
• Rufen Sie alle Ausführungen von MB_MASTER für einen bestimmten Port aus einem
Programmzyklus-OB auf. Modbus-Master-Anweisungen können nur in jeweils einem
Programmzyklus oder in jeweils einer zyklischen/zeitverzögerten Ausführungsschicht
ausgeführt werden. Sie dürfen nicht in beiden Prioritätsschichten der Ausführung bearbeitet
werden. Die Vorrangunterbrechung einer Modbus-Master-Anweisung durch eine andere
Modbus-Master-Anweisung in einer Ausführungsschicht mit höherer Priorität führt zu nicht
ordnungsgemäßem Betrieb. Die Modbus-Master-Anweisungen dürfen nicht in Anlauf-,
Diagnose- oder Zeitfehlerausführungsschichten bearbeitet werden.
• Nachdem eine Masteranweisung eine Übertragung ausgelöst hat, muss diese Instanz mit
aktiviertem Eingang EN fortlaufend ausgeführt werden, bis der Zustand DONE = 1 oder
ERROR = 1 ausgegeben wird. Eine bestimmte MB_MASTER-Instanz wird als aktiv betrachtet,
bis eines dieser beiden Ereignisse auftritt. Während die ursprüngliche Instanz aktiv ist, führt
jeder Aufruf einer weiteren Instanz mit aktiviertem Eingang REQ zu einem Fehler. Wenn die
fortlaufende Ausführung der ursprünglichen Instanz stoppt, bleibt der Anforderungszustand
für die von der statischen Variable Blocked_Proc_Timeout angegebene Zeitdauer aktiv. Nach
Ablauf dieser Zeitdauer wird die nächste aufgerufene Master-Anweisung mit aktiviertem
Eingang REQ zur aktiven Instanz. Dies verhindert, dass eine einzige Modbus-Master-
Anweisung ein Monopol inne hat oder den Zugriff auf den Port sperrt. Wenn die
ursprüngliche aktive Instanz nicht während des von der statischen Variablen
"Blocked_Proc_Timeout" angegebenen Zeitraums aktiviert wird, löscht die nächste
Ausführung durch diese Instanz (ohne gesetzten Eingang REQ) den aktiven Zustand. Falls
(REQ gesetzt ist), löst diese Ausführung eine neue Master-Anforderung aus, als wenn keine
andere Instanz aktiv wäre.
Parameter REQ
0 = Keine Anforderung; 1 = Anforderung, Daten an den Modbus-Slave zu senden
Sie können diesen Eingang über einen pegel- oder flankengesteuerten Kontakt steuern. Immer
wenn dieser Eingang aktiviert wird, wird eine Zustandsmaschine gestartet, um sicherzustellen,
dass eine andere Anweisung MB_MASTER, die denselben Instanz-DB verwendet, erst dann eine
Anforderung abgeben kann, wenn die aktuelle Anforderung abgearbeitet ist. Alle anderen
Eingangszustände werden erfasst und intern für die aktuelle Anforderung gespeichert, bis die
Antwort empfangen oder ein Fehler erkannt wird.
Wird dieselbe Instanz von MB_MASTER erneut mit dem REQ-Eingang = 1 ausgeführt, bevor die
aktuelle Anforderung abgearbeitet ist, werden keine nachfolgenden Übertragungen
durchgeführt. Wenn die Anforderung jedoch abgearbeitet ist, wird zu dem Zeitpunkt, zu dem
MB_MASTER erneut mit REQ-Eingang = 1 ausgeführt wird, eine neue Anforderung abgegeben.
1170
S7-1200 Automatisierungssystem
Systemhandbuch, V4.5 05/2021, A5E02486681-AO

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Simatic s7-1200

Inhaltsverzeichnis