S7-1500F Failsafe CPU Communication via PROFINET I-Device

David Krause15 min read
SiemensTIA PortalTutorial / How-to
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

Overview: Failsafe CPU-to-CPU Communication Across S7-1500F Projects

When two or more SIMATIC S7-1500F controllers must exchange safety-related data — for example, to cross-shut down two independent machines that share a common hazard zone — the failsafe payload must travel over a black-channel link using PROFIsafe. PROFIsafe runs as a safety layer on top of PROFINET (or PROFIBUS), and it is the only Siemens-approved mechanism for transporting SIL 3 / PL e process data between F-CPUs that are not executing in the same F-Runtime group.

For TIA Portal V15 (and continuing through V16, V17, V18, V19, and V20), the supported method for exchanging failsafe data between two S7-1500F CPUs that live in separate TIA Portal projects is Safety-Related I-Device Communication: one F-CPU is configured as a PROFINET I-Device, exposes PROFIsafe transfer areas as proxy slots, and the second F-CPU consumes those slots as if they were distributed F-I/O. TIA Portal V20 introduced a simplified alternative called Flexible F-Link, which is covered in the alternate-architecture section of this article.

Why not hard-wire spare failsafe I/O between the two machines?
Wiring a discrete F-input on machine B to a contactor on machine A is mechanically simple, but it has no diagnostic visibility, no PROFIsafe black-channel integrity guarantee, and does not scale beyond a one-off. For any repeatable or maintained solution, the I-Device approach with PROFIsafe is the engineering-correct path.

Architecture Options at a Glance

Method Min. TIA Portal Project Layout Safety Layer Typical Use Case
Hard-wired F-I/O crossover Any Two independent projects None (wired) One-off cross-shutdown, no diagnostics
PROFINET I-Device + PROFIsafe V15 Two projects; I-Device GSD imported into IO controller project PROFIsafe V2.4 / V2.6.1 Standard CPU-to-CPU safety data exchange, scalable to many nodes
Flexible F-Link V20 Two projects, no GSD exchange PROFIsafe V2.6.1 Simplified commissioning of F-CPU to F-CPU links
S7 fail-safe communication over S7 connection V15 Same project or partner project PROFIsafe over S7 / PN/PN coupler Legacy migration, small payloads
Redundant S7-1500HF (S7-1500R/H) V17 + HSP0163 Single redundant system PROFIsafe V2.6.1 High-availability failsafe with system redundancy

Prerequisites

Hardware

  • Two S7-1500F CPUs from the supported catalogue. Typical choices: 6ES7515-2AM02-0AB0 (CPU 1515F-2 PN), 6ES7516-3AN02-0AB0 (CPU 1516-3 PN/DP F), 6ES7517-3AP00-0AB0 (CPU 1517-3 PN/DP F), or 6ES7518-4AP00-0AB0 (CPU 1518-4 PN/DP F). ET 200SP F-CPUs (6ES7510-1SJ01-0AB0 CPU 1510SP F, 6ES7510-1SK01-0AB0 CPU 1512SP F) can also be used as the I-Device side when the second machine is a distributed station.
  • Each F-CPU must have an available PROFINET interface — the integrated X1 or X2 port is preferred. A CP 1543-1 can be used on a CPU 1510SP/1512SP that lacks an integrated PN port, but increases cycle jitter.
  • Both F-CPUs must run firmware that supports the PROFIsafe profile selected in TIA Portal. TIA Portal V15 defaults to PROFIsafe V2.4; V17 and later default to PROFIsafe V2.6.1. Mismatched profiles are accepted only if the lower V-number is configured on the higher-V CPU; the engineering tool will warn on download.
  • One PROFINET cable, or an existing PROFINET ring, connecting the two F-CPUs. A managed switch (e.g., SCALANCE XC206-2) is permitted but not required for a point-to-point F-link.
  • F-capability must be enabled in the device configuration of both CPUs (CPU Properties → Safety → "Use F-capability of the CPU"). The F-activation checkbox exposes the F-Runtime group objects in the project tree.

