> For the complete documentation index, see [llms.txt](https://docs.buildings.ability.abb/collection/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.buildings.ability.abb/collection/german-14.2-freezed/connectivity-as-a-service/gerate-mit-abb-buildingpro-verbinden/gerate-per-modbus-verbinden.md).

# 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.buildings.ability.abb/collection/german-14.2-freezed/connectivity-as-a-service/gerate-mit-abb-buildingpro-verbinden/gerate-per-modbus-verbinden.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
