Modbus RS485 speed

rQx

Lifetime Supporting Member
Join Date
Oct 2010
Location
Trelleborg
Posts
1,051
Hi,
I have connected 5 VFDs on RS485 network from s7-1200 PLC. I take approx. 10 registers from each. In this setup I see that it cycles through the VFDs in about 1 second time. Is this a speed that is normal? The Modbus master is running in the cyclic program and the speed is around 5ms.
How do you do to improve speed? Read/write certain registers less often?
/Tim
 
Not sure how you are reading/writing registers, but if there is a way to read and write them as a block, rather than individually, it will save a ton of time. Sometimes that might mean reading a few registers that you don't need, and ignoring them, but compared to individual read/writes it will speed it up.
 
There are some basics that you need to look at and them some math to work out. What baud rate is the RS485 running at? Is there a delay between polls? Are all 10 registers being read from or written to in one transaction or one at a time? Are you reading, writing or both to each drive (etc...)? Figure out exactly how much data you are moving, calculate the baud rate and any poll delays and do some math. You should be able to figure out approximately how fast one cycle (communicating with all of the drives) should take.
P.S. It is conceivable that 200 ms per device can be expected again depending on how things are configured. Getting familiar with the Modbus Standard can help you figure out how to make you application as efficient as possible. Your biggest bang for the buck is going to be making sure your reading or writing all the registers in one shot (if possible).
http://www.modbus.org/docs/Modbus_over_serial_line_V1.pdf
 
Hi, I have Emmerson flow computer with RS485. I like to read the flow meter reading as HTML file. is that possible? if yes, kindly assist how I can do this> thank you.
 
to rQx, if, by "it cycles through the VFDs in about 1 second time", you mean you are getting all the data from all five drives refreshed every second, I doubt you'll be able to improve on it. If you mean you are getting the data from only one drive refreshed every second there is room for improvement.

to Akan, please start a new thread and leave this one to the original poster's issue.
 
The two most time-consuming steps are usually the time it takes for the Slave devices to answer, and the inter-request delay by the Master device.

The actual wire time of the data is straightforward to determine. With ordinary 8/N/1 framing, each byte is encoded in 10 bits.

A Modbus RTU read of 10 registers using Function Code 0x03 will have an 8-byte Poll and a 25 byte Reply.

At 19200 bits per second, 32 bytes = 320 bits/19200 = 16.7 milliseconds.

So the wiretime is not the biggest factor.

If you do any serial analysis work, even with an easy-to-interpret protocol like Modbus RTU, I strongly recommend you get your hands on a Stratus Engineering serial tap. There's nothing quite as powerful as getting the data right off the wire, so you don't have to predict, infer, or guess what each device is doing.
 
It cycles throu all drives in 1 second, meaning that every drive use 200ms to read/write to. For example a speed change would take around 1 sec depending on when it updates. I will look into if I can read many registers but they are scattered out so I doubt it.

I rearly use serial communication but this entry level VFD only have it so I'm forced to use it. Thanks for the advice on the troubleshooter :)
 
Some Modbus slave devices will let you set up a customized block of consecutive addresses. You can copy any address into that block. If that feature exists on the drives you're using you could reduce your traffic to a single read request for each drive.
 
Add another CM module to 1200 and divide RS485 to 2 different bus. You can also speed up little bit if you write only if data changes
 
Some Modbus slave devices will let you set up a customized block of consecutive addresses. You can copy any address into that block. If that feature exists on the drives you're using you could reduce your traffic to a single read request for each drive.

This is what I do on the Control Techniques drives. I map the read and write registers into Menu0 (User Menu), and read/write them from there. Went from ~200ms to ~20ms per drive for 10 registers total (6 read, 4 write)
 
Thanks, good advices I'll see if I can modify my drives and also if it requires I can add a CM module to get less cycle time
 

Similar Topics

So I'm working on an old project I did several years ago. It has 12 nodes on a modbus RTU network. I'm going back for an expansion. I'm going to...
Replies
5
Views
1,868
I am trying to figure out some communication specifics for a Modbus RTU network that I will be integrating with and could use some help to make...
Replies
9
Views
2,044
I'm getting no response from a device I'm trying to communicate to with a Beckhoff IPC. I'm not sure why it's not working. Attached are pictures...
Replies
0
Views
606
HI guys: I am attaching several diagram from several sources, it seems to be that there is no such a wiring standard for modbus RS485 RTU. In some...
Replies
24
Views
4,467
Need a sanity check here. It is possible to have redundant Modbus RTU master, but only one master is actively polling at a time? The background...
Replies
4
Views
2,528
Back
Top Bottom