Skip to Main Content
AVEVA™ PI System™ Feedback Portal

Welcome to our new feedback site!


We created this site to hear your enhancement ideas, suggestions and feedback about AVEVA products and services. All of the feedback you share here is monitored and reviewed by the AVEVA product managers.

To start, take a look at the ideas in the list below and VOTE for your favorite ideas submitted by other users. POST your own idea if it hasn’t been suggested yet. Include COMMENTS and share relevant business case details that will help our product team get more information on the suggestion. Please note that your ideas and comments are visible to all other users.


This page is for feedback specifically for AVEVA PI System. For links to our other feedback portals, please see the tab RESOURCES below.

Status No Status
Created by tinklerj
Created on Aug 20, 2022

Allow scheduled analyses to ignore circularity

It should be possible to force an apparent circularity to be ignored if analyses are scheduled and not triggered. A thermal efficiency application I have coded as AF Analyses has the following two analyses A and B, such that each is expressed in terms of the other. This is not really a circularity since the logic flow is dynamically switched by a third input X, so that one of these is calculated from independent inputs Y and Z, viz: A: if X > 0 then f(B) else f(Y) B: if X <= 0 then f(A) else f(Z) Clearly, if triggered, this would cause an infinite triggering loop since all inputs are signed up as triggers irrespective of whether the current dynamic conditions require them to be used. This is not the case for scheduled analyses, but at the moment (2018) these two periodic analyses are still disabled due to the circularity detection, so there is no way to implement this kind of switching logic.
  • Attach files
  • Kenneth Barber
    Reply
    |
    Aug 20, 2022
    I'm not sure that I'm following what you are suggesting. It looks like your expression can be simplified and expressed it in a non-circular way: A: if X > 0 then f(Z) else f(Y) B: if X ≤ 0 then f(Y) else f(Z) Now, it's clearer that the analyses return the same result, so you could get away with having only A and not B. If "f" is the same function both times that it appears, you can even simplify this to: A: f(if X > 0 then Z else Y) Based on your example, and if my understanding of your example is correct, I would argue that the prevention of circular references is still a good thing.