An S7-1200 CPU in a PROFINET IO network shows a flashing red SF LED with a diagnostic event "IO Station Failure" reporting HW_ID = 270 and event code 02:39CB. The CPU remains in RUN with a solid green RUN LED, the application is still exchanging data with the PC-based Simatic OPC server, and the commissioning tool (Scout/Startdrive) can still read and write symbols on the PLC. This article breaks down what each signal means, how to map HW_ID 270 to a real PROFINET device, and how to clear the fault without disturbing the running process.
S7-1200 LED Indicator Reference
The S7-1200 front panel integrates three status LEDs that together describe the controller's operating state. Each LED has a specific meaning, and the SF (System Fault) LED distinguishes between a fatal fault and a non-fatal diagnostic event by its blink pattern. Per the S7-1200 Programmable Controller System Manual (entry ID 109741593), the following states apply:
| LED | Color | State | Meaning |
|---|---|---|---|
| RUN | Green | Solid | CPU in RUN mode; program executing |
| RUN | Green | Flashing (~2 Hz) | CPU is performing startup, internal self-test, or program download |
| RUN | Off | - | CPU in STOP or no power |
| STOP | Yellow | Solid | CPU in STOP mode; program not executing |
| ERROR (SF) | Red | Solid | Fatal error; all outputs disabled; PLC typically goes to STOP |
| ERROR (SF) | Red | Flashing (0.5 Hz) | Diagnostic event only; CPU remains in RUN; process data is exchanged with healthy devices |
| ERROR (SF) | Red | Rapid flash (2 Hz) | Configuration error during startup |
| MAINT | Yellow | Solid | Maintenance demanded (e.g., forced I/O, certain CPU battery conditions) |
| MAINT | Yellow | Flashing | Maintenance required (firmware update needed, etc.) |
| LINK (X1 / X2) | Green | Solid | PROFINET port has an active Ethernet link |
| RX/TX (X1 / X2) | Yellow | Flashing | Data exchange on the PROFINET port |
Understanding PROFINET IO Architecture in the Reported Topology
The reported installation uses three PROFINET roles in parallel, and the fact that one of them is healthy is a strong clue that the fault is isolated:
- IO Controller — the S7-1200 CPU (typical article number 6ES7215-1AG40-0XB0 for a CPU 1215C DC/DC/DC, firmware V4.4 or later). The S7-1200 owns the PROFINET IO stack and runs the cyclic real-time exchange.
- IO Supervisor — the engineering PC running Simatic OPC Server. The OPC Server uses S7 communication (ISO-on-TCP, port 102) over a standard commercial NIC. A standard NIC cannot act as a PROFINET IO controller; it can only supervise or program.
- IO Devices — Sinamics drives, ET 200 stations, or third-party PROFINET devices that exchange cyclic I/O data with the S7-1200. These are the devices that the PROFINET IO controller interrogates on each update cycle.
Scout (SIMOTION Scout or Startdrive) also uses standard TCP/IP on the same PC NIC. The fact that Scout can read and write PLC symbols only proves that the S7 communication channel (acyclic, class A services) is healthy. It does not prove that PROFINET IO cyclic data exchange is healthy for every device. A device can respond to acyclic read/write requests while its cyclic PROFINET IO application relationship (AR) is down.
Architecture summary in the user's installation:
- S7-1200 ↔ PC (Simatic OPC) — S7 protocol over TCP, port 102, no PROFINET IO involved.
- S7-1200 ↔ Drives / ET 200 — PROFINET IO cyclic real-time (RT) or isochronous real-time (IRT) traffic.
- PC ↔ Drives — Scout/Startdrive direct acyclic, bypasses the S7-1200 IO stack entirely.
This is the architectural reason the user sees a flashing SF LED and a green RUN LED simultaneously: the diagnostic is "PROFINET IO station failure," not "CPU stopped" and not "communication channel down." The OPC server sits on a different layer and remains functional.
HW_ID 270 and Error Code 02:39CB Decoded
Two identifiers appear in the diagnostic buffer entry the user observed. They are not interchangeable; they answer different questions.
HW_ID (Hardware Identifier)
The HW_ID is a 16-bit unsigned integer assigned by TIA Portal at compile time. It is a stable, project-wide reference to a hardware object (CPU, submodule, IO device, port, or slot). To map HW_ID = 270 to a real device:
- In TIA Portal, open the project and select the S7-1200 station.
- Open Project tree → PLC → Device view.
- Navigate to PLC tags → Show all tags → System constants (or right-click the IO device head module and select Properties → System constants).
- Search the system-constants table for the value
270. The matching symbolic name (e.g.,<Drive name>_Head,ET200SP_Station3,PNdevice_Interface) identifies the device that produced the diagnostic event.
HW_IDs in a typical S7-1200 project are organized as follows:
| HW_ID range (typical) | Object type |
|---|---|
| 0 | CPU itself |
| 1 to 64 | Onboard I/O and signal boards |
| 65 to 255 | Centralized I/O modules (if PROFINET is not used) |
| 256 to 511 | PROFINET IO devices and submodules |
| 512+ | Diagnostic addresses, ports, additional submodules |
HW_ID 270 falls inside the PROFINET IO device/submodule range. It is the head module or a specific slot of one IO device on the S7-1200's PROFINET segment. Confirming the exact device name is step one of the entire troubleshooting flow — the rest of the procedure is meaningless until the engineer knows which physical device is the culprit.
Event Code 02:39CB
The format 02:39CB is Siemens' hex-prefixed event identifier used inside the diagnostic buffer. The first byte (0x02) classifies the event family:
| Event class (hex prefix) | Meaning |
|---|---|
| 01xx | CPU / program errors (e.g., OB not loaded, programming error) |
| 02xx | PROFINET IO / distributed I/O errors |
| 03xx | Module / submodule errors (centralized I/O) |
| 04xx | Communication errors (TCP, S7, FDL) |
| 05xx to FFxx | Security, technology, and vendor-specific events |
| 02:39CB | PROFINET IO station failure — the IO device is missing or unreachable |
02:39CB is the PROFINET IO Station Failure event. The IO controller has lost the cyclic PROFINET IO connection to the device referenced by HW_ID 270. The device is either:
- Power cycled or unpowered.
- Disconnected from the Ethernet segment (broken cable, removed connector, dead switch port).
- Reset to factory defaults and therefore missing its PROFINET device name.
- Reporting an internal fault that prevents AR establishment (drive in fault state, ET200 submodule pulled).
02:39CB is documented in the TIA Portal help under "Diagnostic events for PROFINET IO." The ID is the same across S7-1200 firmware versions; what changes between firmware revisions is the descriptive text in the buffer detail pane.
Reading the TIA Portal Diagnostic Buffer
The diagnostic buffer is the only authoritative source for the precise cause of an SF LED event. To read it correctly:
- Connect the engineering PC to the S7-1200's PROFINET port (X1) directly or through the same managed switch.
- Open TIA Portal, expand the project, and select the S7-1200 station.
- Click Go online (the lightning-bolt icon) and choose Online & diagnostics.
- From the navigator, open Diagnostics → Diagnostic buffer.
- Scroll to the most recent red entry. Each entry shows:
- Timestamp (CPU clock; verify that the time is correct, otherwise the chronological order is unreliable).
- Event ID in the form
xx:yyyy. - Event description (English/German depending on UI language).
- HW_ID of the affected object.
- Additional info: incoming vs. outgoing event, channel diagnostic bytes.
- Click the
02:39CBentry. In the Details pane, TIA Portal lists the affected IO device and the channel-diagnostic bytes (the raw PROFINET channel error code from the device). - Note the next-incoming and next-outgoing events. The "outgoing" entry is the moment the fault cleared; this is invaluable for correlating with plant events (e.g., cabinet door opened, breaker tripped).
Common Root Causes of IO Station Failure
Across thousands of PROFINET installations, the failure modes for a single IO device fall into a small set. Ranked by frequency in field service:
| # | Root cause | How to confirm | Fix |
|---|---|---|---|
| 1 | Device power removed (drive in fault, 24 V supply dropped, breaker tripped) | Measure 24 V at the device; check device display/LEDs | Restore 24 V; clear the device fault; cycle the IO connection if needed |
| 2 | PROFINET cable disconnected, broken, or swapped to wrong port | Check LINK LED on the device and S7-1200 X1/X2 port; cable tester | Re-seat or replace the cable; use the correct port (PN1 vs. PN2) |
| 3 | Managed switch port in error-disable (storm control, BPDU guard, ACL) | Check switch log; port LED off while cable is connected | Re-enable the port; check the cause (multicast storm, duplicate IP, unauthorized device) |
| 4 | Device name lost after a factory reset or GSD re-import | Use PRONETA to read the actual device name; compare to TIA Portal | Re-assign the device name via PRONETA, TIA Portal topology, or web server of the device |
| 5 | IP address conflict on the PROFINET segment | Run PRONETA network scan; ping the device IP from a workstation | Change the conflicting device's IP; reserve it on the DHCP server or in topology |
| 6 | GSD file mismatch after firmware update | Compare module slots in TIA Portal with the real device configuration | Update the GSD in TIA Portal, recompile, download the device configuration |
| 7 | Replacement device with default name | PRONETA shows device has no name or wrong name | Use PRONETA's "Assign PROFINET name" with the topology editor's expected name |
| 8 | Watchdog time-out because update time is too tight for the device | TIA Portal's IO diagnostics shows life-watch failures; "station failure" returns immediately after re-connection | Increase the update time (1 ms → 2 ms → 4 ms); use the "Performance" view to validate |
| 9 | EMC / grounding issue corrupting frames | Frame counters, CRC errors in PRONETA or managed switch | Fix shield bonding, eliminate ground loops, route PROFINET cable away from VFD power cables |
| 10 | Device in a permanent diagnostic state (overload, encoder fault, missing submodule) | Channel diagnostic bytes show "sensor short-circuit" or "encoder error" | Clear the device-level fault, then clear the PROFINET diagnostic |
Step-by-Step Troubleshooting Procedure
Follow this order to minimize the risk of disturbing the running process. The PLC remains in RUN throughout; the goal is to identify and clear the IO device, not the CPU.
Step 1 — Map HW_ID 270 to a Real Device
Open the system-constants table as described above. Record the device name. Typical S7-1200 projects use human-readable names such as Drive_S120_1, ET200MP_Station3, or PN_IO_4. Confirm the device's physical location in the cabinet before continuing. If the device is a Sinamics S120 with Scout, the device's PROFINET name in TIA Portal must match the name assigned to the drive's CU (Control Unit).
Step 2 — Inspect the Device Physically
- Open the cabinet and locate the device. Most Sinamics drives have a multi-segment display; ET200SP/ET200MP have a status LED bar.
- Read the display or LEDs. A Sinamics in fault shows an
Fcode (e.g., F30002 for overcurrent, F07801 for motor overcurrent); ET200 stations show the channel number of the missing module. - Verify 24 V at the device's power terminals with a multimeter. Many PROFINET devices are powered separately from the S7-1200's 24 V; the PLC supply being healthy does not mean the device supply is healthy.
Step 3 — Verify the PROFINET Cable Path
- Check the LINK LED on the device's PROFINET port. Solid green = link up; off = no link.
- Check the LINK LED on the S7-1200's X1 (or X2 if used) port for the relevant port number.
- If the device is connected through a managed switch, verify the port is "up" and not error-disabled. Use the switch's web interface or CLI to confirm.
- Re-seat the PROFINET connectors. RJ45 plugs in industrial cabinets vibrate loose; a 0.5 mm gap is enough to lose frames under vibration.
- If a spare patch cable is available, swap it. A cable with one intact pair can pass a LINK LED test but fail PROFINET IO because the second pair is used for cyclic traffic.
Step 4 — Verify the PROFINET Device Name
- Install PRONETA (Siemens free tool, available from the SiePortal under "Tools & Downloads") on the engineering PC.
- Run Network analysis from PRONETA's home screen. The tool sends a DCP identify-all to every reachable device.
- Locate the device that should have HW_ID 270 in the result list. Read its actual device name and IP address.
- Compare with the TIA Portal configuration:
- Device name must match exactly (case-sensitive, including punctuation).
- IP address must be on the same subnet and not duplicate any other device.
- If the name is missing or wrong, use PRONETA → Assign PROFINET name to push the correct name. The IO device restarts its PROFINET stack automatically.
Step 5 — Cross-Check the GSD and Module Configuration
- In TIA Portal, double-click the IO device in the device view and inspect every slot. The slot configuration must match the actual hardware (number of submodules, order, and article numbers).
- If the device firmware has been updated since the TIA Portal project was last saved, the GSD may be out of date. Right-click the device head module → Change device / GSD, then re-import the latest GSD from the manufacturer.
- Recompile the project (Project tree → right-click PLC → Compile → Hardware and software (rebuild all)) and download the hardware configuration to the S7-1200.
Step 6 — Address Update-Time / Watchdog Issues
- In TIA Portal, open the IO device's properties → PROFINET interface → IO cycle.
- The default update time for an S7-1200 IO controller is 1 ms. If the IO device cannot keep up (older drives, ET200S, third-party devices), increase the value to 2 ms or 4 ms.
- For drives used in motion control, evaluate IRT mode and the "Performance" view; the application may need to switch from RT_CLASS_1 to RT_CLASS_3 with the topology editor's port interconnections.
Step 7 — Acknowledge the Diagnostic and Clear the SF LED
- Once the IO device is reachable and the cyclic exchange is restored, the PLC removes the diagnostic event. TIA Portal shows the corresponding outgoing entry in the diagnostic buffer.
- The SF LED stops flashing as soon as the outgoing event is logged. If the LED is still flashing, a second IO device is in fault or the same event has not cleared (the device is reachable but still reporting a channel-level diagnostic).
- If the LED persists, use Online & diagnostics → Functions → Acknowledge diagnostics on the IO device to clear the latched channel error. The device's own acknowledge mechanism (e.g., drive's "Acknowledge fault" via p3981) may be required before PROFINET clears the channel diagnostic.
Verifying PROFINET IO Communication After Repair
Confirm restoration using all three views.
-
Online & diagnostics view: TIA Portal shows the IO device with a green status; the diagnostic buffer no longer contains a pending
02:39CBentry. - Watch table: Open the device's IO tags in a watch table. The input values update at the configured update time; the output values you write are echoed back from the device within one cycle.
- PRONETA: Run Topology editor → Check. PRONETA compares the discovered topology (port-to-port cabling) with the configured topology in TIA Portal. Mismatches indicate a swapped cable or a missing device.
- Simatic OPC Server: Open the OPC Scout or OPC client. Confirm that the symbol that the user originally read with Scout now shows live data with no quality code "BAD".
Preventing Future PROFINET IO Station Failures
Three engineering practices reduce the recurrence rate to near zero:
- Use a managed switch with PROFINET awareness. Siemens Scalance XC-200 / XB-200 / XC-300 series supports PROFINET conformance class B, prioritizes PROFINET frames via DSCP, and reports port errors to STEP 7 / TIA Portal over SNMP. Error-disable and storm-control features are documented in the Scalance XC-200 Operating Instructions (entry ID 109751635).
- Reserve a static IP per device. Configure the DHCP server (or the TIA Portal topology) to assign the same IP and device name on every restart. Use PRONETA's "Save and restore" feature to back up device names after commissioning; a 30-second export prevents a 4-hour troubleshooting session after a field replacement.
-
Program diagnostic OB83 / OB86. The S7-1200 CPU supports OB83 (insert/remove of a module) and OB86 (failure of a rack or IO device). Adding an OB86 to the program prevents the CPU from going to STOP if an IO device disappears; instead, the application can flag the affected axes or I/O in a status word and the HMI can display the precise HW_ID that is missing. Reference the S7-1200 System Manual for OB86 parameter mapping (OB86_INPUTS includes
Event_Code,IO_State,LADDR— the LADDR is the HW_ID of the failed device).
OPC Server and PROFINET IO — Independent Failure Domains
When Scout/Startdrive is functional and the OPC server is functional, the user can confirm that the S7-1200's S7 communication layer is healthy. The PROFINET IO failure is a separate layer. The standard NIC in the PC is the supervisor and is not in the IO data path. This is the key reason the user sees a flashing SF LED and a green RUN LED simultaneously: the diagnostic is "PROFINET IO station failure," not "CPU stopped" and not "communication channel down."
When troubleshooting PROFINET IO faults in this topology, isolate the failure to one of the following layers:
- Layer 1 — physical: cable, connector, port, switch.
- Layer 2 — DCP: device name and IP address (Discovery and Configuration Protocol).
- Layer 3 — PROFINET IO AR (application relationship): cyclic real-time channel between controller and device.
- Layer 4 — Application: the device's own diagnostic (e.g., drive fault, sensor overrange).
PRONETA covers layers 1, 2, and 3. The diagnostic buffer covers layers 3 and 4. Scout/Startdrive covers only the acyclic TCP path, which sits outside PROFINET IO. Each tool answers a different question; cross-correlate at least two of them before replacing hardware.
FAQ
What does a flashing red SF LED mean on an S7-1200 with the RUN LED still green?
A flashing red SF LED (typically 0.5 Hz) with a solid green RUN LED means the CPU has detected a non-fatal diagnostic event. The most common cause is a PROFINET IO station failure or a per-channel diagnostic from a module. The CPU continues to execute the user program; only the affected IO device is lost from the cyclic exchange.
How do I find the device that corresponds to HW_ID 270 in TIA Portal?
Open the project, go online to the S7-1200, and navigate to PLC tags → Show all tags → System constants. Search for the value 270. The matching name identifies the IO device or submodule that produced the diagnostic event. Alternatively, the value is shown directly in the diagnostic buffer detail pane for the 02:39CB entry.
Why can Scout read and write symbols while PROFINET IO has a station failure?
Scout uses acyclic S7 communication (TCP port 102) on the PC NIC. PROFINET IO uses cyclic real-time frames on the same physical network. A device can be reachable for acyclic read/write requests while its cyclic PROFINET IO connection is down because the two protocols share a cable but use independent stack implementations in the device.
Can I clear the SF LED without a TIA Portal download or power cycle?
Yes. Once the IO device is reachable and the diagnostic event has cleared on the device, the PLC logs the outgoing event and the SF LED stops flashing automatically. If the LED persists, use Online & diagnostics → Functions → Acknowledge diagnostics on the IO device to clear the latched channel-level error. Do not clear the diagnostic buffer; the historical entries are useful for trend analysis.
What is the difference between error code 02:39CB and an SF LED triggered by an OB not being loaded?
02:39CB belongs to PROFINET IO event class 02 and indicates an IO station failure. An OB-not-loaded event is in class 01 (CPU/program errors) and typically carries codes such as 01:xxxx. The diagnostic buffer shows the event class explicitly in the Details pane. Treat class 02 events as I/O layer issues and class 01 events as program or CPU configuration issues.