¿Cómo aumentar el rendimiento de datos de RS485 RTU?

Estoy usando 20 nodos de sensores, cada uno tiene mpu9250 i2c, Arduino atmega328 MCU 8MHz y un chip max485, cada esclavo tiene un programa de identificación único.

Tengo Arduino debido como Modbus maestro con chip max485, espero usar la biblioteca Arduino Modbus RS485 RTU,

suponga que el esclavo está continuamente leyendo datos y actualizando la variable local con datos imu de 12 bytes, y listo para enviar a través del bus.

y el maestro está sondeando datos de cada nodo esclavo.

todos los sensores están conectados al mismo bus, a 1,5 pies del nodo del sensor al nodo del sensor cada uno (cables cat 5), la razón para elegir Modbus es tener velocidades de datos más altas en comparación con el bus CAN o I2C,

Tengo un punto dudoso,

¿cuánto tiempo tardará en responder al maestro con datos?

¿Cómo calcular el tiempo de solicitud/respuesta o el tiempo para recopilar datos de todos los sensores por parte del maestro?

en otras palabras, ¿cuántas muestras por segundo se pueden lograr?

¿Puedes publicar tu configuración serial, estás usando 9600kbps?
¿Está utilizando la comprobación de errores? ¿Cuál es su protocolo exactamente?
@CFCBazar com Todavía no lo he decidido. Puedo esperar al máximo que Arduino pueda manejar 230.4k buad.
@Andy, también conocido como Modbus RS485 RTU, planeo usar la biblioteca Arduino directamente, espero usar la verificación mínima de errores para los bytes de datos, el esclavo procesará 12 bytes de datos y agregará 2 bytes más al final de la carga de datos, que el maestro decodificará y comprobación de errores
No tengo idea de cuál es el protocolo de Arduino, así que no puedo ayudar.
@Andy, también conocido como, ¿qué quieres decir con el protocolo de Arduino? No lo entiendo, Arduino tiene la biblioteca Modbus RTU. que funciona a través de uart
En general, se acepta que RS-485 se puede utilizar con velocidades de datos de hasta 10 Mbit/so, a velocidades más bajas, distancias de hasta 1200 m (4000 pies). Como regla general, la velocidad en bit/s multiplicada por la longitud en metros no debe exceder 10 en la potencia de 8. Por lo tanto, un cable de 50 metros no debe enviar señales a más de 2 Mbit/s.
De acuerdo, para resolver esto, debe considerar los bits de sobrecarga infligidos en la transmisión por el protocolo MODBUS. no se que es eso
Modbus es una variación de RS485. Puedes leer el artículo completo. eltima.com/article/modbus-vs-rs485

Respuestas (1)

En general, se acepta que RS-485 se puede utilizar con velocidades de datos de hasta 10 Mbit/so, a velocidades más bajas, distancias de hasta 1200 m (4000 pies). Como regla general, la velocidad en bit/s multiplicada por la longitud en metros no debe exceder 10 en la potencia de 8. Por lo tanto, un cable de 50 metros no debe enviar señales a más de 2 Mbit/s.

La documentación modbus de TycoElectronics.

la longitud total de mi cable es de 30 pies o 10 m, dentro de los 10 m, 20 esclavos en el bus, por lo tanto, para enviar una carga útil de datos de 12-14 bytes con la biblioteca Arduino Modbus rs485 RTU, ¿cuánto tiempo llevará por esclavo?