Mejores utilidades para probar y depurar dispositivos y redes Modbus

Modbus es un protocolo de comunicación comúnmente utilizado en sistemas de automatización industrial, sistemas domésticos inteligentes, redes automatizadas de pequeños objetos (almacenes, invernaderos, etc). El protocolo también sirve para conectar equipos de varios tipos a un ordenador doméstico. El desarrollo de proyectos como Arduino y Raspberry Pi ha aumentado significativamente el interés en tareas relacionadas con la robótica y la automatización. Todo ello asegura el crecimiento de la popularidad de Modbus entre aficionados y profesionales.

En este artículo, veremos las características clave de las soluciones de software y hardware existentes para probar y depurar dispositivos y redes basadas en el protocolo Modbus.

Si está familiarizado con la arquitectura del protocolo, puede ir directamente a la descripción del software Modbus. De lo contrario, a continuación encontrará una breve introducción a Modbus.

Tabla de contenidos:

  1. Sobre el protocolo Modbus
  2. Desarrollo y prueba de dispositivos Modbus
  3. Depuración de sistemas de automatización basados en dispositivos Modbus
  4. Desafíos de la comunicación Modbus

Sobre el protocolo Modbus


Modbus es un protocolo común utilizado en los sistemas de automatización de niveles medio e inferior (campo). El nivel medio es el nivel de los controladores - dispositivos que recopilan datos y controlan el proceso tecnológico. El nivel de campo es el nivel de interacción entre sensores y controladores o sensores y el servidor.

A continuación se muestra la estructura típica de un sistema de automatización que utiliza Modbus como protocolo básico.

Protocolo Modbus

El 'entorno' estándar para el protocolo Modbus es RS485/422/232. Modbus RTU o Modbus ASCII funcionan sobre ellos. En las redes TCP/IP, sin embargo, el protocolo de nivel superior es el protocolo de transporte TCP y esta variante se denomina Modbus TCP. En este artículo, hablaremos sobre el modo de transmisión Modbus RTU.

El protocolo Modbus se implementa en una relación maestro-esclavo. Eso significa que la comunicación siempre la inicia un dispositivo, el maestro, que envía una solicitud a un esclavo (servidor) y espera una respuesta. Siempre hay un maestro en la red y de 1 a 247 esclavos.

El maestro interactúa con los dispositivos esclavos en el formato de solicitud-respuesta. La solicitud contiene una secuencia de bytes, denominada trama, en la que el tiempo entre los bytes está estandarizado en función de la velocidad de transferencia de datos y no supera el intervalo durante el cual se pueden transmitir 1,5 bytes de datos. En el modo RTU, los mensajes comienzan con un intervalo de silencio de al menos 3,5 tiempos de caracteres.

Se envía un mensaje de solicitud con el siguiente formato:

Protocolo Modbus

ID - dirección del dispositivo (1 byte),
FN - función Modbus (1 byte),
[args] - argumentos de la función (N bytes, dependiendo de la función),
CRC - una suma de control CRC-16 (2 bytes).

Formato de un mensaje de respuesta:

Protocolo Modbus

Como puede ver, los marcos de respuesta y solicitud tienen construcciones similares, excepto por el campo Datos, que proporciona contenido diferente según la función realizada.

Si la función solicitada no es compatible con el dispositivo esclavo o los argumentos en el campo [args] de la solicitud son incorrectos para este servidor, en el campo FN de la respuesta el bit superior debe ser establecido en 1 y el campo de datos contener información adicional sobre el error ocurrido.

Además, determinados dispositivos esclavos pueden tener registros específicos con información adicional.

Los tipos de registros a los que se hace referencia en los dispositivos Modbus incluyen los siguientes:

Campo Acceso Tamaño Descripción
Entradas Discretas
solo lectura
1 bit
utilizado como entradas
Salidas de Bobinas
lectura/escritura
1 bit
utilizado para control discreto
Registros de entrada
solo lectura
16 bits
utilizado para entrada
Registros de retención
lectura/escritura
16 bits
utilizado para muchas cosas, incluidas entradas, salidas, datos de configuración, etc.

La descripción completa del protocolo Modbus RTU se proporciona en su especificación funcional.

Al configurar una red Modbus, un punto a considerar es que el protocolo permite la transmisión de datos desde múltiples dispositivos que serán recibidos por un solo servidor o controlador con un driver Modbus instalado. Una aplicación serie puede controlar el puerto de comunicación de un servidor (por ejemplo, COM1) cuando recibe datos Modbus de varios sensores.

Desafortunadamente, existe una limitación, ya que abrir el puerto de recepción en múltiples aplicaciones simultáneamente puede ser un verdadero desafío.

Hay una solución a este dilema. Virtual COM Port Driver PRO de Eltima permite crear puertos RS485 virtuales y dividir los datos Modbus para que múltiples puertos puedan recibir los datos al mismo tiempo.

Pruebe Virtual Serial Port Driver Pro ahora
Prueba gratuita de 14 días

Ahora puede duplicar el flujo de datos que llega a un puerto físico a varios puertos virtuales. Al conectar varias aplicaciones a copias virtuales de su puerto COM1, todas las aplicaciones pueden tener acceso compartido a su puerto físico.

Desarrollo y prueba de dispositivos Modbus


