< Volver

Protocolo Modbus: fundamentos de RTU, ASCII y TCP

1. ¿Qué es Modbus y en qué se diferencia de RS-485?

Modbus es un protocolo de mensajería de la capa de aplicación que permite intercambiar datos entre controladores y dispositivos. RS-485 y RS-232 definen interfaces eléctricas. Modbus RTU y ASCII son modos de transmisión serie, mientras que Modbus TCP transporta mensajes Modbus sobre TCP/IP. Disponer de una interfaz RS-485 no significa, por sí solo, que el dispositivo admita Modbus.

En un sistema de control de fluidos, Modbus puede utilizarse para consultar el estado de los equipos o enviar parámetros de control. El manual de comunicación del modelo concreto de controlador debe especificar la compatibilidad, las funciones disponibles y los registros. La interfaz debe confirmarse para cada producto Foreach y su configuración.

2. ¿En qué se diferencian Modbus RTU, ASCII y TCP?

El conector no permite identificar el modo de comunicación. En una conexión serie deben coincidir el modo de transmisión, la velocidad en baudios y la configuración de la trama de caracteres. En TCP hay que comprobar la conexión de red y la configuración del servicio del dispositivo.

ModoEstructura del mensajeAspectos que deben comprobarse
Modbus RTUDirección del dispositivo + Código de función + Datos + CRCParámetros serie, dirección del dispositivo e intervalo entre tramas
Modbus ASCIIMensaje codificado en ASCII con LRC y caracteres definidos de inicio y finParámetros serie, codificación y LRC
Modbus TCPCabecera MBAP + Código de función + Datos; no se añade el CRC de RTUDirección IP, puerto, identificador de transacción e identificador de unidad (Unit Identifier)

3. ¿Cómo funcionan las direcciones serie y el intercambio de solicitudes y respuestas?

En una línea serie Modbus, las direcciones individuales de los servidores (esclavos) van de 1 a 247. La dirección 0 se reserva para difusión y las direcciones 248–255 están reservadas. El cliente (maestro) inicia una solicitud unicast y el dispositivo destinatario responde. Las solicitudes de escritura por difusión no reciben respuesta. Por tanto, un campo de dirección de 8 bits no convierte todos los valores de 0 a 255 en direcciones individuales válidas.

Estas reglas de direccionamiento corresponden a la comunicación serie. Modbus TCP incorpora un identificador de unidad (Unit Identifier) en la cabecera MBAP. Si una pasarela reenvía los mensajes, la interpretación de este campo depende de la implementación del equipo. Consulte su manual antes de aplicar las reglas de direccionamiento serie a una conexión TCP.

4. ¿Cómo interpretar los códigos de función Modbus junto con el mapa de registros?

El código de función identifica el tipo de datos y la operación de lectura o escritura. El campo de datos contiene las direcciones, cantidades o valores correspondientes. Aunque dos dispositivos admitan Modbus, sus mapas de registros pueden ser diferentes.

Antes de la puesta en marcha, compruebe si existe un desfase entre los números de registro del manual y las direcciones iniciales codificadas en los mensajes. Confirme también el tamaño de los datos, la representación con o sin signo, los factores de escala, las unidades y el orden de las palabras en valores que ocupen varios registros. Los valores de velocidad, posición y volumen de líquido tienen significados distintos y no son intercambiables.

Diagrama de solicitud y respuesta unicast de Modbus RTU y ASCII con campos del mensaje y códigos de función hexadecimales habituales
Intercambio serie unicast con respuesta normal y códigos de función Modbus habituales. RTU utiliza CRC y ASCII utiliza LRC. Las solicitudes por difusión no reciben respuesta. El formato TCP se indica en la tabla anterior.
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 figura representa un intercambio serie unicast con respuesta normal. Las solicitudes por difusión no reciben respuesta. Las respuestas de excepción utilizan un código de función de excepción y un código de excepción; no se muestran en la figura. Para TCP se aplica el formato con cabecera MBAP indicado arriba. Las funciones disponibles se especifican en el manual del equipo.

5. ¿Cómo poner en marcha un equipo de control de fluidos con Modbus?

Compruebe primero el cableado y la alimentación; después configure la comunicación según el manual del equipo. Empiece por leer un estado conocido. Verifique la dirección del dispositivo, el código de función y el significado de los datos recibidos antes de probar las escrituras de parámetros y las órdenes de movimiento permitidas.

Verifique por separado la comunicación, la aceptación de la orden, la finalización del movimiento y el volumen realmente suministrado. Una confirmación de escritura no significa que la bomba haya terminado de moverse. Tras un tiempo de espera agotado, consulte el estado antes de repetir una orden de dosificación para evitar suministrar la dosis dos veces.

Registre las solicitudes, las respuestas, los códigos de excepción y las condiciones en las que se agota el tiempo de espera. Para localizar un fallo, compruebe los finales de carrera, la búsqueda de origen, el estado de las válvulas y la secuencia temporal. El manual de comunicación del equipo determina los comandos, las direcciones y las unidades de conteo exactos.

Referencias

Confirme conjuntamente la comunicación y los requisitos de movimiento

Facilite el modelo del controlador, el manual de comunicación, el mapa de registros, el esquema de cableado y la secuencia de movimiento requerida. Antes de integrar el equipo, confirme la interfaz admitida y las unidades de las órdenes.