> 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/spanish/function-blocks/blocks-reference/input-output/communication/twincat-read.md).

# TwinCAT Read

Esta función lee una variable de un PLC TwinCAT y devuelve el valor recuperado junto con un indicador de éxito. Está pensada para lecturas sencillas de datos de PLC en escenarios de automatización.

## 📥 Entradas (sockets)

`Connection` — Objeto genérico de conexión al PLC (proporcionar usando un bloque de conexión como `TwinCAT Connect`).

## 📤 Salidas (sockets)

`Data` — Valor de la variable recuperado desde el PLC.

`Success` — Bandera booleana que indica si la operación de lectura tuvo éxito.

## 🕹️ Controles

`Variable Name` — Campo de texto donde se ingresa el nombre de la variable del PLC a leer. Este valor debe coincidir con el identificador definido en el PLC.

## 🎯 Features

* Operación de lectura sencilla al PLC con retroalimentación clara de éxito.
* Diseñado para aceptar una conexión desde un bloque de conexión separado, manteniendo la gestión de conexión separada de las lecturas.
* Valida entradas clave y muestra mensajes de error claros cuando falta la conexión o el nombre de la variable.

## 📝 How to use

1. Proporcione una conexión al PLC en la entrada `Connection`. La forma típica es usar el bloque `TwinCAT Connect` y conectar su salida a este bloque.
2. Introduzca la variable objetivo del PLC en el control `Variable Name`.
3. Dispare la evaluación (manualmente o desde controles de flujo). El bloque intentará leer la variable indicada y emitirá `Data` y `Success`.
4. Use la salida `Success` para condicionar la lógica aguas abajo (por ejemplo, registro o almacenamiento) de modo que solo actúe sobre lecturas válidas.

## 📊 Runtime behavior

Al ejecutarse, el bloque comprueba que haya un `Connection` válido y que `Variable Name` no esté vacío. Si falta alguno, informa un error y devuelve `Success` en falso. Con una configuración válida realiza la lectura, emitiendo el valor de la variable en `Data` y un booleano en `Success`.

## 💡 Tips and Tricks

* Use `TwinCAT Connect` para crear y gestionar la conexión al PLC y enrútela hacia `Connection`.
* Combine con `Rising Edge` o `Cycle Timer` para controlar la frecuencia de lectura (por ejemplo, leer una vez al inicio o periódicamente).
* Envíe lecturas exitosas a `CSV Export` o `Data to JSON` para registrar valores y analizarlos posteriormente.
* Use `Debug Input` o `Scope` para inspeccionar valores mientras construye y prueba el sistema.
* Para escribir valores en el PLC, empareje este bloque con `TwinCAT Write` y use bloques lógicos (por ejemplo `Logic Input` o `Set - Reset`) para controlar cuándo se ejecutan lecturas/escrituras.
* Use `Data Write Local` o `Data Write Global` para almacenar valores para otras partes de su escenario.

## 🛠️ Troubleshooting

* Si ve errores tipo "Connection is not established", verifique que el bloque de conexión (por ejemplo `TwinCAT Connect`) esté configurado y conectado.
* Si `Variable Name` está vacío, el bloque no intentará leer — introduzca un identificador de variable de PLC válido.
* Si la lectura falla a pesar de entradas válidas, revise los permisos de acceso al PLC, la ortografía del nombre de la variable y el estado de la red/PLC. Use `Debug Input` para capturar la respuesta cruda y la salida `Success` para encaminar el manejo de errores.
* Para mayor estabilidad periódica, controle las lecturas con bloques temporizadores como `Cycle Timer` y añada lógica de reintento simple usando bloques lógicos.
