PROFIBUS DP Bus Faults: A Field Troubleshooting Procedure

intermediate · 12 min

How to tell PROFIBUS DP faults apart in front of a stopped machine — powered termination, A/B wiring, baud rate versus segment length, stubs, duplicate addresses and GSD mismatches — then fix each one without making the outage longer.

ℹ️ A PROFIBUS "communication fault" is usually not a communication problem. It is a DC circuit problem. A healthy idle bus sits at roughly one volt between its two data wires, held there by resistors that only work when they are powered. Measure that volt before you open the engineering software — it separates half the causes in thirty seconds.

PROFIBUS DP: the terminator needs powerThe termination lives inside the green plug, and it runs on the station behind it.SEGMENT 1 / 4 STATIONS / 500 kbit/sno slave reaches data exchangeS7-1516ADDR 1masterBUS FAULTIM 155-6ADDR 3slaveET 200SPG120CADDR 4slaveSINAMICSIM 153-2ADDR 5slaveET 200MTERM ONsegment end, poweredTERM OFFmiddle stationTERM OFFmiddle stationTERM ONsegment end, NO POWERMAGNIFIED / INSIDE THE PLUG AT ADDR 5VP pin 60 V390 ohmno pull-upB pin 3220 ohmbus loadA pin 8390 ohmno pull-downDGND pin 5VP = 0 Vpin 6 supply, measured at ADDR 5Terminator switched on,station powered off = segment down.The 390 / 220 / 390 network is fed from thestation itself. No +5 V on VP, no bias.A and B drift together; every node faults.WHAT KILLS THE SEGMENTEnd station switched offIts +5 V fed the bias network.A and B float; every node faults.Two stations, one addressBoth answer the same poll, sono valid response ever returns.WHAT KEEPS IT UPTerminate the two ends onlyand keep those two stationspowered whenever the bus runs.One address per station, 0-125master 1, slaves 3, 4, 5, andrecorded on the cabinet label.

PROFIBUS DP termination is a powered 390 / 220 / 390 network inside the green D-sub plug, fed from VP on pin 6 by the station behind it. An end station with its slide switch ON but its power OFF pulls that bias network to zero and takes the whole segment's idle levels down with it.

Tell the causes apart first

Before touching anything, match what you see to this table. It narrows the job from "the bus is broken" to one of six things.

What you observeAlmost always
Every slave gone at onceTrunk open, both terminators dead, or the master itself
Everything past one cabinet gone, everything before it fineBreak, open connector or loose core at that point
One slave gone, the rest healthyThat device: power, connector, address, or failed hardware
Devices drop and return at random, worse when a drive runsNoise, shield not bonded, over-length segment, or too many stubs
Fault appears only when one cabinet is switched offTermination lives in that cabinet and lost its 5 V
Master sees the slave but never exchanges dataConfiguration mismatch (GSD / module list), not a wire
Two stations flap alternatelyDuplicate station address

Random and intermittent points at the physical layer. Consistent and repeatable points at configuration.

The physical layer in one page

PROFIBUS DP runs on RS-485: one shielded twisted pair. The two cores are called A and B. They are a differential pair — the receiver reads the voltage difference between A and B, not either core against earth. In standard PROFIBUS cable, green is A, red is B. On the 9-pin D-sub connector, A goes to pin 8 (RxD/TxD-N) and B goes to pin 3 (RxD/TxD-P). Pin 5 is data ground (DGND); pin 6 is the +5 V supply (VP). Note that A is the negative signal — that inversion is exactly why people wire it backwards. A swapped pair makes one station deaf while the rest of the bus keeps running.

Termination must be powered. The terminator is not one resistor. It is a divider: 390 Ω from +5 V down to B, 220 Ω across A–B, 390 Ω from A down to DGND. The 220 Ω absorbs reflections. The two 390 Ω resistors bias the pair — they hold a known idle level so receivers can tell "quiet bus" from "noise". The arithmetic is worth knowing, because it is what every measurement below is compared against: 5 V across 390 + 220 + 390 = 5 mA, and 5 mA through the 220 Ω gives 1.1 V between B and A on an idle segment.

