Problem Description
A Simatic S7-300 CPU and its connected ET 200M distributed I/O station show the following LED status on the front panel:
-
S7-300 CPU:
SFLED solid ON,BF1LED flashing -
ET 200M (IM 153-1):
SFLED solid ON,BFLED flashing
Bus communication between the master (CPU 31x) and the ET 200M slave is not healthy even after the operator has replaced the IM 153-1 module, the DI module (MI1.0501+SK1-K031), and the Profibus connectors. All other Profibus slaves (DP couplers, VLT drives) report normal on their own BF indicators. The fault survives a fresh project download.
This pattern is one of the most common S7-300 field failures and almost always points to either a physical layer problem, a Profibus address/configuration mismatch, or a diagnostic buffer event the CPU has not yet been cleared from.
LED Reference - What SF and BF Really Mean
Two diagnostic LEDs on the S7-300 CPU and the IM 153-1 carry different but related meanings. Confusing the two is the single largest source of mis-diagnosis.
| LED | Full Name | Indicates | Common Cause |
|---|---|---|---|
BF / BF1 |
Bus Fault (Profibus / Profinet interface 1) | Physical or logical communication failure to one or more Profibus DP nodes | Broken cable, missing/bad terminator, slave powered off, wrong Profibus address, baud rate mismatch, slave not configured in HW Config |
BF2 |
Bus Fault (second interface, MPI/DP combo CPUs only) | Same as BF1 but for the second interface | Same |
SF |
System Fault | CPU diagnostic event: I/O access error, programming error, OB not loaded, module pulled/inserted under power, rack fault, OB85/OB121 triggered | Accessing an I/O address whose slave has dropped out, or a hardware configuration mismatch |
MAINT |
Maintenance demand (CPU 317/319, FW >= V3.x) | Maintenance event pending | Open the diagnostic buffer |
SF and BF illuminate together, the program is almost always trying to read or write an I/O area belonging to the slave that dropped out. The CPU reports a system fault because the cyclic I/O update has failed, not because user logic is wrong.Root Cause Analysis
BF and SF simultaneously can be attributed to four classes of fault, ranked by frequency observed in the field:
- Physical layer (most common, > 50% of cases): Shield not grounded, broken conductor in the Profibus cable, missing or double terminator, segment length > maximum allowed for the configured baud rate, T-piece or repeater failure.
- Configuration mismatch: Profibus address set on the IM 153-1 DIP switches does not match the address assigned in HW Config; IM 153-1 article number (e.g., 6ES7153-1AA03-0XB0) does not match the HW Config version; GSD file revision mismatched.
- Module-level fault on the ET 200M: Defective IM 153-1, defective I/O module (DI/DO/AI/AO), backplane bus connector failure, 24 V supply weak or missing on the load current supply (PS 305/PS 307).
- Project / firmware fault: Outdated CPU firmware incompatible with the ET 200M GSD, OB82/OB86/OB122 not loaded so the CPU goes STOP on first access error, or hardware configuration has been corrupted.
In the reference incident, the engineer had already eliminated class 3 (new IM 153-1, new DI module) and class 4 (fresh download). This is a strong indicator that the fault is in class 1 (physical layer) or class 2 (address/GSD mismatch on Profibus node 30).
Diagnostic Buffer - The First Place to Look
Every S7-300/400 CPU maintains a ring-buffer of diagnostic events. It is the single most useful tool for this failure mode. Open the project in STEP 7 v5.x or TIA Portal and connect online.
- In STEP 7 v5.x: PLC > Module Information, then click Diagnostic Buffer tab.
- In TIA Portal: Online > Diagnostics > Diagnostic buffer.
- Click the Save As... button to export the entire buffer to a .txt file (STEP 7 v5.x) or .csv/.xml (TIA Portal). Always attach this to a support ticket.
- Sort the entries by Time of Event descending. The most recent event is the active fault.
Typical diagnostic events for an ET 200M BF/SF combination include:
| Event ID (Hex) | Text | Meaning | Action |
|---|---|---|---|
0x0E02 |
Distributed I/O: Station failure | CPU has lost cyclic communication to the slave | Check cable, address, power |
0x0E03 |
Distributed I/O: Station return | Slave is back online | Clear SF if it persists |
0x0E84 |
Module/Submodule has failed | Specific module inside the slave is bad | Pull and reseat, then replace |
0x0E86 |
Module/Submodule has returned | Module is back | Verify SF clears |
0x0E1F |
I/O access error when writing | User code wrote to a bad address | Check FB/FC pointer math |
0x0E20 |
I/O access error when reading | User code read a bad address | Same |
0x3942 |
PROFIBUS DP: Slave diagnostic | Slave sent a diagnostic frame | Read module diagnostics |
0x0A31 |
DP: Station failure (diagnostic interrupt) | Physical connection lost | Inspect cable/connector |
0x0C02 |
Module removed | Module pulled under power | Reseat, do not hot-pull if not configured for hot-swap |
For the IM 153-1 specifically, double-click the event to see the slot number and module type. The slot map for an ET 200M is shown below.
ET 200M Slot and Address Map
| Slot | Module | I/O Start Address (typical for Profibus address 30) |
|---|---|---|
| 0 | IM 153-1 (6ES7153-1AA03-0XB0 or higher) | DP slave address 30 |
| 1 | Power module (PS 307 / PS 305) - optional | None |
| 2 | First signal module (DI/DO/AI/AO) | 0 |
| 3 | Second signal module | 4 / 16 / 32 depending on width |
| 4 ... 12 | Up to 8 SMs and 1 FM total | Incremental |
If the DI module tag is MI1.0501+SK1-K031 and the symptom is that "most DI signals are not ON," the slot-2 module is likely being read by user code whose pointer assumes a 32-channel mapping. Verify in HW Config whether the module is configured as DI16 x DC24V or DI32 x DC24V. Wrong slot-width in the project versus reality will cause SF because the cycle I/O handshake fails.
Step-by-Step Diagnostic Procedure
Use this sequence in order. Do not skip steps; each one rules out a class of fault before spending time on the next.
Step 1 - Verify Profibus Address
The IM 153-1 Profibus address is set with rotary switches on the module front. The reference plant has address 30. Confirm that:
- Switches read
3on the tens (x10) and0on the units (x1). - HW Config > DP Slave Properties > Profibus Address matches.
- No other node on the bus has address 30 (use a Profibus tester or cycle-power each slave until BF stops flashing to identify the offender).
Step 2 - Check Terminator Settings
Profibus RS-485 must be terminated at exactly two points, at the physical ends of the segment. The terminator is a 220 ohm resistor between A and B, plus a 390 ohm pull-up on VP and a 390 ohm pull-down on GND - the classic 9-pin D-sub Profibus connector with switchable terminator (e.g., 6ES7972-0BA52-0XA0).
| Connector Position | Required Terminator State |
|---|---|
| First physical node of segment | ON |
| Middle nodes (any number) | OFF |
| Last physical node of segment | ON |
| After the last node (outgoing cable unplugged) | ON - the segment ends at the last powered node |
The reference case shows terminator OFF on the ET 200M. This is correct if the IM 153-1 is in the middle of the segment. Verify that both end nodes of the segment have terminators ON; one missed terminator will reflect the signal and force BF.
Step 3 - Measure the Cable
At 1.5 Mbaud (the standard Profibus DP rate), the maximum segment length is 200 m. Use a Profibus cable tester or a multi-meter for the following checks:
| Check | Expected | Result |
|---|---|---|
| Resistance A to B (terminator OFF) | ~ 110 ohm/km of cable (very high, only the small leakage) | 0 ohm = short |
| Resistance A to B (terminator ON) | 220 ohm | Open = bad switch/connector |
| Resistance A to shield | > 1 MOhm | 0 = short to ground |
| Resistance B to shield | > 1 MOhm | 0 = short to ground |
| Voltage A to B (idle) | ~ 1.0 V differential | < 0.2 V = bus failed |
Step 4 - Read the Online Diagnostics in STEP 7 / TIA Portal
- Go online with the CPU.
- Open Accessible Nodes (STEP 7 v5.x: PLC > Accessible Nodes). The ET 200M should appear with its Profibus address and module type. If it does not, the CPU has lost it.
- Right-click the slave and choose Module Information. The DP Slave Diagnostics tab shows the raw diagnostic bytes returned by the IM 153-1.
- Interpret the diagnostic bytes per the Profibus DP-V0 specification. Byte 0 bits 6/7 set indicate station_status; byte 0 bit 3 (external_diag) set means the IM has a module-level diagnostic pending; byte 1 contains the Profibus master address, byte 2 the slave's Profibus address.
Step 5 - Use OB82 / OB86 / OB122 to Stay RUN
By default, an S7-300 CPU without OB86 will STOP the moment a DP slave is unreachable. With OB86 loaded, the CPU stays in RUN and the BF/SF LEDs indicate the issue. This is why the reference case sees the CPU in RUN despite the fault.
Verify in the project that the following OBs are present in the Blocks folder and were downloaded to the CPU:
-
OB82- Diagnostic interrupt -
OB86- Rack failure (DP slave failure) -
OB121- Programming error (permissive) -
OB122- I/O access error (permissive)
Missing OBs do not cause BF/SF directly, but a missing OB86 on a CPU without permissive access can also be the reason SF appears the first time a peripheral access fails.
IM 153-1 Module-Specific Checks
The 6ES7153-1AA03-0XB0 (and later BA02, CA00) is the standard Profibus interface for ET 200M. Its front-panel LEDs add information beyond the standard BF/SF pair.
| LED | Color | Meaning |
|---|---|---|
ON |
Green | 24 V supply present |
SF |
Red | Module diagnostic pending; backplane error; configuration mismatch |
BF |
Red | No Profibus communication |
ACT |
Yellow | Cyclic data exchange active |
If BF is flashing at 0.5 Hz, the IM 153-1 has not received any Profibus frame from the master. If BF is solid ON, the IM 153-1 has lost link at the physical layer. Distinguishing these saves hours: a flashing BF means the master never sent a frame, a solid BF means the IM cannot hear what the master sent.
Addressing Math - Why the DI Module Looks Dead
The user code addresses MI1.0501+SK1-K031. In a STEP 7 symbol table this is a multi-instance, multi-slot pointer. The slot offset must equal the configured slot. If HW Config has the DI module at slot 2 but the symbol was generated against slot 4 (or vice versa), the CPU will report an I/O access error on every read because the address falls outside the input area the slave provides.
Worked example for Profibus address 30 with 4 DI16 modules at slots 2-5:
| Slot | Module | Input Word Address (PIW) | Output Word Address (PQW) |
|---|---|---|---|
| 2 | DI16 x DC24V | 0 - 1 | - |
| 3 | DI16 x DC24V | 2 - 3 | - |
| 4 | DI16 x DC24V | 4 - 5 | - |
| 5 | DI16 x DC24V | 6 - 7 | - |
With MI1.0501+SK1-K031 as the symbolic name for byte 5 input (= bit offset 40 of slot 4), the calculation is:
IB 5 = I 5.0 ... I 5.7
"MI1.0501+SK1-K031" must map to I 5.0 to I 5.7
If the symbol was generated for slot 2 (PIW 0), it would read I 0.0 ... I 0.7 instead.
Re-crosscheck with Go To > Location in the symbol editor to confirm the absolute address of the symbol after a recompile.
Replacement Matrix - What the Engineer Already Did
| Action | Result | What It Rules Out |
|---|---|---|
| Replace IM 153-1 (address 30, terminator OFF) | BF still flashing | Bad IM 153-1 hardware |
| Replace DI module MI1.0501+SK1-K031 | All DI signals ON | Bad DI module |
| Replace Profibus connectors | No change | Connector pin contact / corrosion |
| Other Profibus slaves (DP couplers, VLT drives) are ON | No change to ET 200M | Master fault / entire bus down |
| Re-download PLC program | No change | Corrupted user program or HW Config |
What remains: Profibus cable integrity (shield, segment end terminator), 24 V load supply on the ET 200M, and address/GSD consistency in HW Config. The next most likely root cause is either a double-terminated or un-terminated segment or the ET 200M 24 V load supply is sagging when the IM 153-1 attempts a baud-rate handshake.
24 V Load Supply Test
The ET 200M has two supplies. The IM 153-1 takes its 24 V from the backplane. The load supply (L+ / M) is what powers the field-side of the I/O modules. A sagging load supply (below 20 V) is a common cause of partial DI module failure while still showing BF.
- Measure
L+toMat the ET 200M power terminals with a DMM under full load. - Expected: 24.0 V +/- 5% (i.e., 22.8 V to 25.2 V).
- If voltage sags when the field contacts close, the PS 307 (or the field wiring's current draw) is undersized.
Shielding and EMC Checks
Profibus is RS-485, which is differential but easily disturbed by VFD common-mode noise. With VLT drives on the same bus, the shield bonding is the highest-leverage fix.
- Verify the Profibus cable shield is bonded to ground at both ends of the segment through the Profibus connector's grounding bar (the metal clamp that grips the cable shield).
- Use cable with double shield when running in VFD cable trays.
- Keep at least 200 mm separation between Profibus cable and 400 V / VFD power cables; cross at 90 deg if they must intersect.
Verification - Confirming the Fix
After every change, perform this four-step verification before declaring victory:
- LED check: CPU and IM 153-1 BF LEDs OFF, SF OFF, ACT solid green on the IM 153-1.
- Diagnostic buffer clear: Open the buffer, no entries with 0x0E02 / 0x0A31 / 0x3942 in the last 5 minutes. The buffer should show only the "Station return" 0x0E03 event when the fix was applied.
- Force and read: Force a single DI on the ET 200M from the field (turn on a 24 V source to the channel). Monitor the input in the VAT table at the correct PIW address. The status must toggle within one Profibus cycle (typically 1 - 10 ms).
- Power-cycle test: Power off the ET 200M for 30 seconds, power on. Within 5 seconds the BF should self-clear and ACT should turn green. If BF does not clear, the master is not cycling the slave into RUN - check HW Config Save/Compile was performed after any change.
Preventive Recommendations
- Always use Siemens Profibus connectors with integrated inductor (e.g., 6ES7972-0BA52-0XA0) on the bus, and the diagnostic version with PG socket (6ES7972-0BB52-0XA0) for permanent analyzer connection.
- Document Profibus address, baud rate, and terminator state in the cabinet drawing and inside the cabinet door.
- Use the S7-300 CPU 31x/31xC, ET 200M system manual (entry ID 45531107) Chapter 23 as the canonical reference for diagnostic tools.
- Enable OB82, OB86, OB121, OB122 in the project so the CPU stays in RUN and the SF LED is the only visible indicator (rather than a STOP state).
- Schedule annual Profibus cable and connector inspection, including shield-resistance measurement and terminator resistance measurement.
Related Module Variants and Migration
| Article Number | Module | Notes |
|---|---|---|
| 6ES7153-1AA03-0XB0 | IM 153-1 (standard, 12 Mbaud) | Most common, fits the reference case |
| 6ES7153-2BA02-0XB0 | IM 153-2 (with FO port) | Use when segment length > 200 m or high EMC |
| 6ES7153-2AR03-0XB0 | IM 153-2 HF (high feature) | Supports time-stamping and isochronous mode |
| 6ES7153-4BA00-0XB0 | IM 153-4 PN (Profinet) | For Profinet migration |
If a Profibus-to-Profinet migration is being considered, the IM 153-4 PN is a drop-in replacement and reuses the same S7-300 I/O modules. The diagnostic event IDs are similar; SF and BF semantics are preserved as PROFINET channel diagnostics.
FAQ
What does BF flashing on an S7-300 mean, and how is it different from a solid BF?
BF means "Bus Fault" on the Profibus interface. A flashing BF (typically 0.5 Hz) indicates the CPU has not received a response from one or more configured Profibus slaves - usually a cabling, address, or configuration problem. A solid (steady ON) BF means the CPU cannot physically transmit or receive on the bus at all - usually a cable short, missing terminator, or failed transceiver on the master or slave.
How do I interpret the S7-300 diagnostic buffer for a Profibus failure?
Open the buffer from STEP 7 (PLC > Module Information) or TIA Portal (Online > Diagnostics). Sort by time. Look for event ID 0x0E02 ("Station failure") followed by 0x0E84 ("Module/submodule failure") and 0x0A31 ("DP station failure"). The slave's Profibus address, slot, and module type appear in the event details - double-click any entry to drill down.
Can the S7-300 stay in RUN with a Profibus failure and still show SF?
Yes, provided OB86 (rack failure) is loaded into the CPU. Without OB86, the CPU will STOP on the first DP station failure. With OB86, the CPU remains in RUN, the BF LED lights, the SF LED lights for any I/O access error that the user program generates, and the diagnostic buffer records the events. Always load OB82, OB86, OB121, and OB122 for a permissive fault-tolerant configuration.
Why does the IM 153-1 BF keep flashing after the IM, the DI module, and the connectors are all replaced?
After replacing the IM 153-1, the DI module, and the Profibus connectors with no change in symptom, the residual root cause is almost always either a Profibus segment termination error, a damaged cable inside the conduit, a 24 V load-supply sag under field load, or a Profibus address conflict on another node. Use a Profibus tester to verify the segment resistance and termination (220 ohm between A and B at the two ends only) before replacing further components.
Is it safe to pull and reseat an ET 200M module while the bus is active?
Only for IM 153-2 BA02 or higher with the hot-swap function enabled in HW Config (under "Properties > Hot Swap"). For the standard IM 153-1, removing a module under power will drop the bus, trigger SF and BF on the CPU, and may corrupt the user program's I/O image. Always de-energize the station before module replacement unless hot-swap is explicitly enabled.