Serial Write
Este bloque de función envía datos crudos a través de una conexión serial seleccionada. Está pensado para transmisiones simples y no bloqueantes, y ofrece opciones en la UI para convertir tipos de datos comunes, añadir finales de línea y controlar el comportamiento de reenvío.
📥 Entradas
Enable
Usar para habilitar o deshabilitar el envío. Cuando es false, el bloque no envía datos.
Data
La carga (payload) a enviar. Acepta números, texto, listas, booleanos o valores tipo byte según los controles seleccionados.
ConnId
Identificador de la conexión serial a usar. Proporciona el ConnId generado por un bloque gestor de conexiones.
📤 Salidas
Este bloque de función no produce salidas.
🕹️ Controles
Data Type
Elige cómo se convertirá el valor de Data antes de enviarlo. Opciones comunes: string, integer, float, boolean y formatos byte/hex.
Line ending
Selecciona una secuencia final para añadir al payload. Normalmente incluye opciones como LF, CRLF, CR o ninguno.
Send policy
Elige cuándo transmitir:
On change: solo envía cuando el payload final (en bytes) difiere del último enviado.Always: envía cada vez que el bloque se evalúa y está habilitado.
🎨 Características
Conversión de tipos de datos para formatos comunes: puedes introducir valores legibles y el bloque enviará la secuencia de bytes correspondiente.
Final de línea configurable para ajustarse a las expectativas del dispositivo remoto.
Política de envío para evitar repetir mensajes idénticos cuando no es necesario.
Escritura no bloqueante para que el flujo siga funcionando mientras se transmite la información.
Funciona junto con bloques gestores de conexión que proporcionan valores
ConnId.
📊 Mecanismo de ejecución
Cuando el bloque se evalúa:
Si la entrada
Enableestá inactiva o vacía, no se envía nada.Si hay
DatayConnIdválidos, el bloque convierteDatasegún elData Typeseleccionado y añade elLine endingelegido.Si la
Send policyesOn change, el bloque compara el payload preparado con el payload previo y omite el envío si son idénticos.El payload en bytes preparado se envía a la conexión serial referenciada por
ConnIdsin bloquear el resto del sistema.
📝 Instrucciones de uso
Crea o selecciona una conexión serial y toma nota de su identificador de conexión.
Proporciona ese id en la entrada
ConnId.Alimenta el valor que deseas enviar en la entrada
Data.Ajusta el control
Data Typepara que coincida con tu dato (por ejemplo, usaHexBytespara cadenas hex oBytespara listas de bytes).Elige el
Line endingdeseado si el dispositivo receptor lo espera.Usa
Send policypara evitar reenvíos innecesarios cuando transmites valores constantes.Activa o desactiva el envío con
Enable.
💡 Consejos y trucos
Combínalo con
Serial Connect/ bloques gestores de conexión (el connection manager del sistema) para obtener y gestionar valoresConnId.Usa
String InputoNumber Inputpara preparar y validarDataantes de enviarlo.Preformatea payloads complejos con
String MergeoData to JSONcuando necesites cadenas estructuradas (por ejemplo, mensajes JSON).Si necesitas registrar o exportar los datos enviados, añade
CSV ExportoImage Logger(para registros visuales) aguas abajo en tu flujo.Para envíos condicionales, combínalo con
Logic Input,And,OroGreaterpara controlar las transmisiones.Para puentes de protocolo, empareja con
MQTT PublishoREST API - Postpara reenviar datos seriales a servicios de red.Usa
Debug Inputpara inspeccionar los payloads salientes durante el desarrollo.
🛠️ Resolución de problemas
No se envía nada: verifica que
Enableesté activo, queDatano esté vacío y queConnIdhaga referencia a una conexión activa.El dispositivo receptor ignora los mensajes: comprueba el
Line endingy prueba diferentes opciones (LF, CRLF, CR o ninguno).Mensajes idénticos no se envían cuando se espera: confirma que la
Send policyesté enAlwayssi necesitas reenvíos constantes.Bytes inesperados en la línea serial: asegúrate de que el
Data Typecoincida con el formato del valor que proporcionas (por ejemplo, usaHexBytespara cadenas hex oBytespara listas numéricas).
Última actualización