Modbus RTU es un protocolo abierto serie (RS-232 o RS-485) derivado de la arquitectura Maestro/Esclavo, Es un protocolo ampliamente aceptado debido a su facilidad de uso y confiabilidad, Modbus RTU se usa ampliamente en sistemas de gestión de edificios (BMS) y sistemas de automatización industrial (IAS), Esta amplia aceptación se debe en gran parte a la facilidad de uso de MODBUS RTU.

Los mensajes MODBUS RTU son un simple CRC de 16 bits (suma de comprobación redundante-cíclica), la simplicidad de estos mensajes es garantizar la fiabilidad, debido a esta simplicidad, la estructura básica del registro MODBUS RTU de 16 bits se puede utilizar para empaquetar en coma flotante, tablas, texto ASCII, colas y otros datos no relacionados.

modbusrtu_diagrama

MODBUS se considera un protocolo de mensajería de capa de aplicación, que proporciona comunicación Maestro/Esclavo entre dispositivos conectados entre sí a través de buses o redes, en el modelo OSI, MODBUS se ubica en el nivel 7, MODBUS está pensado para ser un protocolo de solicitud/respuesta y brinda servicios especificados por códigos de función,

Los códigos de función de MODBUS son elementos de las PDU de solicitud/respuesta de MODBUS (Unidad de datos de protocolo).

Para construir la unidad de datos de la aplicación MODBUS, el cliente debe iniciar una transacción MODBUS, es la función que informa al servidor sobre qué tipo de acción realizar, el formato de una solicitud iniciada por un Maestro es establecido por el protocolo de aplicación MODBUS, el campo de código de función se codifica en un byte, solo los códigos dentro del rango de 1 a 255 se consideran válidos, con 128-255 reservados para respuestas de excepción, cuando el Maestro envía un mensaje al Esclavo, es el campo de código de función el que informa al servidor sobre qué tipo de acción realizar.

Para definir múltiples acciones, algunas funciones tendrán códigos de subfunción añadidos, por ejemplo, el Maestro puede leer los estados de ENCENDIDO/APAGADO de un grupo de salidas o entradas discretas, también podría leer/escribir el contenido de los datos de un grupo de registros MODBUS, cuando el Maestro recibe la respuesta del Esclavo, el campo del código de función es usado por el Esclavo para indicar una respuesta sin errores o una respuesta de excepción, el esclavo se hace eco de la solicitud del código de función inicial en el caso de una respuesta normal.

Propiedades del objeto de datos

Los paquetes MODBUS RTU solo están destinados a enviar datos; no tienen la capacidad de enviar parámetros como el nombre del punto, la resolución, las unidades, etc… si se necesita la capacidad de enviar dichos parámetros, se debe investigar un BACnet, EtherNet/IP u otros protocolos modernos.

MODBUS RTU contra otros protocolos

A pesar de las limitaciones de MODBUS RTU, todavía hay muchas buenas razones por las que todavía es un competidor entre otros protocolos de automatización industrial, por un lado, MODBUS RTU es mucho más fácil de implementar que los protocolos más nuevos y es una fuerza dominante en el mercado, MODBUS RTU también requiere significativamente menos memoria, para implementar MODBUS RTU, puede ajustar el tamaño necesario de 2Kb en una pequeña CPU de 8 bits o procesador PIC, mientras que con BACnet y EtherNet/IP, puede requerir 30-100Kb de memoria.

Requisitos de dirección de RTU de MODBUS

Las direcciones de nodo estándar de MODBUS RTU son 1-254, con 0 reservado para mensajes de difusión y escritura solamente, sin embargo, la dirección 0 rara vez se usa debido a que no hay confirmación de que el mensaje se haya recibido correctamente en el nodo esclavo, esto no tiene mucho efecto si su capa física es RS-232, ya que de todos modos solo se puede implementar un nodo, RS-485 limita el número de nodos a 32, aunque algunos controladores le permitirán ampliar la cantidad.

La diferencia entre MODBUS RTU y MODBUS TCP

La diferencia más básica entre MODBUS RTU y MODBUS TCP (también conocido como MODBUS IP, MODBUS EtherNet y MODBUS TCP/IP) es que MODBUS TCP se ejecuta en una capa física de Ethernet y Modbus RTU es un protocolo de nivel serial, Modbus TCP también utiliza un encabezado de 6 bytes para permitir el enrutamiento.

