# TwinCAT Connect

Dieser Funktionsblock stellt eine Verbindung zu einer TwinCAT-PLC her, sodass andere Blöcke von der PLC lesen oder auf sie schreiben können. Verwenden Sie ihn, um die PLC-Client-Verbindung zu erstellen und aufrechtzuerhalten sowie den Verbindungsstatus an den Rest Ihres Szenarios zu melden.

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

Dieser Funktionsblock hat keine Eingangssteckplätze.

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

* `Connection` — Der aktive Verbindungs-Handle (zur Verwendung mit nachgelagerten Kommunikationsblöcken).
* `Success` — Boolean, der angibt, ob die Verbindung zur PLC erfolgreich hergestellt wurde.

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

* `AMS ID` — Geben Sie die PLC-AMS-Kennung (Adresse) ein. Wird normalerweise in der PLC-Konfiguration oder vom Systemadministrator bereitgestellt.
* `Port` — Geben Sie die Portnummer für die TwinCAT-Verbindung ein. Ein verbreiteter Standardport ist vorausgefüllt (kann bei Bedarf geändert werden).
* `Timeout (ms)` — Legen Sie das Verbindungs-Timeout in Millisekunden fest. Verwenden Sie größere Werte für langsamere oder entfernte Netzwerke.

Hinweis: Wenn die erforderlichen TwinCAT-Unterstützungsbibliotheken nicht auf dem System vorhanden sind, zeigt der Block eine Meldung in seiner Oberfläche an, dass TwinCAT-Module nicht verfügbar sind und die Verbindung nicht hergestellt werden kann, bis die benötigten Komponenten installiert sind.

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

* Persistenter `Connection`-Ausgang, damit nachgelagerte Blöcke die Verbindung wiederverwenden können, ohne sie neu zu initialisieren.
* `Success` zeigt als Boolean an, ob die Verbindung steht — nützlich für bedingte Abläufe.
* Einfache, beschriftete Steuerfelder für `AMS ID`, `Port` und `Timeout (ms)`.
* Meldet fehlende Systemabhängigkeiten klar, sodass erkennbar ist, wann TwinCAT-Komponenten benötigt werden.

## ⚙️ Running mechanism <a href="#how-it-works" id="how-it-works"></a>

* Beim Ausführen versucht der Block, eine PLC-Verbindung mit den konfigurierten Werten `AMS ID`, `Port` und `Timeout (ms)` herzustellen.
* Bei Erfolg liefert er die etablierte `Connection` über den Ausgang und setzt `Success` auf true. Bei Fehlschlag liefert er eine leere/null-Verbindung und setzt `Success` auf false.
* Der `Connection`-Ausgang kann mit anderen Kommunikations-Blöcken verbunden bleiben, damit diese denselben Link nutzen, ohne immer wieder neue Verbindungen aufzubauen.
* Der Block zeigt in der UI klare Fehlermeldungen an, wenn Konfiguration fehlt oder Systemabhängigkeiten nicht vorhanden sind.

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

1. Tragen Sie Ihre PLC-Adresse in `AMS ID` ein und den Zielport in `Port`.
2. Passen Sie `Timeout (ms)` an, wenn Ihr Netzwerk langsam oder unzuverlässig ist.
3. Führen Sie das Szenario aus und prüfen Sie den `Success`-Ausgang, um die Verbindung zu verifizieren.
4. Verbinden Sie den `Connection`-Ausgang mit Blöcken, die PLC-Lese-/Schreiboperationen durchführen.

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

* Verwenden Sie `TwinCAT Read` und `TwinCAT Write`-Blöcke nach diesem Block, um Lese- und Schreibvorgänge mit der bereitgestellten `Connection` durchzuführen.
* Kombinieren Sie `Logic Input` mit dem `Success`-Ausgang, um PLC-Operationen nur bei aktiver Verbindung freizugeben.
* Nutzen Sie `Debug Input` oder ein Anzeige-/Logging-Block, um Verbindungsstatus oder Fehler während der Entwicklung anzuzeigen.
* Um gelesene Werte zu speichern oder nachzuverarbeiten, verbinden Sie Reader mit `CSV Export` oder `Data Write Global`-Blöcken.
* Wenn Aktionen beim Erscheinen oder Verschwinden der Verbindung ausgelöst werden sollen, verwenden Sie Logikblöcke wie `Rising Edge` oder `Set - Reset` mit dem `Success`-Ausgang.

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

* Meldet der Block, dass TwinCAT-Module nicht verfügbar sind, stellen Sie sicher, dass die TwinCAT-Runtime und die erforderlichen Python-Pakete auf dem Rechner installiert sind und starten Sie die Anwendung neu.
* Bleibt `Success` false, überprüfen Sie, ob `AMS ID` und `Port` korrekt sind und vom Netzwerk aus erreichbar sind.
* Erhöhen Sie `Timeout (ms)` beim Verbinden zu entfernten PLCs oder bei Netzwerk-Latenz.
* Bei intermittierenden Verbindungsabbrüchen bauen Sie eine kleine Logik (z. B. `Delay Step` + `Retry`-Logik mit `Rising Edge`) ein, um Wiederverbindungen gezielt zu versuchen.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/german/function-blocks/input-output/communication/twincat-connect.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
