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

# OPC UA Write

Este bloque de función envía un valor a una dirección de un servidor OPC UA usando la conexión del cliente proporcionada. Úsalo para actualizar variables remotas desde tu escenario, con la posibilidad de seleccionar el tipo de dato.

## 📥 Entradas

* `Client`\
  Instancia del cliente OPC UA a usar para la operación de escritura (normalmente proporcionada por el bloque `OPC UA Client`).
* `Node Address`\
  La dirección del nodo objetivo en el servidor OPC UA donde se escribirá el valor.
* `Value`\
  El valor que se enviará al nodo objetivo.

## 📤 Salidas

Este bloque de función no proporciona salidas.

## 🕹️ Controles

* `Data type`\
  Desplegable para seleccionar el tipo variante OPC UA usado al escribir el valor. Tipos comunes: Float, Boolean, Integer (variantes), Double y String.

## 🎨 Características

* Escritura con selección explícita de tipo de dato para que la variable objetivo reciba el tipo esperado.
* Funciona con una instancia externa de cliente OPC UA para mantener la gestión de la conectividad separada.
* Interfaz mínima: solo requiere las entradas y la selección del tipo de dato para operar.

## ⚙️ Mecanismo de ejecución

Cuando el bloque se evalúa durante la ejecución del escenario y se proporcionan las tres entradas, intentará enviar el `Value` al `Node Address` especificado usando la conexión del `Client` suministrado y el `Data type` elegido. Asegúrate de que el cliente esté conectado y que la dirección sea válida antes de ejecutar para evitar fallos en la escritura.

## 📝 Instrucciones de uso

1. Añade y configura un bloque `OPC UA Client` para establecer y gestionar la conexión con el servidor.
2. Conecta la salida del cliente a la entrada `Client`.
3. Introduce la dirección del nodo objetivo en la entrada `Node Address`.
4. Proporciona el dato a escribir en la entrada `Value`.
5. Selecciona el `Data type` apropiado en el desplegable, que coincida con el tipo de la variable del servidor.
6. Ejecuta el escenario o controla la escritura con una señal lógica para que las escrituras ocurran solo cuando lo desees.

## 💡 Consejos y trucos

* Usa el bloque `OPC UA Client` junto con este bloque para gestionar el ciclo de vida de la conexión y reutilizar el mismo cliente para lecturas y escrituras.
* Combínalo con el bloque `OPC UA Read` para verificar valores actuales antes de escribir o para implementar flujos de read-verify-write.
* Usa un bloque `Logic Input` para disparar escrituras solo cuando se cumpla una condición (por ejemplo, al pulsar un botón o cuando una medición exceda un umbral).
* Guarda o registra valores con `Data Write Global` / `Data Write Local` o expórtalos con `CSV Export` para mantener un historial de las escrituras.
* Al escribir valores numéricos, selecciona el `Data type` entero/float correspondiente para evitar errores de conversión en el servidor.

## 🛠️ Solución de problemas

* Sin cliente proporcionado: asegúrate de que la entrada `Client` esté conectada (usa el bloque `OPC UA Client`).
* Errores de conexión: confirma que el bloque OPC UA Client muestra una conexión exitosa al servidor antes de intentar escribir.
* Dirección incorrecta: verifica que la cadena en `Node Address` sea exactamente la dirección esperada por el servidor.
* Incompatibilidad de tipos: si el servidor rechaza el valor, prueba a cambiar el `Data type` al tipo exacto de la variable objetivo (por ejemplo, Float vs Double, tamaño entero correcto).
* Controlar escrituras no deseadas: regula la entrada con un bloque `Logic Input` u otros bloques lógicos para que las escrituras ocurran únicamente cuando se pretendan.
