Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Modbus circuit failures when adding more than one slave

Status
Not open for further replies.

Perrinoly

Electrical
Apr 12, 2005
8
We are commissioning a tank level radar project and we are having some intermittent modbus failures (no slave response) when we poll more than one device on the loop. We can talk perfectly to each individual device if only polling that one device but when we try to talk to all 5 devices on the loop with PLC (quantum 584 through a converter) master polling, the first device in line (daisy chain) has no issues at all but the rest show intermittent failures (lack of slave response about 25% of the time, this varies slightly for each device). The line terminations have been respected and the grounding configuration appears to be OK. Any help at alll would be appreciated.
 
Replies continue below

Recommended for you

If modbus is like every other comm network try the below:

dip switch settings check for each slave device?
firmware correct for the slave device?
Can you hook into the converter device and see all the devices on network?

Have you tried putting each device on network by itself?

cable distance under the limit for not using repeaters?
Do you need a repeater due to the length of your comm cable?

Quantum and converter comm stats showing any errors?
 
You might need to set the time between polls to be longer. Some slaves need more time to "recover" from a poll not its own.
 
Thanks for the replies. Yes Dip switch settings are all good and we can actually see all of the devices on the daisy chain just fine, but only with a 75% or so reliability.(monitoring feedback bit at the master read/write block). Cable length fine and no errors on PLC / converter.

We were trying to run at 9600 bps which should be fine, we actually went to the bridge mux and increased the delay for reply time by alot and saw a small improvement. We also increased the time between pools as well and again a small improvement.

We then decided to go down to 1200 bps baud rate in desperation and it communicates 100% perfectly with absolutely no slave response errors.

I would like to call this success but I'm having a hard time since this really should work OK. We only have 10 devices with a simple setup. Please keep replies coming if you can give some insight as to why the faster baud rate won't take.
 
If you haven't already, examine the actual signals on the wiring with an oscilloscope. Try all the oscilloscope's timebase settings right up to RF. Maybe there's some noise or interference on the lines in spite of your best efforts.

It's a long shot, but still worth checking if you're otherwise out of ideas.
 
One time, the installation had 'spurs', a length of twisted pair that ran from the terminal block up to the device in the panel. The spur length was maybe 5 feet (a little less than 2m).

The spurs limited the comm link speed. Re-wiring brought the link speed up.

2gugjd5.jpg
 
Thanks much for the replies. I took a look through these application notes and still confused about which grounding configuration I should use. Chances are I'm still getting noise. This has been my biggest problem with the troubleshooting, in all my reading I have yet to see a solid explanation of a proper grounding configuration with the simple devices and setup that I have. Doesn't seem as clear cut as grounding an analog system at only one end.

I have a Modicon Qauntum PLC (through a bridge mux) that connects to a RS232 / RS485 converter. From there I go out to the field with an instrument tech cable that contains 2 twisted shielded pairs. (contains a drain wire per pair and a common cable shield wire) all devices are then daisy chained together (10 total). Where and how should the drains and cable shield be grounded? This question should be easy to find and maybe I'm missing something obvious but like I said I have yet to find a solid guaranteed way of grounding this simple system properly. Thanks again for the input thus far...

danw2 I wasn't able to access the file link you posted, not sure why...
 
You first need to determine if your devices isolated port or grounded?

With isolated devices you typically use either 1 or 2 twisted pairs for the signal wires (for 2-wire or 4-wire). Then, you use a single wire from another twisted pair for the common return wire (this will be the 3rd or 5th wire). The shield is kept seperate from the ground and typically only connected at one end.

Non-isolated devices use the earth as the common return wire instead of the 3rd or 5th conductor. You can have communications issues or port failures if you have local ground potential differences more than about 15V.

The main thing to remember is that RS-485 requires a common return connection.
 
A few years ago I had a world of problems with a geographically distributed system across a power plant. It was an inherited design which was flawed from the outset: I had to install galvanic isolators at each drop to get past the noise problems.


----------------------------------
image.php

If we learn from our mistakes I'm getting a great education!
 
