Addressing PROFIBUS DP I/O in PCS 7 V9.0 SP2 CFC Charts

David Krause16 min read
Process ControlSiemensTutorial / How-to
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

Addressing PROFIBUS DP Slave I/O in SIMATIC PCS 7 V9.0 SP2 CFC Charts

SIMATIC PCS 7 V9.0 SP2 supports PROFIBUS DP slaves (remote I/O stations, third-party DP devices, ET 200S / ET 200SP / ET 200pro / ET 200iSP) directly through the STEP 7 V5.6 / SIMATIC Manager hardware configuration and exposes their I/O to Continuous Function Charts (CFC) via the standard PCS 7 Advanced Process Library (APL) channel driver blocks. This reference documents the correct method to expose PROFIBUS DP slave channels to a CFC chart using CH_U, CH_I, CH_AI, CH_AO, CH_DI, and CH_DO driver blocks, including hardware configuration, address mapping, signal scaling, diagnostics, and commissioning verification.

Scope: PCS 7 V9.0 SP2 with STEP 7 V5.6 + CFC V9.0 SP2, AS 410 / AS 410E / AS 410-2H / AS 410E-2H, PROFIBUS DP-V0/V1 master on the CPU or CP 443-5 Extended. The same procedure applies to ET 200S, ET 200eco, ET 200pro, ET 200iSP, and third-party DP-V0/V1 slaves whose GSD files are installed in the PCS 7 master project.

PROFIBUS DP Slave I/O in PCS 7 V9.0 SP2 - Overview

PROFIBUS DP (IEC 61158 / IEC 61784) is a master-slave fieldbus used in PCS 7 for distributed I/O. The CPU or a CP 443-5 Extended acts as a DP Class 1 master and polls each configured slave cyclically. Each DP slave is described by a GSD file (General Station Description) that defines its slots, modules, and I/O channel length. The DP-V1 specification allows up to 244 bytes of input and 244 bytes of output per slave in the cyclic telegram; in practice, compact remote I/O devices expose 8 to 64 bytes per direction.

The original question raised on the forum - whether the "Channel Driver" can be used for PROFIBUS DP I/O - is answered: yes. The APL channel driver blocks work transparently on PROFIBUS DP I/O just as they do on central I/O and PROFINET IO. The driver blocks are process-image agnostic; they consume the symbolic address that the STEP 7 compiler generates from the hardware configuration. See the Siemens configuration reference How to configure the distributed I/O on PROFIBUS DP for the official procedure.

The standard procedure to wire PROFIBUS DP signals into a CFC chart in PCS 7 V9.0 SP2 is:

  1. Install the GSD in HW Config (Options → Install GSD File) and rebuild the hardware catalog.
  2. Drag the DP slave from the catalog into the PROFIBUS subnet and assign a unique PROFIBUS address (1-125; 0 reserved for engineering, 126 reserved for broadcast).
  3. Insert the appropriate I/O modules in the slave slots so that the I/O addresses are generated in the process I/O image (PI / PQ).
  4. Compile the AS and download to the AS.
  5. In the CFC chart, insert the matching channel driver block (CH_AI for a 16-bit analog input, CH_DI for a digital input, etc.) and interconnect the symbolic I/O signals.

Prerequisites and Tooling

Item Specification / Article Number Purpose
PCS 7 Engineering Station SIMATIC PCS 7 V9.0 SP2 (6ES7658-1AX68-0YA5 / 6ES7658-1CX68-0YA5) Engineering, HW Config, CFC, compilation
STEP 7 V5.6 SP2 Shipped with PCS 7 V9.0 HW Config (SIMATIC Manager) and S7 program
PCS 7 Advanced Process Library V9.0 SP2 APL block family (CH_U, CH_I, CH_AI, CH_AO, CH_DI, CH_DO, CH_CNT, CH_FBK) Channel driver blocks used in CFC charts
AS 410 controller 6ES7 410-5HX08-0AB0 (CPU 410-5H) or 6ES7 410-3HX08-0AB0 (CPU 410) DP-V1 master via integrated PN/DP interface
CP 443-5 Extended (optional) 6GK7 443-5DX04-0XE0 Additional PROFIBUS master for large networks
RS485 Repeater 6ES7 972-0AA01-0XA0 Segment extension beyond 32 stations / bus length
DP slave / GSD file Manufacturer-specific, e.g. ET 200S IM151-1 HF (6ES7151-1BA02-0AB0), ET 200SP IM155-6 PN HF (6ES7155-6AU00-0CN0), or third-party device Distributed I/O station
Terminating resistor Built into PROFIBUS connectors, 220 Ω active at both ends Bus termination
Always use the GSD file version that matches the firmware of the physical DP slave. Mismatched GSD / firmware combinations are the most common cause of "Slave diagnostics" / "Configuration fault" status in HW Config online.

