Fail Safe vs Fault Tolerant PLC F, H, and FH Architecture

David Krause17 min read
Safety SystemsSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Fail Safe vs Fault Tolerant PLC Systems: F, H, and FH Architecture Compared

Programmable Logic Controllers (PLCs) deployed in process and safety-critical applications must be classified by the way they behave when hardware faults occur. The two dominant design philosophies, Fail Safe (F) and Fault Tolerant (H), are not interchangeable; they target different safety lifecycle phases, different international standards, and different cost-of-ownership profiles. Siemens SIMATIC controllers formalize this distinction with three product families, F-CPU, H-CPU, and the combined FH-CPU, that map directly to the safety and availability requirements of IEC 61508, IEC 61511, IEC 62061, and ISO 13849-1. This reference explains the engineering differences, the underlying standards, the architecture choices, and the field-proven selection rules that determine which topology belongs in a given machine or plant.

Terminology note. "Fail Safe" is the IEC 61508 term for a system that transitions to a defined safe state on detected fault. "Fault Tolerant" is the IEC 61508 term for a system that maintains the specified function despite the presence of one or more faults. The two are not mutually exclusive; a high-availability safety controller is usually fault tolerant in its standard program execution and fail safe in its safety program execution.

1. Definitions and Core Engineering Goals

Attribute Fail Safe (F) System Fault Tolerant (H/FT) System
Primary goal Drive the process to a defined safe state when a fault is detected. Maintain the specified process function despite the presence of faults.
Acceptable loss of function on fault Yes, the controlled process is stopped or held in safe state. No, the process continues with no or limited degradation.
Typical use case Emergency stop, fire & gas, turbine overspeed, robot cell safeguarding. Continuous process control, turbine control, substation automation, burner management where trips are costly.
Redundancy topology Single-channel with internal diagnostics, or 1oo2 / 2oo2 dual-channel. 1oo2, 2oo2, or 2oo3 with active redundancy (hot/warm standby).
Reaction to detected fault Passivation of safety outputs, CPU transition to STOP, alarm annunciation. Fault masking, automatic switchover to backup, degraded but running operation.
Measured by Probability of dangerous failure on demand (PFDavg), SIL 1-3 per IEC 61508. Mean Time Between Failures (MTBF), availability (A%), and probability of failure per hour (PFH).
Standards basis IEC 61508, IEC 61511, IEC 62061, ISO 13849-1. IEC 61508 Part 2 (Fault tolerance), IEC 62439 (PRP/HSR), vendor-specific H design guides.

Per the Siemens SiePortal reference, the formal distinction in the SIMATIC line is that an F-CPU handles the standard and the fail-safe program in a single CPU; on error detection the system transitions to a defined safe state and the F-CPU enters STOP. A dedicated H-CPU is built on a 1oo2 redundant core, fault tolerant in execution but not in itself a safety controller. The FH-CPU combines both: a 1oo2 redundant core executing both standard and fail-safe programs, with switchover on fault and passivation of the safety program on detected dangerous fault. See the official thread: SiePortal: difference b/w failsafe(F), fault tolerant(H) and FH module.

2. Standards Mapping: SIL, PL, and Availability

Selecting a controller is a two-axis decision. Axis one is the safety integrity level demanded by the application; axis two is the availability demanded by the process. The two axes are often confused because a SIL 3 controller can be implemented in either a fail-safe or a fault-tolerant hardware topology.

Standard Scope Levels Quantitative target
IEC 61508 Functional safety of E/E/PE systems (generic). SIL 1-4 PFDavg 10-2 to 10-4 for low-demand; PFH 10-6 to 10-8 per hour for high-demand.
IEC 61511 Process industry sector standard. SIL 1-3 (sector cap) Same PFDavg/PFH tables as IEC 61508.
IEC 62061 Machine safety sector standard. SIL CL 1-3 PFH limits identical to IEC 61508, with sector exclusions.
ISO 13849-1 Machine safety - safety-related parts of control systems. PL a-e (Performance Level) PFHd per EN ISO 13849-1 Table 4.
IEC 62439-3 Industrial communication redundancy (PRP, HSR). Zero-loss topology classes Cut-over time < 0 ms (seamless).

