# Geräte per Modbus verbinden

## Über Modbus

Das *Modbus*-Protokoll ist ein weit verbreitetes Kommunikationsprotokoll, das 1979 von *Gould-Modicon* entwickelt wurde. Es basiert auf einer **Client-Server-Architektur**, bei der ein *Master*-Gerät (in der Regel ein Computer) mit einem oder mehreren *Slave*-Geräten verbunden ist. Dieses Protokoll ermöglicht es, verschiedene Messgeräte von einem zentralen System aus zu überwachen und zu steuern. Die Datenübertragung kann über eine der drei Varianten erfolgen: **ASCII**, **RTU** oder **TCP**.

In *Eliona* werden hauptsächlich **Modbus TCP** sowie **RTU over TCP** verwendet, jedoch bietet die Plattform auch Unterstützung für andere Schemata wie **UDP** und **RTU over UDP**, um eine flexible Integration älterer oder spezieller Geräte zu ermöglichen.

***

## Modbus TCP

Bei *Modbus TCP* erfolgt die Datenübertragung über Ethernet in binärer Form mittels TCP/IP-Paketen. Der **Standardport 502** ist für diesen Zweck reserviert. Für ältere Geräte mit seriellen Schnittstellen kann ein Protokollwandler oder Router verwendet werden, um diese in das TCP-System zu integrieren.

***

## Rollen im Modbus-Protokoll

### Modbus Client (Master)

* Kommuniziert mit einem entfernten Gerät.
* Sendet Modbus-Anfragen, die durch die Anwendung gesteuert werden.
* Übermittelt diese Anfragen an die Modbus-Client-Schnittstelle.
* In der Regel ist der Client das Gerät, das die Daten abruft (z.B. ein PC oder Modbus Poll).

### Modbus Server (Slave)

* Wartet auf Modbus-Anfragen (über TCP-Port 502).
* Liest und verarbeitet diese Anfragen.
* Gibt Modbus-Antwortnachrichten zurück.
* In der Regel ist der Server das Gerät, das die Daten bereitstellt (z.B. eine SPS oder ein Sensor).

{% hint style="info" %}
Jeder *Slave* besitzt eine eindeutige Adresse im Bereich von **1 bis 247**.
{% endhint %}

***

## Vorgehen zur Verbindung von Geräten per Modbus

Um Geräte über Modbus mit *Eliona* zu verbinden, folgen Sie diesen Schritten:

1. #### Verbindung zu einem Modbus-Server (Slave) herstellen

   Um eine Verbindung zu einem *Modbus-Server* (Slave) herzustellen, benötigen Sie die **IP-Adresse** und den **Port** des Servers. Der Standardport für Modbus TCP ist **502**.
2. **Register lesen oder schreiben**

   Nachdem die Verbindung erfolgreich hergestellt wurde, kann der *Modbus-Client* (Master) Anfragen an den *Modbus-Server* senden. Diese Anfragen dienen dem **Lesen** oder **Schreiben** von Registern auf dem Server.

   * **Lesen**: Der Client liest bestimmte Werte aus den Registeradressen des Servers.
   * **Schreiben**: Der Client sendet Daten und schreibt sie in die Register des Servers.\
     ⚠ **Hinweis**: Alle Anfragen werden vom *Client* initiiert.
3. #### Eindeutige Geräteadresse (ID) angeben

   Jedes Gerät im Modbus-Netzwerk besitzt eine eindeutige **Adresse (ID)** im Bereich von **1 bis 247**. Diese ID muss bei der Konfiguration des Clients angegeben werden, um sicherzustellen, dass die Anfragen an das richtige Gerät gesendet werden.

***

## Interne Modbus-Versionen in Eliona

In *Eliona* werden mehrere Modbus-Protokolle unterstützt, um verschiedene Gerätetypen und Netzwerke zu integrieren:

* **Modbus TCP**: Ermöglicht die Kommunikation über Ethernet mit dem Standardport **502**.
* **RTU over TCP**: Ermöglicht die Integration von Geräten mit dem älteren RTU-Protokoll über eine TCP-Verbindung.
* **UDP**: Bietet eine verbindungslose Übertragungsoption für Modbus-Nachrichten.
* **RTU over UDP**: Verwendet das RTU-Protokoll über UDP, um Geräte mit geringem Verbindungsaufwand in das Netzwerk einzubinden.
