Configuring Normalization Range on CTRL_PID with Thermocouple Inputs in SIMATIC PCS 7

Configuring Normalization Range on CTRL_PID with Thermocouple Inputs in SIMATIC PCS 7

In SIMATIC PCS 7 utilizing the classic CTRL_PID block (FB61), the normalization parameters NM_PVHR (High Range) and NM_PVLR (Low Range) must be configured to match the actual physical temperature measurement range of the thermocouple process (e.g., 0.0 °C to 1000.0 °C), rather than raw normalized values. In CTRL_PID, error calculation (ER) is normalized as a percentage of the span defined by NM_PVHR minus NM_PVLR. If an engineer incorrectly leaves these at 0.0 to 1.0 or 0.0 to 100.0 while process temperature operates across hundreds of degrees, the effective proportional gain is multiplied by a factor of ten or one hundred, resulting in severe loop instability and valve oscillation.

Table of Contents

Mathematical Foundation of Normalization in CTRL_PID

In SIMATIC PCS 7 standard library control engineering, the CTRL_PID controller block (FB61) computes its control output based on the normalized system error ER. Unlike modern Advanced Process Library (APL) controllers (PIDConL) which operate directly in physical engineering units, CTRL_PID normalizes both the process value (PV) and setpoint (SP) using the normalization range:

$$\text{Span} = NM_PVHR - NM_PVLR$$
$$PV_{norm} = \frac{PV - NM_PVLR}{\text{Span}} \times 100\%$$
$$SP_{norm} = \frac{SP - NM_PVLR}{\text{Span}} \times 100\%$$
$$ER = SP_{norm} - PV_{norm}$$

The proportional control contribution is calculated as $P = GAIN \times ER$. Consequently, the span $(NM_PVHR - NM_PVLR)$ acts as an inverse scaling factor directly embedded in the loop's proportional gain. If the span is set incorrectly, the controller's effective gain will deviate drastically from the configured GAIN parameter.

Interfacing Thermocouple Inputs with CH_AI and CTRL_PID

When interfacing thermocouple signals (such as Type K, Type J, or PT100) via analog input channel drivers (CH_AI, FB101) to CTRL_PID, engineers often encounter scaling confusion:

Configuration ParameterParameter FunctionTypical Value for Type K (0 to 1000 °C)Operational Impact of MisconfigurationCH_AI.VHRChannel driver high engineering limit1000.0Incorrect engineering units displayed on faceplateCH_AI.VLRChannel driver low engineering limit0.0Offset errors in temperature measurementCTRL_PID.NM_PVHRNormalization range high limit1000.0Gain compression or extreme gain amplificationCTRL_PID.NM_PVLRNormalization range low limit0.0Erroneous zero-point calculation for control error

In some legacy configurations, engineers set CH_AI range to 0.0–1.0 because the analog input module was parameterized for standard temperature formatting (where raw integer values represent tenths of a degree, e.g. 5000 = 500.0 °C). If NM_PVHR is left at 1.0 while PV arrives as 500.0, the error calculation saturates at $\pm 100\%$ indefinitely, locking the controller output at maximum or minimum limits.

Step-by-Step Configuration and Tuning Procedure

To establish proper normalization and achieve stable temperature control with CTRL_PID, execute the following workflow:

  1. Configure Hardware in HW Config: Open the analog input module (e.g., SM 331). Set the channel measurement type to TC-L or TC-K with the appropriate internal or external reference junction compensation.

  2. Parameterize CH_AI Channel Driver: In CFC, connect the peripheral address (IW xxx) to CH_AI.VALUE. Set VHR = 1000.0 (or maximum sensor range) and VLR = 0.0. Set SCALE units to °C.

  3. Align Normalization Limits on CTRL_PID: Connect CH_AI.V directly to CTRL_PID.PV. Open CTRL_PID properties and assign:
    - NM_PVHR = 1000.0
    - NM_PVLR = 0.0
    Ensure that NM_PVHR and NM_PVLR precisely match CH_AI.VHR and CH_AI.VLR.

  4. Configure Manipulated Value Limits: Set LMN_HLM = 100.0% and LMN_LLM = 0.0% corresponding to heating valve or thyristor firing bounds.

  5. Tune PID Parameters: Begin loop tuning with conservative parameters (e.g., $GAIN = 1.0$, $TI = 120.0\text{ s}$, $TD = 20.0\text{ s}$). Crucial Rule: Never modify NM_PVHR or NM_PVLR after tuning, as doing so alters loop gain and requires a complete re-tuning.

Verification

Verify normalization accuracy and control stability through these diagnostic checks:

  1. Error Calculation Check: Place CTRL_PID in Manual mode. Set SP = 250.0 °C and observe PV = 200.0 °C. Verify that the internal error ER calculates as exactly:
    $$\frac{250 - 200}{1000 - 0} \times 100\% = +5.0\%$$
  2. Proportional Kick Response: Switch to Automatic mode. Verify that with $GAIN = 2.0$, the proportional response adds exactly $2.0 \times 5.0\% = 10.0\%$ to the manipulated output LMN.
  3. Online Faceplate Trending: Open the WinCC OS faceplate. Confirm that Process Value and Setpoint display on the exact same 0 to 1000 °C vertical scale without clipping.

Limitations and Operational Precautions

When engineering temperature loops with CTRL_PID, adhere to these operational safeguards:

  • Re-tuning Obligation: If process modifications require changing the operating range (e.g., expanding from 600 °C to 1200 °C), updating NM_PVHR halves the effective gain. The loop MUST be re-tuned immediately to maintain stability.
  • APL Migration Benefits: In newer PCS 7 versions (V8.0, V9.0+), migrate from classic CTRL_PID (FB61) to APL PIDConL (FB1874). PIDConL features independent physical engineering scaling (PV_OpScale) and physical gain parameterization, eliminating normalization gain confusion.
  • Thermocouple Burnout Handling: Ensure CH_AI.SUBS_ON is configured with a safe substitute value (e.g. 0.0 °C) so that a transmitter wire break does not drive heating loops to full 100% output.

Engineer FAQ

Why did the loop oscillate uncontrollably when NM_PVHR was set to 100.0?

If process temperature operates across 1000 °C but NM_PVHR is set to 100.0, a 50 °C temperature error is interpreted as a 50% error instead of a 5% error. This multiplies the loop's effective proportional response by a factor of 10, causing severe hunting.

Can NM_PVHR and NM_PVLR be set to the expected operating window rather than the full sensor range?

Yes. Setting the normalization span to the realistic operating window (e.g. 200 °C to 600 °C) increases controller resolution across the working range, provided the loop is tuned under those exact bounds.

Does modern APL PIDConL use NM_PVHR?

No. The Advanced Process Library (APL) block PIDConL eliminated the NM_PVHR/NM_PVLR normalization paradigm, utilizing PV_OpScale.High and PV_OpScale.Low for faceplate display while calculating gain directly in physical engineering units.

Technical References

Related Articles

Related Tags

  • CTRL_PID
  • PID Tuning
  • Normalization
  • Thermocouple
  • CH_AI
  • PCS 7 V7.1
6 respuestas