Cross-mapping the most common targets:

  • SIL 1 (IEC 61508) ≈ PL c (ISO 13849-1)
  • SIL 2 (IEC 61508) ≈ PL d (ISO 13849-1)
  • SIL 3 (IEC 61508) ≈ PL e (ISO 13849-1)

A safety function on a Fail Safe system is normally classified by its PFDavg or PFHd against a target SIL/PL. The same safety function executed on a Fault Tolerant system is also classified by SIL/PL, but the H system additionally contributes to availability metrics such as A% (target 99.99% - 99.9999% for redundant turbine or substation control). Be cautious: a SIL 3 rating does not imply a high A%. A non-redundant F-CPU running SIL 3 will still enter STOP on detected fault, dropping availability dramatically.

3. Hardware Architecture: F, H, FH Channel Topologies

The IEC 61508 vocabulary for hardware fault tolerance uses the M-out-of-N notation. The most common channel architectures are summarized below.

Topology Notation Fault tolerance Common application
Single channel 1oo1 0 (no fault tolerance) Low-demand SIL 1 with proven components.
One out of two 1oo2 1 channel High-availability safety (Siemens F-CPU, ABB AC500-S, HIMA HIMax).
Two out of two 2oo2 1 channel, but spurious trip possible High-integrity, low spurious trip, e.g. reactor protection (HIMA, TRICON).
Two out of three 2oo3 1 channel Highest-integrity turbine and burner management (TRICON, HIMA HIMatrix).
Dual 1oo2 1oo2D 1 channel, fault detection on disagreement Siemens SIMATIC F-CPU internal architecture.

3.1 SIMATIC F-CPU internal structure

The SIMATIC S7-1500F / ET 200SP F-CPU is a single-channel controller with a second, diverse processing channel inside the same package, wired to the same I/O. The two channels execute identical code with diverse instruction scheduling, and the result is compared per safety cycle. On disagreement the F-CPU passivates the safety I/O and transitions the safety program to a safe state. This is the IEC 61508 1oo2D architecture. Examples of certified F-CPUs in the S7-1500 line include:

  • CPU 1515F-2 PN (6ES7515-2AM02-0AB0)
  • CPU 1516F-3 PN/DP (6ES7516-3AN02-0AB0)
  • CPU 1517F-3 PN/DP (6ES7517-3AP00-0AB0)
  • CPU 1518F-4 PN/DP (6ES7518-4AP00-0AB0)
  • ET 200SP F-CPU 1510SP F-1 PN (6ES7510-1SK02-0AB0), 1512SP F-1 PN (6ES7512-1SK02-0AB0), 1514SP F-2 PN (6ES7514-2SN03-0AB0), 1516SP F-2 PN (6ES7516-2SN00-0AB0)
Confirm any specific catalog number against the current Siemens Mall or Industry Online Support product tree before procurement, as the article date may precede a part number revision.

3.2 SIMATIC H-CPU internal structure

The H-CPU is two complete, independently powered controllers of identical design, synchronizing over a dedicated redundancy link. Each CPU runs the standard program, and either can take over the role of master within the synchronization cycle budget. The H-CPU is not in itself a safety controller, but the platform is the basis for FH. Examples in the S7-1500 line:

  • CPU 1517H-3 PN (6ES7517-3HQ00-0AB0)
  • CPU 1518HF-4 PN (6ES7518-4JP00-0AB0) - H with integrated fail-safe capability

The redundancy link is typically a dedicated fiber pair carrying the SIMATIC redundancy protocol, and the synchronization cycle is configurable between 1 ms and several hundred ms depending on the program size. Faster sync = faster switchover but less CPU time per cycle.