Software and Licensing

  • TIA Portal V15 (or later) with the STEP 7 Safety Advanced option package (article number 6ES7833-1FC02-0YA5 for V15.x) installed on the engineering station. Without Safety Advanced, the F-Blocks and PROFIsafe transfer areas are read-only.
  • Matching Hardware Support Package (HSP) for both CPU firmware versions, installed via TIA Portal → Options → Support Packages.
  • An F-collective signature / F-password set on each F-CPU's safety program. Each F-CPU owns an independent safety password — these are not shared across the two projects. The password is hashed with SHA-256 and stored locally on the CPU's System Data Card.
  • For the I-Device export, a GSD file is generated by the I-Device project (Export → "Export I-Device GSD file"). The exported GSD must be imported into the IO controller project before the F-CPU can be assigned to the IO controller.
Cross-project safety ownership. The I-Device approach deliberately splits safety responsibility: the I-Device project's safety program is signed and locked by its own engineer; the IO controller project's safety program is signed and locked by its own engineer. PROFIsafe enforces the runtime safety of the link; the engineering split enforces the organizational safety of the project. Do not attempt to consolidate both safety programs into a single project — it violates the SIL 3 organizational separation required by IEC 61511.

Method 1 — Safety-Related I-Device Communication (TIA Portal V15+)

The official Siemens procedure is documented in the TIA Portal Safety configuration manual: Configuring safety-related communication between IO controller and i-device. The procedure below condenses the manual and adds the V15-specific menu paths.

