7 Replies Latest reply on Nov 22, 2018 6:41 PM by BenoitC

    Custom Bar


      Hello everyone


      Is there a way to draw a custom bar in Process Book  that looks like figure attached? (see attachment)


      Of course Min Max and boundaries red/yellow/green must be configurable.



        • Re: Custom Bar
          Rhys Kirk

          Interesting...about 3 years ago I built something in ProcessBook that did that, but it was VBA intensive. The post (from the vCampus days) is here:

          Re: The High Performance HMI Handbook



          It would probably be difficult to build something like that and use it throughout your displays, especially if your next question is how to have that hosted in PI Coresight too.

          • Re: Custom Bar
            André Åsheim

            Advanced version = VBA coding (see Rhys Kirk example above)


            Simple version = Multi state

            The multi state approach doesn't allow you to see where the limits are but you can configure the bar to change colors based on its values. I've done this in my displays when I wanted to highlight the status.
            Warning state:


            Ok state:

              • Re: Custom Bar

                Rhys thanks for your answer. I'm expert enough in VBA to undestand complex code, and YES, a couple of days ago, I read some

                about High performance HMI book, and my first thought was how to apply book's concepts to a Process Book display.


                @Andre thanks for you suggestion, I know how to use multistate, but having a dedicate bar control would be best solution.



              • Re: Custom Bar

                I have toyed about with some ideas on this, I like to try and avoid VBA as much as possible as it means displays can be reused in PI Web Parts or PI Coresight without any modifications required.


                Here is a little idea I had on this. Use AF to define each tag you wish to represent as a custom bar display. There are attributes for Max/Zero/HI/HIHI/LO/LOLO. Each of these has a child attribute called % which uses the value and span (Max-Zero) to determine it's percentage (0-100). The reason for this is that we (unfortunately) can't have dynamic values for the span of the bar graphs, so they all need converted to a 0-100 scale in order to work with a template.



                Using these attributes, add bar graphs for each of the limits and colour as appropriate , Max is always 100 (1) colour this as your HIHI.  (2) is HIHI, colour it as your HI. (3) is HI, colour it as your operating limit.etc. etc. For the value, I range this -5 to 100, starting at -5 (experiment with values depending on size of your bar graphs) and make them slightly larger than the limit bar graphs. This is because 0 is not displayed on a bar graph. I have two bar graphs with the actual value, one as my background colour which is positioned slightly lower. Now center align the limit graphs, center align the value graphs, and move them next to the limits.



                It may not be quite as refined as an arrow pointing at the bar, but it's a solution which will work in web parts/coresight! Now group all objects into a composite, right click and select assign to template. Now you can drag and drop all the value you built from template into processbook and get your dynamic scales.

                2.png 3.png

                You can add Booleans to the alarms so when they are exceeded they can display a yellow warning triangle, red square etc.


                Another type of bar recommended in the High Performance HMI is like below (useful for speed, or valve positions where alarms are not required). Draw a rectangle and repeat it 3 times, then add the value as two bar graphs, again -5 to 100, and overlay as before, then bring the rectangles to the top and middle align them with the bar graphs.


                Assign to template and then drag drop your speed bars onto Processbook display. These are a lot easier to read.



                I hope OSI could add the following to Processbook. Allow the bar graph limits to be set to AF attributes, and make bar graphs from any symbol.

                5 of 5 people found this helpful
                • Re: Custom Bar

                  Dear all,

                  Also me i want to make an custom bar for my displays. For this reason i use rectangle object.

                  Please see the attached display to understand my approach( also are some comments in VB).

                  I hope that my example can be useful for other users.

                  Best regards,


                  • Re: Custom Bar

                    Hello everyone !

                    I know this is and old thread but we designed an activeX based on High performance HMI guidelines:



                    The ActiveX uses another add-in (.dll supported by processbook and our activeX) we built specifically to use AF structures (including limits) into the HP HMI gauge...

                    It has 4 levels of limits:
                         - target (see target symbol on the example)

                         - targer zone (pale blue)

                         - hi/lo limit (light gray zone)

                          -hihi/lolo limit (dark gray , not represented on the print screen)


                    It also support alarms (see yellow circle in the example, alarms are defined with color and shape and numbering codes)

                    Note this has been developped in VB6.



                    - two much gauges in the same page causes the page to lag because each gauge calls an AFSDK function to gather information.

                    - considerable vba coding still necessary into processbook pages that includes the gauge...not as user friendly as the simple bar available in PB.


                    I'll be happy to discuss about what we've done here and share ideas about similar solutions!