3.3 SIMATIC FH-CPU internal structure

The FH-CPU is the union of the two prior architectures: a 1oo2 redundant core, with each side internally a 1oo2D for safety. It is the topology used where the safety function must be available (not just safe) across the plant lifetime, and the operator cannot tolerate a spurious trip caused by CPU replacement. Example catalog members:

  • CPU 1516F/F-2 PN (6ES7516-2GN00-0AB0)
  • CPU 1517F/F-3 PN/DP (6ES7517-3GP00-0AB0)

4. Functional State Machines: STOP, RUN, RUN-Redundant, Passivated

The most useful mental model is the controller state machine, because the difference between F and H systems is exactly the set of states the controller can enter on a fault. The following inline SVG summarizes the legal transitions for an FH-CPU; the F and H variants are subsets of this diagram.

STARTUP power-on / OB100 RUN-Solo (F) 1oo2D, single CPU RUN-Redundant (H) 1oo2, both CPUs active PASSIVATED F-DI/F-DO substituted RUN-Redundant + F FH combined state STOP (Safe) outputs de-energized init OK partner found safety fault F + H combined dangerous fault dangerous fault

F-CPUs only traverse the STARTUP → RUN-Solo → PASSIVATED → STOP path; they have no RUN-Redundant state. H-CPUs traverse STARTUP → RUN-Redundant → RUN-Solo (after partner failure) but have no PASSIVATED state because the safety program does not run on a plain H. The FH-CPU visits every node.

5. Redundancy Topologies for Field I/O

Redundancy is not only a CPU-level concern. A common engineering error is to specify an H-CPU while connecting single-channel field wiring, which provides no fault tolerance for the sensor or actuator path. The IEC 61508 SIL budget consumes the sensor and final element; they must be redundantly wired to claim fault tolerance in the safety function.

I/O topology Sensor wiring Actuator wiring Achievable SIL
1oo1 single Single sensor Single actuator SIL 1 (low demand) typically
1oo2D dual sensor Two sensors, diagnostic on disagreement Single actuator with diagnostics SIL 2-3
2oo2 dual Two independent sensors Two actuators in series SIL 3, low spurious
2oo3 voted Three independent sensors Three actuators with voter SIL 3, high availability

For distributed I/O, Siemens ET 200SP F-modules and ABB S800 I/O support PROFIsafe over PROFINET, where the safety protocol is embedded in the PROFINET frame. For a fault-tolerant PROFINET ring, the Media Redundancy Protocol (MRP) provides < 200 ms recovery; for zero-loss, use Parallel Redundancy Protocol (PRP) or High-availability Seamless Redundancy (HSR) per IEC 62439-3. A HIMA HIMatrix controller typically uses HSR natively; SIMATIC H systems support PRP/H via the SCALANCE XC-200 or XC-300 managed switches.

6. Fault Detection and Diagnostic Coverage

A fail-safe system relies on diagnostic coverage (DC) to convert latent faults into detected faults, so the system can transition to a safe state before the second fault occurs. IEC 61508 Part 2 Annex A and IEC 61508 Part 2 Table 2 list the acceptable diagnostic techniques, each with an associated DC percentage.

Technique Typical DC Used for
Loopback test (output read back) ~90% Digital outputs to actuators
Cross-channel comparison (1oo2D) ~99% Dual-channel F-CPU core
Code signature / CRC walk ~90% Program memory integrity
Watchdog with time-slot monitoring ~60-90% CPU cycle correctness
Periodic self-test of ADC ~90% Analog inputs
Disagreement detection on dual sensors ~99% Safety digital inputs

The F-CPU implements most of the above internally. The H-CPU additionally detects partner failure, sync loss, and link errors within the redundancy monitor. Detailed diagnostic methods and DC figures are documented in the manufacturer safety manuals; for Siemens, the S7-1500F/ET 200SP F System Manual (entry ID 109751260) and the S7-1500H System Manual are the controlling documents.