GSD File Installation and Slave Insertion

Open SIMATIC Manager → open the AS station → open HW Config. With the PROFIBUS subnet selected:

  1. Choose Options → Install GSD File...
  2. Browse to the directory containing the GSD / GSE / GSF files provided by the slave vendor.
  3. Click Install. The device appears in the hardware catalog under the appropriate folder (e.g. PROFIBUS DP → I/O → ET 200S).
  4. If a GSD is already installed, use Options → Install GSD File → Reinstall from Catalog to remove outdated versions and replace them with the new ones.
  5. Drag the slave icon from the catalog onto the PROFIBUS line. The Properties - PROFIBUS Interface dialog opens.

For the official Siemens procedure on assigning a DP slave to a DP master in the TIA / STEP 7 environment, see the Assigning the DP slave to a DP master function manual.

PROFIBUS Address Assignment and Topology Rules

Assign a unique PROFIBUS address between 1 and 125 to each DP slave. Address 0 is reserved for the engineering / master-class-2 (PG / programming device). Address 126 is the broadcast address used by DP services. Address 127 is unused.

Address Meaning
0 Reserved for DP class-2 master (PG / diagnostic)
1-125 Available for DP slaves and additional DP class-2 masters
126 Broadcast / "no address" (for nodes without rotary switches)
127 Unused

Match the configured address with the rotary switch on the physical slave (or the fieldbus address stored in the device, for software-addressable DP-V1 slaves). A mismatch produces the diagnostic message "Slave not found" or "Station failure" in HW Config online. Note: PCS 7 does not enable the bus-address assignment feature (BTF) by default; the physical switch position must match the project address unless the slave supports BTF and BTF is enabled in the DP master properties.

Maximum bus parameters for a DP segment:

  • 32 stations per segment (master + 31 slaves); repeatable with repeater (6ES7 972-0AA01-0XA0) up to 127 stations total.
  • Maximum cable length: 1000 m at 9.6 kbit/s, 400 m at 500 kbit/s, 200 m at 1.5 Mbit/s, 100 m at 12 Mbit/s.
  • Baud rate is set on the DP master; the slaves auto-detect.
  • Termination: 220 Ω active at both ends of the segment (built into the PROFIBUS connector switch).

I/O Address Mapping in HW Config

After inserting the slave, double-click the slots and add the I/O modules. The I/O addresses are generated by HW Config in the process image (PI / PQ). The default address area for PROFINET / PROFIBUS I/O in PCS 7 is 0..8191 bytes for inputs and 0..8191 bytes for outputs. The starting address and the range are visible in the slot properties (Addresses tab).

For a typical ET 200S configuration with a 4DI DC24V digital module (6ES7 131-4BD01-0AA0) and a 2AI / 2AO analog module (6ES7 135-4LB01-0AA0), the generated address pattern looks like:

IB  100..100  (DI module slot 1, 1 byte, 4 channels)
QB  100..100  (DO module slot 2, 1 byte, 4 channels)
IW  200..203  (AI module slot 3, 2 words = 2 channels)
QW  200..203  (AO module slot 4, 2 words = 2 channels)

These absolute addresses can be referenced in the CFC chart's block I/O using either absolute symbols (default: generated by the STEP 7 compiler) or, more commonly in PCS 7, symbolic names from the global symbol table or the chart's own ICON interface. The compact-block I/O guidelines from Rockwell Automation's CompactBlock I/O for PROFIBUS DP datasheet confirm the same address model - inputs and outputs are mapped as consecutive bytes in the I/O image, supporting up to 244 bytes of input and 244 bytes of output per slave.

Channel Driver Blocks in the PCS 7 APL Library

PCS 7 V9.0 SP2 ships the Advanced Process Library V9.0 SP2. The relevant channel drivers for PROFIBUS DP I/O are:

