> 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/french/function-blocks/blocks-reference/input-output/communication/modbus-write.md).

# Modbus Write

Ce bloc fonction envoie des valeurs à un serveur Modbus en utilisant un `Modbus Client` fourni. Utilisez-le pour écrire des coils ou des holding registers depuis votre graphe de scénario.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

* `Enable`\
  Entrée booléenne qui contrôle si l'écriture est effectuée. Si elle n'est pas fournie ou vaut False, le bloc n'essaiera pas d'écrire.
* `Modbus Client`\
  Attend un objet client produit par le bloc `Modbus Connect`. Fournissez un client valide pour activer la communication.
* `Data`\
  Données génériques à écrire. Accepte une seule valeur ou une liste (pour écrire plusieurs coils/registers).

## 📤 Sorties <a href="#outputs" id="outputs"></a>

Ce bloc fonction ne produit aucune sortie.

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

* `Address`\
  Saisissez l'adresse du registre/coil Modbus à écrire. Utilisez des valeurs entières correspondant à la carte d'adresses de votre appareil.
* `Data Type`\
  Choisissez entre `Coil` et `Holding Register` pour sélectionner le type de ressource Modbus à écrire.

## 🎯 Fonctionnalités <a href="#features" id="features"></a>

* Prend en charge l'écriture d'une valeur unique ou de listes vers plusieurs adresses lorsque l'appareil le permet.
* Permet de choisir le type de ressource cible via un menu déroulant simple : `Coil` ou `Holding Register`.
* Respecte l'entrée `Enable` pour que l'écriture puisse être contrôlée depuis la logique ou des entrées utilisateur.
* Signale les erreurs dans le journal si l'écriture échoue, afin que vous puissiez diagnostiquer des problèmes de connexion ou de configuration.

## ⚙️ Mécanisme d'exécution <a href="#running-mechanism" id="running-mechanism"></a>

Lors de l'exécution du bloc :

* Si l'entrée `Enable` est False ou absente, aucune écriture n'est tentée.
* Si aucun client n'est fourni sur `Modbus Client`, le bloc n'effectuera aucune écriture.
* Lorsqu'il est activé avec un client valide, le bloc envoie les `Data` fournis à l'adresse indiquée dans `Address` en utilisant le `Data Type` sélectionné.
* Les erreurs (problèmes de connexion, adresse invalide, données non supportées) sont consignées dans le journal pour que vous puissiez agir en conséquence.

## 📝 Instructions d'utilisation <a href="#usage" id="usage"></a>

* Ajoutez un bloc `Modbus Connect` et reliez sa sortie `Modbus Client` à l'entrée `Modbus Client` de ce bloc.
* Réglez `Address` sur l'adresse du registre ou du coil que vous souhaitez écrire.
* Sélectionnez `Data Type` sur `Coil` pour des booléens/coils ou sur `Holding Register` pour des registres numériques.
* Alimentez l'entrée `Data` avec vos valeurs (valeur unique ou liste).
* Utilisez un `Logic Input` ou un autre contrôle pour commuter `Enable` lorsque vous souhaitez effectuer l'écriture.

## 💡 Astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Utilisez `Modbus Connect` pour obtenir un client fiable et vérifiez la connexion avec `Modbus Read` avant d'essayer d'écrire.
* Pilotez l'entrée `Enable` depuis un `Logic Input` ou un bloc conditionnel (par exemple `Equals` / `Greater`) pour n'écrire que dans les conditions souhaitées.
* Préparez les valeurs d'écriture avec `Number Input` ou en assemblant les données à l'aide de blocs comme `String Merge` ou `Data Write Global` / `Data Write Local` lorsque vous devez préparer des valeurs.
* Si vous avez besoin d'enregistrer ou d'exporter les valeurs écrites, combinez ce bloc avec `CSV Export` ou `REST API - Post` pour garder des journaux externes ou envoyer des notifications.

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Aucune écriture : vérifiez que l'entrée `Enable` est True et qu'un `Modbus Client` valide est connecté.
* Erreurs d'adresse invalide : assurez-vous que `Address` est un entier dans la carte d'adresses de l'appareil et qu'il correspond au `Data Type` choisi.
* Format de données inattendu : pour `Coil` utilisez un booléen ou une liste de booléens ; pour `Holding Register` utilisez des nombres ou une liste de nombres.
* Échecs d'écriture : vérifiez la connectivité avec `Modbus Read` et confirmez que le serveur accepte les écritures à l'adresse cible. Consultez les messages du journal pour plus de détails.
