6 Replies Latest reply on Nov 20, 2015 9:28 PM by asorokina

    Identify or Overlay Events on an SQC Chart


      I have SQC charts in ProcessBook (version, and I would like to overlay event context within the chart itself.  I would prefer to place a vertical line at the point where a certain event occurs.  This event is unrelated to the SQC alarming trigger tags but will help the users understand why an alarm occured.  I could add information to the PB display outside of the control chart, but it not efficient for users browsing through hundreds of data points.  For example, when monitoring a piece of equipment, I would like to see when a maintenance event occured so that I can view alarms in context of that maintenance event.


      I cannot seem to find a way to add other lines or points to an SQC chart.  Has anyone ever done the following programmatically?

      1. added a vertical line to an SQC chart
      2. changed the shape and/or color of a single point on an SQC chart, triggered by an event/tag that is not on the SQC chart


      Here is an example of what I want to do:

      SQC Event Example.jpg




        • Re: Identify or Overlay Events on an SQC Chart

          Hello Cassie,


          I have seen this done in Processbook standard trends programmatically .I am not 100% sure if this could be done in a SQC trend.


          I will be moving this question to PI Developers Club. The PI Developers Club (PI DevClub) is an online offering that provides resources for developing applications and solutions on the PI System.


          In order to know more about this blog section have a look a the following link: PI Developers Club FAQ


          • Re: Identify or Overlay Events on an SQC Chart

            As far as I know, it's not possible to modify the SQC chart at this level of detail. There may be third-party plugins that provide this functionality though.

            • Re: Identify or Overlay Events on an SQC Chart

              Hi Cassie,


              Have you considered using the annotations feature?

              In short, annotations can be added to a specific event in the Archive right from PI Processbook (through the Details and Annotations panel).

              The annotation icons are displayed on the trend right above the annotated events as you can see on the screenshot below. The annotation description can be viewed either through the Details and Annotations panel or by hovering the mouse over the annotation icon on the trend.


              1 of 1 people found this helpful
                • Re: Identify or Overlay Events on an SQC Chart

                  Thanks, Anna!


                  It's definitely an option, just not as clear or "pretty" as the users would prefer.  I think this is great for an immediate solution so I will look into it. The only difficultly I'm having right now is that the annotations seem to just disappear after saving them (both in ProcessBook and SMT) so I'm going to need to troubleshoot that.  I would prefer to automate it when triggered by a certain event anyways so maybe it will work better that way anyhow.


                  I'll let you know how it goes!




                  • Re: Identify or Overlay Events on an SQC Chart

                    I probably should have mentioned that I have Moving Average charts, not individuals charts... because I am now seeing that annotations do not show up on moving average charts.  Is there a feature request in for this?

                      • Re: Identify or Overlay Events on an SQC Chart

                        Another option would be using Trend Cursors (it will give you a vertical line, but no text notes like in annotations).

                        The complication is that once a Trend Cursor is placed on the trend/SQC chart, the chart will stop updating. However, it can be worked around by updating the SQC chart through the Display_DataUpdate event handler:


                        Private Sub Display_DataUpdate()
                        SQCSymbol1.Cursors.Add (SQCSymbol1.StartTime)
                        End Sub


                        I guess that leaves the question of where the cursor timestamps come from. You could always read annotations from the SQC tags or values from another trigger tag.


                        This is not an elegant workaround, but it could be a solution to consider.