3 Replies Latest reply on Oct 4, 2017 11:20 AM by AMarques

    Issues with 'True for' in the Start Trigger of an Event Frame Generation Analysis

    LuisT

      Using PI Point ‘LT-Test01’ and an attribute with the same name to test, the analysis has a StartTrigger as follows:

      EF Analaysis.PNG

      (true for 1 minute)

       

      The first case

      • Event Frame did not close when it should have.
        • Current time is 05:00:00, ‘LT-Test01’ = 1 with a timestamp of 04:00:00.
        • Event Frame was already generated with start time of 04:00:00.
        • If new value ‘LT-Test01’ = 0 comes in at 05:10:00 with a timestamp of 04:01:30, we expect the EF to close at 04:01:30 but it does not. The EF does not have an End Time.

      The second case

      • Event Frame was not generated when expected
        • Current time is 05:00:00, ‘LT-Test01’ = 0 with a timestamp of 04:00:00.
        • At 05:10:00 we get a new value ‘LT-Test01’ = 1 with a timestamp of 03:50:00.
        • EF is not generated even though ‘LT-Test01’ = 1 for longer than 1 minute.

      The third case

      • Event frame is generated when it should not
        • Current time is 05:00:00, new value ‘LT-Test01’ = 1 with a timestamp of 04:00:00 (an hour late).
        • EF is generated right away because ‘LT-Test01’ = 1 for longer than 1 minute.
        • At 05:00:10 a new value comes in, ‘LT-Test01’ = 0 with a timestamp of 04:00:10 (also an hour late).
        • The original EF should not have been generated since ‘LT-Test01’ = 1 for only 10 seconds.

       

      The analysis works as expected if the data comes in without any data lags or in order.

      Other than periodically backfilling, are there any other workarounds for this behavior?

      I am happy to provide more details if needed.

      Zev Arnold

      Akash Naik

        • Re: Issues with 'True for' in the Start Trigger of an Event Frame Generation Analysis
          Dan Fishman

          I have experienced the same issues in the past and it can be really troublesome.

           

          Analysis service does have issues with lag (such as from PI-to-PI) and does ignore out-of-order data for triggering conditions.  The only workaround I know for this, is to use PE expressions and use more advanced triggering conditions.  Note, in this thread Event Frame Analysis: EndTrigger "True for" settingJim Gavigan shared his approach to time true.

           

          For event more complex situations involving 'True For', we had to write an event generator engine.

           

          Regards,

          Dan

          • Re: Issues with 'True for' in the Start Trigger of an Event Frame Generation Analysis
            ZArnold1

            There are a few obvious scenarios where this is problematic.

            First, if there is known latency in your connection, then the "True for" setting essentially includes the latency in its time count.  For example, if we have a "True for" setting of 2 minutes and the data arriving at the PI System is 1 minute old, then the "True for" setting essentially checks that the condition is true for only 1 minute.  If the data arriving at the PI System is 2 minutes old, then the "True for" setting has no effect.

            Second, if there is a data outage of any significant length of time, the "True for" setting has no effect on the analyses that run as the data unbuffers.

             

            Admittedly, this is a complex problem.  Giving us the option to configure the "True for" setting to be event-interpreted rather than clock-interpreted would allow us to customize the analysis to user requirements and data delivery constraints.  In other words, the "True for" should only be evaluated when the next input value for the analysis is received in the event pipe.

             

            Eduan Smit, thoughts?

            • Re: Issues with 'True for' in the Start Trigger of an Event Frame Generation Analysis
              AMarques

              Hi

              I have a similar problem, becuase of the configuration the type of number.

              Have you try to put ‘LT-Test01’ = "1", and see what happen???

              Best regards