Modbus

Beta-Programm

Achtung: Diese Schnittstelle befindet sich aktuell in der Beta-Phase. Dies bedeutet, dass nicht alle Funktionen getestet bzw. fertiggestellt wurden.

  • Aktuell ist nur die TCP/UDP-Bibliothek verfügbar
  • Der Editor zeigt keine ungültigen Konfigurationen an
  • Modbus Slave ist noch nicht verfügbar

Die Modbus-Schnittstelle kann Daten zwischen Geräten lesen und schreiben. Folgende Funktionscodes werden unterstützt:

FC Name Beschreibung
FC1 Read coils Rücklesen mehrerer digitaler Ausgänge
FC2 Read inputs discrete Lesen mehrerer digitaler Eingänge
FC3 Read holding registers Lesen mehrerer analoger Eingänge (und Ausgänge)
FC4 Read input registers Lesen mehrerer analoger Eingänge (und Ausgänge)
FC5 Write coil Schreiben eines einzelnen digitalen Ausgangs
FC6 Write single register Schreiben eines einzelnen analogen Ausgangs
FC15 Force multiple coils Schreiben mehrerer digitaler Ausgänge
FC16 Write multiple registers Schreiben mehrerer analoger Ausgänge
FC22 Mask write Manipulation einzelner Bits eines Registers
FC23 Read/write multiple registers Schreib-Lese-Operation auf analoge Ein-/Ausgänge

Modbus-Modi

Die Modbus-Schnittstelle arbeitet als Master oder Slave. Jedoch nicht gleichzeitig als Master und Slave. Dafür müssen mehrere Schnittstellen angelegt werden.

Um ein Gerät als Slave zu konfigurieren, muss nichts spezielles beachtet werden. Der Parameter Abfragezyklus, Sync und Init werden beim Slave ignoriert. Die Unit ID wird jedoch beachtet. Kann beim Master keine Unit ID eingestellt werden, setzen Sie diese auf 0 oder ggf. auf 255.

Import und Export als CSV-Datei

Es ist möglich, jedes Gerät als CSV-Datei zu exportieren und wieder zu importieren. Es wird empfohlen, vorher einen Export zu erstellen, damit die Struktur der Datei bekannt ist. Es ist dabei wichtig, dass die Reihenfolge der Spalten nicht geändert wird. Ausserdem sollten keine ungültigen Daten importiert werden.

Konfiguration

Die Konfiguration der Adressen erfolgt in der Installation. Hier können mehrere Geräte mit Ihren Registern angelegt werden. Jedes Register definiert dabei eine Tabelle mit Parametern einer einzelnen Unit ID.

Tipp: Duplizieren Sie die einzelnen Register nach der Inbetriebnahme des ersten Gerätes. Dies beschleunigt die Parametrierung.

In der rechten Spalte finden Sie die Unit ID und die Byte- sowie die Bit-Reihenfolge, falls diese von der verwendeten Hardware abweicht.

Symbol

Mit einem Klick auf das Symbol können mehrere Register gleichzeitig gelesen oder geschrieben werden. Dies erhöht die Performance der Abfragen enorm. Es ist zu beachten, dass die Anzahl der gleichzeitig abgerufenen Adressen eingehalten werden. Diese sind je nach Gerät unterschiedlich.

Adresse

Der Wert definiert die Modbus-Adresse. Dieser liegt zwischen 0 und 65'535 bzw. 0x0000 und 0xFFFF.

Der Wert kann als Dezimalwert 32'767 oder als Hex-Wert 0x7FFF definiert werden.

Länge

Der Wert definiert die Anzahl der Register in Words oder Bytes. Ein Word entspricht zwei Bytes. Der Modus kann durch Klicken auf den Titel Länge (Word) gewechselt werden.

Funktion

Der Wert definiert den Funktions-Code. Dieser definiert auch, ob der Wert beschrieben werden kann oder nicht.

Variable

Definiert die Variable zur Kommunikation mit der SPS von Antcas. Diese kann individuell eingestellt werden. Soll ein Wert der gleichen Variable gelesen und geschrieben werden, so kann die gleiche Variable mit dem gleichen Datentyp für mehrere Register gesetzt werden.

