Overview: Two PROFIBUS DP Masters Sharing ET200S Inputs
Adding a second SIMATIC S7-400 CPU 417 to an existing PROFIBUS DP network that already controls ET200S distributed I/O raises a recurring question: can two DP masters read the same input data from a single ET200S slave, and if so, is the data identical at both controllers? The short answer is yes - PROFIBUS DP was designed from IEC 61158 / IEC 61784-1 as a multi-master, token-passing fieldbus with a shared physical medium. Any telegram placed on the copper is received by every station, so a second DP master can legitimately consume the input telegram that the owning master requested from the slave. The architectural detail is what governs whether this is implemented as a clean engineering solution or an unstable configuration that collapses on the first reconfiguration.
There are three documented routes for sharing ET200S inputs between two S7-400 CPU 417 masters on the same DP segment:
- Direct Data Exchange (DDE / MSAC_C2 publisher model) - the second master subscribes to the publisher's input image inside the existing DP line. No additional hardware. Cycle time impact is small.
- Two projects, two masters on one bus - the second master is treated as a DP Master Class 2 (DPMC2) that listens to the cyclic traffic of the DP Master Class 1 (DPMC1). Works but loses any configuration authority for the slave.
- DP/DP coupler as a gateway - two physically separated DP segments joined by a Siemens DP/DP coupler (6ES7158-0AD02-0XA0). Strongest isolation, but adds a 244-byte per-direction bandwidth ceiling.
This reference documents each route with STEP 7 configuration steps, the timing penalty per route, and a commissioning checklist that covers the common fault patterns seen on S7-400 multi-master segments.
PROFIBUS DP Master Classes and Multi-Master Rules
PROFIBUS DP distinguishes three master classes defined in IEC 61784-1 CP 3/1:
| Class | Designation | Function |
|---|---|---|
| DPMC1 | Master Class 1 | Cyclic exchange of I/O data with assigned DP slaves; handles configuration, parameterization, and diagnostics. The S7-400 CPU 417 DP port operates as DPMC1 in normal operation. |
| DPMC2 | Master Class 2 | Engineering, diagnostics, and acyclic read/write of slave parameters. Typical role: PG, HMI panel, or the second CPU in a DDE consumer role. |
| Subscriber / DDE consumer | Cross-master listener | Configured in STEP 7 to read a publisher's input image without performing configuration. Implemented via the publisher/subscriber service. |
A DP segment accepts up to 127 addresses total. Of those, up to 32 stations (masters or slaves) may share one electrical segment without repeaters; the remainder require RS-485 repeaters or optical link modules (OLMs) to extend. Token rotation is handled by the active masters - the highest-addressed master (HAS) lowers the token, and rotation time is deterministic provided all masters keep their configured T_TR and G (gap update factor) within limits.
When two CPU 417 controllers operate on the same bus, only one of them can be the configuration owner for a given ET200S IM 151 slave. The configuration owner performs the SET_PRM, CHK_CFG, and C1_Read sequence during startup and continuously polls the slave. The second master is free to read the same slave's cyclic response telegrams through DDE, but it must not issue its own parameterization telegrams or the slave will enter a parameterization error state (diagnostic byte DXF0 = 0x06).
Architecture Decision: Single Project, Dual Project, or DP/DP Coupler
The choice between a single STEP 7 project containing both CPUs and two independent projects loaded into separate CPUs has engineering consequences that go beyond convenience.
| Approach | Configuration Source | PROFIBUS Owner of Slave | Failure Cascade Risk | Recommended Use |
|---|---|---|---|---|
| Single STEP 7 project, both CPU 417 in S7 program, single PROFIBUS subnet | One project file on one PG | Configured per slave in HW Config - either CPU can be the DPMC1 | Medium - any change uploaded to one CPU requires re-download of the bus parameter set to both | Hot-standby, redundancy, or coordinated process cells where both controllers must observe the same I/O |
| Two separate STEP 7 projects, two separate PGs, single PROFIBUS subnet | Independent - slave GSD imported twice | Each project's HW Config must agree on the slave address and module order | High - if both projects mark themselves as the slave owner, the slave will toggle between them and report station failure | Independent machines that happen to share I/O; rarely recommended |
| DP/DP coupler between two independent PROFIBUS segments | Each project owns its own bus segment | Each segment has a single, unambiguous owner | Low - electrical isolation prevents a configuration conflict; only data throughput limits apply | Two cells that should remain electrically decoupled but need deterministic data exchange |
The clean engineering answer is to keep both CPU 417 controllers inside one STEP 7 project. That allows STEP 7 to enforce consistency for the shared slave's parameters (watchdog time, ident number, slot configuration), and the bus parameter editor can verify that only one master owns each slave. For a DDE consumer master, the second CPU is still in the same project but it has no "owner" tick on the ET200S IM 151 - only a "Subscriber" slot in the slave properties.
Hardware Prerequisites
Before opening HW Config, validate the following on the segment:
| Item | Specification | Verification |
|---|---|---|
| S7-400 CPU 417 | 6ES7417-4XT05-0AB0 (or later - the integrated DP port on the IF 964-DP submodule must be enabled in HW Config). Firmware V5.x or later recommended. | Module diagnostics in HW Config, online |
| ET200S IM 151 | IM151-1 Standard (6ES7151-1AA05-0AB0) for PROFIBUS DP, or IM151-3 PN (6ES7151-3AA22-0AB0) for PROFINET. DDE only works on the PROFIBUS variant. | Module label, GSD file name |
| PROFIBUS cable | Two-core shielded twisted pair, characteristic impedance 150 Ω, loop resistance ≤ 110 Ω/km. Siemens PROFIBUS cable 6XV1830-0EH10 or equivalent. | Continuity tester, cable length vs baud-rate table |
| Bus termination | Active terminating resistors at both physical ends of the segment. 390 Ω / 220 Ω / 390 Ω network. Built into most PROFIBUS connectors (6ES7972-0BA12-0XA0) with switch enabled. | Visual check; voltage measurement on terminated bus shows differential 5 V (approx) |
| Bus baud rate | 9.6 kbps to 12 Mbps. For S7-400 CPU 417 with multiple masters, 1.5 Mbps is the practical maximum segment length for most plants. | HW Config → Properties → PROFIBUS interface → Network settings |
| STEP 7 version | STEP 7 V5.5 SP4 or later, or TIA Portal V14 SP1 or later (note: TIA uses different terminology but the same bus parameters) | Help → About |
| GSD file for ET200S | Siemens GSD file matching the IM151 firmware. For 1AA05 series use SIEM8170.GSD or the device-specific GSD in the STEP 7 hardware catalog. |
HW Config → Options → Install GSD File |
T_TR, identical slot time T_SL, identical minimum station delay min T_SDR). Mismatches cause intermittent bus retries that are extremely hard to diagnose.Direct Data Exchange (DDE) Configuration in STEP 7
Direct Data Exchange is the preferred mechanism when both masters must see the same ET200S inputs. The first CPU is the publisher - it owns the ET200S IM 151 and polls it cyclically. The second CPU is the subscriber - it does not parameterize the ET200S but listens to the input response telegrams and copies the relevant input bytes into its own process image.
Step-by-step in STEP 7 V5.5:
- Open the project that contains both CPU 417 stations on the same PROFIBUS subnet.
- In HW Config, right-click the ET200S IM 151 slave that you want to share, select Object Properties, then the Configuration tab.
- For the slot that contains the digital input module (e.g. 6ES7131-4BF00-0AA0 8 DI), tick Publisher and confirm the slot number. The slave is now flagged as a DDE publisher.
- Switch to the second CPU 417 (the subscriber master). Open its PROFIBUS interface object properties.
- In the Operating Mode tab, enable DP Master. Then in DP Master System → Properties, ensure the subnet matches the first CPU's subnet (same address range, same baud rate).
- In HW Config for the subscriber master, insert the ET200S IM 151 again - this time it appears as a DP slave with the Publisher designation already set. STEP 7 will only allow slot configuration on input modules.
- For each subscribed slot, note the input addresses STEP 7 assigns (e.g. PIW 256 - PIW 271 for an 8-word input block). These addresses are mapped into the second CPU's process input image and are updated each OB1 cycle.
- Compile and download HW Config to both CPU 417 stations.
Sample OB1 Code for the Subscriber CPU
On the subscriber CPU 417, the inputs from the publisher ET200S appear in the process image at the addresses STEP 7 assigned. The sample below reads the first 8 bytes (64 digital inputs from one 8-DI module):
// Subscriber CPU - copy publisher inputs into local flag area
// Publisher slot 1 = 8 DI module, addresses PIW 256..263
// Each PIW holds 16 bits, so 4 PIW = 64 DI
L PIB 256 // First byte from ET200S publisher
T MB 100 // Local marker byte
L PIB 257
T MB 101
L PIB 258
T MB 102
L PIB 259
T MB 103
// Optional: compare to local DI byte from the subscriber's own input image
// for diagnostics - if mismatch, raise operator warning
L IB 0 // Local DI on the subscriber CPU (different I/O)
L MB 100 // Same byte received via DDE publisher
==I
JC no_mismatch // Jump if identical
S "DDE_Mismatch" // Set warning flag for HMI
no_mismatch: NOP 0
For diagnostics, include OB 82 (diagnostic interrupt) and OB 1 cycle-time monitoring. The slave's group diagnostic can be read using SFC 13 DPNRM_DG against the ET200S's diagnostic address (assigned automatically by STEP 7, visible in HW Config).
Timing Analysis and Worst-Case Latency
Two CPU 417 masters do not, in the strict sense, "receive the same data at the same instant". The cyclic traffic of PROFIBUS is half-duplex serial: the publisher sends a poll, the ET200S replies, and the reply telegram propagates along the cable. Every station on the segment sees the telegram, but each station's OB 1 cycle determines when the new bytes are read out of the receive buffer and used by the application.
The end-to-end latency from physical input transition to visibility in the subscriber CPU's MB 100 consists of:
| Component | Typical | Worst Case |
|---|---|---|
| Input module scan time (ET200S digital input) | 0.5 - 3 ms | 3 ms |
| ET200S internal bus transfer to IM 151 | 0.1 - 0.5 ms | 1 ms |
| IM 151 hold-and-forward of DP response telegram | Negligible | Negligible |
| Cable propagation (worst case 100 m at 1.5 Mbps) | 0.5 µs | 0.5 µs |
DP cycle time (poll interval set in HW Config, DP cycle parameter) |
10 - 50 ms | 500 ms at slow baud or many slaves |
| Subscriber CPU OB 1 cycle | 10 - 50 ms | 150 ms under heavy load |
| Total input visibility on subscriber | 20 - 100 ms | Several hundred ms |
The DP cycle time formula (per IEC 61158) is:
T_DPcycle = sum_over_slaves( T_slave_request + T_slave_response + 11 x L_octets / baud_rate ) + T_idle1 + T_idle2
Where L_octets is the telegram length in bytes including the 11-bit/byte PROFIBUS encoding overhead. At 1.5 Mbps, a typical 16-byte cyclic request (read 8 DI) takes approximately 11 × 16 / 1,500,000 ≈ 117 µs of wire time, but the slot time T_SL setting (default 1003 bit-times at 1.5 Mbps ≈ 0.67 ms) dominates. With 8 slaves and a 10 ms DP cycle target, the bus spends most of its time in the configured idle state, leaving ample capacity for the second master's own slaves.
DP/DP Coupler Alternative for Isolated Subnets
If the two CPU 417 controllers must remain electrically isolated - for example, separate process cells with separate grounding schemes - the cleanest solution is the Siemens DP/DP coupler (6ES7158-0AD02-0XA0, successor to 6ES7158-0AD01-0XA0). This device presents itself as a DP slave to each side. The maximum transferable I/O is 244 bytes input and 244 bytes output per direction.
Configuration steps:
- Insert the DP/DP coupler into the first CPU's PROFIBUS subnet via its GSD file (Siemens
SI0181B7.GSD). - Open the coupler object properties, switch to DP Slave mode, and configure the slot count (e.g. 16 input bytes + 16 output bytes).
- On the second CPU's subnet, insert the same coupler device and configure the matching number of I/O bytes from the opposite direction.
- Compile HW Config and download both sides.
- The first CPU writes 16 bytes to PAB 512..527; the second CPU reads them at PAB 512..527 (mirrored through the coupler).
Latency through the DP/DP coupler adds approximately 1 - 5 ms per direction at 1.5 Mbps, plus the two DP cycles. This is slower than DDE because every byte traverses two separate DP segments and the coupler itself buffers, but the electrical isolation is total and there is zero configuration conflict risk.
Commissioning Verification
After downloading HW Config to both CPUs, validate the configuration in this order:
- Bus topology check - In STEP 7, right-click the PROFIBUS subnet → PROFIBUS → Diagnose. All stations should appear with green status, no yellow or red entries.
- Slave diagnostic - Open the ET200S slave in HW Config online. The Diagnostic tab should report 0x00 (no fault). If you see 0x06 (parameterization fault) or 0x07 (configuration fault), the second master is overwriting the first master's parameter set - re-check the Subscriber flag.
- DDE data check - On the subscriber CPU, force a known input pattern at the publisher ET200S (e.g. turn on DI0-DI3) and observe the subscriber's MB 100..103. The pattern must appear within one DP cycle of the input transition.
-
Cycle-time monitor - Use OB 1's local time stamping (e.g.
SFC 64 TIME_TCK) to record the maximum OB 1 cycle time on the subscriber CPU. The maximum must be less than the DP cycle time, otherwise subscriber input updates will skip frames. - Token rotation - With both CPUs in RUN, use STEP 7 PLC → Module Information → PROFIBUS on each master to view the bus statistics. Token error counters should remain at 0.
- Failure simulation - Pull the ET200S Profibus connector mid-run. The publisher master must report station failure within one DP cycle. The subscriber master must report the DDE input as 0 (or unchanged - depends on STEP 7 setting). Replace the connector and verify recovery.
Troubleshooting Matrix
| Symptom | Likely Cause | Diagnostic Step | Fix |
|---|---|---|---|
| ET200S reports 0x06 parameterization fault on startup | Both CPU 417 are configured as owner of the same slave | HW Config → Slave properties → Operating Mode tab on each CPU | Mark the slave as Publisher on CPU 1 and Subscriber on CPU 2. Remove any duplicate GSD configuration. |
| Subscriber CPU shows all inputs as 0 even though the physical inputs are true | Subscriber slot addresses are wrong, or the Publisher slot is not marked | Open subscriber CPU online → Monitor / Modify → PIW 256..263 | Re-check the Publisher flag on the publisher CPU's slot. Recompile and download HW Config on both CPUs. |
| Both CPUs see the inputs but the values differ by one OB 1 cycle | OB 1 cycle time on subscriber CPU exceeds DP cycle time | Monitor OB 1 cycle time via SFC 64 | Reduce subscriber OB 1 program load, or shorten the DP cycle parameter on the publisher CPU. |
| Intermittent bus retries, both CPUs drop to STOP after random intervals | Mismatched bus profile (T_SL, min T_SDR, max T_SDR) between the two CPUs | Compare the bus profile bits in HW Config → PROFIBUS → Properties → Network settings on each CPU | Set Use Profile → DP on both CPUs and confirm identical parameters. |
| Subscriber CPU reports the inputs but with a fixed 5-10 ms offset from the publisher | Normal behavior - OB 1 cycle skew | Acceptable as long as the application's time budget exceeds the offset | No fix required. If synchronous reads are mandatory, implement a software timestamp in OB 40 (process alarm) at the input module and use it as a common time reference. |
| DP/DP coupler shows Bus Fault LED after download | Slot configuration on the two sides does not match (different number of input vs output bytes) | Open coupler diagnostics in HW Config | Make the slot configuration identical on both sides. A common error is 16 IN + 16 OUT on side A but 16 IN + 0 OUT on side B. |
| One CPU in STOP causes the other CPU's DP cycle to stretch | Token still being passed but STOP master fails to respond within slot time | PLC → Module Information → PROFIBUS on the running CPU | Remove the STOP CPU from the bus (physically disconnect) or fix the program error that causes the STOP. |
Safety and Operational Notes
Reading the same input in two controllers is not, by itself, a safety function. If the application involves safety-related signals (SIL 1 or higher), both CPU 417 stations must use separate safety I/O modules - either PROFIsafe over PROFIBUS with separate PROFIsafe addresses, or hardwired dual-channel input modules per IEC 61508. Reading a non-safety input on two controllers and XOR-ing the result does not constitute a safety system.
For ET200S modules in particular, the I/O module insertion rules differ between the standard IM 151 and the F-CPU-compatible safety variants. Do not mix safety I/O modules in a non-safety DP slave unless the project explicitly uses the appropriate safety configuration.
FAQ
Can two PROFIBUS DP masters on the same S7-400 subnet share ET200S digital inputs?
Yes. Use Direct Data Exchange (DDE) with the first CPU 417 as the publisher (owner) of the ET200S IM 151 and the second CPU as a subscriber. Both controllers will see the same input status subject to the OB 1 cycle skew on each station.
What happens if both CPU 417 are configured as the owner of the same ET200S slave?
The slave enters a parameterization fault on startup (diagnostic byte 0x06). The slave alternates between the two parameterization attempts and reports station failure to both masters. Configure exactly one CPU as the Publisher and the other as the Subscriber to avoid this.
Do the inputs arrive at exactly the same instant on both controllers?
At the bus level yes - the response telegram is broadcast and reaches both controllers within the cable propagation time (nanoseconds for any realistic plant). At the application level no - each CPU has its own OB 1 cycle, so the inputs become visible in MB 100 with a skew equal to the difference in OB 1 cycle start times (typically 1-50 ms).
Is it better to use a DP/DP coupler instead of DDE?
Use a DP/DP coupler only when you need electrical isolation between the two CPU 417 stations or when the two projects are maintained independently. For a single STEP 7 project with two CPU 417 on one subnet, DDE is faster, simpler, and has no 244-byte bandwidth limit.
What is the maximum number of DP slaves I can share this way on one CPU 417?
The CPU 417-4 integrated DP port supports up to 32 DP slaves in its own subnet (125 with repeaters). The same slave can be subscribed by multiple DDE consumers - there is no hard limit on subscribers per publisher, but the bus load on each slave rises linearly with the number of subscribers, which shortens the maximum DP cycle achievable at a given baud rate.