That bias needs the +5 V on pin 6, and that 5 V comes from the station the connector is plugged into. Switch the terminator ON at a station that is powered down and you have removed termination and bias from the whole segment, even though the switch reads ON. Where an end station can be isolated independently, use a separately powered terminating element instead — Siemens lists one as 6ES7972-0DA00-0AA0, which takes its own 24 V DC supply and so keeps terminating when the station beside it is dead.

Terminate at the two physical ends of the segment only. Never in the middle.

Baud rate sets maximum segment length (Type A cable): 9.6–93.75 kbit/s → 1200 m; 187.5 kbit/s → 1000 m; 500 kbit/s → 400 m; 1.5 Mbit/s → 200 m; 3–12 Mbit/s → 100 m. Exceed it and the bus works on a cold morning and fails under load.

32 stations per segment. This is an electrical limit — RS-485 driver loading — not a protocol one. Repeaters extend past it, and a repeater occupies a station slot on each side: an end segment holds 31 stations plus one repeater, a middle segment 30 stations plus two. Addresses run 0–125 for devices; 126 is the commissioning/service default that must be changed before cyclic operation, and 127 is broadcast. A maximum of 126 stations can be addressed across the whole network.

Stubs (drop cables off the trunk) are the quiet killer, and the limit is a budget for the whole segment, not an allowance per drop. As a working figure on Type A cable: roughly 100 m of total stub length at 93.75 kbit/s, ~33 m at 187.5 kbit/s, ~20 m at 500 kbit/s, and only about 6.6 m total across the entire segment at 1.5 Mbit/s. Above 1.5 Mbit/s, use none at all. Spread over 32 devices, the 1.5 Mbit/s budget is a couple of hundred millimetres each — which is why "just a short drop to that valve island" is so often the fault.

Step-by-step

  1. Read the LEDs and write down what you see — master, every slave, and both ends. Read-only, safe on a running machine.
  2. Read diagnostics online. In TIA Portal or STEP 7, use Online & Diagnostics and Accessible devices. Note which addresses answer. Safe.
  3. Measure idle DC volts between A and B. ⚠️ Measure with the segment quiet — master stopped or DP output disabled. On a bus carrying traffic the drivers override the bias network and a DC meter reads a lower, wandering average that will fool you into diagnosing a missing terminator. Quiet, expect ~1.1 V. Around 0.6 V means one terminator is biasing and a second, unpowered one is loading the pair. Near 0 V means nothing is biasing at all.

What this test cannot tell you: ~1.1 V does not prove both ends are terminated. One powered terminator with the far end completely open reads 1.1 V too, because a single divider produces that voltage on its own. Bias present is all you have learned. Steps 4 and 5 are what confirm two terminations. ⚠️ If you must unplug a connector to reach the pins, the segment drops and outputs go to their fault state — get permission first.

  1. Confirm the two ends. Walk the trunk. Exactly two terminator switches ON, both at physical ends, both at stations that are powered.
  2. Resistance check. ⚠️ This requires the whole segment de-energised — not just the cabinet you are standing in — and the machine stops. Across A–B: ~110 Ω = two terminators (two 220 Ω in parallel); ~220 Ω = one; open = none; near 0 Ω = a short between cores. A reading clearly below 110 Ω — roughly 70–90 Ω — is the signature of a third terminator switched on mid-segment, or a partial short. That case is invisible to the voltage test in step 3, which is why this step exists.
  3. Halve the segment (below) if the fault is a break or a load problem.
  4. Check addresses and GSD once the physical layer measures clean.
  5. Soak it. Leave a bus analyser running and confirm the retry count stays at zero over a full production cycle. A fixed bus has no retries, not few.

Finding a broken segment by halving it

⚠️ Every step here disturbs a live bus and drops I/O. Do it on a stopped, isolated machine.

Split the trunk near its middle. Terminate the half that still contains the master — properly, at a powered station. Power that half up. Either it runs or it does not, and you have halved the search. Repeat on the failing half. Six splits find one bad connector in sixty-four. The discipline that makes this work: re-terminate correctly at every split, otherwise you are testing an unterminated stub and every result is noise.