Step 1 — Configure the I-Device side (the F-CPU that supplies the safety data)

  1. Open the I-Device project's TIA Portal V15 project.
  2. Select the F-CPU in the project tree → "Devices & Networks" → select the PROFINET interface that will face the partner F-CPU.
  3. In the Properties → "PROFINET interface [X1]" → "Operating mode" tab, set:
    • Operating mode: I-Device
    • Assigned IO controller: not yet assigned (will be assigned after GSD import on the partner side)
  4. In the same interface, set the IP address and PROFINET device name. The device name is what the IO controller will address — choose a stable, descriptive name such as pn-plc-b-1500f. PROFINET device names are case-sensitive and must match exactly on both sides.
  5. Switch to the "Transfer areas" tab in the same Properties inspector. Click "Add new transfer area" and create a transfer area for Safety-related data:
    • Direction: I-Device → IO controller (inputs on the partner side) or IO controller → I-Device (outputs on the partner side) as required
    • Length: typically 1–12 bytes of F-input and 1–12 bytes of F-output payload
    • Type: PROFIsafe V2 (V2.4 by default in V15)
    • Slot: assign a free slot number, conventionally slot 1 for the first safety transfer area
    • Compile the I-Device project (Hardware → Compile).
    • Export the I-Device as a GSD file: "Project → Export → PROFINET I-Device GSD file". Choose GSDML schema V2.4 for V15 projects. Send the resulting .xml file to the engineer of the partner project via a controlled exchange folder; do not email it.

    Step 2 — Import the I-Device into the IO controller project

    1. Open the IO controller project's TIA Portal V15 project.
    2. "Options → Manage general station description files (GSD)" → import the GSDML file exported in Step 1.
    3. Drag the imported I-Device from the catalogue into the PROFINET subnet that the IO controller's PROFINET interface is connected to.
    4. Assign the I-Device to the IO controller by drawing a PROFINET relationship from the IO controller's PN port to the I-Device's PN port. The tool now resolves the device name pn-plc-b-1500f to the imported I-Device.
    5. Open the I-Device's device view. The transfer area created in Step 1 appears as a sub-module. Drag it into the I-Device's slot configuration. Note the assigned I/O addresses (e.g., %IW0..%IW5 for inputs, %QW0..%QW5 for outputs). These are the addresses the IO controller's standard program and F-program will reference.

    Step 3 — Configure the F-Destination address (F_Dest_Add)

    The PROFIsafe F_Dest_Add is a 16-bit address that uniquely identifies the safety partner. It is not the PROFINET IP address — it is a separate PROFIsafe address. The I-Device engineer and the IO controller engineer must agree on the F_Dest_Add value (typically a project-specific integer such as 1 or 0x1234) and enter it on both sides. A mismatched F_Dest_Add causes the PROFIsafe stack to enter the "F-Communication error" state and passivates both ends.

    1. On the I-Device side: Devices & Networks → PROFINET interface → Transfer areas → select the transfer area → Properties → "PROFIsafe" tab → F_Dest_Add = agreed value.
    2. On the IO controller side: the value is stored automatically in the safety program block DB when the safety program is compiled. If you need to enter it manually, open the F-Communication DB and edit the F_DEST_ADD tag.

    Step 4 — Configure the F-Runtime groups

    Both F-CPUs need a valid F-Runtime group object. By default, the first F-Runtime group is created automatically when the CPU is configured as F-capable. The maximum cycle time of the F-Runtime group on each CPU must be set to a value shorter than the F-Watchdog of the partner's PROFIsafe slot:

    Parameter Typical Value (V15 default) Allowed Range Notes
    F-Runtime group cycle time 100 ms 1–1000 ms Must be < partner's F-Watchdog / 2
    F-Watchdog time (PROFIsafe) 100 ms 10–65535 ms If exceeded, the slot passivates and the F-I/O is replaced with safe-zero
    F-Communication CRC length 3 bytes (V2.4) / 4 bytes (V2.6.1) 3 or 4 Profile V2.6.1 adds 24-bit sequence numbering

    Step 5 — Program the safety data exchange

    On the IO controller side, the I-Device's safety transfer area appears as standard I/O addresses. The standard F-I/O access blocks RD_SI / RD_SO / WR_SI / WR_SO from the F-Library F_IO_LIB handle the passivation logic:

    // In the F-Runtime group F-FB on IO controller side
    // Read failsafe inputs from the I-Device (machine B)
    #fB_estop_active := RD_SI(I_ADDR := %IW0,    // failsafe input byte 0
                               BIT_NO := 0,
                               RET_VAL := #fRetVal);

    On the I-Device side, expose the local F-tag using the F-Block SENDDP or directly by mapping the F-tag to the transfer area's output address. The simplest pattern is to use SENDDP in the I-Device's standard program to copy the failsafe data into the output transfer area:

    // In the standard program on the I-Device side
    // SENDDP pushes the local F-result into the I-Device transfer area
    SENDDP(SRC := "DB_SafetyResult".bMachineA_EstopOK,  // BOOL
           DST := %Q0.0,
           LEN := 1);

    Step 6 — Compile, download, and F-Login

    1. On the I-Device project: HW compile → download HW config → download safety program → enter the F-password when prompted.
    2. On the IO controller project: HW compile → download HW config → download standard program → download safety program → enter the F-password.
    3. Both CPUs perform an F-Login sequence. The F-CPU's "F-ACT" LED must turn solid green. The MAINT LED should be off. The LINK / RX/TX LEDs on the PROFINET port show the cyclic data exchange.
    4. Check the F-Communication DB's DIAG byte. DIAG = 16#00 means the F-link is healthy. Any non-zero value indicates a passivation or wiring error.

    Verification Checklist

    Check Where to Look Healthy Value Action on Failure
    F-ACT LED CPU front panel Solid green Re-run F-Login; check F-password
    MAINT LED CPU front panel Off Evaluate diagnostic buffer; check for F-Performance issues
    PROFINET link LEDs (X1 / X2) CPU / CP front panel LINK solid green, RX/TX flashing Verify cable, device name, IP subnet
    F-Communication DB DIAG byte Online → F-Communication DB 16#00 See troubleshooting matrix below
    PROFIsafe F-Host state Online & Diagnostics → Safety → F-Communication "F-Host activated, F-Module active" Re-acknowledge; verify F_Dest_Add
    Passivation counter F-I/O DB tag PASSIVE 0 Counts increments indicate intermittent F-Watchdog trips

    Method 2 — Flexible F-Link (TIA Portal V20 Alternative)

    TIA Portal V20 introduced Flexible F-Link, a streamlined F-CPU to F-CPU communication that does not require exporting and importing a GSD file. The official Siemens documentation is at Flexible F-Link — Safety. The high-level differences vs. the I-Device method:

    Aspect I-Device + PROFIsafe (V15+) Flexible F-Link (V20)
    GSD export / import Required Not required
    Number of F-CPU partners per CPU Limited by PROFINET slot count Up to 16 F-CPU partners per F-CPU
    PROFIsafe profile V2.4 or V2.6.1 V2.6.1 only
    Required CPU firmware FW V2.0 or later FW V2.9 or later (verify in CPU manual)
    Configuration location in TIA Devices & Networks → Transfer areas Devices & Networks → "Flexible F-Link" object in the device tree

    If both F-CPUs are running firmware that supports Flexible F-Link and both projects are migrated to TIA Portal V20 or later, Flexible F-Link is the recommended path. For mixed V15 / V20 environments — for example, when one machine cannot be upgraded — the I-Device method remains the only option.

    Redundant S7-1500F Systems (S7-1500R/H)

    For applications requiring both failsafe and fault-tolerant operation (e.g., process industries where a CPU failure must not trip the plant), Siemens offers the S7-1500R/H redundant system. The CPU pair 6ES7517-3HP00-0AB0 (CPU 1517H-3 PN) and 6ES7518-4JP00-0AB0 (CPU 1518HF-4 PN) are fail-safe and redundant simultaneously. The redundant pair is configured in a single TIA Portal project, so cross-project I-Device methods are not needed for CPU-to-CPU safety data within the redundant pair. Cross-cabinet F-CPU links to a separate machine still use the I-Device method described above. Background reading: SIMATIC Safety — Siemens product portal.

    Troubleshooting Matrix

    Symptom Likely Root Cause Diagnostic Step Corrective Action
    DIAG byte = 16#01 after download F_Dest_Add mismatch between I-Device and IO controller Compare F_Dest_Add on both sides (Devices & Networks → Transfer areas → PROFIsafe tab) Set the same F_Dest_Add on both sides, re-download
    DIAG byte = 16#02, partner F-CPU passivated F-Watchdog time exceeded Check F-Runtime group cycle time on partner; check PROFINET update time Increase F-Watchdog time, or reduce F-Runtime group cycle time to < F-Watchdog / 2
    DIAG byte = 16#05, CRC error in diagnostic buffer PROFIsafe version mismatch (V2.4 vs V2.6.1) Check "PROFIsafe profile" property on both sides Set both sides to the same profile; download both projects
    DIAG byte = 16#0A, F-Login rejected F-password differs from the password set on the CPU Online → F-CPU → "Safety → Change F-password" Enter the matching F-password; re-login
    PROFINET device name not found PROFINET naming not assigned to the I-Device Online → Accessible nodes → assign PROFINET device name Use the I-Device's PROFINET interface MAC and assign the name that matches the IO controller project
    Slot passivates intermittently during machine motion PROFINET update time too short for the IO cycle Monitor PROFINET update time vs. send clock Increase send clock from 1 ms to 1.5 ms or 2 ms
    F-ACT LED flashing 2 Hz F-capability not enabled in CPU properties CPU Properties → Safety → "Use F-capability of the CPU" Enable F-capability, recompile, redownload
    Compile error: "F-Block requires F-Runtime group assignment" F-Block placed outside any F-Runtime group Project tree → Safety → F-Runtime groups Drag the F-Block into the F-Runtime group's F-FB

    Commissioning Sequence (Field-Proven)

    1. Power both F-CPUs with the safety-related supply modules (PM 1507 / PM 1505 / system power modules). Verify the 24 V supply is from a SELV/PELV source as required by IEC 61131-2.
    2. Establish the Ethernet link between X1 of each F-CPU. Confirm the LINK LED is solid on both sides before powering up the application.
    3. Download the I-Device project first. The I-Device will enter F-Login standby state (F-ACT LED off, MAINT LED flashing).
    4. Download the IO controller project. The IO controller will start PROFINET AR (Application Relationship) establishment and discover the I-Device by its PROFINET device name.
    5. On the IO controller, trigger an F-Login. The CPU's online & diagnostics shows a transition from "F-Host deactivated" to "F-Host activated, F-Module active".
    6. Force the failsafe input on the I-Device (e.g., open an E-stop circuit). Confirm the IO controller's RD_SI returns the correct passivated value within 2 × F-Watchdog time.
    7. Reset the input. Confirm the F-I/O is reintegrated automatically (or via operator acknowledgment, depending on the ACK_REI setting in the F-Communication DB).
    8. Document the F-collective signature of both safety programs and store them in the safety lifecycle file. Re-signing is required after any change to the F-program.
    Safety lifecycle file. Per IEC 61511 and ISO 13849-1, the F-collective signature, the F-password (hashed), the F-program version, and the results of the validation test must be archived. The signature changes automatically whenever an F-Block is modified; TIA Portal prints a new signature in the inspection window after every safety-program compile.

    Parameter Reference (PROFIsafe Slot Properties)

    Property Type V15 Default Notes
    F_Source_Add UINT Auto-assigned from CPU's PROFINET interface MAC Unique per F-Host; do not modify
    F_Dest_Add UINT 0 (must be set) Project-specific agreement; 0 is invalid
    F_WD_Time TIME 100 ms 10–65535 ms
    F_SIL ENUM SIL 3 Achievable level depends on PROFINET update time
    F_Block_ID UINT 1 Must match the F-Host configuration
    F_Par_Version WORD 1 (V2.4) or 2 (V2.6.1) Must match on both ends
    F_CRC_Length BYTE 3 (V2.4) or 4 (V2.6.1) Implied by F_Par_Version
    F_Input_Length / F_Output_Length BYTE 1–12 bytes Total F-payload per slot

    CPU Compatibility Summary

    CPU Order Number Min. FW for I-Device + PROFIsafe Min. FW for Flexible F-Link (V20)
    CPU 1515F-2 PN 6ES7515-2AM02-0AB0 V2.0 V2.9
    CPU 1516F-3 PN/DP 6ES7516-3AN02-0AB0 V2.0 V2.9
    CPU 1517F-3 PN/DP 6ES7517-3AP00-0AB0 V2.0 V2.9
    CPU 1518F-4 PN/DP 6ES7518-4AP00-0AB0 V2.0 V2.9
    CPU 1510SP F (ET 200SP) 6ES7510-1SJ01-0AB0 V2.0 V2.9
    CPU 1512SP F (ET 200SP) 6ES7510-1SK01-0AB0 V2.0 V2.9
    CPU 1517H-3 PN (redundant) 6ES7517-3HP00-0AB0 V2.6 Not applicable (same project)

    FAQ

    Can I exchange failsafe data between two S7-1500F CPUs without using PROFIsafe?

    No. PROFIsafe is the only certified mechanism for transporting SIL 3 / PL e process data between S7-1500F controllers over a black-channel link. Standard PROFINET or S7 communication is acceptable only for non-safety data; the safety function must terminate at the F-CPU and traverse the link under PROFIsafe supervision. Hard-wired failsafe I/O is acceptable for one-off cross-shutdowns but does not scale.

    Do both F-CPUs need to be configured in the same TIA Portal project?

    No. The I-Device + PROFIsafe method is specifically designed for cross-project safety data exchange. Each F-CPU lives in its own TIA Portal project with its own safety program, its own F-password, and its own F-collective signature. The I-Device is exported as a GSDML file and imported into the partner project, so the two projects remain engineering-independent.

    What is the difference between the PROFINET device name and the F_Dest_Add?

    The PROFINET device name is a string (e.g., pn-plc-b-1500f) that the IO controller uses to address the I-Device at the PROFINET layer; it is set via the PROFINET DCP protocol. The F_Dest_Add is a 16-bit integer used by the PROFIsafe layer to identify the safety communication partner; both ends must agree on it. A mismatch in F_Dest_Add passivates the F-slot even if the PROFINET layer is healthy.

    What happens if the F-Watchdog time is exceeded?

    The receiving F-CPU passivates the failsafe slot, substitutes safe-zero values for the inputs, and sets the F-Communication DB's DIAG byte to 16#02. The safety program must be designed to handle passivation (typically by opening all outputs). Reintegration occurs automatically when valid PROFIsafe telegrams resume, or manually via the ACK_REI operator acknowledgment, depending on the F-Communication DB configuration.

    Should I use Flexible F-Link (V20) or the I-Device method for a new project?

    Use Flexible F-Link if both F-CPUs run firmware V2.9 or later and both projects are engineered in TIA Portal V20 or later. Use the I-Device method when one or both CPUs are on older firmware, when the projects are on TIA Portal V15–V19, or when the safety engineer must follow an established organizational boundary between two projects. Both methods achieve the same SIL 3 / PL e level when configured correctly.

    Back to blog