profinet

communication loss

troubleshooting

PROFINET Communication Loss: How to Diagnose It

‌
PROFINET communication loss diagnosis diagram showing broken link between PLC and remote IO device

Your S7-1500 throws a PROFINET station failure alarm at 2 AM and a conveyor line stops. The on-call tech resets the CPU and it comes back. Two nights later, same thing. That pattern, intermittent PROFINET communication loss with no obvious cause, is one of the most frustrating faults in modern automation. This post gives you a repeatable diagnosis process so the next time it happens you find the actual root cause instead of just rebooting and hoping.

Why PROFINET Communication Loss Is Easy to Misdiagnose

PROFINET is unforgiving about timing. The default IO cycle for most S7-1500 projects is 1 ms to 4 ms, and the watchdog multiplier is typically 3 to 6 cycles. That means the PLC declares a station failed after just 3 ms to 24 ms of silence. A single corrupted frame caused by a loose RJ45, a failing managed switch, or a burst of EMI is enough to trigger that watchdog. The CPU goes to STOP or raises a hardware fault OB, and you get a tidy alarm that says 'Station failure: ET 200SP, slot 3' but tells you nothing about why the frames stopped.

People reach for the obvious fixes first: power-cycle the device, swap the cable, replace the IO module. Sometimes that works. More often it masks the underlying cause and the fault returns in a week. The right approach is to treat it like any other diagnostic: gather data, isolate the layer, confirm the fix.

Step 1: Read the Diagnostic Buffer Before You Touch Anything

In TIA Portal, open the CPU online view and go to Diagnostics > Diagnostic Buffer. The buffer stores the last 512 events with timestamps to the millisecond. Look for three things:

  • The exact timestamp of the first station failure event. Note whether it correlates with a shift change, a large motor starting, or a scheduled task.
  • Whether the failure is for one specific device or multiple devices simultaneously. One device failing alone points to that device or its link. Multiple devices failing at the same second points to a switch, a ring break, or a shared power rail.
  • Any preceding events: port state changes, firmware faults, redundancy switchovers. These often appear 50 ms to 200 ms before the station failure alarm and are the real clue.
Export the diagnostic buffer to a CSV file before anyone resets the CPU. TIA Portal lets you do this from the buffer window. Once you cycle power, the timestamps are gone and you are left guessing.

Step 2: Check Device and Port Status in the Topology View

TIA Portal's Network View > Topology tab shows the live port state of every PROFINET device, provided you have the device connected and online. Right-click any device and open Device Diagnostics. The port status table will show you which physical port is connected, the negotiated speed (100 Mbit/s full-duplex is mandatory for PROFINET), and any port errors.

Pay attention to the error counters on each port. A high count of CRC errors (anything above a handful per hour) on one specific port almost always means a bad cable or a poorly crimped RJ45 on that segment. Alignment errors point to duplex mismatch, which should not happen with auto-negotiation but does if someone hard-coded one side to half-duplex.

PROFINET topology view showing device with port errors highlighted during communication loss diagnosis
The topology view port error counters often point directly to the bad cable segment before you even lift a screwdriver.

Step 3: Ping and Wireshark to Confirm the Network Layer

A simple ping from a laptop tells you whether the device is reachable at the IP layer. PROFINET devices always respond to ICMP ping even when the IO cycle is failing, so a ping failure means the device is fully offline, not just experiencing frame loss. If ping succeeds but the PLC still shows a station failure, the problem is at the PROFINET RT layer, not the IP layer, and you need a packet capture.

Connect a laptop with Wireshark to a mirror port on the switch closest to the suspect device. Capture for 10 to 15 minutes. Filter on pn_io in Wireshark. You are looking for:

  • Gaps in the cyclic data frames. If you see the IO cycle running at 4 ms intervals and then a gap of 20 ms or more, that is your watchdog trigger.
  • Bad frame checksums. Wireshark marks these in red. Even one bad frame per minute can be enough to trigger a watchdog on a short cycle.
  • Alarm frames from the device. ET 200SP and similar devices send PROFINET alarm frames before they drop off. These will tell you the internal fault code.
  • Duplicate IP or MAC conflicts. If two devices share an IP, you will see ARP conflicts in the capture.
Do not connect your laptop directly in-line with the PROFINET cable to capture traffic. Use a managed switch mirror port or a TAP. Inserting a laptop NIC in-line introduces latency and will itself cause frame drops.

Step 4: Test the Physical Layer Properly