A diagnostic repeater can shortcut this. The Siemens PROFIBUS diagnostic repeater checks the lines during bus operation and reports the fault location as a distance between named nodes; its manual states that all distance specifications carry a tolerance of ±1 m, so the fault may equally lie at a neighbouring node inside that tolerance. Two limits worth knowing before you buy one: it must be configured as a DP slave with its own GSD file and its own address, and its line diagnostics cover only the two segments on ports DP2 and DP3 — the master-side segment DP1 gets the repeater function but not the fault-location measurement.

What the LEDs mean

Vendor-specific, and the mapping differs by whether you are looking at a master or a slave. The Siemens convention is the one most technicians meet.

On an S7 CPU acting as DP master (the mapping in the S7-300 manual):

  • BF/BUSF off — configuration is OK and every configured slave is addressable.
  • BF/BUSF flashingstation failure: at least one configured slave cannot be addressed. This is the one that sends you to the cable, the connector, the termination, the slave's power supply and its address switch. It is the most common PROFIBUS symptom there is.
  • BF/BUSF solidbus fault at the interface itself. A short circuit on the pair, differing baud rates in multi-master operation, no other station present on the bus, or a hardware fault on the DP interface. A whole-segment or master-side problem rather than one missing slave.

SF (Group/System Fault) means the station is on the bus and talking, but reporting a diagnostic or parameter-assignment problem from inside itself. Read the diagnostic buffer online.

On an ET 200 head module (a DP slave) the same two letters mean something different: BF there reports that station's own bus state — no baud rate detected, no data exchange with the master, or an address/parameterisation mismatch — not the reachability of some other station. Do not carry the master-side reading across to a slave, and check the specific module's manual before acting on an LED.

The logical layer

Every station needs a unique address. Duplicates do not fail cleanly — the two stations answer over each other, both flap, and the symptom moves. Scan the live list with an analyser such as ProfiTrace, and compare it against the configured list.

The GSD file is the device's datasheet in machine-readable form. It carries a 16-bit ident number. If the ident number the device reports does not equal the one in the GSD the master loaded, the master refuses parameterisation. Same device family, different firmware revision, wrong GSD version — that is enough.

Read the six mandatory diagnostic bytes rather than guessing: Station_status_1, Station_status_2, Station_status_3, Master_Add, then the ident number high byte and low byte. They tell you which layer failed. One thing that makes them far easier to read: some bits are set by the master and some by the slave. Bits 0, 5 and 7 of Station_status_1 are the master's opinion of the slave; bits 1, 2, 3, 4 and 6 are the slave's report about itself. A master-set bit means "I could not get sense out of this address"; a slave-set bit means the device is talking and telling you what is wrong with it.

Never do this

Never switch on a third terminator to "improve" a marginal bus. This is the expensive mistake, and it is made constantly, because "add termination" sounds like it can only help. It cannot — but understand why, because the usual explanation is wrong. Three powered terminators are three identical dividers in parallel, so the idle bias stays at about 1.1 V; the bias does not collapse. What collapses is the margin. The DC load across the pair falls from ~110 Ω to ~73 Ω, over-loading the line drivers and cutting signal amplitude, and the terminator sitting mid-span is an impedance discontinuity that reflects. If that third terminator is unpowered — a bare 220 Ω plus two 390 Ω pull-downs — then the bias does sag as well, to around 0.7 V, and you get both failures at once. Either way you turn a bus that limped into a bus that is dead. The cousin of this: moving a device out of an end position and leaving its terminator switch ON. Whenever you relocate a station, check its switch.

Two more, in the same family. Never leave a terminator switch ON at a station that can be powered down independently — you have built an intermittent fault that appears only when that cabinet is isolated, and it will be blamed on everything else first. And never swap A and B "to see if it helps." It never helps, it leaves a station that half-works at low baud rates, and it puts a wrong wire into the record for the next person.

Finally: never close out a fault because the machine ran again. Retries and repeats can carry a damaged bus for months. Verify with counters, not with relief.

