Problem Description
When a SIMATIC S7-300 CPU 315-2DP (order number 6ES7 315-2AF03-0AB0) reports a Defective: internal system error entry in the diagnostic buffer and the controller drops to STOP, the symptom is an unrecoverable internal fault. The status flag DEFECTIVE (rather than ERROR or WARNING) tells you the CPU has detected a condition it cannot clear by itself. Operating system dispatch is suspended, all application OBs stop executing, and the only way out is to remove the root cause and power-cycle the rack.
Field observations on this part number cluster around four reproducible signatures:
- SF LED (red) steady on, RUN LED off, STOP LED on. The M+/M- LEDs (where fitted) reflect retained-bit behavior but the rack is dark to the application.
- The diagnostic buffer contains one to several consecutive entries with Event ID
16#4A04and the plain-language text Defective: internal system error. No preceding OB80/OB82/OB86 time-stamped events appear. - Swapping the CPU with an identical spare reproduces the STOP within minutes to hours. The spare's diagnostic buffer then shows the same
16#4A04trace, which is the pivot signal: the CPU is the messenger, not the source. - Removing or disconnecting a non-CPU module (CP 343, SM, IM 360/361, OP 27, or an attached Ethernet cable to a CP 343) clears the condition immediately. Re-attaching the suspect item brings the CPU back to STOP on the same shift.
Affected Hardware and Firmware
Match the part numbers exactly before you start pulling modules. The CPU 315-2DP family spans several MLFB revisions, and the diagnostic event IDs only make sense in the context of the correct catalog number.
| Parameter | Value |
|---|---|
| Order number (MLFB) | 6ES7 315-2AF03-0AB0 |
| Product family | SIMATIC S7-300 |
| Firmware version installed | V1.2.1 (last released for this MLFB) |
| Work memory (code + data) | 128 KB |
| Bit instruction execution time | |
| Interface 1 (X1) | MPI / Profibus DP master or slave, RS-485, isolated |
| Interface 2 (X2) | Profibus DP master or slave, RS-485, isolated |
| Integrated digital I/O | None |
| Product status | Discontinued (announced 2004) |
| Functional successor | 6ES7 315-2AH14-0AB0 (CPU 315-2 PN/DP) |
Because the MLFB was phased out, the spare-pool realities are tight: identical replacements are used units, and authorized stock comes from distributors with limited inventory. The CP 343 family (6GK7 343-1...0XE0) is in a similar lifecycle state. Document the exact firmware of every module you touch, because mixed-firmware racks introduce soft errors that mimic the same Defective entry.
Reference: Siemens product page 6ES7315-2AF03-0AB0; S7-300 Automation System manual.
Diagnostic Buffer Event Decoding
The S7-300 diagnostic buffer is a ring buffer stored in non-volatile memory on the CPU. Each entry carries an Event ID (16-bit hex), a date/time stamp with millisecond resolution, and four 32-bit data fields. The Defective: internal system error text is the plain-language rendering of Event ID 16#4A04 on the CPU 315-2DP family.
| Event ID | Plain text (STEP 7) | OB raised | Recoverable? | CPU state |
|---|---|---|---|---|
| 16#4A04 | Defective: internal system error | None | No | STOP (hard) |
| 16#4A05 | Defective: internal system error (param) | None | No | STOP (hard) |
| 16#4A0C | Error in memory card access | None / OB84 | Sometimes | STOP or RUN |
| 16#4B01 / 16#4B02 | Communication error (general) | OB87 | Yes | RUN continues |
| 16#39xx | Communication fault detail | OB82 / OB86 / OB87 | Yes | RUN continues |
| 16#2922 / 16#2923 | OB85 raised (module I/O error) | OB85 | Conditional | STOP if OB85 missing |
The 16#4A04 entry is intentionally loud. The CPU does not call OB84 (CPU hardware fault) or OB86 (rack failure) for this condition. The reason is that an internal system error means the operating system itself lost its own sanity check - a watchdog, parity error, illegal microcode path, or a peripheral module is dragging the backplane. Raising an OB on top of a corrupt dispatch engine would re-enter the failure, so the CPU falls through to a hard STOP and lights SF.
How to pull the buffer in STEP 7 V5.5:
- Open the SIMATIC Manager and connect online to the CPU over MPI or Profibus (address 2 is the default).
- Right-click the CPU in the project tree, select PLC > Diagnostic/Setting > Diagnostic Buffer.
- Read the entries from top to bottom. The most recent event is on top.
- For each entry note: Event ID, OB reference, Dat1 through Dat4, and the date/time stamp.
- Copy the buffer to a text file via Save As... for trend analysis. The same fault over three shifts usually shows a recurring Dat1 value that identifies the failing module.
In TIA Portal V14 SP1 or later, the equivalent path is Online & Diagnostics > Diagnostics > Diagnostic buffer. TIA Portal renders the same Event ID; the plain text and OB reference match STEP 7 V5.5. If you have a project on TIA Portal but the rack is S7-300 classic, install the legacy CPU in the device configuration with the correct MLFB to enable online diagnostics.
Root Cause Analysis - Where the Fault Actually Lives
When two CPUs fail the same way, six root-cause categories cover roughly 95% of field cases on the CPU 315-2DP family. Triage them in this order.
| Rank | Root cause | How it presents | Quick test |
|---|---|---|---|
| 1 | Defective peripheral module dragging the backplane (CP, SM, IM, FM) | STOP returns within minutes of attaching the module; CPU swap does not help | Hot-swap modules one at a time, restart, log time-to-STOP |
| 2 | Short or low impedance on the Profibus or MPI connector (terminating power, +24 V, +5 V lines) | STOP on the first scan after connector insertion; SF on the master | Unplug the Profibus connector, power-cycle, observe RUN; measure +24 V pin to ground |
| 3 | Power supply (PS 307) sagging under load, brown-out on 24 V output | STOP correlates with a heavy contactor or starter pulling; SF flickers | Measure PS 307 24 V output under full load with a true-RMS DMM, scope for <200 ms dips |
| 4 | Memory card (MMC) corruption or wrong type | STOP immediately after restart with 16#4A04 + 16#4A0C chain | Pull the MMC, restart without card, observe behavior |
| 5 | Firmware mismatch between CPU and a C-module | STOP on a service event (firmware update, module swap) | Compare firmware versions in HW Config |
| 6 | Earth loop or shield ground short bringing the rack reference up | STOP on first scan after maintenance, intermittent | Measure PE-N voltage at the cabinet; check shield bonding |
Step-by-Step Isolation Procedure
Perform the sequence in order. Each step terminates when the CPU stays in RUN for a full shift, and the next step becomes a regression test rather than an active intervention.
- Capture the as-found state. Save the diagnostic buffer to a text file, photograph the LEDs, and record the slot number, MLFB, and firmware of every module in the rack. Tag the rack with the date/time.
- Power down the rack (PS 307 mains breaker). Wait 30 seconds for the capacitor bank to discharge. Power up. If the CPU does not even reach RUN (i.e., it blinks briefly and drops), the fault is in the backplane or the first peripheral module. Continue with step 3.
- Reduce the rack to the minimum: CPU, PS 307, and one slot of nothing else. Apply power. If RUN is achieved with the rack minimized, the fault is downstream - proceed to step 4. If RUN is still not achieved with only the CPU + PS 307, the fault is in the CPU, the PS 307, or the backplane bus connector.
- Re-add modules one slot at a time in slot order from right to left. After each insertion, observe the CPU for ten minutes. When STOP reappears, the last module inserted is the prime suspect. Tag it.
- Isolate the suspect module by swapping it with a known-good spare of the same MLFB and firmware. If the CPU returns to RUN with the spare, the original module is defective. If the CPU STOPs with the spare, the issue is in the slot, the backplane bus connector, or the wiring to that slot.
- Inspect the Profibus / MPI connector on the suspect module and on the CPU. Unplug both. Check the +24 V pin (typically pin 2 / +5 V on pin 6 of the 9-pin D-sub per EN 50170) for short to ground or to shield. Replace the connector if the +24 V line is exposed to a damaged cable.
- Test with the Ethernet cable to the CP 343 disconnected. This is the specific test that resolved the original case. If the CPU runs clean with the Ethernet cable removed, the CP 343 module or the attached network is the trigger. Replace the CP 343 module and the Ethernet cable; do not re-use a CP 343 that has already taken down a CPU.
CP 343 - The Common Culprit in Networked Racks
The CP 343 family of communications processors is the most common non-CPU module to drag an S7-300 rack into a Defective: internal system error STOP. The reason is structural: the CP 343 sits on the backplane bus, the same bus that the CPU uses to dispatch OB cycles. If the CP's bus interface fails, it does not just fail its own communication - it can hold the bus in a state that the CPU's bus arbiter cannot recover from.
| CP 343 variant | Order number | Failure mode |
|---|---|---|
| CP 343-1 Lean | 6GK7 343-1CX10-0XE0 | Bus hang on TCP reset storm; STOP cascades to CPU |
| CP 343-1 | 6GK7 343-1EX11-0XE0 | SF + BF solid; CPU drops to STOP within seconds |
| CP 343-1 Advanced | 6GK7 343-1GX31-0XE0 | Web server task over-runs dispatch; intermittent STOP |
| CP 343-1 PN | 6GK7 343-1HX30-0XE0 | Profinet device replacement triggers CPU STOP on the controller |
LED interpretation on the CP 343 front panel:
| LED | State | Meaning |
|---|---|---|
| SF (red) | Solid | Group fault - configuration mismatch or backplane failure |
| BF (red) | Solid / flashing | Bus fault on Ethernet - cable, switch port, or partner |
| RUN (green) | Solid | CP is in RUN, operating system is up |
| STOP (yellow) | Solid | CP has dropped its connections - CPU still runs |
| SF + RUN both off | Power problem | Backplane not delivering 5 V to the CP - check the bus connector |
When a CP 343 takes down the CPU, the SF LED on the CP is usually lit and the CPU's SF is lit. Both LEDs clear within a second of pulling the CP module out of the rack, confirming the cascade. Do not interpret "RUN on the CP" as "CP is healthy" - the CP can be in RUN but still dragging the backplane. The decisive test is rack isolation with the CP removed.
Reference: Siemens product page CP 343-1 (6GK7343-1EX11-0XE0).
HMI OP 27 on Profibus DP - Secondary Fault Path
The original case also includes an OP 27 HMI on Profibus DP. The OP 27 is a Profibus DP slave that talks to the CPU's integrated DP master (X2). It is not normally a primary cause of a Defective STOP, but a misconfigured Profibus network can push the master into a state where it issues a stream of bus errors that the CPU cannot dismiss.
Validate the Profibus path on the OP 27 side:
- Confirm the OP 27 Profibus address (typically 1 or 2) does not collide with another slave.
- Confirm the OP 27 GSD file is the correct one for the OP 27 firmware. Mismatched GSD revisions are a common source of DP master diagnostic interrupts.
- Confirm the Profibus cable shield is bonded to PE at one end only. Double-bonded shields create a ground loop that injects noise into the RS-485 pair.
- Confirm the bus terminator is on at the two physical ends of the segment only. An OP 27 in the middle of a segment with termination enabled is a frequent source of intermittent communication faults.
- Measure the Profibus segment voltage on a healthy segment: A-B differential should be >1 V under load. Less than 0.5 V indicates a termination or cable fault.
Power Supply (PS 307) and 24 V Distribution
Even a healthy S7-300 can be tipped into a Defective STOP if the PS 307 cannot hold its 24 V output under transient load. The CPU 315-2DP family monitors the 24 V rail and treats brown-outs as a hard fault, not a recoverable OB81 event.
| PS 307 variant | Order number | Rated output |
|---|---|---|
| PS 307-1B | 6ES7 307-1BA00-0AA0 | 24 V / 2 A |
| PS 307-1E | 6ES7 307-1EA00-0AA0 | 24 V / 5 A |
| PS 307-1K | 6ES7 307-1AK00-0AA0 | 24 V / 10 A |
Verification steps:
- Measure the 24 V output of the PS 307 with a true-RMS digital multimeter at the CPU power terminals. The reading must be between 22.8 V and 25.2 V under full load.
- Capture the 24 V rail with an oscilloscope set to AC coupling. Any dip >200 ms below 21 V will trip the CPU's undervoltage monitor. Common sources are contactor pull-ins, solenoid valves, and inverter DC-bus capacitors charging on the same supply.
- Verify the 24 V load current against the PS 307 rating. The CPU 315-2DP draws ~1.0 A from the backplane. A PS 307-1B at 80% load has no headroom for inrush transients.
- Check the protective earth conductor at the PS 307. A floating PE on a TN-S system can let the 24 V common shift by tens of volts relative to the cabinet ground and cause a hard fault.
Resolution Procedure
Once the failing module or wiring is identified, the recovery path is mechanical and procedural. Do not skip the configuration reload even if the spare is identical to the failed unit.
- Power down the rack. Mark slot positions and module order with a tag or photo.
- Remove the suspect module. Bag it with a clear label: "Defective - taken down S7-300 CPU 315-2DP - rack SN - date."
- Install the replacement module of the same MLFB and, ideally, the same firmware. If the firmware differs, update the HW Config in STEP 7 / TIA Portal and reload to the CPU.
- If the replacement is a CP 343, reconnect the Ethernet cable. Confirm the switch port LED is green and the partner device has an IP address in the configured subnet.
- If the replacement is a Profibus slave, verify the address switches on the slave match the HW Config.
- Power up. Watch the CPU's RUN LED. The CPU should reach RUN within 5 seconds of the PS 307 reaching nominal output.
- Reload the STEP 7 / TIA Portal project to the CPU. A clean reload is non-negotiable after a STOP - the diagnostic buffer is preserved across power cycles, but the application image on the MMC may be inconsistent with the as-found state.
Verification
Run the rack for at least 24 hours with the replacement in place and prove the fault is gone. Use a structured checklist.
| Check | Method | Pass criterion |
|---|---|---|
| CPU remains in RUN | Visual check on RUN LED, plus diagnostic buffer poll every 4 hours | No 16#4A04 entries for 24 hours |
| Profibus DP cycle is clean | STEP 7 online > Profibus diagnostics | No station failure events on the OP 27 slave |
| CP 343 communication | Browser GET on the CP 343 web page (if enabled) or STEP 7 online connection | TCP connection up; BF LED off |
| OP 27 HMI polls | Operator screen refresh and tag visibility | Tags update; no timeout alarms on the OP |
| Scan time | STEP 7 PLC > Module Information > Scan cycle time | Scan time within 25% of the pre-fault baseline |
| Diagnostic buffer | STEP 7 PLC > Diagnostic Buffer > Save As | Buffer clean of 16#4A04 / 16#4A05 / 16#4A0C entries |
If the buffer stays clean for 24 hours, close the work order and file the diagnostic buffer text as evidence. If a 16#4A04 entry reappears, return to step 1 of the isolation procedure - the second event typically points at a different root cause (often a backplane bus connector or a marginal power supply).
Preventive Measures and Migration Path
The 6ES7 315-2AF03-0AB0 is a discontinued product. Even with a working CP 343 replacement, plan an exit from the platform.
- Spare-parts strategy. Maintain at least one verified CPU 315-2DP with matched firmware, one PS 307, and one CP 343 of each variant on the rack. Mark them with the calibration date and a burn-in log (minimum 48 hours of RUN time).
- Install OB84, OB82, OB86, OB87, and OB121/OB122 in the S7 program. They do not catch the 16#4A04 hard STOP, but they catch the soft precursors (rack failure, diagnostic interrupt, communication error, programming error) that historically precede a hard fault by weeks. A module that does OB logging is much easier to triage.
- Enable diagnostic buffer archiving. Use a WinCC or HMI script to read the diagnostic buffer every shift and archive it to a network share. The pre-fault buffer is the single best document for predicting a hard fault.
- Replace the 24 V distribution with a redundant PS 307 pair if the cabinet budget allows. The 6ES7 307 redundancy module keeps the rack alive through a single PS failure.
- Plan the migration to the CPU 315-2 PN/DP (6ES7 315-2AH14-0AB0) or to an ET 200SP CPU 1510SP-1 PN (6ES7 510-1DJ01-0AB0) with PROFINET. The S7-300 to ET 200SP migration guide from Siemens (entry ID 109759872) walks through the project migration in TIA Portal V16 or later.
What does the S7-300 diagnostic buffer entry "Defective: internal system error" mean on a CPU 315-2DP?
It is the plain-text rendering of Event ID 16#4A04. The CPU has detected an unrecoverable internal condition - a watchdog failure, parity fault, or a peripheral module dragging the backplane - and has entered a hard STOP. No OB is called. Power cycle alone will not clear the fault; the underlying cause must be removed.
I replaced the CPU 315-2DP with an identical spare and the STOP came back. What now?
That is the diagnostic pivot. The CPU is the messenger, not the source. Reduce the rack to CPU + PS 307 only and re-add modules one slot at a time, observing RUN. In most field cases the failing item is a CP 343, a defective Profibus connector shorting +24 V onto the bus, or a sagging PS 307.
Can a CP 343 Ethernet module really take down an S7-300 CPU?
Yes. The CP 343 sits on the same backplane bus the CPU uses to dispatch OB cycles. A CP 343 with a bus-interface failure can hold the backplane in a state the CPU's arbiter cannot recover from, and the CPU logs a 16#4A04 Defective entry. Removing the CP 343 (or just the Ethernet cable, in the case that drove this article) clears the fault immediately.
How do I read the diagnostic buffer on a CPU 315-2DP that has no STEP 7 project?
Connect an MPI programming cable (6ES7 972-0CB20-0XA0) to the X1 MPI/DP port, set the MPI address to 2 (default), and open STEP 7 V5.5 or TIA Portal. Use Online & Diagnostics > Diagnostic buffer. You can read the buffer even when the CPU is in STOP. The Event IDs and plain text are independent of the project on the programming device.
What is the modern replacement for a discontinued 6ES7 315-2AF03-0AB0?
The functional successor is the 6ES7 315-2AH14-0AB0 (CPU 315-2 PN/DP), which adds a Profinet interface and increases work memory. For a longer-horizon migration, target an ET 200SP CPU 1510SP-1 PN (6ES7 510-1DJ01-0AB0) with PROFINET. Siemens provides a migration guide (entry ID 109759872) covering project conversion in TIA Portal V16 or later.