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

# Modbus Write

Este bloque de función envía valores a un servidor Modbus usando un `Modbus Client` provisto. Úsalo para escribir coils o holding registers desde tu grafo de escenario.

## 📥 Entradas

* `Enable`\
  Entrada booleana que controla si se realiza la escritura. Si no se proporciona o es `False`, el bloque no intentará escribir.
* `Modbus Client`\
  Espera un objeto cliente producido por el bloque `Modbus Connect`. Proporciona un cliente válido para habilitar la comunicación.
* `Data`\
  Datos genéricos para escribir. Acepta un valor único o una lista (para escribir múltiples coils/registers).

## 📤 Salidas

Este bloque de función no produce salidas.

## 🕹️ Controles

* `Address`\
  Introduce la dirección del registro/coil Modbus a escribir. Usa valores enteros que coincidan con el mapa de direcciones de tu dispositivo.
* `Data Type`\
  Selecciona entre `Coil` y `Holding Register` para indicar qué tipo de recurso Modbus se escribirá.

## 🎯 Características

* Soporta escribir valores individuales o listas en múltiples direcciones cuando el dispositivo lo permite.
* Permite elegir el tipo de recurso destino con un desplegable simple: `Coil` o `Holding Register`.
* Respeta la entrada `Enable` para que la escritura pueda controlarse desde lógica o entradas de usuario.
* Registra errores en el log si la escritura falla, ayudando a diagnosticar problemas de conexión o configuración.

## ⚙️ Mecanismo de ejecución

Al ejecutarse el bloque:

* Si la entrada `Enable` es `False` o falta, no se intenta ninguna escritura.
* Si no se proporciona un cliente en `Modbus Client`, el bloque no realizará la escritura.
* Cuando está habilitado y hay un cliente válido, el bloque envía los datos de `Data` a la dirección indicada en `Address` usando el `Data Type` seleccionado.
* Los errores (problemas de conexión, dirección inválida, datos no soportados) se registran en el log para que puedas actuar en consecuencia.

## 📝 Instrucciones de uso

* Añade un bloque `Modbus Connect` y conecta su salida `Modbus Client` a la entrada `Modbus Client` de este bloque.
* Ajusta `Address` al registro o dirección de coil que quieras escribir.
* Selecciona `Data Type` como `Coil` para valores booleanos/coils o `Holding Register` para registros numéricos.
* Alimenta tus datos en la entrada `Data` (valor único o lista).
* Usa un `Logic Input` u otro control para alternar `Enable` cuando quieras que se realice la escritura.

## 💡 Consejos y trucos

* Usa `Modbus Connect` para obtener un cliente fiable y confirma la conexión con `Modbus Read` antes de intentar escribir.
* Controla la entrada `Enable` desde un `Logic Input` o un bloque condicional (por ejemplo `Equals` / `Greater`) para que las escrituras ocurran solo bajo las condiciones deseadas.
* Prepara los valores a escribir con `Number Input` o ensamblando datos con bloques como `String Merge` o `Data Write Global` / `Data Write Local` cuando necesites preparar valores antes de la escritura.
* Si necesitas guardar o exportar los valores que escribes, combina este bloque con `CSV Export` o `REST API - Post` para mantener registros externos o enviar notificaciones.

## 🛠️ Solución de problemas

* No se realiza la escritura: verifica que `Enable` sea `True` y que un `Modbus Client` válido esté conectado.
* Errores de dirección inválida: asegúrate de que `Address` sea un entero dentro del mapa de direcciones del dispositivo y que coincida con el `Data Type` elegido.
* Formato de datos inesperado: para `Coil` usa booleanos o listas de booleanos; para `Holding Register` usa números o listas de números.
* Fallos en la escritura: verifica la conectividad con `Modbus Read` y confirma que el servidor acepte escrituras en la dirección objetivo. Revisa los mensajes del log para más detalles.
