Overview: The Dual-Network Coupling Problem
The Siemens DP/DP Coupler (order number 6GK1571-0BA00-0AA0, variant with conformal coating 6GK1571-0BA00-0AC0) links two independent PROFIBUS DP networks so that the master on each side can exchange process I/O with the master on the other side. The device acts as a DP slave on both networks simultaneously, mapping up to 244 bytes of input and 244 bytes of output data per direction.
Typical supervision architectures place a supervision network on one side of the coupler and one or more controlled networks on the other. When a controlled network becomes unreachable, the supervisor must react differently depending on the cause:
- The peer CPU has been switched off or placed in STOP (a deterministic, "safe" state — the downstream NC valves fall closed on their own).
- The PROFIBUS segment has failed (cable break, repeater failure, EMI, slave fault) — the system is in an unknown state and should trigger a controlled shutdown.
- The DP/DP Coupler itself has an internal fault (PS1/PS2 lost, configuration mismatch, watchdog) — diagnostics must be propagated up to the supervisor so that operators are informed rather than guessing.
Distinguishing those three conditions from a single DP/DP Coupler requires a combination of hardware switch settings and structured evaluation of the diagnostic frame described in the Siemens DP/DP Coupler manual (entry ID 1142696). Helmholz's DP/DP Coupler manual (158-0AD02) documents an equivalent feature set and the LED indicators used in the field.
Prerequisites
| Item | Specification |
|---|---|
| Siemens DP/DP Coupler | 6GK1571-0BA00-0AA0 (or 0AC0 for conformal coating) |
| Supply voltage | 24 V DC on PS1 and PS2, two independent infeeds recommended for redundancy |
| PROFIBUS masters | Any DP master compliant with IEC 61784-1:2002 Ed1 CP 3/1 (DPV0, DPV1, or S7 DP master) |
| STEP 7 | V5.5 SP4 or later; TIA Portal V13 SP1 or later (the diagnostic frame evaluation below targets S7-300/400 with STEP 7 V5.x) |
| GSD file | SIEM8110.GSD (DPV0) or SIEM811A.GSD (DPV1) shipped with the device |
| Function block | SFC 13 DPNRM_DG for reading slave diagnostics (system function block, integrated in the S7 CPU firmware) |
Step 1: Configure the DIL Switches on the Coupler
The DP/DP Coupler exposes four banks of DIL switches on its front panel. Only three of them matter for the diagnostic use case described here; the fourth sets the PROFIBUS station address.
1.1 PS (Power Supply) switch
The PS switch tells the coupler which of its two 24 V inlets is currently active. Setting PS(DP1)=ON declares that PS1 is supplying DP1, PS(DP2)=ON declares that PS2 is supplying DP2. The diagnostic mechanism raises a "PS failed" alarm when the configured supply falls below the internal threshold (~18 V DC). The PS switch must match the physical wiring, otherwise a healthy power supply is reported as failed.
1.2 DIA (Data Validity Indication) switch
This is the central feature for the CPU-STOP vs PROFIBUS-fault distinction.
| DIA switch | Effect |
|---|---|
| OFF | Data validity indication is disabled. The first input byte contains raw data; receivers cannot tell stale from current. |
| ON (DP1) | Bit 0 of the first input byte (LSB) reflects the validity of input data read from network 1, i.e. output data sent to network 2. |
| ON (DP2) | Bit 0 of the first input byte reflects the validity of input data read from network 2, i.e. output data sent to network 1. |
Semantics of the bit:
- 1 = data from the partner network is valid (the partner DP master is in cyclic exchange, configuration matches, and the coupler has received fresh data within the watchdog window).
- 0 = data is invalid (partner silent, configuration mismatch, internal coupler fault, or partner power supply failed when PS is set accordingly).
Set DIA=ON on both DIL switch banks of the coupler so that the validity bit is present in both directions of the exchange. Bit 0 of the LSB input byte is always reserved for the validity flag once DIA=ON; the remaining seven bits of that byte are still usable as process data.
1.3 ADDR (Address) and PROFIBUS address
The PROFIBUS station address is set on the X1 and X2 sides independently. Helmholz's manual confirms the same address range 1…126, default 0 (not valid for cyclic operation). Pick addresses that do not collide with other slaves on either segment.
Step 2: Understand the Diagnostic Frame
Slave diagnostics conform to IEC 61784-1:2002 Ed1 CP 3/1. The frame layout depends on the master's protocol revision:
| Master type | Standard diag. | Status (module diag.) | Module diag. | Total bytes |
|---|---|---|---|---|
| DPV0 master | 6 bytes | — | 16 bytes (replacement-part mode) | 22 |
| DPV1 master | 6 bytes | 4 bytes | 16 bytes | 26 |
| S7 DP master | 6 bytes | 4 bytes | 16 bytes | 26 |
2.1 Standard diagnosis (bytes 0…5)
| Byte | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
|---|---|---|---|---|---|---|---|---|
| 0 | Station status 1 | |||||||
| 1 | Station status 2 | |||||||
| 2 | Station status 3 | |||||||
| 3 | Master PROFIBUS address (FFh = not set) | |||||||
| 4-5 | Ident number (0x8110 for Siemens DP/DP Coupler) | |||||||
Station status 1, bit 6 (stat_diag) and bit 7 (diag_overflow) tell the user program that a status message or module diagnostics block is pending. The Ident number 0x8110 confirms that the slave is a Siemens DP/DP Coupler — use it as a sanity check in the S7 program before evaluating the diagnostic data, especially when the bus contains multiple vendors.
2.2 Status message (bytes 6…9) — DPV1 / S7 masters only
Contains module status bits. The DP/DP Coupler reports a status bit per configured I/O module slot. A status bit = 0 means the module is faulty or has been removed; = 1 means the module is exchanging data normally.
2.3 Module diagnostics (bytes 10…25)
This is where the coupler-specific cause is encoded. The first two bytes (10, 11) carry the module diagnostic header; bytes 12 onwards carry up to four diagnostic entries. Common entries encountered in the field:
| Byte offset | Encoding | Meaning |
|---|---|---|
| 10.0…10.3 | 0x0 | Channel-related diagnostic, no slot |
| 11 | 0x10 | Configuration error (the master's configuration does not match the GSD slot map of the partner network) |
| 11 | 0x11 | Watchdog timeout — partner master is silent |
| 11 | 0x14 | PS1 failed (only raised when PS(DP1)=ON) |
| 11 | 0x15 | PS2 failed (only raised when PS(DP2)=ON) |
Step 3: Use SFC 13 DPNRM_DG to Read the Frame
On an S7-300/400 (or S7-1500 in PROFIBUS mode), SFC 13 DPNRM_DG returns the full slave diagnostic frame of a DP slave. The block is asynchronous; it must be called once to start the read and called again after the busy flag clears to retrieve the data.
3.1 Call interface
// Inputs
REQ := TRUE; // start read on first call
LADDR := W#16#03FF; // diagnostic address of the DP/DP Coupler from HW Config
RET_VAL := MW100; // return value (0 on success)
RECORD := P#DB99.DBX0.0 BYTE 26; // destination buffer, 26 bytes
BUSY := M 110.0; // busy flag, must persist across OB1 cycles
The diagnostic address is taken from HW Config (slot 0 of the DP master system). Use the value assigned to the DP/DP Coupler slave object, not its PROFIBUS station address.
3.2 Interpretation in the user program
// DB99 layout: byte 0 = station_status_1, ...
// byte 6…9 = status, byte 10…25 = module diagnostics
IF DB99.DBB[0] AND 2#01000000 <> 0 THEN // byte 0, bit 6: stat_diag
// diagnostics pending, evaluate the diagnostic frame
IF DB99.DBB[10] = B#16#14 THEN
// PS1 failed
ELSIF DB99.DBB[10] = B#16#15 THEN
// PS2 failed
ELSIF DB99.DBB[10] = B#16#11 THEN
// partner watchdog timeout — peer CPU likely in STOP or powered down,
// OR the partner PROFIBUS segment is broken
END_IF;
END_IF;
// LSB validity bit (requires DIA=ON on the relevant switch bank)
IF (PIW[0] AND 1) = 0 THEN
// partner data is INVALID — do not trust outputs, hold last safe value
// fall back to the NC-valve-only safety path
END_IF;
The validity bit and the watchdog entry together produce the four logical cases the engineer needs:
| Validity bit (DIA) | Watchdog / module diag | Interpretation |
|---|---|---|
| 1 | none | Healthy — partner is exchanging data |
| 0 | none | Coupler could not exchange on partner side, but the partner is still alive. Often caused by a configuration mismatch on the partner master (DPV0/DPV1 mismatch, slot count, ident number). |
| 0 | watchdog | Peer CPU STOP or powered down, OR cable/repeater fault. Distinguish by reading the peer CPU's own diagnostic buffer via the partner network master. |
| 0 | PS1 or PS2 entry | Power supply on the indicated side has failed. |
Step 4: Distinguishing CPU STOP from Cable Faults
The DP/DP Coupler raises the same 0x11 watchdog entry for a CPU STOP and for a broken PROFIBUS cable, because both cause the partner master to stop sending telegrams. The validity bit does not help here — it goes to 0 in both cases. The disambiguation must be done on the peer side:
- Add the peer CPU as a separate DP slave in the supervision network's HW Config (if it is on the same segment) or use S7 routing to read its diagnostic buffer.
- Read SF / BF / STOP LED status of the peer CPU via SZL/WLBSZL list read (SFC 51 RDSYSST) — index 0x0019 returns the module status byte (RUN/STOP).
- Cross-check the peer CPU's
OB 100 / OB 101 / OB 102timestamps to confirm a restart event.
Step 5: Verify the Setup
- Power both PS1 and PS2; PS LEDs light green. GE1 (general error) and GE2 are off.
- Confirm cyclic data exchange on both sides. The DP1/DX1 and DP2/DX2 LEDs flash green; the "DIA" validity bit (LSB input byte) reads 1 on both masters.
- Disconnect the partner master (simulate CPU STOP by toggling the CPU mode switch to STOP). The validity bit on the local side must go to 0 within one watchdog period (default 30 s, but the master-side cyclic timeout is typically 1 s with retries).
- Power down the partner master (simulate "turned off"). The validity bit goes to 0 and the
0x11watchdog entry appears in the module diagnostics. - Restore the partner master; verify the validity bit returns to 1 and the watchdog entry clears within one watchdog period.
- Test a configuration error by changing the I/O length in HW Config on one side. The validity bit goes to 0; the
0x10configuration-error entry appears in the module diagnostics.
LED Indicators on the Coupler
| LED | Color | Meaning |
|---|---|---|
| P1 / P2 | green | 24 V supply present on PS1 / PS2 |
| GE1 | red | General error on DP1 side (configuration, watchdog, address conflict) |
| GE2 | red | General error on DP2 side |
| DX1 | green flashing | Cyclic data exchange on DP1 |
| DX2 | green flashing | Cyclic data exchange on DP2 |
| Helmholz 158-0AD02 indicator set (equivalent) | ||
| GE1 red | red | General error DP1 |
| GE2 | red | General error DP2 |
| PS | green | Power supply OK (the Helmholz variant reports a single PS LED for the active inlet selected by the PS DIL switch) |
Troubleshooting Matrix
| Symptom | Validity bit | Module diag | Likely cause | Remedy |
|---|---|---|---|---|
| Outputs from peer network stuck at last value | 0 | none | Peer master is healthy but configuration does not match the coupler's slot map (length, ident, DPV0/DPV1) | Compare both HW Configs against the GSD; verify Ident number 0x8110 |
| Validity bit stuck at 0, peer CPU in RUN | 0 | 0x11 (watchdog) | PROFIBUS cable break, repeater power loss, EMI, or peer CPU has just left RUN mode | Check BF LED on peer master; check cable with a PROFIBUS tester; verify repeater 24 V |
| Validity bit stuck at 0, peer CPU in STOP | 0 | 0x11 (watchdog) | Peer CPU is in STOP or turned off — safe state for downstream NC valves | No action required if system is designed for fail-safe on STOP; otherwise alarm and request operator intervention |
| GE1 or GE2 red lit at startup | any | 0x10 | Configuration error on the indicated side | Reload HW Config, check GSD, check for duplicate PROFIBUS addresses |
| Validity bit at 0, P1 or P2 LED off | 0 | 0x14 / 0x15 | Power supply on PS1 / PS2 has failed | Restore 24 V DC; verify PS DIL switch position matches the wiring |
| Validity bit at 0, both P LEDs on, no module diag | 0 | none | Coupler firmware not yet completed startup, or partner is configured but not yet in cyclic exchange | Wait for one watchdog period; check partner master is in RUN-CYC |
| Validity bit toggling 0/1 with ~1 s period | toggling | none or transient 0x11 | PROFIBUS segment marginal — reflections, bad connector, missing termination | Terminate both ends, check stubs, swap cable, measure with PROFIBUS tester |
Step 6: Field-Commissioning Notes
- Set the PS DIL switch to the side where 24 V is actually wired. A wrong setting does not break the supply but causes a spurious PS1/PS2 diagnostic entry in the module diagnostics.
- Configure the watchdog on each DP master to a value that matches the longest acceptable gap in process values. A watchdog shorter than 1 s on a heavily loaded bus can cause spurious 0x11 entries.
- Enable the replacement-part mode in HW Config if the controlled network may be modified in the field without re-loading the supervision CPU. Replacement-part mode makes the DP/DP Coupler accept a "dummy" configuration on the partner side, which is essential during hot-swap of the controlled network.
- Document the validity bit assignment in the I/O list. Field engineers frequently re-allocate the first input byte without realizing that the LSB is reserved for the validity flag once DIA=ON.
- When migrating to a DPV1 master, the module diagnostics layout grows from 22 to 26 bytes. Update both the SFC 13 call and the DB layout accordingly.
Safety Considerations
FAQ
Can the DP/DP Coupler tell me whether the peer CPU is in STOP or the cable is broken?
No. Both conditions raise the same 0x11 watchdog entry in the module diagnostics and clear the validity bit. Disambiguate by reading the peer CPU's status (SZL 0x0019 via SFC 51) or by checking whether other slaves on the controlled network are still reachable from the coupler side.
Which DIL switch enables the validity bit?
Set the DIA switch to ON on both banks of the DP/DP Coupler. With DIA=ON, bit 0 (LSB) of the first configured input byte is the validity flag for the partner network's data. The remaining 7 bits of that byte remain usable as process data.
What is the difference between DPV0, DPV1 and S7 DP master diagnostic frames?
DPV0 frames contain 6 bytes of standard diagnosis plus up to 16 bytes of module diagnostics (22 bytes total). DPV1 and S7 DP master frames add a 4-byte status message, taking the total to 26 bytes. SFC 13 DPNRM_DG must be called with a 26-byte RECORD on DPV1/S7 masters and 22 bytes on DPV0 masters.
My validity bit is stuck at 0 even though the partner CPU is in RUN — what now?
Check the module diagnostics for a 0x10 configuration error first. The most common cause is an I/O length mismatch between the two HW Configs. The coupler compares the received configuration against its own slot map and refuses data exchange when the lengths or Ident numbers differ, even though the partner master is alive.
Can I use the validity bit for fail-safe logic?
The validity bit is a diagnostic-only signal, not PROFIsafe. For SIL 1/2/3 applications, use PROFIsafe I/O on a F-CPU. The DP/DP Coupler may still be used in a non-safety path alongside the PROFIsafe path, with the validity bit driving a diagnostic alarm rather than a safety function.