I have a UDT with some OPC Tags, Query Tags and expression tags.
-The first tag is a counter from PLC thats is being read each 1 Second (No issue. Working good)
-Then I have an expression tag that is no more than a target set in database. I'm just filtering a Dataset Tag in my gateway to bring that value each minute(No issue).
-Finally the tag with the issue is just an expression tag and the value is the difference between the target - PLC Counter, the execution time supoused to be each second but is taking around 5 or 6 to do it.
I have around 14500 tags in my server and the performance on that is CPU<40%
Any idea about what could giving me that problem?
Tip: use '-'
for bulleted lists. Use '>'
to quote someone else. You appear to be quoting yourself in your post and it causes some confusion.
What version of Ignition is this?
Can you download a few thread dumps from the gateway and share them? It's possible you have some slow running expressions or something like that.
https://docs.inductiveautomation.com/display/DOC81/Diagnostics+-+Threads#DiagnosticsThreads-IndividualThreads
It may be easier to call support and let them have a look at your system.
Thank you Kevin, I just opened a ticket with support!
I peeked at the thread dumps you provided supported. In all of them there are stack traces that show you using @pturmel's simulation aids module view
function, and in some of them all of the expression execution threads are tied up calling that.
1 Like
Hmmm. I suppose that shouldn't be a surprise. view()
is very much intended for use in UIs, driven by changes in references, not on a pace as would happen in a tag group.
I recommend using view()
's DEBUG logger to obtain the script it is using, and move large-scale filtering operations across many tags into a single timer event script. Less script overhead, and provides the opportunity to produce multiple output datasets in a single pass through a source dataset.
1 Like