Modbus Tags "Bad_NotConnected" When polling more than one device

Hi everyone,

I am new to modbus systems now I have 4 RTU over RS485 devices ( Address 1: VFD, 2 and 3: Schneider PM2220 Powermeters and 4: Delta PLC). I have added their modbus addresses through Ignition Address mapping.
When I add tags only from one device, there is no problem and errors. The problem is that once I add tags for multiple devices, I have occasional "Bad_NotConnected: The variable should receive its value from another variable" errors. The more the number of tags I poll, the more frequent this error occurs.

I attach some pictures for reference.

Thanks everyone,
Ali



What do you see on the device's diagnostics page?

The diagnostics Tag shows Good connection without errors. But I have investigated it further and it seems that the poll requests are being sent to all 4 slave devices at once resulting in Frame and CRC errors by slaves.
I think I am experiencing the same problem here:

Are you sure there are no replies for each before the next is sent? (That is how RTU is supposed to work.) Are you sure these devices comply with Modbus RTU timing specifications? (They are supposed to ignore requests and replies that target other slave unit ID numbers.)

Are you including the unit number in your manual addressing? (Ignition's default to unit zero is a broadcast in Modbus RTU.)

1 Like

Was this issue resolved? I am having the same issue

In all cases the poster has disappeared when tasked with providing logs or other evidence to support the claim that multiple requests are sent at once.

Is there something else that would be causing the "variable should receive its value from another variable" error?

Disable the "Reconnect after consecutive timeouts" setting on the driver. That's the usual culprit.

Then you'll need to figure out why the device isn't responding to requests.

1 Like

I have not disappeared, I just found other posts indicating the same issue where you and pturmel had responded to it without any solution (other than a driver offer for sale by pturmel), so I don't know why are you looking for same details here too, cause you already know the issue exists.
Anyway, I could not use modbus for multiple slave devices, it is simply not possible in ignition due to a bug that is discussed in several posts.

Me also facing same issue
Bad_NotConnected: The variable should receive its value from another variable.

This is not a bug. As best could be told from the information in this and prior posts, the serial RTU link is simply overloaded, and made worse if any device drops out.

How many registers, across all devices, are you trying to poll, and at what pace? What is the baud rate on your RS-485 channel?

Ideal bulk polling, if every request is max size, and every slave responds instantly, is ~ (baud * 0.045) registers per second. For typical 9600 baud links, that works out to an absolute maximum of 432 16-bit registers per second across the whole link.