# TwinCAT Read

Dieser Funktionsblock liest eine Variable aus einer TwinCAT-PLC und gibt den gelesenen Wert zusammen mit einem Erfolgsindikator aus. Er ist für einfache PLC-Datenabfragen in Automatisierungsszenarien gedacht.

## 📥 Eingänge (sockets)

`Connection` — Generisches PLC-Verbindungsobjekt (bereitstellen z. B. über einen Verbindungsblock wie `TwinCAT Connect`).

## 📤 Ausgänge (sockets)

`Data` — Der aus der PLC gelesene Variablenwert.\
`Success` — Boolean-Flag, das anzeigt, ob der Lesevorgang erfolgreich war.

## 🕹️ Steuerungen

`Variable Name` — Textfeld, in das Sie den Namen der PLC-Variable eingeben, die gelesen werden soll. Dieser Name muss mit dem in der PLC definierten Variablen-Identifier übereinstimmen.

## 🎯 Funktionen

* Einfache PLC-Leseoperation mit klarer Erfolgsmeldung.
* Erwartet eine Verbindung von einem separaten Verbindungsblock, sodass die Verwaltung der Verbindung von Lesevorgängen getrennt bleibt.
* Validiert wichtige Eingaben und meldet klare Fehler, wenn Verbindung oder Variablenname fehlen.

## 📝 How to use

1. Stellen Sie eine PLC-Verbindung zum Eingang `Connection` her. Üblich ist die Verwendung des Blocks `TwinCAT Connect` und das Verbinden seines Ausgangs mit diesem Block.
2. Geben Sie die Ziel-PLC-Variable im Steuerfeld `Variable Name` ein.
3. Starten Sie die Auswertung (manuell oder über Flusssteuerungen). Der Block versucht, die benannte Variable zu lesen und liefert `Data` und `Success`.
4. Verwenden Sie den Ausgang `Success`, um nachgelagerte Logik zu steuern (z. B. Logging oder Speicherung), sodass nur bei gültigen Lesevorgängen gehandelt wird.

## 📊 Runtime behavior

Bei Ausführung prüft der Block, ob eine gültige `Connection` vorhanden ist und ob `Variable Name` nicht leer ist. Fehlt eine dieser Vorgaben, meldet er einen Fehler und setzt `Success` auf false. Bei gültiger Konfiguration führt er den Lesevorgang aus und gibt den Variablenwert auf `Data` sowie ein Boolean auf `Success` aus.

## 💡 Tips and Tricks

* Verwenden Sie `TwinCAT Connect`, um die PLC-Verbindung herzustellen und an `Connection` zu übergeben.
* Kombinieren Sie mit `Rising Edge` oder `Cycle Timer`, um die Lesehäufigkeit zu steuern (z. B. einmal beim Start oder periodisch).
* Senden Sie erfolgreiche Lesevorgänge an `CSV Export` oder `Data to JSON`, um Werte für spätere Analysen zu protokollieren.
* Verwenden Sie `Debug Input` oder `Scope`, um Werte beim Erstellen und Testen zu inspizieren.
* Zum Schreiben von Werten zurück in die PLC koppeln Sie diesen Block mit `TwinCAT Write` und steuern Lese/Schreib-Zeitpunkte mit Logikblöcken (z. B. `Logic Input` oder `Set - Reset`).
* Nutzen Sie `Data Write Local` oder `Data Write Global`, um Werte für andere Teile Ihres Szenarios verfügbar zu machen.

## 🛠️ Fehlersuche

* Bei der Meldung "Connection is not established": Prüfen Sie, ob der Verbindungsblock (z. B. `TwinCAT Connect`) korrekt konfiguriert und verbunden ist.
* Ist `Variable Name` leer, unternimmt der Block keinen Leseversuch — geben Sie einen gültigen PLC-Variablen-Identifier ein.
* Schlägt ein Lesevorgang trotz gültiger Eingaben fehl, prüfen Sie Zugriffsrechte in der PLC, Schreibweise des Variablennamens sowie Netzwerk-/PLC-Status. Nutzen Sie `Debug Input`, um die Rohantwort zu erfassen, und `Success`, um Fehlerpfade zu gestalten.
* Für stabile periodische Abfragen steuern Sie die Lesevorgänge mit Timing-Blöcken wie `Cycle Timer` und ergänzen einfache Retry-Logik mit Logikblöcken.


---

# 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-read.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.