If its noise
1 break the daisy chain in half see if the half that is connected stays on 100% of the time. If it does then the other half is the problem. If it is 100% add 1/2 of the other part, etc... till you see your 25% problem appear.

 
RS-485 is a differential signal, however both the A and B lines are referenced to a common ground. Therefore you will need to carry a common ground to all RS-485 points. This ground may or may not be the same as the device ground. You will need to check the device specifications to make sure.

How are you terminating the ends of the line? Changing to a slow baud rate sounds like it might be a termination issue.
 
Wow, again thanks for the replies. Before I get ahead of myself I'll provide more details.

The actual engineered install that we wired to called for a single twisted pair (2 wire) that went to the high side of 3 phoenix contact repeaters. From there each repeater had about 3 devices on it in daisy chain. The repeaters also act as isolators from what I'm told. Each end device had a terminating resistor (120 ohm)as well as the RS485/232 converter. Once we realized there were problems we started with only 2 devices on line a fully bypassing the repeaters, basically a direct simple link to 2 devices. When we did this the first device would communicate very well but the one 50 feet past it was having many slave errors reported in the PLC. This was the same if we were to pick any of the short legs while bypassing the rest of devices and repeaters. Always the first one would communicate perfect and the rest in the line would have many failures. We played around with terminating resistors in every configuration and also tried different grounding combinations (since we only had one twisted pair to work with, the only ground available to us was the cable shield and drain wires) but nothing changed our results much if any.

If we need to have a separate ground wire through the system it sure wasn't specified by the engineers. The slave devices are all grounded locally as are the repeaters.

If you still believe the separate ground or galvanic isolators may be required with this information provided please let me know and I'll follow up with engineering. What I'm trying to avoid is spending a lot of time and money on something that 'might' solve the problem, I'd like to know ahead and feel confident with it. Thanks again...

 
There's no need to guess. At an easy-to-see 9600 baud, all the possible problems (in the analog domain) can be confirmed or refuted with virtually any 2-ch oscilloscope.

 
Earlier, it appeared that 4 wires were available:

>From there I go out to the field with an instrument tech cable that contains 2 twisted shielded pairs.

If that's the case, use one twisted pair for A and B, and one of the remaining wires for the signal ground. That's not doable?

In terms testing to determine whether you have a potential solution:

If you need to pursue a higher speed because 1200 baud is inadequate (and there's no signal ground wire available to try), then you've got what you need to test - you've already got 3 isolator/repeaters.

3 isolators is enough to test your system, which conveniently caves with the addition of a 2nd node.

Drive each of the first, second and third level devices from an isolator at each of the level nodes. Then bump the speed to 9600 and watch the error log. If error log is clean, the isolators are limiting either the common mode or the noise and you need 7 more isolators for the remaining nodes.

The 'engineers' are not the first to not know that "2 wire RS-485" is a misnomer.
 
I might be writing in circles at times in my posts. Seems I am always pinched for time when I respond. Thanks VE1BLL for the input, I've been asking around the last couple of days and I'll be getting a scope tomorrow for testing.

DanW2, I fairly new to 485 installations and may be incorrectly stating certain details. Yes you're correct when you stated I have 2 pairs total going out to the field, in fact I could use one wire of the second pair to run a ground out to the high side of the repeaters. However, all of the runs in the field are using both pairs, all 4 signal wires as part of the daisy chain configuration. (from junction box to device then return) In this there is no opportunity for the third ground wire anywhere on the low (slave) side of the repeaters. I will for sure be trying to at least use the third ground wire out to the high side of the repeaters and testing small segments at that point, I just hope that the slave side will not also cause issues.

Thanks again...
 
I don't understand.

>"all of the runs in the field are using both pairs, all 4 signal wires as part of the daisy chain configuration. (from junction box to device then return)"

How could you use 4 wires for 2 wire connections with no signal ground? What's the 'return'? Daisy chaining is node 1 to node 2 to node 3 to node 4 etc. There is no 'return'. It's not a current loop; it's differential, A to B.

Is each of your devices on a giant spur, running from a single central junction box? Does the wiring topology look like a hub and spoke topology?

How does your wiring differ from the 'spur' diagram above?
 
I got it . . .

This is level, instrument is probably up high on the tank? Junction box down low on the ground? Signal has to go up, connect, come back down to the junction box and then go out to the next node. JB to node needs 4 wires (well 6, but . . .). OK. I was thinking 'electrical' return.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor