MODBUS-Master

In diesem Bereich werden MODBUS Geräte konfiguriert.



Über die Modbus Funktion können Geräte mit Modbus RTU und Modbus TCP angebunden werden. Durch eine flexible Zuordnung ist es möglich unterschiedliche Geräte mit unterschiedlichen Parametern an der Steuerung zu betreiben. Mehrere Modbus TCP Geräte sind ebenso möglich wie Modbus RTU Geräte mit unterschiedlichen Schnittstellenparametern.

Neue Geräte können über die Importfunktion schnell und einfach hinzugefügt werden. Durch ein Vorlagensystem können manuell angelegte Geräte exportiert und als Vorlage für andere Projekte verwendet werden. Über das easymaster Softwareupdate werden zudem immer die neuesten Vorlagen mit installiert.

Um ein neues Gerät anzulegen, klicken die auf das linke "+" Symbol. Wählen Sie "Neues Gerät" aus dem Menü um ein Gerät manuell anzulegen, um ein Gerät aus einer Vorlage zu erstellen, wählen Sie "Importieren". Rechts neben der Baumansicht sehen Sie nun die Geräteeigenschaften:

Aktiv
Kommunikation aktivieren. Nur aktive Geräte werden abgefragt.
Wartezeit pro Register Wartezeit pro Register. Diese Zeit wird mindestens zwischen dem Lesen zweiter Register als Wartezeit eingehalten. Eine Wartezeit ist beispielsweise bei manchen älteren Modbus Geräten nötig oder wenn es Störungen auf der RS485 Leitung gibt oder wenn die Werte auf den KNX Bus gesendet werden. Diese Zeit gilt global für alle Geräte und Register.
Name
Beliebiger Name für das Modbus Gerät.
ID
Eindeutige Modbus ID. Bei Modbus RTU muss die ID an einer Schnittstelle immer eindeutig sein.
MG
Mittelgruppe für das automatische Anlegen von Adressen. Für Modbus Geräte ist die Hauptgruppe 1200 fest vorgegeben. Die Mittelgruppe kann frei gewählt werden, diese muss jedoch eindeutig sein damit für jedes Gerät ein eigener Satz von Adressen generiert wird. Gibt es nur einen Bus, beispielsweise alle Geräte sind Modbus RTU Geräte an einer Schnittstelle, kann als Mittelgruppe die ID verwendet werden da diese dann immer eindeutig ist. Gibt es mehrere Modbus Bussystem oder bei Modbus TCP können sich die Modbus IDs durchaus überschneiden, in diesem Fall muss jedem Modbus Gerät eine separate Untergruppe zugeordnet werden.
Protokoll
Protokoll. Hier kann Modbus RTU (RS485 Schnittstelle) oder Modbus TCP ausgewählt werden.
Timout lesen/schreiben
Zeit in Millisekunden die auf eine Antwort nach der Leseabfrage gewartet wird.
Serielle Schnittstelle
Parameter für die serielle Schnittstelle bei Protokoll Modbus RTU. Diese Parameter müssen mit den Einstellungen des Modbus Gerätes übereinstimmen damit eine Kommunikation möglich ist. Sind mehrere Geräte an derselben Schnittstelle angeschlossen bzw. konfiguriert, werden die Parameter vom ersten Gerät verwendet.
IP Adresse
IP Adresse des Modbus Gerätes bei Protokoll Modbus TCP.
Port
Portnummer des Modbus Gerätes bei Protokoll Modbus TCP, Standard ist Portnummer 502.
TCP Verbindung Schließen
Mit dieser Option wird die TCP Verbindung nach der Abfrage wieder geschlossen. Diese Option ist nur in Sonderfällen bei einigen Modbus TCP Geräten notwendig.

Mit Rechtsklick auf das Gerät in der Baumansicht wird ein Popupmenü mit folgenden Funktionen angezeigt:


Variablen generieren
Mit dieser Funktion werden die Variablen für das ausgewählte Gerät generiert. Anders als mit der Funktion "Alle Variablen neu generieren" werden nur Adressen für das ausgewählte Gerät neu generiert.
Exportieren
Exportiert das ausgewählte Gerät in eine Vorlage.
Löschen
Löscht das ausgewählte Gerät.


Nach dem Anlegen des Gerätes können beliebig viele Register zum Lesen oder Schreiben hinzugefügt werden. Registeradressen, Datentyp und Function Codes entnehmen Sie bitte der Beschreibung des Gerätes. Klicken Sie auf das rechte "+" Symbol um ein neues Register anzulegen, auf der rechten Seite können Sie nun die Eigenschaften des Registers festlegen. Sie können mehrere Register gleichzeitig ändern indem Sie diese in der Baumansicht mehrfach auswählen. Über kopieren Strg+C und einfügen Strg+V können Sie ein oder mehrere Register kopieren. Löschen ist über das "-" Symbol in der Toolbar möglich.

