We have a project where we have to integrate 400 iolink devices across 4 lines.
Our plan is to do this using IFM AL1590 iolink blocks as they can each have 8 devices and have their own integrated OPC UA server. The idea is to get ignition to connect to 50 of these blocks by connecting them as an external OPC UA connection.
That being said, connecting to 50 servers over ethernet sounds like a networking nightmare and I have no idea what to expect.
However, I will only be connecting to 2 tags for each device (pdin, pdout) meaning there will only be 50 blocks x 8 devices/block x 2 tags/device polled total which doesn't seem like a lot.
(pdin 16 char + pdout 38 char) x 2 bytes/char = 108 bytes total. 108 bytes x 400 devices = 43000 bytes or 42.19 kilobytes. So Max 42kb per update if every devices updates at the same time. This assumes that pd in is input data and pdout is response from ignition.
Since OPC UA from external devices are set up on a subscription basis, am I right to assume that I would only get an update when a button is pressed?
The connected devices are user input devices, each with 3 buttons on them that are actuated by operators approximately max 2 times per second. So if we have 25 operators, and assuming they are updating twice per second, that is 50 updates/sec * 108 bytes = 5400 Bps or 5.27 Kbps
This seems like it can be easily handled by a gigabit connection.
My questions are:
- Has anyone ever connected this many OPC devices to ignition before? I know there is no limit on opc connections, but perhaps there is a practical limit?
- Are there other performance implications that I am missing from my calculations above that I need to consider?
- Would this be better to do through a PLC? My assumption is no because you are just adding processing time on top of each transaction.

