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.
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:
- Install the GSD in HW Config (Options → Install GSD File) and rebuild the hardware catalog.
- 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).
- 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).
- Compile the AS and download to the AS.
- In the CFC chart, insert the matching channel driver block (
CH_AIfor a 16-bit analog input,CH_DIfor 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 |
GSD File Installation and Slave Insertion
Open SIMATIC Manager → open the AS station → open HW Config. With the PROFIBUS subnet selected:
- Choose
Options → Install GSD File... - Browse to the directory containing the GSD / GSE / GSF files provided by the slave vendor.
- Click Install. The device appears in the hardware catalog under the appropriate folder (e.g.
PROFIBUS DP → I/O → ET 200S). - 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.
- 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):
- 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. - Open the chart, then drag CH_DI from the APL library (Libraries → PCS 7 APL V9.0 → Blocks → Driver) into the sheet.
- Select the block; in the block I/O, right-click the
VALUEinput and choose Interconnect to address.... - 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), orIW 100(word). The symbolic name (e.g."DP7_ET200S_DI0") is preferred because it survives HW changes. - 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. - Drag CH_DO into the chart for a digital output. Connect its
VALUEinput to the upstream logic and its output toQ 100.0(or the symbolic equivalent). - For analog signals, use CH_AI and connect to
IW 200(the raw 0..27648 / ±27648 value from the analog input module). SetSCALE= 1 (linear 0-100% scaling) or use the engineering unit conversion (e.g. 0..10 V → 0..100 °C). - Compile the chart (Chart → Compile → Chart-as-program). Check the log for 0 errors, 0 warnings before download.
- 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=1for a 0..100% bar on the faceplate (uses 0..27648 internally). -
U_SCALE=0,L_SCALE=0for the physical limits;PV_IN_SCALE=0for linear interpolation betweenU_SCALEandL_SCALE. - Enable
MSG_LOCK=0(alarms on),SIM_ON=0(simulation off) for the production instance.
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:
- HW Config → Online → Accessible Nodes - confirms that the DP master can see the slave.
- HW Config → double-click the slave → DP Slave Diagnostics tab → Station Status 1, 2, 3 (refer to PROFIBUS standard EN 50170 / IEC 61158).
- 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
VALUEto 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
- Download the HW Config to the AS (Target system → Download to target). CPU should remain in RUN.
- Open HW Config → Online. All configured slaves should show status OK. A red or yellow icon indicates a configuration fault or a missing slave.
- Online → Module Information → Diagnostics Buffer - must be free of "Station failure" / "Configuration fault" entries.
- In WinCC Explorer, activate the picture with the faceplate. The
CH_DI.VALUEshould toggle when you press a pushbutton on the slave. TheCH_DOoutput should follow the logic. - 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.VALUEon the faceplate matches 0% and 100% respectively. - Pull a slave connector: OB86 should fire and the corresponding
QBADoutputs should go to 1 on all blocks reading that slave. - Re-insert the slave: the diagnostic should clear automatically within 1 second; OB86 incoming should be logged in the diagnostics buffer.
- 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).