1. Problem Statement
The Siemens SIMATIC S7-300 CPU 313C-2DP (order number 6ES7313-6CE00-0AB0 or 6ES7313-6CE01-0AB0) is configured as a Profibus-DP slave. After the user downloads the HWConfig hardware configuration that designates the integrated DP interface as a slave station, the CPU immediately transitions to STOP, the SF (System Fault) LED illuminates solid red, and the BF (Bus Fault) LED flashes. The diagnostic buffer records:
STOP caused by PG stop operation or by SFB 20
The same hardware successfully exchanges cyclical PROFIBUS-DP data when the master is a Siemens CPU (for example S7-400). With a non-Siemens DP master (DeltaV in the field case documented here), the slave CPU insists on going to STOP, even though the same DP master polls Profibus slaves such as the CP342-5, a DP/DP coupler, and EM 277 (Siemens ET 200S gateway) without issues. The investigation below isolates the failure to the DP slave operating-mode parameters that are only relevant when the CPU itself is the DP slave, not to a generic Profibus wiring fault.
2. Affected Hardware and Diagnostic LED Indication
| Component | Catalog Number | Firmware States Confirmed |
|---|---|---|
| CPU 313C-2DP | 6ES7313-6CE00-0AB0 / 6ES7313-6CE01-0AB0 | V2.6, V2.6.7, V3.3 (incl. service pack) |
| Integrated DP master/slave interface | MPI/DP port X2 | PROFIBUS DP per IEC 61158 / EN 50170 |
| STEP 7 (classic) | 5.5 + SP3 / higher | HWConfig, NetPro, Diagnostics |
| STEP 7 Professional (TIA Portal) | V13 SP2 and higher | Device & Networks view |
| External DP masters exercised | DeltaV, Siemens S7-400, Siemens CP 443-5 Ext. | 9.6 kbit/s ... 12 Mbit/s baud |
The combined LED signature is the primary fault indicator:
- SF solid red: a configured module (here the DP slave interface itself) cannot establish cyclic exchange, or configuration / parameter assignment does not match.
- BF flashing at ~0.5 Hz: the DP slave interface cannot reach the bus (no slave has been polled by any master, or the baud rate cannot be detected).
- BF solid: hardware fault of the DP interface (rare; indicates RS-485 driver / bus termination problem).
3. STOP Cause Diagnostic Buffer Interpretation
Open SIMATIC Manager > CPU > Diagnostic Buffer. Filter entries of type "STOP cause". Typical entries observed when a CPU 313C-2DP is configured as DP slave and the master has not yet been brought online or the slot list does not match:
| Diagnostic Buffer Text | Byte Stream (hex excerpt) | Likely Cause |
|---|---|---|
| STOP caused by PG stop operation or by SFB 20 | 0x00 0x06 0x21 ... | SFB 20 STOP request, or STARTUP/operation watchdog failure |
| Distributed I/Os: station failure | 0x00 0x33 0x05 | Master not polling, address conflict, or wiring |
| Parameter assignment error from central configuration | 0x00 0x0E 0x42 | HWConfig - DP slave properties mismatch |
| Module removed or not responding (slave CPU) | 0x00 0x33 0x04 | Wrong GSD import / slot mismatch |
The exact byte stream can be pasted into the Siemens Online Support tool "Buffer Interpretation" for full decoding. The first entry, STOP caused by PG stop operation or by SFB 20, is misleading: it does not mean a PG issued a STOP; it indicates that an OB for distributed I/O handling (OB 82 / OB 86 / OB 100 / OB 122) is missing or the DP slave initialization has returned an error that the operating system converts to a STOP request at startup.
4. Root Cause Analysis
Four interacting root causes explain why a CPU 313C-2DP used as a DP slave enters STOP, while dedicated DP slaves such as the ET 200S IM151 or CP342-5 keep running:
- Missing or wrong operating-mode check. When the CPU is itself a slave, its own OB 82, OB 83, OB 85, OB 86, OB 100, and OB 122 are part of the configuration that the DP master expects to poll. A blank project without these OBs (or with OBs that do not cover the slave I/O area) is rejected by the master, and the slave OS forces STOP.
- Configuration tolerance parameter disabled. In HWConfig double-click on the DP master (not the slave CPU). In the DP master properties, the check box "Permit operation if the configured module does not match the actual module / slot" is unset. The same flag exists for the slave CPU side under Operating Mode. If the master is configured with the strict-check default, any inconsistency halts the slave CPU.
- No cyclical polling from the master. A DP slave (CPU 313C-2DP included) must be polled by a class-1 DP master within the configured watchdog timeout. With the DeltaV master in the case described, polling for the new slave had not yet been enabled; therefore the slave CPU entered "bus fault" and the OS parked the CPU in STOP at the next startup attempt.
- Slot configuration mismatch between GSD/HWConfig and actual CPU firmware. The Siemens FAQ 6518822 - Configuring the SIMATIC S7 CPU 31x as DP Slave highlights that the slot I/O addresses in the slave CPU must be declared in HWConfig; otherwise the master cannot consistently read them.
5. HWConfig Configuration Steps for CPU 313C-2DP Slave
Follow this sequence to declare the CPU 313C-2DP as a DP slave (procedure mirrors the Siemens application example referenced above):
- Open SIMATIC Manager > HWConfig on the slave project. Double-click on CPU 313C-2DP > Properties > Interface > DP.
- Set Operating Mode = DP Slave. STEP 7 switches the DP port to slave timing.
- Set the slave Profibus address (default 2 is recommended for new installations).
- Define the slot table: typically 16 bytes of inputs / 16 bytes of outputs as placeholder. Add the Universal module from the catalog > PROFIBUS-DP > SIMATIC > CPU 31x > Universal module on each unused slot; this prevents slot 0 empty complaints from the master.
- In the project's NetPro verify the DP master system already contains the slave as a passive node.
- Download to the slave CPU.
*.GSD and *.bmp files into the master's tool. This guarantees that the master's slot table matches the CPU's configured I/O area exactly.6. Data Exchange Programming Using MOVE Instructions
PROFIBUS-DP between two CPUs is not a peer-to-peer data-link. It is a cyclic remote-I/O exchange. Data is moved with simple MOVE instructions, or better, with the slave-side system function blocks SFC 126 (DP_SLV_READ) and SFC 127 (DP_SLV_WRITE) when working with consistent data > 4 bytes.
6.1 Slave CPU 313C-2DP program (ST)
// OB 1 - Cyclic; called every scan
// 1. Read inputs the DP master sends us, into a holding DB
FILL_BLK(IN := P#I 0.0 BYTE 16, // PIW/PQB region mapped to slave outputs
OUT := DB2); // user holding DB
// 2. Write outputs the DP master wants back from us
MOVE_BLK(IN := DB3, // user DB with values to publish
OUT := P#Q 0.0 BYTE 16);// send to slave input area
6.2 Equivalent STL / ladder
A M 0.0 // Always true
JU _SLAVE_CYCLE
_SLAVE_CYCLE: NOP 0
// Read full 16-byte slave input area into DB2
CALL SFC 20
SRCBLK := P#I 0.0 BYTE 16 // master -> slave inputs (in our HWConfig)
RETVAL := MW 100
DSTBLK := DB2.DBX0.0 BYTE 16
// Write DB3 onto slave input area seen by the master
CALL SFC 20
SRCBLK := DB3.DBX0.0 BYTE 16
RETVAL := MW 102
DSTBLK := P#Q 0.0 BYTE 16 // slave -> master inputs (master sees these as inputs)
BE
SFB 20 / SFC 20 (BLKMOV)-style copy routines at startup to mirror configured slot data into the I/O address area. If the slot is not declared in HWConfig, the OS reports the STOP with that misleading string.7. Operating Mode Parameters and Configuration Tolerance
Two critical controls govern STOP behaviour on the DP slave CPU. These are visible in HWConfig > CPU > Properties > Operating Mode and Properties > Startup:
| Parameter | Default | Field-Proven Value for this Issue | Effect |
|---|---|---|---|
| Allow operation if configured module differs from actual | Off | ON (recommended during commissioning) | Permits the slave to keep running while the master's slot table is being aligned |
| Watchdog time of slave | 150 ms | 600 ms (matches DeltaV scan) | Prevents spurious STOP when master's poll cycle exceeds default |
| Startup behavior on parameter error | STOP | Continue if possible | Slave keeps running through a single error |
| Stop on slave access error (central) | OFF | OFF | Avoids STOP when master is offline |
| External DP Interface > Diagnostics Address | 0 | 256 | Forces OB 82 to fire on DP fault |
8. Integration with Third-Party DP Masters (DeltaV Example)
Emerson DeltaV uses a Profibus DP master card (e.g., CI-8401) with DeltaV Explorer > Device Discovery. Procedure:
- Export the slave's GSD from HWConfig (see step 6 of section 5). Verify that the GSD declares at least 1 universal module with consistent length 16x input / 16x output, otherwise the import in DeltaV may silently drop the device.
- Place the GSD files in the DeltaV Import Device Catalog folder, restart Configure & Explore Services.
- In DeltaV, drag the new slave to the DP segment, edit slot index 0: assign the same start address (0) used in the HWConfig.
- Map the field tags back into a DeltaV Function Block > AI / AO as appropriate.
- Save and download DeltaV; the slave CPU should now leave STOP within one watchdog cycle.
If the DeltaV controller never polls the slave, the SF LED stays solid and BF keeps flashing. With DeltaV's Diagnostic Browser > PROFIBUS-DP > Live List, the CPU 313C-2DP should appear as active within 30 seconds of download. If it does not:
- Check that the segment baud rate is at most 1.5 Mbit/s for long cable runs, or 12 Mbit/s with fibre/repeater.
- Confirm the DP address is unique; conflict with an existing slave will also produce BF flash and SF solid.
9. Cyclic Polling and Watchdog Behavior
A DP slave's startup sequence is:
- Power-on: BF flashes at 0.5 Hz (slave waits for master).
- Parameter assignment (SAP): DP master uploads parameter record; BF goes solid briefly.
- Configuration check: slot list verified.
- Diagnostics frame exchange.
- Data exchange: cyclic user data transfer begins. BF turns off, SF may blink briefly as data is validated.
If the CPU 313C-2DP slave is not present in the master scan, step 1 is permanent and the OBs (OB 82, OB 86) that the slave CPU maintains for itself report an unacknowledged I/O error. The OS then enters STOP with diagnostic buffer entry referencing SFB 20 (the internal block-mover). The formula to size the watchdog:
T_slave_watchdog = (Target Rotation Time + Slot Time) x Watchdog Factor
For example, with a 5 ms target rotation and 8 slots in the master configuration, a watchdog factor of 4 yields ~ (5 + 8 x SlotTime) x 4 ms. Setting the slave watchdog to 600 ms always covers this comfortably.
10. Verification Procedure
- Open Accessible Nodes in SIMATIC Manager and verify the slave CPU is online and in RUN.
- Open Diagnostics > Module Information > Diagnostic Buffer; the event Distributed I/Os: station failure should clear within a few seconds of master polling.
- SF LED must be OFF; BF LED must be OFF.
- In the master, force a value on the slave's input address (DBW 0 on the DeltaV side, for example) and verify the same value appears in the slave's
DB3.DBW0via watch table. - Reverse direction: set
DB2.DBW0on the slave to a known value (e.g., 0x1234) and verify the master reads the same value. - Disconnect the Profibus cable: the slave CPU must NOT stop if "Stop on slave access error" is OFF. BF will flash; SF may briefly blink; OB 82 will fire.
- Reconnect the cable: the slave resumes data exchange within one watchdog period.
11. Extended Troubleshooting Matrix
| Observed Symptom | Probable Cause | Recommended Action |
|---|---|---|
| STOP with SF on, BF flashing | Master not polling or wrong slot list | Verify master 'Live List'; enable polling; re-export GSD |
| STOP with SF on, BF off | HWConfig / Startup parameter mismatch | Allow configuration mismatch in Operating Mode; re-download |
| STOP with SF solid on, BF solid on | Bus physically faulty (cable, terminator, address conflict) | Check connector, switch off terminator on intermediate nodes |
| STOP only after cold restart | Missing OB 82 / OB 86 / OB 100 / OB 122 | Insert empty OBs into the project and download |
| Slave runs but data is wrong | Byte-swap or slot offset wrong | Match I address to Q address of slave in HWConfig; reverse on master side |
| Slave runs but cyclic update is slow | Watchdog too tight or many slots | Increase slave watchdog to 600 ms; reduce unused slots |
| BF flashes at 2 Hz (not 0.5 Hz) | Master present but baud rate detection failed | Set baud manually in HWConfig > Bus Parameters |
| STOP with diagnostic buffer: "DP slave: parameter assignment error" | Master GSD version mismatch | Re-import matching GSD version; do not mix STEP 7 GSD with TIA GSD exports |
12. Field-Proven Recommendations
- Always export a fresh GSD from HWConfig whenever the slot list changes; never copy an old one.
- Keep the slave watchdog at least 4x the master's cycle to absorb transient bus errors.
- Use Universal module placeholders for unused slots; this prevents the master from claiming missing modules.
- Install OBs 82, 83, 85, 86, 100, 122 even when they are empty. Their absence can trigger a STOP if the master is later removed.
- Use SET > Switch to RUN on the master tool when commissioning; verify the slave leaves STOP.
- For cross-vendor master integration (DeltaV, PlantPAX, ABB Freelance), validate the GSD import dialog for any "Consistent Data" warnings.
Question: Why does my CPU 313C-2DP go to STOP with SF on and BF flashing right after I download the HWConfig as a DP slave?
The CPU cannot reach the class-1 DP master. Either the master is offline, the wrong GSD has been imported into the master, or the slot table configured in HWConfig does not match what the master is allowed to poll. Check the master's "Live List" or scan list, re-export the GSD from HWConfig, and verify that all configured slots (universal modules) match the master configuration. Reference: Siemens FAQ 6518822.
Question: What is the difference between a CPU 313C-2DP used as a master versus as a slave?
The integrated MPI/DP port can be switched in HWConfig between MPI, DP master, and DP slave. As master, the CPU requests data and runs DP diagnostics over OB 82 / OB 86. As slave, the CPU becomes a remote I/O entity and is polled by another master (Siemens S7-400, DeltaV, ABB Freelance, etc.). The slave CPU has its own diagnostics address and uses the same SFB 20 / SFC 126-127 block-move sequences internally.
Question: Can I send a DB directly from the master CPU to the slave CPU without MOVE instructions?
No. PROFIBUS-DP between CPUs is always remote I/O, never an acyclic DB read. Use MOVE or SFC 20 (BLKMOV) to mirror the relevant DB area into the slave CPU's output area (P-area), and use the inverse MOVE on the input area. The master reads back via its input image.
Question: Which OBs are required when the CPU 313C-2DP operates as a DP slave?
Insert empty OBs 82 (diagnostics), 83 (plug/removal), 85 (priority class error), 86 (rack/station failure), 100 (complete restart), and 122 (I/O access error). Missing OBs cause the slave CPU to STOP on the first disconnect/reconnect event.
Question: My slave CPU keeps running but DeltaV shows no data — what should I check?
Confirm the slave's GSD import in DeltaV Explorer matches the EXACT I/O slot length declared in HWConfig (16 bytes in / 16 bytes out by default). Verify the DeltaV PLC scan time versus the slave watchdog (recommended 600 ms). Use DeltaV Diagnostic Browser > PROFIBUS-DP > Live List to confirm the slave is in the active station list.