7. Programming Differences: Safety Program Structure

In TIA Portal, a safety program on an F-CPU is written in a separate safety block (FB with the "F" attribute, e.g. FB 1 [F]) and is compiled with the F-Compiler. The F-Compiler adds diverse code paths, signature checks, and runtime tests; the standard program cannot call into the F-program and vice versa. Communication between the two is via standard tag accessors that are limited to a defined data set.

A minimal fail-safe block in Structured Text (LAD/FBD equivalent) for an emergency-stop function on an F-DI module:

// FB_SafetyEstop [F] - S7-1500F
// Inputs : i_estopN (BOOL, F-DI), i_feedback (BOOL, F-DI), i_run (BOOL, standard)
// Outputs: q_allow (BOOL, F-DO), q_ackRequired (BOOL, standard)

IF i_estopN OR NOT i_run THEN
    q_allow := FALSE;             // drive to safe state
    q_ackRequired := TRUE;
ELSE
    q_allow := TRUE;
    q_ackRequired := FALSE;
END_IF;

For an H or FH system, the same block is loaded into both sides of the redundant pair. The runtime additionally contains the redundancy synchronizer (sync OB, default OB 100 for warm restart). The standard program must be deterministic: any non-deterministic call (e.g. long file I/O) can cause the H partner to detect a sync violation and force a switchover, which by itself is not a dangerous fault but can disrupt the process.

8. Communication: PROFIsafe, CIP Safety, and Modbus/TCP

Protocol Safety mechanism Typical use
PROFIsafe over PROFINET CRC-32, sequence number, watchdog, addressed slot Siemens F/H, ABB AC500-S, Phoenix Contact RFC, Pilz PNOZmulti 2.
CIP Safety over EtherNet/IP Time stamp, CRC, originator/TID pairing Rockwell GuardLogix, Schneider Modicon M580 Safety ePAC.
Safety over EtherCAT (FSoE) CRC, 32-bit sequence counter, watchdog Beckhoff EL6900, Bosch Rexroth ctrlX SAFETY.
Modbus/TCP - no native safety N/A Never use for SIL ≥ 1. Add a separate safety bus or certified gateway.

The protocol is not interchangeable with a redundant physical bus. PROFIsafe can be run over a single PROFINET line for SIL 3, or over a redundant ring (MRP) for combined safety and availability. Do not assume that running PROFIsafe on a non-redundant ring gives you an FH system; the redundancy is in the network, not in the CPU.

9. Selection Rules: When to Use F, H, and FH

Use this decision table at the Functional Safety requirements specification stage. Re-validate the choice at the HAZOP/LOPA study and again at the procurement gate.

Requirement Recommended topology Reason
SIL 1-2, single process line, trip is acceptable F-CPU with single-channel I/O Lowest cost, IEC 61508 compliant, no availability requirement beyond standard process trips.
SIL 3, single process line, trip is acceptable but expensive F-CPU with 1oo2D field wiring SIL 3 with diagnostic coverage on dual sensors; avoids the cost of an H pair.
SIL 2-3, continuous process, no spurious trip allowed H-CPU (no safety) or FH-CPU (with safety) H provides switchover; FH adds the safety function on top of redundancy.
SIL 3, high availability (≥ 99.99%), 2oo3 voted sensors Triple-modular redundant controller (TMR) e.g. HIMA HIMax, TRICON, or ABB AC500-S with 2oo3 voting TMR is the only topology that tolerates a single dangerous fault while remaining available.
SIL 3 + SIL 4 dual safety function (e.g. reactor + containment) Separate F-CPU and TMR controller with hardwired separation Defense-in-depth; failure of one platform cannot defeat the other.

9.1 Availability calculations

For a redundant pair, the steady-state availability assuming exponential failure distribution and an active repair is:

A = MTBF / (MTBF + MTTR) for a single channel.

