> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/german/funktionsblocke/blocks-reference/input-output/communication/modbus-write.md).

# Modbus Write

Dieser Funktionsblock sendet Werte an einen Modbus-Server über einen bereitgestellten Modbus-Client. Verwenden Sie ihn, um Coils oder Holding Registers aus Ihrem Szenariographen zu schreiben.

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

`Enable` Dieser boolesche Eingang steuert, ob Schreibvorgänge ausgeführt werden. Wenn er nicht bereitgestellt oder auf False gesetzt ist, versucht der Block nicht zu schreiben.

`Modbus Client` Dieser Eingang erwartet ein Client-Objekt, das vom Block `Modbus Connect` erzeugt wurde. Stellen Sie einen gültigen Client bereit, um die Kommunikation zu ermöglichen.

`Data` Generische Daten zum Schreiben. Akzeptiert einen Einzelwert oder eine Liste (zum Schreiben mehrerer Coils/Register).

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

Dieser Funktionsblock erzeugt keine Ausgänge.

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

`Address` Geben Sie die Modbus-Register-/Coil-Adresse ein, in die geschrieben werden soll. Verwenden Sie ganzzahlige Werte, die mit Ihrer Geräteadresse übereinstimmen.

`Data Type` Wählen Sie zwischen `Coil` und `Holding Register`, um den zu beschreibenden Modbus-Ressourcentyp festzulegen.

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

* Unterstützt das Schreiben einzelner Werte oder Listen an mehrere Adressen, wenn das Gerät dies erlaubt.
* Ermöglicht die Auswahl des Zielressourcentyps über ein Dropdown: `Coil` oder `Holding Register`.
* Respektiert den Eingang `Enable`, sodass Schreiben aus Logik oder Benutzereingaben gesteuert werden kann.
* Meldet Fehler im Log, falls das Schreiben fehlschlägt, damit Sie Verbindungs- oder Konfigurationsprobleme diagnostizieren können.

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

Wenn der Block ausgeführt wird:

* Wenn der Eingang `Enable` False oder nicht vorhanden ist, wird kein Schreibvorgang versucht.
* Wenn kein Client am Eingang `Modbus Client` bereitgestellt ist, wird kein Schreiben durchgeführt.
* Wenn aktiviert und ein gültiger Client vorhanden ist, sendet der Block die bereitgestellten `Data` an die in `Address` eingetragene Adresse unter Verwendung des gewählten `Data Type`.
* Fehler (Verbindungsprobleme, ungültige Adresse, nicht unterstützte Daten) werden im Log gemeldet, damit Sie entsprechend handeln können.

## 📝 Nutzungshinweise <a href="#usage" id="usage"></a>

* Fügen Sie einen Block `Modbus Connect` hinzu und verbinden Sie dessen Ausgabe `Modbus Client` mit dem Eingang dieses Blocks `Modbus Client`.
* Setzen Sie `Address` auf die Register- oder Coil-Adresse, in die Sie schreiben möchten.
* Wählen Sie als `Data Type` `Coil` für boolean/Coils oder `Holding Register` für numerische Register.
* Speisen Sie Ihre Werte in den Eingang `Data` ein (Einzelwert oder Liste).
* Verwenden Sie einen `Logic Input` oder eine andere Steuerung, um `Enable` zu toggeln, wenn der Schreibvorgang stattfinden soll.

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

* Verwenden Sie `Modbus Connect`, um einen zuverlässigen Client zu erzeugen, und prüfen Sie die Verbindung mit `Modbus Read`, bevor Sie schreiben.
* Steuern Sie den Eingang `Enable` über einen `Logic Input` oder eine bedingte Logik (z. B. `Equals` / `Greater`), damit Schreibvorgänge nur unter gewünschten Bedingungen erfolgen.
* Bereiten Sie Schreibwerte mit `Number Input` vor oder stellen Sie Daten mit Blöcken wie `String Merge` oder `Data Write Global` / `Data Write Local` zusammen, wenn Sie Werte zwischenspeichern müssen.
* Wenn Sie geschriebene Werte speichern oder exportieren möchten, kombinieren Sie diesen Block mit `CSV Export` oder `REST API - Post`, um externe Logs zu führen oder Benachrichtigungen zu senden.

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

* Kein Schreibvorgang: Prüfen Sie, ob der Eingang `Enable` True ist und ein gültiger `Modbus Client` verbunden ist.
* Fehler wegen ungültiger Adresse: Stellen Sie sicher, dass `Address` eine Ganzzahl innerhalb der Geräteadresskarte ist und zum gewählten `Data Type` passt.
* Unerwartetes Datenformat: Für `Coil` verwenden Sie boolean oder eine Liste von booleans; für `Holding Register` Zahlen oder eine Liste von Zahlen.
* Schreibfehler: Überprüfen Sie die Verbindung mit `Modbus Read` und bestätigen Sie, dass der Server Schreibzugriffe auf die Zieladresse akzeptiert. Prüfen Sie die Logmeldungen für Details.
