Cookie
Electronic Team, Inc. uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.

Tutorial avanzado de Modbus ASCII

Olga Weis Olga Weis

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. Originalmente fue diseñado para ser utilizado con los controladores lógicos programables (PLC) de la empresa. 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 integrarlo a sus productos sin cargo ha ayudado a convertirlo en el método más popular para conectar dispositivos electrónicos industriales.

Hay dos principales formas de transmisión utilizados cuando se emplea 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 que es adecuado para las implementaciones ASCII y RTU del protocolo.

Modbus aborda el problema 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 solicita la información al resto de los dispositivos. Hay un maestro Modbus en una red Modbus estándar.

Modelo maestro/esclavo Modbus

El maestro solicita información a los dispositivos esclavos, que pueden ser hasta 247. Cada dispositivo esclavo se identifica mediante una dirección de esclavo de entre 1 y 247. El proceso mediante el cual el maestro consulta al esclavo y recibe la información devuelta por el esclavo es lo que se entiende por comunicación Modbus. Además de solicitar información al 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 indicado por un voltaje negativo y un cero representado con un voltaje positivo.

El protocolo Modbus define los códigos de función y el esquema de codificación para transferir los 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 valores discretos de encendido o apagado y dos registros que almacenan valores numéricos. En el caso de Modbus ASCII, los mensajes se transmiten utilizando el juego de caracteres ASCII, lo que los hace más fáciles de leer para los ojos humanos.

¿Cómo probar la comunicación Modbus ASCII con el Analizador de Modbus?


Si trabaja con dispositivos serie y el protocolo Modbus, es muy probable que en algún momento deba realizar una depuración o supervisión de la transmisión de los datos serie. Modbus Analyzer es una aplicación de software dedicada desarrollada por Electronic Team, Inc. que se puede utilizar para analizar y diagnosticar la transmisión de datos que viajan 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 345+ usuarios, Comentario(345)
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 ayudarle, veamos los datos Modbus ASCII y el formato de mensaje.

Formato de datos Modbus ASCII


Modbus ASCII utiliza el juego de caracteres ASCII para representar los 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 del mensaje Modbus ASCII


El formato de los mensajes Modbus ASCII consta de un carácter de inicio que son dos puntos “:” y el final del mensaje definido por un retorno de carro y un salto de línea. 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.

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

Esta herramienta le permite:

  • Analizar la actividad del puerto serie - puede abrir cualquier puerto serie en su sistema incluso si ya lo está utilizando 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 a la vez - 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 individualmente o combinadas para obtener más información sobre sus datos. Los modos de tabla, línea, volcado y terminal le permiten ver sus datos de la manera que se adapte mejor 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 los 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 los que trabajan con dispositivos serie y el protocolo Modbus.

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


Tanto Modbus ASCII como RTU fueron lanzados como parte de la especificación original del protocolo Modbus. Las dos variaciones utilizan 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.

El principal factor de diferenciación es que Modbus RTU emplea codificación binaria donde Modbus ASCII, como el nombre indica, usa el juego de caracteres ASCII. Modbus RTU realiza la comprobación de errores mediante el método CRC estricto, mientras que Modbus ASCII utiliza el método de comprobación de errores LRC menos eficaz. El formato de datos también es ligeramente diferente, ya que la variación RTU usa un bit de inicio, 8 bits de datos y un bit de parada en comparación con el 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 permite una transmisión más eficiente que la alternativa de caracteres ASCII. Al elegir entre Modbus RTU y ASCII, RTU es la mejor opción si se tiene en cuenta el rendimiento.

Modbus ASCII vs TCP


Hay otro tipo 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 comprobación de errores LRC requerida por Modbus ASCII la realiza la capa IP.

¿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 ellos. Pero hay formas de hacer que los dispositivos se comuniquen.

Protocolo Modbus RTU

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

Serial Port Monitor

Requisitos: Windows (32 bits y 64 bits): Vista/7/8/10/11, Windows Server 2008/2012/2016/2019/2022, Windows en ARM , 9.87MB tamaño
Versión 9.5.589 (16/11/2023) Notas de la versión
Categoría: Communication Application