Selecting PID Blocks in SIMATIC PCS 7: Positional vs Velocity Form Algorithms (PIDConL, PIDConR, PIDStepL)

Selecting PID Blocks in SIMATIC PCS 7: Positional vs Velocity Form Algorithms (PIDConL, PIDConR, PIDStepL)

In SIMATIC PCS 7 Advanced Process Library (APL), the primary continuous controller PIDConL (FB1874) uses the positional form algorithm, calculating an absolute manipulated variable (MV) based on current error and integral accumulation. If an application strictly requires a velocity form algorithm (outputting incremental rate changes delta-MV rather than absolute positions, or requiring continuous restart without integral windup during mode transitions), engineers must use PIDConR (FB1875 - Continuous Controller with Restarted Response). For integrating mechanical actuators such as motor-driven valves without position feedback, PIDStepL (FB1878 - Step Controller) must be used to natively output incremental pulse steps (Open/Close).

Table of Contents

Executive Summary

Process control engineers often seek velocity form (incremental) PID algorithms to avoid integral windup, facilitate seamless manual-to-automatic transitions, and directly drive integrating actuators like motorized valves. In SIMATIC PCS 7, the standard APL controller PIDConL (FB1874) utilizes the standard positional algorithm where the manipulated variable represents an absolute percentage (0–100%). When applications dictate velocity form behavior or step-rate outputs, PCS 7 provides specialized APL blocks: PIDConR (FB1875) for restarted velocity response and PIDStepL (FB1878) for step-integrating actuators. This guide compares their internal architectures, mathematical formulations, and engineering selection criteria.

Architecture and Fundamental Mechanics

The mathematical distinction between positional and velocity PID formulations is central to block selection:
1. Positional Form (PIDConL, FB1874):
$$MV(t) = K_p \cdot e(t) + \frac{K_p}{T_i} \int_0^t e(\tau) d\tau + K_p \cdot T_d \cdot \frac{de(t)}{dt} + MV_0$$
The output is an absolute control signal (e.g., 4–20 mA valve position). Tracking (MV_TrkOn) and anti-windup clamping (MV_HiLim, MV_LoLim) are required to prevent integrator saturation when actuators saturate.
2. Velocity / Incremental Form (PIDConR, FB1875):
$$\Delta MV(k) = MV(k) - MV(k-1) = K_p [e(k) - e(k-1)] + \frac{K_p \cdot T_s}{T_i} e(k) + \frac{K_p \cdot T_d}{T_s} [e(k) - 2e(k-1) + e(k-2)]$$
PIDConR computes incremental changes per sample interval $T_s$. This algorithm provides restarted response dynamics and is ideal for processes with frequent setpoint changes, cascade secondary loops, or systems requiring integral suppression during startup.
3. Step Controller Form (PIDStepL, FB1878):
Tailored for actuators without analog position transmitters (e.g., electric motorized valves with open/close contactors). The block internally integrates error and generates discrete duration-modulated digital pulses (PulseOpen, PulseClose) proportional to $\Delta MV$, relying on the mechanical motor actuator to integrate the velocity commands into absolute valve stem displacement.

Step-by-Step Implementation Procedure

  1. Determine Actuator Interface Requirements:
    a. If the field actuator accepts a continuous analog signal (4–20 mA, 0–10 V, PROFIBUS/PROFINET position setpoint), evaluate PIDConL vs. PIDConR.
    b. If the field actuator is driven by digital contactors (Open/Close pulses) without position feedback, select PIDStepL.

  2. Selecting and Instantiating the Block in CFC:
    a. Open the CFC chart assigned to cyclic interrupt OB35 (e.g., 100 ms) or OB32 (1 s).
    b. From the PCS 7 APL Catalog (APL \ Control), drag the selected block:

    • PIDConL (FB1874) for standard process loops.
    • PIDConR (FB1875) for restarted/velocity form loops.
    • PIDStepL (FB1878) for motorized step actuators.
  3. Parameterizing PIDConR for Velocity Dynamics:
    a. Connect process value PV from Pcs7AnIn.PV_Out.
    b. Set Gain ($K_p$), TI (integral action time in seconds), and TD (derivative action time).
    c. Configure PropFacSP (proportional action on setpoint change) to reduce overshoot.
    d. Set Restart parameter to enable smooth re-initialization during manual/auto switching.

  4. Parameterizing PIDStepL for Motorized Actuators:
    a. Connect PV from the process transmitter.
    b. Set motor runtime parameter MTRTM (Motor Traveling Time from fully closed to fully open in seconds).
    c. Configure minimum pulse duration MinPulse and minimum break time MinBreak to protect mechanical contactors from chatter.
    d. Connect outputs OutOpen and OutClose to digital output channel drivers (Pcs7DiOu).

Verification

  1. In CFC Test Mode, monitor the controller response to a step setpoint change (SP_Li or operator faceplate SP_Int).
  2. For PIDConR: observe smooth transitions at MV without derivative spikes or integral bumps when transitioning between Manual and Auto.
  3. For PIDStepL: verify that OutOpen and OutClose fire digital pulses with pulse lengths proportional to the control deviation, and that pulses cease once PV enters the configured deadband (Deadband).
  4. Inspect the WinCC OS faceplate: verify that faceplate trends display setpoint, process variable, and manipulated variable tracking accurately.

Limitations and Operational Precautions

PIDStepL requires an accurate motor travel time (MTRTM) parameter matching the physical actuator. If MTRTM is misconfigured, the internal model of valve position will drift from physical position over time unless calibrated by limit switches (FbkOpen, FbkClose).

Engineer FAQ

Does PIDConL support velocity form directly?

No. PIDConL implements the standard positional PID algorithm. However, its anti-windup and tracking inputs allow bumpless transfer comparable to velocity algorithms in most applications.

Why use PIDConR over PIDConL?

PIDConR is specifically engineered for continuous processes requiring restarted response behavior, smooth cascade switching, and improved stability during transient recovery without integral overshoot.

How does PIDStepL operate without valve position feedback?

PIDStepL integrates error internally and computes the required pulse duration based on the configured motor traveling time (MTRTM). It calculates pulse widths so the motor runs just long enough to adjust position by delta-MV.

Can PIDStepL handle end-position limit switches?

Yes. Connect limit switch inputs to FbkOpen and FbkClose. When a limit is reached, the block immediately halts pulsing in that direction and resets its internal integrator.

Which cyclic OB should PID blocks be placed in?

PID blocks should be placed in cyclic interrupt OBs (OB32 to OB35) with fixed execution intervals. The sample time SampleTime parameter must match the OB cycle time.

Technical References

Related Articles

Related Tags

  • PIDConL
  • PIDConR
  • PIDStepL
  • APL
  • Velocity Algorithm
  • Control Loop
20 respuestas