An AB flexlogic controller with EthernetIP talking to two modbusTCP slave drives.
For protocol conversion and mapping there is the DigiOneIAP.
The refresh rate for each slave is 15 times per second, wich is sufficient for the application.
The CPU of the DigiOneIAP is running at 30%, what gives an indication of its capabilities.
I even conected with a modbusRTU master on the serial port which gave a cpu load of 44%
Using the documented examples, I configured scl typed r/w, cip with sourceID with succes.
The messages I triggered one by one and I also tried two by two wich had a better result.
Now when there is one connection broken, the other connection fail. I programmed around and the best recover time till now for the failed connection is 100 seconds wich is not diserable for a propulsion system.
Dont know where to find the reason for that long delay time.
In the plc I already disabled the message caching.
The 100 second delay has to be something in the ControlLogix stack. I only have an older Rel 10 RSLogix 5000, but it doesn’t seem to have any settable Message Timeout seting. Plus since TCP/IP is being used, if the DOIAP goes offline the normal TCP/IP back-off and retry comes into play. So part of this timeout is pure MSG block function and part of how the TCP/IP stack handles retransmissions.
I’d ask Rockwell how the timeout is controlled in the CLgx - you could say you are just using a 1761NET-ENI to a SLC5/03 if you want to avoid finger-pointing.
As a side comment the bottleneck in an Ethernet/IP Master talking to a Modbus/TCP slave is more the design of the “engine” than the CPU power. The DOIAP was designed to be ENet-to/from-Serial and serial is rather slow to receive new data; ENet-to-ENet is a happy side effect of the design but we haven’t tweaked the task context switching to really make use of direct network links.