Tutorial avanzado de Modbus ASCII


Contenido:


  1. ¿Qué es el protocolo Modbus ASCII?
  2. ¿Cómo probar la comunicación Modbus ASCII?
  3. ¿Cuál es la diferencia entre Modbus ASCII y RTU?
  4. Modbus ASCII vs TCP
  5. ¿Cómo convertir Modbus ASCII al protocolo Modbus RTU?

¿Qué es el protocolo Modbus ASCII?


Modbus es un protocolo de comunicación serie desarrollado por la corporación Modicon en 1979. Fue diseñado originalmente para usarlos con los controladores lógicos programables (PLC) de la compañía. Modbus es un protocolo abierto que admite dispositivos serie que utilizan los protocolos RS232/RS485/RS422. Su simplicidad y el hecho de que los fabricantes pueden incorporarlo a sus productos sin cargo han colaborado a convertirlo en el método más popular para conectar dispositivos electrónicos industriales.

Existen dos estilos principales de transmisión utilizados en el protocolo Modbus. Son Modbus RTU y Modbus ASCII. Este artículo pretende ser un tutorial avanzado de Modbus ASCII. Comenzaremos con una descripción general de Modbus, aplicable a las implementaciones ASCII y RTU del protocolo.

Modbus aborda la cuestión del envío de información entre dispositivos electrónicos a través de líneas serie. El protocolo se implementa en una arquitectura que sigue el modelo maestro/esclavo. El maestro Modbus se encarga de solicitar la información a los otros dispositivos. En una Red Modbus estándar hay un maestro Modbus.

Modelo maestro/esclavo Modbus

El maestro solicita la información a los dispositivos esclavos, que pueden ser hasta 247. Cada dispositivo esclavo es identificado con una dirección de esclavo entre 1 y 247. El proceso por el cual el maestro consulta al esclavo y recibe la información del esclavo es lo que se conoce como comunicación Modbus. Además de solicitar información del esclavo, el dispositivo maestro también puede escribir en los registros internos del dispositivo esclavo.

Los datos serie se intercambian entre los dispositivos en flujos de bits, donde cada bit es un voltaje. Los datos binarios se intercambian con un 1 que se representa con un voltaje negativo y un cero, representado por un voltaje positivo.

El protocolo Modbus define los códigos de función y el esquema de codificación para transferir datos como puntos únicos (bobinas de 1 bit) o como registros de datos de 16 bits. Los paquetes de datos se encapsulan según el método de transmisión usado. El protocolo Modbus utiliza cuatro tablas distintas para almacenar los datos en los dispositivos esclavos. Hay dos bobinas que almacenan los valores discretos de encendido o apagado y dos registros que almacenan los valores numéricos. En el caso de Modbus ASCII, los mensajes se envían utilizando el conjunto de caracteres ASCII, lo que los hace más fáciles de leer por los ojos humanos.

¿Cómo probar la comunicación Modbus ASCII con Modbus Protocol Analyzer?


Si trabaja con dispositivos serie y el protocolo Modbus, es posible que en algún momento necesite realizar una depuración o monitorear su transmisión de datos serie. Modbus Analyzer (Serial Port Monitor) es una aplicación de software dedicada desarrollada por Eltima Software que se puede usar para analizar y diagnosticar la transmisión de datos que viaja a través de las interfaces serie de su sistema.

Modbus Protocol Analyzer

Modbus Analyzer una utilidad de sistema profesional y potente para mostrar, registrar y analizar la comunicación Modbus.
Serial Port Monitor logo

Serial Port Monitor

Registrar y analizar la actividad del puerto serie
4.8 Ranking basado en 41+ usuarios, Comentario(75)
Descargar Prueba totalmente funcional por 14 días
Serial Port Monitor

Para apreciar mejor cómo una herramienta de prueba Modbus ASCII como Modbus Protocol Analyzer puede ayudar, veamos los datos Modbus ASCII y el formato del mensaje.

Formato de datos Modbus ASCII


Modbus ASCII utiliza el conjunto de caracteres ASCII para representar caracteres hexadecimales que contienen cada uno 4 bits de datos. Hay 10 bits en cada byte en el modo Modbus ASCII. Consisten en:

  • 1 bit de inicio
  • 7 bits de datos con el bit menos significativo enviado primero
  • 1 bit para completar la paridad
  • 1 bit de parada

Formato de mensaje ASCII Modbus


