0
\$\begingroup\$

I am using 20 sensor nodes, each has mpu9250 i2c, Arduino atmega328 MCU 8MHz and max485 chip in it, each slave has a unique id program.

I have Arduino due as Modbus master with max485 chip, I hope to use Arduino Modbus library RS485 RTU,

assume slave is continually reading data and updating local variable with imu data 12bytes, and ready to send over the bus.

and master is polling data from each slave node.

all sensor are connected the same bus, 1.5ft from the sensor node to sensor node away each (cat 5 cables), the reason to choose Modbus is having higher data rates compared to CAN bus or I2C,

I have a doubtable point,

how long it will take to respond to master with data?

how to calculate request/response time or the time to gather data from all sensors by the master?

in other words how many samples per second achievable?

\$\endgroup\$
  • \$\begingroup\$ Can you post your serial settings, are you using 9600kbps? \$\endgroup\$ – CFCBazar com Apr 22 at 9:37
  • \$\begingroup\$ Are you using error checking? What is your protocol precisely? \$\endgroup\$ – Andy aka Apr 22 at 9:38
  • \$\begingroup\$ @CFCBazar com I haven't decided yet I can hope to the maximum that Arduino can handle 230.4k buad \$\endgroup\$ – komto909 Apr 22 at 9:39
  • \$\begingroup\$ @Andy aka Modbus RS485 RTU, I plan to use Arduino library directly, I hope to use minimum error checking for data bytes, the slave will process 12 data bytes and add 2 more bytes at the end of the data payload, which master will decode and error check \$\endgroup\$ – komto909 Apr 22 at 9:41
  • 1
    \$\begingroup\$ OK, so to work this out you need to consider the overhead bits inflicted on the transmission by the MODBUS protocol. I don't know what that is. \$\endgroup\$ – Andy aka Apr 22 at 9:52
1
\$\begingroup\$

It is generally accepted that RS-485 can be used with data rates up to 10 Mbit/s or, at lower speeds, distances up to 1,200 m (4,000 ft). As a rule of thumb, the speed in bit/s multiplied by the length in metres should not exceed 10 on the power of 8. Thus a 50-meter cable should not signal faster than 2 Mbit/s.

The modbus documentation from TycoElectronics.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ my total cable length is 30ft or 10m, within 10m 20 slaves on the bus, so to send 12-14byte data payload with Arduino Modbus rs485 RTU library how long it will take per slave? \$\endgroup\$ – komto909 Apr 22 at 10:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.