Diagnosing S7-300 FB41/FB58 Temperature Runaway on Extruder Heater Zones
On an extrusion line using a Siemens S7-300 CPU 315-2 DP with FB58 (TCONT_CP) controlling a bank of heater zones through solid-state relays, Zone 1 climbs to 268 °C against an 180 °C setpoint even though the FB58 output has commanded the heater off and the cooling fan on the zone is running. Autotune through the connected MP377 12" Key panel does not stabilise the loop, and replacing the thermocouple has not changed the symptom. This article walks through the field-proven diagnostic tree used to find the root cause when a closed PID loop appears to be "stuck on" while the HMI shows the SSR output as OFF.
The dominant fault in this exact symptom pattern is almost never the PID block — it is the field side. The PID controller is reporting that it has commanded the output to zero. The SSR, the heater, the thermocouple, or the thermal path back to adjacent zones is failing to honour that command. The rest of this guide walks through every link in that chain, in the order in which they should be ruled out, with the parameter-level checks and field tests that convert a "PID is broken" suspicion into a verifiable root cause. The FB41 / FB58 block reference is documented in the Siemens Standard PID Control manual available at Siemens Industry Online Support.
1. Symptom Decomposition
The reported symptom has three separable sub-observations. They must each be confirmed independently before the diagnostic tree is entered, because a misread of any one of them pushes the engineer toward the wrong branch.
| Sub-observation | Expected if PID is healthy | Field check |
|---|---|---|
| PV (zone 1) reads 268 °C with SP 180 °C | Large positive error, controller saturates | Cross-check with handheld thermocouple probe at the same physical location |
| Cooling fan on zone 1 is running | Heat removal is active | Visual + amps on fan contactor; verify air flow direction |
| Heater output is OFF but PV still rises | Impossible if heater, SSR, and TC are all correct | Read FB58 output QPULSE / LMN_PER; measure current on heater feeder |
2. Root-Cause Matrix
| # | Root cause | Typical symptom signature | Diagnostic signature |
|---|---|---|---|
| 1 | SSR short-circuit (output triac failed) | PV climbs after setpoint reached; cooler zones fine if same SSR family; heating continues even when FB58 QPULSE = 0 | Measure line-to-load on heater leg with FB58 output forced off; clamp meter shows mains voltage present at heater with controller at 0 % |
| 2 | Thermocouple polarity reversed in TC head | PV reads approximately opposite of reality; overshoots when zone is supposed to be cooling | Disconnect TC wires and measure resistance to ground; short one leg, watch PV response direction |
| 3 | Wrong thermocouple type configured in HW Config | PV offset roughly proportional to temperature; reading drifts with ambient | Open HW Config, AI module, channel 0; compare configured TC type to actual probe |
| 4 | Missing or wrong cold-junction compensation | Reading tracks room temperature when TC shorted at terminal | Short TC input at module terminal; reading should equal local ambient. If reading is 0 °C or fixed offset, CJC is broken |
| 5 | FB58 wired to wrong digital output / output card channel | Same QPULSE drives a different load | Force QPULSE from STEP 7 watch table; observe LED on the SSR input card |
| 6 | PWM pulse period PFREQ too long for thermal mass | PV oscillates with period close to PFREQ | Trend QPULSE duty and PV; look for matching period |
| 7 | Adjacent zone heater running at 100 % with poor insulation | Zone 1 PV is pulled by neighbour | Power off zone 2 and 3, observe zone 1 PV; if it drops with neighbours cold, leakage is dominant |
| 8 | Heater element shorted to ground or partial winding short | High current draw on one phase; PV tracks uncommanded | Clamp meter on each heater leg; compare to nameplate FLA |
3. Diagnostic Flowchart
The flowchart above is the actual decision tree to walk on site. Every box is a measurement or test that takes less than two minutes to perform. The most common failure path is the first YES branch — SSR short — and the article walks through how to confirm and fix it.
4. Step-by-Step Diagnostic Procedure
4.1 Force FB58 to 0 % and observe the heater feeder
Open the FB58 instance DB in STEP 7 (or the equivalent on the MP377), navigate to the SP_INT input and write 0.0. If the operator interface exposes a manual output, set MAN_ON = TRUE and MAN = 0.0 instead — this is cleaner because it forces the output to zero without the controller re-asserting it. While doing this, have a second engineer with a Fluke 376 or similar true-RMS clamp meter on each phase feeding the zone-1 heater bank.
| FB58 signal | DB offset (typical) | Force value | Verify |
|---|---|---|---|
| SP_INT | DBX14.0 REAL | 0.0 | SP_INT = 0.0 in VAT |
| MAN_ON | DBX22.0 BOOL | TRUE | Controller in manual |
| MAN | DBX24.0 REAL | 0.0 | LMN = 0.0 within 1 cycle |
| QPULSE | DBX60.0 BOOL | FALSE | Output LED off on DO card |
Observe the clamp meter reading. With the heater cold, a clamp meter on a resistive element carrying current will show a steady RMS current equal to nameplate FLA. If the meter shows any current greater than 50 mA (typical SSR off-state leakage is 5–15 mA), the SSR is leaking or shorted. A hard short will show full line current.
4.2 Confirm SSR integrity
With the FB58 output still forced to zero and QPULSE = FALSE, de-energise the heater feeder upstream and isolate the SSR. Use a true-RMS multimeter on the load side of the SSR (heater side), with the control side de-energised. A healthy SSR shows open-circuit (> 1 MΩ) between its two main terminals. A shorted SSR reads below 50 Ω or even dead short because the triac is destroyed. Replace the SSR if the resistance is below 1 kΩ with the control input de-energised.
If the SSR is a panel-mount unit with a built-in heatsink and thermal pad, also check that the thermal pad is intact and that the heatsink is not running hotter than 70 °C under load — an overheated SSR derates rapidly and eventually fails short.
4.3 If the SSR checks good - verify the thermocouple chain
If the SSR is intact but PV still climbs, the fault is on the measurement side. Cross-check the PV reading with a calibrated handheld reference probe (Fluke 52-II, WIKA CTH7000, or similar) taped to the same heater band. A deviation of more than 5 °C between the FB58 PV and the reference probe at steady state points at the SM 331 channel, not at the controller.
| Test | Procedure | Healthy response | Faulty response |
|---|---|---|---|
| Shorted TC input | Place a copper short across the TC terminals at the SM 331 | PV reads local ambient (within +/- 2 °C) | PV reads 0 °C, fixed offset, or wildly fluctuating — CJC or wiring fault |
| Open TC input | Disconnect TC, leave input floating | PV reads full-scale high (over-range) | PV holds last value — input burnout detection disabled in HW Config |
| Reversed polarity | Reverse TC leads at module terminal | PV swings negative of expected | PV inverted vs. reference probe |
| Wrong TC type | Compare HW Config TC type to actual probe | Match | Mismatch (e.g. type K probe configured as type J) — PV drifts with temperature |
The SM 331 AI8x12bit module referenced (6ES7331-7KF02-0AB0) supports thermocouple types J, K, T, N, E, R, S, B only when configured for TC mode in HW Config. The 12-bit resolution gives roughly 8 mV per LSB, which over a type-K span of 0–1370 °C is about 7 °C per LSB at low temperatures and 0.5 °C per LSB at high temperatures. For tight PID control on extruder zones (typically +/- 2 °C), this resolution is the absolute minimum and is one of the reasons an FB58 loop on a 7KF module can behave noisily. Where the application permits, replace it with an SM 331 AI8x16bit thermocouple module (6ES7331-7PF11-0AB0) — the 16-bit resolution drops the LSB to roughly 0.1 °C over the type-K span.
For the exact HW Config menu path and parameter ranges on the 6ES7331-7KF02-0AB0, refer to the SM 331 manual in the Siemens Industry Online Support portal, search under "SM 331".
4.4 If thermocouple checks good - look at FB58 wiring
The FB58 (TCONT_CP) instance has three outputs that are easy to confuse on a first commissioning:
- LMN — the analogue manipulated variable, 0.0 to 100.0 %
- LMN_PER — the same variable scaled to the peripheral range of an analogue output card
- QPULSE — the pulse-width modulated Boolean output intended for a digital output driving an SSR
If QPULSE is wired to the SSR but the FB58 instance has been inadvertently reconfigured to output through LMN_PER to a non-existent analogue card, the QPULSE line will never assert. Equally, if LMN_PER is wired to the wrong word and QPULSE never gets updated, the SSR will not fire even though the controller thinks it is commanding heat.
Open the FB58 instance in STEP 7 and confirm that:
- The instance DB is the one referenced by OB35 (or whichever cyclic interrupt the project uses for the controller).
- The output QPULSE is mapped to the correct output byte/bit of the digital output module driving the SSR.
- CYCLE matches the OB35 period (typically 1000 ms for thermal loops).
- PFREQ is set to a sensible value (1–10 s for thermal masses of 1–10 kW).
The full FB58 interface is documented in the Siemens Standard PID Control manual, available under the documentation section of the Siemens Industry Online Support.
4.5 FB58 parameter audit for a zone in runaway
If the loop itself is misbehaving (PV oscillates, or PV holds high while output is well below 100 %), the following parameter checks apply. Most are caught at autotune, but autotune assumes the plant is in a representative state — if zone 1 was at 268 °C during autotune, the autotuner was probably trying to identify cooling rather than heating dynamics and the resulting GAIN / TI / TD are wrong for the normal operating point.
| FB58 input | Data type | Field-recommended value | What goes wrong if wrong |
|---|---|---|---|
| PV_IN / PV_PER | REAL / INT | Wire PV_PER to the AI channel word; set PV_FAC and PV_OFF for scaling | If PV_PER scaling is wrong, FB58 sees a fake error and overdrives the output |
| SP_INT | REAL | In degrees C, same engineering unit as PV | Mismatched units produce huge errors (e.g. SP_INT in C, PV in 0.1 C units) |
| GAIN | REAL | 0.5 to 5.0 for typical band heaters | Too high: oscillation; too low: sluggish, overshoot |
| TI | REAL | 30 s to 300 s for extruder bands | Too short: oscillation; too long: integral windup, slow recovery |
| TD | REAL | 0 (often disabled for thermal) | Derivative amplifies noise on TC inputs |
| DEADB_W | REAL | 0.5 to 2.0 °C | Too tight: chattering; too loose: offset |
| PFREQ | REAL | 1.0 s to 10.0 s for 1–10 kW bands | PFREQ >> thermal time constant: long-period oscillation; PFREQ << SSR min cycle: SSR overstressed |
| CYCLE | REAL | Match OB35 period, typically 1.0 s | Wrong cycle: PID calculation error, can saturate |
| I_ITL_ON | BOOL | FALSE for cold start | Resetting integral at every start hides windup until first disturbance |
| DISV | REAL | 0.0 (no disturbance feedforward) | If tied to line speed with wrong sign, controller fights itself |
For the original FB41 CONT_C block (sometimes referenced in older S7-300 projects), the input list is shorter but the scaling rules are identical. The Standard PID Control documentation covers both blocks side-by-side, including the migration notes for projects that started life on FB41 and have since been reworked onto FB58.
5. Wiring and Field Verification
After the controller-side checks, the field-side wiring is the next place to look. Three patterns account for the majority of field-side faults:
5.1 SSR control polarity
Industrial SSRs have a DC control input that is polarity-sensitive on about 70 % of models. The standard pinout is + on terminal 3 and - on terminal 4 (for a Crydom / Sensata / Carlo Gavazzi panel-mount unit). Reversing the polarity on a polarity-sensitive SSR leaves the input LED forward-biased the wrong way and the SSR will not switch — but in a marginal case where the LED still partially conducts, the SSR may latch on intermittently with no controller command. Verify the SSR data sheet and confirm with a multimeter on the control terminals.
5.2 SSR dv/dt or back-EMF latch-up
On highly inductive heater loads (e.g. mica-insulated band heaters with long cable runs), the line-side dv/dt at SSR turn-off can re-trigger the triac. Symptom is a heater that comes on by itself a fraction of a second after the controller turns it off. The cure is an RC snubber (typically 100 Ω + 0.1 µF across the SSR main terminals) or a zero-cross SSR with built-in snubber. A snubberless / back-to-back SCR SSR should not be used on inductive loads without external snubbing.
5.3 Heater-to-ground leakage
On ceramic-insulated band heaters, ageing can allow the element to contact the body through degraded insulation. With the heater feeder open, meg the heater element to ground at 500 V. A healthy heater shows > 1 MΩ to ground. A failing heater shows tens to hundreds of kΩ to ground, which can produce enough leakage current through a poor ground reference to keep the band warm.
6. Adjacent-Zone Thermal Leakage
Extruder barrels are long steel cylinders with multiple band heaters clamped around them. Even with each zone's band electrically isolated, heat conducts axially along the barrel wall. On a 30:1 L/D extruder running 5 zones, zone 1 at 180 °C and zone 5 at 220 °C can leak 30–50 W from zone 5 into the steel mass around zone 1, requiring the zone 1 controller to command a small negative bias to hold setpoint.
If a zone that was supposed to be running at 50 % duty is being driven by leakage alone, the cooling fan will have negligible effect (forced air over a band heater sitting on a barrel at 230 °C cannot move enough heat), and the PV will sit above setpoint regardless of FB58 output. The diagnostic is to power off the neighbouring zones, wait for the barrel to equilibrate, and observe whether zone 1 PV approaches ambient or at least approaches a lower steady state. If PV falls significantly, the answer is more aggressive insulation between zones (ceramic fibre spacers) or independent heater zoning rather than a control fix.
7. SSR Substitution and Re-Commissioning
Assuming the dominant fault is the SSR short-circuit, the replacement procedure is:
- Lock out / tag out the heater feeder and the SSR control circuit.
- Confirm zero energy on both sides of the SSR with a multimeter.
- Remove control wiring (note polarity on a label).
- Remove load wiring (line side and load side — many SSRs are reversible but verify from the data sheet).
- Unbolt the SSR from the heatsink, clean the mounting surface with isopropyl alcohol, apply fresh thermal compound (Wakefield Type 120 or equivalent, 0.05 mm thick).
- Mount replacement SSR — same rating or higher; confirm voltage and current rating exceed the heater nameplate by at least 25 %.
- Reconnect control wiring with correct polarity; reconnect load wiring.
- Remove lockout; bring controller back to auto; observe QPULSE in the VAT to confirm activity.
- Run zone 1 from cold to setpoint and confirm PV tracks SP within +/- 2 °C.
Thermal compound and mounting torque matter: a poorly mounted SSR runs 20–30 °C hotter at the junction, which is exactly the operating region where SSR lifetime halves for every 10 °C rise.
8. Verification Checklist
| Check | Pass criterion | Method |
|---|---|---|
| SSR off-state leakage | < 50 mA at 230 V / 415 V | Clamp meter on heater leg with FB58 output = 0 % |
| FB58 output with PV at setpoint | QPULSE duty cycles 30–70 % | Trend QPULSE in HMI for 5 minutes |
| PV - SP steady-state error | |PV - SP| < 2 °C | Trend PV and SP on HMI |
| Step response | 10 °C step settles within 60–180 s with < 5 % overshoot | Change SP by 10 °C from HMI, observe trend |
| Cooling performance | PV drops >= 1 °C per minute with controller saturated at 0 % | Force FB58 to 0 %, observe trend |
| TC chain integrity | PV reads ambient when TC shorted at module terminal | Test at terminal block |
| Adjacent-zone leakage | PV drops by > 5 °C when neighbours powered off | Power cycle test |
9. Preventive Maintenance
SSR failures are the dominant field-side fault in PID-controlled extruders. A scheduled replacement based on operating hours is dramatically cheaper than an unscheduled outage:
| Item | Interval | Action |
|---|---|---|
| SSR visual inspection | Quarterly | Discolouration, smell, heatsink dust |
| SSR thermal pad inspection | Annually | Verify thermal compound intact, torque to spec |
| SSR scheduled replacement | 3–5 years or 30,000 hours | Proactive swap before failure |
| Thermocouple replacement | Annual | Type-K probe, spring-loaded head |
| Cold-junction verification | Annual | Short TC input at module, verify PV = ambient |
| PID step-response test | Semi-annually | 10 °C SP step, log PV / QPULSE trend |
| Backup of FB58 instance DBs | On every program change | STEP 7 upload to project archive |
10. FB41 vs FB58 - When Each Block Applies
Both FB41 (CONT_C) and FB58 (TCONT_CP) sit in the Standard PID Control library that ships with STEP 7 V5.x. FB58 supersedes FB41 for thermal loops because it integrates the pulse generator that an SSR needs. FB41 still has its place when the final control element is continuous (a thyristor power controller with 0–10 V or 4–20 mA setpoint) because it outputs LMN as an analogue value rather than as QPULSE.
| Block | Best fit | Output type | PWM generation |
|---|---|---|---|
| FB41 CONT_C | Continuous actuator (thyristor, variable speed drive) | LMN (REAL 0–100 %) and LMN_PER (peripheral) | None — external PWM needed |
| FB58 TCONT_CP | Discrete actuator (SSR, contactor) | LMN, LMN_PER, QPULSE | Built-in pulse generator with PFREQ |
If the project is on FB41 but the load is an SSR, the typical workaround is to write LMN_PER to a PID_PulseGen-equivalent logic and then to a digital output. This works but is more code to maintain and more failure modes to debug. Migrating to FB58 when the controller output side is SSR-based removes the workaround entirely.
11. Frequently Asked Questions
Why does my temperature keep rising even when the heater output is OFF and the cooling fan is running?
Three possibilities exist. First, the SSR is short-circuited and continues to pass current to the heater despite the controller command — the most common failure. Second, the thermocouple or its cold-junction compensation is reading incorrectly, so the controller is actually commanding heat while the HMI shows the output as zero. Third, the heat is arriving from a neighbouring zone through the barrel wall, in which case the zone's own heater may genuinely be off but the temperature still cannot fall because of conduction. Verify with a clamp meter on the heater feeder while the FB58 output is forced to zero.
How do I confirm an SSR is short-circuited without removing it?
Force the FB58 output to zero (set MAN_ON = TRUE, MAN = 0.0 in the instance DB) and measure the heater feeder current with a true-RMS clamp meter. A healthy SSR in the off state passes only the off-state leakage of the SSR (typically 5–15 mA). A shorted SSR passes full line current. For a definitive check, isolate the SSR with upstream lockout and measure resistance between the two main terminals with the control de-energised; a healthy SSR reads open (> 1 MΩ) while a failed unit reads a short or near-short.
Why does the FB58 autotune not stabilise the loop?
Autotune identifies the plant dynamics from a controlled step response. If the zone was already in a runaway state during autotune (PV much higher than SP, controller saturated at 0 %), the autotuner may have characterised the cooling dynamics rather than the heating dynamics. The result is a controller tuned for a regime the loop never operates in. Always bring the zone to a representative operating point (within +/- 20 °C of SP) before invoking autotune, and never autotune while a hardware fault is present — the autotuner will happily tune to a faulty plant and embed the fault in the parameters.
What is the difference between FB41 and FB58 for an extruder temperature loop?
FB41 (CONT_C) is a generic continuous PID controller with an analogue output (LMN / LMN_PER). FB58 (TCONT_CP) is the temperature-controller-specific variant with an integrated PWM pulse generator that produces a Boolean QPULSE output suited to an SSR. For band heaters switched by SSR — which is the typical extruder configuration — FB58 is the correct choice because it handles the discrete actuator directly. FB41 is the right choice when the actuator is a thyristor power controller with an analogue setpoint input.
My AI8x12bit module is giving noisy readings - is that related?
The SM 331 6ES7331-7KF02-0AB0 has a 12-bit plus sign ADC. Over the type-K thermocouple span of 0–1370 °C that is roughly 7 °C per LSB at low temperatures, which is well above the noise floor of a type-K junction but does limit how tightly the loop can hold setpoint. If the application requires tighter than +/- 2 °C control, replacing the module with an SM 331 AI8x16bit thermocouple module (6ES7331-7PF11-0AB0) drops the LSB to around 0.1 °C and resolves the resolution limitation. Always confirm the exact module variant in HW Config against the part number on the front panel sticker before specifying a replacement.
Can a single failed SSR cause adjacent zones to drift?
Yes. A shorted SSR keeps its heater bank running at full power regardless of controller commands. The thermal energy is conducted along the barrel wall and raises the surrounding zone readings. The neighbouring controllers see a higher than expected PV and command less heat, but their actual heater elements are running at the expected duty. From the outside it can look like a control loop problem when it is actually a hardware failure on one upstream SSR. Always check the heater feeder current on every zone before assuming a control problem.