Al desarrollar y depurar dispositivos Modbus RTU, los expertos utilizan herramientas de hardware y software especializadas. En cuanto a los dispositivos de hardware, la solución más sencilla es un convertidor RS485/USB. De todos los dispositivos de este tipo, probablemente la solución más eficiente es MOXA UPORT 1130/UPORT 1150. El dispositivo está diseñado para ser fácil de usar y requiere habilidades mínimas para ser ensamblado. También hay soluciones más complejas como Ethernet/RS-485 (por ejemplo, NPORT de MOXA).

En la práctica, al desarrollar dispositivos Modbus RTU, la función esclava es implementada con más frecuencia. Los dispositivos esclavos incluyen varios sensores, relés controlados, módulos de E/S, etc. Los dispositivos maestros se crean con menos frecuencia. En las redes de automatización, la función maestra generalmente la realiza un controlador, que ya tiene una pila Modbus implementada, o un sistema OPC Server/SCADA equipado con un controlador Modbus.

En este artículo no veremos el desarrollo de la pila Modbus. Lo único que vale la pena mencionar es la biblioteca FreeMODBUS, sobre la cual es bastante fácil construir un dispositivo que admita funciones esclavas Modbus.

Software eficiente para pruebas Modbus


Las pruebas se pueden realizar en diferentes niveles de desarrollo de dispositivos Modbus. Las soluciones de hardware y software de prueba Modbus difieren según la etapa de desarrollo y el propósito de la prueba.

Durante el proceso de desarrollo, puede surgir una situación en que un dispositivo recibe una solicitud y responde a ella (esto puede ser indicado por los LED de recepción/transmisión de paquetes, si dichos elementos se proporcionan en el diseño, o detectados usando un depurador y configurando un punto de interrupción) pero los datos no se muestran en el terminal u otro programa especializado. En este caso, necesita un rastreador de puertos serie dedicado.

Serial Port Monitor es uno de los mejores software de monitoreo Modbus disponibles en la actualidad. Esta solución Modbus puede leer y registrar fácilmente cualquier dato serie que pase por los puertos COM del sistema. La funcionalidad avanzada de la aplicación permite capturar datos en tiempo real para que un desarrollador pueda resolver todos los problemas una vez detectados.

Serial Port Monitor puede trabajar en modo terminal que emula la transferencia de datos desde un puerto COM monitoreado a un dispositivo insertado en él. Esta opción es muy práctica para probar la comunicación Modbus, ya que permite observar la reacción de un dispositivo en particular a un comando y datos específicos.

Modbus Tester de Eltima Software

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

El software dedicado es útil cuando se necesita no solo verificar si un dispositivo funciona (es decir, responder correctamente a las solicitudes) sino también medir el tiempo transcurrido hasta el fallo.

La solución de prueba Modbus permite registrar los flujos de datos entrantes y salientes. Además, todos los datos recopilados se pueden mostrar en diferentes vistas (tabla, línea, volcado, terminal), lo que facilita su comparación y análisis.

Depuración de sistemas de automatización basados en dispositivos Modbus


Hay muchos más especialistas que depuran sistemas y dispositivos de automatización que admiten el protocolo Modbus que los que desarrollan estos dispositivos. Entonces, según los detalles de las tareas, los requisitos para el software Modbus serán ligeramente diferentes.

Si es necesario conectar un controlador a un solo dispositivo esclavo, puede establecer una comunicación serie utilizando un convertidor RS-485/USB, un PC y un software o terminal especializado. En este caso, no es necesario realizar pruebas prolongadas seguidas del análisis de numerosos archivos de registro. Por lo tanto, la lógica de la operación y el conjunto de herramientas no diferirán de los utilizados en la etapa de prueba del desarrollo del dispositivo esclavo.

Si ya dispone de una red de dispositivos, se pueden distinguir las siguientes tareas:

  • comprobar la operatividad de todos los dispositivos de la red (es decir, la comunicación con cada dispositivo por separado y la verificación de la exactitud de su respuesta);

  • prueba de carga (identificación de la capacidad operativa máxima del dispositivo). Se recomienda hacer varias sesiones y analizar los datos recopilados en busca de fallos, no respuestas, corrupción de datos, etc.

Para realizar estas tareas, necesita un terminal con la capacidad de crear una lista de solicitudes o una herramienta especializada como Modbus Poll, un simulador maestro Modbus que permita monitorear varios esclavos Modbus y/o áreas de datos al mismo tiempo.

Desafíos de la comunicación Modbus


Algunos dispositivos Modbus pueden tener configuraciones de interfaz RS-485 particulares (el número de bits de datos, paridad, el número de bits de parada). Dispositivos con diferentes configuraciones no pueden funcionar en la misma red con el mismo maestro. La mejor herramienta para probar y configurar dichos dispositivos es un programa de terminal que admita la conmutación rápida entre los parámetros de puerto preinstalados o que funcione con varias líneas simultáneamente.

Otro desafío es proporcionar el intercambio de datos con un dispositivo que funciona con un protocolo diferente de la especificación estándar de Modbus RTU. Por ejemplo, el protocolo del esclavo puede ser lógicamente similar a Modbus (estructura del paquete, tiempos de espera, etc.) pero usa algunas otras funciones además del estándar.

En este caso, es una buena idea utilizar Modbus Poll, que permite formular solicitudes arbitrarias, o un terminal que admita una funcionalidad similar.

El sistema SCADA estándar no es eficiente para trabajar con tales dispositivos y la comunicación con el equipo se establece a través de un servidor OPC especial.

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