> 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-read.md).

# Modbus Read

Ce bloc fonction lit des données depuis un serveur Modbus (coils ou registres) en utilisant une connexion client fournie. Utilisez les contrôles à l'écran pour sélectionner l'adresse cible, le nombre de valeurs à lire et le type de données Modbus.

## 📥 Entrées

`Enable`\
Une porte booléenne permettant d'autoriser ou d'empêcher la lecture. Si False, le bloc n'effectue pas de lecture et ne renvoie aucune donnée.

`Modbus Client`\
Fournissez un objet de connexion client Modbus (généralement provenant d'un bloc `Modbus Connect`). Le bloc utilise ce client pour communiquer avec le serveur.

## 📤 Sorties

`Data`\
Le résultat de la lecture sous forme de liste générique. Pour les lectures de registres, il s'agit d'une liste de valeurs numériques de registres ; pour les lectures de coils/discrete, il s'agit d'une liste de valeurs booléennes. Si la lecture échoue ou est désactivée, la sortie est vide/None.

## 🕹️ Contrôles

`Address`\
Saisissez l'adresse de départ (entier) sur l'appareil Modbus à lire.

`Quantity`\
Indiquez combien d'éléments consécutifs (registres ou coils) lire.

`Data Type`\
Choisissez le type de données Modbus à lire : Coil, Discrete Input, Input Register ou Holding Register.

## 🎯 Fonctionnalités

* Prend en charge la lecture des types basés sur des bits (coils/discrete inputs) et des mots (input/holding registers).
* Utilise une connexion client Modbus externe fournie à l'entrée `Modbus Client`, séparant la communication des paramètres du bloc.
* Les résultats numériques simples et booléens sont renvoyés sous forme de liste, adaptés au journal, au tracé ou au traitement en aval.
* Rapport d'erreur intégré pour remonter les échecs de communication afin que vous puissiez réagir (reconnecter, retenter, alerter).

## ⚙️ Mécanisme d'exécution

Lorsque le bloc est actif, il vérifie l'entrée `Enable` et exige un client valide sur l'entrée `Modbus Client`. Il lit la plage d'adresses configurée en utilisant le `Data Type` sélectionné et renvoie les valeurs sur la sortie `Data`. Si la lecture échoue ou que le bloc est désactivé, il ne renvoie aucune donnée et consigne un message d'erreur utile.

## 💡 Conseils et astuces

* Utilisez `Modbus Connect` pour créer et fournir la connexion `Modbus Client` requise.
* Utilisez `Logic Input` ou `Rising Edge` pour contrôler quand les lectures ont lieu (déclenchement manuel ou lecture one-shot).
* Pour écrire des valeurs vers un appareil, combinez avec le bloc `Modbus Write`.
* Enregistrez les lectures pour examen ultérieur avec `CSV Export` ou persistez-les avec `Data Write Local` / `Data Write Global`.
* Visualisez les sorties numériques en temps réel en alimentant les résultats numériques dans le bloc `Scope`.
* Utilisez `Debug Input` pour inspecter et vérifier le `Data` retourné lors de la configuration et du dépannage.

## 🛠️ Résolution des problèmes

* Aucune donnée renvoyée : assurez-vous qu'un client valide est connecté à l'entrée `Modbus Client` et que `Enable` est True.
* Valeurs incorrectes ou lectures partielles : vérifiez que `Address` et `Quantity` sont dans la table d'adresses de l'appareil et respectent les limites de l'appareil.
* Erreurs de communication : vérifiez les paramètres réseau/série via le bloc `Modbus Connect` et assurez-vous qu'aucune autre application ne bloque l'accès.
* Format de données inattendu : confirmez que vous avez sélectionné le bon `Data Type` (coils vs registers) pour les valeurs attendues.
