There does not seem to be a clear and concise way to trigger a new event frame (and end an old one) based on a step change in a tag. For example, if we had a tag, PHASE, that changed every time we entered a new phase and remained at that value, I would like to end a previous EF and start a new EF anytime that tag changed. Currently, even with performance equations, there doesn't seem to be a clear way of doing this with an EF Analysis. You can do it with the EF generator interface, but it is clunky and difficult to scale.
I found I had to schedule as periodic rather than Event-Triggered, and use "Not HasValueChanged({Pi Point})", but this is still going to miss a small chunk of time based on my evaluation period.
I learned it this way: create a boolean Pi Point attribute and use HasValuechanged to toggle this boolean value. Then create 2 event frame generation analysis for the same event frame template in which this newly created boolean attribute is the start trigger. In the first analysis start on TRUE, in the second start on FALSE. (no end trigger defined, so defaulted to the opposite value as it's a boolean) This will make sure that at any time 1 event frame is in progress: when the first analysis ends an event frame, the second analysis will immedialtely (no gaps) start a new one, and vice versa.