Most PROFINET faults I have traced over the years come down to the physical layer. The network logic is fine; the cable is the problem. A continuity tester is not enough here. You need a cable tester that checks all four pairs for length, impedance, crosstalk and return loss, or at minimum a tester that does a Time Domain Reflectometry (TDR) scan. The Fluke DSX CableAnalyzer is the gold standard. A Softing PROFItest or similar PROFINET-specific tester will also catch PROFINET-specific issues like channel attenuation.

Things to physically check in order of how often they actually cause intermittent faults:

  1. RJ45 connectors crimped in the field. Industrial PROFINET uses Cat 5e minimum, but the bigger problem is cold crimps where one or two pins make intermittent contact. Pull-test every field-crimped connector with 5 kg of force.
  2. Cable routed through a cable chain (energy chain / drag chain). Every flex cycle works the conductors at the connector entry point. Inspect the first and last 10 cm of any cable exiting a drag chain.
  3. Cables routed near high-voltage conductors or VFD output cables. PROFINET is not immune to induced noise. Siemens recommends at least 200 mm separation from VFD cables and crossings at 90 degrees.
  4. Switches inside enclosures that are thermally stressed. An unmanaged switch running at 70 C ambient will drop packets. Feel the switch housing. If it is too hot to keep your hand on it, add ventilation.
  5. Fiber segments with dirty connectors. One contaminated LC connector face causes 3 dB to 6 dB of loss, which is enough to drop the link sporadically.

Step 5: Check the Switch Configuration for PROFINET Compliance

Not every managed switch is suitable for PROFINET. The main requirements are: no Spanning Tree Protocol (STP or RSTP) on ports carrying PROFINET IO devices (STP can block a port for 30 seconds during topology changes, which is fatal), LLDP enabled so the topology view works, and no IGMP snooping on the PROFINET VLAN. Many IT-managed switches have STP enabled by default and nobody disables it when the switch goes into the panel.

If you are using Media Redundancy Protocol (MRP) for ring topology, the MRP manager must be set correctly in TIA Portal and on the switch. A misconfigured MRP role causes the ring to break and reform constantly, which looks exactly like random station failures. Check that exactly one device in the ring is set as MRP Manager and all others are MRP Clients.

Switch SettingCorrect for PROFINETCommon Wrong Value
Spanning Tree (STP/RSTP) on IO portsDisabledEnabled (IT default)
Port speed and duplexAuto-negotiate or 100 Mbit/s full-duplexHard-coded half-duplex
LLDPEnabledDisabled
IGMP snooping on PROFINET VLANDisabledEnabled
MRP role (ring topology)Exactly one Manager, rest ClientsMultiple Managers or none set
Port mirroring for captureOn a dedicated monitor port onlyOn a live IO port (causes latency)
Common managed switch settings that cause PROFINET communication failures

Step 6: Use the PLC Program to Detect and Log Future Failures

Once you have fixed the immediate fault, add logic to detect and timestamp future PROFINET losses automatically. In S7-1500 you can read device status using the DeviceStates system function or by monitoring the LADDR status bits. In Rockwell Logix you would use the MSG instruction status bits. A simple approach in any PLC is to monitor the communication fault tag that the IO scanner automatically sets when a device goes offline, latch the fault with a timestamp, and log it to a data block or HMI alarm.

The ladder rung below shows a generic approach: detect the rising edge of a PROFINET station fault bit, capture the system clock into a log structure, and increment an occurrence counter. This gives you a history of every dropout without relying on someone to export the diagnostic buffer manually.

PROFINET Station Fault Logging with Timestamp and Counter (S7-1500 style, generic tags). Ladder logic (3 rungs): Rung 0: examine if ET200SP_Slot3_CommFault is on (XIC), then examine if ET200SP_Slot3_FaultRise is on (XIC), then either CTU on PN_FaultLog.OccurrenceCount. Rung 1: examine if ET200SP_Slot3_FaultRise is on (XIC), then latch output PN_FaultLog.FaultActive (OTL). Rung 2: examine if PN_FaultLog.FaultActive is on (XIC), then examine if HMI_FaultAck is on (XIC), then examine if ET200SP_Slot3_CommFault is on (XIC), then unlatch output PN_FaultLog.FaultActive (OTU). Rung 1: Rising edge of the station comm fault bit increments a persistent occurrence counter. Rung 2: Latches a fault-active flag on any new fault rising edge. Rung 3: Unlatch only when the operator acknowledges AND the comm fault has actually cleared, preventing false resets while the link is still down.

