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"?
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.
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.