We're looking for an update rate that's sub 1s for all objects on the screen; ideally would be sub 0.5s. Right now we're running 2.5-3s on our "home" page. Worth noting that changing to a page on the Cmore that has fewer tags brings the performance back to what we're used to seeing (sub 0.5s).
The Cmore only polls tags on the active screen + trend graphs + logging. We're doing logging in the PLC so the Cmore isn't pulling any tags for that and we haven't made any trend graphs yet so we're only dealing with the tags that are on the active screen.
Total number of tags in the project is just shy of 4k right now, but I expect there'll be another 3-4k before we finish writing the code. Total on the page that's slow is right at 1k.
Not using E/IP at all. Strictly Domore symbolic between the Cmore and the Domore. The Domore is doing a few Domore to Domore and Domore to DirectLogic comms and eventually will also be doing some HTTP_POSTs later, but that part isn't written yet.
OK good, so only 8K tags total, and more importantly, only 1000-1500 concurrent. I think you can probably do this with Modbus/TCP, at least on the Do-More end. I thing the C-More may be limiting things, and a PC might do better, with more processing power first, and more control over polling second.
I mentioned E/IP as a possible alternative because the response time (and hopefully polling rate) is good. I know how table-based protocols work, and have written AB drivers for DF1 and old version AB-Ethernet (PCCC, the one the software calls ABETH), which is basically just DF1 over Ethernet....but I have very little knowledge how tag-based comms like E/IP or Do-More symbolic work under the hood. Seems like it would be very inefficient if you have to either transact the tags individually or transmit the entire list of tag names you want every time you poll. Maybe the "producer/consumer" model means whatever you subscribe to, the producer creates and remembers a virtual table, so it sends it all burst mode and avoids the performance hit of you having to enumerate all the tags every time.