Horizontal Tank with Fill/Level Indicator

I have seen where you can subtract a square from a circle but it leaves the nasty looking edge. I would essentially like to take the cylindrical tank component and rotate it by 90 degrees. I can do that but the fill still tries to remain in the vertical state. Any help?

Reference to first sentence.

Use a tank symbol from the symbol factory and then put a progress bar on it?

No can do, cant seem to rotate the progress bar, and ultimately a fill level is wanted.

You can just uncheck Horizontal on the progress bar to make it go vertical, or use a Level Indicator instead.

The Level Indicator Works, but with the tank with the rounded edges, it leaves that area empty.

If you want perfect you will have to draw it all out with the level indicator behind, and some other shapes in front masking out parts.

It’s still surprising to see people placing so much effort and time into doing things the “old” way. Just because you can make pretty graphics and animations it doesnt mean you should… in fact there is a lot of research to suggest it should be avoided.

I highly recommend the ASM guidelines (https://www.asmconsortium.net/deployment/guidelines/Pages/default.aspx) and high performance handbook (https://www.amazon.com/High-Performance-HMI-Handbook-Comprehensive-ebook/dp/B00CELQJU8).

These books go into lots of details about the advantages of keeping graphics simple and the advantages for operators (namely, identifying and addressing abnormal situations). In our example here, the pretty rounded-edges tank would be replaced with a simple bar chart and a sparkline graph showing the last x mins/hrs etc. This lets the operator access the process at a glance and check where the level is in respect to the desired limits, alarm limits and if the process is tracking as desired.

Now, I dont know your project and the context of the question more than is provided so please dont take this message as negative criticism! I’m just trying to raise awareness! I too have made lots of pretty pages in my time but have been converted after implementing, deploying and using an ASM-based system vs traditional. The first impressions are “This is bland…” but it doesnt take long to realise the advantages and to start relying on them!

Good luck!


I am in 100% agreement. We have been following the HPHMI (High Performance HMI) guidelines on our systems.
The operators take a few days to adjust to it but overall it is a much cleaner, easier to operate system.

If I understand what you’re looking for this can be achieved with fairly minimal work.

  1. Draw a rectangle to the basic size that you’re wanting for your tank, and round the corners until you achieve the look you’re going for.
    –Change the name to Border
    –Change the background color to transparent
  2. Duplicate the first shape
  3. Draw another rectangle.
  4. Set the size of all three shapes so that they are equal.
  5. Select the non-rounded corner rectangle first and then the duplicated rounded corner rectangle. Make certain that they are aligned on vertical and horizontal center.
  6. Select the Difference operation from the shape menu, this will subtract the rounded corner rectangle from the non-rounded corner rectangle, effectively creating a mask.
    –Change the name of the resultant shape to Mask
    –Set the Fill pain to match the background
    –Set the stroke paint to transparent to get rid of the rectangle border
  7. Create a Level Indicator and make it the same size as the other shapes.
  8. Send the Level Indicator to the back of the z-order.
  9. Set the Mask to the front of the z-order

I created the following graphic using these steps.

You can also create a gradient to make the shape feel 3D if you wanted. Here is an example where I did something similar to this on one of our dashboards.

1 Like

Thanks for the references, vds. I had been following guidelines in ISA 18.2-2009 (Management of alarm systems for the process industries) which make many of the same points about HMI design - carefully-designed, consistent, and ‘bland’ pays dividends in cases of upsets. My plant is a bunch of simple stuff with 2 large, complicated systems with many things that can go wrong and I’m starting from scratch (all systems did it differently, conflicting color coding, no trends anywhere, etc.)