Tag scan sampling rate

Kevin, understood.

Sorry, i dont mean for it to sound like I am finding fault with Ignition. Ignition is by far my favorite Scada syatem and what I recommend to clients. I appreciate all the work that has gone into the development of this product. I appreciate the developers that directly respond here to all my dumb questions.

I guess my surprise in this particular aspect, is that it's a fairly major key that prior to stumbling across it in an unrelated search, I had not read. Ive taken all the ignition university tutorials, paid courses, participate in the forums, talk with more seasoned ignition developers to learn best practice, and unless I grossly missed, this UDT practice was not mentioned. It should be in 24pt red font somewhere, as its a pretty significant paradigm shift on the logix side of development.

Fortunately, all my installs never see more than 10 to 20% driver load, so i must be doing something alright. But im always searching for better methods and best practices. This one is a pretty siginifcant change.

I think our sales engineering team put together some kind of best practices document at one point... maybe we can see about getting some of it into the user manual.

You're not alone. The majority of users don't have to concern themselves with this. You might think otherwise by browsing the forum, but this is where the squeaky wheels can be heard in public.

This information is not practically relevant to many users, because they are developing with Ignition against an existing system and not building their PLC program from scratch or even able to modify it.

But still, it could be documented better.

2 Likes

I know its difficult to quantify in general terms, but lets say i have a UDT thats 100 bytes of data.

Is it more efficient to poll the entire UDT at 250ms, or poll 50 bytes at 250ms and the other 50 bytes at 2500ms. I thought i was doing good by creating differentiated tag scan groups, but maybe not and i should just poll the entire UDT at 250ms.

I suspect it would all of it at 250ms.

If you were only polling half the UDT at each rate I don't even think we'd be reading the whole UDT in either case, we'd be reading the individual tags.

Ignition's driver will read the whole UDT vs individual tags once ~2/3 of the bytes of the UDT have been requested.

Ah, thats a very important key. I gave 50/50 as an example thinking it'd make your math easier. In reality, im probably only using 20% of the UDTs members in ignition. So, the driver isnt pulling in all those unused tags.

That is good to know. My alternate driver is much more aggressive, usually reading the whole UDT if any two members are requested, and the UDT fits in the buffer. Number of distinct tags requested impacts the PLC's class 3 utilization much more than number of bytes.