Vous êtes sur la page 1sur 4

MODBUS ASCII

Además las comunicaciones MODBUS se pueden realizar en modo ASCII o en modo RTU. En
modo ASCII los bytes se envían codificados en ASCII, es decir, que por cada byte a transmitir
se envian dos caracteres ASCII ( 2 bytes ) con su representación hexadecimal ( esto permite
leer las tramas con un simple editor de texto ).
En el modo ASCII las tramas comienzan por 3AH (carácter ':'), y terminan en 0DH-0AH (CR LF
Carrier Return Line Feed) y cada byte se envía como dos caracteres ASCII.

Modo ASCII Modo RTU


Carácteres ASCII ‘0’…’9’,’A’….’F’ Binario 0…255
Comprob. Error LRC Longitudinal Redundancy check CRC Cyclic Redundancy Check
Inicio de trama Carater ‘:’ 3.5 veces t de carácter
Final de trama Character CR/CL 3.5 veces t de carácter
Distancia max. entre caracteres 1 seg 1.5 veces t de carácter
Bit de inicio 1 1
Bits de datos 7 8
Paridad Par / Impar / Ninguna Par / Impar / Ninguna
Bits de parada 1 si hay paridad 2 si ninguna 1 si hay paridad 2 si ninguna
Codificación ASCII ( formato texto ):
-Inicio de trama: 2 caracteres ASCII ( que representan 1 byte ) codificando el caracter “:”
(0x3A)
-NºEsclavo: 2 caracteres ASCII ( que representan 1 byte ) codificando la dirección del esclavo
destino ( o origen ) de la trama
-Código Operación: 2 caracteres ASCII ( que representan 1 byte ) con el código de operación
-Dirección, datos y subfunciones Datos: con los parámetros necesarios para realizar la
operación.
-LRC(16): H L
-Final de trama: 4 caracteres ASCII ( que representan 2 bytes ) con los caracteres CR (0x0D) -
LF (0x0A)
Control de errores LRC : Se utiliza un sistema de detección de errores para la codificación
ASCII es el checksum ( o Longitud Redundancy Check LRC ) en módulo 16 expresado en
ASCII ( 2 caracteres representan 1 byte ), sin considerar el ":" ni el “CR LF” de la trama.

El siguiente es un ejemplo en modo ASCII y RTU de petición de lectura de 3 registros del esclavo y la
correspondiente respuesta :
-PETICION de 3 datos:
Nombre del campo Ejemplo ( HEX ) Caracteres ASCII 8bits modo RTU
Cabecera : Ninguno
Dirección esclavo 06 “06” 0000 0110
Función 03 “03” 0000 0011
Direccion inicio Hi 00 “00” 0000 0000
Direccion inicio Lo 6B “6B” 0110 1011
Num de Registros Hi 00 “00” 0000 0000
Num de Registros Lo 03 “03” 0000 0011
Error Check LRC ( 2 caracteres ) CRC (16 bits)
Fin de trama CR LF Ninguno
Total: 17 bytes 8 bytes

-RESPUESTA con los 3 datos:


Nombre del campo Ejemplo (HEX) Caracteres ASCII 8bits modo RTU
Cabecera : Ninguno
Dirección esclavo 06 “06” 0000 0110
Función 03 “03” 0000 0011
Numero de bytes de datos 06 “06” 0000 0110
Dato 0 Hi 02 “02” 0000 0010
Dato 0 Lo 2B “2B” 0010 1011
Dato 1 Hi 00 “00” 0000 0000
Dato 1 Lo 00 “00” 0000 0000
Dato 2 Hi 00 “00” 0000 0000
Dato 2 Lo 63 “63” 0110 0011
Error Check LRC (2 caracteres ) CRC (16 bits)
Fin de trama CR LF ninguno
Total: 23 bytes 11 bytes

MODBUS ASCII
MODBUS (juego de palabras entre Modicon y bus de datos. Protocolo de Comunicación)

ASCII (Código Estándar Estadounidense para el Intercambio de Información)

La comunicación entre los dispositivos se hace por medio de caracteres ASCII.


MODBUS ASCII
Código estándar americano para el intercambio de información (en inglés, American Standard
Code for Information Interchange) es un protocolo de comunicaciones que representa caracteres
alfanuméricos (letras, números y algunos caracteres gráficos y de control).

4.1.3. MODBUS ASCII Los datos se codifican como caracteres ASCII entre el "0" (16#30) y el "9"
(16#39) y entre "A" (16#41) y "F" (16#46). Por ejemplo, si se requiere enviar el byte de valor
16#FF, se tiene que enviar la cadena "FF", por lo que realmente se enviarían dos bytes: 16#46 y
16#46. Además se utilizan 3 caracteres especiales. El carácter ":" (16#3A) se emplea para marcar el
comienzo de la trama y el par Práctica 3. Comunicación con RS-485 y MODBUS Automatización
Avanzada – 11/10/2011 - 22 - de caracteres no imprimibles "CRLF" (16#0D, retorno de carro, y
16#0A, salto de línea) se emplean como delimitador del fin de la trama. Este formato tiene dos
grandes ventajas. Primero, ofrece una facilidad de detección del principio y del fin de trama
gracias a los campos de inicio y fin (caracteres ":" y "CRLF"), con independencia de los tiempos de
la transmisión del canal de comunicación. Segundo, permite trabajar con equipos de
procesamiento lento sin tener que bajar la velocidad de comunicación siempre que tengan buffers
de almacenamiento de los datos recibidos. Los inconvenientes son que requiere un mayor ancho
banda que MODBUS RTU para el envío de la misma petición o respuesta, o visto de otra manera,
para el mismo ancho de banda, el envío de una trama con ASCII es más lento que con RTU.
Modbus permite el control de una red de dispositivos, por ejemplo un sistema de medidas de
temperatura y humedad, y comunicar los resultados a un ordenador.