Modbus RTU NO_RESPONSE

  • Thread starter Dries Van den Broeke
  • Start date
D

Thread Starter

Dries Van den Broeke

Serial RS485 communication with Beckhoff CX9020(Master) and Entes MPR-53CS NetWork analyser (Slave).

- Program in the PLC is OK (verified by Beckhoff support)

- SlaveID, data bits, parity, stop bits, baud-rate. Everything is set the same in both the master and slave.

Master is trying to communicate with slave but goes into Time Out because the slave is not responding.

The wiring and connections are done as said in the both manuals.

Does anyone have any idea what the problem might be? Because I'm really stuck with this...

Thanks and kind regards

Dries Van den Broeke
Student EnergyTechnology
KaHo Sint-Lieven
9000 Gent, Belgium
 
Strange but true: I have run across devices that have memory areas that do not permit "reads". These areas may require an "enable" or may just be not readable.

And, is this the only device on the RS485 link? I have worked with a device that said it would function as a master on a network of devices but in test would only talk to one of the many devices.

Have you tried a simple Modbus diagnostic?
 
2 wire RS-485 is implemented differently from manufacturer to manufacturer.

Although you might have (+) to (+) and (-) to (-), one might have been labeled the opposite of the other.

If wired 'backwards', it won't damage the drivers, but the 485 link won't work.

Try swapping the connections on one end and see if you establish communications.
 
Try to increase timeout in the master application. Some slaves may take their time to reply, which may be recognized as comm timeout by the master. I would start with 1000 ms, going down with the value in case of success.

Do you use the Modbus function (F03 / F04) which is supported by the slave?

I suppose there are no other slaves at the bus, at least in the testing phase.

How long is the line? Try "on the desk" first, with a 1 m wire, before going to the field.

Do you use bus terminators? If not, try a 120 Ohm resistor parallel to the A, B terminals.

Use oscilloscope to see if there is at least some reply from the slave - it may contain the error code which gives you more hints.
 
If you want to verify the com, use a protocol analyser (ex the software Multiway) and a PC to RS485 adapter. Then link the adapter to your network and run the software. You should be able to see every command that pass on your network. The slave is always supposed to respond to the master and if you don't see the answer, you know that the slave can't communicate with the master.
 
R

Rufus V. Smith

> Master is trying to communicate with slave but goes into Time Out because the slave is not responding.

In addition to what others have said, I have seen timeouts occur if you are accessing a double register variable with a single register read.

Also, make sure the master and slave agree on baud rate and both agree on ASCII mode or RTU mode.
 
> 2 wire RS-485 is implemented differently from manufacturer to manufacturer.

> Although you might have (+) to (+) and (-) to (-), one might have been labeled the opposite of the other.

> If wired 'backwards', it won't damage the drivers, but the 485 link won't work.

> Try swapping the connections on one end and see if you establish communications.

Don't ignore this advice. It is quite correct and the answer could be this simple.
 
Top