Glosario de Automatización • Modbus RTU vs ASCII

Modbus RTU vs ASCII: modos de transmisión

Ingeniería Merobix • • 5 min de lectura

El Modbus serial define dos modos de transmisión para poner el mismo protocolo en un cable: RTU y ASCII. Transportan códigos de función y datos idénticos, pero los entraman y codifican de forma completamente distinta, y por eso un maestro configurado en RTU no puede hablar con un dispositivo configurado en ASCII aunque ambos sean Modbus. Esta referencia explica cómo entrama cada modo un mensaje, en qué difieren sus sumas de verificación y cuándo un ingeniero se topa con ASCII en el campo en lugar del mucho más común RTU.

Volver al glosario

Modbus RTU vs ASCII en una línea: Modbus RTU y ASCII son los dos modos de transmisión serial del mismo protocolo. RTU envía cada byte como binario compacto, entrama el mensaje por temporización (un silencio antes y después) y lo termina con un CRC de 16 bits. ASCII envía cada byte como dos caracteres hexadecimales imprimibles, entrama el mensaje con dos puntos al inicio y retorno de carro con salto de línea al final, y usa una verificación por redundancia longitudinal más simple. Todos los dispositivos del bus deben coincidir en el modo.

Cómo entrama y codifica RTU un mensaje

En modo RTU cada valor se envía como binario crudo, un byte por byte, así que un byte de registro de ocho bits toma exactamente ocho bits en el cable más los bits de arranque, paro y paridad. No hay caracteres de inicio o fin en los datos. En su lugar, RTU entrama el mensaje con silencio: el receptor trata un hueco de al menos tres caracteres y medio de tiempo como la frontera entre un mensaje y el siguiente, y un hueco de más de aproximadamente un carácter y medio dentro de un mensaje como un error de entramado. Este entramado por temporización es compacto y rápido pero sensible a interrupciones, y por eso el turnaround de RTU y los huecos entre tramas importan en enlaces lentos. El detalle de esos tiempos se cubre en la referencia de retardo de respuesta y turnaround en Modbus serial.

RTU protege cada mensaje con una verificación de redundancia cíclica de 16 bits anexada al final. El transmisor calcula el CRC sobre la dirección, el código de función y los datos, y el receptor lo recalcula y compara. Un desajuste significa que la trama se corrompió en la línea y el receptor la descarta en silencio. Como el CRC atrapa bien los errores en ráfaga y agrega solo dos bytes, RTU es la forma serial dominante en el campo hoy.

Cómo entrama y codifica ASCII un mensaje

El modo ASCII codifica cada byte como dos caracteres hexadecimales imprimibles, así que el byte 0x2F se envía como los caracteres '2' y 'F'. Eso duplica aproximadamente la longitud del mensaje respecto a RTU y hace a ASCII más lento, pero también vuelve legible una captura para una persona, lo que históricamente facilitaba la depuración en terminales simples. Como la carga es texto imprimible, ASCII no necesita temporización para encontrar los límites de mensaje.

En lugar de apoyarse en el silencio, ASCII marca cada mensaje explícitamente: un carácter de dos puntos inicia la trama y un retorno de carro seguido de un salto de línea la termina. Esto significa que ASCII tolera los huecos de temporización que romperían una trama RTU, así que puede sobrevivir en enlaces con latencia irregular donde RTU sufre. Su suma de verificación es una verificación por redundancia longitudinal (LRC), un solo byte calculado sumando los bytes del mensaje, más débil que el CRC de RTU pero más simple de calcular. La comparación de Modbus TCP vs RTU sitúa ambos modos seriales frente a la forma Ethernet.

Cuándo se usa cada modo

RTU es el modo por defecto y la inmensa mayoría del Modbus serial en servicio. Es más rápido a la misma velocidad en baudios, su CRC es más fuerte y todo dispositivo y driver convencional lo soporta. Si está eligiendo un modo para una instalación nueva y ambos extremos soportan RTU, elija RTU.

ASCII sobrevive sobre todo en equipos legados o especializados, en enlaces donde la disciplina de temporización de RTU no se puede cumplir, o donde se desea un protocolo en texto plano para depurar más fácil en hardware limitado. Cuando se encuentre con ASCII, la regla práctica es simplemente que todos los dispositivos del mismo segmento serial deben coincidir en el modo, la velocidad en baudios, los bits de datos, la paridad y los bits de paro. Un solo dispositivo configurado en otro modo de transmisión parecerá muerto para el resto del bus, porque ni siquiera puede encontrar los límites de trama, mucho menos los datos.

Preguntas frecuentes

¿Pueden dispositivos RTU y ASCII compartir el mismo bus serial?

No. El modo de transmisión es una propiedad de todo el segmento, no de una solicitud individual. Un dispositivo en ASCII entrama los mensajes con dos puntos y CR-LF y espera hexadecimal imprimible, mientras que un dispositivo RTU entrama por temporización y espera binario, así que ninguno puede interpretar el tráfico del otro. Todos los dispositivos de un mismo segmento RS-485 deben usar el mismo modo, la misma velocidad en baudios y los mismos parámetros seriales.

¿Por qué ASCII usa dos puntos al inicio de cada mensaje?

Como ASCII no usa temporización para encontrar los límites de trama, necesita un marcador explícito. Los dos puntos (hex 3A) señalan el inicio de un mensaje y el par retorno de carro con salto de línea señala el final. Eso es lo que permite a ASCII tolerar los huecos de temporización entre bytes que romperían una trama RTU, a costa de duplicar aproximadamente la longitud del mensaje.

¿La suma de verificación de ASCII es más débil que la de RTU?

Sí. ASCII usa una verificación por redundancia longitudinal, un chequeo de un solo byte basado en suma, mientras que RTU usa un CRC de 16 bits. El CRC atrapa errores en ráfaga con mucha más confiabilidad, que es una de las razones por las que se prefiere RTU aunque ASCII sea más fácil de leer. Si un enlace es ruidoso, el CRC de RTU da mejor protección contra corrupción no detectada.

Fuentes y lecturas

Referencias primarias de los organismos de normas y reguladores que definen este tema:

Más en Protocolos industriales
Causa de transmisión (COT)  •  Tabla de causas de transmisión IEC 60870-5  •  Corregir errores CRC de Modbus RTU  •  Modbus TCP vs Modbus RTU  •  ADU vs PDU en Modbus  •  Todo en Protocolos industriales →
Capacitación SCADA gratuita para operadores
Merobix University - 70 lecciones en video y 261 preguntas de examen, del primer inicio de sesión a los reportes de cumplimiento (contenido en inglés). Sin llamada de ventas.
Comenzar gratis →