Implementing PCS 7 APL VlvPosL Block for Position-Controlled

David Krause14 min read
Application NoteProcess ControlSiemens
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Implementing PCS 7 APL VlvPosL Block for Position-Controlled Valves

Overview

The VlvPosL (Valve Position-controlled, Large) block from the Siemens SIMATIC PCS 7 Advanced Process Library (APL) is a motor-operated valve (MOV) control block that supports both continuous (analog setpoint) and discrete (open/close/stop) command paths. It was introduced in APL V8.2 as a successor to VlvMotL for applications where the valve positioner is driven by a 4–20 mA / 0–100% positioning signal rather than only end-position feedback.

Unlike the older VlvAnL and VlvMotL blocks, VlvPosL does not ship with a stock Process Tag Type (PTT) in the APL master data library. Operators building a custom PTT/CMT must combine the channel-driver map of VlvAnL (analog position feedback) with the command logic of VlvMotL (open/close/stop with torque handling). This article consolidates field-proven wiring, feature-bit settings, and feedback-threshold engineering for a typical Profibus/Profinet AUMA-style actuator or any IEC 61131-2 compliant MOV with 4–20 mA positioner.

Key inputs the block expects in a position-controlled application:

  • Actual position (analog, Rbk) – 0–100% scaled from 4–20 mA
  • Actual torque (analog, UserAna1 or UserAna2) – 0–100% or 4–20 mA
  • Torque fault open (digital)
  • Torque fault close (digital)
  • Feedback open / feedback closed (digital, derived from positioner)
  • Selector switch – Local / Remote / Off (or simplified Remote / Non-Remote)
  • Setpoint output (analog, AO 4–20 mA)
Block availability: VlvPosL ships with APL V8.2 and later. The operator dialog and faceplate differ between APL V8.2, V9.0, and V9.1. The screenshots and signal names in this article match the PCS 7 APL Operator Guide (V9.0) and the PCS 7 Advanced Process Library V7.1 manual (historical reference for the I/O structure inherited by later versions).

Prerequisites

  1. PCS 7 installation: SIMATIC PCS 7 V9.0 SPx or V9.1 with the APL library version 9.0 or 9.1 installed. Earlier deployments (V8.2, V8.3) work but use a slightly older faceplate dialog.
  2. APL master data library: Copy the APL V9 master data into the project, then verify that VlvPosL appears in the "Valve" folder of the master data library (Type folder → Valves).
  3. Hardware configuration: A SIMATIC AS 410 station with the appropriate signal modules:
    • 1 × SM 331 (8AI, 6ES7331-1KF02) or SM 431 for the position feedback and torque feedback (4–20 mA, 2-wire or 4-wire transducers)
    • 1 × SM 332 (4AO, 6ES7332-5HD01) for the valve setpoint output (4–20 mA)
    • 1 × SM 321 (16DI) for the digital feedback (open limit, close limit, torque fault open, torque fault close, local/remote selector)
    • 1 × SM 322 (8DO) for open/close/stop command and reset pulse
  4. Actuator GSD: For Profibus/Profinet AUMA actuators, install the AUMA GSD file (e.g. GSDML-V2.3-AUMA-AUMATIC_AC.1-20150416.xml) so that the cyclic process image delivers open/close/stop commands, ready/operate status, and the analog positioner word in integer format (0–1000 typically maps to 0–100% in the channel driver).
  5. CMT library (BPCM): Download the Basic Process Control Module library for the active PCS 7 version. The library does not provide a CMT for VlvPosL; you must derive one from VlvMotL (digital) and VlvAnL (analog) templates.

Signal Mapping to VlvPosL Inputs

The VlvPosL block exposes the same S7 data structure as the other APL valve blocks. The table below shows the recommended I/O assignment for a position-controlled MOV with 4–20 mA positioner. All signal names match the VlvPosL function reference.

VlvPosL I/O Signal type Source Notes
Open, Close, Stop Bool out Channel driver OutDO Drive DO channels on SM 322
Reset (optional) Bool out Channel driver OutDO Only required if actuator latches a fault
Setpoint On Bool out Constant TRUE or hardware wire Must be latched high; otherwise the block ignores the analog SP
SP (setpoint) Real 0–100 % Channel driver OutAO 0% = fully closed, 100% = fully open
Rbk (position feedback) Real 0–100 % Channel driver InAI (4–20 mA) Primary closed-loop feedback
FbkOpen, FbkClose Bool in Channel driver InDI (limit switches) or comparator on Rbk Use comparator on Rbk when limit switches are unreliable
TorqueOpn, TorqueCls Bool in Channel driver InDI (AUMA torque trip) Wire to ExtMsg1 as warning, not direct block interlock
UserAna1 / UserAna2 Real 0–100 % Channel driver InAI (4–20 mA) Use for actual torque; shows in faceplate only
Local / Remote / Off Bool in (1 or 2 DI) Channel driver InDI (selector switch) Drive Local bit; Local = TRUE forces OosAct
External message 1 (ExtMsg1) Bool in Channel driver InDI (TorqueOpn OR TorqueCls) Map to message class "Warning, high priority"
Setpoint On is mandatory. If the SetpointOn bit is FALSE, the block enters the discrete-command mode and ignores the analog SP. Operators will see a "Valve not responding" symptom on the faceplate. Latch the bit via a CFC constant or hardwire the actuator's "remote-ready" terminal.

