WRITE_READ_VAR
: Lesen und Schreiben interner Register in einem Modbus-Gerät
Diese Funktion liest und schreibt interne Register (nur vom Typ MW) in einem externen Gerät im Modbus-Protokoll. Die Lese- und Schreiboperationen finden im Rahmen derselben Transaktion statt.
Die Schreiboperation wird zuerst durchgeführt. Anschließend kann die Funktion WRITE_READ_VAR
folgende Aufgaben ausführen:
Aufeinander folgende interne Register schreiben und deren Werte zur Überprüfung sofort zurücklesen
Einige aufeinander folgende interne Register schreiben und andere lesen – beides in einem einzigen, eindeutigen Request
WRITE_READ_VAR
-spezifischen Parameter
Eingang |
Typ |
Kommentar |
---|---|---|
|
|
|
|
DINT |
|
|
UINT |
|
|
POINTER TO BYTE |
Adresse des Zeigers zu dem Array mit den Daten, die in das Zielgerät geschrieben werden sollen. Das Array muss mindestens der Größe der zu schreibenden Daten entsprechen. Sie müssen die ADR-Funktion heranziehen, um die Adresse des ersten Bytes des Arrays zu übergeben (siehe das CFC-Diagramm im Beispiel). |
|
DINT |
|
|
UINT |
|
|
POINTER TO BYTE |
Adresse des Zeigers zu dem Array, in dem die empfangenen, aus dem Zielgerät ausgelesenen Daten enthalten sind. Das Array muss mindestens der Größe der zu lesenden Daten entsprechen. Sie müssen die ADR-Funktion heranziehen, um die Adresse des ersten Bytes des Arrays zu übergeben (siehe das CFC-Diagramm im Beispiel). |
Das Beispiel zeigt die Implementierung des Funktionsbausteins WRITE_READ_VAR
in Verbindung mit dem Funktionsbaustein ADDM
zum Schreiben von zwei Registern ab Adresse 11 und zum Lesen von zwei Registern ab Adresse 1 eines Modbus-Slaves. Der Modbus-Slave wird mit Adresse 8 angegeben und muss über die serielle Leitungsschnittstelle 1 erreichbar sein. Voraussetzung ist die Konfiguration des Modbus Manager als Master unter der seriellen Leitungsschnittstelle 1.