Monitoring pump performance against its pump curve in real time is a powerful way to ensure your system is operating efficiently. Many have found that it is not cost-effective to simply run pumps until they fail. Instead, through monitoring and proactive maintenance, you can save money in the long run.

Hydraulic modelers also can benefit greatly from being able to quickly check how pumps are actually operating along their pump curve. Models can quickly become outdated and inaccurate without review.

What do I need?

  • Data feed of flowrate measured through the pump(s)
  • Measured inlet and discharge pressures
  • (optional) data feed of pump setting or pump speed


Part 1 - Setup a BizBlock for the calculated head difference

  1. Go to the BizBlock tab and create a new BizBlock. Name it Head_Difference.

  2. Click on the new BizBlock to add it to the Workspace.
  3. Toggle it to  Design Mode in the upper left corner. Add two inputs and one output from the BizBlock, mimicking the following screenshot.

    • InPressure = The Data Source representing the measured inlet pressure
    • OutPressure = The Data Source representing the measured discharge pressure

  4. Double click the HeadDifference output object to assign its expression. If you're working in units of PSI and getting head in feet, then you can paste the following expression, otherwise modify the conversion factor "2.31" accordingly.
    HeadDifference = ({@OutPressure}-{@InPressure})*2.31

  5. Save and Run the BizBlock, then double-click the output in  Snapshot mode to ensure the outputs are calculating properly.
  6. You may need to refresh the page to make sure the new BizBlock output is recognized in the next steps.

Part 2 - Create the Pump Curve

  1. Go to the Chart tab and select Pump Efficiency Curve.
  2. Set up the X and Y data to point to the pump flowrate and our above-calculated head difference. The BizBlock output should be called "HeadDiff - HeadDifference" if you used the names in the above steps.
    Feel free to leave the speed curve and speed range unchanged for now, but be sure to chose a Time Range that spans a time when the pump is running.

  1. Click  to add the pump curve chart to the workspace.
  2. On the chart, modify the date range to see if the pump performance has changed over time.
  3. Expand the  Pump Efficiency Options pop up and enter the manufacturers curve or your existing hydraulic model curve data if you have it. Then compare against the measurements.

Optional - Use BizBlock to filter out specific pumps from a pump station

In many cases, SCADA sensors might measure data in and out of a pump station, but not for each individual pump. Let's say we have three pumps at our pump station that each have a status feed, but we only have one total discharge and one inlet and discharge pressure measurement. If we want to retrieve the pump curve for just one of the three pumps, we can filter based on pump status. However, to isolate one of the three pumps, we may want to use a BizBlock to create a new status feed that is on only when our selected pump is on and the others are off.

If this scenario interests you, try the following steps:

  1. Create a new BizBlock, and name it Status_Filter.
  2. Set up inputs for each pump status feed associated with the pump station. Give them generic names: Status1, Status2, etc.

  3. Set up one or more output feeds that select when only a particular pump is on. For example the following expression will return 1 when only the second pump is on, and 0 otherwise.
    IIF( ({@Status1}=0) and ({@Status2}=1) and ({@Status3}=0), 1,0)

  4. Save and run the BizBlock, then check the outputs.
  5. Return to the Pump Efficiency window and input the calculated status filter as the Speed Curve with an appropriate Speed Range (e.g. from 0.5 to 1.1).