PROFINET Station Fault Logging with Timestamp and Counter (S7-1500 style, generic tags)Ladder logic
Toggle inputs
Rung 0
Ladder logic rung: examine if ET200SP_Slot3_CommFault is on (XIC), then examine if ET200SP_Slot3_FaultRise is on (XIC), then either CTU on PN_FaultLog.OccurrenceCount examine if ET200SP_Slot3_CommFault is on (XIC), then examine if ET200SP_Slot3_FaultRise is on (XIC), then either CTU on PN_FaultLog.OccurrenceCount XIC ET200SP_Slot3_CommFault ET200SP_Slot3_CommFault ET200SP_Slot3_CommFault OSR ET200SP_Slot3_FaultRise ET200SP_Slot3_FaultRise ET200SP_Slot3_FaultRise OSR CTU PN_FaultLog.OccurrenceCount 32767 0 CTUCounterPN_FaultLog.Occu..PN_FaultLog.OccurrenceCountPreset3276732767Accum00
Rung 1
Ladder logic rung: examine if ET200SP_Slot3_FaultRise is on (XIC), then latch output PN_FaultLog.FaultActive (OTL) examine if ET200SP_Slot3_FaultRise is on (XIC), then latch output PN_FaultLog.FaultActive (OTL) XIC ET200SP_Slot3_FaultRise ET200SP_Slot3_FaultRise ET200SP_Slot3_FaultRise OTL PN_FaultLog.FaultActive PN_FaultLog.FaultActive PN_FaultLog.FaultActive L
Rung 2
Ladder logic rung: examine if PN_FaultLog.FaultActive is on (XIC), then examine if HMI_FaultAck is on (XIC), then examine if ET200SP_Slot3_CommFault is on (XIC), then unlatch output PN_FaultLog.FaultActive (OTU) examine if PN_FaultLog.FaultActive is on (XIC), then examine if HMI_FaultAck is on (XIC), then examine if ET200SP_Slot3_CommFault is on (XIC), then unlatch output PN_FaultLog.FaultActive (OTU) XIC PN_FaultLog.FaultActive PN_FaultLog.FaultActive PN_FaultLog.FaultActive XIC HMI_FaultAck HMI_FaultAck HMI_FaultAck XIC ET200SP_Slot3_CommFault ET200SP_Slot3_CommFault ET200SP_Slot3_CommFault OTU PN_FaultLog.FaultActive PN_FaultLog.FaultActive PN_FaultLog.FaultActive U
energizedTip: click a contact in the diagram to flip its bit.
Rung 1: Rising edge of the station comm fault bit increments a persistent occurrence counter. Rung 2: Latches a fault-active flag on any new fault rising edge. Rung 3: Unlatch only when the operator acknowledges AND the comm fault has actually cleared, preventing false resets while the link is still down.

The Fastest Field Triage: A 5-Minute Checklist

When you are standing in front of a stopped line and need to get it running while you plan the proper fix, run through this in order:

  1. Check the link LEDs on the affected device and on the switch port it connects to. Both should be solid green. Flashing or off means a physical layer issue.
  2. Wiggle every RJ45 on the suspect segment while watching the link LED. If it flickers, you found it.
  3. Check the device's own diagnostic LEDs. An ET 200SP BusF LED (red) means the device is seeing the network problem too, not just the PLC.
  4. Swap the patch cable between the device and the switch with a known-good factory-made cable. Do not swap with another field-crimped cable.
  5. If the device has dual ports and is in a ring, check that the ring is healthy and no other node is also showing a fault.
For deeper background on the PROFINET frame structure and how it relates to Modbus-style register mapping for IO data, the post on Modbus RTU Protocol Explained is a useful read for understanding how industrial Ethernet protocols handle timing and data integrity differently from serial fieldbus.

PROFINET Communication Loss Diagnosis: Putting It Together

The pattern I see on most sites is: fault happens, someone reboots, it goes away for two weeks, then it is back. The fix is always the same three things: read the diagnostic buffer before touching anything, check the physical layer with a real cable tester, and verify the switch configuration against the PROFINET requirements. Skip any of those and you are guessing.

If you have done all of the above and the fault still recurs, the next step is to log the fault timestamps against your site's energy meter data, VFD run commands, and production schedule. I have seen PROFINET faults that only occurred when a 75 kW compressor started, because the cable run shared a trunking with the motor starter cable and the induced transient was just enough to corrupt a frame. You will not find that without the correlation data.

Related Blogs