El formato de los mensajes Modbus ASCII consiste en un carácter de inicio, que es dos puntos ":" y el final del mensaje, que se define mediante caracteres de retorno asintomático y línea de alimentación. Esto permite que el espacio entre los mensajes sea variable y hace que Modbus ASCII sea adecuado para la transmisión a través de ciertos módems.

Un software Modbus Sniffer puede ser muy útil para depurar, monitorear y diagnosticar los problemas de la red Modbus. Se puede utilizar para implementaciones Modbus RTU y ASCII.

Usar esta herramienta le permite:

  • Analizar la actividad del puerto serie - puede abrir cualquier puerto serie en su sistema, incluso si ya está siendo usado por otra aplicación. Utilice la recopilación de datos en tiempo real para diagnosticar rápidamente los problemas de toda la actividad del puerto serie.
  • Monitorear múltiples puertos serie al mismo tiempo - un archivo de registro central contiene todos sus datos monitoreados, en una base de primero en entrar, primero en salir para un análisis más fácil.
  • Ver sus datos en cuatro formatos diferentes - use estas diversas vistas de forma individual o combinadas para obtener una mejor visión de sus datos. Los modos tabla, línea, volcado y terminal le permiten ver sus datos de la manera que mejor se adapte a sus necesidades.
  • Emular la transmisión de datos - puede emular la transmisión de datos a dispositivos serie en varios formatos, como cadena, binario, decimal y hexadecimal.
  • Exportar sus datos monitoreados - puede exportar sus datos a archivos en formato HTML, texto ASCII, texto UNICODE o formato Excel CSV. Se pueden agregar nuevos datos a los archivos guardados previamente.

En definitiva, Modbus Protocol Analyzer es una herramienta esencial para quienes trabajan con dispositivos serie y el protocolo Modbus.

¿Cuál es la diferencia entre Modbus ASCII y RTU?


Tanto Modbus ASCII como RTU se introdujeron como parte de la especificación del protocolo Modbus original. Las dos variaciones usan la misma arquitectura maestro/esclavo y son muy similares. Ambos están diseñados para funcionar con dispositivos serie, pero no son compatibles entre sí debido a las diferencias que veremos a continuación.

La principal diferencia es que Modbus RTU utiliza codificación binaria, donde el apropiadamente llamado Modbus ASCII utiliza el conjunto de caracteres ASCII. Modbus RTU realiza la verificación de errores utilizando el estricto método CRC, mientras que Modbus ASCII usa el método de verificación de errores LRC menos efectivo. El formato de datos también es ligeramente diferente, ya que la variación RTU utiliza un bit de inicio, 8 bits de datos y un bit de parada en lugar del formato de datos ASCII que vimos anteriormente.

La combinación de codificación binaria y verificación de errores CRC hace que Modbus RTU sea adecuado para aplicaciones industriales, ya que ofrece una transmisión más eficiente que la alternativa de los caracteres ASCII. Al elegir entre Modbus RTU vs ASCII, RTU es la mejor opción si se considera el rendimiento.

Modbus ASCII vs TCP


Hay otra versión de Modbus a considerar y es Modbus TCP. Esta es simplemente una implementación de Modbus que se ejecuta en una red TCP/IP. La principal diferencia entre Modbus ASCII y Modbus TCP es que la capa de IP realiza la comprobación de errores LRC que requiere Modbus ASCII.

¿Cómo convertir Modbus ASCII al protocolo Modbus RTU?


Como mencionamos anteriormente, los protocolos Modbus ASCII y Modbus RTU no son compatibles entre sí. Los dispositivos que emplean los dos protocolos no pueden comunicarse directamente entre sí. Pero hay formas de hacer que los dispositivos se comuniquen.

Protocolo Modbus RTU

Para hacerlo, necesita usar una solución de hardware llamada convertidor Modbus ASCII a RTU. Este tipo de dispositivo es básicamente un traductor que lee datos de un dispositivo y luego los almacena internamente en otro protocolo para ser usados por el segundo dispositivo. De esta manera, los dispositivos que utilizan cualquier variación Modbus pueden comunicarse entre sí.

Serial Port Monitor

Requisitos: Windows (32-bit y 64-bit): XP/2003/2008/Vista/7/8/10, Windows Server 2012, Windows Server 2012/2016/2019 , 8.15MB tamaño
Versión 8.0.388 (07/07/2020) Notas de la versión
Categoría: Serial Port Software