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

# TwinCAT Read

Ce bloc fonction lit une variable à partir d'un automate TwinCAT (PLC) et fournit la valeur lue ainsi qu'un indicateur de succès. Il est conçu pour des lectures simples de données PLC dans des scénarios d'automatisation.

## 📥 Entrées (sockets)

`Connection` — Objet de connexion générique au PLC (fournir via un bloc de connexion comme `TwinCAT Connect`).

## 📤 Sorties (sockets)

`Data` — Valeur de la variable lue depuis le PLC.

`Success` — Booléen indiquant si l'opération de lecture a réussi.

## 🕹️ Contrôles

`Variable Name` — Champ texte où saisir le nom de la variable PLC à lire. Cette valeur doit correspondre à l'identifiant de la variable défini dans le PLC.

## 🎯 Fonctionnalités

* Lecture PLC simple avec retour clair de l'état de succès.
* Conçu pour accepter une connexion depuis un bloc de connexion séparé, séparant la gestion de la connexion des opérations de lecture.
* Valide les entrées essentielles et affiche des messages d'erreur clairs lorsque la connexion ou le nom de variable est manquant.

## 📝 Comment l'utiliser

1. Fournissez une connexion PLC à l'entrée `Connection`. La façon habituelle est d'utiliser le bloc `TwinCAT Connect` et de connecter sa sortie à ce bloc.
2. Saisissez la variable PLC cible dans le contrôle `Variable Name`.
3. Déclenchez l'évaluation (manuellement ou via des contrôles de flux). Le bloc tentera de lire la variable nommée et produira `Data` et `Success`.
4. Utilisez la sortie `Success` pour contrôler la logique en aval (par exemple pour journaliser ou stocker) afin d'agir uniquement sur des lectures valides.

## 📊 Comportement à l'exécution

Lors de l'exécution, le bloc vérifie qu'une `Connection` valide est présente et que `Variable Name` n'est pas vide. Si l'un d'eux manque, il signale une erreur et renvoie `Success` à false. Si la configuration est valide, il effectue la lecture et met la valeur de la variable sur `Data` et l'état booléen sur `Success`.

## 💡 Astuces

* Utilisez `TwinCAT Connect` pour créer et gérer la connexion PLC puis branchez-la sur `Connection`.
* Combinez avec `Rising Edge` ou `Cycle Timer` pour contrôler la fréquence des lectures (par ex. lire une fois au démarrage ou périodiquement).
* Envoyez les lectures réussies vers `CSV Export` ou `Data to JSON` pour conserver des logs et analyser les valeurs plus tard.
* Utilisez `Debug Input` ou `Scope` pour inspecter les valeurs pendant la conception et les tests.
* Pour écrire des valeurs dans le PLC, associez ce bloc avec `TwinCAT Write` et contrôlez les moments de lecture/écriture avec des blocs logiques (par exemple `Logic Input` ou `Set - Reset`).
* Utilisez `Data Write Local` ou `Data Write Global` pour stocker des valeurs destinées à d'autres parties de votre scénario.

## 🛠️ Dépannage

* Si vous voyez des erreurs du type "Connection is not established", vérifiez que le bloc de connexion (par ex. `TwinCAT Connect`) est correctement configuré et connecté.
* Si `Variable Name` est vide, le bloc n'effectuera pas la lecture — saisissez un identifiant de variable PLC valide.
* Si la lecture échoue malgré des entrées valides, vérifiez les droits d'accès au PLC, l'orthographe du nom de la variable et l'état réseau/PLC. Utilisez `Debug Input` pour capturer la réponse brute et la sortie `Success` pour gérer les erreurs.
* Pour une stabilité périodique, contrôlez les lectures avec des blocs temporels comme `Cycle Timer` et ajoutez une logique de retry simple à l'aide de blocs logiques.
