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.
| Modo | Estructura del mensaje | Comprobar |
|---|---|---|
| Modbus RTU | Dirección + Código de función + Datos + CRC | Configuración serie, dirección y temporización de tramas |
| Modbus ASCII | Codificación ASCII con LRC y caracteres definidos de inicio y fin | Configuración serie, codificación y LRC |
| Modbus TCP | Cabecera MBAP + Código de función + Datos; sin CRC adicional de RTU | IP, 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ón | Mensaje unicast serie normal |
|---|---|
| Controlador → Dispositivo | Dirección | Código de función | Datos | CRC (RTU) / LRC (ASCII) |
| Dispositivo → Controlador | Dirección | Código de función | Datos | CRC (RTU) / LRC (ASCII) |
| Código de función (hex) | Operación |
|---|---|
| 01 | Leer bobinas |
| 02 | Leer entradas discretas |
| 03 | Leer registros de retención |
| 04 | Leer registros de entrada |
| 05 | Escribir una bobina |
| 06 | Escribir un registro |
| 0F | Escribir varias bobinas |
| 10 | Escribir varios registros |
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.