Modbus TCP/IP client automation direct productivity 3000 series

I am looking to see if anyone has experience will using a plc to connect to more than 32 devices as fast as possible using Modbus TCP/IP. The plc will not drop a connection until after 5 secs after all the rungs with the read and write to that device is disabled. Not sure how to accomplish interlocking, looking for advice/guidance. I have looked at all of Automation Direct's resources and videos. Has anyone had success using there auto polling feature, and/or know how well it works in practice.
 
You have given 2 good reasons why you should not use Modbus as a communications protocol - indeed justified in writing your own !

Modbus was expressly designed limiting to 32 devices - nor was speed on the agenda: Hundreds of end users worldwide use Modbus to deal with 3rd party devices where responses/times are invariably unpreditable. Seeing customer Modbus networks of 15 devices with a cycle time of around 10mins. is quite normal.

Have you an application where there are more than 32 devices - we would be very interested to know how you would handle spurious data; it's unclear what you mean by device disabling and interlocking.

Do you intend to try Automation's ' ODVA's EtherNet/IP as a standard protocol' protocol ?
 
I am unable to change protocol because of budget limitations and the Modbus TCP/IP network is already in place. As to the interlocking, I am referring to has to do with the last paragraph for the manual for the Productivity 3000 series CPU, as it says it is possible to connect to more than 32 devices just not concurrently. see the documentation below. Screenshot 2021-07-06 135548.jpgScreenshot 2021-07-06 135948.jpg
I am currently trying to make it so the ladder logic will allow a message to try and send once, after that lockout the MRX and MWX for that device until 5 secs have passed and all other devices have been given an opportunity to read or write. I was also going to incorporate and override that makes it so the connects will not drop while control is being done to certain devices. I was just inquiring to see if maybe someone else has dealt with something similar and knows a better solution. I'm unsure how the auto polling queue functions involving having more than 32 devices.
 
You appear to be working with a version of Modbus which is exclusive to Direct Automation. This is ironic for a similar Modbus link, the op suggests there should be a standard Modbus protocol !

So you are entirely reliant on the integrity of Direct Automation.; I have never worked with Direct which is regarded as cheap and cheerful; all end clients I have worked with go for the big PLC names on the almost guarantee of customer support which is important to them.

My concern with the above is, how your remote device can assign itself to ‘node 128’. I’ve never managed to alter to any number above 32.
 
OK, I have to chime in here...

This is not a Modbus version specific to Automation Direct, Modbus is not limited to 32 nodes, Modbus can be very efficient when used correctly, there is absolutely no need (and would be foolish) to attempt to write your own protocol, etc.

Modbus/TCP (as with any TCP protocol) works on establishing a TCP connection with a peer device. To do this, each device must use an Ethernet socket, which is a logical resource on each device that binds to a TCP port. Of course, devices do not have unlimited resources. The Productivity 3000 series CPU is limited to 32 sockets (i.e. concurrent Modbus/TCP connections). So the Productivity 3000 series CPU has no limit on how many devices you can connect to, only that you can only have an active, simultaneous connection to at most 32 devices.

In addition to this, the Productivity 3000 series CPU seems to only allow closing a TCP connection (thereby freeing the socket resource) automatically after a 5 second delay. Therefore, one simple approach to communicating with more than 32 devices would be to simply delay 200ms between enabling Manual Poll instructions to each device. Because a connection is closed after 5 seconds and there 32 possible connections, the minimum delay required would be about 156ms (5 / 32), such that by the time you get to the 33rd device, it has been at least 5 seconds from when the CPU connected to the 1st device (so this socket is now free to use).
 
OK, I have to chime in here...

This is not a Modbus version specific to Automation Direct, Modbus is not limited to 32 nodes, Modbus can be very efficient when used correctly, there is absolutely no need (and would be foolish) to attempt to write your own protocol, etc.

Modbus/TCP (as with any TCP protocol) works on establishing a TCP connection with a peer device. To do this, each device must use an Ethernet socket, which is a logical resource on each device that binds to a TCP port. Of course, devices do not have unlimited resources. The Productivity 3000 series CPU is limited to 32 sockets (i.e. concurrent Modbus/TCP connections). So the Productivity 3000 series CPU has no limit on how many devices you can connect to, only that you can only have an active, simultaneous connection to at most 32 devices.

In addition to this, the Productivity 3000 series CPU seems to only allow closing a TCP connection (thereby freeing the socket resource) automatically after a 5 second delay. Therefore, one simple approach to communicating with more than 32 devices would be to simply delay 200ms between enabling Manual Poll instructions to each device. Because a connection is closed after 5 seconds and there 32 possible connections, the minimum delay required would be about 156ms (5 / 32), such that by the time you get to the 33rd device, it has been at least 5 seconds from when the CPU connected to the 1st device (so this socket is now free to use).
Thank You. This should help me make my final decision on how I'm handling the mod bus reads/writes. I will try and post how everything goes after we finish the install.
 
Top