Software Modbus para pruebas y depuración.

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 sirve para conectar equipos de varios tipos a una computadora doméstica también. 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 esto asegura el crecimiento de la popularidad de Modbus entre los aficionados y profesionales.

En este artículo, cubriremos las características clave de las soluciones de software y hardware existentes para probar y depurar dispositivos y redes basados 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. Desarrollando y probando dispositivos Modbus
  3. Depuración de sistemas de automatización basados en dispositivos Modbus
  4. Desafíos de comunicación Modbus

Sobre el protocolo Modbus


Modbus es un protocolo común utilizado en sistemas de automatización en los 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.

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

Modbus protocol

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

El protocolo Modbus se implementa utilizando una relación maestro-esclavo. Eso significa que la comunicación siempre es iniciada por 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, llamada trama, en la que el tiempo entre bytes se estandariza dependiendo 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 silencioso de al menos 3,5 veces.

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

Protocolo Modbus

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

El formato de un mensaje de respuesta:

Protocolo Modbus

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

En caso de que el dispositivo esclavo no admita la función solicitada o los argumentos en el campo [args] de la solicitud son incorrectos para este servidor, en el campo FN de la respuesta, el bit alto se establecerá en 1 y el campo 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 lo siguiente:

Campo Acceso Talla Descripción
Entradas discretas
solo leyendo
1 bit
utilizado como entradas
Salidas de bobinas
leyendo escribiendo
1 bit
usado para controlar discreto
Registros de entrada
solo leyendo
16 bit
utilizado para entrada
Manteniendo registros
leyendo escribiendo
16 bit
Se utiliza para una variedad de cosas, incluyendo 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 tener en cuenta es que el protocolo permite la transmisión de datos desde múltiples dispositivos que serán recibidos por un único servidor o controlador que tenga instalado un controlador Modbus. Una aplicación en serie puede controlar el puerto de comunicación de un servidor (por ejemplo, COM1) ya que recibe datos Modbus de múltiples sensores.

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

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

Pruebe Virtual Serial Port Driver Pro ahora
14-day free trial

Ahora puede duplicar el flujo de datos que entra en un puerto físico en múltiples puertos virtuales. Al conectar varias aplicaciones a copias virtuales de su puerto COM1, todas las aplicaciones pueden lograr acceso compartido a su puerto físico.

Desarrollando y probando dispositivos Modbus


Al desarrollar y depurar dispositivos Modbus RTU, los expertos utilizan software especializado y herramientas de hardware. En cuanto a los dispositivos de hardware, la solución más simple será el 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 su ensamblaje. También hay soluciones más complejas como Ethernet/RS-485 (por ejemplo, NPORT de MOXA).

En la práctica, cuando se trata del desarrollo de dispositivos Modbus RTU, la función esclava se implementa con mayor 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.

No consideraremos el desarrollo de la pila Modbus en este artículo. Lo único que vale la pena mencionar es la biblioteca FreeMODBUS, sobre la base de 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 software y hardware 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 la que un dispositivo recibe una solicitud y responde a ella (esto puede indicarse mediante los LED de recepción/transmisión de paquetes, si tales elementos se proporcionan en el diseño, o se detectan mediante el uso de un depurador y configuración un punto de interrupción) pero los datos no se muestran en el terminal u otro programa especializado. En este caso, necesitará un sniffer de puerto serie dedicado.

Serial Port Monitor es uno de los mejores software de monitoreo Modbus disponible en la actualidad. Esta solución Modbus puede leer y grabar fácilmente cualquier dato en 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 que han sido detectados.

Serial Port Monitor puede funcionar en el modo de terminal que emula la transferencia de datos desde un puerto COM monitoreado a un dispositivo insertado en él. Esta opción es especialmente conveniente para la prueba de comunicación Modbus, ya que permite observar la reacción de un dispositivo en particular a un comando y datos específicos.

Modbus Tester por 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 requiere no solo verificar si un dispositivo funciona (es decir, responder correctamente a las solicitudes) sino también medir el tiempo hasta el fallo.

La solución de prueba Modbus permite registrar las secuencias de datos entrantes y salientes. Además, todos los datos recopilados se pueden mostrar en diferentes vistas (tabla, línea, volcado, terminal), lo que simplifica la comparación y el 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 aquellos 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 en serie utilizando el convertidor RS-485/USB, una PC y un software o terminal especializado. En este caso, no es necesario realizar pruebas largas 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 las utilizadas en la etapa de prueba del desarrollo del dispositivo esclavo.

En caso de que ya tenga una red de dispositivos preparada, se pueden distinguir las siguientes tareas:

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

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

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

Desafíos de comunicación Modbus


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

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

En este caso, será una buena idea usar 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 dichos 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 , 9.16MB tamaño
Versión 7.0.342 (16/01/2018) Notas de la versión
Categoría: Serial Port Software