# Modbus Read

Dieser Funktionsblock liest Daten von einem Modbus-Server (Coils oder Register) über eine bereitgestellte Modbus-Client-Verbindung. Verwenden Sie die Bildschirmsteuerung, um die Zieladresse, die Anzahl der zu lesenden Werte und den Modbus-Datentyp auszuwählen.

## 📥 Eingänge <a href="#inputs" id="inputs"></a>

`Enable`\
Ein boolesches Gate, das das Lesen zulässt oder verhindert. Wenn `False`, führt der Block kein Lesen durch und gibt keine Daten zurück.

`Modbus Client`\
Geben Sie ein Modbus-Client-Verbindungsobjekt an (in der Regel aus einem `Modbus Connect`-Block). Der Block verwendet diesen Client zur Kommunikation mit dem Server.

## 📤 Ausgänge <a href="#outputs" id="outputs"></a>

`Data`\
Das Leseergebnis als generische Liste. Bei Register-Lesungen ist dies eine Liste numerischer Registerwerte; bei Coil-/Discrete-Lesungen eine Liste von booleschen Werten. Wenn das Lesen fehlschlägt oder deaktiviert ist, ist die Ausgabe leer/None.

## 🕹️ Steuerungen <a href="#controls" id="controls"></a>

`Address`\
Geben Sie die Startadresse (Ganzzahl) am Modbus-Gerät ein, von der gelesen werden soll.

`Quantity`\
Geben Sie an, wie viele aufeinanderfolgende Elemente (Register oder Coils) gelesen werden sollen.

`Data Type`\
Wählen Sie den Modbus-Datentyp aus, der gelesen werden soll: Coil, Discrete Input, Input Register oder Holding Register.

## 🎯 Funktionen <a href="#features" id="features"></a>

* Unterstützt das Lesen sowohl bitbasierter (Coils/Discrete Inputs) als auch wortbasierter (Input/Holding Registers) Datentypen.
* Verwendet eine externe Modbus-Client-Verbindung, die über den Eingangsbereich `Modbus Client` bereitgestellt wird, sodass die Kommunikation von den Block-Einstellungen getrennt bleibt.
* Liefert einfache numerische und boolesche Ergebnisse als Liste, geeignet zum Protokollieren, Plotten oder zur Weiterverarbeitung.
* Eingebaute Fehlerberichte zeigen Kommunikationsfehler an, damit Sie reagieren können (z. B. reconnect, retry, alert).

## ⚙️ Funktionsweise <a href="#running-mechanism" id="running-mechanism"></a>

Wenn der Block aktiv ist, prüft er den Eingang `Enable` und benötigt einen gültigen Client am Eingang `Modbus Client`. Er liest den konfigurierten Adressbereich mithilfe des ausgewählten `Data Type` und gibt die Werte am Ausgang `Data` zurück. Schlägt das Lesen fehl oder ist der Block deaktiviert, werden keine Daten zurückgegeben und es wird eine hilfreiche Fehlermeldung protokolliert.

## 💡 Tipps und Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Verwenden Sie `Modbus Connect`, um die erforderliche `Modbus Client`-Verbindung zu erstellen und bereitzustellen.
* Steuern Sie, wann gelesen wird, mit `Logic Input` oder `Rising Edge` (manueller Trigger oder Einzel-Lesevorgang).
* Zum Zurückschreiben von Werten an ein Gerät kombinieren Sie mit dem `Modbus Write`-Block.
* Protokollieren Sie Messwerte zur späteren Überprüfung mit `CSV Export` oder speichern Sie sie mit `Data Write Local` / `Data Write Global`.
* Visualisieren Sie numerische Ausgaben in Echtzeit, indem Sie die Ergebnisse in den `Scope`-Block leiten.
* Verwenden Sie `Debug Input`, um während der Einrichtung und Fehlersuche die zurückgegebenen `Data` zu prüfen.

## 🛠️ Fehlersuche <a href="#troubleshooting" id="troubleshooting"></a>

* Keine Daten zurückgegeben: Stellen Sie sicher, dass ein gültiger Client an `Modbus Client` angeschlossen ist und `Enable` auf `True` steht.
* Falsche Werte oder partielle Lesungen: Überprüfen Sie, ob `Address` und `Quantity` im Adressraum des Geräts liegen und die Gerätegrenzen nicht überschreiten.
* Kommunikationsfehler: Prüfen Sie die Netzwerk-/seriellen Einstellungen über den `Modbus Connect`-Block und stellen Sie sicher, dass keine andere Anwendung den Zugriff blockiert.
* Unerwartetes Datenformat: Vergewissern Sie sich, dass Sie den richtigen `Data Type` (Coils vs. Registers) für die erwarteten Werte ausgewählt haben.


---

# Agent Instructions: 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:

```
GET https://docs.augelab.com/german/function-blocks/input-output/communication/modbus-read.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
