Problem Statement
The SIMATIC DP/DP Coupler is a two-sided PROFIBUS DP slave that bridges two independent DP networks. It continuously copies the output image of master A into the input image of master B and vice versa, allowing two otherwise-isolated PLCs (or an S7 and a third-party controller) to exchange up to 64 bytes of input and 64 bytes of output per side. When the coupler does not come online, neither master sees the slave in its online diagnostics, the process image stays at zero on both PLCs, and any cross-network handshake stalls.
The most common symptom is "DP/DP Coupler not online at all" — the slave simply does not appear in the master's accessible nodes view, regardless of how many times the project is downloaded. This article covers the SIMATIC DP/DP Coupler 6ES7158-0AD01-0XA0 and successor 6ES7158-0AD02-0XA0, plus the Helmholz 700-158-0AD02 drop-in variant. The same diagnostic flow applies to all three because they share the GSD family.
Failure Mode Matrix
| Rank | Category | Symptom in TIA / STEP 7 | Diagnostic Buffer Entry |
|---|---|---|---|
| 1 | PROFIBUS address mismatch | Coupler absent from "Accessible Nodes" | "DP slave not found" |
| 2 | Length / slot mismatch (A vs B) | Slave online, no I/O exchanged |
0x05 Configuration error |
| 3 | Consistency setting mismatch | Slave online, intermittent data |
0x06 Parameter error |
| 4 | 24 V supply missing / reversed | All LEDs dark on coupler | n/a (no bus interaction) |
| 5 | Bus termination / shield broken | Intermittent or no online | "Bus fault" |
| 6 | Baud rate mismatch on one side | No token pass | "Bus fault" |
| 7 | GSD file missing or wrong revision | Coupler not in hardware catalog | n/a (engineering error) |
Hardware Identification
| MLFB / Catalog No. | Function | Status | Notes |
|---|---|---|---|
| 6ES7158-0AD01-0XA0 | DP/DP Coupler, 64 B I/O per side | Phase-out announced (SIOS 109989704) | DPV0/DPV1/S7, redundant 24 V infeed |
| 6ES7158-0AD02-0XA0 | DP/DP Coupler successor | Active | Drop-in replacement, same GSD structure |
| Helmholz 700-158-0AD02 | Third-party compatible | Active | Identical electrical interface, extended S7-function documentation |
All variants occupy a fixed amount of process I/O: maximum 64 bytes inputs and 64 bytes outputs on each of the two DP sides. This limit is hardware-enforced; exceeding it produces a "Configuration error" diagnostic event even when the GSD file would syntactically accept a longer slot.
The official Siemens DP/DP Coupler manual and the Siemens SiePortal product page are the authoritative references for parameter ranges and lifecycle status.
System Topology
PROFIBUS Address DIP Switch Settings
The coupler uses an 8-section DIP switch bank (S1) on the front of the device to set the PROFIBUS DP station address from 1 to 125. Address 0 is illegal in DP, 126 is reserved for temporary programming devices, and 127 is the broadcast address. Switch encoding is binary, weighted, with the highest-order bit (value 64) at position S1-1 (leftmost on Siemens hardware) and the lowest-order bit (value 1) at S1-8 (rightmost).
| Address | S1-1 (64) | S1-2 (32) | S1-3 (16) | S1-4 (8) | S1-5 (4) | S1-6 (2) | S1-7 (1) | S1-8 (1) | Switch Read |
|---|---|---|---|---|---|---|---|---|---|
| 110 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1101 1100 |
| 111 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1101 1110 |
Worked example for address 110: 64 + 32 + 8 + 4 + 2 = 110. Therefore S1-1 = ON, S1-2 = ON, S1-3 = OFF, S1-4 = ON, S1-5 = ON, S1-6 = ON, S1-7 = OFF, S1-8 = OFF → binary read 1101 1100. Adding the units weight (+1) gives address 111 → S1-7 = ON, all else equal → binary read 1101 1110.
TIA Portal Configuration Procedure
The DP/DP Coupler is installed as a "Universal DP Slave" using its GSD file. Install the GSD via Options → Manage Device Description Files (GSD). The current Siemens GSD family names are SIEM8110.GSD for the original -0AD01 and SIEM8111.GSD for -0AD02-era revisions. Both sides must reference the same GSD revision.
Prerequisites
- TIA Portal V15.1 or later (V17 recommended for S7-1500 with CP 1542-5).
- GSD file installed at engineering station.
- PLC with PROFIBUS DP master port: CPU 31x-2 DP, CPU 41x, ET 200S master interface, CP 443-5 Extended, or CP 1542-5 for S7-1500.
- PROFIBUS cable type A (Siemens 6XV1830-0EH10 or equivalent).
- Terminator at each bus end (built into 6ES7972-0DA00-0AA0 DP connectors).
- Two clean 24 V DC supplies for redundant infeed on the -0AD01 / -0AD02.
Network A Configuration (Master A View)
- Open the Device View of the master A PLC.
- Drag the DP/DP Coupler from the catalog: Other field devices → PROFIBUS DP → Slaves → DP/DP Coupler.
- Assign PROFIBUS address 110: Properties → PROFIBUS interface → PROFIBUS address.
- Insert a universal slot for input length (e.g., 64 bytes in). Add output slots to mirror what master B will send.
- Open Properties → I/O addresses and choose data consistency: Total length (recommended for bulk transfer) or Unit (per-byte/word consistent).
- Compile and download to PLC A.
Network B Configuration (Master B View)
- Open the Device View of the master B PLC.
- Insert the same DP/DP Coupler device at PROFIBUS address 111.
- Mirror the slot layout: what master A defined as inputs is configured as outputs on master B, and vice versa. This is the single most common source of "not online" follow-ups after the slave comes up.
- Match the consistency setting exactly. Total length on side A and Unit on side B = diagnostic event 0x06.
- Compile and download to PLC B.
Data Length and Consistency Matrix
| Side A (Master A view) | Side B (Master B view) | Result |
|---|---|---|
| 64 B input + 64 B output, Total length | 64 B input + 64 B output, Total length | OK — mirrored data |
| 64 B input + 0 B output, Total length | 0 B input + 64 B output, Total length | OK — one-way transfer A → B |
| 64 B input + 64 B output, Total length | 64 B input + 64 B output, Unit | Station failure, diagnostic 0x06 |
| 96 B input + 64 B output (above 64 B limit) | 64 B + 64 B | Configuration error 0x05 |
| 32 B input + 32 B output, Total length | 32 B input + 32 B output, Total length | OK — undersized but valid |
STEP 7 V5.x Configuration Path
If one master is a S7-300 or S7-400 programmed with STEP 7 V5.5 or earlier, the configuration path differs from TIA Portal:
- Open SIMATIC Manager → HW Config.
- Install the GSD: Options → Install GSD File → point to
SIEM8110.GSD. - Drag the DP/DP Coupler from the catalog (path: PROFIBUS DP → Other field devices → Coupler) onto the DP master system.
- Right-click slot 0 → Object Properties → Parameter Assignment. Verify slot length matches side B exactly.
- Set the PROFIBUS address in the slave's PROFIBUS… property page.
- Save, compile, and download the hardware configuration.
- Read the diagnostic buffer online: right-click the slave → Operating Mode → Diagnostic → DP Slave Diagnostics.
For S7-1500 with CP 1542-5, the DP master is the CP (current S7-1500 CPUs have no onboard PROFIBUS master interface). Confirm CP firmware ≥ V2.0 for full DPV1 support; older CP 1542-5 firmware V1.x supports DPV0 only and may reject DPV1-parameterized slaves.
Power-Up, Termination, and Cable Topology
The DP/DP Coupler is a passive PROFIBUS segment device and must be located between the two terminators of its segment, or it must form one of the segment ends itself. Each PROFIBUS segment requires an active bus terminator that engages a 220 Ω resistor across the data lines plus a pull-up/pull-down network on the shield. The Siemens 6ES7972-0DA00-0AA0 90° connector has a switchable terminator; check that it is engaged only at the two physical ends of the bus.
PROFIBUS DP Cable Type A Specifications
| Parameter | Value |
|---|---|
| Characteristic impedance | 135 Ω to 165 Ω (3 to 20 MHz) |
| Loop resistance | ≤ 110 Ω/km |
| Capacitance | ≤ 30 pF/m |
| Conductor cross-section | 0.34 mm² (22 AWG) stranded |
| Shield coverage | ≥ 80 % braid |
| Max segment length at 9.6 kbit/s | 1200 m |
| Max segment length at 187.5 kbit/s | 1000 m |
| Max segment length at 500 kbit/s | 400 m |
| Max segment length at 1.5 Mbit/s | 200 m |
| Max segment length at 3 Mbit/s | 100 m |
| Max segment length at 6 Mbit/s | 100 m |
| Max segment length at 12 Mbit/s | 100 m |
| DP/DP Coupler auto-baud range | 9.6 kbit/s to 12 Mbit/s |
Redundant 24 V Infeed
The -0AD01 and -0AD02 accept two independent 24 V supplies on terminals 1/2 (Channel A) and 3/4 (Channel B). Use diode-OR'd supplies or two independent PSU rails. Load-sharing is internal; the coupler draws from whichever rail is higher. A failure of one rail does not interrupt operation. The official Siemens manual Section 4.2 lists the terminal assignments and permissible fuse ratings (2 A slow-blow per channel).
Online Diagnostics and LED Interpretation
The front panel of the 6ES7158-0AD01 has three LEDs repeated for the two DP ports: BF (Bus Fault), SF (System Fault), ON (Power).
| BF | SF | ON | Meaning | First Action |
|---|---|---|---|---|
| Off | Off | On (green) | Normal cyclic data exchange | None — system healthy |
| On (red) | Off | On | No token or slave not found — address or wiring | Check DIP switch, bus terminators, cable |
| Flashing (red) | Off | On | Configuration mismatch — length or consistency error | Compare slot configuration on both sides |
| Off | On (red) | On | Internal coupler fault | Power cycle; if persistent replace unit |
| Off | Off | Off | No 24 V supply or reversed polarity | Verify supply at terminals 1/2 and 3/4 |
| Flashing (red) | Flashing (red) | On | Firmware checksum error after interrupted update | Re-flash firmware via Siemens Field PG |
DP Diagnostic Telegram Decode
In TIA Portal: Online & Diagnostics → DP Slave Diagnostics. In STEP 7 V5: right-click the slave → DP Slave Diagnostics. The standard DP diagnostic buffer occupies octets 4–7 of the diagnostic telegram:
-
0x01— Station not ready (no power or no bus) -
0x02— Station ready, default configuration (not yet parameterized) -
0x03— Station ready, configured, cyclic data exchange active -
0x04— Watchdog timeout (master not polling) -
0x05— Station ready, configuration error (length/slot mismatch) -
0x06— Station ready, parameter assignment error (consistency mismatch) -
0x07— Station ready, station diagnostics present (read extension) -
0x10— Station ready, enters stop mode -
0x80— Extension diagnostic present (read octets 8+)
A station that returns 0x01 on one side and 0x03 on the other indicates the physical side with 0x01 is the failing segment — start termination and supply checks there.
Common Field Pitfalls
- Two couplers at the same address on the same PROFIBUS segment. When a system uses two DP/DP Couplers, each must have a unique address on each segment it touches. Duplicating an address (e.g., both couplers set to 110 on the same bus) is silently rejected and looks like "not online" from both masters.
- Mirroring mistake. The output of master A becomes the input of master B. Forgetting to mirror yields I/O data silently dropped at one end — no diagnostic event, but the application sees stale zeros.
- DIP switch set, no power cycle. The address is latched only at 24 V power-up. Changing switches during operation does nothing. This is the single most common "set, check, still not online" field report.
- Terminator left off or left on in the middle of the segment. A 220 Ω terminator must be present at each physical segment end. The DP/DP Coupler sits in the middle of its segment by default and does not provide termination. Activating the terminator in a middle connector collapses the signal.
- Baud rate mismatch on one side. The coupler auto-detects baud on each side, but the master's network setting in HW Config must agree with the actual bus speed. If master A runs at 1.5 Mbit/s and master B at 12 Mbit/s on two different buses connected through the coupler, both sides work independently — but if both masters sit on the same physical segment, the faster one overruns the slower one's token.
- GSD revision mismatch. TIA Portal V17 with GSD V2.0 on side A and STEP 7 V5.4 with GSD V1.5 on side B works for basic DPV0 exchange, but if either side uses a GSD that defines a different maximum length (older 32 B limit), the configuration is rejected on the other side.
- Shield grounded only on one end. A floating shield injects noise. Both ends must be bonded to PE within 30 cm of the connector, with the drain wire kept short.
- Connector inserted rotated 180°. PROFIBUS D-sub connectors are keyed but field techs sometimes defeat the key. A reversed connector puts 5 V on the data pair and burns out the transceiver. Check the +5 V pin (pin 6) with a meter before applying power.
- Coupler added to one project only. When the second PLC was programmed, the engineer copied the first project's coupler configuration but forgot to insert the slave into the second master. The second PLC never tries to talk to the coupler; the first PLC reports the slave as missing because it never sees a response.
Latency and Throughput
Data propagates through the DP/DP Coupler with two bus cycle times of latency: one cycle to receive from master A, one cycle to deliver to master B. At 1.5 Mbit/s with a typical 5 ms bus cycle, total transfer latency is approximately 10 ms end-to-end. The coupler adds no application-level delay; the latency is dominated by the slower of the two bus cycles.
Throughput at 1.5 Mbit/s is roughly 100 kbyte/s of useful payload (about 60 % of the raw bit rate after protocol overhead). At 12 Mbit/s the throughput scales to approximately 800 kbyte/s. For deterministic motion data, this is too slow — use PROFINET IRT for sub-millisecond determinism instead.
Cascading Multiple Couplers
When bridging three or more PLCs, use one DP/DP Coupler per pair. Each coupler consumes two PROFIBUS addresses (one per side) and must be assigned a unique address on each segment it touches. Up to 31 slaves per segment is the PROFIBUS DP limit, so a fully-populated 12 Mbit/s segment with 30 ET 200S stations and 2 DP/DP Couplers works, but no spare addresses remain.
Each coupler consumes up to 128 bytes (64 B in + 64 B out) of process image on each of its two masters. On an S7-300 with 2 KB of process image, eight couplers fit; on an S7-1500 with 32 KB, hundreds fit in principle — but each must still be assigned a unique DP address and a unique slot.
Verification Procedure
After applying corrections, run this verification sequence end-to-end:
- Power cycle both couplers and both PLCs. Wait 10 s after 24 V is stable before reading diagnostics.
- On master A, open Online & Diagnostics → Online View. Confirm the coupler at address 110 shows green "OK" status with diagnostic
0x03. - On master B, confirm the coupler at address 111 shows green "OK" status with diagnostic
0x03. - Write a known pattern (e.g., 16#A5A5 in IW0) on master A's output. Read PIW0 on master B — confirm the same value.
- Write a known pattern on master B's output. Read PIW0 on master A — confirm mirror.
- Read I&M0 data (slot 0, index 255) from both sides — confirm identical MANUFAC_ID and ORDER_ID.
- Disconnect one PROFIBUS cable. Confirm the diagnostic buffer on the affected side reports
0x01within one watchdog time and the other side continues to operate normally. - Reconnect the cable, power-cycle both PLCs, confirm normal operation resumes within 10 s.
- Run a 24-hour soak test with all 64 input bytes and 64 output bytes cycling through pseudo-random patterns to catch intermittent consistency or shield problems.
Firmware and Lifecycle
The 6ES7158-0AD01-0XA0 is in product phase-out status per SIOS entry 109989704. Replacement is the 6ES7158-0AD02-0XA0, which is functionally and electrically drop-in compatible. Migrate projects by replacing the device in HW Config or TIA Portal; the I/O mapping remains valid because the GSD file structure is unchanged. Existing spare-parts projects (DPV0 only) continue to operate with the -0AD01 indefinitely; Siemens will provide repair service for ten years from the phase-out announcement. The Helmholz 700-158-0AD02 documented in the Helmholz manual is a form-fit-function equivalent that can be ordered as a long-term spare.
FAQ
Why does the Siemens DP/DP Coupler stay "not online" even though the bus LED on the PLC is green?
The PLC's bus LED reflects the master's token-pass state, not the slave's response. Open the master's online diagnostics and read the slave's status byte: 0x01 means "station not ready" — typically an address, wiring, or supply problem on the coupler. Verify the DIP switches against the value configured in HW Config, confirm 24 V at the coupler terminals, and re-check that the coupler was inserted into the second PLC's hardware configuration.
What is the maximum I/O length per side of a Siemens DP/DP Coupler?
64 bytes of input and 64 bytes of output per network side, for a total of 128 bytes transferred per cycle. Exceeding this limit — even if the GSD file accepts the configuration — produces a diagnostic event 0x05 "Station ready, configuration error" and the slave refuses to enter data exchange. If you need more than 128 bytes per cycle, use two DP/DP Couplers in parallel or migrate to PROFINET.
Do I need to cycle power after changing the PROFIBUS address DIP switches?
Yes. The address is latched only at 24 V DC power-up. Editing switches while the coupler is powered has no effect on the master's polling. Power down for at least 3 s, then re-apply 24 V and confirm the new address appears in the master's "Accessible Nodes" view. The same applies after GSD revisions are swapped in HW Config.
Can I mix Total Length and Unit data consistency between side A and side B?
No. Both sides must use the identical consistency setting. Mixed consistency is a parameter-assignment error and the slave will not exchange process data — diagnostic event 0x06. Choose Total Length for bulk transfer (recommended for arrays and structures) or Unit for byte/word-atomic access, but apply the same choice on both master projects.
Is the Siemens DP/DP Coupler DPV1-compatible?
Yes. The 6ES7158-0AD01 and 6ES7158-0AD02 support DPV0, DPV1, and S7 protocol. DPV1 is required only when one of the masters needs acyclic read/write access to the coupler's I&M data or to invoke the S7 put/get functions. Pure cyclic data exchange works in DPV0 mode and is the default configuration. To use DPV1 with an S7-1500, confirm the CP 1542-5 firmware is V2.0 or later.