Tipp: Verwenden Sie ein / als Trennzeichen bei vielen Variablen, um Unterordner in der Installation zu erstellen. Dies ermöglicht eine bessere Übersicht.

Beschreibung

Die Beschreibung kommentiert die Variable.

Berechnung

Der Wert zur Übertragung kann mit der entsprechenden Auslösung berechnet werden. Definiert wird dieser z.B. wie folgt:

/64+100

Diese rechnet den Wert durch 64 plus 100 und gibt das Ergebnis direkt an die SPS zurück.

(v%2)/64

Ein Wert kann auch mit v definiert und in Klammern gesetzt werden. Dabei ist darauf zu achten, dass die Klammern stets korrekt geschlossen werden. Es kann auch eine andere Modbus-Adresse im Format wie z.B. $1000 zur Berechnung verwendet werden. Der Wert 1000 entspricht dabei der Modbus-Adresse 1'000 in der Konfiguration. Die Referenz bezieht sich dabei immer auf den Rohwert. D.h. Verkettungen werden nicht berechnet. Ausserdem muss die Adresse im Editor verwendet werden, damit der Wert vorher dekodiert wird.

Datentyp

Definiert den Datentyp zur Umwandlung vom Modbus-Register und zur Kommunikation mit der SPS. Die Berechnungen werden nach der Konvertierung vorgenommen. Deshalb kann der Datentyp als real im Explorer angegeben werden, anstelle des definierten Typen uint. Hier ein Beispiel einer Temperatur:

Ort Wert Datentyp
Modbus-Register 215 uint
Nach Konvertierung (uint) 215 uint
Wert nach Berechnung 21.5 real
Antcas SPS 21.5 real

Zum Senden der Temperatur wird diese Tabelle von unten nach oben betrachtet.

Die Datentypen Float und Double werden als Real definiert und konfiguriert. Anhand der Länge des Words wird dann die Abfrage konfiguriert.

Abfragetyp Länge (Word)
Float 16 1
Float 32 2
Double 4
Ungültig Andere Längen

Abfragezyklus

Der Abfragezyklus wird in Millisekunden definiert. Der Wert kann als Zahl oder mit der SPS-Zeitangabe T#1d1h1m10s500ms definiert werden.

Die Zeit 0 oder kein Wert deaktiviert die Anfrage bzw. das Schreiben des Wertes, bis dieser von der SPS an die Schnittstelle gesendet wird.

Die maximale Zeitangabe entspricht T#1d. Da der Modulus mit dem Zeitzonenoffset sonst nicht berechnet werden kann.

Um eine Abfrage um Mitternacht durchzuführen, kann die Zeitzone entsprechend eingestellt werden. Der Abfragezyklus wird dann auf T#1d eingestellt. Andere Zeitpunkte z.B. Mittags können stündlich abgefragt werden und die Auswertung muss dann in der SPS erfolgen.

Achtung: Zeitzonen mit Zeitumstellungen führen möglicherweise zu ungewollten Ergebnissen bei der Berechnung von Energiedaten.

Sync

Wird das Kontrollkästchen ausgewählt, so wird der Wert mit der Echtzeituhr synchronisiert. Dies ist praktisch, falls es sich bei dem Gerät um einen Energiezähler handelt.

Init

Wird das Kontrollkästchen ausgewählt, so wird der Wert beim Starten der Schnittstelle bzw. beim Verbinden zum Slave gelesen bzw. geschrieben.

Tastenkombinationen

Kombination Funktion
ENTER Nächste Zeile
SHIFT+ENTER Vorherige Zeile
CTRL+ENTER Neue Zeile unterhalb einfügen
CTRL+SHIFT+ENTER Neue Zeile oberhalb einfügen
CTRL+D Zeile duplizieren
CTRL+DEL Zeile löschen
ALT+[Pfeil auf] Zeile nach oben verschieben
ALT+[Pfeil ab] Zeile nach unten verschieben

Monitor

Der Monitor zeigt nur alle Änderungen an. Es ist möglich, einen Debug-Modus in den Einstellungen zu aktivieren, um sämtliche Meldungen zyklisch zu sehen.

Wichtig: Dieser Modus verhindert aber das Speichern aller Werte auf die Festplatte. Daher muss der Modus nach der Fehlersuche unbedingt wieder zurückgestellt werden.