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
- Architecture and Fundamental Mechanics
- Step-by-Step Implementation Procedure
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
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
-
Determine Actuator Interface Requirements:
a. If the field actuator accepts a continuous analog signal (4–20 mA, 0–10 V, PROFIBUS/PROFINET position setpoint), evaluatePIDConLvs.PIDConR.
b. If the field actuator is driven by digital contactors (Open/Close pulses) without position feedback, selectPIDStepL. -
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.
-
Parameterizing PIDConR for Velocity Dynamics:
a. Connect process valuePVfromPcs7AnIn.PV_Out.
b. SetGain($K_p$),TI(integral action time in seconds), andTD(derivative action time).
c. ConfigurePropFacSP(proportional action on setpoint change) to reduce overshoot.
d. SetRestartparameter to enable smooth re-initialization during manual/auto switching. -
Parameterizing PIDStepL for Motorized Actuators:
a. ConnectPVfrom the process transmitter.
b. Set motor runtime parameterMTRTM(Motor Traveling Time from fully closed to fully open in seconds).
c. Configure minimum pulse durationMinPulseand minimum break timeMinBreakto protect mechanical contactors from chatter.
d. Connect outputsOutOpenandOutCloseto digital output channel drivers (Pcs7DiOu).
Verification
- In CFC Test Mode, monitor the controller response to a step setpoint change (
SP_Lior operator faceplateSP_Int). - For
PIDConR: observe smooth transitions atMVwithout derivative spikes or integral bumps when transitioning between Manual and Auto. - For
PIDStepL: verify thatOutOpenandOutClosefire digital pulses with pulse lengths proportional to the control deviation, and that pulses cease oncePVenters the configured deadband (Deadband). - 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
- SIMATIC PCS 7 Advanced Process Library (APL) Function Manual - Control Blocks
- SIMATIC S7-400 System Architecture and Controller Configuration Guide
- Control Loop Foundation: Batch and Continuous Processes (ISA Standard Guide)
Related Articles
- Implementing Mass Feedback Simulation for Motors and Valves in SIMATIC PCS 7 APL
- Configuring APL Channel Driver Pcs7AnIn (FB1869) Bipolar Measuring Ranges and Substitute Values with Feature Bit 29
- Interconnecting APL Channel Drivers (Pcs7AnIn, Pcs7DiIn, Pcs7AnOu) with Monitoring Blocks
Related Tags
- PIDConL
- PIDConR
- PIDStepL
- APL
- Velocity Algorithm
- Control Loop