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

# Modbus Read

Este bloque de función lee datos de un servidor Modbus (coils o registros) usando una conexión de cliente Modbus proporcionada. Utilice los controles en pantalla para seleccionar la dirección objetivo, la cantidad de valores a leer y el tipo de dato Modbus.

## 📥 Entradas

`Enable`\
Una señal booleana para permitir o evitar la lectura. Cuando es `False` el bloque no realizará la lectura y no devuelve datos.

`Modbus Client`\
Proporcione un objeto de conexión de cliente Modbus (usualmente proveniente de un bloque `Modbus Connect`). El bloque utiliza este cliente para comunicarse con el servidor.

## 📤 Salidas

`Data`\
El resultado de la lectura como una lista genérica. Para lecturas de registros, es una lista de valores numéricos de registros; para lecturas de coils/discrete, es una lista de valores booleanos. Si la lectura falla o está deshabilitada, la salida está vacía o es `None`.

## 🕹️ Controles

`Address`\
Ingrese la dirección inicial (entero) en el dispositivo Modbus desde la cual leer.

`Quantity`\
Ingrese cuántos ítems consecutivos (registros o coils) leer.

`Data Type`\
Elija el tipo de dato Modbus a leer: Coil, Discrete Input, Input Register o Holding Register.

## 🎯 Características

* Soporta la lectura de tipos de datos basados en bits (coils/discrete inputs) y en palabras (input/holding registers).
* Utiliza una conexión de cliente Modbus externa proporcionada en la entrada `Modbus Client`, manteniendo la comunicación separada de la configuración del bloque.
* Devuelve resultados simples numéricos y booleanos como una lista adecuada para registro, graficado o procesamiento posterior.
* Reporte de errores integrado que muestra fallos de comunicación para que puedas reaccionar (reconectar, reintentar, alertar).

## ⚙️ Mecanismo de ejecución

Cuando está activo, el bloque verifica la entrada `Enable` y requiere un cliente válido en la entrada `Modbus Client`. Lee el rango de direcciones configurado usando el `Data Type` seleccionado y devuelve los valores en la salida `Data`. Si la lectura falla o el bloque está deshabilitado, no devuelve datos y registra un mensaje de error útil.

## 💡 Consejos y trucos

* Use `Modbus Connect` para crear y proporcionar la conexión requerida en `Modbus Client`.
* Use `Logic Input` o `Rising Edge` para controlar cuándo se realizan las lecturas (disparo manual o lecturas de un solo pulso).
* Para escribir valores de vuelta a un dispositivo, combine con el bloque `Modbus Write`.
* Registre las lecturas para su revisión posterior usando `CSV Export` o persístalas con `Data Write Local` / `Data Write Global`.
* Visualice salidas numéricas en tiempo real alimentando los resultados numéricos al bloque `Scope`.
* Use `Debug Input` para inspeccionar y verificar el `Data` devuelto durante la configuración y la resolución de problemas.

## 🛠️ Solución de problemas

* No se devuelve datos: asegúrese de que haya un cliente válido conectado a la entrada `Modbus Client` y que `Enable` sea `True`.
* Valores incorrectos o lecturas parciales: verifique que `Address` y `Quantity` estén dentro del mapa de direcciones del dispositivo y de los límites del mismo.
* Errores de comunicación: verifique la configuración de red/serie vía el bloque `Modbus Connect` y asegúrese de que ninguna otra aplicación esté bloqueando el acceso.
* Formato de datos inesperado: confirme que seleccionó el `Data Type` correcto (coils vs registers) para los valores que espera.
