WRITE_VAR: Schreiben von Daten in ein Modbus-Gerät

Beschreibung der Funktion

Der Funktionsbaustein WRITE_VAR schreibt Daten in ein externes Gerät über das Modbus-Protokoll.

Grafische Darstellung

Beschreibung der WRITE_VAR-spezifischen Parameter

Eingang

Typ

Kommentar

ObjType

ObjectType

ObjType beschreibt den Typ der zu schreibenden Objekte (MW, Q).

FirstObj

DINT

FirstObj ist der Index des ersten zu schreibenden Objekts.

Quantity

UINT

Quantity ist die Anzahl der zu lesenden Objekte:

  • 1 bis 123: Register (Typ MW)

  • 1 bis 1968: Bits (Typ Q)

Buffer

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. Beispiel: Wenn 4 Register geschrieben werden sollen, ist ein Array von 4 Wörter erforderlich. Für das Schreiben von 32 Bits wird ein Array von 2 Wörtern oder 4 Bytes benötigt, wobei jedes Bit auf den entsprechenden Wert 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 in das Zielgerät geschrieben werden sollen. Es hat sich als vorteilhaft erwiesen, die definierte Menge (Quantity) der zu schreibenden Daten mit der Pufferdeklaration zu verknüpfen, wie in nachstehendem Beispiel gezeigt.

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

 WARNUNG
INKOMPATIBILITÄT DER AUSGETAUSCHTEN DATEN
Vergewissern Sie sich, dass die ausgetauschten Daten kompatibel sind, da die Datenstrukturen nicht für alle Geräte identisch ausgerichtet sind.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

Beispiel

Dieses Beispiel zeigt die Implementierung des Funktionsbausteins WRITE_VAR in Verbindung mit dem Funktionsbaustein ADDM zum Schreiben von 10 Ausgängen (Spulen) an Adresse 0 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.