For a 1oo2 redundant pair with perfect switchover:

A_red = 1 - (λ²·t²)/2 ≈ 1 - (MTTR/MTBF)²/2

A typical H system with MTBF ≈ 50 years (≈ 438 000 h) and MTTR ≈ 8 h yields A ≈ 99.999% (the "five-nines" mark), versus ≈ 99.4% for a single CPU. Always state the assumed MTTR in the calculation; some vendors publish MTTR figures, others assume 24 h, and the resulting A% can change by an order of magnitude.

10. Lifecycle Considerations: Proof Tests and Recertification

IEC 61508 and IEC 61511 both require a proof-test interval (Tproof) at which the safety function is exercised end-to-end. A common misunderstanding is that a redundant controller "never needs testing". In fact, the redundant controller still has the same dangerous-failure rate, just with the redundancy masking the first fault; the proof test must detect the first fault before the second occurs, otherwise a dangerous failure becomes possible. The simplified PFDavg formula for a 1oo2 system with proof test is:

PFD_avg(1oo2) = 2·(λ_D·T_proof)² / 3

Compare to a 1oo1 system:

PFD_avg(1oo1) = λ_D·T_proof / 2

A 1oo2 system with the same λD and Tproof is roughly two orders of magnitude better in PFDavg for the same dangerous-failure rate, which is why redundancy is so heavily favored in high-demand process paths. Detailed formulas and example spreadsheets are in IEC 61508 Part 6 Annex B; verify with the latest edition of the standard before claiming a SIL figure in a regulatory submission.

11. Common Failure Modes and Field-Proven Pitfalls

Pitfall Symptom Prevention
Single-channel I/O on an H-CPU Redundancy masks CPU fault, but sensor fault trips the process. Wire safety-critical sensors redundantly; budget sensors into the SIL calculation.
Non-deterministic program on H-CPU Frequent sync violations, switchover churn. Avoid file I/O, dynamic strings, and DBs that change size at runtime inside the standard program.
Mixing F and standard DI on the same module Standard DI faults are not detected by the F-runtime. Use dedicated F-DI modules (e.g. 6ES7136-6BA00-0CA0) and dedicated standard DI modules.
Forgetting passivation acknowledgment After a tripped F-DI, the system stays in passivated state until manual ack. Implement a maintenance override with key switch and document the procedure.
Reusing a standard FB as a safety FB Compiler accepts it, but F-Compiler diagnostics are absent; the safety signature is invalid. Only assign blocks the "F" attribute via TIA Portal; never hand-edit safety FBs.
Hot-swap of an H-CPU during a process critical step Brief sync interruption; on certain H configurations the partner enters STOP. Configure SW-Sync mode, replace the CPU only in maintenance state with the partner in RUN-Solo.

12. Cross-Platform Reference: Siemens, Allen-Bradley, Schneider, ABB, HIMA

Vendor Fail Safe controller Fault Tolerant / Redundant Combined F+H Safety bus
Siemens S7-1500F, ET 200SP F-CPU S7-1500H S7-1500F/F (FH) PROFIsafe over PROFINET
Allen-Bradley / Rockwell GuardLogix 5380, 5580 ControlLogix Redundancy (1756-EN4TR) GuardLogix with redundant chassis CIP Safety over EtherNet/IP
Schneider Electric Modicon M580 Safety ePAC (BMEP58CPROS, BMEP58CPROH) Modicon M580 Hot-Standby M580 Safety + Hot-Standby (with limitations) CIP Safety on Modicon
ABB AC500-S Safety PLC AC500 with PM595 redundant AC500-S in redundant configuration PROFIsafe over PROFINET
HIMA HIMatrix F, HIQuad HIMax (TMR), HIQuad (1oo2) HIMax F + H integrated PROFIsafe, FSoE, SafeEthernet
Beckhoff EL6900 + EL1904 / EL2904 CX-series redundant (vendor-specific) Limited; consult Beckhoff TwinSAFE manual FSoE over EtherCAT
Vendor product families evolve. Confirm the latest catalog status, firmware requirements, and certified TÜV/IEC 61508 reports against the manufacturer's current product tree before binding a purchase decision.