Estructura de bits en el byte


El bit de menor importancia se envía y se recibe primero, todos los dispositivos dentro de la red deben interpretar cada byte transmitido de manera análoga de esta manera, no hay métodos para el reconocimiento automático de las velocidades en baudios que no están asignados y la misma velocidad en baudios debe ser utilizada por el servidor, así como por todos los clientes conectados al bus, MODBUS no especifica ninguna velocidad de transmisión específica: las velocidades de transmisión típicas son 9600 o 19200.

Un byte transmitido se codifica como: valor binario de 8 bits, hexadecimal 0 - 9 y A - F. El bit menos significativo se envía y se recibe primero
Un byte transmitido se codifica como: valor binario de 8 bits, hexadecimal 0 – 9 y A – F. El bit menos significativo se envía y se recibe primero

Mapa de memoria MODBUS RTU


Tipo de datos Modbus RTU
Nombre
comun
Dirección de inicio
Bobinas de modbus Bits, valores binarios, banderas 00001
Entradas digitales Entradas binarias 10001
Entradas analógicas Entradas binarias 30001
Registros modbus Valores analógicos, variables. 40001

La diferencia entre MODBUS RTU y MODBUS/ASCII

Hay dos modos de transmisión básicos que se encuentran en las conexiones serie MODBUS, ASCII y RTU, estos modos de transmisión determinan la forma en que se codifican los mensajes MODBUS, en formato ASCII, los mensajes son legibles, mientras que en RTU los mensajes están en codificación binaria y no pueden leerse mientras se monitorean, la compensación es que los mensajes RTU son de menor tamaño, lo que permite un mayor intercambio de datos en el mismo intervalo de tiempo, se debe tener en cuenta que todos los nodos dentro de una red MODBUS deben estar en el mismo modo de transmisión, lo que significa que MODBUS ASCII no puede comunicarse con MODBUS RTU y viceversa.

En MODBUS/ASCII, los mensajes se codifican con valor hexadecimal, representados con caracteres ASCII completos, Los caracteres utilizados para esta codificación son 0 … 9 y A … F, para cada byte de información, se usan dos bytes de comunicación porque cada byte de comunicación solo puede definir 4 bits en el sistema hexadecimal, MODBUS RTU, sin embargo, intercambia datos en formato binario donde cada byte de datos se codifica en un byte de comunicación.

Los mensajes MODBUS en una conexión en serie no se transmiten en formato plano, Están construidos de una manera que permite a los receptores una forma fácil de detectar el principio y el final de un mensaje, los caracteres comienzan y terminan un marco cuando están en modo ASCII, para marcar el inicio de un mensaje, se usan dos puntos ‘:’, y cada mensaje termina con una combinación CR/LF, MODBUS RTU utiliza un método diferente, en RTU, el encuadre se construye midiendo huecos de silencio en la línea de comunicación, antes de cada mensaje, debe haber un espacio mínimo de 3.5 caracteres, Para prepararse para nuevos mensajes, el receptor borra el búfer cuando se detecta un espacio de 1.5 caracteres, una de las principales diferencias entre MODBUS/ASCII y MODBUS RTU es que ASCII permite espacios entre los bytes de un mensaje con una longitud máxima de 1 segundo, Con MODBUS RTU, deben enviarse flujos continuos de mensajes.

Propiedades de Modbus / ASCII y Modbus / RTU

MODBUS / ASCII MODBUS / RTU
Caracteres ASCII 09 y A .. F Binario 0255
Comprobación de errores Control de redundancia longitudinal LRC Verificación de redundancia cíclica CRC
Inicio del cuadro carácter ‘ : Silencio de 3.5 caracteres
Extremo del marco personajes CR / LF Silencio de 3.5 caracteres
Lagunas en el mensaje 1 segundo 1.5 veces la longitud de char
Bit de inicio 1 1
Bits de datos 7 8
Paridad par / impar ninguna par / impar ninguna
Bits de parada 1 2 1 2

 

Para obtener información sobre nuestros productos, por favor visita nuestra pagina web Logicbus

¿Desea agregar Modbus RTU a su proyecto?

Ver Soluciones Modbus RTU.

Contáctanos

ventas@logicbus.com | soporte@logicbus.com | 55-5431-67-18 | Iniciar conversación

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *