MODBUS Slave Konfiguration

Register/Coil(s) lesen

Funktionsbaustein Register/Coil(s) lesen

Register/Coil Schreibzugriffe

Funktionsbaustein Register/Coil Schreibzugriffe

MODBUS Slave Status

Funktionsbaustein MODBUS Slave Status

1. Basiskonfiguration

Die grundsätzlichen Eigenschaften des Modbus-RTU Slaves werden in einem Dialog, der über das Extra-Menü aufrufbar ist, festgelegt.

Hier werden die Slave – Adresse und die Baudrate definiert. Die weiteren Einstellungen der seriellen Schnittstelle sind fix (keine Parität, 1 Stopbit).

Zusätzlich können Adressoffsets für „Holding Register“ bzw. „Coils“ definiert werden. Hier ist zu beachten, dass diese Offsets automatisch auf die bereits vergebenen Adressen addiert werden. Das kann bei sehr hohen Adressen zu Überläufen führen. Dies wird beim Eintritt in die Inbetriebnahme und zusätzlich beim Download geprüft und gegebenenfalls als Fehler ausgewiesen.

2. Festlegung der Adresse

Die Adressvergabe erfolgt 0-basieren. Die Adressen können für jeden Bereich zwischen 0-65535 vergeben werden. Hierbei ist darauf zu achten, dass durch Vergabe eines Offsets für „Holding Register“ bzw. „Coils“ sich nachträglich Adresskonflikte ergeben können. Diese werden dann spätestens beim Download festgestellt und markiert.

Bei jedem Download, auch bei einem Download in die Simulation, wird eine Beschreibung aller vergebener Adressen und der daran gebundenen IO’s bzw. Prozessvariablen erzeugt. Diese Beschreibung liegt im jeweiligen Projektverzeichnis mit dem Namen [Projektname].MOBCSV. Es ist eine Excel-CSV Datei. Wird diese in *.CSV umbenannt, dann kann sie mit Excel formatiert geöffnet werden.

3. Festlegung des Datentyps bzw. der Funktion

Da die Steuerungen, auf denen diese Bibliothek angewendet werden kann, frei (grafisch) programmiert werden, ist das Prozessimage nicht fix vorgegeben. Einzig die IO-Funktionen werden durch die Hardware beschrieben. Aus diesem Grund gibt es die Möglichkeit, den Adressen IO-Funktionen oder Variablen zuzuweisen.

Die Variablenzuweisung erfolgt durch Verbindungslinien. Dazu wird im Parameterdialog die Option „IO“ (1) nicht gesetzt. Bei „Coils“ oder „Diskreten Inputs“ wird dadurch der Datentyp (2) auf Bit festgelegt. Bei „Input Registern“ oder „Holding Registern“ kann ein Datentyp ausgewählt werden. Die benötigten Register werden entsprechend automatisch berechnet. Nach Beenden des Parameterdialogs mit „OK“wird an der entsprechenden Stelle ein Pin freigeschaltet an den dann eine typgerechte Variable angeschlossen werden kann.

Zusätzlich kann eine Beschreibung zu dem Eintrag eingegeben werden. Diese findet sich dann in der Adressliste, die nach jedem Download erzeugt wird, wieder.

Die Zuweisung von Funktionen erfolgt durch Setzen der Option „IO“ im Parameterdialog vor der jeweiligen Zeile. In Abhängigkeit der zuvor gewählten Funktion („Coils“, „Diskrete Inputs“, „Holding Register“, „Input Register“) werden dann in der Dropdown Liste die zur Verfügung stehenden IO-Funktionen bereitgestellt.

Eingänge („Diskrete Inputs“,„Input Register“) bedürfen keiner besonderen Beachtung. Ausgänge („Coils“, „Holding Register“) müssen so verwendet werden, dass keine Konflikte mit den in der Applikation verwendeten Ausgängen auftreten.

Wenn die Ausgänge in der Applikation und durch „Modbus-Zugriffe“ geschrieben werden, sollten die Zugriffe, wie im Beispiel dargestellt, gegeneinander verriegelt werden.