13. Commissioning and Verification Checklist

  1. Confirm the safety function's target SIL/PL from the Safety Requirement Specification (SRS).
  2. Compute the achieved PFDavg / PFHd for the sensor, logic, and actuator paths with vendor SISTEMA or exida tools.
  3. Verify the controller firmware revision matches the manufacturer's TÜV certificate.
  4. Wire the safety I/O per the manufacturer's derating guidelines (e.g. F-DI input debounce, F-DO test pulse width).
  5. Force a passivation by disconnecting each F-DI and verify the expected passivation log entry is generated.
  6. On an H or FH system, force a partner failure (pull the redundancy link) and confirm switchover within the configured sync window.
  7. Document the proof-test interval in the Safety Validation Plan and the operations/maintenance procedures.
  8. Sign the Safety Validation Report and update the SRS to reflect any architectural changes.

14. Frequently Asked Questions

Is Fail Safe the same as SIL-rated?

No. SIL is a target integrity level from IEC 61508; Fail Safe is a behavior contract (the system transitions to a safe state on detected fault). A Fail Safe system can be designed for SIL 1, 2, or 3, and a SIL 3 system can be implemented in either a fail-safe or a fault-tolerant topology. Always read the safety certificate for the actual SIL/PL claim.

Does an H-CPU give me SIL 3?

Not by itself. An H-CPU is a redundant standard controller; it does not execute a safety program. To reach SIL 3 on a Siemens platform, you need the FH-CPU (S7-1500F/F) or pair an H-CPU with a separate F-CPU and a hardwired interlock. Always confirm SIL 3 from the manufacturer's TÜV certificate, not from the product family name.

When do I need 2oo3 instead of 1oo2 redundant?

When the application requires SIL 3 with availability that a 1oo2 system cannot prove. A 2oo3 voted system (e.g. HIMA HIMax, TRICON) tolerates a single dangerous fault while continuing to operate, which is required for high-energy processes (turbine overspeed protection, nuclear reactor trips, burner management with no permissible spurious trip).

Can PROFIsafe and standard PROFINET share the same cable?

Yes. PROFIsafe is a layer-7 protocol on top of PROFINET, so safety and standard frames coexist on the same physical cable. However, the switch, cable, and connector must satisfy the PROFINET cabling guidelines; for combined safety and availability, use a redundant ring with MRP or PRP/HSR, and ensure the switch has the appropriate PROFINET conformance class.

How often must a Fail Safe or Fault Tolerant system be proof-tested?

Per IEC 61508/61511, the proof-test interval Tproof is the maximum allowed time between end-to-end tests of the safety function. It is calculated from the target PFDavg and the assumed dangerous-failure rate of each channel. Common values range from 1 year (SIL 3, hazardous-area) to 10 years (SIL 1, low-demand). The actual interval must be entered in the Safety Validation Plan and tracked in the maintenance management system.

Can a standard FB be reused in the safety program?

No. Only blocks with the F attribute in TIA Portal are compiled by the F-Compiler and signed. Using a standard FB inside the safety program invalidates the safety signature and the TÜV certificate. Maintain a strict boundary: standard code calls F-code via defined accessors, never the other way around.

What is the practical difference between Passivated and Safe-Stop on a Siemens F-CPU?

Passivated means the F-module has detected an internal fault and is substituted by a 0 (safe substitute value) for the affected channel; the CPU itself remains in RUN. Safe-Stop means the F-CPU has transitioned to STOP, all F-outputs are de-energized, and the standard program is no longer executing. A passivated module must be re-integrated (acknowledged) before the channel becomes live again; this is normally a maintenance action.

Back to blog