< Volver

Protocolo Modbus: fundamentos de RTU, ASCII y TCP

1. ¿Qué es Modbus?

Modbus es un protocolo de mensajes de capa de aplicación para intercambiar datos entre controladores y dispositivos. RS-485 y RS-232 son interfaces eléctricas; Modbus RTU, ASCII y TCP definen formatos de mensajes y transporte. Tener RS-485 no implica automáticamente admitir Modbus.

En control de fluidos puede leer estados o transmitir parámetros. La compatibilidad, funciones y registros deben confirmarse en el manual de comunicación del controlador concreto. Este artículo no afirma que todos los productos FOREACH admitan estas interfaces.

2. ¿Cómo se diferencian RTU, ASCII y TCP?

El conector no identifica por sí solo el modo. En serie deben coincidir modo, velocidad en baudios y formato de trama; TCP necesita ajustes de red y servicio compatibles.

ModoEstructura del mensajeComprobar
Modbus RTUDirección + Código de función + Datos + CRCConfiguración serie, dirección y temporización de tramas
Modbus ASCIICodificación ASCII con LRC y caracteres definidos de inicio y finConfiguración serie, codificación y LRC
Modbus TCPCabecera MBAP + Código de función + Datos; sin CRC adicional de RTUIP, puerto, identificador de transacción y Unit Identifier

3. Direcciones serie y solicitud–respuesta

Las direcciones individuales serie son 1–247; 0 corresponde a difusión y 248–255 están reservadas. El controlador inicia normalmente una solicitud unicast y responde el dispositivo direccionado. Las escrituras de difusión no reciben respuesta. Un campo de 8 bits no convierte todos los valores 0–255 en direcciones individuales válidas.

Estas reglas se refieren a enlaces serie. Modbus TCP incluye Unit Identifier en MBAP; su función de encaminamiento por pasarela depende de la implementación. No aplique sin más las reglas serie a toda configuración TCP.

4. Consulte los códigos de función junto con el mapa de registros

El código identifica el tipo de datos y la operación de lectura o escritura; el campo de datos contiene direcciones, cantidades o valores. Dos dispositivos Modbus no necesariamente comparten registros.

Compruebe posibles desplazamientos entre el número de registro del manual y la dirección inicial del mensaje. Confirme anchura, signo, escala, unidades y orden de palabras en valores de varios registros. Velocidad, posición y volumen de líquido no son intercambiables.

DirecciónMensaje unicast serie normal
Controlador → DispositivoDirección | Código de función | Datos | CRC (RTU) / LRC (ASCII)
Dispositivo → ControladorDirección | Código de función | Datos | CRC (RTU) / LRC (ASCII)
Código de función (hex)Operación
01Leer bobinas
02Leer entradas discretas
03Leer registros de retención
04Leer registros de entrada
05Escribir una bobina
06Escribir un registro
0FEscribir varias bobinas
10Escribir varios registros
La tabla representa intercambios unicast serie normales. La difusión no tiene respuesta; las excepciones cambian el significado de función y datos. TCP usa el formato anterior. Un dispositivo no tiene que implementar todas las funciones enumeradas.

5. Puesta en marcha de un dispositivo de control de fluidos

Confirme cableado y alimentación y ajuste la comunicación al manual. Empiece por un estado conocido, verificando dirección, función y datos de la respuesta, antes de probar escrituras permitidas y órdenes de movimiento.

Verifique por separado comunicación, aceptación de orden, movimiento terminado y volumen entregado. Un acuse de escritura no prueba que la bomba haya terminado. Tras un timeout, consulte el estado antes de repetir la dosificación para evitar duplicarla.

Registre solicitudes, respuestas, excepciones y condiciones de timeout. Use límites, referencia de origen, estado de válvulas y secuencia temporal para localizar problemas. Los comandos, direcciones y unidades exactos proceden del manual del dispositivo.

Referencias

AnteriorNo hay noticia anterior
SiguienteNo hay noticia siguiente

Planifique comunicación y movimiento conjuntamente

Facilite modelo del controlador, manual, mapa de registros, cableado y secuencia requerida. Confirme interfaz y unidades de comando antes de integrar.