PCS 7 Channel Driver Blocks in CFC: Configuration Reference
Channel driver blocks form the I/O boundary layer of every SIMATIC PCS 7 program. They translate raw signal values from ET 200M/SP/HA stations into engineering units, scale them, and feed them into the CFC runtime structure. When you place a CH_AI, CH_DI, or CH_DO block inside a CFC chart you are defining the symbolic I/O interface for the AS, not the physical wiring on the field device. The selection of block type, scaling parameters, and the chart it lives in determines whether your HMI faceplate, archive, and message logic will work in V9.1 SP2 and later.
This reference consolidates field-proven configuration patterns for channel blocks, explains the relationship between APL block structures (VlvAnL, MotSpdCL, PIDConL) and chart-level compilation, and shows how to use Tag Types instead of "Charts compiled as blocks" for reusable templates. The concepts apply to PCS 7 V8.2 through V9.1 SP2 with the APL library V9.1.
1. Architecture: CHANNEL and MODULE Blocks
Siemens separates signal processing in PCS 7 into two distinct block families, following the diagnostic model used across the SIMATIC ET 200 family:
- CHANNEL blocks (CH_AI, CH_AO, CH_DI, CH_DO) process user data — process values, limits, and substitution values. They are placed in the CFC chart in the plant view and are linked to the symbolic I/O of the AS.
- MODULE blocks (MOD_AI, MOD_AO, MOD_DI, MOD_DO) process diagnostics data — channel faults, module status, and rack diagnostics. They live in the diagnostic chart of the AS station and report to the HMI diagnostics screen.
This dual-layer approach is documented in the SIMATIC ET 200SP HA manual collection: the Concept of the Driver and Diagnostics Blocks chapter explains that the driver block (CHANNEL) handles process values while the diagnostics block (MODULE) evaluates status information. The two are linked internally through the same hardware identifier (HW ID), so the symbolic address used in the CFC must match the diagnostic block's view of the channel.
For PCS 7, the standard driver block library is delivered as a separate install (PCS 7 Driver Blocks) and referenced by the PCS 7 main install. The PCS 7 Driver Blocks PDF (entry ID 8787681) lists every block family and its parameter set.
2. Standard Channel Block Catalogue
The PCS 7 driver block library provides three categories of channel blocks, as documented in the Siemens entry ID 8787681 PDF:
| Category | Blocks | Use Case |
|---|---|---|
| Standard channel blocks | CH_AI, CH_AO, CH_DI, CH_DO | Direct I/O signal processing in CFC, mapped 1:1 to a channel |
| Multiplexing blocks | MUX_AI, MUX_DI, DEMUX_AO, DEMUX_DO | Combine or split multiple channel values into a single structure |
| Time/Counting blocks | CH_CNT, CH_TMR, CH_FRQ | Counter and frequency input evaluation for ET 200S counter modules |
Every standard channel block exposes a common parameter set:
-
VALUE— measured/process output (REAL for AI/AO, BOOL for DI/DO) -
ST— signal status (BYTE, per PROFIBUS-PA / PROFINET profile) -
SUBS_V— substitution value used whenQBAD = 1 -
QBAD— quality code (1 = bad / substituted) -
SIM_ON— simulation enable input -
SIM_V— simulation value
APL technology blocks (e.g. VlvAnL, MotSpdCL, PIDConL) consume the VALUE and ST pair as a structure input. That is why the channel block is always an instance placed in the CFC — the structure handover happens via a chart-level connection, not via an inter-block pin link in the editor.
3. APL Block Struct Inputs and the CFC Compilation Question
The APL library (Advanced Process Library, shipped with PCS 7) defines most control blocks as function blocks with structured I/O. A typical analog input pin on PIDConL looks like this in the block interface:
STRUCT
VALUE : REAL; // Process value
ST : BYTE; // Status (per PNO profile)
END_STRUCT
When the CFC editor places a CH_AI instance in the chart and you connect its V pin to the PV input of PIDConL, the compiler generates a connector of type STRUCT. The chart's runtime DB then contains a packed representation, not two separate tags.
The historical workshop approach (PCS 7 V6.x "PCS7 in 10 Days") recommends creating one CFC chart per physical component — one chart per valve, one chart per motor — and placing the channel blocks directly in the same chart as the APL block. This works when:
- The APL block uses scalar (non-struct) I/O, or
- The chart is compiled as a normal sequential chart, not a block instance.
It breaks down when the engineer attempts to compile a chart as a type/block, because the symbol I/O of the resulting block instance cannot expose a STRUCT pin through the "Chart I/O" dialog. The struct flattening required by VlvAnL or MotSpdCL cannot be performed at the chart boundary. As a result, the legacy "compile chart as block" technique is largely deprecated for modern APL work.
VALVE (non-APL) used simple BOOL I/O. With APL, the supported re-use mechanism is Tag Types, not compiled charts.4. Tag Types — The Reusable Template Pattern
Tag Types is the PCS 7 V7.1+ mechanism for generating instance data from a type definition. You create one master CFC chart called the "type chart" and the system multiplies it across the plant for every instance (every valve, every motor, every PID loop). The PCS 7 Compendium (entry ID 109748123) describes Tag Types as the recommended approach for any project with more than three or four repeated components.
4.1 Creating a Tag Type for a Motorized Valve
- In the plant view, create a new folder named
VALVE_TYPES. - Insert a CFC chart named
VLV_TYPE_ANL(the type chart). - Place the APL block
VlvAnLin the chart. - Insert the channel blocks
CH_DI× 4 (position feedbacks, torque, command acknowledge) andCH_DO× 2 (open/close commands). - Connect the
VALUE/SToutputs of each CH_xx to the corresponding struct inputs ofVlvAnL. - Compile the chart (do not set the "Compile chart as block type" option — leave it as a normal type chart).
- Right-click the chart in the plant view and select Create Type → confirm the dialog.
- From the plant view, right-click the destination unit folder, choose Insert Instance, and select
VLV_TYPE_ANL. - For each instance, assign the symbolic I/O addresses through the I/O connection dialog (right-click chart → "Connect to I/O").
Tag Types preserve the STRUCT semantics because the type chart's compiled interface is internal — the CFC compiler generates optimized code per instance. The HMI faceplate of VlvAnL is auto-generated for every instance, retaining full monitoring and control capability.
5. Channel Block Parameter Configuration
The most error-prone step in channel block configuration is parameterization. The following table lists the parameters that are almost always reviewed at commissioning:
| Parameter | Block | Typical Value (Valve AI) | Notes |
|---|---|---|---|
| SCALE | CH_AI | 0.0 .. 100.0 | Engineering unit scaling |
| HR_LIM / LR_LIM | CH_AI | 0.0 / 100.0 | Hardware high/low limits (drives alarm) |
| SUBS_V | CH_AI | 0.0 | Substitution value when QBAD = 1 |
| SIM_ON | CH_AI | 0 | Simulation disable in production |
| SIM_V | CH_AI | 50.0 | Default simulation value |
| MSG_LOCK | CH_xx | 0 | Message suppression (0 = active) |
| ACK_TIMEOUT | CH_DI | 5 s | For command-triggered messages |
SIM_ON = 1, the HMI shows a yellow "SIM" tag on the faceplate. The SFC runtime will also propagate the simulated value downstream. Always force SIM_ON = 0 at site acceptance unless the loop is in a documented simulation phase.6. Channel Block I/O Connection Procedure
The I/O connection dialog is the only place where the symbolic I/O name resolves to a hardware address. The procedure is:
- Open the CFC chart containing the channel block.
- Right-click the block header → Block I/O Connection.
- In the dialog, expand the AS station tree and select the channel (e.g.
DI4/DI0on an ET 200SP HA DI 16x24VDC). - Click Apply. The status line confirms the symbolic address, e.g.
%I0.0/CH0. - For APL blocks that need
VALUE+ST, repeat for the matching status byte. The PCS 7 I/O connection automatically pairs the value and status channels when the source is a PROFINET device with channel diagnostics. - Recompile the AS (AS-OS Compile or full S7 download per the project's change procedure).
For ET 200SP HA, the driver/diagnostic block concept requires the IO device to be configured with channel-granular diagnostics. The TIA Portal ET 200SP HA driver and diagnostics block reference documents how the PIP (Process Image Partition) assignment is created automatically when the IO device is parameterized with channel diagnostics.
7. Common Configuration Errors
| Symptom | Likely Cause | Resolution |
|---|---|---|
| Faceplate shows "??" for value |
QBAD = 1 due to wirebreak or wrong channel address |
Check QBAD in CFC online, verify I/O address in HW Config |
| Valve won't open from HMI |
MSG_LOCK = 1 or output channel not connected |
Reset MSG_LOCK and check CH_DO I/O connection |
| PV shows substitution value in normal operation |
SUBS_ON = 1 or QBAD forced by MODULE block |
Inspect MODULE block, check field wiring and module diagnostics |
| Tag Type instances show identical values | Symbolic I/O not re-assigned per instance | Use "Connect to I/O" for each instance; do not rely on inherited addresses |
| Compilation error: "Struct cannot be exposed as chart I/O" | Chart compiled as block, with APL struct pin | Switch to Tag Type pattern (Section 4) |
8. Channel Block Diagnostic Integration
CHANNEL blocks report signal-level faults (value out of range, simulation active, bad quality). They do not report module-level faults (rack failure, module removed). For module-level diagnostics you must include a MOD_xx block in the diagnostic chart of the AS. The MODULE block exposes:
-
MOD_FAULT— any module-level fault -
CH_FAULT[n]— per-channel fault array -
DIAG— diagnostic record (8 bytes per PNO profile)
For a typical ET 200SP HA station with mixed AI/AO/DI/DO, the diagnostic chart will contain four MODULE blocks. Each one feeds the "Maintenance Station" view of PCS 7 Maintenance. The maintenance screen is OS-scoped; it shows channel numbers, error codes, and recommended actions. When integrating with Asset Management, the maintenance events are forwarded through the Siemens Industry Online Support portal to SIMATIC PCS 7 Maintenance Station.
9. Performance and Runtime Considerations
PCS 7 V9.1 SP2 supports AS 410 (single) and AS 410E (redundant). For a typical project, the runtime budget per channel block is roughly:
| Block | Runtime (typ., AS 410) |
|---|---|
| CH_AI | ~25 µs |
| CH_DI | ~12 µs |
| CH_AO | ~30 µs |
| CH_DO | ~15 µs |
| MOD_xx | ~40 µs (per module) |
For an AS 410 with a 100 ms OB1 cycle and 5,000 I/O channels, the channel block runtime occupies approximately 1.5–2.0% of the cycle. Tag Type instances are no more expensive than manually-placed blocks, because the compiler emits a single optimized instance per tag type. Avoid mixing tag-type charts with manually-edited charts that contain the same block type — the I/O connection will conflict.
10. Migrating from "Charts Compiled as Blocks" to Tag Types
Projects that were built with the V6.x "compile chart as block" pattern can be migrated to the Tag Type pattern without losing faceplate or HMI configuration. The procedure is:
- Open the legacy type chart and identify all
VALUE/STstruct connections. - Recreate the chart as a Tag Type: place the same APL block and the same channel blocks in a fresh chart.
- Use the "Compare and Update" function (CFC → Options → Chart Comparison) to verify the new chart matches the old instance data.
- Re-assign I/O for each instance. The I/O connection dialog accepts the same symbolic names that were used in the legacy chart.
- Delete the old type chart and compile the AS. The HMI OS will pick up the new tag names automatically if you use the standard APL faceplate hierarchy.
11. Verification Checklist
After configuration, walk through this checklist to confirm a clean install:
- [ ] All CH_xx blocks show
QBAD = 0in CFC online view at normal operation. - [ ] SIM_ON is 0 on every channel block in production.
- [ ] HMI faceplate opens, shows live value, and supports operator commands (where applicable).
- [ ] MODULE block shows
MOD_FAULT = 0andCH_FAULT = 0for all channels. - [ ] Tag Type instances each have a unique I/O address — verify with the plant view's "I/O Consistency Check".
- [ ] AS-OS compile completes without warnings.
- [ ] Time stamping of messages is consistent (cross-check AS and OS clocks).
12. Field-Recommended Library Layout
The following hierarchy has proven robust in cement, mining, and water/wastewater projects:
Plant View
├── Master Data Library (read-only)
│ ├── CH_AI, CH_AO, CH_DI, CH_DO, MOD_* (from PCS 7 Driver Blocks)
│ └── VlvAnL, MotSpdCL, PIDConL, ... (from APL)
├── Type Charts
│ ├── VLV_TYPE_ANL (Tag Type master)
│ ├── MTR_TYPE_SPDL (Tag Type master)
│ └── PID_TYPE_STD (Tag Type master)
└── Units (instances)
├── UNIT_100
│ ├── VLV_1001 (instance of VLV_TYPE_ANL)
│ └── MTR_1002 (instance of MTR_TYPE_SPDL)
└── UNIT_200
├── VLV_2001
└── PID_2001
This layout gives the project a clean separation between library, type definitions, and unit-level instances. It also matches what the PCS 7 Compendium describes for distributed engineering with multiple project engineers working in parallel.
Frequently Asked Questions
What is the difference between CHANNEL and MODULE blocks in PCS 7?
CHANNEL blocks (CH_AI, CH_AO, CH_DI, CH_DO) process user process values and substitution logic in the CFC chart. MODULE blocks (MOD_AI, MOD_AO, MOD_DI, MOD_DO) process module-level diagnostics in the diagnostic chart. Both are required for full signal and fault visibility on the Maintenance Station. See the ET 200SP HA driver/diagnostic block concept in the TIA Portal documentation.
Why does my CFC chart fail to compile when I expose a struct pin as Chart I/O?
APL technology blocks such as VlvAnL and MotSpdCL use STRUCT inputs (VALUE + ST). The chart I/O dialog of a "compiled as block" type cannot export a struct pin. The supported pattern is to use Tag Types, where the type chart's internal connections are preserved and the compiler emits optimized code per instance.
Can I keep using the legacy "Charts compiled as blocks" workflow with V9.1 SP2 APL?
Only for non-struct APL blocks. For VlvAnL, MotSpdCL, PIDConL, and any block whose I/O includes a STRUCT (VALUE/ST), use the Tag Types mechanism. The legacy pattern is still valid for older libraries that pre-date the APL struct design.
How do I connect a CH_AI block to a PROFINET device with channel diagnostics?
Open the CFC chart, right-click the CH_AI block header, and select "Block I/O Connection". In the dialog, browse the AS station tree to the IO device and select the channel. The PCS 7 I/O connection automatically pairs the value and status channels when the IO device is configured with channel diagnostics in HW Config or TIA Portal. Recompile the AS after the connection.
Where can I find the official list of PCS 7 channel blocks and their parameters?
The PCS 7 Driver Blocks manual (Siemens entry ID 8787681) is the canonical reference for CH_AI, CH_AO, CH_DI, CH_DO, the multiplexing blocks (MUX/DEMUX), and the counter/timer blocks. It is available as a PDF on the Siemens Industry Online Support portal and lists the parameter set, error codes, and diagnostic behavior for every block in the driver library.