Aktiv
Abfrage des Registers aktivieren. Ist das Register nicht aktiv, wird dieses bei der Abfrage übersprungen.
Name
Beliebiger Name für das Register. Dieser Name wird beim generieren der Adressen als Kommentar verwendet.
Adresse (Register, Offset 0)
Registeradresse. Wichtig: Die Adressen beginnen bei easymaster immer mit 0. Es gibt Registertabellen die beginnen bei Registeradresse 1, in diesem Fall muss bei der Konfiguration immer Registeradresse -1 verwendet werden. In der Regel weisen die Hersteller in der Beschreibung auch darauf hin. Allgemein kann man sagen, dass wenn als Bezeichnung Register verwendet wird, die Tabelle mit 1 beginnt, wird von Adresse gesprochen beginnt die Tabelle meist bei 0 - so ist es auch in dieser Einstellung.
Hex
Umschalten der Anzeige der Registeradresse auf Hexadezimal. Je nach Hersteller sind die Modbus Registeradressen Dezimal oder Hexadezimal angegeben, um die Konfiguration zu vereinfachen kann die Anzeige hier umgeschaltet werden.
Register Anzahl
Anzahl der Register die vom Wert belegt werden. Ein Modbus Register hat immer 16 Bit, ist die Variable ein 2 Byte Wert, ist die Anzahl 1, ist die Variable ein 4 Byte Wert, ist die Anzahl der Register 2. Die Anzahl ist in der Modbustabelle der Hersteller angegeben, in der Regel ist diese 1 oder 2 Register, seltener auch 4 für sehr große Zahlen.
Anzahl lesen (Block)
Anzahl der Variablen die gleichzeitig gelesen werden. Beim Modbus Protokoll besteht die Möglichkeit mehrere Variablen bei einer Abfrage gleichzeitig zu lesen, dies erhöht die Abfragegeschwindigkeit. Das Lesen mehrerer Variablen gleichzeitig muss vom Modbus Gerät unterstützt werden.
Function Code
Folgende Funcion Codes werden zurzeit von easymaster unterstützt:
  • 1-READ_COILS (Bit)
  • 2-READ_DISCRETE_INPUTS (Bit)
  • 3-READ_HOLDING_REGISTERS
  • 4-READ_INPUT_REGISTERS
  • 5-WRITE_SINGLE_COIL (Bit)
  • 6-WRITE_SINGLE_REGISTER
  • 15-WRITE_MULTIPLE_COILS (Bit)
  • 16-WRITE_MULTIPLE_REGISTERS
Der Function Codes 15 kann zurzeit nicht verwendet werden.
Datentyp Modbus
Datentyp der Modbus Variable. Diese kann entweder ein Integer oder ein Float sein. Bei Float muss die Anzahl der Register mindestens 2 sein (4 Byte Float).
Datentyp generiert
Datentyp für die Generierung von Variablen. Normalerweise kann hier immer EIS17 gewählt werden, dieser Datentyp ist groß genug um alle Modbus Datentypen darzustellen. Sollen die Modbus Werte auf einen KNX Bus gesendet werden, kann hier ein kompatibler Datentyp gewählt werden. Wenn ein Faktor verwendet wird, muss hier immer ein Fließkommadatentyp verwendet werden da ansonsten die Kommastellen abgeschnitten werden.
Vorzeichen
Gibt an ob die generierte Variable Vorzeichenbehaftet ist oder nicht. Vorzeichen sind nur bei Integer Datentypen optional, Fließkommazahlen haben immer Vorzeichen.
Faktor Hier kann ein Faktor angegeben werden, der Wert aus der Modbus Abfrage wird mit diesem Faktor multipliziert bevor dieser auf die generierte Variable übertragen wird. Viele Modbus Geräte geben beispielsweise Temperaturen als Integer mit 1/10 Grad an. 20 Grad entspricht dann einem Integer Wert von 200. Gibt man in diesem Fall einen Faktor von 0.1 an, wird gleich der Wert in Grad ausgegeben und man muss diesen Später nicht an der Anzeige oder in den Logiken korrigieren. Gleiches gilt beispielsweise wenn ein Wert in Wh ausgegeben wird und man diesen in kWh, Faktor 0.001, umrechnen will.
Nur bei Änderung aktualisieren
Ist dieser Parameter aktiviert, wird nur bei Änderung an einem Register die Variable aktualisiert bzw. ein Telegramm gesendet. Andernfalls wird die Variable bei jedem erfolgreichen Lesezugriff aktualisiert. Um die Modbus Kommunikation beispielsweise mit einer Logik Telegrammüberwachung zu kontrollieren, muss diese Option deaktiviert bleiben.
Wartezeit
Hier kann eine Wartezeit angegeben werden. Eine separate Wartezeit ist beispielsweise dann sinnvoll, wenn der Wert auf einen KNX Bus übertragen wird um diesen nicht zu überlasten oder wenn gewisse Werte schneller ausgelesen werden sollen.

Grundsätzlich werden alle konfigurierten Geräte parallel ausgelesen. In jedem Zyklus wird ein Register pro Gerät gelesen. Wurde an einem Register eine Wartezeit angegeben, wird es so lange nicht gelesen bis die Zeit abgelaufen ist, es wird also zeitweise übersprungen, damit werden andere Register mit einer kürzeren oder gar keiner Wartezeit entsprechend schneller ausgelesen.

Das Schreiben von Werten ist hiervon nicht betroffen. Soll ein Wert geschrieben werden, wird das auslesen zwischenzeitlich unterbrochen.