Wiring the Channel Drivers

APL channel drivers (Ch_Drv) convert the raw S7 I/O signal to the engineering unit the block expects. For an AUMA Profibus actuator, the cyclic telegram already delivers a scaled 0–1000 integer for position. Use a Ch_DInt to scale it to 0.0–100.0 Real:

  1. Position feedback (In): Insert a Ch_AI (4–20 mA) or a Ch_DInt (Profibus scaled value) between the hardware symbol and the Rbk input. Configure:
    UpperRange = 100.0, LowerRange = 0.0, SignalStatus = good
  2. Torque feedback (In): Insert a Ch_AI for the 4–20 mA torque transducer. Wire the output to UserAna1. The torque value appears in the faceplate Standard view under "User Analog 1".
  3. Setpoint (Out): Insert a Ch_AO between SP and the SM 332 output channel. The block writes 0.0–100.0; the Ch_AO converts to 4–20 mA.
  4. Open/Close/Stop (Out): Use a Ch_DO for each command bit. For an AUMA actuator, the Open/Close/Stop commands are typically one byte in the cyclic output, so a single Ch_DOut byte-channel with Bit0 = Open, Bit1 = Close, Bit2 = Stop is more efficient than three DO channels.
  5. Limit feedback (In): When the actuator does not have hard-wired open/close limit switches (some Profibus actuators return them in the cyclic word), use a CFC CompAn block on Rbk:
    FbkOpen = Rbk > 97.0; FbkClose = Rbk < 3.0
    This prevents spurious MonDynT (dynamic monitoring) timeouts that occur when the digital limit switches lag behind the positioner.
Threshold engineering. The 3% / 97% thresholds are conservative. A tighter dead-band (for example 1% / 99%) reduces overshoot but increases nuisance trips when the actuator cannot achieve a true 0% or 100% (e.g. due to seat wear or torque trip). Validate with a stroke test before commissioning.

Configuring the Feature Bits

VlvPosL feature bits control whether the block accepts the analog setpoint, the open/close commands, the reset command, and the level of operator authorization. The exact bit names depend on the APL version. Refer to the PCS 7 APL V7.1 manual (still authoritative for the data structure) for the complete list. The most relevant bits for a position-controlled MOV are:

Feature bit Recommended value Rationale
Feature.Bit0 – Open/Close command enable TRUE Allows Open and Close commands in operator mode
Feature.Bit1 – Stop command enable TRUE Allows Stop from the faceplate
Feature.Bit2 – Reset command enable TRUE if actuator latches faults Clears latched actuator fault state
Feature.Bit3 – Analog setpoint enable TRUE Permits 0–100% SP control
Feature.Bit4 – Local mode interlock TRUE Forces OosAct when Local DI is set
Feature.Bit5 – MonDynT (dynamic monitoring) TRUE Triggers a control-system fault if the valve does not reach the commanded position within the configured time
Feature.Bit6 – MonTi (static monitoring) TRUE Triggers a fault if the valve leaves the commanded position while idle

Configure the time values:

  • MotorTime (TmMot) = the time the actuator takes for a full 0%→100% stroke at rated torque. Measure with a real stroke test; do not rely on the actuator nameplate. Typical AUMA SA + GS 100.3 stroke: 30–120 s.
  • TmLag = the dead time between a command change and the first measurable position change. Typical 1–3 s.
  • MonDynTi = the dynamic monitoring timeout. Default in APL is 2 × MotorTime. Reduce to 1.5 × MotorTime to detect stuck valves faster.

Open/Close Overshoot Calculation

For discrete open/close commands, VlvPosL pre-computes a stop setpoint to avoid overshoot. According to the VlvPosL function reference:

DeltaPos = 100% × TmLag / MotorTime

When the operator commands "Open" (target 100%), the block internally moves the setpoint to (100% – DeltaPos) so the actuator decelerates and reaches the true 100% position without overshoot. Example: MotorTime = 60 s, TmLag = 2 s → DeltaPos = 3.3%. The block will stop the actuator at approximately 96.7% and let the final 3.3% coast into the open limit switch.

