READ_VAR: Lesen von Daten aus einem Modbus-Gerät

Beschreibung der Funktion

Der Funktionsbaustein READ_VAR liest Daten aus einem externen Gerät mit dem Modbus-Protokoll.

Grafische Darstellung

G-RU-0010455.2.gif-high.gif

 

 

Beschreibung der READ_VAR-spezifischen Parameter

Eingang

Typ

Kommentar

ObjType

ObjectType

ObjType ist der Typ des zu lesenden Objekts (MW, I, IW, Q).

FirstObj

DINT

FirstObj ist der Index des ersten zu lesenden Objekts.

Quantity

UINT

Quantity ist die Anzahl der zu lesenden Objekte:

o1 bis 125: Register (Typen MW und IW)

o1 bis 2000: Bits (Typen I und Q)

Buffer

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. Beispiel: Für die zu lesenden Werte von 4 Registern ist ein Array von 4 Wörtern, für die zu lesenden Werte von 32 Bits ein Array von 2 Wörtern oder 4 Bytes erforderlich, wobei jedes Bit auf den entsprechenden Wert des dezentralen Geräts gesetzt wird. Sie müssen die ADR-Funktion heranziehen, um die Adresse des ersten Bytes des Arrays zu übergeben (siehe das CFC-Diagramm im Beispiel).

HINWEIS: Um eine Zugriffsverletzung aufgrund eines ungültigen Zeigerzugriffs (außerhalb der Grenzen) auf den Speicher zu verhindern, müssen Sie sicherstellen, dass die Größe des mit dem Eingang Buffer verknüpften Arrays mindestens dem Umfang der Daten entspricht, die vom Zielgerät empfangen werden sollen. Es hat sich als vorteilhaft erwiesen, die definierte Menge (Quantity) der zu lesenden Daten mit der Pufferdeklaration zu verknüpfen, wie in nachstehendem Beispiel gezeigt.

G-SE-0068765.1.gif-high.gif

 

 

Die Eingangs- und Ausgangsparameter, die für alle Funktionsbausteine der PLCCommunication-Bibliothek gelten, werden an anderer Stelle beschrieben.

Beispiel

Dieses Beispiel zeigt die Implementierung des Funktionsbausteins READ_VAR in Verbindung mit dem Funktionsbaustein ADDM zum Lesen von zwei Registern ab Adresse 1 in einem Modbus-Slave. Der Modbus-Slave wird mit Adresse 8 angegeben und muss über die serielle Leitungs­schnittstelle 1 erreichbar sein. Vorbedingung ist die Konfiguration des Modbus Manager s als Master unter der seriellen Leitungsschnittstelle 1.

Diese Abbildung zeigt die Deklaration und Verwendung der Funktion READ_VAR:

G-SE-0005663.2.gif-high.gif