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)
Prerequisites
- 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.
-
APL master data library: Copy the APL V9 master data into the project, then verify that
VlvPosLappears in the "Valve" folder of the master data library (Type folder → Valves). -
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
-
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). -
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 fromVlvMotL(digital) andVlvAnL(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" |
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:
-
Position feedback (In): Insert a
Ch_AI(4–20 mA) or aCh_DInt(Profibus scaled value) between the hardware symbol and theRbkinput. Configure:
UpperRange = 100.0, LowerRange = 0.0, SignalStatus = good -
Torque feedback (In): Insert a
Ch_AIfor the 4–20 mA torque transducer. Wire the output toUserAna1. The torque value appears in the faceplate Standard view under "User Analog 1". -
Setpoint (Out): Insert a
Ch_AObetweenSPand the SM 332 output channel. The block writes 0.0–100.0; the Ch_AO converts to 4–20 mA. -
Open/Close/Stop (Out): Use a
Ch_DOfor each command bit. For an AUMA actuator, the Open/Close/Stop commands are typically one byte in the cyclic output, so a singleCh_DOutbyte-channel withBit0 = Open, Bit1 = Close, Bit2 = Stopis more efficient than three DO channels. -
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
CompAnblock onRbk:
FbkOpen = Rbk > 97.0; FbkClose = Rbk < 3.0
This prevents spuriousMonDynT(dynamic monitoring) timeouts that occur when the digital limit switches lag behind the positioner.
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:
- Wire
TorqueOpnandTorqueClsin parallel (OR) to theExtMsg1input of the same VlvPosL block. - Configure the message class for
ExtMsg1as "Warning, high priority" with the event text "Valve torque trip – field investigation required". - 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).
- 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.
Selector Switch Wiring (Local / Remote / Off)
Many pneumatic and electric actuators expose a 3-position selector switch. The wiring into VlvPosL is:
-
LocalDI = TRUE when the switch is in Local or Off. This forces the block into OOS (out-of-service). - The Remote position pulls
LocalFALSE, enablingAutandManoperator 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
- 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.
-
Open the S7-PLCSIM or HMI and navigate to the valve faceplate. Confirm the block is in
OosActon first load (no operator mode untilLocal= FALSE). -
Switch the actuator to Remote at the field junction box. Verify the
LocalDI reads FALSE in the CFC online view. -
Change the operator mode to
Man(manual) from the faceplate. Issue an Open command at 50% via the analog setpoint slider. ObserveRbkrising. The position should reach 50% within approximately 30 s (50% of a 60 s stroke). -
Issue a 100% command. Verify
FbkOpensets within 1–3 s ofRbkcrossing 97%. The block should not raise aMonDynTalarm. -
Command 0% (close). Verify
FbkClosesets whenRbkdrops below 3%. -
Toggle Local on the selector switch. Verify the block transitions to
OosActand the faceplate disables the Open/Close buttons. -
Force the
TorqueOpnDI to TRUE (use a CFC force or jumper the field terminal). Verify theExtMsg1alarm appears in the alarm log with the configured message class. - Unforce the DI and issue a Reset (if enabled). The alarm should clear.
-
Switch to
Autand 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:
- Open the APL master data library and locate
VlvMotL(ValveMotor PTT) andVlvAnL(ValveAnalog PTT) CMTs. - Duplicate the
VlvMotLCMT and rename it toVlvPosLin your project library. - Add the channel drivers from
VlvAnL(the analog positioner AI/AO) to the new CMT. - Map the feature bits to the union of the two source CMTs, retaining the analog setpoint features of
VlvAnLand the torque handling ofVlvMotL. - 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
Rbkfor 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
SetpointOnTRUE 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
Resetpath 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
- SIMATIC PCS 7 APL Operator Guide (V9.0) – Faceplate views and standard operator actions
- VlvPosL Functions Reference – Block I/O, formulas, and overshoot calculation
- PCS 7 Advanced Process Library V7.1 Manual – Foundational block descriptions still relevant to V9.x
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.