How to Minimize Modbus RTU over RS485 Delay Time

A

Thread Starter

asaria

Any of you know how to minimize delay time in MODBUS RTU over RS-485 2-wire. Since, my PLC is currently connected with Caterpillar engine where it uses a Siemens Logo as the engine local governor. I read 4 words (40137,40140,40150,40188) and write a single word (40001) and bit (00001) in to it.

The strange thing is: my transmission command could be received in 3s, but I received the reply in my system in 1.5 minutes. Very long time. I use 9600 baudrate.
 
Seems you probably have a KeyUp/KeyDown timing issue. The most common problem is the slave responds to the Host poll BEFORE the Host does a KeyDown. Look for a tuning parameter in your slave (typically) named "turnaround delay" and increase it by a lot then if it works better fine tune the setting by trial and error. The object is to delay the slave response to the point that the Host will be ready and listening for the slave response.
 
It is possible to get reply from logo in seconds if you can change/access modbus communication settings in LOGO. It is also possible that it transmits signal only in case of C.O.S. You can check these parameters and logo is not powerful enough to execute its logic program and transmit data at same time on MODBUS RTU.

 
I'd check to see if the slave has a "response delay", or similar setting.

Also, since it's on an RS485 network, you could get an RS485->RS232 converter and capture the serial traffic with a PC. Depending on the length of the RS485 run, you should analyze both ends of the conversation... look at when/what data the master is sending and receiving, and look at when/what data the slave is receiving/sending.

CH
 
RS485 (2 wire) is a half duplex communications path. Just like a 2 way radio one must KeyUp the transmitter, send the data, then KeyDown the radio. If data is sent before the other radio keys down then the info is chopped off at the front end. If you want to see the schematic of a RS232 to RS485 driver that actually uses the first Start Bit to key up and Fail Safe Biasing for the last Stop Bit see B&B Electronics Model 485SD9TB. It is the best design I know of to handle RS485 timing.
 
I had checked it. From panel, I tried to read data from slave using Modbus simulator, i got only 2s delay.

But when I tried to use simulator as slave then see the response in master, i got 7s delay. Still to long. should I change to 4 wire-full duplex instead of 2-wire?
 
All,

Thanks for your support. I had solved the problem today. The problem is, in field they (slave side) use multidrop configuration, but they forget to use a termination resistor in last slave node. After putting a 120 Ohm termination resistor in last node, everything works normal now.
 
As the saying goes, "fix all the things you know are wrong and all the weird stuff just disappears".
 
Top