Block Used for Typical PROFIBUS source
CH_U Universal channel driver (pass-through, scaling, mode) Any I/O (default selection when type is uncertain)
CH_AI Analog input with high/low limits, scaling, simulation 2AI / 4AI / 8AI analog modules (IW)
CH_AO Analog output with ramp, limits, interlock 2AO / 4AO analog modules (QW)
CH_DI Digital input with debounce, simulation DI modules (IB bit / byte)
CH_DO Digital output with mode, interlock DO modules (QB bit / byte)
CH_I Integer / binary input (single bit or integer) Word / double-word inputs
CH_CNT Counter input (32-bit) FM 350-1 / FM 350-2 counter module
CH_FBK Feedback (digital output echo) DO echo from actuator

All channel driver blocks share a common ICON interface, so the same scaling, simulation, mode, and alarm wiring applies regardless of whether the source signal comes from the central I/O, PROFINET IO, or PROFIBUS DP. The block does not know - and does not need to know - whether the underlying I/O is on the local backplane or on a remote PROFIBUS slave. The same idea is documented in the Pro-face PROFIBUS DP Slave Driver manual which distinguishes Direct I/O (cyclic process image) from Direct I/O (Packet Transfer) (DP-V1 acyclic); PCS 7 uses the former for the channel driver blocks and the latter for diagnostics / parameterization.

Step-by-Step: Using CH_U/CH_I for PROFIBUS DP I/O in CFC

Procedure for a typical digital input channel from a PROFIBUS DP slave (e.g. ET 200S 4DI module, PROFIBUS address 7):

  1. In SIMATIC Manager, right-click the Charts folder of the AS and choose New Chart.... Type a chart name, e.g. UNIT01_MOTORS. PCS 7 creates a CFC with the standard chart ICON.
  2. Open the chart, then drag CH_DI from the APL library (Libraries → PCS 7 APL V9.0 → Blocks → Driver) into the sheet.
  3. Select the block; in the block I/O, right-click the VALUE input and choose Interconnect to address....
  4. Type the symbolic or absolute address. For a PROFIBUS DP slave addressed at PROFIBUS address 7, with the DI module mapped to byte 100, the absolute address is I 100.0 (bit), IB 100 (byte), or IW 100 (word). The symbolic name (e.g. "DP7_ET200S_DI0") is preferred because it survives HW changes.
  5. Configure the block's MSG_LOCK, SCALE parameters on the block faceplate (or via the ICON menu). For a digital input the typical settings are: SCALE=0, MSG_LOCK=0.
  6. Drag CH_DO into the chart for a digital output. Connect its VALUE input to the upstream logic and its output to Q 100.0 (or the symbolic equivalent).
  7. For analog signals, use CH_AI and connect to IW 200 (the raw 0..27648 / ±27648 value from the analog input module). Set SCALE = 1 (linear 0-100% scaling) or use the engineering unit conversion (e.g. 0..10 V → 0..100 °C).
  8. Compile the chart (Chart → Compile → Chart-as-program). Check the log for 0 errors, 0 warnings before download.
  9. Download the program to the AS (Target system → Download).

Alternatively, use the PCS 7 bulk engineering: in the I/O field of a faceplate / chart, drag the signal from the symbol table or from the slave's process image. PCS 7 automatically inserts the appropriate channel driver and pre-wires the VALUE I/O.

Signal Type, Scaling, and Range Adaptation

PROFIBUS DP analog modules return values according to the SIMATIC S7 analog value representation:

Range Raw value (decimal) Raw value (hex)
Overrange / wire break (positive) 32767 0x7FFF
Nominal upper limit (e.g. 10 V / 20 mA) 27648 0x6C00
Rated range upper 32511 0x7EFF
Zero 0 0x0000
Rated range lower (e.g. -10 V / -20 mA) -32512 0x8100
Underrange (negative overrange) -32768 0x8000

Configure CH_AI with the following ICON parameters for a 0..100% scaled display on the operator faceplate:

  • PV_SCALE=100, PV_FAC=0, SCALE=1 for a 0..100% bar on the faceplate (uses 0..27648 internally).
  • U_SCALE=0, L_SCALE=0 for the physical limits; PV_IN_SCALE=0 for linear interpolation between U_SCALE and L_SCALE.
  • Enable MSG_LOCK=0 (alarms on), SIM_ON=0 (simulation off) for the production instance.
For 4-wire RTD / thermocouple modules (e.g. 6ES7 131-4PF01-0AB0 on ET 200S, or 6ES7 134-4NB51-0AA0 for TC), the raw value is in 0.1 °C or 0.01 °C. Adjust the U_SCALE and L_SCALE accordingly. PCS 7 APL V9.0 also provides CH_AI_R for temperature channels with automatic reference-junction compensation.

