3 Replies Latest reply on May 3, 2018 4:47 PM by Rick Davin

    Computing Process Cycle Time Using Event Frames




      I am trying to compute our process cycle time using event frames. We have two systems in operation namely "7" and "8". At a time, one system is in operation. After each cycle, the process either continues on the current system (eg. it was running on system 7 and after a complete cycle, it stayed on same system 7) or it switches to the other system (i.e. 8 as in our example).  I am trying to track the duration of the process using event frames when it starts on one system and starts again after some time on either current or the other system. Following is the start and end trigger conditions I have used. The event frames work fine when it is only 1 system in operation cycle after cycle, however as it switches to the other system, the event frame doesn't end (Eg. 7 was in operation and the event was triggered when Scrap Charge 7 = On, we switched to 8 but the event frame won't end when Scrap Charge 8 = 'On" and it will continue until we switched back to 7 again i.e. Scrap Charge 7 = "On")


      I have used the Or function but it doesn't seem to work. Any suggestions would be much appreciated.





      Best Regards,


        • Re: Computing Process Cycle Time Using Event Frames
          Rick Davin

          Hi Atif,


          Help me understand your process a bit more.  I'm guessing that neither 'Scrap Charge 8' and 'Scrap Charge 7' can both be "On" at the same time, but they both could be "Off", correct?


          In between this duration you want to measure, let's say beginning with 'Scrap Charge 8' triggered as being "On", does 'Scrap Charge 8' later switch to "Off" while 'Scrap Charge 7' is also "Off", and then maybe 'Scrap Charge 8' once again switches to "On"?  Or in this example would 'Scrap Charge 8' be continually running but with a "On" event being sent to the archive even though it was already "On"?

            • Re: Computing Process Cycle Time Using Event Frames

              Hi Rick,


              Thanks for the response. Yes, they are usually "Off"  but only 1 is "On". However, it's a signal from a push button so it stays "On" for about 5-10 seconds and then goes "Off". This tells me that the new cycle has started and the process continues until the push button is pressed again signaling "On" meaning a new cycle has started either on system 7 or system 8.

                • Re: Computing Process Cycle Time Using Event Frames
                  Rick Davin

                  When faced with such things in the past, I would try to reduce or simplify the problem.  You are juggling 2 different possible signals.  I suggest creating an Expression Analysis to output a result to a new tag, let's call it 'Active Charge'.  This could be a String tag to hold "8" or "Scrap Charge 8", and "None" when there is none, or it could be an Int32 tag to hold 0, 7, or 8 where 0 means none.  The problem with a String tag is it can't be trended, and somewhere down the line I bet you will want to trend it.  The problem with an Int32 tag is it implies you can perform some math operations on it, plus the naming pattern only works because of the trailing number; the pattern fails it were called "Scrap Charge Blue". 


                  What I would suggest is to create a digital tag with a State Set of: "None", "Scrap_Charge_7", and "Scrap_Charge_8".  The Expression Analysis would be set up to only truly output a new value when there is indeed a true change in value, for example "None" to "Scrap_Charge_8" causes output but "Scrap_Charge_8" to "Scrap_Charge_8" causes NoOutput().  The Expression Analysis would trigger on both input tags of 'Scrap Charge 7' and 'Scrap Charge 8'.


                  This simplifies the problem to looking at a single tag, but more importantly, any new change in value on that tag is truly different from the previous value.


                  The analysis for event frame generation would now be triggered off the new tag 'Active Charge'.  I would suggest using a True For of 10 seconds or so.  The start trigger expression would be 'Active Charge' <> "None" (indicating that either 7 or 8 is "On") and oddly enough the end trigger expression would be the same thing!  This works because we have only input truly unique values into 'Active Charge', so it may trigger from 8 to 7 but it would never go from 8 to 8; rather it would have to go from 8 to "None" to 8 again.