Skip to main content

Registerkarte: Modbus Server-Kanal

Die Registerkarte dient zur Definition von Server-Kanälen.

Jeder Kanal repräsentiert eine einzelne Modbus-Anfrage.

Kanal hinzufügen

Öffnet den Dialog Modbus-Kanal. Darin können Sie neue Kanäle für diesen Modbus-Server erzeugen. Sie können in der Gerätebeschreibungsdatei des Modbus-Servers Beschreibungen zu einzelnen Modbus-Registern oder ganze Kanäle vordefinieren.

Dialog: Modbus-Kanal

Tabelle 6. Kanal

Name

Ein String, der den Namen des Kanals enthält

Zugriffstyp

  • Read Coils (Funktionscode 01)

  • Read Discrete Inputs (Funktionscode 02)

  • Read Holding Registers (Funktionscode 03)

  • Read Input Registers (Funktionscode 04)

  • Read Single Coil (Funktionscode 05)

  • Write Single Register (Funktionscode 06)

  • Write Multiple Coils (Funktionscode 15)

  • Write Multiple Registers (Funktionscode 16)

  • Read/Write Multiple Registers (Funktionscode 23)

Trigger

  • CYCLIC: Die Abfrage erfolgt periodisch.

  • RISING_EDGE: Die Abfrage erfolgt in Reaktion auf eine steigende Flanke der booleschen Triggervariablen. Die Triggervariable wird im Register E/A-Abbild definiert.

  • Applikation: Die Modbus-Request wird durch die SPS-Applikation ausgelöst. Dies erfolgt über den Funktionsbaustein ModbusChannel, der in der zugehörigen IO-Treiber-Bibliothek enthalten ist . Dieser Funktionsbaustein bietet vollständige Kontrolle und Information über die Ausführung dieses Kommandos, wie beispielsweise den Startzeitpunkt, die Abarbeitungsdauer und das Ergebnis.

Zykluszeit (ms)

Bei Trigger = CYCLIC: Abfrageintervall

Hinweis: Das Abfrageintervall sollte gleich der Zykluszeit der Applikation sein oder ein Vielfaches von ihr betragen.

Kommentar

Beschreibung des Kanals



Tabelle 7. READ Register

Offset

Startadresse, ab der gelesen werden soll (Wertebereich 0-65535)

Länge

Anzahl zu lesender Register (bei Wort-Zugriff) oder Anzahl der zu lesenden Discrete Inputs (bei Bit-Zugriff)

Fehlerbehandlung

Definiert was im Fall eines Kommunikationsfehlers mit den Daten geschehen soll

  • Letzten Wert beibehalten

  • Auf null setzen



Tabelle 8. WRITE Register

Offset

Nummer des Registers, in das geschrieben werden soll (Wertebereich 0-65535)

Länge

Anzahl der zu schreibenden Register (= Words)

Der Wertebereich des Parameters ist abhängig vom Funktionscode.



Lesen von Coils / diskreten Eingängen, Schreiben von Coils in überlappenden Registerspeicher

Der CODESYS MODBUS I/O-Treiber ermöglicht das Lesen von Coils / diskreten Eingängen und das Schreiben von Coils in überlappende Registerspeicher (Checkbox Discrete Bit Areas ist deaktiviert). In diesem Fall werden die ersten 8 Bit, die gelesen (%IB0) oder geschrieben werden, dem High-Byte des zugehörigen Registers zugeordnet. Die zweiten 8 Bit, die gelesen (%IB1) werden, werden dem Low-Byte des zugehörigen Registers zugeordnet (zuerst LSB).

Beispiel 1. Beispiel

Im nachfolgenden Beispiel definiert die erste Zeile eine kombinierte Read-Write-Operation (Funktionscode 23). Sie liest ein Wort aus dem „Holding Register“ mit Offset 16#0001 und schreibt zwei Worte in das Register mit Offset 16#0003. Die Operation wird ausgeführt, sobald die auf der Registerkarte E/A-Abbild definierte Triggervariable eine steigende Flanke aufweist.

_mod_img_slave_channel.png
_mod_img_slave_io.png