Diagnostics, Status, and Error Codes

PROFIBUS DP slaves report diagnostics using DPV0 / DPV1 standard services. The most common error indications you can see from the channel driver perspective:

CH_AI/CH_DI output / status Meaning Typical cause
VALUE = 32767 (0x7FFF) Overrange / wire break Sensor disconnected, input above range, broken cable
VALUE = -32768 (0x8000) Underrange Sensor polarity reversed, signal below range
SUBS_ON=0, QSU_BAD=1 I/O substitution flag set, channel bad PROFIBUS slave lost, station failure, AS in STOP
QBAD=1, CH_FBK.QBAD=1 Process value bad quality Diagnostics from DP slave (e.g. module removed, channel fault, configuration fault)
OB82 (diagnostic interrupt) in CPU diagnostics buffer DP slave raised a diagnostic alarm Look in HW Config online → Slave → Module → Module Information
OB86 (rack failure) PROFIBUS station failure Cable break, slave powered off, duplicate address, EMI
OB100 (warm restart) / OB102 (cold restart) AS re-initialised Channel driver outputs go to safe state (Q0 = 0, QBAD = 1)

To inspect diagnostics on the running AS:

  1. HW Config → Online → Accessible Nodes - confirms that the DP master can see the slave.
  2. HW Config → double-click the slave → DP Slave Diagnostics tab → Station Status 1, 2, 3 (refer to PROFIBUS standard EN 50170 / IEC 61158).
  3. Buffer the diagnostics in WinCC with the @DP_Slave structure variables generated by PCS 7 (PCS 7 generates the standard DP diagnostic tags: <slave_tag>_MODUL_STATUS, STATION_STATUS_1, etc.).

Best Practices for PROFIBUS DP Channel Drivers

  • Use the symbol table or the PCS 7 auto-generated ICON interface, never raw absolute addresses in CFC charts. Absolute addresses break when the hardware is re-configured (slot change, new module, re-ordering). Use the PCS 7 I/O assignment tool to map symbols to hardware channels.
  • Select CH_AI / CH_DI / CH_AO / CH_DO explicitly instead of CH_U when the signal type is known; the faceplate, alarm handling, and limit checks are richer than CH_U's pass-through.
  • Keep a single chart per unit (SFC + CFC in the unit). PCS 7 plant view (component view) is the intended hierarchy: hierarchy folder = unit, chart = sub-unit, block = signal.
  • Use the Plant View / Process Object View in CFC to drag the channel block directly onto the slave's process signal - PCS 7 wires VALUE to the right I/O automatically.
  • Enable diagnostic interrupts (OB82) for critical slaves and route them to the operator faceplate so the operator sees "Sensor 1 wire break" or "Slave not reachable" without inspecting the buffer.
  • Use DP-V1 with class-1 master acyclic services for parameterization of intelligent slaves (e.g. ET 200S with 4AI/4AO HART modules) - this is in addition to the cyclic I/O that the channel drivers handle.
  • Do not connect more than 32 stations per segment; use a repeater (6ES7 972-0AA01-0XA0) when adding stations. PCS 7 rejects HW Config compilations that exceed DP bus parameters.
  • Deactivate unused slots in the slave to keep the configuration deterministic; an empty slot configured for a module that is not physically present triggers a configuration fault.
  • Set the DP master diagnostic address (e.g. 1023 for the AS 410) and verify with Target system → PROFIBUS → Test... in HW Config.

Verification and Commissioning Checklist

  1. Download the HW Config to the AS (Target system → Download to target). CPU should remain in RUN.
  2. Open HW Config → Online. All configured slaves should show status OK. A red or yellow icon indicates a configuration fault or a missing slave.
  3. Online → Module Information → Diagnostics Buffer - must be free of "Station failure" / "Configuration fault" entries.
  4. In WinCC Explorer, activate the picture with the faceplate. The CH_DI.VALUE should toggle when you press a pushbutton on the slave. The CH_DO output should follow the logic.
  5. For an analog input, force the field loop to 4 mA (1 V) and 20 mA (5 V or 10 V depending on module); confirm the CH_AI.VALUE on the faceplate matches 0% and 100% respectively.
  6. Pull a slave connector: OB86 should fire and the corresponding QBAD outputs should go to 1 on all blocks reading that slave.
  7. Re-insert the slave: the diagnostic should clear automatically within 1 second; OB86 incoming should be logged in the diagnostics buffer.
  8. For DP-V1 slaves, run CPU → Module Information → DP-V1 in HW Config and confirm that the acyclic services (read/write record) return the expected parameter mirror.

