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

# TwinCAT Connect

Ce bloc de fonction établit une connexion à un automate TwinCAT afin que d'autres blocs puissent lire ou écrire sur le PLC. Utilisez-le pour créer et maintenir la connexion client PLC et pour signaler l'état de la connexion au reste de votre scénario.

## 📥 Entrées

Ce bloc de fonction n'a pas de prises d'entrée.

## 📤 Sorties

* `Connection` Le handle de connexion actif (à utiliser avec les blocs de communication en aval).
* `Success` Booléen indiquant si une connexion réussie au PLC a été établie.

## 🕹️ Contrôles

* `AMS ID` Saisissez l'identifiant AMS du PLC (adresse). Il est généralement fourni par la configuration du PLC ou par votre administrateur système.
* `Port` Saisissez le numéro de port pour la connexion TwinCAT. Un port par défaut courant est prérempli (modifiable si nécessaire).
* `Timeout (ms)` Définissez le délai d'attente de connexion en millisecondes. Utilisez une valeur plus élevée pour les réseaux lents ou distants.

Remarque : si les bibliothèques de support TwinCAT requises ne sont pas présentes sur le système, le bloc affichera un message dans son interface indiquant que les modules TwinCAT ne sont pas disponibles et que la connexion ne peut pas être établie tant que les composants requis ne sont pas installés.

## 🎯 Features

* Connexion persistante en sortie pour que les blocs en aval puissent réutiliser la même connexion sans réinitialisation.
* Affiche le succès de la connexion sous forme de booléen pour permettre des flux conditionnels.
* Contrôles simples et libellés pour définir `AMS ID`, `Port` et `Timeout (ms)`.
* Indique gracieusement les dépendances système manquantes afin que vous sachiez quand les composants TwinCAT sont requis.

## ⚙️ Running mechanism

* Lors de l'exécution, le bloc tente d'établir une connexion au PLC en utilisant les valeurs configurées `AMS ID`, `Port` et `Timeout (ms)`.
* En cas de succès, il fournit la `Connection` établie via sa sortie et met `Success` à true. En cas d'échec, il fournit une connexion nulle/vide et met `Success` à false.
* La sortie `Connection` peut rester connectée à d'autres blocs de communication afin qu'ils utilisent le même lien établi sans recréer des connexions à chaque fois.
* Le bloc affiche également des messages d'erreur clairs dans l'interface si la configuration est incomplète ou si les dépendances système manquent.

## 📝 Usage Instructions

1. Saisissez l'adresse de votre PLC dans `AMS ID` et le port cible dans `Port`.
2. Ajustez `Timeout (ms)` si votre réseau est lent ou peu fiable.
3. Exécutez le scénario ; vérifiez la sortie `Success` pour valider la connexion.
4. Alimentez la sortie `Connection` vers les blocs qui effectuent des opérations de lecture/écriture PLC.

## 💡 Tips and Tricks

* Utilisez les blocs `TwinCAT Read` et `TwinCAT Write` en aval de ce bloc pour effectuer des lectures et écritures en utilisant la `Connection` fournie.
* Combinez `Logic Input` avec la sortie `Success` pour n'autoriser les opérations PLC que lorsque la connexion est active.
* Utilisez `Debug Input` ou un bloc d'affichage/journalisation pour montrer l'état de connexion ou les erreurs pendant le développement.
* Pour sauvegarder ou post-traiter des valeurs lues depuis le PLC, connectez les lecteurs à `CSV Export` ou `Data Write Global` pour persister les résultats.
* Si vous devez déclencher d'autres actions à l'apparition ou à la disparition de la connexion, utilisez des blocs logiques comme `Rising Edge` ou `Set - Reset` avec la sortie `Success`.

## 🛠️ Troubleshooting

* Si le bloc indique que les modules TwinCAT ne sont pas disponibles, assurez-vous que le runtime TwinCAT et les paquets Python requis sont installés sur la machine, puis redémarrez l'application.
* Si `Success` reste à false, vérifiez que les champs `AMS ID` et `Port` sont corrects et accessibles depuis votre réseau.
* Augmentez `Timeout (ms)` lors de connexions à des PLC distants ou en cas de latence réseau intermittente.
* Si la connexion échoue de manière intermittente, implémentez un petit circuit logique (par ex. `Delay Step` + logique de `Retry` avec `Rising Edge`) pour tenter la reconnexion uniquement lorsque nécessaire.