Key points

  • The PROFIBUS terminator is a 390/220/390 Ω divider that needs +5 V from the station it plugs into — switching it ON at a powered-down station removes termination and bias from the entire segment.
  • Idle DC between A and B is the fastest diagnostic you have: roughly 1 V means both terminators are powered, about 0.6 V means only one is biasing, near 0 V means neither.
  • Green core is A and lands on pin 8 (RxD/TxD-N); red core is B and lands on pin 3 (RxD/TxD-P). A being the negative signal is why the pair gets swapped.
  • Maximum segment length falls with baud rate: 1200 m at 9.6–93.75 kbit/s down to 100 m at 3–12 Mbit/s on Type A cable.
  • 32 stations per segment is an electrical RS-485 loading limit; a repeater takes a station slot on each side it touches.
  • Solid BF on Siemens hardware points at the cable; flashing BF and SF point at configuration — address, GSD or module list.
  • Halving the trunk finds a break in log₂ steps, but only if you re-terminate correctly at every split — otherwise you are testing an unterminated stub.

Codes and symptoms

Station_status_1, bit 0 — Station_Non_Existent (set by master)
The master got no answer from that address. Physical layer, wrong address, or a dead device — not a configuration problem. Go to the cable and the power.
Station_status_1, bit 1 — Station_Not_Ready (set by slave)
The slave answers but is not ready for cyclic data exchange. Usually still parameterising, or missing a supply, enable signal, or a required module.
Station_status_1, bit 2 — Cfg_Fault (set by slave)
Configuration mismatch. The module list configured in the master does not match the modules physically fitted in the slave. Compare slot by slot.
Station_status_1, bit 3 — Ext_Diag (set by slave)
Device-specific diagnostic bytes follow beyond the six standard ones. Read them — this is where the device names the real fault. Total diagnostic length exceeds 6 bytes.
Station_status_1, bit 4 — Not_Supported (set by slave)
The slave does not support a function the master requested. Typically a master configured for a feature set the device does not have.
Station_status_1, bit 5 — Invalid_Slave_Response (set by master)
The master received a response it judged implausible or non-conforming, and holds this bit set once it has. It is the master's verdict on the device, not a live noise counter — read it first as a slave firmware or protocol-conformance problem. Corrupted frames from a noisy segment can also trigger it, but noise normally shows up as retries in an analyser before it shows up here.
Station_status_1, bit 6 — Prm_Fault (set by slave)
The parameter telegram was rejected. Wrong GSD file, wrong ident number, or a user-parameter value the device will not accept.
Station_status_1, bit 7 — Master_Lock (set by master)
The slave is locked by a different class-1 master. Two masters are contesting ownership of the device.
Diagnostic byte 4 (Master_Add) — Master address = 255
No master has parameterised this slave. The device is electrically present on the bus but unowned — it will not exchange process data.
Diagnostic bytes 5-6 (Ident_Number) — Ident number mismatch
The 16-bit device type ID reported by the device, sent high byte first, must equal the one in the GSD the master loaded. A firmware revision change is enough to break this.
BF LED flashing on an S7 CPU acting as DP master (Siemens) — Station failure — at least one configured slave unreachable
Vendor-specific. Flashing BF/BUSF on a Siemens DP master means one or more configured slaves cannot be addressed. This is the wiring case: investigate cable, connector, termination, station power and the slave's address switch.
BF LED solid on an S7 CPU acting as DP master (Siemens) — Bus fault at the DP interface
Vendor-specific. Solid BF/BUSF on a Siemens DP master means a bus-level or hardware fault: short circuit on the pair, differing baud rates in multi-master operation, no other station present on the bus, or a faulty DP interface. A whole-segment or master-side problem rather than one missing slave.
BF LED on an ET 200 head module (Siemens DP slave) — That station's own bus state
Vendor-specific, and NOT the same mapping as a master CPU. On a slave head module BF reports the module's own condition — no baud rate detected, no data exchange with the master, or an address / parameterisation mismatch. It says nothing about whether some other station is reachable. Check the specific module's manual before acting.
SF LED (Siemens) — Group / system fault
Vendor-specific. The station is communicating but reporting an internal diagnostic or parameter-assignment problem. Read the diagnostic buffer online.