I am working on a project where I will be polling 200 PLC's on demand and a schedule to manage traffic over the radio network. I will be using one shot polling based off of a PLC that only manages the schedule. I have all of this figured out. The problem is the existing system shows statistics like Attempts, Success, Success Percent, and can be Reset since they are currently using Topserver. Topserver is not working correctly for this application an I will be removing it on the upgrade and using the native Ignition Modbus driver. My question is do these statistics already exist in ignition before I try to calculate them on my own?
No, nothing like that exists.
What would be the best way to calculate Poll Attempts and Successes with the current tags available.
I don't think you can reliably calculate it while also using a one-shot tag group polling strategy.
The only way you can know that one or more poll happened is by calling system.opc.readValues
and then checking the results. Even then, won't necessarily know what kind of failure it was - no response, vs negative response, etc...
Really, these kinds of stats need to be tracked down at the driver level, and they're just not.
To be honest, trying to set up complicated radio polling schedules in Ignition sucks, and if you can't get TOPserver(Kepware) working for some reason I'm a bit concerned about you getting it to work in Ignition.
So I won't actually be setting up any schedules in Ignition. There is a PLC that handles the schedule as well as any update changes from PLC's that it will put into a queue. Ignition will only read requests from this PLC to poll certain other PLC's. The schedule does not work properly in Topserver to accomplish this. I just didn't want to have to use Topserver for the sole purpose of statistics.
Can you make the coordinating PLC track polling attempts/successes/failures?
Not really. It will only tell Ignition to poll a PLC at a certain time. Then Ignition would send a response when complete. I would need to get that info from ignition.
Oh, I misunderstood, I thought this coordinating PLC was also doing the polling, and somehow just providing a view of all the collected data to Ignition.
Yeah... I think you just aren't going to have those statistics available.
So I would only need to track successes for polling. Will system.opc.readValues tell me if the poll succeeded?
No, it'll give you values and they will have a good or bad quality, but you won't know how many polls/requests that call resulted in*, or if a bad quality was a result of a failed poll/request or a negative response.
* unless you specifically craft the call such that you know it will only issue one request