For analog setpoint control, the block does not pre-compute an overshoot correction; the positioner handles deceleration internally. Ensure that the positioner's ramp time is configured for a smooth approach to the setpoint.

Torque Fault Handling Strategy

Direct wiring of TorqueOpn and TorqueCls into the block's permissive inputs causes the valve to stop abruptly and generate a control-system fault, which in many plants is a process trip. The recommended pattern, verified on multiple AUMA installations:

  1. Wire TorqueOpn and TorqueCls in parallel (OR) to the ExtMsg1 input of the same VlvPosL block.
  2. Configure the message class for ExtMsg1 as "Warning, high priority" with the event text "Valve torque trip – field investigation required".
  3. Do not connect the torque signals to the block's command interlock. The block continues to receive commands; the operator can attempt a recovery by toggling the command direction (e.g. close → open → close).
  4. If the operator commands the same direction a second time and the torque trip re-occurs, the message persists. The next step is to dispatch a field operator to switch the actuator to Local, jog it free with the manual handwheel, and clear the trip.
Why not interlock the torque trip? A jammed-closed valve (e.g. debris in the seat) is a process problem, not a control-system problem. Tripping the control loop on a torque fault triggers an unwanted ESD/SIS action. The "warning + manual recovery" pattern keeps the process under operator control while still flagging the condition in the alarm log.

Selector Switch Wiring (Local / Remote / Off)

Many pneumatic and electric actuators expose a 3-position selector switch. The wiring into VlvPosL is:

  • Local DI = TRUE when the switch is in Local or Off. This forces the block into OOS (out-of-service).
  • The Remote position pulls Local FALSE, enabling Aut and Man operator modes.

For installations where the switch has only Remote and Non-Remote (Local+Off combined), the wiring simplifies to a single DI: Local = TRUE → OOS. The faceplate displays "Not in Remote" in the status line, which is sufficient for operator diagnosis.

Step-by-Step Commissioning Procedure

  1. Compile the S7 program and download to the AS 410. Verify in SIMATIC Manager that the CFC chart containing the VlvPosL block has a green "OK" status.
  2. Open the S7-PLCSIM or HMI and navigate to the valve faceplate. Confirm the block is in OosAct on first load (no operator mode until Local = FALSE).
  3. Switch the actuator to Remote at the field junction box. Verify the Local DI reads FALSE in the CFC online view.
  4. Change the operator mode to Man (manual) from the faceplate. Issue an Open command at 50% via the analog setpoint slider. Observe Rbk rising. The position should reach 50% within approximately 30 s (50% of a 60 s stroke).
  5. Issue a 100% command. Verify FbkOpen sets within 1–3 s of Rbk crossing 97%. The block should not raise a MonDynT alarm.
  6. Command 0% (close). Verify FbkClose sets when Rbk drops below 3%.
  7. Toggle Local on the selector switch. Verify the block transitions to OosAct and the faceplate disables the Open/Close buttons.
  8. Force the TorqueOpn DI to TRUE (use a CFC force or jumper the field terminal). Verify the ExtMsg1 alarm appears in the alarm log with the configured message class.
  9. Unforce the DI and issue a Reset (if enabled). The alarm should clear.
  10. Switch to Aut and connect the block to the upstream PID or sequence program. Verify cascade behaviour with a step change in the master setpoint.

Verification Checklist

Check Expected result Pass/Fail
Block compiles without errors Green status in CFC
SetpointOn is TRUE in all operating modes TRUE when in Aut/Man
Position feedback tracks setpoint within ±2% Stable closed loop
FbkOpen triggers above 97% of Rbk No spurious trips
FbkClose triggers below 3% of Rbk No spurious trips
Torque fault raises warning only, not control-system fault Alarm class = Warning, high
Selector switch Local forces OOS Faceplate shows "Not in Remote"
Dynamic monitoring timeout matches measured stroke time × 1.5 No MonDynT on normal strokes
Open/close overshoot within ±1% No mechanical end-stop hits
Reset command clears latched actuator faults ExtMsg1 returns to GOOD

Troubleshooting Matrix

