Distinguishing DP/DP Coupler Errors: CPU Stop vs PROFIBUS Loss

David Krause14 min read
ProfibusSiemensTroubleshooting
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

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)
The data-validity bit (DIA feature) must be enabled on both sides of the coupler, otherwise the partner master will not be informed about the validity of the data it receives.

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)
Always cross-check the exact module-diagnostic encoding in the official Siemens DP/DP Coupler manual, chapter 6.2.3/6.2.4 — Siemens occasionally revises the diagnostic identifiers between firmware versions of the coupler (current firmware for the 6GK1571-0BA00-0AA0 is V3.x; check the label on the device).

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:

  1. 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.
  2. 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).
  3. Cross-check the peer CPU's OB 100 / OB 101 / OB 102 timestamps to confirm a restart event.
If the controlled network and supervision network are physically separate, the DP/DP Coupler only tells you that the coupler-to-controlled-network link is dead. To find out whether the controlled CPU is in STOP or the cable is broken, you must rely on the supervision-side master seeing other devices on the controlled network (if any) still exchange — if so, the cable is alive and the CPU is in STOP; if no device on the controlled network is reachable from the coupler, the cable or repeater chain is suspect.

Step 5: Verify the Setup

  1. Power both PS1 and PS2; PS LEDs light green. GE1 (general error) and GE2 are off.
  2. 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.
  3. 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).
  4. Power down the partner master (simulate "turned off"). The validity bit goes to 0 and the 0x11 watchdog entry appears in the module diagnostics.
  5. Restore the partner master; verify the validity bit returns to 1 and the watchdog entry clears within one watchdog period.
  6. Test a configuration error by changing the I/O length in HW Config on one side. The validity bit goes to 0; the 0x10 configuration-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)
A permanently lit red GE1 or GE2 LED while the validity bit is still 1 typically indicates an address conflict or a duplicate GSD installation. A lit GE LED with the validity bit at 0 is a normal state during a partner-outage and clears on its own when the partner resumes.

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

The DP/DP Coupler is not a PROFIsafe device. The data-validity bit is a diagnostic feature, not a safety-rated integrity check. If the controlled network must satisfy IEC 61508 / IEC 62061 SIL requirements, use a PROFIsafe host (e.g. a SIMATIC F-CPU plus PROFIsafe I/O) and the DP/DP Coupler must be replaced by a PROFIsafe-aware gateway. The NC-valve-fall-closed design described in the original problem is one valid mitigation only if the valves themselves are rated for the required SIL.

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.

Back to blog