Plotting PCS 7 Pump Performance Curves: THD, NPSH, Efficiency, Power
Building real-time pump performance curves inside Siemens PCS 7 requires three engineering layers: (1) instrument-quality field measurements, (2) APL-compliant calculation and monitoring blocks inside the AS, and (3) WinCC trend displays on the OS. This guide walks through each layer with the parameters, formulas, block types, and configuration steps needed to render Total Developed Head (TDH), Net Positive Suction Head (NPSH), pump efficiency (η), and shaft power input (P) as live curves.
1. Pump Performance Curve Fundamentals
A pump performance curve plots four dependent variables against volumetric flow rate (Q):
- Total Developed Head (TDH or H) — the energy added per unit weight of fluid, expressed in meters (or feet) of fluid column.
- Net Positive Suction Head available (NPSHa) — the absolute pressure at the suction flange minus the vapor pressure of the fluid, expressed in meters of fluid.
- Efficiency (η) — hydraulic power output divided by mechanical or electrical power input, dimensionless or expressed in %.
- Power (P) — brake horsepower (BHP) or electrical input power, expressed in kW.
The Hydraulic Institute publishes standardized testing tolerances and the conventional curve layout used by all major OEMs. See the HI Pump Curves tutorial for the reference curve format and acceptance grades (A, B, C) referenced by ISO 9906.
2. Required Field Measurements
To produce instrument-grade curves, the following measurements must be present as 4–20 mA or HART signals wired into the PCS 7 ET 200M / ET 200SP analog input modules:
| Symbol | Variable | Typical Instrument | Engineering Unit |
|---|---|---|---|
| P_suc | Suction flange pressure | Rosemount 3051CD / SITRANS P500 | bar(g) or kPa(a) |
| P_dis | <>Discharge flange pressureRosemount 3051CG / SITRANS P500 | bar(g) | |
| Q | Volumetric flow rate | Endress+Hauser Promag P100 / Rosemount 8750W magmeter | m³/h |
| T_fluid | Fluid temperature | TR10 / TR15 RTD | °C |
| SG | Specific gravity (derived from T_fluid for water) | Calculation in CFC | dimensionless |
| P_atm | Barometric pressure | Site elevation lookup or PTB barometer | bar(a) |
| P_vapor | Fluid vapor pressure | Steam table or polynomial function block | bar(a) |
| P_elec | True electrical power to motor | SENTRON PAC4200 / SINAMICS G120 r0067 / r0034 | kW |
| n_motor | Motor speed (only for VFD-driven pumps) | SINAMICS r0021 / encoder | rpm |
| T_torque | Shaft torque (only for direct mechanical efficiency) | Torquemeter / HBM T10FS | N·m |
3. Calculation Formulas
All formulas must be implemented inside CFC charts on the AS, using the standard PCS 7 arithmetic function blocks (ADD_4, MUL_4, DIV_4, SQR, ABS, POLYG, BREAK).
3.1 Total Developed Head (TDH)
Convert differential pressure across the pump to head, corrected for fluid specific gravity:
H [m] = (P_dis[a] − P_suc[a]) × 10.197 / (SG × ρ_water)
Where ρ_water = 998.2 kg/m³ at 20 °C. If both pressure transmitters report gauge values, first add P_atm to each to get absolute pressure, then take the difference. The 10.197 factor converts bar to meters of water column (mH₂O).
3.2 Net Positive Suction Head available (NPSHa)
NPSHa [m] = ((P_suc[a] − P_vapor[a]) × 10.197) / (SG × ρ_water) + v_suc² / (2 × g)
Velocity head term v_suc²/(2g) is typically < 0.5 m for piping > DN80 and can be neglected for centrifugal pumps with suction pipework ≥ DN100. For hot condensate or boiler-feed service, P_vapor must be computed from the IAPWS-IF97 steam tables inside a PCS 7 POLYG block keyed off measured T_fluid.
3.3 Pump Efficiency (η)
Hydraulic output power divided by electrical input power:
η = (ρ × g × Q × H) / (P_elec × 1000)
with Q in m³/s, H in m, P_elec in kW. If P_elec is read from a SINAMICS drive, use r0034 (motor torque smoothing time) and r0080 (torque utilization); the drive's internal power calculation (r0028 in some firmware) can also be used directly with motor efficiency compensation.
3.4 Shaft / Brake Power
If a torque transducer is installed:
P_shaft [kW] = (T_torque × n_motor × 2 × π) / 60 / 1000
Otherwise, use measured P_elec multiplied by the motor efficiency curve η_motor(load). Catalog motor efficiency at 50%, 75%, and 100% load is sufficient for non-guarantee trending.
4. PCS 7 Prerequisites
| Item | Version | Notes |
|---|---|---|
| PCS 7 | V9.0 SP2 or V9.1 | V8.2 SP1 also supports APL ≥ V8.2 |
| APL Library | APL V9.0 or higher | Includes MonAnL, MonAnS, MotL, MotSpdL
|
| WinCC Explorer | Same version as PCS 7 | Runtime trend & function trend control required |
| SFC / CFC license | Required on ES | For chart compilation |
| Tag Logging | WinCC option | 16 384 tags minimum; archive size tuned for sample rate |
| AS hardware | AS 410 / AS 414 / AS 416 / CPU 410-5H | Firmware ≥ V8.2 |
5. AS Implementation — CFC Charts
Open the PCS 7 plant view, locate the pump unit (e.g., UNIT_P101), and add a new CFC chart PERF_CURVE_P101 next to the existing motor and valve charts.
5.1 Insert the Analog Monitor Blocks
Drop one MonAnL (analog monitor, 4-channel, with limit messages) or MonAnS (single-channel with limit) per calculated value. Wire the raw 4–20 mA signals from the AI channel driver blocks (e.g., Pcs7AnIn / CH_AI) to the PV input. Configure the engineering unit scaling in the channel driver, not the monitor block.
5.2 Calculation Chain for TDH
- Add a
ADD_4block to add P_atm to P_suc(g) producing P_suc(a). - Add a
SUB_4to compute (P_dis(a) − P_suc(a)) in bar. - Multiply by 10.197 using
MUL_4with constant 10.197. - Divide by SG using
DIV_4. - Wire the result to the PV input of a
MonAnLnamedTDH_MON.
5.3 NPSHa and Power Chains
Replicate the structure for NPSHa, replacing P_dis with P_vapor (computed from a POLYG block containing the saturation curve). For P_elec, connect directly to the power transducer HART or the SINAMICS telegrams (use SINA_SPEED or standard telegram 350 for SIMOCODE/SINAMICS pro energy data).
5.4 Efficiency Calculation
Use a dedicated CFC chart ETA_CALC:
- Wire Q in m³/h to a scaling block; convert to m³/s via
MUL_4with constant 2.777e-4. - Multiply ρ (998.2) × g (9.81) × Q [m³/s] × H [m] → hydraulic power in watts.
- Divide by P_elec [W] (multiply kW by 1000 first) to get η.
- Output a 0–100% signal and wire to
MonAnL.ETA.
6. APL Motor Block — UserAna1 / UserAna2
The APL MotL (motor, controllable, with feedback) block exposes two user-definable analog channels per motor instance: UserAna1 and UserAna2. Connect TDH and η to these inputs on the MotL block of the pump's drive. The values will then:
- Display inside the standard motor faceplate popup automatically.
- Be available for trending in the motor popup's internal trend control (2 of the 4 values fit in the default popup layout).
This is the cleanest path if you intend to monitor the values from the standard PCS 7 operator screens, since it preserves the APL look-and-feel, alarm routing, and operator authorization model.
7. WinCC OS — Tag Logging and Archive Configuration
- Open WinCC Explorer → Tag Logging.
- Right-click the
PERFORMANCEarchive (create one if missing) and select Add Tag. Insert the four OS tags:UNIT_P101/TDH,UNIT_P101/NPSHa,UNIT_P101/ETA,UNIT_P101/Power. - Set acquisition cycle = 1 s, archiving cycle = 5 s. For a 24-hour continuous plot, allocate 17 280 samples/tag at 16-bit resolution (~110 kB compressed).
- Open each tag's properties and verify the limit values match the design: TDH 0–120 m, NPSHa 0–30 m, η 0–100 %, P 0–500 kW.
- Confirm the tag is being updated by the AS by checking the WinCC channel diagnostics — the value should change when the field force is applied.
8. Configuring the Trend View
There are two practical options. Choose based on whether you need a pure time-domain trend (default) or a true X-Y curve (Q on the X-axis, TDH/η/P/NPSH on the Y-axis).
8.1 Standard Time Trend (Recommended for Diagnostics)
- Open the PCS 7 OS picture (e.g.,
OVERVIEW_P101.PDL) in Graphics Designer. - Insert a WinCC Online Trend Control from the object palette.
- Add four trend windows; assign one tag each (TDH, NPSHa, η, P).
- Set the time range to 30 minutes, range mode to Relative, common X-axis enabled.
- Bind the Open Picture event of the trend control to a popup faceplate
POP_PERFCURVE.PDLfor full-screen view.
8.2 X-Y Function Trend Control (True Pump Curve)
- Switch the object type to WinCC Function Trend Control (not the online trend). This is required because the X-axis is flow (Q), not time.
- Insert four coordinate pairs: (Q, TDH), (Q, NPSHa), (Q, η), (Q, P). Each curve uses Q as the X source and the corresponding calculated tag as the Y source.
- Set the X-axis range to 0–Q_design (e.g., 0–450 m³/h) and the Y-axes per variable. The Function Trend Control supports independent Y-axes per curve.
- To overlay the manufacturer's published curve, export the OEM curve to a CSV file with
(Q, TDH)pairs, then import via a small WinCC script that creates an internal tag array and a pairedTlgTrendreference. PCS 7 does not ship a direct overlay utility, so a custom C / VBS action is required.
8.3 Reusable Faceplate Pattern
For plant-wide standardization, copy the trend control into a custom faceplate @PerfCurve.pdl that receives the four tag prefixes as structure properties. Instantiate it once per pump in the unit overview picture. This is the same pattern used by PCS 7 for the @MotL faceplate and is mandatory for a multi-pump plant.
9. Optional: Pump Diagnostics Block
For continuous mechanical-condition monitoring in addition to the performance curve, consider the PumpMon function block from the PCS 7 Mechanical Diagnostics library (shipped with PCS 7 V9.0+ under "Optional Libraries → Diagnostics"). The block evaluates:
- Hydraulic deviation from the reference curve (TDH vs. Q).
- Power anomaly vs. η curve.
- Vibration RMS trend (requires IEPE accelerometer on SITRANS DA400).
Configuration is performed in the CFC chart DIAG_PUMP_P101 with the manufacturer's reference curve entered as a POLYG with 8–16 breakpoints. The block exposes status bits QGOOD, DEGRAD, and FAULT that wire directly into the standard PCS 7 alarm line.
10. Verification & Acceptance
- Loop check: With the pump isolated, force P_suc, P_dis, and Q from the field calibrator. Confirm the four calculated values update at the configured sample rate and that scaling matches the engineering unit definition.
-
Alarm test: Force η to 0 % and verify the
MonAnLraises a low-limit alarm routed to the correct operator station. - Archive test: Run the pump for 1 hour across the operating range. Open the WinCC Tag Logging editor and confirm the archive contains ~720 samples per tag.
- Curve overlay: Compare the live X-Y plot against the manufacturer's published curve at three flow points (BEP, 50 %, 110 %). Deviation should be within the ISO 9906 Grade 2B tolerance band: ±10 % on head, ±8 % on efficiency, ±8 % on power.
- Performance verification: Use the comparison data to compute the pump's wire-to-water efficiency, confirming the calculation chain end-to-end.
11. Common Pitfalls and Field-Proven Caveats
- Forgetting the atmosphere. Many suction pressure transmitters are gauge-only. NPSH is an absolute pressure calculation; adding P_atm is mandatory.
- Using motor nameplate FLA for power. Motor current ≠ power. Use a true-power transducer (PAC4200 or SINAMICS r0080/r0082 firmware path).
- Specific gravity drift. If the pumped fluid is not water, SG must come from a live density meter (e.g., Endress+Hauser Promass F 300), not a constant.
- Vapor pressure neglect. For hot water > 80 °C, vapor pressure rises exponentially. Using cold-water P_vapor = 0.023 bar at 20 °C will overstate NPSHa by several meters.
- Sample rate too low. For transient pump trips, a 5 s sample rate misses the surge. Use 200 ms acquisition in the channel driver and 1 s archiving.
- Y-axis mismatch in Function Trend. All four curves share a single X-axis (Q), but each Y-axis must be enabled individually. Skipping the "Display Y-axis" checkbox on the η curve will render it as a flat line.
12. Performance Verification Snapshot
For routine trending, plot the four key metrics against flow and watch the convergence. Use the Grundfos Pump Selection Basics reference for the BEP identification method (operating point where η is maximum). A pump operating at the BEP will show the lowest specific energy consumption (kWh/m³), and the live η value displayed in WinCC should match the catalog value within 2–3 percentage points for a new pump.
For acceptance curves, follow the procedure in the HI test standard (ANSI/HI 14.6 / ISO 9906). Catalog curves are valid for cold water at 20 °C and 1 atm barometric pressure; site curves must be corrected for SG and barometric pressure at site elevation. Reference the Hydraulic Institute Pump Curves tutorial for the correction factors and tolerance grades.
FAQ
Which PCS 7 APL block should I use to monitor TDH and η on the motor faceplate?
Use the APL MotL motor block and wire TDH and η to its UserAna1 and UserAna2 inputs. The values then appear in the standard motor popup and its internal 2-trend control without custom faceplate work.
How do I display a true X-Y pump curve (Q on the X-axis) in WinCC?
Insert a WinCC Function Trend Control in the OS picture, not the standard Online Trend Control. Add four curves each using the flow tag (Q) as the X-source and TDH / NPSHa / η / P as the Y-source. Enable a separate Y-axis per curve.
What is the minimum sample rate for a real-time performance curve?
Configure the CFC chart for 100 ms execution, the channel driver for 200 ms acquisition, and the WinCC archive for 1 s storage. This captures transients during pump start and trip while keeping archive size manageable (~1.5 MB/pump/day at 5 s archiving).
Why does my NPSHa value look unrealistically high?
The most common cause is using gauge pressure at the suction flange without adding barometric pressure. NPSHa is an absolute pressure quantity, so P_suc(a) = P_suc(g) + P_atm must be calculated first. The second most common cause is using the 20 °C vapor pressure for hot service.
Can I overlay the manufacturer's published curve on the live X-Y plot?
Yes. Export the OEM curve as a CSV of (Q, TDH) pairs, load it into WinCC via a VBS startup action as internal tags, and add a second set of four function trend curves pointing to those internal tags. There is no built-in overlay utility, so a small custom script is required.