Symptom Likely root cause Corrective action
Valve does not respond to analog SP from faceplate SetpointOn is FALSE Latch SetpointOn TRUE in CFC or hardwire the actuator's remote-ready terminal
MonDynT alarm on every close command Limit switches lag behind positioner; FbkClose arrives after timeout Replace hardwired FbkClose with a comparator on Rbk (< 3%)
Valve overshoots the commanded position by 5–10% TmLag too small; MotorTime too small Re-measure the actual stroke time; increase TmLag to the measured dead time
Faceplate shows "Not in Remote" persistently Selector switch wiring inverted Verify DI polarity; check that Remote position pulls the DI low
Torque trip generates a process trip TorqueOpn/TorqueCls wired to interlock instead of ExtMsg1 Re-wire to ExtMsg1; change message class to Warning
Position feedback reads 0% or 100% constantly 4–20 mA loop broken; AI channel failed Measure mA at the SM 331 terminals; check the transducer supply
Block will not leave OOS Local DI is TRUE (selector in Local or Off) Turn the selector to Remote at the actuator
Open/Close commands work, but analog SP does not Feature.Bit3 = FALSE (setpoint disabled) Enable analog setpoint feature bit
CMT/PTT not visible in the master data library VlvPosL was added in APL V8.2; no stock CMT Build a custom CMT by combining VlvMotL + VlvAnL templates

Notes on CMT/PTT Construction

Since Siemens does not ship a CMT for VlvPosL in the BPCM library, you must construct one. The standard approach:

  1. Open the APL master data library and locate VlvMotL (ValveMotor PTT) and VlvAnL (ValveAnalog PTT) CMTs.
  2. Duplicate the VlvMotL CMT and rename it to VlvPosL in your project library.
  3. Add the channel drivers from VlvAnL (the analog positioner AI/AO) to the new CMT.
  4. Map the feature bits to the union of the two source CMTs, retaining the analog setpoint features of VlvAnL and the torque handling of VlvMotL.
  5. Compile and version-control the new CMT in the project master data library.

Siemens has signaled that the PCS 7 master data library will not be updated with a stock CMT for VlvPosL because the CMT concept is being phased out in favor of CMT-S (Sequential) and APL-NG blocks. For greenfield projects on PCS 7 V9.1 or later, evaluate the new VlvPosL_NG block from the APL-NG library, which does include a CMT.

Field-Proven Cautions

  • Do not connect torque trips to the VlvPosL command interlock. A torque trip indicates a process issue (jammed seat, debris) and is not a control-system fault. Interlocking creates spurious ESD events.
  • Do not rely on hardware limit switches for FbkOpen/FbkClose when the actuator has a positioner. The positioner can hold the valve at 95% with the open limit switch still open. Use the comparator on Rbk for higher availability.
  • Always measure the actual stroke time during commissioning. The actuator nameplate value is typically a maximum at no-load. Loaded conditions add 20–40% to the stroke time.
  • Always latch SetpointOn TRUE for position-controlled valves. A momentary FALSE forces the valve to ignore the analog SP and respond only to discrete commands, which surprises operators.
  • Test the Reset path during the SAT. Some AUMA actuators require a specific reset pulse width (typically 100–500 ms); a continuous high on the reset wire is ignored.

Related Documentation

What is the difference between VlvPosL and VlvAnL in PCS 7 APL?

VlvAnL is a pure analog positioner block (no open/close/stop discrete commands, no torque handling), while VlvPosL combines the analog positioner I/O of VlvAnL with the discrete command logic and torque fault handling of VlvMotL. Use VlvPosL when the actuator supports both analog setpoint and discrete open/close/stop commands plus torque trip feedback.

Why does VlvPosL not have a stock CMT in the APL master data library?

Siemens introduced VlvPosL in APL V8.2 but has not shipped a corresponding Process Tag Type (PTT/CMT) in the BPCM library. The block is configured by combining the VlvMotL and VlvAnL templates manually, or by building a custom CMT in the project master data library. APL-NG (PCS 7 V9.1+) ships VlvPosL_NG with a native CMT.

How should torque faults be wired into VlvPosL?

Wire TorqueOpn and TorqueCls in parallel to the ExtMsg1 input and set the message class to "Warning, high priority". Do not wire the torque signals to the block's command interlock, because that converts a process issue into a control-system fault and can trigger an unwanted ESD/SIS action.

What feedback thresholds should I use for FbkOpen and FbkClose?

Use a comparator on the Rbk (position feedback) input rather than the hardware limit switches. A common field setting is FbkOpen = Rbk > 97% and FbkClose = Rbk < 3%. Tighter dead-bands reduce overshoot but increase nuisance trips when the actuator cannot reach a true 0% or 100% due to seat wear or torque trip.

What is the DeltaPos formula used by VlvPosL for open/close overshoot prevention?

DeltaPos = 100% × TmLag / MotorTime. With MotorTime = 60 s and TmLag = 2 s, DeltaPos = 3.3%. When the operator commands Open, the block pre-positions the setpoint at 96.7% so the actuator decelerates and reaches the true 100% open limit without mechanical overshoot.

Back to blog