Troubleshooting Matrix

Symptom Probable cause Diagnostic step Fix
CH_AI / CH_DI shows QBAD=1, value stuck at 0 DP slave not reachable HW Config online → check slave status Verify address, cable, terminating resistor on
Value always 32767 (overrange) Wire break or sensor failure Check wiring, sensor power Replace sensor / repair wire
Value always -32768 (underrange) Polarity reversed Swap signal wires Reconnect with correct polarity
"Station failure" in buffer, OB86 incoming Bus interruption LEDs on DP master and slave Replace cable / repeater, verify 220 Ω termination at both ends
"Configuration fault" on slave Configured slot differs from actual HW Config online → Module Information Insert correct module in slot, re-download HW Config
Driver block not compiling in CFC Wrong FB version in master data library Open the block in STEP 7 → check version Use the APL V9.0 SP2 version from the PCS 7 install
Value updates in CFC but faceplate shows 0% SCALE / L_SCALE / U_SCALE wrong Inspect block ICON Re-enter scaling: L_SCALE=0, U_SCALE=100, PV_IN_SCALE=0
CH_DO output in CFC but output relay not energising Module channel disabled or DO echo wiring wrong Module properties → enable output Enable the output in HW Config, re-download
CH_AI value jumps randomly with normal field signal EMI on PROFIBUS cable, shield not grounded Measure shield resistance at both ends Ground shield at one end only, use bus connector with termination switch off
DP slave comes and goes, intermittent OB86 Loose D-sub connector, baud rate mismatch Re-seat connector, check master baud rate Replace connector, set master baud rate to lowest common denominator
CFC chart does not generate ICON variables Chart not compiled as a unit, or operator-station runtime not updated Right-click the chart → Compile → Chart-as-unit Recompile and download OS server

Frequently Asked Questions

Can the PCS 7 Channel Driver be used for PROFIBUS DP I/O?

Yes. The APL channel driver blocks (CH_AI, CH_AO, CH_DI, CH_DO, CH_U, CH_I) are process-image agnostic and read the symbolic I/O generated by HW Config for PROFIBUS DP, PROFINET, and central I/O alike. Wire the VALUE input of the block to the slave's symbolic address and the driver block does the rest.

Do I need a different block for PROFIBUS PA devices?

Yes, PROFIBUS PA (process automation) is fieldbus-level and is integrated through a DP/PA coupler (e.g. 6ES7 157-0AA82-0XA0) or a DP/PA link (6GK1 415-2BA10). PA devices appear in HW Config with their own GSD and slot structure, but the I/O is still exposed to CFC via the same channel driver blocks.

How do I find the symbolic name of a PROFIBUS DP signal?

Open HW Config, double-click the I/O module, and copy the symbolic name (e.g. DP7_AI0) from the Addresses tab. Alternatively, declare the name in the SIMATIC Manager symbol table and map it to the I/Q address pair, then interconnect the CFC block to the symbol.

What is the maximum number of bytes I can read from a single DP slave?

Per PROFIBUS DP-V1 specification, a slave can expose up to 244 bytes of input and 244 bytes of output in the cyclic telegram. In practice, ET 200S and ET 200SP can be configured with many modules up to the PROFIBUS address space, but compact remote I/O devices (ET 200eco) expose 32 to 64 bytes per direction. The CompactBlock I/O datasheet at Rockwell Automation's CompactBlock I/O for PROFIBUS DP confirms the same 244-byte limit.

My CFC compiles but the faceplate shows "Bad Quality". What should I check?

Check (1) the slave's diagnostics in HW Config online, (2) the QBAD bit on the channel driver, (3) the SUBS_ON bit indicating I/O substitution is active, and (4) whether the AS is in STOP or the chart's instance DB was not downloaded. OB82 / OB86 entries in the CPU diagnostics buffer explain most transient bad-quality events.

Why does the DP slave appear in the catalog but HW Config rejects it on download?

Most often a GSD / firmware mismatch, or a slot that has been configured for a module type that does not exist in the physical slave. Open HW Config → Online → Module Information on the slave to see the exact configuration fault (status byte = 0x05, identifier-related diagnostic).

Back to blog