La frecuencia de actualización de datos Modbus depende de varios parámetros no obvios. En la etapa de diseño, surge el problema de cómo evaluar la velocidad de una línea de interfaz futura. En este artículo, consideraremos los factores que afectan la velocidad de actualización de datos en Modbus RTU, haremos varios cálculos típicos y al final del artículo habrá un enlace a la calculadora web de la velocidad de la línea Modbus RTU.Modbus sigue siendo el protocolo de comunicaciones más utilizado para equipos industriales. Se puede encontrar una descripción del protocolo y las razones de su prevalencia en muchos artículos, por ejemplo aquí . Se entiende además que está familiarizado con los conceptos básicos de cómo funciona el protocolo.Consideraremos Modbus RTU, pero los resultados serán parcialmente aplicables a Modbus TCP.Para calcular la velocidad, comenzamos considerando el protocolo físico (primer nivel del modelo OSI). Modbus RTU utiliza la interfaz física RS-485, RS-422 o RS-232 (esta última prácticamente no se utiliza para Modbus). Para la transmisión de señal, estas interfaces utilizan UART (receptor-transmisor asíncrono universal). Puedes leer más sobre UART aquí .Un paquete estándar de UART consiste en:- bit de inicio) 1 bit
- datos útiles (reunatuna) 7-8 bits
- bit de paridadpagsunaryoty_ _siyot) 0-1 bit
- bit de paradastopags_ _siyot) 1-2 bit
Es decir, por cada 7-8 bits de datos útiles, se transmiten 2-4 bits auxiliares. Tasa de carga útil (Vreunatuna) será inferior a la velocidad de la interfaz (Vtuunart) CalcularVreunatuna puede estar de acuerdo con la fórmula:Vreunatuna=Vtuunart∗reunatunastunart_ _siyot+reunatuna+pagsunaryoty_ _siyot+stopags_ _siyot
A continuación, debe comprender cómo se comunica el maestro Modbus con los esclavos en la capa de enlace de datos (modelo OSI nivel 2). Debido a las peculiaridades de la interfaz física del dispositivo, conectada a la línea de transmisión de datos secuencialmente, es decir, solo un dispositivo en un momento dado puede enviar datos. Debido a esto, el asistente se comunica con los esclavos de forma cíclica, secuencialmente leyendo y escribiendo registros para los esclavos. El ciclo completo de lectura de registros del esclavo se verá así:- demora (mínimo 3.5 caracteres = 28 bits, cuente a continuación en segundos)
- transmisión de solicitud de lectura (8 bytes)
- retraso en la respuesta del dispositivo esclavo (al menos 28 bits, a menudo decenas de milisegundos para formar un mensaje de respuesta)
- transmisión esclava de un mensaje de respuesta (máximo 256 bytes para Modbus RTU).
Algunos ingenieros eligen una versión de cuatro hilos de la interfaz, con la esperanza de una transmisión más rápida (lo que implica una transferencia de datos paralela a la recepción y la transmisión). Obviamente esta solución no funciona. La secuencia de envío de datos será la misma para líneas de cable 2x y 4x.Calculamos el tiempo empleado en un ciclo de lectura completo de 125 registros de retención (el número máximo para Modbus RTU) con los siguientes parámetros de línea:Formato de trama: 8N1 (8 bits de datos, sin bit de paridad, 1 bit de parada)Velocidad uart:Vtuunart= 19200 bit / sVelocidad de transferencia de carga útil:Vreunatuna= 15360 bit / sMaster Delay:metrounastmir_ _syolminorteCmi = 28 bit / Vtuunart(este es el retraso mínimo permitido, generalmente más)Retraso de respuesta del esclavo:slunavmi_ _syolminorteCmi= 0.04 s (el valor depende del dispositivo esclavo)Envío de una solicitud con 125 registros de retención: 8 bytes o 64 bitsRespuesta con 125 registros de retención: 256 bytes o 2048 bitsFórmula para calcular el tiempo del ciclo de lectura:TCyClmi=syolminorteCmi_ _metrounastmir+64siyot/ /Vreunatuna+slunavmi_ _syolminorteCmi+2048siyot/ /Vreunatuna=0,179s
La secuencia para escribir registros es casi idéntica. El tamaño del paquete del maestro será mayor, porque Incluye información sobre registros grabables. La confirmación de una grabación exitosa del esclavo será de 8 bytes.Según la especificación Modbus, se pueden conectar 32 esclavos a la línea RS-485/422. El interrogatorio de esclavos también se lleva a cabo secuencialmente, generalmente en círculo. Para comprender qué tan rápido se actualizarán los datos desdenorte los esclavos necesitan multiplicarse TCyClmisobre el norteLlámalo el tiempo de actualización completo. TFtull.Algunos cálculosTFtull(lea y escriba el número máximo de registros de retención) para varios parámetros de comunicación:Formato de trama: 8N1,Vtuunart = 19200 bit / s, número de esclavos, norte= 16TFtull= 5.727 sFormato de trama: 8N1,Vtuunart = 9600 bit / s, número de esclavos, norte= 16TFtull= 10.173 sFormato de trama: 7E1,Vtuunart = 19200 bit / s, número de esclavos, norte= 16TFtull= 6.355 sFormato de trama: 8N1,Vtuunart = 19200 bit / s, número de esclavos, norte= 2TFtull= 0.716 sComo puede ver, el formato del marco afecta el tiempo de actualización de datos, pero no mucho. La velocidad de transferencia de datos afecta significativamente, pero en nuestro ejemplo transferimos el número máximo de registros, en proyectos reales este factor puede no ser tan significativo. Sobre todo, el número de esclavos afecta la frecuencia de actualización de datos.Para simplificar los cálculos, creamos una aplicación web para estimar el tiempo de actualización de datos a través de Modbus