Home >internet de las cosas industrial>internet de las cosas industrial
ModBus RTU, ASCII, TCP, qué modo es mejor?


 

ModBus es un protocolo de comunicación utilizado para conectar equipos de automatización (como PLC, controlador de temperatura, etc.) y computadoras. Se utiliza ampliamente en sistemas de control industrial y admite una variedad de métodos de comunicación, incluidos ModBus RTU, ModBus ASCII y ModBus TCP. Este artículo explicará principalmente las diferencias y los escenarios de aplicación de estos tres métodos de comunicación.

 

 

Estructura básica de todos los protocolos ModBus.

 

Independientemente de la variante, todas las comunicaciones ModBus estándar siguen la misma estructura de mensajería. Todo gira en torno a almacenar valores en registros y luego leerlos. Hay varios tipos de datos en juego aquí.

 

Por ejemplo, las entradas discretas se pueden almacenar como bits individuales. En términos más generales, los registros de entrada almacenan valores recopilados por dispositivos basados en ModBus. Varios dispositivos discretos se almacenan como bits únicos, mientras que los valores analógicos o incluso los caracteres ASCII se pueden almacenar en registros de 8 bits (el bit menos significativo es 0 bits, el bit más significativo es 64 bits).

 

Los diferentes tipos de registros se clasifican según el código de función utilizado para sondearlos. "1" en el campo del código de función se utiliza para "leer la bobina" (verificar el estado del relé de control). "2" significa "leer entrada discreta" (verifique el estado de la entrada discreta). "3" es "registro de retención de lectura" (recopila datos del registro de lectura/escritura multipropósito). Hay más en la especificación ModBus. Un registro se solicita por su "dirección inicial", que es un valor de 16 bits que identifica de forma única cada registro en el dispositivo. Las solicitudes maestras a una RTU u otro dispositivo siempre harán referencia al registro requerido para ser reportado.


ModBus RTU、ASCII、TCP

 

Modbus RTU

 

ModBus RTU (Unidad terminal remota) es la implementación más común del protocolo ModBus. Utiliza transmisión de datos binarios y tiene una alta eficiencia y estabilidad de transmisión. Utiliza comunicación en serie y admite interfaces RS232 y RS485. En modo RTU se pueden transmitir dos caracteres hexadecimales por byte. Por ejemplo, 0xAB se enviará directamente como 0xAB hexadecimal (10101011 binario). Su formato de marco de mensaje consta de las siguientes partes:

ModBus RTU


El modo RTU utiliza una verificación CRC de 16 bits y los comandos/datos posteriores tienen una suma de verificación de redundancia cíclica. El modo RTU se usa más comúnmente, mientras que ASCII generalmente rara vez se usa.

 

 

 

ModBus TCP

 

ModBus TCP (Protocolo de control de transmisión) es una extensión del protocolo ModBus. Utiliza el protocolo TCP/IP para la comunicación y puede transmitir datos entre una red de área local (LAN) y una red de área amplia (WAN). ModBus TCP admite una variedad de dispositivos de red, incluidos ordenadores, servidores, conmutadores, enrutadores, etc. Es adecuado para monitoreo y control remoto y se usa comúnmente en redes industriales y aplicaciones de IoT. La capa física, la capa de enlace de datos, la capa de red y la capa de transporte de este protocolo se basan en el protocolo TCP. Solo encapsula el protocolo ModBus en la capa de aplicación. Luego, el extremo receptor descomprime el paquete de datos TCP, recupera la trama ModBus original y luego lo analiza de acuerdo con la especificación del protocolo ModBus, vuelve a encapsular el paquete de datos devuelto en el protocolo TCP y lo envía de regreso al extremo emisor. A diferencia del formato de transmisión de la comunicación en serie, el modo TCP elimina la dirección adicional y la suma de verificación y agrega un encabezado de mensaje, como se muestra en la siguiente figura.

ModBus TCP


Cuando se transmite a través de Ethernet, el modo TCP se utiliza sin verificación, porque el protocolo TCP es un protocolo confiable orientado a la conexión.

 

Siendo ModBus RTU y ModBus TCP las dos variantes principales del protocolo ModBus, ModBus RTU (el que necesita transmitir información al maestro ModBus o SCADA HMI) ha sido utilizado tradicionalmente por muchos tipos diferentes de dispositivos. ModBus RTU generalmente se envía en serie a través de RS485. Este canal de comunicación en cadena permite que varios dispositivos informen a un único puerto HMI en una configuración maestro-esclavo. Cada dispositivo esclavo puede hablar enviando tráfico al dispositivo maestro. Esto mantiene la estructura de la red ModBus bastante simple.

 

 

Modbus ASCII

 

ModBus ASCII (Código estándar americano para el intercambio de información) utiliza código ASCII para transmitir información de texto y cada byte de 8 bits se envía como dos caracteres ASCII. En comparación con ModBus RTU, su eficiencia de transmisión es menor, pero tiene mejor legibilidad. ModBus ASCII también utiliza comunicación en serie y admite interfaces RS232 y RS485, lo que es adecuado para comunicaciones a corta distancia. En el modo ASCII, cada byte de 8 bits se divide en dos caracteres ASCII para su transmisión. El marco del mensaje comienza con dos puntos en inglés ":" y termina con un símbolo de retorno de carro y avance de línea (CRLF). Por ejemplo, el número hexadecimal 0xAB se descompondrá en los caracteres ASCII "A" y "B" para su transmisión.

ModBus ASCII


El modo ASCII permite un intervalo de hasta 1 segundo entre dos caracteres sin causar fallas de comunicación. El formato ASCII utiliza una suma de verificación de verificación de redundancia longitudinal (LRC).

 

 

La diferencia entre los tres

 

 

La principal diferencia entre ModBus RTU y ModBus TCP es que ModBus RTU utiliza una red en cadena para que toda la red pueda conectarse a través de dos cables y comunicarse con cada dispositivo dándole a cada nodo una dirección única. ModBus TCP utiliza una red en estrella donde cada nodo tiene un cable separado llamado Cat 5 o Cat 6. Se pueden conectar mediante un enrutador. También llevan una dirección personal única para cada nodo de la red. Las direcciones pueden ser de 1 a 255, lo que significa que teóricamente podemos tener 254 dispositivos en una misma red. ModBus TCP también se puede utilizar a través de Internet.

 

En ModBus RTU y ModBus ASCII, la comunicación se realiza a través de la interfaz serie, lo que significa que solo pueden comunicarse en distancias más cortas. Por lo tanto, si necesita comunicarse a distancias más largas, debe utilizar ModBus TCP. Por otro lado, ModBus RTU y ModBus ASCII utilizan códigos binarios y ASCII para la transmisión de datos respectivamente, por lo que existen diferencias en su eficiencia de transmisión y legibilidad. Al elegir un método de comunicación ModBus, se deben considerar una variedad de factores, incluida la distancia de comunicación, la eficiencia de la transmisión y la legibilidad. Para comunicaciones de corto alcance, están disponibles como opciones ModBus RTU y ModBus ASCII. Si necesita una mayor eficiencia de transmisión, puede elegir ModBus RTU; si necesita una mejor legibilidad, puede elegir ModBus ASCII. Para comunicaciones de larga distancia, sólo se puede utilizar ModBus TCP.


Recommend