S7 Distributed Safety Configuring and Programming en US en-US
S7 Distributed Safety Configuring and Programming en US en-US
Preface
programming ___________________
Product Overview 1
2
___________________
Configuration
SIMATIC
___________________
Access Protection 3
Industrial Software
S7 Distributed Safety - configuring ___________________
Programming 4
and programming
___________________
F-I/O Access 5
Programming and Operating Manual
Implementation of user
___________________
acknowledgment 6
Data Exchange between
___________
7
Standard User Programs
and Safety Program
Configuring and
___________
8
Programming
Communication
___________________
F-Libraries 9
Compiling and
___________
10
commissioning a safety
program
___________________
System Acceptance Test 11
___________________
Operation and Maintenance 12
___________________
Checklist A
07/2013
A5E00109537-05
Legal information
Warning notice system
This manual contains notices you have to observe in order to ensure your personal safety, as well as to prevent
damage to property. The notices referring to your personal safety are highlighted in the manual by a safety alert
symbol, notices referring only to property damage have no safety alert symbol. These notices shown below are
graded according to the degree of danger.
DANGER
indicates that death or severe personal injury will result if proper precautions are not taken.
WARNING
indicates that death or severe personal injury may result if proper precautions are not taken.
CAUTION
indicates that minor personal injury can result if proper precautions are not taken.
NOTICE
indicates that property damage can result if proper precautions are not taken.
If more than one degree of danger is present, the warning notice representing the highest degree of danger will
be used. A notice warning of injury to persons with a safety alert symbol may also include a warning relating to
property damage.
Qualified Personnel
The product/system described in this documentation may be operated only by personnel qualified for the specific
task in accordance with the relevant documentation, in particular its warning notices and safety instructions.
Qualified personnel are those who, based on their training and experience, are capable of identifying risks and
avoiding potential hazards when working with these products/systems.
Proper use of Siemens products
Note the following:
WARNING
Siemens products may only be used for the applications described in the catalog and in the relevant technical
documentation. If products and components from other manufacturers are used, these must be recommended
or approved by Siemens. Proper transport, storage, installation, assembly, commissioning, operation and
maintenance are required to ensure that the products operate safely and without any problems. The permissible
ambient conditions must be complied with. The information in the relevant documentation must be observed.
Trademarks
All names identified by ® are registered trademarks of Siemens AG. The remaining trademarks in this publication
may be trademarks whose use by third parties for their own purposes could violate the rights of the owner.
Disclaimer of Liability
We have reviewed the contents of this publication to ensure consistency with the hardware and software
described. Since variance cannot be precluded entirely, we cannot guarantee full consistency. However, the
information in this publication is reviewed regularly and any necessary corrections are included in subsequent
editions.
Preface
Scope of Documentation
This documentation is applicable to the following optional package:
The S7 Distributed Safety optional package is used for configuring and programming S7
Distributed Safety fail-safe systems. Integration of the fail-safe I/O listed below in S7
Distributed Safety is also addressed:
● ET 200S fail-safe modules
● ET 200eco fail-safe I/O modules
● ET 200pro fail-safe modules
● S7-300 fail-safe signal modules
● Fail-safe DP standard slaves
● Fail-safe standard I/O devices
What's New
This documentation reflects the following significant changes/additions to the previous
version:
● The contents of the Product Information for S7 Distributed Safety V5.4 SP1 and SP3
Edition 01/2007 have been integrated into this manual.
● Description of the following important innovations in S7 Distributed Safety V5.4 SP4:
– Ability to install the S7 Distributed Safety optional package in Windows Vista
– Support of SM 336, F-AI 6 x 0/4 ... 20 mA HART fail-safe signal module
– Support of the "Compatibility mode" F-CPU parameter
Approvals
S7 Distributed Safety, ET 200S, ET 200eco, and ET 200 pro fail-safe modules, and S7-300
fail-safe signal modules are certified for use in safety mode up to and including the following:
● Safety Integrity Level SIL3 in accordance with IEC 61508:2000
● Performance level (PL) e and category 4 in accordance with ISO 13849-1:2006 or EN
ISO 13849-1:2008
Guide
This documentation describes how to work with the S7 Distributed Safety optional package.
It includes both instructional material and reference material (description of fail-safe library
blocks).
The following topics are addressed:
● Configuring of S7 Distributed Safety
● Access protection for S7 Distributed Safety
● Programming of safety program (safety-related user program)
● Safety-related communication
● F-libraries
● Support for system acceptance test
● Operation and maintenance of S7 Distributed Safety
Conventions
In this documentation, the terms "safety engineering" and "fail-safe engineering" are used
synonymously. The same applies to the terms "fail-safe" and "F-".
When "S7 Distributed Safety" appears in italics, it refers to the optional package for the "S7
Distributed Safety" fail-safe system.
The term "safety program" refers to the fail-safe portion of the user program and is used
instead of "fail-safe user program," "F-program," etc. For purposes of contrast, the non-
safety-related user program is referred to as the "standard user program".
All fail-safe blocks are represented with a yellow background on the STEP 7 user interface
(in SIMATIC Manager, for example) to distinguish them from standard user program blocks.
Additional Support
For any unanswered questions about the use of products presented in this manual, contact
your local Siemens representative.
You can find your representative at: (http://www.siemens.com/automation/partner)
A guide to the technical documentation for the individual SIMATIC products and systems is
available at: (http://www.siemens.com/simatic-tech-doku-portal)
Training Center
We offer courses to help you get started with the S7 automation system. Contact your
regional training center or the central training center in D 90327 Nuremberg, Germany.
(http://www.siemens.com/automation/partner)
Technical Support
Technical support is available for all A&D products
● Using the Support Request Web form (http://www.siemens.com/automation/support-
request)
You can find additional information about our Technical Support on the Internet at
(http://www.siemens.com/automation/service)
Note
Systems with safety-related characteristics are subject to special operational safety
requirements on the part of the operator. The supplier is also obliged to comply with certain
actions when monitoring the product. For this reason, we publish a special newsletter
containing information on product developments and features that are (or could be) relevant
to operation of safety-related systems. By subscribing to the relevant newsletter, you will
always have the latest information and be able to make changes to your system, when
necessary. To subscribe online, go to this page:
(http://my.ad.siemens.de/myAnD/guiThemes2select.asp?subjectID=2&lang=en)
and register for the following newsletters:
• SIMATIC S7-300 / S7-300F
• SIMATIC S7-400 / S7-400H / S7-400F/FH
• Distributed I/O
• SIMATIC Industrial Software
Select the "Updates" check box for each newsletter.
See also
Sitrain (http://www.sitrain.com)
Preface ................................................................................................................................................... 3
1 Product Overview.................................................................................................................................. 13
1.1 Overview ......................................................................................................................................13
1.2 Hardware and Software Components ..........................................................................................14
1.3 Installing/Removing the S7 Distributed Safety V5.4 SP4 Optional Package ...............................17
2 Configuration ........................................................................................................................................ 23
2.1 Overview of Configuration ............................................................................................................23
2.2 Particularities for Configuring the F-System ................................................................................25
2.3 Configuring the F-CPU .................................................................................................................26
2.4 Configuring the F-I/O ...................................................................................................................35
2.5 Configuring fail-safe DP standard slaves and fail-safe standard I/O devices ..............................39
2.6 Assigning Symbolic Names .........................................................................................................44
3 Access Protection ................................................................................................................................. 45
3.1 Overview of Access Protection ....................................................................................................45
3.2 Access Permission for the Safety Program .................................................................................48
3.3 Read Accesses without Password for the Safety Program .........................................................51
3.4 Access Permission for the F-CPU ...............................................................................................53
4 Programming ........................................................................................................................................ 55
4.1 Overview of Programming ...........................................................................................................55
4.1.1 Overview of Programming ...........................................................................................................55
4.1.2 Structure of the Safety Program in S7 Distributed Safety ...........................................................57
4.1.3 Fail-Safe Blocks ...........................................................................................................................59
4.1.4 Differences between the F-FBD and F-LAD programming languages and the standard
FBD and LAD programming languages .......................................................................................61
4.2 Creating the Safety Program .......................................................................................................73
4.2.1 Basic Procedure for Creating the Safety Program.......................................................................73
4.2.2 Defining the Program Structure ...................................................................................................75
4.3 Creating F-Blocks in F-FBD/F-LAD..............................................................................................77
4.3.1 Creating F-Blocks in F-FBD/F-LAD..............................................................................................77
4.3.2 Creating and editing F-FB/F-FC...................................................................................................78
4.3.3 Creating and Editing F-DB ...........................................................................................................81
4.3.4 Know-How Protection for User-Created F-FBs, F-FCs, and F-DBs ............................................82
4.3.5 "Check Block Consistency" Function for User-Created F-FBs, F-FCs, and F-DBs .....................85
4.3.6 "Compile and Download Objects" Function .................................................................................85
4.3.7 "Store Write-Protected" Function for User-Created F-FBs, F-FCs, and F-DBs ...........................85
4.3.8 "Rewiring" Function for F-FBs and F-FCs....................................................................................86
9.1.2.26 FC 179 "F_INT_RD": Read Value of Data Type INT Indirectly from an F-DB .......................... 262
9.1.3 F-System Blocks ....................................................................................................................... 263
9.1.4 F-Shared DB ............................................................................................................................. 264
9.1.5 Custom F-Libraries .................................................................................................................... 265
10 Compiling and commissioning a safety program ...................................................................................267
10.1 "Safety Program" Dialog ........................................................................................................... 267
10.2 Safety Program States .............................................................................................................. 271
10.3 Compiling Safety Program ........................................................................................................ 272
10.4 Downloading the Safety Program ............................................................................................. 275
10.5 Work Memory Requirement for Safety Program ....................................................................... 281
10.6 Function Test of Safety Program and Protection through Program Identification .................... 283
10.7 Modifying the Safety Program ................................................................................................... 287
10.7.1 Modifying the safety program in RUN mode ............................................................................. 287
10.7.2 Comparing Safety Programs ..................................................................................................... 290
10.7.3 Deleting the Safety Program ..................................................................................................... 294
10.7.4 Logbook of the Safety Program ................................................................................................ 295
10.8 Printing out Project Data ........................................................................................................... 297
10.8.1 Printed Project Data for the Hardware Configuration ............................................................... 299
10.8.2 Printed Project Data for the Safety Program............................................................................. 300
10.9 Testing the Safety Program ...................................................................................................... 303
10.9.1 Overview of Testing the Safety Program .................................................................................. 303
10.9.2 Deactivating Safety Mode ......................................................................................................... 304
10.9.3 Testing the Safety Program ...................................................................................................... 308
11 System Acceptance Test .....................................................................................................................313
11.1 Overview of System Acceptance Test ...................................................................................... 313
11.2 Checking the Printouts .............................................................................................................. 314
11.2.1 Acceptance Test for the Configuration of the F-CPU and the F-I/O ......................................... 315
11.2.2 Safety Program Acceptance Test ............................................................................................. 317
11.3 Checks after Downloading the Safety Program to the F-CPU .................................................. 319
11.4 Acceptance Test of Changes .................................................................................................... 320
12 Operation and Maintenance .................................................................................................................323
12.1 Notes on Safety Mode of the Safety Program .......................................................................... 323
12.2 Replacing Software and Hardware Components ...................................................................... 325
12.3 Guide to Diagnostics ................................................................................................................. 327
A Checklist ..............................................................................................................................................331
A.1 Checklist .................................................................................................................................... 331
Glossary ..............................................................................................................................................337
Index ...................................................................................................................................................347
Additional Information
Detailed information on hardware components can be found in the Safety Engineering in
SIMATIC S7 system manual.
Using a CPU for copying safety-related data between F-CPU and F-IO
Note the following if you use a standard CPU to copy safety-related data between an F-CPU
and F-I/O:
WARNING
If you use a standard CPU on the PROFINET IO or PROFIBUS DP that copies safety-
related input and output data between the F-CPU and F-IO per user program, you must test
all safety functions affected by the copy function whenever you change the user-
programmed copy function.
Software Components
Software components of S7 Distributed Safety include the following:
● S7 Distributed Safety optional package on the programming device/PC for configuring
and programming the F-system
● Safety program in the F-CPU
In addition, you need the STEP 7 basic software on the programming device or PC for
configuring and programming the standard PLC.
Safety Program
You create a safety program with the FBD/LAD Editor in STEP 7. You program fail-safe FBs
and FCs in the F-FBD or F-LAD programming languages and create fail-safe DBs in the F-
DB programming language. The supplied Distributed Safety F-library (V1) provides fail-safe
application blocks that you can use in your safety program.
Safety checks are automatically performed and additional fail-safe blocks for error detection
and fault reaction are inserted when the safety program is compiled. This ensures that
failures and errors are detected and appropriate reactions are triggered to maintain the F-
system in the safe state or bring it to a safe state.
In addition to the safety program, a standard user program can be run on the F-CPU. A
standard program can coexist with a safety program in an F-CPU because the safety-related
data of the safety program are protected from being affected unintentionally by data of the
standard user program.
Data are exchanged between the safety program and the standard user program in the F-
CPU by means of bit memory or by accessing the process input and output images.
WARNING
Use of S7 Distributed Safety Programming V5.4 Service Pack 4 with earlier versions of
STEP 7 is not permitted.
Note
When you open the "Safety Program" dialog for a consistent safety program created with S7
Distributed Safety V5.1, the status "The safety program is consistent." is output, although
different signatures are displayed.
Reason: the length of the signatures has changed from 16 to 32 bits.
Note
Note that channel-level passivation of F-I/O and connection of F-I/O to PROFINET IO extend
the runtime of the F-runtime group(s) and increase the work memory requirement of the
safety program (see also Excel file s7cotia.xls for response time calculation). In addition, you
must make at least 330 bytes of local data available for the safety program (see Chapter
"Configuring the F-CPU").
If you want to use S7 Distributed Safety V5.4 SP4 to change a safety program created with
an earlier version of S7 Distributed Safety, proceed as follows:
1. Compile the safety program with S7 Distributed Safety V 5.4 SP4 prior to making
changes.
Result: All F-blocks of the Distributed Safety F-library (V1) that were used in the safety
program and for which there is a new version in the Distributed Safety F-library (V1) in
V5.4 SP4 are automatically replaced following confirmation.
The collective signature of all F-blocks and the signature of individual F-blocks change for
the following reasons:
– The length of the collective signature has been changed from 16 to 32 bits (for
conversion from V5.1 to V5.4 SP4 only)
– F-blocks of the Distributed Safety F-library (V1) were replaced
– Automatically compiled F-blocks have changed
When changing from V5.4 SP3 to V5.4 SP4, the collective signature of all F-blocks
remains the same although the F-_CTRL_1 F-system block is replaced by a newer
version (non-safety-related change).
2. Change the safety program according to your requirements.
3. Recompile the safety program.
4. Perform a comparison of the old and new version of the safety program in the "Compare
safety program" dialog (see Chapter "Comparing safety programs").
– You can identify changes to the version of an F-block of the Distributed Safety F-
library (V1) by the changes to F-block signatures. The modified signatures and initial
value signatures of all F-application blocks and F-system blocks must correspond to
those in Annex 1 of the Certification Report.
– Furthermore, you can identify whether changes have been made in the safety
program. If necessary, the safety program must undergo another acceptance test.
See also
Safety Program Acceptance Test (Page 317)
Introduction
You configure an S7 Distributed Safety fail-safe system in basically the same way as a
standard S7-300, S7-400, or ET 200S automation system.
For this reason, this section presents only the essential differences you encounter when
configuring an S7 Distributed Safety F-system compared to standard PLC configuration.
Topic Reference
Configuration rules, such as: • Safety Engineering in SIMATIC S7 system manual
• Centralized configuration, distributed configuration with • Manual for specific F-I/O
F-I/O
• Coexistence of F-I/O and standard I/O
PROFIsafe address assignment for F-I/O Manual and context-sensitive online Help for specific F-I/O
Allocation of address areas by F-I/O in the F-CPU Manual for specific F-I/O
Fail-safe DP standard slaves Documentation for specific fail-safe DP standard slave
Fail-safe standard I/O devices Documentation for specific fail-safe standard I/O devices
Note
If you change a safety-relevant parameter for an F-I/O, a fail-safe DP standard slave, a fail-
safe standard I/O device, or an F-CPU, you must recompile the safety program.
The same applies to changes in the configuration of safety-related communication and, in
particular, for changes in the S7 connections for safety-related communication via S7
connections.
Introduction
You configure the F-CPU in basically the same way as a standard automation system. For
an S7 Distributed Safety F-system, you must also do the following:
● Configure Level of Protection 1.
● Configure the F parameters.
WARNING
In safety mode, access by means of the F-CPU password must not be authorized when
making changes to the standard user program, since changes to the safety program can
also be made. To rule out this possibility, you must configure Level of Protection 1. If only
one person is authorized to change the standard user program and the safety program,
level of protection "2" or "3" should be configured so that other persons have only limited
access or no access at all to the entire user program (standard and safety programs).
Note
A change in the F-parameters of the F-CPU can cause changes in the safety program
when it is recompiled, and consequently, a new acceptance test may be required.
Note
The local data setting is applicable to all F-runtime groups of a safety program.
You must provide at least 330 bytes of local data for the safety program. However, the local
data requirement for the automatically added F-blocks may be higher depending on the
requirements of your safety program.
Thus, you should provide as much local data as possible for the automatically added F-
blocks. If there is not enough local data available for the automatically added F-blocks (330
bytes or more), the safety program will be compiled nevertheless. Data in automatically
added F-DBs are then used instead of local data. This increases the runtime of the F-runtime
group(s), however. You will receive a notice via S7 Distributed Safety if the automatically
added F-blocks would require more local data than configured.
WARNING
The calculated maximum runtime of the F-runtime group using the MS Excel file s7fcotia.xls
is no longer correct in this case because the calculation assumes sufficient F-local data are
available.
In this case, use the value you configured for the maximum cycle time of the F-runtime
group (F-monitoring time) as the maximum runtime of the F-runtime group when calculating
the maximum response times in the event of an error and for any runtimes of the standard
system using the above-mentioned Excel file.
Note
Note that the maximum possible amount of F local data depends on the following:
• Local data requirement of your higher-level standard user program. For this reason, you
should call the F-CALL blocks directly in OBs (cyclic interrupt OBs whenever possible),
and additional local data should not be declared in these cyclic interrupt OBs.
• Maximum amount of local data of the utilized F-CPU (see technical specifications in the
Product Information for the utilized F-CPU). For CPU 416F-2, you can configure the local
data for each priority class. Therefore, allocate the largest possible local data area for the
priority classes in which the safety program (F-CALL blocks) will be called (e.g., OB35).
Maximum Possible Amount of F Local Data According to Local Data Requirement of Higher-Level
Standard User Program
Case 1: F-CALL blocks called directly in OBs
Local Data Requirement for the Automatically Added F-Blocks According to the Local Data
Requirement of Your Safety Program
The information below must be taken into account only if the amount of local data available
for your safety program is insufficient and you received a message from S7 Distributed
Safety to that effect.
You can estimate the probable local data requirement for the automatically added F-blocks
as follows:
For each F-runtime group, determine the local data requirement for each call hierarchy (path
in the F-runtime group starting from and including the F-PB through all nesting levels down
to the lowest) of your safety program:
Local data requirement for a call hierarchy (path local data requirement in bytes) =
2 x amount of all local data of F-FBs/F-FCs of data type BOOL in the path
+ 4 x amount of all local data of F-FBs/F-FCs of data type INT or WORD in the path
+ 6 x amount of all local data of F-FBs/F-FCs of data type TIME in the path
+ 42 x number of nesting levels in which an F-application block is called
+ 18 x number of nesting levels
+ 14 x number of nesting levels in which a fixed-point function or word logic instruction is
programmed.
The estimated local data requirement for the automatically added F-blocks is then equivalent
to the maximum path local data requirement for all paths of all F-runtime groups.
Note
If you are unable to provide a sufficient amount of local data for the automatically added F-
blocks, we recommend that you reduce the local data requirement of your safety program,
by reducing nesting depth, for example.
Note
F-blocks are automatically added when the safety program is compiled to create an
executable safety program from your safety program. If you use the local data memory area
in an F-FB/F-FC, remember the following limit (irrelevant for S7-400 F-CPUs):
Local data requirement < maximum local data amount per block
(see technical specifications in the Product Information for the F-CPU you are using)
Mean local data requirement in bytes =
2 x amount of all local data of the F-FB/F-FC of data type BOOL
+ 4 x amount of all local data of the F-FB/F-FC of data type INT or WORD
+ 6 x amount of all local data of the F-FB/F-FC of data type TIME
+ 12
+ 14 (if a fixed-point function or word logic instruction is programmed)
+ 6 (if an F-FB, F-FC, or F-application block is called)
If the amount of local data required is greater, you cannot download your safety program to
the F-CPU. Reduce the local data requirement of your programmed F-FB or F-FC.
See also
Installing/Removing the S7 Distributed Safety V5.4 SP4 Optional Package (Page 17)
Overview of Access Protection (Page 45)
Access Permission for the F-CPU (Page 53)
Structure of the Safety Program in S7 Distributed Safety (Page 57)
Overview of System Acceptance Test (Page 313)
Note
Note that channel-level passivation increases the runtime of the F-runtime group(s)
compared to passivation of the entire F-I/O (see also Excel file s7cotia.xls for response time
calculation).
Additional Information
For information on which ET 200S, ET 200eco, and ET 200pro F-modules and which S7-300
F-SMs you can use (centrally or decentrally), refer to the Safety Engineering in SIMATIC S7
system manual.
For a description of the parameters, refer to the context-sensitive online Help for the tab and
the relevant F-I/O manual.
For information on what you must consider when configuring the monitoring time for F-I/O,
refer to the Safety Engineering in SIMATIC S7 system manual.
PROFIsafe Addresses
The PROFIsafe addresses ("F_source_address", "F_destination_address" parameters)
uniquely identify the source and destination.
F_destination_address
The F_destination_address uniquely identifies the PROFIsafe destination (of the F-I/O).
Therefore, the F_destination_address must be unique network-wide and station-wide (see
the following rules for address assignment).
To prevent incorrect parameter assignment, a station-wide unique F_destination_address is
automatically assigned when the F-I/O is placed in HW Config.
To ensure a network-wide unique F_destination_address assignment when multiple DP
master systems and PROFINET IO systems are operated on one network, you must set the
"Basis for PROFIsafe addresses" parameter (in the object properties for the F-CPU) in S7
Distributed Safety F-systems differently before placing the F-I/Oin the various stations of a
network.
If you change the F_destination_address, the uniqueness of the F_destination_address
within the station is checked automatically. You yourself must make sure that the
F_destination_address is unique network-wide.
You must set the F_destination_address on the F-I/O via the DIP switch before installing the
F-I/O.
Note
For the following S7-300 F-SMs, the F_destination_address is the same as the start address
of the F-SM/8:
• SM 326; DI 24 x DC 24 V (order no. 6ES7326-1BK00-0AB0)
• SM 326; DI 8 x Namur (order no. 6ES7326-1RF00-0AB0)
• SM 326 DO 10 x DC 24 V/2A (order no. 6ES7326-2BF01-0AB0)
• SM 336; AI 6 x 13 Bit (order no. 6ES7336-1HE00-0AB0)
The "Basis for PROFIsafe addresses" does not affect the assignment of the
F_destination_address for these F-SMs.
Assign low start addresses for these F-SMs if you are also using other F-I/O.
F_source_address
The F_source_address is automatically assigned in S7 Distributed Safety.
WARNING
* A network consists of one or more subnets. "Network-wide" means beyond the boundaries
of the subnet.
** The address is unique for a station configured in HW Config (for example, an S7-300
station or I-slave)
*** Across Ethernet subnets, excluding cyclic PROFINET IO communication (RT
communication)
WARNING
For fail-safe F-SMs in safety mode, "group diagnostics" must be activated on all
connected channels
.
It is recommended that you check to verify that you shut down group diagnostics only for
unused input and output channels.
Requirements
In order to use fail-safe DP standard slaves with S7 Distributed Safety, the standard slaves
must be on the PROFIBUS DP and support the PROFIsafe bus profile. Fail-safe DP
standard slaves used in hybrid configurations on PROFIBUS DP and PROFINET IO based
on IE/PB links must support the PROFIsafe bus profile in V2 mode.
In order to use fail-safe standard I/O devices with S7 Distributed Safety, the standard
devices must be on the PROFINET IO and support the PROFIsafe bus profile in V2 mode.
F_IO_StructureDescCRC
You receive one of the following items of information for each configured fail-safe DP
standard slave or standard I/O device when it is placed in HW Config or in the printout of the
hardware configuration project data:
● The value calculated by S7 Distributed Safety for F_IO_StructureDescCRC matches/does
not match the "setpoint" in the installed GSD file
● The "setpoint" for F_IO_StructureDescCRC is not available in the installed GSD file
Note
The information of the F_IO_StructureDescCRC is irrelevant for the system acceptance
test (see Chapter "System Acceptance Test") if the project was compiled with S7
Distributed Safety V5.4 SP4.
For versions of S7 Distributed Safety > V5.4 SP4, the F_IO_StructureDescCRC check
must be without errors (calculated value matches the setpoint). For this reason, you
should obtain the appropriate GSD file containing the setpoint for
F_IO_StructureDescCRC from the device manufacture.
"PROFIsafe" tab
The parameter texts specified in the GSD file are contained in the "PROFIsafe" tab under
"Parameter name", and the current value for each parameter is found under "Value". You
can modify this value using the "Change Value..." button.
The parameters are explained below.
"F_Check_SeqNr" Parameter
This parameter defines whether the sequence number is to be incorporated in the
consistency check (CRC calculation) of the F-user data frame.
In PROFIsafe V1-MODE, you need to set the "F_Check_SeqNr" parameter to "No check".
Only fail-safe DP standard slaves that behave accordingly are supported.
"F_CHECK_SeqNr" is irrelevant in PROFIsafe V2 mode.
"F_SIL" Parameter
This parameter defines the safety class of the fail-safe DP standard slave or standard I/O
device. The parameter is device-dependent. Possible settings for the "F_SIL" parameter are
"SIL 1" to "SIL 3", depending on the GSD file.
"F_CRC_Length" Parameter
Depending on the length of the F-user data (process data), the safety class, and the
PROFIsafe MODE , the length of the CRC signature must be 2, 3 or 4 bytes. This parameter
provides information to the F-CPU on the size of the CRC2 key in the safety message frame.
In PROFIsafe V1 mode:
For a user data length less than or equal to 12 bytes, select "2-byte CRC" as the setting for
the "F_CRC_Length" parameter; for a user data length ranging from 13 bytes to 122 bytes,
select "4-byte CRC".
S7 Distributed Safety supports only "2-byte CRC"; the fail-safe DP standard slave must
behave accordingly.
In PROFIsafe V2 mode:
For a user data length less than or equal to 12 bytes, select "3-byte CRC" as the setting for
the "F_CRC_Length" parameter; for a user data length ranging from 13 bytes to 123 bytes,
select "4-byte CRC".
S7 Distributed Safety supports only "3-byte CRC"; the fail-safe DP standard slave/standard
I/O device must behave accordingly.
"F_Block_ID" Parameter
The F_Block_ID parameter has the value 1 if the F_iPar_CRC parameter exists, otherwise it
has the value 0.
The F_Block_ID parameter indicates that the data record for the value of F_iPar_CRC has
been extended by 4 bytes. You must not change the parameter.
"F_Par_Version" Parameter
This parameter identifies the PROFIsafe operating mode. You can find out the operating
modes supported by the device from the range of values offered. The parameter is set to "1"
(PROFIsafe V2 MODE) for fail-safe standard IO devices and cannot be changed.
For fail-safe DP standard slaves, you can set this parameter to the following:
● Set "F_Par_Version" to "1" (PROFIsafe V2 MODE) for a PROFIBUS DP-homogeneous
network, if the device and the F-CPU support this. Otherwise, set it to "0" (PROFIsafe V1
MODE).
● "F_Par_Version" must be set to "1" (PROFIsafe V2-MODE) for a network composed of
PROFIBUS DP and PROFINET IO subnets.
Note
The following F-CPUs support V2 MODE:
• CPU 416F-2, firmware version V4.1 and higher
• CPU 416F-3 PN/DP
• IM 151-7 F-CPU, firmware version V2.6 and higher
• CPU 315F-2 PN/DP
• CPU 315F-2 DP, firmware version V2.6 and higher
• CPU 317F-2 PN/DP
• CPU 317F-2 DP, firmware version V2.5 and higher
• CPU 319F-3 PN/DP
If you set "F_Par_Version" to "1" for F-CPUs that do not support V2 MODE, this will result
in a communication error for the safety-related communication with the device. One of the
following diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "F-I/O passivated": Check value error (CRC)/Sequence number error ...
• "F-I/O passivated": Monitoring time for safety message frame exceeded ...
WARNING
"F_WD_Time" Parameter
This parameter defines the monitoring time in the fail-safe DP standard slave/standard I/O
device.
A valid current safety message frame must arrive from the F-CPU within the monitoring time.
This ensures that failures and faults are detected and appropriate reactions are triggered to
maintain the F-system in the safe state or bring it to a safe state.
The selected monitoring time should be long enough to tolerate frame delays in
communication, while ensuring that the fault reaction function has a sufficiently fast reaction
when a connection is interrupted or some other fault occurs (see Safety Engineering in
SIMATIC S7 system manual).
The "F_WD_Time" parameter can be set in 1 ms increments. The value range of the
"F_WD_Time" parameter is specified by the GSD file.
"F_iPar_CRC" Parameter
CRC via individual device parameters (i-parameter).
The individual device parameters (i-parameters) of a fail-safe
DP standard slave/standard I/O device are configured with their own parameter assignment
tool provided by the device manufacturer.
Enter here the CRC calculated by the parameter tool from the device manufacturer for the
protection of the i-parameters. S7 Distributed Safety takes the value into account when
calculating the CRC F-parameter (CRC1).
See also
Configuring the F-I/O (Page 35)
Note
In the case of fail-safe DP standard slaves/standard I/O devices, take care not to use the
"description" that can be entered in HW Config (instead of the name) for generating the
symbolic name for the associated F-I/O DB. The symbolic name is always generated in
this case using the prefix "F," the start address of the fail-safe DP standard
slave/standard I/O device, and a fixed character string. You can change the symbolic
name only be editing it directly in the symbol table.
WARNING
An F-I/O DB is always assigned to a particular F-I/O module using the F-I/O DB number,
and not the start address entered by default in the symbolic name.
For this reason, you must not modify the automatically assigned numbers of the F-I/O
DBs; otherwise, your safety program can no longer access the F-I/O DB assigned to the
F-I/O.
Introduction
Access to the S7 Distributed Safety F-system is protected by two password prompts: one for
the F-CPU and another for the safety program.
For the password for the safety program, a distinction is made between an offline password
and an online password for the safety program:
● The offline password is part of the safety program in the offline project on the
programming device.
● The online password is part of the safety program in the F-CPU.
The following table presents an overview of the access permissions for the F-CPU and the
safety program.
The sections below show you how to assign the passwords and how to set up, change, and
cancel access permissions for the F-CPU and for the safety program.
Note
Make sure that you use identical online and offline passwords for the safety program by
downloading the safety program to the F-CPU with the "Safety Program" dialog, as
otherwise you cannot download it by means of SIMATIC Manager and LAD/FBD Editor.
WARNING
To optimize access protection, you must use different passwords for the F-CPU and the
safety program.
WARNING
If access protection is not used to limit access to the programming device or PC to only
those persons who are authorized to modify the safety program, the following
organizational measures must be taken to ensure the effectiveness of password protection
at the programming device or PC:
• Only authorized personnel may have access to the password.
• Authorized personnel must explicitly cancel the access permission for the safety
program before leaving the programming device or PC. If this is not strictly
implemented, a screen saver equipped with a password accessible only to authorized
personnel must also be used.
WARNING
If access protection is not used to limit access to the programming device or PC to only
those persons who are authorized to modify the safety program, the following
organizational measures must be taken to ensure the effectiveness of the password
protection for the F-CPU at the PG/PC:
• Only authorized personnel may have access to the password.
• Authorized personnel must explicitly cancel the access permission for the F-CPU
before leaving the programming device or PC. If this is not strictly implemented, a
screen saver equipped with a password accessible only to authorized personnel
must also be used.
After canceling access permission, you should check to determine whether the
collective signature of all F-blocks with an F-attribute in the block container online is
identical to the collective signature of all F-blocks with an F-attribute in the block
container of the accepted safety program. If not, you must download the correct safety
program to the F-CPU.
WARNING
If multiple F-CPUs can be reached over a network (such as MPI) by one programming
device or PC, you must take the following actions to ensure that the safety program is
downloaded to the correct F-CPU:
Use passwords specific to each F-CPU, e.g., a uniform password for the F-CPUs having
the respective MPI address as an extension (max. 8 characters): "PW_8".
Note the following:
• A point-to-point connection must be used when assigning a password to an F-CPU for
the first time (analogous to assigning an MPI address to an F-CPU for the first time).
• Before downloading a safety program to an F-CPU for which access rights by means of
an F-CPU password do not yet exist, you must first revoke existing access permission
for any other F-CPU.
See also
Configuring the F-CPU (Page 26)
Introduction
A safety program consists of fail-safe blocks that you select from an F-library or create using
the F-FBD or F-LAD programming languages and fail-safe blocks that are automatically
added when the safety program is compiled. Fault control measures are automatically added
to the safety program you create, and additional safety-related tests are performed.
Overview
This section contains a description of the following:
● Structure of the safety program in S7 Distributed Safety
● Fail-safe blocks
● Differences between the F-FBD/F-LAD programming languages and the standard FBD
and LAD languages
Schematic Structure of a Project with Standard User Program and Safety Program
The figure below presents the schematic structure of a STEP 7 project in the programming
device/PC with a standard user program and a safety program for S7 Distributed Safety.
The Distributed Safety F-block library (V1) is supplied with the S7 Distributed Safety optional
package for creating the safety program.
The F-library is located in the step7/s7libs directory.
Additional information about programming is provided in the following sections.
F-Runtime Groups
To improve handling, a safety program consists of one or two "F-runtime groups." An F-
runtime group involves a logical construct of several related F-blocks that is formed internally
by the F-system.
An F-runtime group consists of the following:
● One F-call block F-CALL
● One F-program block F-PB (an F-FB/F-FC that you assign to the F-CALL)
● Additional F-FBs or F-FCs that you program using F-FBD or F-LAD, as needed
● One or more F-DBs, as needed
● F-I/O DBs
● F-blocks of the Distributed Safety F-library (V1)
● F-blocks from user-created F-libraries
● F-system blocks F-SBs
● Automatically generated F-blocks
See also
Rules for F-Runtime Groups of the Safety Program (Page 86)
Note
A detailed description of the F-application blocks can be found in Chapter "Distributed Safety
F-Library (V1)".
See also
F-I/O Access (Page 97)
Overview of Distributed Safety F-Library (V1) (Page 183)
Custom F-Libraries (Page 265)
4.1.4 Differences between the F-FBD and F-LAD programming languages and the
standard FBD and LAD programming languages
Introduction
The user program in the F-CPU typically consists of a standard user program and a safety
program. The standard user program is created in STEP 7 using standard programming
languages such as STL, LAD, or FBD.
The safety program for S7 Distributed Safety is programmed using F-FBD or F-LAD.
Note
Note when using the local data address area that the first access of a local data element in
an F-PB, F-FB, or F-FC must always be a write access. This initializes the local data
element.
Make sure that the initialization of the local data element is not skipped over by JMP, JMPN
or RET instructions (branching).
Initialization of a "local data bit" should be performed with the Assign ("=") instruction (F-
FBD) or Output Coil ("--()") instruction (F-LAD). Assign the local data bit a signal state of "0"
or "1" as a Boolean constant.
Local data bits cannot be initialized with the Flip Flop (SR, RS), Set Output (S) or Reset
Output (R) instructions.
The F-CPU can go to STOP if this is not observed. One of the following diagnostic events is
then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
You can find out which address areas are possible for your F-CPU in the product information
for the CPU you are using.
Note
The "process input image," "process output image," and "bit memory" address areas must
not be used for edge memory bits of the RLO Edge Detection (N, P) or Address Edge
Detection (NEG, POS) instructions or for the address of the Flip Flop (SR, RS) instructions.
If the "local data" address area is used for the edge memory bits of the RLO Edge Detection
(N, P) or Address Edge Detection (NEG, POS) instructions or for the address of the Flip Flop
(SR, RS), Set Output (S), or Reset Output (R) instructions, the local data bit must be
initialized beforehand.
Supported Instructions
You can use the instructions listed in the table below in the safety program:
S Instruction: Particularities
Note
The Set Output (S) instruction is only executed if it is applied to an output of an F-I/O that is
passivated (e.g., during startup of the F-system). For this reason, you should only attempt to
access outputs of F-I/O with the Assign ("=") (F-FBD) or Output Coil ("--( )") (F-LAD)
instruction.
You can evaluate whether an F-I/O or channels of an F-I/O are passivated in the associated
F-I/O DB.
Note
If you wish to use a formal parameter of an F-FB/F-FC for the edge memory bits of the RLO
Edge Detection (N, P) or Address Edge Detection (NEG, POS) instructions or for the
address of the Flip Flop (SR, RS), Set Output (S), or Reset Output (R) instructions, it must
be declared as an in/out parameter.
The F-CPU can go to STOP if this caution is not observed. One of the following diagnostic
events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
Note
If the result of an ADD_I, SUB_I, MUL_I, or NEG_I instruction or the quotient of a DIV_I
instruction is outside the permitted range for integers (16 bits), the F-CPU goes to STOP
mode if the result/quotient is used in an output to an F I/O or to a partner F-CPU by means of
safety-related CPU-CPU communication. One of the following diagnostic events is then
entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
Therefore, you should take appropriate steps when programming to comply with the
permissible range for integers (16 bits), or evaluate the OV bit.
A warning is issued if you have not programmed an OV bit scan for ADD_I, SUB_I, MUL_I,
NEG_I, and DIV_I instructions.
By evaluating the OV bit, you can identify an overflow without the F-CPU going to STOP
mode in the case of an overflow. The result/quotient behaves like the analogous instruction
in a standard user program.
Note
An OV bit scan is only permitted in the network following the network with the instruction
affecting the OV bit.
The network with the OV bit scan must not be the destination of a jump instruction; in other
words, it must not contain a jump label.
If an OV bit scan is programmed in the network following the instruction affecting the OV bit,
the execution time of the instruction affecting the OV bit is increased (see also Excel File for
Response Time Calculation s7fcotia.xls).
Note
If the divisor (input IN2) of a DIV_I instruction = 0, the quotient of the division (result of
division at output OUT) = 0. The result behaves like the corresponding instruction in a
standard user program. The F-CPU does not go to STOP mode. This is the response
regardless of whether an OV-bit scan is programmed in the next network.
Note
Keep in mind when using the "OPN DB" instruction that the content of the DB register can be
changed following calls of F-FB/F-FC and "fully qualified DB accesses," such that there is no
guarantee that the last data block you opened with "OPN DB" is still open.
You should therefore use the following method for addressing data to avoid errors when
accessing data of the DB register:
• Use symbolic addressing.
• Use only fully qualified DB accesses.
If you still want to use the "OPN DB" instruction, you must ensure that the DB register is
restored by repeating the "OPN DB" instruction following calls of F-FB/F-FC and "fully
qualified DB accesses." Otherwise, an error could result.
Note
The MOVE operation is permitted if the data types at the input and output are the same or
between data with the INT and WORD data types.
For data from the standard user program, the length of the data types at the input and output
must match.
Note
You must not declare the F_SENDS7 and R_RCVS7 F-application blocks as multiple
instances, even if they have the "multiple instance-capable" property.
Accesses to static data of a multiple instance within the F-FB in which the multiple instance
is declared are not permitted.
Accesses to inputs and outputs of a multiple instance outside the F-FB in which the multiple
instance is declared are not permitted.
Note
You are not permitted to program an F_SENDDP or F_SENDS7 call between a jump
instruction and the associated destination of the jump instruction.
You are not permitted to program a RET instruction prior to an F_SENDDP or F_SENDS7
call.
Non-Permissible Instructions
All instructions that are not listed in the table above are not permitted, in particular:
● Counter instructions (fail-safe counters are implemented using F-application blocks from
the Distributed Safety F-library (V1): F_CTU, F_CTD, F_CTUD)
● Timer instructions (fail-safe timers are implemented using F-application blocks from the
Distributed Safety F-library (V1): F_TP, F_TON, F_TOF)
● Shift and Rotate instructions (shift instructions are implemented using F-application
blocks from the Distributed Safety F-library (V1): F_SHL_W, F_SHR_W)
● The following program control instructions:
– Call standard blocks (FBs, FCs)
– CALL: Call FC/SFC without parameters
– Call F-FBs, F-FCs conditionally (interconnection of EN and EN = 0)
– Call SFBs, SFCs
Note
In fail-safe programming, you must not interconnect, assign "0" to, or evaluate the
enable input EN or the enable output ENO.
See also
F-I/O Access (Page 97)
Data Transfer from the Safety Program to the Standard User Program (Page 127)
Data Transfer from Standard User Program to Safety Program (Page 129)
Software Requirements
The software requirements are described in Chapter "Installing/Removing the S7 Distributed
Safety V5.4 SP4 Optional Package".
Additional Requirements
● A project structure must be created in SIMATIC Manager.
● The hardware components of the project - in particular, the F-CPU and the
F-I/O - must have been configured prior to programming.
● The safety program must be assigned to an F-CPU, such as a CPU 315F-2 DP.
• Set the maximum cycle time of the F-runtime group Safety Engineering in
SIMATIC S7 system manual
• If one F-runtime group is to provide data for evaluation Defining F-Runtime Groups
to another F-runtime group of the safety program,
assign a DB for F-runtime group communication.
6 Compile safety program in the "Safety Program" dialog Compiling the Safety
Program
7 Call F-CALL blocks directly in OBs (cyclic interrupt OBs, to Defining F-Runtime Group
the extent possible)
8 Download the entire user program (standard user program Downloading the Safety
and safety program) to the F-CPU in the "Safety Program" Program
dialog
See also
Installing/Removing the S7 Distributed Safety V5.4 SP4 Optional Package (Page 17)
Overview of Configuration (Page 23)
Defining the Program Structure (Page 75)
Creating F-Blocks in F-FBD/F-LAD (Page 77)
Rules for F-Runtime Groups of the Safety Program (Page 86)
Compiling Safety Program (Page 272)
Downloading the Safety Program (Page 275)
Note
You can better structure your safety program by dividing it into two F-runtime groups.
However, note that the following actions cannot be performed for individual F-runtime
groups, but only for the safety program as a whole:
• Specifying a password for the safety program
• Compiling the safety program
• Downloading the safety program
• Deactivating safety mode
• Comparing safety programs
• Printing a safety program
The collective signatures are formed using all F-blocks of the safety program.
Note
You can improve performance by writing section of the program that are not required for
the safety function in the standard user program.
When determining which elements to include in the standard user program and which to
include in the safety program, you should keep in mind that the standard user program
can be modified and downloaded to the F-CPU more easily. In general, changes in the
standard user program do not require an acceptance test.
See also
Overview of Configuration (Page 23)
Differences between the F-FBD and F-LAD programming languages and the standard FBD
and LAD programming languages (Page 61)
Rules for F-Runtime Groups of the Safety Program (Page 86)
Safety Program Acceptance Test (Page 317)
Overview
This section describes how to create a safety program in F-FBD or F-LAD using F-FBs,
F-FCs, and/or F-DBs you have created. The basic procedure is the same as for the standard
user program; therefore, only the deviations from programming a standard user program are
presented below.
You will find an explanation of how F-blocks are represented in SIMATIC Manager in
Chapter ""Safety Program" Dialog".
Note
It is possible to create individual F-blocks directly in an S7 program that is not assigned to
any F-CPU. This allows you to create safety programs for different F-CPUs irrespective of
the hardware used. However, keep in mind that F-addresses and the validity of F-I/O
accesses are not checked in this case.
See also
"Safety Program" Dialog (Page 267)
Note
You must not use the FB numbers in the band of numbers you reserved for automatically
added F-function blocks ("F-function blocks" parameter in the object properties for the F-
CPU).
2. In the "General - Part 1" tab of the "Properties - Function" window, enter the name of the
F-FB/F-FC. Select "F-FBD" or "F-LAD" as the programming language. Click "OK" to
confirm. Enter the password for the safety program (password prompts will no longer be
mentioned in operating procedures below).
The block symbol displayed in SIMATIC Manager is highlighted in yellow.
The created F-block can then be opened and edited with the FBD/LAD Editor:
3. Double-click the F-FB/F-FC in SIMATIC Manager. The FBD/LAD Editor is displayed.
4. You should select "Type Check of Addresses" in the "LAD/FBD" dialog in the FBD/LAD
Editor (Options > Settings).
Note
Only the following elements are displayed in the F-Program Elements Catalog:
• Supported instructions
• F-FBs and F-FCs from the block container of your S7 program
• F-blocks from F-libraries, e.g., F-application blocks of Distributed Safety F-library (V1)
• Multi-instances of the edited F-block
Note
An F-FB/F-FC called in the F-CALL (which then becomes the F-PB) cannot have any
parameters because they cannot be initialized (see Defining F-runtime Groups).
Note
F-FBs/F-FCs must not call themselves.
Note
When switching from F-FBD to F-LAD, graphic representation of certain F-FBD networks
might not be possible in F-LAD; rather, these networks are displayed in STL. The STL
code they contain must not be changed.
Rule: STL networks are not permitted in the F-FBD representation. STL networks in F-
LAD must be represented again as F-FBD networks when there is a switch to F-FBD.
WARNING
Editing the instance DB of F-FBs is not permitted online or offline and can cause the
F-CPU to go to STOP mode.
Note
Accesses to static parameters of instance DBs of other F-FBs are not permitted.
Note
Note when using F-FCs that the first access of output parameters of F-FCs must be a
write access. This initializes the output parameters. Output parameters from F-FCs must
always be initialized.
The F-CPU can go to STOP if this is not observed. One of the following diagnostic events
is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
Note
If you wish to assign an address from the data area (data block) to a formal parameter of
an F-FC as an actual parameter, you have to use fully qualified DB access.
Note
Variable names in F-FBs/F-FCs can contain a maximum of 22 characters.
Note
Note that access to the input parameters in an F-FB/F-FC is read-only, while access to
the output parameters is write-only.
Use an in/out parameter if you wish to have both read and write access.
Note
When an F-FBD/F-LAD block is saved in the FBD/LAD Editor, only a local consistency
check is performed for the F-block. A safety program is not yet generated.
Note
Occasionally, certain networks that you have edited in F-FBD are represented in STL (for
example, upstream interconnections with edge memory bits and branches) when you try
to save the F-block. Such F-blocks cannot be saved. You must delete the STL network
and replace the upstream interconnection with your own networks, in which you direct the
upstream interconnection to a temporary variable. You can then use this temporary
variable as an address.
Note
For greater clarity, assign unique symbolic names to the F-FBs/F-FCs you have created.
These symbolic names appear in the "Details" view of SIMATIC Manager, in the "Safety
Program" dialog, and in the symbol table. Symbolic names are assigned in the same way
as in standard programming.
See also
Configuring the F-CPU (Page 26)
Overview of Access Protection (Page 45)
Differences between the F-FBD and F-LAD programming languages and the standard FBD
and LAD programming languages (Page 61)
Compiling Safety Program (Page 272)
F-DBs
Similarly to F-FBs or F-FCs, you can also create and edit F-DBs (with the F-DB
programming language) whose parameters can be read/write accessed within one F-runtime
group of the safety program.
The data types are checked during editing. Any errors detected are output in the FBD/LAD
Editor, same as when creating a standard user program.
Note
You must not use the DB numbers in the band of numbers you reserved for automatically
added F-data blocks ("F-data blocks" parameter in the object properties for the F-CPU; see
Chapter "Configuring the F-CPU").
Note
When an F-DB is saved in the FBD/LAD Editor, only a local consistency check is performed
for the F-block. A safety program is not yet generated.
Note
For greater clarity, assign unique symbolic names to the F-DBs you have created. These
symbolic names appear in the "Details" view of SIMATIC Manager, in the "Safety Program"
dialog, and in the symbol table. Symbolic names are assigned in the same way as in
standard programming.
Variable names in F-DBs can contain a maximum of 22 characters.
Options for Data Blocks: "Unlinked" and "DB is Write-Protected in the PLC"
Note
The available option "Unlinked" in the object properties for a DB must not be set for F-DBs
and instance DBs of F-blocks.
The available option "DB is write-protected in the PLC" in the object properties for a DB must
not be set for F-DBs and instance DBs of F-blocks.
If you have selected either of these options, the selection will be corrected when the safety
program is compiled.
See also
Creating and editing F-FB/F-FC (Page 78)
Know-How Protection
A block with know-how protection is a protected block that cannot be edited.
You can furnish user-created F-FBs, F-FCs, and F-DBs (except instance DBs) with know-
how protection.
The protected F-FBs/F-FCs/F-DBs can no longer be modified.
You can read the block properties of protected F-FBs/F-FCs/F-DBs, but the instruction
portion remains hidden.
Requirements
You have created F-FBs, F-FCs, or F-DBs whose know-how you want to protect. The F-
FBs/F-FCs/F-DBs you want to protect are not open in the FBD/LAD Editor.
3. Select the relevant check box for the F-FBs, F-FCs, and F-DBs in the "Know-how
protection" column.
Result: A dialog for creating a backup copy opens automatically for every F-FB/F-FC/F-
DB you want to protect.
Note
Assign the name to the backup copy explicitly, so that you can relate the F-FB/F-FC/F-DB
to the protected F-FB/F-FC/F-DB later (e.g., same name, comments regarding F-FB/F-
FC/F-DB).
Do not store the backup copy in the project containing the protected F-FB/F-FC/F-DB
(otherwise, a non-protected copy of the F-FB/F-FC/F-DB will be available).
If you want to store the backup copy in an F-library, make sure that the F-library is a user-
created F-library in S7 Distributed Safety. The FBD/LAD Editor displays only F-libraries
for S7 Distributed Safety.
Note
You cannot cancel the know-how protection of F-FBs/F-FCs/F-DBs.
See also
Custom F-Libraries (Page 265)
4.3.5 "Check Block Consistency" Function for User-Created F-FBs, F-FCs, and F-
DBs
4.3.7 "Store Write-Protected" Function for User-Created F-FBs, F-FCs, and F-DBs
"Rewiring" Function
You can use the STEP 7 "Rewiring" function for F-FBs and F-FCs in the offline safety
program.
After successful rewiring, an appropriate entry is made in the logbook of the safety program.
The automatic consistency tests that are performed when F-blocks are saved are not
performed for "Rewiring". A consistent safety program is not generated.
WARNING
"Rewiring" of F-blocks constitutes a change in the safety program and, thus, causes the
collective signature to change. For this reason, the safety program must undergo
acceptance testing again.
Requirements
You must have created your safety program.
Rules
WARNING
● F-blocks must not be called directly in an OB; rather, they must be inserted into one or
two F-runtime groups.
● For optimal use of local data, you must call the F-CALL blocks (the F-runtime groups)
directly in OBs (cyclic interrupt OBs, to the extent possible); you should not declare any
additional local data in these cyclic interrupt OBs.
● Within a cyclic interrupt OB, the F-CALL (the F-runtime group) should be executed before
the standard user program; that is, it should be at the very beginning of the OB, so that
the F-runtime group is always called at fixed time intervals, regardless of how long it
takes to process the standard user program.
● An F-CALL can only be called once. Multiple calls are not permitted and can cause the F-
CPU to go to STOP mode.
● The process input and output images from standard I/O and memory bits can be
accessed from more than one F-runtime group.
● F-FCs can generally be called in more than one F-runtime group.
Procedure
1. In SIMATIC Manager, select the Options > Edit Safety Program menu command. The
"Safety Program" dialog will appear. Activate the "F-Runtime Groups..." button to open
the "Edit F-Runtime Groups" dialog.
3. From the drop-down list, select the FC that you want to define as the F-CALL for the new
F-runtime group, or specify another FC. This FC is automatically created as soon as you
exit the "Edit F-Runtime Groups" dialog with "OK".
4. Define the F-program block of the F-runtime group by selecting the F-FB or F-FC from the
drop-down list that you want to define as the F-PB for the new F-runtime group (symbolic
entry possible). Only F-FBs/F-FCs without parameters can be specified. If the block to be
assigned is an F-block of type "FB", you must specify an instance DB (e.g., "DB10") for "I-
DB for F-program block" (symbolic entry possible). This I-DB is automatically created as
soon as you exit the "Edit F-Runtime Groups" dialog with "OK". The number of the I-DB
must not come from the range reserved in HW Config. If you specify an existing I-DB, it
must be suitable for the selected F-program block.
5. The F-CPU monitors the F-cycle time in the F-runtime group. For "Max. Cycle Time of F-
Runtime Group in ms", enter the maximum permissible time between two calls of this F-
runtime group (maximum of 120,000 ms); see Safety Engineering in SIMATIC S7 system
manual.
WARNING
The F-runtime group call interval is monitored relative to the maximum value; that is,
monitoring is performed to determine whether the call is executed often enough, but not
whether it is executed too often. For this reason, fail-safe timers must be implemented
using F-application blocks from the Distributed Safety F-library (V1) and not counters
(OB calls).
6. If this F-runtime group is to provide data to another F-runtime group, select an F-DB for
"DB for F-runtime group communication" from the drop-down list or specify another F-DB
(symbolic entry possible). This F-DB is automatically created as soon as you exit the "Edit
F-Runtime Groups" dialog with "OK".
After the "OK" button is activated, the entries in the "Edit F-Runtime Groups" dialog
undergo an internal validity check and are then applied.
Note
A DB for F-runtime group communication can be read- and write-accessed by the F-
runtime group for which you furnished the F-DB, while it can only be read-accessed by
the "receiver" F-runtime group.
Tip: You can improve performance by structuring your safety program in such a way that as
few data as possible are exchanged between the F-runtime groups.
Note
The data read from another F-runtime group are as up-to-date as they were when the F-
runtime group furnishing the data was last processed before the start of the F-runtime group
reading the data.
If the furnished data undergo multiple changes while the F-runtime group furnishing the data
is being processed, the F-runtime group reading the data always receives the last change.
Assignment of fail-safe values
After a startup of the F-system, fail-safe values are made available to the F-runtime group
having read access to data in the DB for F-runtime group communication of another F-
runtime group (for example, F-runtime group 2). The values you specified in the DB for F-
runtime group communication of F-runtime group 1 are made available as fail-safe values
(presetting of the DB for F-runtime group communication).
F-runtime group 2 reads the fail-safe values the first time it is called. The second time F-
runtime group 2 is called, it reads the latest data if F-runtime group 1 has been processed
completely between the two calls of F-runtime group 2. If F-runtime group 1 has not been
processed completely, F-runtime group 2 continues to read the fail-safe values until F-
runtime group 1 is completely processed.
The behavior is illustrated in the two figures below.
Reading data from F-runtime group 1 that has a longer OB cycle and lower priority than F-
runtime group 2
Reading of data from F-runtime group 1 that has a shorter OB cycle and higher priority than
F-runtime group 2
Note
If the F-runtime group whose DB for F-runtime group communication supplies the data to be
read is not processed (F-CALL of the F-runtime group is not called in an OB or FB), the F-
CPU goes to STOP mode. One of the following diagnostic events is then entered in the
diagnostic buffer of the F-CPU:
• Error in safety program: cycle time exceeded
• Number of the relevant F-CALL block (of F-runtime group that is not processed)
• Current cycle time in ms: "0"
See also
Creating and Editing F-DB (Page 81)
Procedure for Defining an F-Runtime Group (Page 88)
Note
If you want to delete your safety program, delete all yellow-highlighted F-blocks offline in
SIMATIC Manager.
See also
Procedure for Defining an F-Runtime Group (Page 88)
See also
Procedure for Defining an F-Runtime Group (Page 88)
Introduction
WARNING
When an F-CPU is switched from STOP to RUN mode, the standard user program starts
up in the normal way. When the safety program is started up, all data blocks with an F-
attribute are initialized with the values from the load memory - as is the case with a cold
restart. This means that saved error information is lost.
The F-system automatically reintegrates the F-I/O.
A data handling error or an internal error can also trigger a startup of the safety program
with the values from the load memory. If your process does not allow such a startup, you
must program a restart/startup protection in the safety program: Process data outputs must
be blocked until manually enabled. These outputs must not be enabled until it is safe to do
so and faults have been corrected.
See also
F-I/O DB (Page 101)
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Implementing User Acknowledgment in the Safety Program of a I-Slave F-CPU (Page 124)
Overview
This section describes how to access the F-I/O and the special characteristics you must
consider when programming this access.
WARNING
Due to the special safety protocol, the F-I/O occupy a larger area of the process image than
is required for the channels that are actually present on the F-I/O. To find out the area of
the process image where the channels (user data) are stored, refer to the relevant manuals
for the F-I/O. When the process image is accessed in the safety program, only the channels
that are actually present are permitted to be accessed.
Note that for certain F-I/O (such as S7-300 F-SMs and ET 200S fail-safe modules), a "1oo2
evaluation of the sensors" can be specified. To find out which of the channels combined by
the "1oo2 evaluation of the sensors" you can access in the safety program, refer to the
relevant manuals for the F-I/O.
Signal Charts
The signal charts presented in the "Signal Chart ..." figures in the following sections
represent typical signal charts for the indicated behavior.
Actual signal charts and, in particular, the relative position of the status change of individual
signals can deviate from the given signal charts within the scope of known distortion for
cyclic program execution, depending on the following:
● Which F-I/O are being used
(F-I/O with inputs, F-I/O with outputs, F-I/O with inputs and outputs, S7-300 F-SMs,
ET200S F-modules, ET 200eco F-modules, ET 200pro F-modules, or fail-safe DP
standard slaves/standard I/O devices, version of PROFIsafe bus profile for the F-I/O and
F-CPU)
● The cycle time of the OB in which the associated F-runtime group is called
● The target rotation time of the PROFIBUS DP or the update time of the PROFINET IO
Note
The signal charts refer to the status of signals in the user's safety program. If the signals
are evaluated in the standard user program before or after the safety program is called in
the same OB, the status change of the signals can be displaced by one cycle.
Contrary to what is shown in the signal charts, status changes between process data and
fail-safe values that are transmitted to the fail-safe outputs ("To Outputs" signal chart) can
occur before the status change of the associated QBAD signal, if necessary. The timing
of the status change is dependent on whether F I/O with outputs or F I/O with inputs and
outputs were used.
See also
Structure of the Safety Program in S7 Distributed Safety (Page 57)
F-I/O Access for Safety-Related I-Slave-Slave Communication (Page 170)
WARNING
For F-I/O with inputs, the fail-safe value "0" provided in the PII must be further processed
for digital channels of data type BOOL in the safety program.
When passivation occurs in a F-I/O module with outputs, the F-system transfers fail-safe
values (0) to the fail-safe outputs instead of the output values in the PIQ provided by the
safety program. The F-system overwrites the associated PIQ with fail-safe values (0).
Note
Note that channel-level passivation is possible for the faulty channel in the event of a
channel fault in the F-I/O. If configured accordingly in HW Config, the fail-safe value (0) is
output for the affected channel. If you have configured channel-level passivation for the
F-I/O, the relevant channels are reintegrated once the fault is corrected; any faulty
channels remain passivated.
See also
Configuring the F-I/O (Page 35)
5.3 F-I/O DB
Introduction
An F-I/O DB is automatically created for each F-I/O during compilation in HW Config. This F-
I/O DB contains variables that you can evaluate in the safety program, or that you can or
must describe (except for the DIAG variable, which can only be evaluated in the standard
user program). The initial values or actual values of the variables cannot be changed directly
in the F-I/O DB because the F-I/O DB is know-how protected.
Use of Access to an F-I/O DB
You access variables of the F-I/O DB for the following reasons:
● For reintegration of F-I/O after communication errors, F-I/O faults, or channel faults
● If you want to passivate the F-I/O as a function of particular states of the safety program
(for example, group passivation)
● For reassignment of parameters for fail-safe DP standard slaves/ standard I/O devices
● If you want to evaluate whether fail-safe values or process data should be output
Variables of an F-I/O DB
The following table presents the variables of an F-I/O DB:
PASS_ON
The PASS_ON variable allows you to enable passivation of an F-I/O, for example, as a
function of particular states in your safety program.
Using the PASS_ON variable in the F-I/O DB, you can only passivate the entire F-I/O;
channel-level passivation is not possible.
As long as PASS_ON equals 1, the associated F-I/O are passivated.
ACK_NEC
If an F-I/O fault is detected by the F-I/O, the relevant F-I/O are passivated. If channel faults
are detected, the relevant channels are passivated if channel-level passivation is configured.
If passivation of the entire F-I/O is configured, all channels of the relevant F-I/O are
passivated. Once the F-I/O fault or channel fault has been eliminated, the relevant F-I/O are
reintegrated, depending on ACK_NEC:
● With ACK_NEC = 0, you can program automatic reintegration.
● With ACK_NEC = 1, you can program reintegration through a user acknowledgment.
WARNING
Note
By default, ACK_NEC = 1 after creation of the F-I/O DB. If you do not require automatic
reintegration, you do not need to describe ACK_NEC.
ACK_REI
When the F-system detects a communication error or an F-I/O fault for an F-I/O, the relevant
F-I/O are passivated. If channel faults are detected, the relevant channels are passivated if
channel-level passivation is configured. If passivation of the entire F-I/O is configured, all
channels of the relevant F-I/O are passivated. Reintegration of the F-I/O/channels of the F-
I/O after the fault has been eliminated requires a user acknowledgment with a positive edge
at variable ACK_REI of the F-I/O DB:
● After every communication error
● After F-I/O faults or channel faults when ACK_NEC = 1 is assigned
Reintegration after channel faults reintegrates all channels whose faults were eliminated.
Acknowledgment is only possible when ACK_REQ = 1.
In your safety program, you must provide for a user acknowledgment by means of ACK_REI
for each F-I/O.
WARNING
For the user acknowledgement, you must interconnect the ACK_REI variable of the F-I/O
DB with a signal generated by an operator input. An interconnection with an automatically
generated signal is not allowed.
Note
Alternatively, you can use the FB 219 "F_ACK_GL" F-application block to carry out
reintegration of the F-I/O following communication errors or F-I/O/channel faults (see
Chapter "FB 219 "F_ACK_GL: Global Acknowledgment of all F-I/O of an F-Runtime Group").
IPAR_EN
The IPAR_EN variable corresponds to the iPar_EN_C variable in the PROFIsafe bus profile,
PROFIsafe Specification V1.20 and higher.
Fail-safe DP standard slaves/standard I/O devices
To find out when this variable has to be set or reset when parameters of fail-safe DP
standard slaves are reassigned, consult the PROFIsafe specification V1.20 or higher or the
documentation for the fail-safe DP standard slave/standard I/O device.
WARNING
Note that IPAR_EN = 1 does not trigger passivation of the relevant F-I/O.
If passivation should continue to occur when IPAR_EN = 1, you must also set variable
PASS_ON = 1.
PASS_OUT/QBAD/QBAD_I_xx/QBAD_O_xx
If you have configured channel-level passivation for the F-I/O, PASS_OUT = 1 and
QBAD = 1 indicate that at least one channel was passivated. QBAD_I_xx and QBAD_O_xx
indicate the input and output channels that were passivated.
If you have configured passivation of the entire F-I/O, the PASS_OUT = 1 and QBAD = 1
variables indicate that the entire F-I/O is passivated.
The F-system sets PASS_OUT, QBAD, QBQD_I_xx, and QBAD_O_xx = 1, as long as fail-
safe 0 values are used instead of process data for the associated F-I/O or individual
channels of the F-I/O.
However, if you enable passivation by setting PASS_ON = 1, only QBAD, QBAD_I_xx, and
QBAD_O_xx = 1 is set. PASS_OUT does not change value in the event of passivation is
enabled with PASS_ON = 1. For this reason, PASS_OUT can be used for group passivation
of additional F-I/O.
ACK_REQ
When the F-system detects a communication error or an F-I/O fault or channel fault for an
F-I/O, the relevant F-I/O or individual channels of the F-I/O are passivated. ACK_REQ = 1
signals that user acknowledgment is required for reintegration of the relevant F-I/O or
channels of the F-I/O.
The F-system sets ACK_REQ = 1 as soon as the fault has been eliminated and user
acknowledgment is possible. For channel-level passivation, the F-system sets ACK_REQ = 1
as soon as the channel fault is corrected. User acknowledgement is possible for this fault.
Once acknowledgment has occurred, the F-system resets ACK_REQ to 0.
Note
For F-I/O with outputs, acknowledgment after F-I/O faults or channel faults may only be
possible minutes after the fault has been eliminated due to necessary test signal inputs (see
F-I/O manuals).
IPAR_OK
The IPAR_OK variable corresponds to the iPar_OK_S variable in the PROFIsafe bus profile,
PROFIsafe Specification V1.20 and higher.
Fail-safe DP standard slaves/standard I/O devices
To find out how to evaluate this variable when parameters of fail-safe DP standard slaves or
standard I/O devices are reassigned, consult the PROFIsafe specification V1.20 or higher or
the documentation for the fail-safe DP standard slave/standard I/O device.
HART communication with SM 336; F-AI 6 x 0/4 ... 20 mA HART
See Section "IPAR_EN"
DIAG
The DIAG variable provides non-fail-safe information (1 byte) about errors or faults that have
occurred for service purposes. You can read out this information by means of operator
control and monitoring systems or, if applicable, you can evaluate it in your standard user
program. DIAG bits are saved until you perform an acknowledgment at ACK_REI or until
automatic reintegration takes place.
Note
Access to this variable in the safety program is not permitted.
Structure of DIAG
See also
Configuring the F-I/O (Page 35)
Passivation and Reintegration of F-I/O after F-I/O Faults and Channel Faults (Page 113)
Group passivation (Page 118)
See also
Assigning Symbolic Names (Page 44)
Reintegration of F-I/O
Reintegration of the F-I/O, that is, the provision of process data in the PII or the transfer of
process data provided in the PIQ to the fail-safe outputs, takes place automatically, starting
at the earliest with the second cycle of the F-run-time group after startup of the F-system;
this happens regardless of the setting at variable ACK_NEC. Depending on the F-I/O you are
using and the cycle time of the F-run-time group and PROFIBUS DP/PROFINET IO, several
cycles of the F-run-time group can elapse before reintegration occurs.
If communication between the F-CPU and F-I/O takes longer to establish than the monitoring
time set in the object properties for the F-I/O in HW Config, automatic reintegration does not
take place.
Signal Chart for Passivation and Reintegration of F-I/O after F-System Startup
WARNING
If you do not want automatic reintegration to take place after startup of the F-system, you
must program startup protection.
See also
Programming Startup Protection (Page 95)
Passivation and Reintegration of F-I/O after Communication Errors (Page 111)
Reintegration of F-I/O
Reintegration of the relevant F-I/O, that is, provision of process data in the PII or transfer of
process data provided in the PIQ to the fail-safe outputs, takes place only when the following
occurs:
● All communication errors have been eliminated and the F-system has set ACK_REQ = 1
● A user acknowledgment with a positive edge has occurred:
– On the ACK_REI variable of the F-I/O DB or
– On the ACK_REI_GLOB input of the FB 219 "F_ACK_GL" F-application block (see
Chapter 9.1.2.18)
Signal Chart for Passivation and Reintegration of F-I/O after Communication Errors
See also
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Implementing User Acknowledgment in the Safety Program of a I-Slave F-CPU (Page 124)
Reintegration of F-I/O
Reintegration of the relevant F-I/O or the relevant channels of the F-I/O, that is, provision of
process data in the PII or transfer of process data provided in the PIQ to the fail-safe
outputs, takes place only when the following occurs:
● All F-I/O faults or channel faults have been eliminated.
If you have configured channel-specific passivation for the F-I/O, the relevant channels are
reintegrated once the fault is corrected; any faulty channels remain passivated.
Reintegration takes place as follows, depending on your setting for ACK_NEC:
● When ACK_NEC = 0, automatic reintegration takes place as soon as the F-system
detects that the fault has been eliminated. For F-I/O with inputs, reintegration takes place
right away. For F-I/O with outputs or F-I/O with inputs and outputs, depending on the F-
I/O you are using, reintegration can take place several minutes after completion of
necessary test signal inputs, which are used by the F-I/O to determine that the fault has
been eliminated.
● With ACK_NEC = 1, reintegration takes place only as a result of a user acknowledgement
with a positive edge on the ACK_REI variable of the F-I/O DB or on the ACK_REI_GLOB
input of the FB 219 "F_ACK_GL" F-application block. Acknowledgment can be made as
soon as the F-system detects that the fault has been eliminated and it has set
ACK_REQ = 1.
WARNING
Following a power failure of the F-I/O lasting shorter than the specified monitoring time
for the F-I/O in HW Config (see Safety Engineering in SIMATIC S7 system manual),
automatic reintegration can occur regardless of your setting for ACK_NEC, as described
for the case when ACK = 0.
If for this case, automatic reintegration is not permissible for the relevant process, you
must program startup protection by evaluating variables QBAD or QBAD_I_xx and
QBAD_O_xx or PASS_OUT.
In the event of a power failure of the F-I/O lasting longer than the specified monitoring
time for the F-I/O in HW Config, the F-system detects a communication error.
Signal Sequence for Passivation and Reintegration of F-I/O after F-I/O Faults and Channel Faults
When ACK_NEC = 0 (for Passivation of Entire F-I/O after Channel Faults)
Signal Sequence for Passivation and Reintegration of F-I/O after F-I/O Faults and Channel Faults
when ACK_NEC = 1 (for Passivation of Entire F-I/O after Channel Faults)
For the signal sequence for passivation and reintegration of the F-I/O after F-I/O faults or
channel faults when ACK_NEC = 1 (default), see Chapter "Passivation and Reintegration of
the F-I/O after Communication Errors".
Signal Chart for Passivation and Reintegration of F-I/O after Channel Faults when ACK_NEC = 1 (for
channel-specific passivation)
See also
Configuring the F-I/O (Page 35)
Programming Startup Protection (Page 95)
Passivation and Reintegration of F-I/O after Communication Errors (Page 111)
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Implementing User Acknowledgment in the Safety Program of a I-Slave F-CPU (Page 124)
Reintegration of F-I/O
Reintegration of F-I/O passivated by group passivation takes place automatically, if
reintegration of the F-I/O that triggered the group passivation takes place (either
automatically or through user acknowledgment) (PASS_OUT = 0).
Note
If you use the option of user acknowledgment by means of an acknowledgment key, and a
communication error, an F-I/O fault, or a channel fault occurs at the F-I/O to which the
acknowledgment key is connected, then it will not be possible to acknowledge the
reintegration of this F-I/O.
This "blocking" can only be remedied by a STOP-to-RUN transition of the F-CPU.
Consequently, it is recommended that you also provide for an acknowledgment by means of
an operator control and monitoring system for the acknowledgment for reintegration of an F-
I/O to which an acknowledgment key is connected.
Procedure for Programming User Acknowledgment by Means of an Operator Control and Monitoring
System
1. Call the "F_ACK_OP" F-application block in your safety program. The acknowledgment
signal for evaluating user acknowledgments is provided at output OUT of F_ACK_OP.
2. On your operator control and monitoring system, set up a field for manual entry of an
"acknowledgment value" of "6" (first step in acknowledgment) and an "acknowledgment
value" of "9" (second step in acknowledgment) in the instance DB of F_ACK_OP (input
IN).
or
Assign function key 1 to transfer an "acknowledgment value" of "6" (first step in
acknowledgment) and function key 2 to transfer an "acknowledgment value" of "9"
(second step in acknowledgment) in the instance DB of F_ACK_OP (input IN).
3. Optional: On your operator control and monitoring system, evaluate input Q in the
instance DB of F_ACK_OP to indicate the time frame within which the second step in
acknowledgment must occur or to indicate that the first step in acknowledgment has
already occurred.
If you should only be able to perform a user acknowledgment from one programming device
or PC using the "Monitor/Modify Variable" function, and you do not want to deactivate safety
mode, then you must transfer an address (memory word) at input IN when calling the
F_ACK_OP F-block. You can then transfer "acknowledgment values" "6" and "9" on the
programming device or PC by modifying the memory word. The memory word must not be
described by the program.
Note
If you interconnect input IN to a memory word, it may only be an input at F_ACK_OP in one
F-runtime group.
WARNING
The two acknowledgment steps must not be triggered by one single operation, for example,
by automatically storing them along with the time conditions in one program and using one
function key to trigger them.
The two separate acknowledgement steps also prevents your non-fail-safe operator control
and monitoring system from erroneously triggering an acknowledgement.
WARNING
If your operator control and monitoring system can access multiple F-CPUs that use
F_ACK_OP for fail-safe acknowledgment, or if you have networked operator control and
monitoring systems and F-CPUs (with F_ACK_OP F-application blocks), you must be sure
that the correct F-CPU is in fact being addressed before executing the two
acknowledgment steps:
• In each F-CPU, store a network-wide unique name for the F-CPU in a DB of your
standard user program.
• In your operator control and monitoring system, set up a field from which you can read
out the F-CPU name from the DB online before executing the two acknowledgment
steps.
• Optional: In your operator control and monitoring system, set up a field to permanently
store the F-CPU name. Then, you can determine whether the intended F-CPU is being
addressed by simply comparing the F-CPU name read out online with the permanently
stored name.
WARNING
2. Optional: Evaluate the QBAD or QBAD_I_xx and QBAD_O_xx or DIAG variables in the
respective F-I/O DB to trigger an indicator light, if applicable, in the event of an error,
and/or generate error messages on your operator control and monitoring system in your
standard user program by evaluating QBAD or QBAD_I_xx and QBAD_O_xx or DIAG;
these messages can be evaluated before performing the acknowledgment operation.
Alternatively, you can evaluate the diagnostic buffer of the F-CPU.
3. Optional: Evaluate the ACK_REQ variable in the respective F-I/O DB, for example, in the
standard user program or on the operator control and monitoring system, to query or to
indicate whether user acknowledgment is required.
4. Assign the input of the acknowledgment key or the OUT output of F_ACK_OP to the
ACK_REI variable in the respective F-I/O DB or the ACK_REI_GLOB input of the FB 219
"F_ACK_GL" F-application block (see above).
See also
F-I/O DB (Page 101)
FB 187 "F_ACK_OP": Fail-Safe Acknowledgment (Page 198)
1. User Acknowledgment by Means of an Operator Control and Monitoring System that You Can Use
to Access the F-CPU of the I-Slave
To implement a user acknowledgment by means of an operator control and monitoring
system that you can use to access the F-CPU of the I-slave, you need the F_ACK_OP F-
application block from the Distributed Safety F-library (V1).
Programming Procedure
Follow the procedure described in Chapter "Procedure for Programming User
Acknowledgment by Means of an Operator Control and Monitoring System" under
"Implementing User Acknowledgment in Safety Program of F-CPU of DP Master".
From your operator control and monitoring system, you can then access the instance DB of
F_ACK_OP in the I-slave directly.
Note
In the event of a communication error, F-I/O fault, or channel fault in the F-I/O to which the
acknowledgment key is connected, an acknowledgment for reintegration of this F-I/O is no
longer possible.
This "block" can only be removed by a STOP-to-RUN transition of the F-CPU of the I-slave.
Consequently, it is recommended that you also provide for an acknowledgment by means of
an operator control and monitoring system that you can use to access the F-CPU of the I-
slave for the acknowledgment for reintegration of an F-I/O to which an acknowledgment key
is connected (See 1).
3. User Acknowledgment by Means of Acknowledgment Key at an F-I/O with Inputs Assigned to the
F-CPU of the DP Master
If you want to use the acknowledgment key that is assigned to the F-CPU on the DP master
for a user acknowledgment in the safety program of the F-CPU of an I-slave, you must
transmit the acknowledgment signal from the safety program in the F-CPU of the DP master
to the safety program in the F-CPU of the I-slave by means of safety-related master-I-slave
communication.
Programming Procedure
1. Call the F_SENDDP F-application block in the safety program in the F-CPU of the DP
master.
2. Call the F_RCVDP F-application block in the safety program in the F-CPU of the I-slave.
3. Supply an input SD_BO_xx of the F_SENDDP block with the input of the acknowledgment
key.
4. The acknowledgment signal for evaluating user acknowledgments is now available at the
corresponding output RD_BO_xx of the F_RCVDP.
The acknowledgment signal can now be read in the program sections in which further
processing is to take place with fully qualified access directly in the associated instance
DB (for example, "Name F_RCVDP1".RD_BO_02). To enable this, you must first assign a
symbolic name ("Name F_RCVDP1" in the example) for the instance DB of F_RCVDP in
the symbol table.
5. Supply the corresponding input SUBBO_xx of the F_RCVDP with the fail-safe value
"RLO0," so that an unintentional user acknowledgment is not triggered before
communication is established the first time after startup of the sending and receiving
F-system, or in the event of a safety-related communication error. RLO 0 is available in
the F-shared-DB. At input SUBBO_xx, enter "F_GLOBDB".RLO0 fully qualified.
Note
If a communication error, an F-I/O fault, or a channel fault occurs at the F-I/O to which the
acknowledgment key is connected, then an acknowledgment for reintegration of this
F-I/O will no longer be possible.
This "block" can only be removed by a STOP-to-RUN transition of the F-CPU of the DP
master.
Consequently, it is recommended that you also provide for an acknowledgment by means
of an operator control and monitoring system that you can use to access the F-CPU of
the DP master for the acknowledgment for reintegration of the F-I/O to which an
acknowledgment key is connected.
If a safety-related master-I-slave communication error occurs, the acknowledgment signal
cannot be transmitted, and an acknowledgment for reintegration of safety-related
communication is no longer possible.
This "block" can only be removed by a STOP-to-RUN transition of the F-CPU of the
I-slave.
Consequently, it is recommended that you also provide for an acknowledgment by means
of an operator control and monitoring system that you can use to access the F-CPU of
the I-slave for the acknowledgment for reintegration of the safety-related communication
for transmission of the acknowledgment signal (see 1).
See also
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Overview of safety-related communication (Page 131)
FB 187 "F_ACK_OP": Fail-Safe Acknowledgment (Page 198)
FB 223 "F_SENDDP" and FB 224 "F_RCVDP": Send and Receive Data via PROFIBUS DP
(Page 242)
Data Transfer from the Safety Program to the Standard User Program
The standard user program can read out all data of the safety program, for example, through
symbolic (fully qualified) accesses to the following:
● Instance DBs of the F-FBs
● F-DBs (for example, "Name F_DB".Signal_1)
● Process input image and process output image of F-I/O (for example,
"Emergency_Stop_Button_1" (I 5.0) )
Note
The process input image for F-I/O is updated not only at the start of an F runtime group
prior to execution of the F-program block, but also by the standard operating system.
To find out the standard operating system update times, refer to "Process image of
inputs/outputs" in the STEP 7 Online Help. With F-CPUs that support partial process
images, also bear in mind the update times when using partial process images. For this
reason, when accessing the process input image for F-I/O in the standard user program,
you can obtain different values than in the safety program. The differing values can occur
due to:
• Different update times
• Use of fail-safe values in the safety program
To obtain the same values in the standard user program as in the safety program, you
may access the process input image in the standard program only after execution of an
F-runtime group. In this case, you can also evaluate the QBAD or QBAD_I_xx variable in
the associated F-I/O DB in the standard user program to find out whether the process
input image is receiving fail-safe values (0) or process data. When using partial process
images, make sure as well that the process image is not updated by the standard
operating system or by SFC 26 UPDAT_PI between execution of an F-runtime group (F-
CALL) and evaluation of the process input image in the standard user program.
F-Shared DB
The following information can be read out in the F-shared DB in the standard user program
or on an operator control and monitoring system:
● Operating mode: safety mode or deactivated safety mode ("MODE" variable)
● Error information "Error occurred when executing safety program" ("ERROR" variable)
● Collective signature of the safety program ("F_PROG_SIG" variable)
● Compilation date of the safety program ("F_PROG_DAT" variable, DATE_AND_TIME
data type)
You use fully qualified access to access these variables (e.g., "F_GLOBDB".MODE). The
number and symbolic name of the F-shared DB and the absolute addresses of variables are
indicated in the printout of the safety program.
Bit Memory
You can also write to memory bits in the safety program to enable intermediate results of the
safety program to be used by the standard user program without having to pass through F-
data blocks. However, these memory bits must not be read in the safety program itself.
See also
Differences between the F-FBD and F-LAD programming languages and the standard FBD
and LAD programming languages (Page 61)
WARNING
Because these data are not generated safely, you must carry out additional
process-specific validity checks in the safety program to ensure that no dangerous states
can arise. If a memory bit or input of standard I/O is used in both F-runtime groups, you
must perform the validity check separately in each F-runtime group.
To facilitate the checks, all signals from the standard user program that are evaluated in the
safety program are included when the safety program is printed out.
Note
Data from the standard user program (bit memory or PII of standard I/O) cannot be used for
edge memory bits of the RLO Edge Detection (N, P) or Address Edge Detection (NEG, POS)
instructions or for the address of the Flip Flop (SR, RS) instructions, since these data are
read and written to by the instruction.
Note
When F-blocks are being edited in F-FBD/F-LAD in the FBD/LAD Editor, all addresses that
are not fail-safe are shown by default with a yellow background.
Reading Data from the Standard User Program When Changes to the Data are Possible during
Runtime of an F-Runtime Group
You must use dedicated memory bits if you want to read data from the standard user
program (bit memory or PII of standard I/O) in the safety program and these data can be
changed by the standard user program or an operator control and monitoring system during
runtime of the F-runtime group in which the data are read - for example, because your
standard user program is being executed by a higher priority cyclic interrupt. You must write
the data from the standard user program to these memory bits immediately before calling the
F-runtime group. You can then only access these memory bits in the safety program.
Note, too, that clock memory that you defined when configuring your F-CPU (in HW Config,
in the object properties for the F-CPU) can change during runtime of the F-runtime group,
since clock memory runs asynchronously to the F-CPU cycle.
Note
The F-CPU can go to STOP if the information above is not observed. One of the following
diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety Program: internal CPU fault; internal error information: 404"
See also
Differences between the F-FBD and F-LAD programming languages and the standard FBD
and LAD programming languages (Page 61)
Compiling Safety Program (Page 272)
Introduction
This section provides an overview of the following options for safety-related communication
in S7 Distributed Safety F-systems:
● Safety-related I-slave-slave communication (via PROFIBUS DP)
Safety-related CPU-CPU communication:
● Safety-related master-master communication (via PROFIBUS DP)
● Safety-related master-I-slave communication (via PROFIBUS DP)
● Safety-related I-slave-I-slave communication (via PROFIBUS DP)
● Safety-related IO controller-IO controller communication (via PROFINET IO)
● Safety-related communication by means of S7 connections (via Industrial Ethernet)
● Safety-related communication between S7 Distributed Safety and S7 F Systems
Note
If you are using an IE/PB Link, you must take this into account when
configuring the F-specific monitoring times and when calculating the maximum response
time of your F-system (see also Excel File for Response Time Calculation s7cotib.xls for S7
Distributed Safety).
Note that this Excel file does not support all of the conceivable configurations.
DP/DP coupler
Safety-related communication between safety programs of the F-CPUs of DP masters takes
place via a DP/DP coupler (Order No. 6ES7158-0AD01-0XA0).
Each F-CPU is linked to the DP/DP coupler by means of its PROFIBUS DP interface.
Note
Switch the data validity indicator "DIA" on the DIP switch of the DP/DP coupler to "OFF".
Otherwise, safety-related CPU-CPU communication is not possible.
Requirements
You have created two stations with one DP master system each in HW Config.
5. Select the first universal module, and select the Edit > Object Properties menu command.
The object properties dialog appears.
6. In the object properties for the first universal module, select "Out input" as the I/O type.
7. Enter the associated values for the output data address area. In our example, enter "16"
as "Start Address", "12" as "Length", "Byte" as "Unit", and "Total Length" as "Consistent".
8. Enter the associated values for the input data address area. In our example, enter "16" as
"Start Address", "6" as "Length", "Byte" as "Unit", and "Total Length" as "Consistent".
9. Click "OK" to confirm.
10.Select the second universal module, and select the Edit > Object Properties menu
command.
The object properties dialog appears.
11.In the object properties for the second universal module, select "Out input" as the I/O
type.
12.Enter the associated values for the output data address area. In our example, enter "28"
as "Start Address", "6" as "Length", "Byte" as "Unit", and "Total Length" as "Consistent
over".
13.Enter the associated values for the input data address area. In our example, enter "28" as
"Start Address", "12" as "Length", "Byte" as "Unit", and "Total Length" as "Consistent
over".
14.Click "OK" to confirm. This completes the configuration of the master-master
communication for F-CPU 1.
Perform steps 1 to 14 for F-CPU 2. Note that you have to adjust the addresses
accordingly (see figure in Chapter "Configuring the Address Areas (Safety-Related
Master-Master Communication)".
Note
Make sure that the values you assign for the start addresses of the output and input data
address areas are identical.
Always select the "Consistent over total length" option for all input and output data
address areas.
Additional Information
The DP/DP coupler is described in the DP/DP Coupler manual.
Safety-related communication makes use of the F-application blocks F_SENDDP for sending
and F_RCVDP for receiving. They can be used to transfer a fixed amount of fail-safe data of
data types BOOL and INT in a fail-safe manner.
You can find these F-application blocks in the F-application blocks block container in the
Distributed Safety F-library (V1). The F_RCVDP must be called at the start of the F-PB. The
F_SENDDP must be called at the end of the F-PB.
Note that the send signals are sent only after the F_SENDDP call at the end of the relevant
F-runtime group execution.
For a detailed description of the F_SENDDP and F_RCVDP F-application blocks, refer to
Chapter "FB 223 "F_SENDDP" and FB 224 "F_RCVDP": Sending and Receiving Data via
PROFIBUS DP".
See also
FB 223 "F_SENDDP" and FB 224 "F_RCVDP": Send and Receive Data via PROFIBUS DP
(Page 242)
Requirements
The following requirements must be met prior to programming:
● The address areas for input and output data for the DP/DP coupler must be configured in
HW Config.
● Both CPUs must be configured as F-CPUs:
– "CPU contains safety program" option must be selected
– The password for the F-CPU must be entered
Programming Procedure
1. In the safety program from which data are to be sent, call the F_SENDDP F-application
block for sending at the end of the F-PB.
2. In the safety program in which data are to be received, call the F_RCVDP F-application
block for receiving at the start of the F-PB.
3. Assign the start addresses of the output and input data address areas of the DP/DP
coupler configured in HW Config to the respective LADDR inputs.
You must carry out this assignment for every communication connection for each of the
F-CPUs involved.
4. Assign the value for the respective address association to the DP_DP_ID inputs. This
establishes the association between an F_SENDDP in one F-CPU and an F_RCVDP in
the other F-CPU: The associated fail-safe blocks receive the same value for DP_DP_ID.
WARNING
The value for each address association (input parameter DP_DP_ID; data type: INT) is
user-defined; however, it must be unique from all other safety-related communication
connections in the network.
Note
A separate instance DP must be used for each call of an F SENDDP or F_RCVDP.
The input and output parameters of the F_RCVDP must not be supplied with local data of
the F-program block.
You must not use an actual parameter for an output parameter of an F_RCVDP, if it is
already being used for an input parameter of the same F_RCVDP call or another
F_RCVDP or F_RCVS7 call. The F-CPU can go to STOP if this is not observed. One of
the following diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
5. Provide the SD_BO_xx inputs of the F_SENDDP with the send signals. To cut down on
intermediate signals when transferring block parameters, you can write the value directly
to the instance DB of the F_SENDDP using symbolic, fully qualified access (for example,
"Name F_SENDDP1".SD_BO_02) before calling the F-SENDDP.
6. Supply the RD_BO_xx outputs of the F-RCVDP with the signals that you want to process
further in other program sections or use fully qualified access to read the received signals
directly in the associated instance DB in the program sections to be processed further (for
example, "Name F_RCVDP1".RD_BO_02).
7. Provide the SUBBO_xx and SUBI_xx inputs of the F_RCVDP with the fail-safe values that
are to be output by F_RCVDP in place of the process data until communication is
established for the first time after startup of the sending and receiving F-systems or in the
event of an error in safety-related communication.
– Specification of constant fail-safe values:
For data of data type INT, you can enter constant fail-safe values directly as constants
at input SUBI_xx. If you want to specify constant fail-safe values for data of data type
BOOL, use variables "RLO0" or "RLO1" from the F-shared DB. Then, at input
SUBBO_xx, enter "F_GLOBDB".RLO0 with fully qualified access if you want to specify
a fail-safe value of "0" and "F_GLOBDB".RLO1 if you want to assign a fail-safe value
of "1".
– Specification of dynamic fail-safe values:
If you want to specify dynamic fail-safe values, define a variable that you can change
dynamically through your safety program in an F-DB and declare this variable with
fully qualified access at input SUBI_xx or SUBBO_xx.
WARNING
Note that your safety program for dynamically changing a variable for a dynamic fail-
safe value can only be processed after the call of the F_RCVDP, because prior to the
F_RCVDP call there can be no network in the F-PB and at most there can be one
other F_RCVDP. You must therefore assign appropriate initial/actual values for these
variables to be output by F_RCVDP in the first cycle after a startup of the F-system.
8. Configure the TIMEOUT inputs of the F_RCVDPs and F_SENDDPs with the required
monitoring time.
WARNING
It can be ensured (from a fail-safe standpoint) that a signal level to be transferred will be
captured on the sender side and transferred to the receiver only if the signal is pending
for at least as long as the assigned monitoring time (TIMEOUT).
For information on calculating the monitoring times, refer to the Safety Engineering in
SIMATIC S7 system manual.
9. Optional: Evaluate the ACK_REQ output of the F_RCVDP, for example, in the standard
user program or on the operator control and monitoring system in order to query or to
indicate whether user acknowledgment is required.
10.Provide the ACK_REI input of the F_RCVDP with the signal for the acknowledgment for
reintegration.
11.Optional: Evaluate the SUBS_ON output of the F_RCVDP or the F_SENDDP in order to
query whether the F_RCVDP is outputting the fail-safe values assigned at the SUBBO_xx
and SUBI_xx inputs of the F_RCVDP.
12.Optional: Evaluate the ERROR output of the F_RCVDP or the F_SENDDP, for example,
in the standard user program or on the operator control and monitoring system in order to
query or to indicate whether a communication error has occurred.
13.Optional: Evaluate the SENDMODE output of the F_RCVDP in order to query whether the
F-CPU with the associated F_SENDDP is in deactivated safety mode.
WARNING
If the F-CPU with the associated F_SENDDP is in deactivated safety mode, you can no
longer assume that the data received from this F-CPU were generated safely. You must
then implement organizational measures such as operation monitoring and manual
safety shutdown to ensure safety in those portions of the system that are affected by the
received data. Alternatively, you must output fail-safe values instead of the received
data in the F-CPU with the F_RCVDP by evaluating SENDMODE.
See also
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Deactivating Safety Mode (Page 304)
Note
If the data quantities to be transmitted exceed the capacity of the F_SENDDP/F_RCVDP
block pair, a second (or third) F_SENDDP/F_RCVDP call can be used. This requires
configuration of an additional connection via the DP/DP coupler. Whether or not this is
possible with one single DP/DP coupler depends on the capacity restrictions of the DP/DP
coupler.
Introduction
Safety-related communication between the safety program of the F-CPU of the DP master
and the safety program(s) of the F-CPU(s) of one or more I-slaves takes place over master-I-
slave connections, as in standard systems.
You do not need any additional hardware for the master-I-slave communication.
You configure the following in the object properties for the I-slave:
● A local address (I-slave) and a partner address (DP master) for sending data to the DP
master
● A local address (I-slave) and a partner address (DP master) for receiving data from the
DP master
You assign the configured addresses to the LADDR parameter of the corresponding
F_SENDDP and F_RCVDP F-application blocks in the safety programs.
Note
We recommend that you use addresses outside the process image as the local and partner
addresses, since the process image should be reserved for the address areas of modules.
Requirements
You have created a project in STEP 7.
9. In the next dialog, make the following entries for the receive connection from the DP
master for our example:
– For "Mode: F-MS-R" (receive via fail-safe master-I-slave communication)
– For "DP partner (sender): Address (LADDR): 2048"
– For "Local (receiver): Address (LADDR): 256"
– Accept the defaults for the other parameters in the dialog box.
The dialog box has the following appearance:
12.In the next dialog, make the following entries for the send connection to the DP master for
our example:
– For "Mode: F-MS-R" (send via fail-safe master-I-slave communication)
– For "DP partner (receiver): Address (LADDR): 2060"
– For "Local (sender): Address (LADDR): 268"
13.Confirm your entry with "OK".
This results in two configuration lines for this example:
Note
Entries are automatically made in the "Configuration" tab in the object properties for the I-
slave based on the configuration in the "F-Configuration" tab. These entries must not be
modified. Otherwise, safety-related master-I-slave communication is not possible.
You can obtain the assigned address areas in the DP master and I-slave
in the "Configuration" tab.
Additional Information
You will find a description of the parameters in the context-sensitive online help for the "F-
Configuration" tab.
For more information on master-I-slave communication, refer to the STEP 7 Online Help.
For information on address areas, partial process images, and supported interrupt OBs, refer
to the technical specifications for the F-CPU you are using.
Introduction
The procedure for programming safety-related master-I-slave communication or safety-
related I-slave-I-slave communication is the same as for programming safety-related master-
master communication. For this reason, only the differences are described in the following
section.
For safety-related communication between the F-CPUs of the DP master and an I-slave or
between the F-CPUs of several I-slaves, you make use of the F application blocks
F_SENDDP for sending and F_RCVDP for receiving. They can be used to transfer a fixed
amount of fail-safe data of data types BOOL and INT in a fail-safe manner.
You can find these F-application blocks in the F-application blocks block container in the
Distributed Safety F-library (V1). The F_RCVDP must be called at the start of the F-PB. The
F_SENDDP must be called at the end of the F-PB.
Note that the send signals are sent only after the F_SENDDP call at the end of the relevant
F-runtime group execution.
For a detailed description of the F_SENDDP and F_RCVDP F-application blocks, refer to
Chapter "FB 223 "F_SENDDP" and FB 224 "F_RCVDP": Sending and Receiving Data via
PROFIBUS DP".
Note
Thus, the following always applies for safety-related master-I-slave and I-slave-I-slave
communication:
• At the F_SENDDP/F_RCVDP of the DP master, always enter the partner addresses for
the communication connections (from HW Config, "F-Communication" tab of the I-slave).
• At the F_SENDDP/F_RCVDP of a DP slave always enter the local addresses for the
communication connections (from HW Config, "F-Communication" of the I-slave).
See also
Programming Safety-Related Master-Master Communication (Page 140)
FB 223 "F_SENDDP" and FB 224 "F_RCVDP": Send and Receive Data via PROFIBUS DP
(Page 242)
Requirements
The following requirements must be met prior to programming:
● The address areas (local and partner addresses) for the DP master and the I-slave(s)
must be configured in HW Config.
● Both CPUs must be configured as F-CPUs:
– "CPU contains safety program" option must be selected
– The password for the F-CPU must be entered
Programming Procedure
The procedure for programming safety-related master-I-slave communication or I-slave-I-
slave communication is the same as for programming safety-related master-master
communication.
The figure below contains an example of how to specify the address relationships at the
inputs of F application blocks F_SENDDP and F_RCVDP for two safety-related master-I-
slave communication connections and one I-slave-I-slave communication connection.
WARNING
The value for each address association (input parameter DP_DP_ID; data type: INT) is
user-defined; however, it must be unique from all other safety-related communication
connections in the network.
Note
A separate instance DP must be used for each call of an F SENDDP or F_RCVDP.
The input and output parameters of the F_RCVDP must not be supplied with local data of the
F-program block.
You must not use an actual parameter for an output parameter of an F_RCVDP if it is
already being used for an input parameter of the same F_RCVDP call or another F_RCVDP
or F_RCVS7 call. The F-CPU can go to STOP if this is not observed. One of the following
diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety Program: internal CPU fault; internal error information: 404"
WARNING
If the F-CPU with the associated F_SENDDP is in deactivated safety mode, you can no
longer assume that the data received from this F-CPU were generated safely. You must
then implement organizational measures such as operation monitoring and manual safety
shutdown to ensure safety in those portions of the system that are affected by the received
data. Alternatively, you must output fail-safe values instead of the received data in the F-
CPU with the F_RCVDP by evaluating SENDMODE.
See also
Programming Safety-Related Master-Master Communication (Page 140)
Deactivating Safety Mode (Page 304)
If necessary, you should also taken into account fail-safe I-slave-I-slave communication (F-
DX-modules), master-slave connections (MS), or direct data exchange connections (DX)
used to exchange data within your standard user program as part of the maximum limit of
244 bytes of input data and 244 bytes of output data for transmission between an I-slave and
a DP master.
You can check whether you are within the maximum limit of 244 bytes of input data and 244
bytes of output data for all configured safety-related and standard communication
connections in the "Configuration" tab in the object properties for the I-slave. Include all lines
with MODE "MS" in the "Configuration" tab. The lines with MODE "DX" are not included.
Introduction
Safety-related communication between the safety program of the F-CPUs of I-slaves takes
place using direct data exchange – same as in standard programs.
You do not need any additional hardware for I-slave-I-slave communication.
Note
We recommend that you use addresses outside the process image as the local and partner
addresses, since the process image should be reserved for the address areas of modules.
Requirements
You have created a project in STEP 7.
11.In the next dialog, make the following entries for the receive connection from I-slave 2 in
our example:
– For "Mode: F-DX-R" (receive via fail-safe I-slave-I-slave communication)
– For "DP partner (sender): DP address: 5: Slave (PROFIBUS address); address
(LADDR): 130"
– For "Local (receiver): Address (LADDR): 128"
– Accept the defaults for the other parameters in the dialog box.
The dialog box has the following appearance:
14.In the next dialog, make the following entries for the send connection to I-slave 2 for our
example:
– For "Mode: F-DX-S" (send via fail-safe I-slave-I-slave communication)
– For "DP partner (receiver): DP address: 5: Slave; address (LADDR): 142"
– For "Local (sender): Address (LADDR): 140"
– Accept the defaults for the other parameters in the dialog box.
15.Confirm your entry with "OK".
This results in two configuration lines for this example:
Note
In the object properties for the respective I-slave, entries are automatically made in the
"Configuration" tab based on the configuration in the "F-Configuration" tab. These entries
must not be modified. Otherwise, safety-related I-slave-I-slave communication is not
possible.
You can obtain the assigned address areas in the DP master and the I-slaves
in the "Configuration" tab.
Additional Information
You will find a description of the parameters in the context-sensitive online help for the "F-
Configuration" tab.
For information on address areas, partial process images, and supported interrupt OBs, refer
to the technical specifications for the CPU you are using.
Reference
For a description, refer to Chapter "Communication by Means of F_SENDDP and F_RCVDP
(Safety-Related Master-I-Slave/I-Slave-I-Slave Communication)".
Reference
For a description, refer to Chapter "Programming Safety-Related Master-I-Slave/I-Slave-
I-Slave Communication".
Introduction
Safety-related communication between the safety program of the F-CPU of an I-slave and F-
I/O in a DP slave takes place using direct data exchange – same as in standard programs.
The channels of the F-I/O in the safety program of the F-CPU of the I-slave are accessed via
the process image (PII and PAA) as described in Chapter "F-I/O Access".
For F-I/O access via safety-related I-slave-I-slave communication, an F-I/O DB is generated
automatically in the safety program of the F-CPU when the program is compiled in HW
Config.
You do not need any additional hardware for I-slave-slave communication.
Restrictions
Note
Safety-related I-slave-slave communication is possible with F-I/O in a DP slave that supports
safety-related I-slave-slave communication, e.g., with all ET 200S F-modules and with all S7-
300 fail-safe signal modules with IM 153-2, order no. 6ES7 153-2BA01-0XB0 or higher,
firmware version > V4.0.0.
Note
With safety-related I-slave-slave communication, make sure that the CPU of the DP master
is powered up before the F-CPU of the I-slave.
Otherwise, depending on the F-monitoring time specified for the F-I/O, the F-system can
detect an error in the safety-related communication (communication error) between the F-
CPU and the F-I/O assigned to the I-slave. That is, after startup of the F-system, the F-I/O
are not reintegrated automatically. Rather, they are only reintegrated after a user
acknowledgment with a positive edge on the ACK_REI variable of the F-I/O DB (see also
Chapters "Passivation and Reintegration of F-I/O after Communication Errors" and
"Passivation and Reintegration of F-I/O after F-System Startup").
You can configure the following in the object properties for the I-slave for each I-slave-slave
communication with an F-IO:
● A local address (safety program) that you can use to access the F-I/O in the safety
program of the I-slave
● A partner address (F-I/O) of the F-I/O in the DP master
No configuration of communication is necessary in the object properties for the F-I/O of the
DP slave and DP master.
Note
You must use addresses within the process image for the local addresses because
communication is taking place with real F-I/O.
Requirements
You have created a project in STEP 7.
11.In the next dialog, make the following entries for the connection to the 4/8 F-DI module in
our example:
– For "Mode: F-DX-Module" (fail-safe I-slave-slave communication)
– For "DP partner (F-I/O)":
"DP address: 1: Slave" (PROFIBUS address of slave with F-I/O);
"Address (LADDR): 0: 4/8 F-DI" (starting address of F-I/O)
– For "Local (safety program): Address (LADDR): 100" (starting address of F-I/O via
which access is made in the safety program of the F-CPU of the I-slave)
– Accept the defaults for the other parameters in the dialog box.
Note
"DP partner (F-I/O)"
For the "DP address", a list field displays the PROFIBUS addresses of possible DP
slaves that support safety-related I-slave-slave communication. Select the desired DP
slave from this list.
Note, however, that the list may include DP slaves that are not assigned to the DP
master system containing the I-slave. You must not select these.
For the "Address (LADDR)", a list field displays the start addresses of the F-I/O of the
selected DP slave. Select the desired F-I/O from this list.
14.In the next dialog, make the following entries for the connection to the 4 F-DO module for
our example:
– For "Mode: F-DX-Module" (fail-safe I-slave-slave communication)
– For "DP partner (F-I/O)":
"DP address: 1: Slave" (PROFIBUS address of slave with F-I/O);
"Address (LADDR): 6: 4 F-DO" (starting address of F-I/O)
– For "Local (safety program): Address (LADDR): 120" (starting address of F-I/O via
which access is made in the safety program of the F-CPU of the I-slave)
– Accept the defaults for the other parameters in the dialog box.
15.Confirm your entry with "OK".
This results in two configuration lines for this example:
Note
Entries are automatically made in the "Configuration" tab in the object properties for the I-
slave based on the configuration in the "F-Configuration" tab. These entries must not be
modified. Otherwise, safety-related I-slave-slave communication is not possible.
You can obtain the assigned address areas in the DP master and I-slave
in the "Configuration" tab.
WARNING
If you have configured a new I-slave-slave communication for an F-I/O or have deleted an
existing I-slave-slave communication, you must save and compile the hardware
configuration of the station of the DP master as well as the hardware configuration of the
station of the I-slave and download them to the station of the DP master or I-slave.
The collective signature of the safety program of the F-CPU of the I-slave and the collective
signature of the safety program of the F-CPU of the DP master (if a safety program exists
there, too) are set to "0". You must then recompile the safety program(s).
Additional Information
You will find a description of the parameters in the context-sensitive online help for the "F-
Configuration" tab.
For information on address areas, process images, and supported interrupt OBs, refer to the
technical specifications for the CPU you are using.
WARNING
Due to the special safety protocol, the F-I/O occupy a larger area of the process image than
is required for the channels that are actually present on the F-I/O. To find out the area of
the process image where the channels (user data) are stored, refer to the relevant manuals
for the F-I/O. When the process image is accessed in the safety program, only the channels
that are actually present are permitted to be accessed.
Note that for certain F-I/O (such as S7-300 F-SMs and ET 200S fail-safe modules), a "1oo2
evaluation of the sensors" can be specified. To find out which of the channels combined by
the "1oo2 evaluation of the sensors" you can access in the safety program, refer to the
relevant manuals for the F-I/O.
See also
F-I/O Access (Page 97)
If necessary, you should also take into account fail-safe master-I-slave communication (F-
MS-R, F-MS-S) and master-slave connections (MS) or
direct data exchange connections (DX) used to exchange data within your standard user
program as part of the maximum limit of 244 bytes of input data and 244 bytes of output data
for transmission between an I-slave and a DP master.
You can check whether you are within the maximum limit of 244 bytes of input data and 244
bytes of output data for all configured safety-related and standard communication
connections in the "Configuration" tab in the object properties for the I-slave. Include all lines
with MODE "MS" in the "Configuration" tab. The lines with MODE "DX" are not included.
Requirements
Safety-related communication between safety programs of the
F-CPUs of IO controllers takes place over a PN/PN coupler (order number 6ES7158-3AD00-
0XA0) that you set up between the F-CPUs.
For this communication you will need HSP 101 for STEP 7 V5.4 SP1 or the GSD file for the
PN/PN coupler.
In the case of a CPU 416F without an integrated PROFINET interface, use CP 443-1
Advanced.
Note
Disable the "Data validity indicator DIA" (same as default setting) in the object properties for
the PN/PN coupler in HW Config. Otherwise, safety-related IO-controller-IO-controller
communication is not possible.
Reference
In addition, the information on safety-related master-master communication in Chapter
"Safety-Related Master-Master Communication" also applies analogously.
Introduction
Safety-related communication between the safety programs of F-CPUs via S7 connections
takes place by means of connection tables in NetPro - same as in standard programs.
Restrictions
Note
In S7 Distributed Safety, S7 connections are generally permitted over Industrial Ethernet
only!
Safety-related communication via S7 connections is possible from and to the following
CPUs:
• CPU 315F-2 PN/DP (only via the CPU PN interface)
• CPU 317F-2 PN/DP (only via the CPU PN interface)
• CPU 416F-3 PN/DP (only via the CPU PN interface)
• CPU 416F-2 firmware version V4.0 and higher
Note
Safety-related communication via S7 connections to unspecified partners is not possible.
Note
If you change the configuration of the S7 connections for safety-related communication, the
collective signature of the safety program is set to "0". You must then recompile the safety
program.
Additional Information
For a description of configuring S7 connections, refer to the Configuring Hardware and
Communication Connections with STEP 7 V5.x and the STEP 7 Online Help.
You use the F_SENDS7 and F_RCVS7 F-application blocks for fail-safe sending and
receiving data via S7 connections.
These F-application blocks can be used to transmit a specified amount of fail-safe data of
data types BOOL, INT, WORD, and TIME in a fail-safe manner. The fail-safe data are stored
in F-DBs that you have created.
You can find these F-application blocks in the F-application blocks block container in the
Distributed Safety F-library (V1). The F_RCVS7 must be called at the start of the F-PB. The
F_SENDS7 must be called at the end of the F-PB.
Note that the send signals are sent only after the F_SENDS7 call at the end of the relevant
F-runtime group execution.
For a detailed description of the F-application blocks, refer to Chapter "FB 225 "F_SENDS7",
FB 226 "F_RCVS7": Communication via S7 Connections".
F-communication DB
For each connection, send data are stored in an F-DB (F-communication DBx) and receive
data are stored in an F-DB (F-communication DBy).
The F-communication DB numbers are made available to the F_SENDS7 or F_RCVS7 as
parameters.
See also
FB 225 "F_SENDS7" und FB 226 "F_RCVS7": Communication via S7 Connections
(Page 249)
Introduction
This section describes how to program safety-related communication between safety
programs of the F-CPUs via S7 connections. You must do the following in the safety
programs of the relevant F-CPUs:
● Create F-DBs in which send data or receive data for communication are stored
● Call and assign parameters for F-application blocks for communication from the
Distributed Safety F-library (V1) in the safety program
Note
The length and structure of the F-communication DB on the receiver side must match the
length and structure of the associated F-communication DB on the sender side.
If the F-communication DBs do not match, the F-CPU can go to STOP mode. One of the
following diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety Program: internal CPU fault; internal error information: 404"
For this reason, we recommend that you use the following procedure:
1. Create an F-communication DB in the block container of the offline safety program on the
sender side in SIMATIC Manager.
2. Specify the appropriate structure of the F-communication DB, taking into account the data
to be transferred.
3. Copy this F-communication DB in the block container of the offline safety program on the
receiver side, and change the DB number, if necessary.
Programming Procedure
1. Supply the variables in the F-communication DB of the sender side with send signals
using symbolic, fully qualified access (e.g., "Name of F-communication DB"."variable
name").
2. Read the variables in the F-communication DB of the receiver side (receive signals) that
you want to process further in other sections of the program using symbolic, fully qualified
access (e.g., "Name of F-communication DB"."variable name").
3. In the safety program from which data are to be sent, call the F_SENDS7 F-application
block for sending at the end of the F-PB.
4. In the safety program from which data are to be received, call the F_RCVS7 F-application
block for receiving at the start of the F-PB.
5. Assign the applicable F-communication DB numbers to the SEND_DB input of
F_SENDS7 and the RCV_DB input of F_RCVS7.
6. Assign the local ID of the S7 connection (data type: WORD) configured in NetPro to the
F_SENDS7 input ID.
7. Assign the local ID of the S7 connection (data type: WORD) configured in HW Config to
the F_RCVS7 input ID.
8. Assign an odd number (data type: DWORD) to the F_SENDS7 and F_RCVS7 R_ID
inputs. This specifies that an F_SENDS7 and an F_RCVS7 belong together. The related
F-blocks are given the same R_ID.
WARNING
The value for each address association (input parameter R_ID; data type: DWORD) is
user-defined; however, it must be unique from all other safety-related communication
connections in the network. The value R_ID + 1 is assigned internally and must not be
used.
Note
A separate instance DP must be used for each call of an F_SENDS7 and F_RCVS7.
The input and output parameters of the F_RCVS7 must not be supplied with local data of
the F-program block.
You must not use an actual parameter for an output parameter of an F_RCVS7 if it is
already being used for an input parameter of the same F_RCVS7 or another F_RCVS7 or
F_RCVDP call. The F-CPU can go to STOP if this is not observed. One of the following
diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner
F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
9. Configure the TIMEOUT inputs of the F_SENDS7 and F_RCVS7 with the required
monitoring time.
WARNING
It can be ensured (from a fail-safe standpoint) that a signal level to be transferred will be
captured on the sender side and transferred to the receiver only if the signal is pending
for at least as long as the assigned monitoring time (TIMEOUT).
Information on calculation of monitoring times can be found in the system manual Safety
Engineering in SIMATIC S7.
10.To reduce the bus load, you can temporarily shut down communication between the F-
CPUs. To do so, supply input EN_SEND of F_SENDS7 with "0" (default = "1"). Then,
send data are no longer sent to the F-communication DB of the associated F_RCVS7 and
the receiver F_RCVS7 provides fail-safe values for this period (default F-communication
DB). If communication was already established between the partners, a communication
error is detected.
11.Optional: Evaluate the ACK_REQ output of the F_RCVS7, for example, in the standard
user program or on the operator control and monitoring system in order to query or to
indicate whether user acknowledgment is required.
12.Provide the ACK_REI input of the F_RCVS7 with the signal for the acknowledgment for
reintegration.
13.Optional: Evaluate output SUBS_ON of F_RCVS7 or F_SENDS7 to query whether the
F_RCVS7 is outputting the fail-safe values you specified as defaults in the F-
communication DB.
14.Optional: Evaluate the ERROR output of the F_RCVS7 or the F_SENDS7, for example, in
the standard user program or on the operator control and monitoring system in order to
query or to indicate whether a communication error has occurred.
15.Optional: Evaluate the SENDMODE output of the F_RCVS7 in order to query whether the
F-CPU with the associated F_SENDS7 is in deactivated safety mode.
WARNING
If the F-CPU with the associated F_SENDS7 is in deactivated safety mode, you can no
longer assume that the data received from this F-CPU were generated safely. You must
then implement organizational measures such as operation monitoring and manual
safety shutdown to ensure safety in those portions of the system that are affected by the
received data. Alternatively, you must output fail-safe values instead of the received
data in the F-CPU with the F_RCVS7 by evaluating SENDMODE.
See also
Creating and Editing F-DB (Page 81)
Note
If the amount of data to be transmitted exceeds the permissible length for the
F-communication DB (100 bytes), you can create another F-communication DB that you
transfer to an additional F_SENDS7/F_RCVS7 call with modified R_ID.
Note that SFB 8 and SFB 9 are called internally at each F_SENDS7 call or F_RCVS7 call
and use connection resources in the F-CPU. This affects the maximum number of
communication connections available. Information about the connection resources of an
F-CPU is obtained in the same way as for standard systems in the "Module Information"
dialog of the "Communication" tab.
Introduction
Safety-related communication via S7 connections for F-CPUs in S7 F Systems is also
possible. A maximum of 32 data elements of data type BOOL can be exchanged.
Overview
The Distributed Safety F-library (V1) contains:
● F-application blocks in the F-Application Blocks\Blocks block container
● F-system blocks and the F-shared DB in the F-System Blocks\Blocks block container
Note
You must not change the F-library name.
The Distributed Safety F-library (V1) can contain only those F-blocks that were installed with
the S7 Distributed Safety version.
Note
You may change the numbers of the F-application blocks. Exception: When using the
F_ESTOP1 and F_FDBACK F-application blocks, the F_TOF F-application block must have
number FB 186 and must not be renumbered.
If you change the numbers for an F-application block, note that the symbolic name in the
symbol table must continue to match the name in the object properties for the block
(header).
You cannot use symbolic names of F-application blocks of the Distributed Safety F-library
(V1) for user-created F-FBs, F-FCs, and blocks.
Note
You must ensure that the F-blocks in the F-CPU are consistent.
To do so, you must use F-application blocks of a single S7 Distribution Safety version only
and compile the safety program using the S7 Distributed Safety setup.
Note
If you call a block, the enable input EN and the enable output ENO appear automatically.
You must not interconnect these connections, supply them with "0", or evaluate them.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update time of the time base used in the F-
application block (see figure below)
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
• You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
Timing Imprecision Resulting from the Update Time of the Time Base Used in the F-Application Block
Description
(1) For the first call in cycle n+1, the call time of the F-application block relative to the start of the F-
runtime group is earlier than that in cycle n by the amount of Δ1, e.g., because portions of the
safety program of the F-runtime group before the call time of the F-application in cycle n+1 are
skipped. For the time update, the F-application block takes into account time TBase_1 instead of
the time T1 that has actually elapsed in cycle n since the call.
(2) The F-application block is called a second time in cycle n+1. This does not involve another time
update (by Δ2).
(3) For the call in cycle n+2, the call time of the F-application block relative to the start of the F-
runtime group is later than that in cycle n by the amount of Δ3, e.g., because the F-runtime
group was interrupted by a higher priority interrupt prior to the time of the F-application block
call in cycle n+2. The F-application block took into account time TBase_1 + TBase_2 instead of the
time T3 that has actually elapsed in cycle n since the call. This would also be the case if no call
occurred in cycle n+1.
Inputs/Outputs
Principle of operation
This F-application block scales the value at input IN in physical units between the lower limit
value at input LO_LIM and the upper limit value at input HI_LIM. It is assumed that the value
at input IN is between 0 and 27,648. The scaling result is provided at output OUT.
The F-application block acts according to the following equation:
OUT = [ IN * (HI_LIM - LO_LIM)] / 27648 + LO_LIM
So long as the value at input IN is greater than 27,648, output OUT is linked to HI_LIM, and
OUT_HI is set to 1.
So long as the value at input IN is less than 0, output OUT is linked to LO_LIM, and OUT_LO
is set to 1.
For reverse scaling, you must assign LO_LIM > HI_LIM. With reverse scaling, the output
value at output OUT decreases while the input value at input IN increases.
Performance in the Event of Overflow or Underflow of Analog Values and Fail-Safe Value Output
Note
If inputs from the PII of an SM 336; AI 6 x 13 bit are used as input values, you must bear in
mind that the F-system detects an overflow or underflow of a channel of this F-SM as an
F-I/O fault or channel fault. The fail-safe value 0 is provided in place of 7FFFH (for overflow)
or 8000H (for underflow) in the PII for the safety program.
If other fail-safe values are to be output in this case, you must evaluate the QBAD variable in
the F-I/O DB (branch to output of an individual fail-safe value).
If the value in the PII of the F-SM is within the overrange or underrange, but is greater than
27648 or less than 0, you can likewise branch to the output of an individual fail-safe value by
evaluating outputs OUT_HI and OUT_LO, respectively.
Connections
Principle of operation
This F-application block forms an edge-controlled up-counter (with functionality based on
IEC counter SFB 0 "CTU").
The counter counts up 1 on a rising edge (relative to the last F-application block call) at input
CU.
When the counter value reaches the upper limit of 32,767, it no longer counts up. For every
additional rising edge at input CU, no counter action takes place.
Signal state 1 at input R causes the counter to be reset to 0, irrespective of the value at input
CU. Output Q displays whether the current counter value is greater than or equal to the
default value PV.
The functionality of this F-application block is in accordance with IEC 61131-3.
Startup Characteristics
Following an F-system startup, the instances of the F_CTU are reset, resulting in:
● CV = 0
● Q=0
Inputs/Outputs
Principle of operation
This F-application block forms an edge-controlled down-counter (with functionality based on
IEC counter SFB 1 "CTD").
The counter counts down 1 at a rising edge (relative to the last F-application block call) at
input CD.
When the counter value reaches the lower limit of -32,768, it no longer counts down. For
every additional rising edge at input CD, no counter action takes place.
Signal state 1 at input LOAD causes the counter to be preset to preset value PV. This occurs
irrespective of the value at input CD. Output Q displays whether the current counter value is
less than or equal to zero.
The functionality of this F-application block is in accordance with IEC 61131-3.
Startup Characteristics
The instances of F_CTD are reset in the first cycle following startup of the F-system,
resulting in:
● CV = 0
● Q=0
Connections
Principle of operation
This F-application block forms an edge-controlled up/down-counter (with functionality based
on IEC counter SFB 2 "CTUD").
At a rising edge (relative to the last F-application block call), the counter behaves as follows:
● Counter counts up 1 at input CU
When the counter value reaches the upper limit (32,767), it no longer counts up.
● Counter counts down 1 at input CD
When the counter value reaches the lower limit (-32,768), it no longer counts down.
If there is a rising edge at both input CU and input CD during one cycle, the counter remains
at its current value.
WARNING
When the CU signal and the CD signal are present simultaneously, performance deviates
from that prescribed in IEC 61131-3. According to the standard, the CU input prevails when
the CU signal and the CD signal are present simultaneously.
Load = 1: CV is preset with the value of the PV input. The values at inputs CU and CD are
ignored.
R = 1: CV is reset to 0. The values at inputs CU, CD, and LOAD are ignored.
Output QU displays whether the current counter value is greater than or equal to the preset
value PV. Output QD displays whether the current counter value is less than or equal to
zero.
Startup Characteristics
The instances of the F_CTUD are reset in the first cycle following a startup of the F-system,
resulting in:
● CV = 0
● QU = 0
● QD = 0
Connections
Principle of operation
This F-application block generates a pulse of length PT at output Q (this functionality is
based on IEC TIMER SFB 3 "TP").
The pulse is initiated on a rising edge at input IN. Output Q remains set for duration PT,
irrespective of any further variation of the input signal (that is, even if input IN switches from
0 back to 1 before time PT has elapsed).
Output ET displays how long output Q has already been set. It can have a maximum value
equal to the value of input PT. It is reset when input IN changes to 0, however, time PT must
elapse before it can be reset.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update time of the time base used in the
F-application block (see figure in "F-Application Blocks")
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
WARNING
The functionality of this F-application block complies with IEC 61131-3, however, it deviates
from IEC TIMER SFB 3 "TP" as follows:
• When it is called with PT = 0 ms, the F_TP instance is not reset completely (initialized).
The block behaves in accordance with the timing diagrams: only outputs Q and ET are
reset. Another rising edge at input IN is required to restart the pulse, once PT is greater
than 0 again.
• A call with PT < 0 ms resets outputs Q and ET. Another rising edge at input IN is
required to restart the pulse, once PT is greater than 0 again.
Startup Characteristics
The instances of F_TP are reset in the first cycle following a startup of the F-system,
resulting in:
● ET = 0
● Q=0
See also
Overview of F-application blocks (Page 183)
Connections
Principle of operation
This F-application block delays a rising edge by time PT (this functionality is based on
IEC TIMER SFB 4 "TON").
A rising edge at input IN results in a rising edge at output Q once time PT has elapsed. Q
remains set until input IN changes to 0.
If input IN changes to 0 before time PT has elapsed, then output Q remains at 0.
Output ET supplies the time that has passed since the last rising edge at input IN, not to
exceed the value at input PT. ET is reset if input IN changes to 0.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the
F-application block (see figure in the "F-Application Blocks" section)
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
WARNING
The functionality of this F-application block complies with IEC 61131-3, however, it deviates
from IEC TIMER SFB 4 "TON" as follows:
• When it is called with PT = 0 ms, the F_TON instance is not reset completely
(initialized). The block behaves in accordance with the timing diagrams: Only output ET
is reset. Another rising edge at input IN is required to restart the ON delay, once PT is
greater than 0 again.
• A call with PT < 0 ms resets outputs Q and ET. Another rising edge at input IN is
required to restart the ON delay, once PT is greater than 0 again.
Startup Characteristics
The instances of F_TON are reset in the first cycle following a startup of the F-system,
resulting in:
● ET = 0
● Q=0
See also
Overview of F-application blocks (Page 183)
Connections
Principle of operation
This F-application block delays a falling edge by time PT (this functionality is based on
IEC TIMER SFB 5 "TOF").
A rising edge at input IN causes a rising edge at output Q. A falling edge at input IN results in
a falling edge at output Q once time PT has elapsed.
If input IN changes back to 1 before time PT has elapsed, then output Q remains at 1.
Output ET supplies the time that has passed since the last falling edge at input IN, not to
exceed the value at input PT. ET is reset if input IN changes to 1.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the
F-application block (see figure in the "F-Application Blocks" section)
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
WARNING
The functionality of this F-application block complies with IEC 61131-3, however, it deviates
from IEC TIMER SFB 5 "TOF" as follows:
• When it is called with PT = 0 ms, the F_TOF instance is not reset completely (initialized).
The block behaves in accordance with the timing diagrams: only outputs Q and ET are
reset. Another falling edge at input IN is required to restart the OFF delay, once PT is
greater than 0 again.
• A call with PT < 0 ms resets outputs Q and ET. Another falling edge at input IN is
required to restart the OFF delay, once PT is greater than 0 again.
Startup Characteristics
The instances of F_TOF are reset in the first cycle following a startup of the F-system,
resulting in:
● ET = 0
● Q=0
See also
Overview of F-application blocks (Page 183)
Connections
Principle of operation
This F-application block enables fail-safe acknowledgment from an operator control and
monitoring system. It allows, for example, reintegration of F-I/O to be controlled from the
operator control and monitoring system. Acknowledgment takes place in two steps:
1. In/out parameter IN changes to a value of 6.
2. In/out parameter IN changes to a value of 9 within 1 min.
Once the in/out parameter IN has changed to a value of 6, the F-application block evaluates
whether this parameter has changed to a value of 9 after 1 s, at the earliest, or 1 min, at the
latest. Output OUT (output for acknowledgment) is then set to 1 for one cycle.
If an invalid value is input or if in/out parameter IN has not changed to 9 within 1 min or the
change occurred before 1 s has elapsed, then in/out parameter IN is reset to 0, and both
steps listed above must be repeated.
During the time in which in/out parameter IN must change from 6 to 9, output Q is set to 1.
Otherwise, Q has a value of 0.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the
F-application block (see figure in the "F-Application Blocks" section)
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
Note
You can evaluate output Q only in your standard user program. Access to output Q in the
safety program is not permissible.
You can supply in/out parameter IN with just a memory word or nothing at all. In the safety
program, read and write access to in/out parameter IN in the associated instance DB is not
permitted!
Note
A separate instance DB must be used for each call of F_ACK_OP. Each call can be
processed only once in an F-run-time group cycle.
The F-CPU can go to STOP mode if the information above is not observed. One of the
following diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
Additional Information
You will find additional information about fail-safe acknowledgment with the F_ACK_OP F-
application block in the references provided under "See also."
See also
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Implementing User Acknowledgment in the Safety Program of a I-Slave F-CPU (Page 124)
Overview of F-application blocks (Page 183)
Connections
Principle of operation
This F-application block implements two-hand monitoring. If momentary-contact switches
IN1 and IN2 are activated within the permissible discrepancy time DISCTIME ≤ 500 ms
(IN1/IN2 = 1) (synchronous activation), output signal Q is set to 1. If the time difference
between activation of momentary-contact switch IN1 and momentary-contact switch IN2 is
greater than DISCTIME, then the momentary-contact switches must be released and
reactivated.
Q is reset to 0 as soon as one of the momentary-contact switches is released (IN1/IN2 = 0).
Enable signal Q can be reset to 1 only if the other momentary-contact switch has been
released, and if both switches are then reactivated within the discrepancy time. Enable
signal Q can never be set to 1 if the discrepancy time is set to values less than 0 or greater
than 500 ms.
The F-application block supports requirements in accordance with EN 574.
Note:Only one signal per momentary-contact switch can be evaluated in the F-application
block. With suitable configuration (type of sensor interconnection: 2-channel nonequivalent),
discrepancy monitoring of the NC and NO contacts of the IN1 and IN2 momentary-contact
switches is performed directly by the F-I/O with inputs. The NO contact must be wired in
such a way that it supplies the useful signal (see manual for the F-I/O you are using). In
order to keep the discrepancy time from influencing the response time, you must assign "0 -
provide value" for the behavior of discrepancy during configuration. If a discrepancy is
detected, a fail-safe value of 0 is entered in the process input image (PII) for the momentary-
contact switch and QBAD or QBAD_I_xx = 1 is set in the relevant F-I/O DB.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the
F-application block (see figure in the "F-Application Blocks" section)
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
Additional Information
You will find additional information about the configuration and the F-I/O DB in the
references provided under "See also."
See also
Overview of Configuration (Page 23)
F-I/O DB (Page 101)
Overview of F-application blocks (Page 183)
Connections
Principle of Operation
This F-application block performs parallel muting with two or four muting sensors.
Muting is a defined suppression of the protective function of light curtains. Light curtain
muting can be used to introduce goods or objects into the danger area monitored by the light
curtain without causing the machine to stop.
To utilize the muting function, at least two independently wired muting sensors must be
present. The use of two or four muting sensors and correct integration into the production
sequence must ensure that no persons enter the danger area while the light curtain is
muted.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the F-
application block (see figure in Chapter "F-Application Blocks")
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
Schematic Sequence of Error-Free Muting Procedure with Four Muting Sensors (MS_11, MS_12,
MS_21, MS_22)
● If both muting sensors MS_11 and MS_12 are activated by the product within DISCTIM1
(apply signal state = 1), the F-application block starts the MUTING function. Enable signal
Q remains 1, even when input FREE = 0 (light curtain interrupted by product). The
MUTING output for setting the muting lamp switches to 1.
Note
The muting lamp can be monitored using the QBAD_MUT input. To do this, you must wire
the muting lamp to an output with wire break monitoring of an F-I/O and supply the
QBAD_MUT input with the QBAD or QBAD_O_xx signal of the associated F-I/O or
channel. If QBAD_MUT = 1, muting is terminated by the F-application block. If monitoring
of the muting lamp is not necessary, you do not have to supply input QBAD_MUT.
F-I/O that can promptly detect a wire break after activation of the muting operation must
be used (see manual for specific F-I/O).
● As long as both muting sensors MS_11 and MS_12 continue to be activated, the MUTING
function of the F-application block causes Q to remain 1 and MUTING to remain 1 (so
that the product can pass through the light curtain without causing the machine to stop).
● The two muting sensors MS_21 and MS_22 must be activated (within DISCTIM2) before
muting sensors MS_11 and MS_12 are switched to inactive (apply signal state 0). In this
way, the F-application block retains the MUTING function. (Q = 1, MUTING = 1).
● Only if one of the two muting sensors MS_21 and MS_22 is switched to inactive (product
enables sensors) is the MUTING function terminated (Q = 1, MUTING = 0). The
maximum activation time for the MUTING function is the time set at input TIME_MAX.
Note
The MUTING function is also started if the product passes the light curtain in the reverse
direction and the muting sensors are thus activated by the product in reverse order.
Timing Diagrams for Error-Free Muting Procedure with Four Muting Sensors
Restart Inhibit upon Interruption of Light Curtain (If MUTING Is Not Active), When Errors Occur, and
During F-System Startup
Enable signal Q cannot be set to 1 or becomes 0, if:
● Light curtain is interrupted (e.g., by a person or material transport) while the MUTING
function is not active
● The muting lamp monitoring function responds at input QBAD_MUT
● Sensor pair 1 (MS_11 and MS_12) or sensor pair 2 (MS_21 and MS_22) is not activated
or deactivated during discrepancy time DISCTIM1 or DISCTIM2, respectively
● The MUTING function is active longer than the maximum muting time TIME_MAX
● Discrepancy times DISCTIM1 and DISCTIM2 have been set to values < 0 or > 3 s
● Maximum muting time TIME_MAX has been set to a value< 0 or > 10 min
In the identified cases, output FAULT (group error) is set to 1 (restart inhibit). If the MUTING
function is started, it will be terminated and the Muting output becomes 0.
WARNING
Note
Following discrepancy errors and once the maximum muting time has been exceeded,
ACK_REQ is immediately set to 1. As soon as a user acknowledgment has taken place at
input ACK, discrepancy times DISCTIM1 and DISCTIM2 and maximum muting time
TIME_MAX are reset.
Timing Diagrams for Discrepancy Errors at Sensor Pair 1 or Interruption of the Light Curtain (If
MUTING Is Not Active)
(1) Sensor pair 1 (MS_11 and MS_12) is not activated within discrepancy time
DISCTIM1.
(2) The light curtain is interrupted even though the MUTING function is not active.
(3) Acknowledgment
WARNING
When STOP = 1, the discrepancy monitoring is shut down. During this time, if inputs
MSx1/MSx2 of a sensor pair both assume a signal state of 1 due to an unknown error, e.g.,
because both muting sensors fail to 1, the error is not detected and the MUTING function
can be started unintentionally.
Output DIAG
The DIAG output provides non-fail-safe information on errors for service purposes. You can
read out this information by means of operator control and monitoring systems or, if
applicable, you can evaluate it in your standard user program. DIAG bits are saved until
acknowledgment at input ACK.
Structure of DIAG
Note
Access to the DIAG output is not permitted in the safety program!
See also
F-I/O DB (Page 101)
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Implementing User Acknowledgment in the Safety Program of a I-Slave F-CPU (Page 124)
Overview of F-application blocks (Page 183)
Connections
Principle of Operation
This F-application block implements a 1oo2 evaluation of two single-channel sensors
combined with a discrepancy analysis.
Output Q is set to 1, if the signal states of inputs IN1 and IN2 both equal 1 and no
discrepancy error DISC_FLT is stored. if the signal state of one or both inputs is 0, output Q
is set to 0.
As soon as the signal states of inputs IN1 and IN2 are different, the discrepancy time
DISCTIME is started. If the signal states of the two inputs are still different once the
discrepancy time expires, a discrepancy error is detected and DISC_FLT is set to 1 (restart
inhibit).
If the discrepancy between inputs IN1 and IN2 is no longer detected, the discrepancy error is
acknowledged according to the parameter assignment of ACK_NEC:
● If ACK_NEC = 0, the acknowledgment is automatic.
● If ACK_NEC = 1, you must use a rising edge at input ACK to acknowledge the
discrepancy error.
ACK_REQ = 1 signals that a user acknowledgment at input ACK is necessary to
acknowledge the discrepancy error (cancel the restart inhibit). The F-application block sets
ACK_REQ = 1 as soon as discrepancy is no longer detected. After acknowledgment or if,
prior to acknowledgment, there is once again a discrepancy between inputs IN1 and IN2, the
F-application block resets ACK_REQ to 0.
Output Q can never be set to 1 if the discrepancy time setting is < 0 or > 60 s. In this case,
output DISC_FLT is also set to 1 (restart inhibit). The call interval of the safety program (e.g.,
OB35) must be less than the discrepancy time setting.
WARNING
Variable ACK_NEC must not be assigned a value of 0 unless an automatic restart of the
affected process is otherwise excluded.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the F-
application block (see figure in Chapter "F-Application Blocks")
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
Example
For nonequivalent signals, you have to invert the input (IN1 or IN2) to which you have
assigned the sensor signal with a safe state of 1. You must also OR the sensor signal with
the QBAD or QBAD_I_xx variable of the associated F-I/O DB or channel, so that a signal
state of 0 is present at input IN1 or IN2 (after inversion) if fail-safe values are output.
Startup Characteristics
Note
If the sensors at inputs IN1 and IN2 are assigned to different F-I/O, it is possible that the
fail-safe values are output for different lengths of time following startup of the F system due
to different startup characteristics of the F-I/O. If the signal states of inputs IN1 and IN2
remain different after the discrepancy time DISCTIME has expired, a discrepancy error is
detected after the F-system starts up.
If ACK_NEC = 1 you must acknowledge the discrepancy error with a rising edge at input
ACK.
Output DIAG
The DIAG output provides non-fail-safe information on errors for service purposes. You can
read out this information by means of operator control and monitoring systems or, if
applicable, you can evaluate it in your standard user program. DIAG bits are saved until
acknowledgment at input ACK.
Structure of DIAG
Note
Access to the DIAG output is not permitted in the safety program!
See also
F-I/O DB (Page 101)
Overview of F-application blocks (Page 183)
Connections
Principle of Operation
This F-application block implements two-hand monitoring. If momentary-contact switches
IN1 and IN2 are activated within the permissible discrepancy time DISCTIME ≤ 500 ms
(IN1/IN2 = 1) (synchronous activation), output signal Q is set to 1 when existing enable
ENABLE = 1. If the time difference between activation of momentary-contact switch IN1 and
momentary-contact switch IN2 is greater than DISCTIME, then the momentary-contact
switches must be released and reactivated.
Q is reset to 0 as soon as one of the momentary-contact switches is released (IN1/IN 2 = 0)
or ENABLE = 0. Enable signal Q can be reset to 1 only if the other momentary-contact
switch has been released, and if both switches are then reactivated within the discrepancy
time when existing enable ENABLE = 1.
The F-application block supports requirements in accordance with EN 574.
Note: Only one signal per momentary-contact switch can be evaluated in the F-application
block. With suitable configuration (type of sensor interconnection: 2-channel non-equivalent),
discrepancy monitoring of the NC and NO contacts of momentary contact switches IN1 and
IN2 is performed directly by the F-I/O with inputs. The NO contact must be wired in such a
way that it supplies the useful signal (see manual for the F-I/O you are using). In order to
keep the discrepancy time from influencing the response time, you must assign "Provide 0-
value" for the behavior of discrepancy during configuration.
If a discrepancy is detected, a fail-safe value of 0 is entered in the process input image (PII)
for the momentary-contact switch and QBAD or QBAD_I_xx = 1 is set in the relevant F-I/O
DB.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the F-
application block (see figure in Chapter "F-Application Blocks")
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
Output DIAG
The DIAG output provides non-fail-safe information on errors for service purposes. You can
read out this information by means of operator control and monitoring systems or, if
applicable, you can evaluate it in your standard user program. DIAG bits 0 to 5 are saved
until the cause of the error has been eliminated.
Structure of DIAG
Note
Access to the DIAG output is not permitted in the safety program!
See also
F-I/O DB (Page 101)
Overview of F-application blocks (Page 183)
Connections
Principle of Operation
This F-application block performs parallel muting with two or four muting sensors.
Muting is a defined suppression of the protective function of light curtains. Light curtain
muting can be used to introduce goods or objects into the danger area monitored by the light
curtain without causing the machine to stop.
To utilize the muting function, at least two independently wired muting sensors must be
present. The use of two or four muting sensors and correct integration into the production
sequence must ensure that no persons enter the danger area while the light curtain is
muted.
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the F-
application block (see figure in Chapter "F-Application Blocks")
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
Schematic Sequence of Error-Free Muting Procedure with Four Muting Sensors (MS_11, MS_12,
MS_21, MS_22)
● If muting sensors MS_11 and MS_12 are both activated by the product within DISCTIM1
(apply signal state = 1) and MUTING is enabled by setting the ENABLE input to 1, the F-
application block starts the MUTING function. Enable signal Q remains 1, even when
input FREE = 0 (light curtain interrupted by product). The MUTING output for setting the
muting lamp switches to 1.
Note
The muting lamp can be monitored using the QBAD_MUT input. To do this, you must wire
the muting lamp to an output with wire break monitoring of an F-I/O and supply the
QBAD_MUT input with the QBAD or QBAD_O_xx signal of the associated F-I/O or
channel. If QBAD_MUT = 1, muting is terminated by the F-application block. If monitoring
of the muting lamp is not necessary, you do not have to supply input QBAD_MUT.
F-I/O that can promptly detect a wire break after activation of the muting operation must
be used (see manual for specific F-I/O).
● As long as both muting sensors MS_11 and MS_12 continue to be activated, the MUTING
function of the F-application block causes Q to remain 1 and MUTING to remain 1 (so
that the product can pass through the light curtain without causing the machine to stop).
Each of the two muting sensors MS_11 and MS_12 may be switched to inactive (t <
DISCTIM1) for a short time (apply signal state 0).
● Muting sensors MS_21 and MS_22 must both be activated (within DISCTIM2) before
muting sensors MS_11 and MS_12 are switched to inactive (apply signal state 0). In this
way, the F-application block retains the MUTING function. (Q = 1, MUTING = 1).
Only if muting sensors MS_21 and MS_22 are both switched to inactive (product enables
sensors) is the MUTING function terminated (Q = 1, MUTING = 0). The maximum activation
time for the MUTING function is the time set at input TIME_MAX.
Note
The MUTING function is also started if the product passes the light curtain in the reverse
direction and the muting sensors are thus activated by the product in reverse order.
Timing Diagrams for Error-Free Muting Procedure with Four Muting Sensors
Restart Inhibit upon Interruption of Light Curtain (MUTING Is Not Active), as Well as When Errors
Occur and During F-System Startup
Enable signal Q cannot be set to 1 or becomes 0, if:
● Light curtain is interrupted (e.g., by a person or material transport) while the MUTING
function is not active
● Light curtain is (being) interrupted and the muting lamp monitoring responds at input
QBAD_MUT
● Light curtain is (being) interrupted and the MUTING function is not enabled by setting
input ENABLE to 1
● Sensor pair 1 (MS_11 and MS_12) or sensor pair 2 (MS_21 and MS_22) is not activated
or deactivated during discrepancy time DISCTIM1 or DISCTIM2, respectively
● The MUTING function is active longer than the maximum muting time TIME_MAX
● Discrepancy times DISCTIM1 and DISCTIM2 have been set to values < 0 or > 3 s
● Maximum muting time TIME_MAX has been set to a value< 0 or > 10 min
● The F-system starts up (irrespective of whether or not the light curtain is interrupted,
because the F-I/O is passivated after F-system startup and, thus, the FREE input is
initially supplied with 0)
In the identified cases, output FAULT (group error) is set to 1 (restart inhibit). If the MUTING
function is started, it will be terminated and the Muting output becomes 0.
User Acknowledgment of Restart Inhibit (at Least One Muting Sensor Is Activated and ENABLE = 1)
Enable signal Q becomes 1 again, if:
● Errors, if present, are eliminated (see output DIAG)
● FREE occurs until a valid combination of muting sensors is detected
The FAULT output is set to 0. The MUTING function is restarted, if necessary, and the
MUTING output becomes 1 if a valid combination of muting sensors is detected. When
ENABLE = 1, output ACK_REQ = 1 signals that FREE is necessary for error elimination and
for removal of the restart inhibit. Following a successful FREE, ACK_REQ is reset to 0 by the
block.
Note
Once the maximum muting time is exceeded, TIME_MAX is rewound as soon as the
MUTING function is restarted.
FREE function
If an error cannot be corrected immediately, the FREE function can be used to free the
muting range. Enable signal Q and output MUTING =1 temporarily. The FREE function can
be used if:
● ENABLE = 1
● At least one muting sensor is activated
● A user acknowledgment with rising edge at input ACK occurs twice within 4 s, and the
second user acknowledgment at input ACK remains at a signal state of 1
(acknowledgment button remains activated)
WARNING
When using the FREE function, the action must be observed. A dangerous situation
must be able to be interrupted at any time by releasing the acknowledgment button. The
acknowledgment button must be mounted in such a way the entire danger area can be
managed.
Timing Diagrams for Discrepancy Errors at Sensor Pair 1 or Interruption of the Light Curtain (MUTING
Is Not Active)
(1) Sensor pair 1 (MS_11 and MS_22) is not activated within discrepancy time
DISCTIM1.
(2) The light curtain is interrupted even though there is no enable (ENABLE=0)
(3) FREE function
(4) Acknowledgment
WARNING
When STOP = 1 or ENABLE = 0, discrepancy monitoring is shut down. During this time, if
inputs MSx1/MSx2 of a sensor pair both assume a signal state of 1 due to an unknown
error, e.g., because both muting sensors fail to 1, the fault is not detected and the MUTING
function can be started unintentionally (when ENABLE =1).
Output DIAG
The DIAG output provides non-fail-safe information on errors for service purposes. You can
read out this information by means of operator control and monitoring systems or, if
applicable, you can evaluate it in your standard user program. DIAG bits 0 to 6 are saved
until acknowledgment at input ACK.
Structure of DIAG
Note
Access to the DIAG output is not permitted in the safety program!
See also
F-I/O DB (Page 101)
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Implementing User Acknowledgment in the Safety Program of a I-Slave F-CPU (Page 124)
Overview of F-application blocks (Page 183)
Connections
Principle of Operation
This F-application block implements an emergency STOP shutdown with acknowledgment
for Stop Categories 0 and 1.
Enable signal Q is reset to 0, as soon as the E_STOP input assumes a signal state of 0
(Stop category 0). Enable signal Q_DELAY is reset to 0 after the time delay set at input
TIME_DEL (Stop Category 1).
Enable signal Q is reset to 1 only if input E_STOP assumes a signal state of 1 and an
acknowledgment occurs. The acknowledgment for the enable takes place according to the
parameter assignment at input ACK_NEC:
● If ACK_NEC = 0, the acknowledgment is automatic.
● If ACK_NEC = 1, you must use a rising edge at input ACK for acknowledging the enable.
Output ACK_REQ is used to signal that a user acknowledgment is required at input ACK for
the acknowledgment. The F-application block sets output ACK_REQ to 1, as soon as input
E_STOP = 1.
Following an acknowledgment, the F-application block resets ACK_REQ to 0.
WARNING
Variable ACK_NEC must not be assigned a value of 0 unless an automatic restart of the
affected process is otherwise excluded.
Note
Prior to inserting F-application block F_ESTOP, you must copy F-application block F_TOF
from the F-Application Blocks\Blocks block container of the Distributed Safety F-library (V1)
to the block container of your S7 program, if it is not already present.
WARNING
When using F-application block F_ESTOP1, F-application block F_TOF must have number
FB 186 and must not be renumbered!
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the F-
application block (see figure in Chapter "F-Application Blocks")
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
The F-application block supports the requirements of EN 418, EN 292-2, and EN 60204-1.
Note: Only one emergency STOP signal (E_STOP) can be evaluated on the F-application
block. Discrepancy monitoring of the two NC contacts (when two channels are involved) in
accordance with Categories 3 and 4 as defined in ISO 13849-1:2006 / EN ISO 13849-1:2008
is performed with suitable configuration (type of sensor interconnection: 2-channel
equivalent) directly through the F-I/O with inputs. In order to keep the discrepancy time from
influencing the response time, during the configuration of discrepancy behavior, you must:
configure "Supply value 0".
Startup Characteristics
After an F-system startup, when ACK_NEC = 1, you must acknowledge the F-application
block using a rising edge at input ACK.
Output DIAG
The DIAG output provides non-fail-safe information on errors for service purposes. You can
read out this information by means of operator control and monitoring systems or, if
applicable, you can evaluate it in your standard user program. DIAG bits 1 to 5 are saved
until acknowledgment at input ACK.
Structure of DIAG
Note
Access to the DIAG output is not permitted in the safety program!
See also
F-I/O DB (Page 101)
Connections
Principle of Operation
This F-application block implements feedback monitoring.
To do this, the signal state of the output Q is checked for equality with the inverse signal
state of the feedback input FEEDBACK.
Output Q is set to 1 as soon as input ON = 1. Requirement for this is that the feedback input
FEEDBACK = 1 and no feedback error is saved.
Output Q is reset to 0, as soon as input ON = 0 or if a feedback error is detected.
A feedback error ERROR = 1 is detected if the inverse signal state of the feedback input
FEEDBACK (to input Q) does not follow the signal state of output Q within the maximum
tolerable feedback time. The feedback error is saved.
If a discrepancy is detected after a feedback error between the feedback input FEEDBACK
and the output Q, the feedback error is acknowledged in accordance with the parameter
assignment of ACK_NEC:
● If ACK_NEC = 0, the acknowledgment is automatic.
● If ACK_NEC = 1, you must acknowledge the feedback error with a rising edge at input
ACK.
The ACK_REQ = 1 output then signals that a user acknowledgment is necessary at input
ACK to acknowledge the feedback error. Following an acknowledgment, the F-application
block resets ACK_REQ to 0.
To avoid a feedback error from being detected and an acknowledgment from being required
when the F-I/O controlled by output Q are passivated, you must supply input QBAD_FIO with
the QBAD or QBAD_O_xx variable of the associated F-I/O.
WARNING
Variable ACK_NEC must not be assigned a value of 0 unless an automatic restart of the
affected process following a feedback error is otherwise excluded.
Note
Prior to inserting the F_FDBACK F-application block, you must copy the F_TOF F-application
block from the F-Application Blocks\Blocks block container of the Distributed Safety F-library
(V1) to the block container of your S7 program, if it is not already present.
WARNING
When using the F_FDBACK F-application block, the F_TOF F-application block must have
number FB 186 and must not be renumbered!
WARNING
When using an F-application block with time processing, take the following timing
imprecision sources into account when determining your response times:
• Known timing imprecision (based on standard systems) resulting from cyclic processing
• Timing imprecision resulting from the update timing of the time base used in the F-
application block (see figure in Chapter "F-Application Blocks")
• Tolerance of internal time monitoring in the F-CPU
– For time values up to 100 ms, a maximum of 20% of the (configured) time value
– For time values starting at 100 ms, a maximum of 2% of the (configured) time value
You must choose the interval between two call times of an F-application block with time
processing so that the required response times are achieved, taking into account the
possible timing imprecision.
Interconnection Example
(1) Standard DI
(2) Input FEEDBACK
(3) Output Q
The feedback contact is wired to a standard I/O module.
Startup Characteristics
After an F-system startup, the F-application block does not have be acknowledged when no
errors are present.
Output DIAG
The DIAG output provides non-fail-safe information on errors for service purposes. You can
read out this information by means of operator control and monitoring systems or, if
applicable, it can be evaluated in your standard user program. DIAG bits 0, 2, and 5 are
saved until acknowledgment at input ACK.
Structure of DIAG
Note
Access to the DIAG output is not permitted in the safety program!
See also
F-I/O DB (Page 101)
Overview of F-application blocks (Page 183)
Connections
Principle of Operation
This F-application block implements safety door monitoring.
Enable signal Q is reset to 0 as soon as one of the inputs IN1 or IN2 assumes a signal state
of 0 (safety door is opened). The enable signal can be reset to 1, only if:
● Inputs IN1 and IN2 both assume a signal state of 0 prior to opening the door (safety door
has been completely opened)
● Inputs IN1 and IN2 then both assume a signal state of 1 (safety door is closed)
● An acknowledgment occurs
The acknowledgment for the enable takes place according to the parameter assignment at
input ACK_NEC:
● If ACK_NEC = 0, the acknowledgment is automatic.
● If ACK_NEC = 1, you must use a rising edge at input ACK for acknowledging the enable.
Output ACK_REQ = 1 is used to signal that a user acknowledgment is required at input ACK
for the acknowledgment. The F-application block sets ACK_REQ = 1 as soon as the door is
closed. Following an acknowledgment, the F-application block resets ACK_REQ to 0.
In order for the F-application block to recognize whether inputs IN1 and IN2 are 0 merely due
to passivation of the associated F-I/O, you must supply inputs QBAD_IN1 or QBAD_IN2 with
the QBAD or QBAD_I_xx variable of the associated F-I/O or channel. This will prevent you
from having to open the safety door completely prior to an acknowledgment in the event the
F-I/O are passivated.
WARNING
Variable ACK_NEC must not be assigned a value of 0 unless an automatic restart of the
affected process is otherwise excluded.
Interconnection Example
You must interconnect the NC contact of position switch 1 of the safety door at input IN1 and
the NO contact of position switch 2 at input IN2. Position switch 1 must be mounted in such a
way that it is positively operated when the safety door is open. Position switch 2 must be
mounted in such a way that it is operated when the safety door is closed.
Startup Characteristics
After an F-system startup, enable signal Q is reset to 0. The acknowledgment for the enable
takes place according to the parameter assignment at inputs OPEN_NEC and ACK_NEC:
● When OPEN_NEC = 0, an automatic acknowledgement occurs independently of
ACK_NEC, as soon as the two inputs IN1 and IN2 assume signal state 1 for the first time
following reintegration of the associated F-I/O (safety door is closed).
● When OPEN_NEC = 1 or if at least one of the IN1 and IN2 inputs still has a signal state of
0 after reintegration of the associated F-I/O, an automatic acknowledgment occurs
according to ACK_NEC or you have to use a rising edge at input ACK for the enable.
Prior to acknowledgment, inputs IN1 and IN2 both have to assume a signal state of 0
(safety door has been completely opened) followed by a signal state of 1 (safety door is
closed).
WARNING
Output DIAG
The DIAG output provides non-fail-safe information on errors for service purposes. You can
read out this information by means of operator control and monitoring systems or, if
applicable, you can evaluate it in your standard user program.
Structure of DIAG
Note
Access to the DIAG output is not permitted in the safety program!
See also
F-I/O DB (Page 101)
Passivation and Reintegration of F-I/O after F-System Startup (Page 109)
Connections
Principle of Operation
This F-application block creates an acknowledgment for the simultaneous reintegration of all
F I/Os/channels of the F I/O of an
F-runtime group after communication errors or F I/O/channel errors.
For the reintegration an acknowledgment with a positive edge at the input ACK_REI_GLOB
is required. The acknowledgement is analogous to the user acknowledgment via the variable
ACK_REI of the F-I/O DB, however has a simultaneous effect on all F-I/Os of the F-runtime
group in which the F-application block is called.
If you use the F-application block F_ACK_GL, you do not have to provide for a user
acknowledgment for each F-I/O of the F-runtime group by means of the variable ACK_REI of
the F-I/O DB.
Note
Use of the F_ACK_GL F-application block is only possible if your safety program was
created with S7 Distributed Safety V5.4 or higher, you have configured channel-level
passivation for at least one F-I/O, or at least one F-I/O is connected to PROFINET IO. The F-
system block F_IO_CGP is then in the block container of the "S7-Program"
An acknowledgment via F_ACK_GL is only possible if the variable ACK_REI of the F-I/O DB
= 0. Accordingly, an acknowledgment via the variable ACK_REI of the F-I/O DB is only
possible if the input ACK_REI_GLOB of the F-application block = 0.
The F-application block is only allowed to be called once per F-runtime group.
See also
F-I/O DB (Page 101)
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Implementing User Acknowledgment in the Safety Program of a I-Slave F-CPU (Page 124)
9.1.2.19 FB 223 "F_SENDDP" and FB 224 "F_RCVDP": Send and Receive Data via PROFIBUS
DP
Introduction
You use F-application blocks F_SENDDP and F_RCVDP for fail-safe sending and receiving
of data by means of:
● Safety-related master-master communication
● Safety-related master-I-slave communication
● Safety-related I-slave-I-slave communication
Principle of Operation
F-application block F_SENDDP sends 16 data elements of data type BOOL and 2 data
elements of data type INT in a fail-safe manner to another F-CPU via PROFIBUS DP. There,
they can be received by the associated F_RCVDP F-application block.
In F_SENDDP, the data to be sent (for example, outputs of other F-blocks) are applied at
inputs SD_BO_xx and SD_I_xx.
In F_RCVDP, the data received are available at outputs RD_BO_xx and RD_I_xx for
additional processing by other F-blocks.
The operating mode of the F-CPU with the F_SENDDP is provided at output SENDMODE. If
the F-CPU with the F_SENDDP is in deactivated safety mode, output SENDMODE = 1.
Communication between F-CPUs takes place hidden in the background by means of a
special safety protocol. You must define an association between an F_SENDDP in one F-
CPU and an F_RCVDP in the other F-CPU by assigning a unique address association at the
DP_DP_ID inputs of the F_SENDDP and F_RCVDP. Associated F_SENDDPs and
F_RCVDPs receive the same value for DP_DP_ID.
WARNING
The value for each address association (input parameter DP_DP_ID; data type: INT) is
user-defined; however, it must be unique from all other safety-related communication
connections in the network.
You must supply inputs DP_DP_ID and LADDR with constant values when calling the F-
application block. Direct read or write access in the associated instance DB is not permitted
in the safety program!
Note
Within a safety program, you must assign a different start address at the LADDR input for
each F_SENDDP and F_RCVDB call. You must use a separate instance DB for each
F_SENDDP and F_RCVDP call.
The input and output parameters of the F_RCVDP must not be supplied with local data of the
F-program block.
You must not use an actual parameter for an output parameter of an F_RCVDP, if it is
already being used for an input parameter of the same F_RCVDP call or another F_RCVDP
or F_RCVS7 call. The F-CPU can go to STOP if this is not observed. One of the following
diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety Program: internal CPU fault; internal error information: 404"
Startup Characteristics
After the sending and receiving F-systems are started up, communication must be
established initially between communication peers F_SENDDP and F_RCVDP. During this
time, receiver F_RCVDP outputs the fail-safe values present at its inputs SUBBO_xx and
SUBBI_xx.
F_SENDDP and F_RCVDP signal this at output SUBS_ON with 1. Output SENDMODE has
a default of 0 and is not updated, as long as output SUBS_ON = 1.
WARNING
For the user acknowledgment, you must interconnect the ACK_REI input with a signal
generated by the operator input.
An interconnection with an automatically generated signal is not allowed.
Note that when a communication error occurs, the ERROR output (1=communication error)
is set for the first time if communication has already been established between
communication peers F-SENDDP and F_RCVDP. If communication cannot be established
after startup of the sending and receiving F-systems, check the configuration of the safety-
related CPU-CPU communication, F-SENDDP and F_RCVDP parameter assignment, and
the bus connection. You can also find possible causes of error by evaluating the RETVAL14
and RETVAL15 outputs.
In general, always evaluate RETVAL14 and RETVAL15, since only one of the two outputs
may be able to receive error information.
Output DIAG
In addition, non-fail-safe information about the type of error that has occurred is provided for
service purposes at output DIAG of both F-application blocks F_SENDDP and F_RCVDP.
You can read out this information by means of operator control and monitoring systems or, if
applicable, you can evaluate it in your standard user program. DIAG bits are saved until
acknowledgment at input ACK_REI.
Note
Outputs DIAG, RETVAL14, and RETVAL15 cannot be accessed in the safety program.
Additional Information
You will find more information about configuring and programming safety-related
communication between safety programs on different F-CPUs in the references provided
under "See also".
See also
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Overview of safety-related communication (Page 131)
Configuring Address Areas (Safety-Related Master-Master Communication) (Page 134)
Configuring Address Areas (Safety-Related Master-I-Slave Communication) (Page 144)
Configuring Address Areas (Safety-Related I-Slave-I-Slave Communication) (Page 156)
Introduction
You use the F_SENDS7 and F_RCVS7 F-application blocks for fail-safe sending and
receiving data via S7 connections.
Note
In S7 Distributed Safety, S7 connections are generally permitted over Industrial Ethernet
only!
Safety-related communication via S7 connections is possible from and to the following
CPUs:
• CPU 315F-2 PN/DP (only via PN interface of the CPU )
• CPU 317F-2 PN/DP (only via PN interface of the CPU)
• CPU 416F-3 PN/DP (only via PN interface of the CPU )
• CPU 416F-2 firmware version V4.0 and higher
Principle of Operation
F_SENDS7 sends the send data contained in an F-communication DB to the F-
communication DB of the associated F_RCVS7 in a fail-safe manner via an S7 connection.
An F-communication DB is an F-DB for safety-related CPU-CPU communication with special
properties. The properties, creation, and editing of F-communication DBs are described in
Chapter "Programming Safety-Related CPU-CPU Communication via S7 Connections".
You must specify the numbers of the F-communication DBs at inputs SEND_DB and
RCV_DB of F-application blocks F_SENDS7 and F_RCVS7.
The operating mode of the F-CPU with the F_SENDS7 is provided at output SENDMODE of
F_F_RCVS7. If the F-CPU with the F_SENDS7 is in deactivated safety mode, output
SENDMODE = 1.
To reduce the bus load, you can temporarily shut down communication between the F-
CPUs. To do so, supply input EN_SEND of F_SENDS7 with "0" (default = "1"). Then, send
data are no longer sent to the F-communication DB of the associated F_RCVS7 and the
receiver F_RCVS7 provides fail-safe values for this period (default F-communication DB). If
communication was already established between the partners, a communication error is
detected.
For F-CPU purposes, the local ID of the S7 connection (from connection table in NetPro)
must be specified at input ID of F_SENDS7 or F_RCVS7.
Communication between F-CPUs takes place hidden in the background by means of a
special safety protocol. You must define a communication association between an
F_SENDS7 in one F-CPU and an F_RCVS7 in the other F-CPU by assigning an odd number
at the R_ID inputs of the F_SENDS7 and F_RCVS7. Associated F_SENDS7s and
F_RCVS7s receive the same value for R_ID.
WARNING
The value for each address association (input parameter R_ID; data type: DWORD) is user-
defined; however, it must be unique from all other safety-related communication
connections in the network. The value R_ID + 1 is internally assigned and must not be
used.
You must supply inputs ID and R_ID with constant values when calling the F-application
block. Direct read or write access in the associated instance DB is not permitted in the
safety program!
Note
A separate instance DP must be used for each call of an F_SENDS7 and F_RCVS7. You
must not call these F-application blocks as multiple instances.
The input and output parameters of F_RCVS7 must not be supplied with local data of the F-
program block.
You must not use an actual parameter for an output parameter of an F_RCVS7, if it is
already being used for an input parameter of the same or another F_RCVS7 or F_RCVDP
call. The F-CPU can go to STOP if this is not observed. One of the following diagnostic
events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner
F-CPU"
• "Safety Program: internal CPU fault; internal error information: 404"
Startup Characteristics
After the sending and receiving F-systems are started up, communication must be
established initially between communication peers F_SENDS7 and F_RCVS7. Receiver
F_RCVS7 provides fail-safe values for this time period (default in its F-communication DB).
F_SENDS7 and F_RCVS7 signal this at output SUBS_ON with 1. Output SENDMODE of the
F_RCVS7 has a default of 0 and is not updated, as long as output SUBS_ON = 1.
WARNING
For the user acknowledgment, you must interconnect the ACK_REI input with a signal
generated by the operator input.
An interconnection with an automatically generated signal is not allowed.
Note that when a communication error occurs, the ERROR output (1=communication error)
is set for the first time if communication has already been established between
communication peers F-SENDS7 and F_RCVS7. If communication cannot be established
after startup of the sending and receiving F-systems, check the configuration of the safety-
related CPU-CPU communication, F-SENDS7 and F_RCVS7 parameter assignment, and
the bus connection. You can also find possible causes of error by evaluating the STAT_RCV
and STAT_SND outputs.
In general, always evaluate STAT_RCV and STAT_SND, since only one of the two outputs
may be able to receive error information.
If one of the DIAG bits is set at output DIAG, also check whether the length and structure of
the associated F-communication DB on the sender side match.
Output DIAG
The DIAG output provides non-fail-safe information on the type of communication errors that
occurred for service purposes. You can read out this information by means of operator
control and monitoring systems or, if applicable, you can evaluate it in your standard user
program. The DIAG bits are saved until acknowledgment at input ACK_REI of the associated
F_RCVS7.
Structure of DIAG
Note
Access to outputs DIAG, STAT_RCV, and STAT_SND is not permitted in the safety program!
Additional Information
You will find more information about configuring and programming safety-related
communication via S7 connections in the references provided under "See also".
See also
Implementing User Acknowledgment in the Safety Program of the F-CPU of a DP Master or
IO Controller (Page 121)
Implementing User Acknowledgment in the Safety Program of a I-Slave F-CPU (Page 124)
Overview of safety-related communication (Page 131)
Configuring safety-related communication using S7 connections (Page 173)
Connections
Principle of Operation
This F-application block shifts the content of the bits of the value transferred at input IN to
the left bit-by-bit. The bit locations that are freed up during the shift operation are filled with
zeros. Shift number N indicates by how many bits the content is to be shifted. The result of
the shift instruction is provided at output OUT. Output OUT is always 0 when 15 < N ≤ 255.
Note that when N < 0 or N > 255 is specified, only the low byte of the value transferred at
input N is evaluated as a shift number.
Connections
Principle of Operation
This F-application block shifts the content of the bits of the value transferred at input IN to
the right bit-by-bit. The bit locations that are freed up during the shift operation are filled with
zeros. Shift number N indicates by how many bits the content is to be shifted. The result of
the shift instruction is provided at output OUT. Output OUT is always 0 when 15 < N ≤ 255.
Note that when N < 0 or N > 255 is specified, only the low byte of the value transferred at
input N is evaluated as a shift number.
9.1.2.23 FC 176 "F_BO_W": Convert 16 Data Elements of Data Type BOOL to a Data Element
of Data Type WORD
Connections
Principle of Operation
This F-application block converts the 16 values of data type BOOL at inputs IN0 to IN15 to a
value of data type WORD, which is made available at output OUT. The conversion takes
place as follows: the ith bit of the WORD value is set to 0 (or 1), if the value at input INi is 0
(or 1).
Note: To supply inputs IN0 to IN15 with Boolean constants "0" and "1", you can access
variables "RLO0" and "RLO1" in the F-shared DB using a fully-qualified DB access
("F_GLOBDB".RLO0 or "F_GLOBDB".RLO1).
9.1.2.24 FC 177 "F_W_BO": Convert a Data Element of Data Type WORD to 16 Data Elements
of Data Type BOOL
Connections
Principle of Operation
This F-application block converts the value of data type WORD at input IN to 16 values of
data type BOOL, which are provided at outputs OUT0 to OUT15. The conversion takes place
as follows: output OUTi is set to 0 (or 1), if the ith bit of the WORD value is 0 (or 1).
9.1.2.25 FC 178 "F_INT_WR": Write Value of Data Type INT Indirectly to an F-DB
Connections
Principle of Operation
This F-application block writes the value of data type INT indicated at input IN to the variable
in an F-DB addressed by means of ADDR_INT and OFFS_INT.
The address of the variable addressed by means of ADDR_INT and OFFS_INT must be
within the address area defined by addresses ADDR_INT and END_INT.
If the F-CPU has gone to STOP mode with diagnostic event ID 75E2, verify that this
condition is satisfied.
The start address of the area with variables of data type INT in an F-DB in which the value at
input IN is to be written is transferred using the ADDR_INT input. The associated address
offset in this area is transferred using the OFFS_INT input.
The addresses transferred at the ADDR_INT or END_INT inputs must point to a variable of
data type INT in an F-DB. Only variables of data type INT are permitted between the
ADDR_INT and END_INT addresses. The ADDR_INT address must be smaller than the
END_INT address. As shown in the following example, the ADDR_INT and END_INT
addresses must be transferred fully-qualified as "DBx.DBWy" or in the corresponding
symbolic representation. Transfers in other forms are not permitted.
9.1.2.26 FC 179 "F_INT_RD": Read Value of Data Type INT Indirectly from an F-DB
Connections
Principle of Operation
This F-application block reads the variable of data type INT in an F-DB addressed using
ADDR_INT and OFFS_INT and makes it available at output OUT.
The address of the variable addressed by means of ADDR_INT and OFFS_INT must be
within the address area defined by addresses ADDR_INT and END_INT.
If the F-CPU has gone to STOP mode with diagnostic event ID 75E2, verify that this
condition is satisfied.
The start address of the area with variables of data type INT in an F-DB from which the
variable is to be read is transferred using the ADDR_INT input. The associated address
offset in this area is transferred using the OFFS_INT input.
The addresses transferred at the ADDR_INT or END_INT inputs must point to a variable of
data type INT in an F-DB. Only variables of data type INT are permitted between the
ADDR_INT and END_INT addresses. The ADDR_INT address must be smaller than the
END_INT address.
The ADDR_INT and END_INT addresses must be transferred fully-qualified as "DBx.DBWy"
or in the corresponding symbolic representation. Transfers in other forms are not permitted.
You will find examples for the parameter assignment of ADDR_INT, END_INT, and
OFFS_INT in the references provided under "See also."
See also
FC 178 "F_INT_WR": Write Value of Data Type INT Indirectly to an F-DB (Page 260)
Function
F-system blocks are automatically added when the safety program is compiled to create an
executable safety program from the safety program you create.
With F-system blocks, fault control measures are automatically added to your safety
program, and additional safety-related tests are performed.
When the safety program is compiled, F-system blocks are automatically added and stored
in the number range you have reserved for the "F-function blocks" in order to create an
executable safety program from the safety program you have programmed.
Note
You must not insert F-system blocks from the F-System Blocks block container in an F-PB/F-
FB/F-FC. Likewise, you must not modify (rename) or delete F-system blocks in the
Distributed Safety F-library (V1) or the block container of your user project.
See also
Overview of Configuration (Page 23)
9.1.4 F-Shared DB
Function
The F-shared data block is a fail-safe block that contains all of the shared data of the safety
program and additional information needed by the F-system. When the hardware
configuration is saved and compiled in HW Config, the F-shared DB is automatically inserted
and expanded.
Using the symbolic name of the F-shared DB (i.e., F_GLOBDB), you can evaluate certain
data of the safety program in the standard user program.
WARNING
Do not copy the F-shared DB from a safety program to another safety program (exception:
copying the entire S7 program).
See also
Data Transfer from the Safety Program to the Standard User Program (Page 127)
Data Transfer from Standard User Program to Safety Program (Page 129)
Introduction
You have the option of creating your own F-libraries for S7 Distributed Safety.
Introduction
The "Safety Program" dialog provides information about the safety program and contains
important functions you can use to edit your safety program.
Note
F-blocks are highlighted in yellow in SIMATIC Manager and in the "Safety Program" dialog.
• In SIMATIC Manager, know-how protected blocks are also represented with a lock
symbol.
Once the safety program has been successfully compiled, all blocks of the safety
program are know-how protected. The exception to this are any F-blocks you created (F-
PB, F-FBs, F-FCs, F-DBs) and did not assign know-how protection to.
• In the "Safety Program" dialog , F-blocks with F-attribute are also represented with an "F"
in the block symbol.
Once the safety program has been successfully compiled, only the blocks of the safety
program have the F-attribute.
Note
If a consistent safety program does not exist, the contents of the "F-runtime group ..." and
"F-I/O DBs" folders are not complete.
● The "Complete" folder contains all F-blocks of the offline block container.
The following properties are displayed for each F-block:
– Block designation (type/number) with/without F-attribute with/without know-how
protection in the block symbol
– Symbolic block name
– Function in the safety program
– Signature of the F-block
– Know-how protection is/has been selected (for offline safety program)
Note
The symbolic names of F-blocks from the Distributed Safety F-library (V1) and
automatically generated F-blocks must not be changed. The symbolic name of these
F-blocks must always match the header name; otherwise, the safety program compile
operation will be aborted.
Note
If the text below "Current Mode" is enclosed in square brackets [abc] , this indicates
that the collective signatures of the safety program and/or the passwords for the safety
program do not match online and offline. This means one of the following:
• The offline safety program was modified after downloading.
• The wrong F-CPU was addressed. You can verify the latter based on the online
collective signature of all F-blocks with F-attribute in the block container.
Click on the title row of the block list to sort the list.
Note that the current safety mode display may not be up to date if the programming device
or PC is not directly connected to the F-CPU/intelligent DP slave and the safety program
dialog for a safety program located on this F-CPU is opened. In this case, "unknown" is
output for the mode.
Solution: Connect the programming device or PC directly to the F-CPU for which the safety
program dialog should be opened.
To log the safety program, see Chapter "Printing Project Data of Safety Program".
See also
Safety Program States (Page 271)
Printing out Project Data (Page 297)
Possible States
The safety program can have the following states:
● Consistent
The collective signature of all F-blocks with F-attribute in the block container is identical to
the collective signature of the safety program.
F-blocks that are not called in the F-runtime group of the safety program are displayed in
the "Safety Program" dialog without the F-attribute in the block symbol and are not
included in the calculation of the collective signatures. When the safety program is
compiled, you are notified about unused F-blocks in the block container.
For greater clarity, it is recommended that you delete unused F-blocks. On the other
hand, it is possible to configure F-I/O that have not (yet) been addressed in the safety
program and still compile a consistent safety program. A consistent safety program is
required for the acceptance of the safety program.
● Inconsistent
The collective signature of all F-blocks with F-attribute in the block container and the
collective signature of the safety program are different, because, for example, an F-block
with F-attribute has been copied, but the copied F-block with F-attribute is not called in
the F-runtime group of the safety program.
If in the F-CPU a safety program has the state "inconsistent", the F-CPU startup is
prevented when the F-CPU supports this ID (see product information for respective F-
CPU). To obtain a consistent safety program you must regenerate the safety program.
● Modified
The collective signature of the safety program is set to "0" because the safety program or
the safety relevant parameter of the F-CPU and F I/Os have been changed.
The collective signature of all F-blocks with F-attribute in the block container is different to
the collective signature of the safety program.
If in the F-CPU a safety program has the state "modified", the F-CPU startup is prevented
when the F-CPU supports this ID (see product information for respective F-CPU). If F-
CPU does not support this ID executing a safety program with state "modified" can cause
the F-CPU to STOP in the enabled safety program.
To obtain a consistent safety program you must regenerate the safety program.
See also
Overview of System Acceptance Test (Page 313)
Note
Before you compile the safety program, close the LAD/FBD Editor, Display S7 Reference
Data, and Check Block Consistency applications, as well as the symbol table.
WARNING
You must not insert F-system blocks from the F-System Blocks block container of the
Distributed Safety library (V1) in an F-PB/F-FB/F-FC. Likewise:
• In the Distributed Safety F-library (V1), you must not:
• insert, delete, or rename F-system blocks in the Distributed Safety F-library (V1) or
the block container of your user project (offline). This could cause errors during the
next compile operation.
• Insert, delete, or rename F-system blocks in the Distributed Safety F-library (V1) or
the block container of your user project (online). This could cause the F-CPU to go to
STOP mode.
Depending on the extent of the intervention, the compiled safety program may not be
executable.
In this case, you must delete all automatically added F-blocks (that is, all F-blocks in
SIMATIC Manager indicated by a yellow symbol with F-STL programming language or
author FALGxxxx, and the F-shared DB); you must then perform the following actions:
• Copy all blocks from the F-Application Blocks block container of the Distributed
Safety library (V1) to your user project.
• Save and compile in HW Config.
• Defining the F-run-time groups
• Compile the complete safety program.
Note
Note that the checks described above are not exhaustive, e.g., the check to determine
whether F-DBs are write-accessed from the standard user program is unsuccessful in the
event of indirect addressing or partially qualified access to F-DBs in the standard user
program.
See also
Creating and editing F-FB/F-FC (Page 78)
Introduction
Once you have compiled your safety program, you can download it to the F-CPU. You have
the following options:
● Downloading the entire safety program in the "Safety Program" dialog in STOP mode.
This is the recommended method for downloading a consistent safety program.
● Downloading the changes in the safety program in the"Safety Program" dialog in STOP
mode
● Downloading individual F-blocks in SIMATIC Manager or FBD/LAD Editor
Procedure for Downloading the Entire Safety Program to the F-CPU in the "Safety Program" Dialog
1. Select the correct F-CPU or S7 program assigned to it.
2. In SIMATIC Manager, select the Options > Edit Safety Program menu command.
The "Safety Program" dialog will appear.
3. Activate the "Download" button.
All F-blocks with F-attribute belonging to the safety program are identified and
downloaded to the F-CPU.
A note is displayed offering you the option of downloading the standard user program in
addition to the safety program (provided this prompt is enabled).
If the safety program has been modified or is not consistent, you are notified of the option
to generate (compile) a consistent safety program.
4. Confirm the prompt indicating that the F-CPU will be stopped.
Note
To download the entire safety program, the F-CPU must be in STOP mode.
If you are downloading F-blocks only, the blocks in which the F-CALL blocks are called
(e.g., cyclic interrupt OB35) are not downloaded. You must then download these OBs
separately the same way as for a standard program.
Note
When you download the safety program in the "Safety Program" dialog, an online/offline
comparison is automatically performed for all F-blocks with F-attribute in the safety
program. All F-blocks without F-attribute are deleted in the F-CPU. The F-CPU now
contains exactly the same F-blocks with F-attribute as the offline block container.
5. In the "Safety Program" dialog, select the "Offline" and "Online" tabs in turn to check
whether the collective signatures of all F-blocks with F-attribute in the block container
match offline and online. If they match, downloading was successful. If not, repeat the
download operation.
6. To activate safety mode, switch the F-CPU from STOP to RUN mode.
Note
If the download operation is aborted, you must repeat the download step (step 3) and the
recheck the collective signatures of all F-blocks with F-attribute in the block container
online and offline (step 5).
Procedure for Downloading Changes to the Safety Program in the "Safety Program" Dialog
1. Select the correct F-CPU or S7 program assigned to it.
2. In SIMATIC Manager, select the Options > Edit Safety Program menu command.
The "Safety Program" dialog will appear.
3. Click the down-arrow "Download Changes" on the "Download" button.
All new and changed F-blocks with F-attribute in the safety program are identified and
downloaded to the F-CPU.
The rest of the procedure is the same as for downloading the entire safety program in the
"Safety Program" dialog (see above).
Note
Note that downloading changes in the safety program is intended for the commissioning
phase only. Prior to the acceptance test of the safety program, you must download the
complete safety program to the F-CPU. Failure to do so could result in different online and
offline time stamps for the F-blocks in the block container.
Note
In principle, it is possible to download a safety program from the F-CPU to a programming
device or PC. Note, however, that any symbols used in the safety program are deleted and
cannot be recreated, since no symbol information is saved in the F-CPU. Symbols are
available only if you are using an offline project.
After you upload a safety program to a programming device or PC, you can download it to
the F-CPU again without repeating acceptance testing as long as the safety program was
not modified. The safety program you downloaded to the F-CPU again can only be executed
if:
● The F-CPU did not execute the safety program prior to uploading it to the programming
device or PC.
● The hardware configuration of the safety-related communication (see Chapter
"Configuring and Programming Communication") has not been changed.
Note
If the safety program has been changed or has already been executed in the F-CPU, you
must do the following before downloading the complete safety program to the F-CPU
again:
1. Delete all instance DBs of F-blocks from the block container
2. Reinsert all F-blocks used in the safety program from the "Distributed Safety" library
(V1) or from a custom F-library in the offline block container, thereby overwriting
existing F-blocks
3. Reassign constants for parameters of F-blocks from the "Pointer" data type (required
for F-blocks F_INT_WR, F_INT_RD only)
4. Recompile the safety program. This recreates the deleted instance DBs.
The F-CPU can go to STOP mode if this is disregarded. One of the following diagnostic
events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
WARNING
A modification to the safety program causes a change in the collective signature, and,
consequently, a new acceptance test may be required.
Downloading to an S7-PLCSIM
You can test the safety program with the S7-PLCSIM function (hardware simulation) of
STEP 7.
Note
S7 Distributed Safety automatically determines whether the target device is a "real" F-
CPU or S7-PLCSIM. If the target device is S7-PLCSIM, special simulation blocks (F-
system blocks) are downloaded automatically from the S7 Distributed Safety F-library
(V1) to S7-PLCSIM.
Your offline safety program is unchanged and consistent following the download
operation to the S7-PLCSIM. The collective signature of all F-blocks with F-attribute no
longer matches the collective signature in S7-PLCSIM.
Because the safety program is not changed offline for support of S7-PLCSIM, it can also
be downloaded to an F-CPU after being downloaded to S7-PLCSIM. To download the
safety program to an F-CPU, simply deactivate S7-PLCSIM.
5. You must re-download the safety program to the S7-PLCSIM following each S7-PLCSIM
STOP.
It is also possible to download changes in the safety program to an S7-PLCSIM (see above).
Note
If S7 Distributed Safety detects an inconsistent safety program during startup of the F-CPU,
the F-CPU cannot be started up if the F-CPU supports this detection function (see Product
Information for the particular F-CPU). The following diagnostic event is then entered in the
diagnostic buffer of the F-CPU:
• “Inconsistent safety program”
If the F-CPU does not support this detection function, the F-CPU can go to STOP mode if an
inconsistent safety program is executed when safety mode is enabled. One of the following
diagnostic events is then entered in the diagnostic buffer of the F-CPU:
• "Data corruption in the safety program prior to output to F-I/O"
• "Data corruption in the safety program prior to output to partner F-CPU"
• "Safety program: internal CPU fault; internal error information: 404"
WARNING
If F-blocks are downloaded in SIMATIC Manager or FBD/LAD Editor, you must ensure that
there is not an unused F-CALL in the block container. If you always download the safety
program in the "Safety Program" dialog, all uncalled F-blocks - including an unused F-CALL
block - are automatically deleted.
See also
Testing the Safety Program (Page 308)
Estimation
You can estimate the work memory requirement for the safety program as follows:
5 x work memory requirement for all F-DBs (including F-communication DB, but excluding
DB for F-runtime group communication) and I-DBs for F-PB/F-FB
+ 24 x work memory requirement for all DBs for F-runtime group communication
+ 2.3 x work memory requirement for all I-DBs of F-application blocks (except
F_SENDDP, F_RCVDP, F_SENDS7, and F_RCVS7)
+ Work memory requirement for all I-DBs of the F-application blocks F_SENDDP (0.2
Kbyte), F_RCVDP (0.3 Kbyte), F_SENDS7 (0.6 Kbyte), and F_RCVS7 (1.0 Kbyte).
+ 0.7 Kbyte per F-FC (including F-application block of type FC)
+ 0.7 Kbyte per F-I/O (for F-I/O DBs, etc.)
+ 4.5 Kbytes
WARNING
If the function test of the safety program is not carried out in the target F-CPU, you must
comply with the following procedure when transferring the safety program to the F-CPU
with a programming device or PC to ensure that the F-CPU does not contain an "old"
safety program:
• For F-CPUs with MMC: Download the safety program to the F-CPU in the "Safety
Program" dialog.
• For F-CPUs with inserted Flash Card: Download the safety program to the F-CPU in
the "Download User Program to Memory Card" dialog.
• Perform a program identification (that is, check to determine whether the collective
signatures of all F-blocks with F-attribute in the block container match online and
offline).
• Perform a memory reset of the F-CPU using the mode selector or via the
programming device/PC. Once the work memory has been deleted, the safety
program is again transferred from the load memory (Memory Card MMC for F-CPUs
3xxF and IM 151-7 F-CPU or Flash Card for F-CPUs 4xxF).
WARNING
If multiple F-CPUs can be reached over a network (such as MPI) by one programming
device or PC, you must take the following actions to ensure that the safety program is
downloaded to the correct F-CPU:
Use passwords specific to each F-CPU, such as a uniform password for the F-CPUs
having the respective MPI address as an extension: "Password_8".
Note the following:
• A point-to-point connection must be used when assigning a password to an F-CPU
for the first time (analogous to assigning an MPI address to an F-CPU for the first
time).
• Before downloading a safety program to an F-CPU for which access authorization by
means of an F-CPU password does not yet exist, you must first revoke existing
access authorization for any other F-CPU.
WARNING
If the function test of the safety program is not carried out in the target F-CPU, you must
comply with the following procedure when transferring the safety program to the F-CPU
with a programming device or PC to ensure that the F-CPU does not contain an "old"
safety program:
• Perform a memory reset of the F-CPU using the mode selector or via the
programming device/PC.
• Download the configuration to the F-CPU in HW Config.
• Download the safety program to the F-CPU in the "Safety Program" dialog.
• Perform a program identification (that is, check to determine whether the collective
signatures of all F-blocks with F-attribute in the block container match online and
offline).
WARNING
If multiple F-CPUs can be reached over a network (such as MPI) by one programming
device or PC, you must take the following actions to ensure that the safety program is
downloaded to the correct F-CPU:
Use passwords specific to each F-CPU, such as a uniform password for the F-CPUs
having the respective MPI address as an extension: "Password_8".
Note the following:
• A point-to-point connection must be used when assigning a password to an F-CPU
for the first time (analogous to assigning an MPI address to an F-CPU for the first
time).
Before downloading a safety program to an F-CPU for which access authorization by
means of an F-CPU password does not yet exist, you must first revoke existing access
authorization for any other F-CPU.
WARNING
If the function test of the safety program is not carried out in the target F-CPU, you must
comply with the following procedure when transferring the safety program to the F-CPU
with a memory card (MMC or Flash Card) to ensure that the F-CPU does not contain an
"old" safety program:
• Turn off the power to the F-CPU. For F-CPUs with battery backup (e.g., CPU 416F-
2), remove the battery, if present. (To make sure that the F-CPU is de-energized,
wait for the buffer time of the power supply you are using or, if this is unknown,
remove the F-CPU.)
• Remove the Memory Card (MMC or Flash Card) with the old safety program from the
F-CPU.
• Insert the Memory Card (MMC or Flash Card) with the new safety program in the F-
CPU.
• Switch on the F-CPU again. For F-CPUs with battery backup (e.g., CPU 416F-2),
reinsert the battery, if one was removed.
You must make sure that the inserted memory card (MMC or Flash Card) contains the
correct safety program. You can do so through a program identification or other
measures, such as a unique identifier on the memory card (MMC or Flash Card).
When downloading a safety program to a memory card (MMC or Flash Card), you must
adhere to the following procedure:
• Download the safety program to the memory card (MMC or flash card).
• Perform a program identification - in other words, check whether the collective
signatures of all F-blocks with F-attribute in the offline block container and on the
memory card (MMC or Flash Card) match.
• Affix an appropriate label to the memory card (MMC or Flash Card).
The procedure outlined must be ensured through organizational measures.
See also
Comparing Safety Programs (Page 290)
Introduction
Changes to the safety program during operation (in RUN mode) can only be made in
deactivated safety mode. You make changes to F-blocks offline in the FBD/LAD Editor in the
same way as for a standard program. F-blocks cannot be modified online.
Note
If you do not want to modify the safety program during operation, see Chapter "Creating F-
Blocks in F-FBD/F-LAD".
Note
When downloading in SIMATIC Manager, you can only download fail-safe blocks created
by you (F-PB, F-FB, F-FC, or F-DB), F-application blocks, or standard blocks and their
associated instance DBs in deactivated safety mode. If you download automatically
added F-blocks (F-SBs or automatically generated F-blocks and associated instance DBs
or F-shared DB), the F-CPU can go to STOP mode or safety mode can be activated.
Therefore, when downloading in SIMATIC Manager, always select individual F-blocks
instead of the "Station," "S7 Program," or "Block Container" objects.
WARNING
In safety mode, access by means of the F-CPU password must not be authorized when
making changes to the standard user program, since changes to the safety program can
also be made. To rule out this possibility, you must configure Level of Protection 1. If only
one person is authorized to change the standard user program and the safety program,
level of protection "2" or "3" should be configured so that other persons have only limited
access or no access at all to the entire user program (standard and safety programs).
See also
Configuring the F-CPU (Page 26)
Creating F-Blocks in F-FBD/F-LAD (Page 77)
Compiling Safety Program (Page 272)
Downloading the Safety Program (Page 275)
Safety Program Acceptance Test (Page 317)
4. Select the safety program you would like to compare with. Activate the "Browse..." button
to indicate its path.
5. Activate the "Start comparison" button.
The required block comparison is executed, and the different F-blocks are displayed in
tabular form in the dialog box.
Result of Comparison
The comparison result displays modified F-blocks (different entries in the "Signature in
Source Program" and "Signature in Compared Program" columns), F-blocks located in the
source program only (entry in "Signature in Source Program" column only), and F-blocks
located in the compared program only (entry in "Signature in Compared Program" column
only). The "Interface Different" column indicates whether or not changes have occurred in
the declaration table of F-blocks.
The result can be printed out with the "Print" button.
If you are comparing an offline safety program with an online safety program and the
connection to the F-CPU is interrupted during the comparison, the comparison result will be
incorrect.
Assignment of Changes
You can assign the changes in the safety program on the basis of the modified F-blocks
indicated in the comparison result:
The changes can also occur in combination, meaning that changes to an F-block can have
multiple causes.
If no modified F-blocks are indicated, but the collective signature is different, differences
exist in the automatically generated blocks, which are not included in the comparison. This
can occur, for example, if you renumber F-blocks or modify the resources reserved for the
safety program in the object properties dialog for the F-CPU in HW Config.
Logbook
Changes and actions for a safety program are logged in a logbook. Various user actions
result in corresponding entries in the logbook.
Each safety program has its own logbook. Entries are listed in chronological order. A
logbook can contain up to 300 entries. When the number of entries exceeds 300, the entries
are overwritten in order.
The logbook function for the safety program is not safety-related as defined in
IEC 61508:2000.
Introduction
The "Print" button in the "Safety Program" dialog allows you to print out all important project
data of the hardware configuration and the safety program that you need, for example, for
the system acceptance test. The signatures in the footer of the printouts ensure that the
printouts are explicitly associated with a safety program.
Note
Before you print out the project data, close the HW Config and LAD/FBD Editor applications
and the symbol table.
Procedure for Printing All Important Project Data of the Hardware Configuration and the Safety
Program
1. In SIMATIC Manager, select the correct F-CPU or S7 program assigned to it.
2. In SIMATIC Manager, select the Options > Edit Safety Program menu command.
The "Safety Program" dialog will appear.
3. Click the "Print" button.
Then, you can select the print content:
● "Function Block Diagram/Ladder Diagram":
All F-blocks (F-PB, F-FB, F-FC, F-DB) that you created in the safety program in the
applicable programming language. For F-DBs, the data view is printed.
● "Safety program":
List of all F-blocks of the safety program and other data relevant to the acceptance test
(see Chapter "Printed Project Data for the Safety Program")
● "Hardware Configuration..." (see Chapter "Printed Project Data for the Hardware
Configuration")
● "Symbol table"
You must print out all print content for the system acceptance test.
Note
If "Symbols changed" is output, it signifies that assignments for global or local symbols
have changed (e.g., changes in the symbol table or to parameter names of F-DBs or F-
FBs) and the changes were not made in all affected F-FB/F-FCs.
To correct this situation, use the "Check block consistency" function (see STEP 7 online
help). If necessary, you must recompile the safety program.
Procedure
If you have selected the "Hardware Configuration..." print content, a follow-up dialog is
displayed.
1. Select "All" as the print area. The printout will then include the "Module description" and
the "Address list".
2. Select the "Including parameter description" option to include your parameter descriptions
in the printout.
Printed Information
The following information in the printout of the hardware configuration ("Hardware
Configuration..." print content) is important for the configuration acceptance test:
● The following F-CPU parameters:
– Protection level
– F-parameters
● All parameters of the F-I/O
Printed Information
The printout of the safety program ("Safety program" print content) contains the following
information important for the safety program acceptance test:
● Collective signatures:
– "F-blocks with F-attribute in the block container" (= "collective signature of all F-
blocks with F-attribute in the block container" in the "Safety Program" dialog; also
displayed in the footer of the printout)
– "Safety Program" (= "collective signature of the safety program" in the "Safety
Program" dialog = value of the "F_PROG_SIG" variable in the F-shared DB)
These two signatures must match for the acceptance test.
Differences between the two signatures generally indicate that the safety program has
been changed or is inconsistent. This is also indicated in the footer.
● Version identifier of S7 Distributed Safety last used to compile the safety program
● Time when safety program was compiled
● Message if the amount of local data reserved for the safety program has been exceeded
● List of all F-blocks contained in the block container (Square brackets enclosing the block
name and signature designate F-blocks without F-attribute)
Information provided for each F-block:
– Block number
– Symbolic name
– Function in the safety program (F-CALL, F-program block, etc.)
– Signature
– Initial value signature for all F-FBs not generated automatically
● List of parameters for safety-related CPU-CPU communication, such as:
– DP_DP_ID and LADDR of F_SENDDP, F_RCVDP
– ID, R_ID, and number of the F-communication DB of F_SENDS7, F_RCVS7
– TIMEOUT of F_SENDDP, F_RCVDP, F_SENDS7, F_RCVS7
The following information is provided for parameters:
– Parameter name
– Name of the associated F-application block
– Numbers of instance DBs used to call the F-application block
– Name of F-block in which the F-application block is called
– Network number of call
– Name of F-runtime group (Name of F-CALL)
– Parameter value
● List of the F-I/O addressed in the F-runtime group (that is, not for all F-I/O configured in
HW Config, but rather only for those F-I/O actually used):
– Symbolic name of the F-I/O DB
– Number of the F-I/O DB
– Start address
– Name/identifier of the F-I/O
– Module type
– F_Monitoring_Time
– Cyclic redundancy check by means of parameter assignment (in order to allow quick
detection of changes on the I/O)
– PROFIsafe source and target address
– PROFIsafe mode
– Type of passivation
● The following information is indicated for the F-shared DB of the safety program:
– Number of the F-shared DB
– Symbolic name F_GLOBDB
– Absolute and symbolic address of the safety program's collective signature
– Absolute and symbolic address for reading out the operating mode
– Absolute and symbolic address for reading out error information
– Absolute and symbolic address for reading out the compilation time
– Absolute and symbolic address of the RLO 0
– Absolute and symbolic address of the RLO 1
● Additional information
– The setting of the "Safety mode can be deactivated" parameter for the safety program
– Printout created on
– Total number of pages in this printout
See also
"Safety Program" Dialog (Page 267)
Testing Options
In general, all read-only test functions (such as variable monitoring) are also available for
safety programs and in safety mode. While all F-blocks can be used as the monitored object,
this is only useful for the F-blocks created by you (F-PB, F-FB, F-FC, and F-DB). Monitoring
is available without restrictions.
It is possible to modify data of the safety program using the "Monitor/modify variable"
function and to gain write access using HW Config or FBD/LAD Editor. However, restrictions
apply and safety mode must be deactivated. Other write accesses to the safety program are
not permitted and can cause the F-CPU to go to STOP mode.
Note
You can use F-application blocks F_SENDDP, F_RCVDP, F_SENDS7, F_RCVS7 in
conjunction with the S7-PLCSIM function (hardware simulation) of STEP 7. Note, however,
that the F-application blocks constantly signal "communication errors" when they are run in
the simulation CPU.
Introduction
The safety program generally runs in the F-CPU in safety mode. This means that all fault
control measures are activated. The safety program cannot be modified during operation (in
RUN mode) in safety mode. You must deactivate safety mode of the safety program to
download changes to the safety program in RUN mode. Safety mode remains deactivated
until F-CPU is next switched from STOP to RUN mode.
You can enable or disable the option for deactivating the safety mode in the object properties
of the F-CPU, "F-Parameter" tab.
WARNING
Because changes to the safety program can be made in RUN mode when safety mode is
deactivated, you must take the following into account:
• Deactivation of safety mode is intended for test purposes, commissioning, etc.
Whenever safety mode is deactivated, the safety of the system must be ensured by
other organizational measures, such as operation monitoring and manual safety
shutdown.
• Deactivation of safety mode must be indicated.
The printout of the safety program contains the address of the variables in the F-shared
DB ("F_GLOBDB".MODE) that you can evaluate to read out the operating mode (1 =
deactivated safety mode). Thus, not only is the deactivated safety mode displayed on
the programming device or PC in the dialog box for deactivating safety mode, but it can
also be indicated by means of an indicator light controlled by the standard user program
or a message to an operator control and monitoring system generated by evaluating the
"Deactivated Safety Mode" variable in the F-shared DB.
• Changes in the safety program in RUN mode when safety mode is deactivated can
cause changeover effects to occur. The procedure for downloading F-blocks in
deactivated safety mode is the same as for a standard program. Observe the applicable
rules for the download sequence in the online Help for STEP 7 .
• To the extent possible, the standard user program and the safety program should be
modified separately, and changes should be downloaded; otherwise, an error could be
downloaded simultaneously to the standard user program, thus disrupting a necessary
protective feature or causing changeover effects to occur in both the safety program and
the standard program.
• It must be possible to verify that safety mode has been deactivated. A log is required, if
possible by recording messages to the operator control and monitoring system, but if
necessary, through organizational measures. In addition, it is recommended that
deactivation of safety mode be indicated on the operator control and monitoring system.
• Safety mode is deactivated across the F-CPU only. You must take the following into
account for safety-related CPU-CPU communication: If the F-CPU with the F_SENDDP
or F_SENDS7 is in deactivated safety mode, you can no longer assume that the data
sent by this F-CPU are generated safely. You must then implement organizational
measures such as operation monitoring and manual safety shutdown to ensure safety in
those portions of the system that are affected by the sent data. Alternatively, you must
output fail-safe values instead of the received data in the F-CPU with F_RCVDP or
F_RCVS7 by evaluating SENDMODE.
Note
If the text below "Current mode:" is enclosed in square brackets [abc], this indicates that
the collective signatures of the safety program and/or the passwords for the safety
program do not match online and offline. This means one of the following:
• The offline safety program was modified after downloading.
• The wrong F-CPU was addressed. You can verify the latter based on the online
collective signature of all F-blocks with F-attribute in the block container.
5. Activate the "Safety mode" button, and enter the password for the online safety program.
If the password is not valid, safety mode is not deactivated and remains active.
6. If you enter the correct password, another prompt will appear, which also contains the
collective signature of the safety program in the F-CPU. Check to see whether this is the
collective signature you expected.
7. If it is not the collective signature you expected, verify that you have addressed the
correct F-CPU and check to see whether the F-CPU contains the correct F-blocks. To do
this, close all STEP 7 applications and then open the "Safety Program" dialog; this is
necessary to prevent multiple applications from accessing the F-CPU simultaneously.
Note
To activate safety mode, the F-CPU must be switched from STOP to RUN mode.
Switching the F-CPU from STOP to RUN mode always activates safety mode, even if the
safety program has been modified or is not consistent. The MODE variable in the F-shared
DB is set to "0". Keep this in mind when you evaluate the MODE variable to read out the
operating mode.
If you have modified your safety program, but have not recompiled and downloaded it, the F-
CPU can revert to STOP mode.
WARNING
When the safety program is in deactivated safety mode, the "MODE" variable in the F-
shared DB is also evaluated in deactivated safety mode.
Even if the F-I/O are passivated in deactivated safety mode as a result of evaluation of the
"MODE" variable, system safety must be ensured in deactivated safety mode through other
organizational measures, such as operation monitoring and manual safety shutdown.
See also
Modifying the safety program in RUN mode (Page 287)
Introduction
In deactivated safety mode, certain fault control measures of the safety program are
deactivated to enable online changes to be made to the safety program in RUN mode. In this
way, safety program data can be changed using standard STEP 7 tools.
Modifying the Data of the Safety Program with "Monitor/Modify Variable" Function
In addition to data in the standard user program, which can always be modified, you can
modify the following data in a safety program using the "Monitor/Modify Variable" function in
deactivated safety mode:
● Process image of F-I/O
● F-DBs (except DB for F-runtime group communication), instance DBs of F-FBs
● Instance DBs of F-application blocks
● F-I/O DBs (for permitted signals, see Chapter "F-I/O DB")
Note
F-I/O can only be modified in RUN mode of the F-CPU. You must allocate a separate row
in the variable table for each channel to be modified; this means, for example, that digital
channels of data type BOOL cannot be modified on a byte-by-byte or word-by-word
basis.
You can modify a maximum of 5 inputs/outputs from one variable table. You can use
more than one variable table.
You cannot modify configured F-I/O in which no single channel or variable from the
associated F-I/O DB has been used. Therefore, always use at least one variable from the
associated F-I/O DB or at least one channel of the F-I/O to be controlled in your safety
program.
As a trigger point, you must set "Begin scan cycle" or "End scan cycle". Note, however,
that regardless of the trigger point setting, requests to modify inputs (PII) of F-I/O always
become effective before the F-PB is executed and requests to modify outputs (PIQ)
always become effective after execution of the F-PB.
For inputs (PII), modify requests take priority over fail-safe value output, while for outputs
(PIQ), fail-safe value output takes priority over modify requests. For outputs (channels)
that are not activated in the object properties for the F-I/O in HW Config (see F-I/O
manuals), modify requests affect the PIQ only, and not the F-I/O.
As the trigger frequency, you can set "Once" or "Permanently".
WARNING
Wiring Test
The wiring test is simplified by using symbolic names for the signals.
You can carry out a wiring test for an input by modifying an input signal and verifying
whether or not the new value arrives at the PII.
You can carry out a wiring test for an output by modifying the output with the Modify function
and verifying whether the required actuator responds.
For the wiring test (for both inputs and outputs), note that a safety program must be running
on the F-CPU, in which at least one channel of the F-I/O to be modified or one variable from
the associated F-I/O DB has been used.
For F-I/O that can also be operated as standard I/O (e.g., S7-300 fail-safe signal modules),
you can also carry out the wiring test for outputs using the Modify function in STOP mode by
operating the F-I/O as standard I/O rather than in safety mode. When doing so, you must
comply with the other rules for testing.
Note
A Modify function controlled by the F-system requires the use of STEP 7 with the S7
Distributed Safety optional package. If an operator control and monitoring system or STEP 7
without the S7 Distributed Safety optional package is used to modify variables, the F-CPU
can go to STOP mode.
Testing and commissioning functions are selected with standard STEP 7 tools (FBD/LAD
Editor/Variable Editor/HW Config). An attempt to modify a safety program in safety mode is
rejected with a corresponding error message, or a dialog box for deactivating safety mode is
provided. In certain circumstances, a modify request can cause the F-CPU to go to STOP
mode.
Opening F-Blocks
The FBD/LAD Editor can be used to open an F-block online in the F-CPU as a write-
protected block only, that is, you cannot modify an F-block directly in the F-CPU, even if
safety mode is deactivated. Instead, you must edit it offline and then download it.
Note
If you use the "Monitor/Modify Variable" function to test a safety program, this function
does not detect all additional changes you make using other applications in the F-CPU.
For example, if the collective signature of the safety program is changed through
revision/modification while safety mode is deactivated, the change may not be detected
and an old collective signature may continue to be displayed.
In such cases, terminate the "Monitor/Modify Variable" function and restart the function in
order to work with updated data.
Note
If you would like to modify variables in an S7-PLCSIM, you must deactivate safety mode
beforehand.
Otherwise, the S7-PLCSIM can go to STOP mode. You can only deactivate safety mode in
the "Safety Program" dialog.
For a detailed description of the S7-PLCSIM function of STEP 7, refer to the S7-PLCSIM
V5.x user manual.
Program structure of the safety program in S7 Distributed Safetyprocess or fail-safe
valuesChanges to the safety program in RUN)
See also
Structure of the Safety Program in S7 Distributed Safety (Page 57)
Process Data or Fail-Safe Values (Page 99)
F-I/O DB (Page 101)
Downloading the Safety Program (Page 275)
Modifying the safety program in RUN mode (Page 287)
Deactivating Safety Mode (Page 304)
Introduction
During the system acceptance test, all relevant application-specific standards must be
adhered to as well as the procedure described below. This also applies to systems that are
not "subject to acceptance testing". For the acceptance test, you must consider the systems
in the Certification Report.
As a general rule, the acceptance test of an F-System is performed by independent experts.
Requirements
The hardware configuration and parameter assignment is complete.
The safety program has been created and compiled and is consistent.
Procedure
Use the following procedure for the system acceptance test:
1. Back up the entire the STEP 7 project.
2. Select the "Offline" tab in the "Safety Program" dialog.
3. Print the project data with all print content (see Chapter "Printing the Project Data").
4. Check all printouts (see Chapter "Checking the Printouts").
5. Download the complete safety program to the F-CPU (see Chapter "Checks after
Downloading the Safety Program to the F-CPU").
6. Carry out a complete function test.
See also
Downloading the Safety Program (Page 275)
Printing out Project Data (Page 297)
Testing the Safety Program (Page 308)
Procedure
Check the printouts as follows:
1. Check whether the two signatures in the footer of the printout matches in all four
printouts:
– Collective signature of all F-blocks with F-attribute in the block container
– Signature of symbols
2. Check whether "Symbols changed" is output in the footer of the printout.
3. Check the printout of the hardware configuration (see Chapter "Configuration Acceptance
Test of F-CPU and F-I/O").
4. Check the printout of the F-blocks you created (F-PBs, F-FBs, F-FCs, and F-DBs).
5. Check the printout of the symbol table.
6. Check the "Safety program" printout (see Chapter "Safety Program Acceptance Test").
Note
If "Symbols changed" is output, it signifies that assignments for global or local symbols
have changed (e.g., changes in the symbol table or to parameter names of F-DBs or F-
FBs) and the changes were not made in all affected F-FB/F-FCs.
To correct this situation, use the "Check block consistency" function (see STEP 7 online
help). If necessary, you must recompile the safety program.
11.2.1 Acceptance Test for the Configuration of the F-CPU and the F-I/O
WARNING
In safety mode, access by means of the F-CPU password must not be authorized when
making changes to the standard user program, since changes to the safety program can
also be made. To rule out this possibility, you must configure Protection Level 1. If only
one person is authorized to change the standard user program and the safety program,
level of protection "2" or "3" should be configured so that other persons have only limited
access or no access at all to the entire user program (standard and safety programs).
Note
F-I/O that are to be assigned the same safety-related parameters (except for PROFIsafe
addresses) can be copied during configuration. Except for the PROFIsafe addresses, you
no longer have to check the safety-related parameters individually. It is sufficient to
compare the "Parameter CRC (without F-addresses)" of the copied F-I/O, or "F_Par_CRC
(without F-addresses)" in the case of fail-safe DP standard slaves/standard I/O devices,
with the corresponding cyclic redundancy check of the already checked F-I/O. The
"Parameter CRCs (without F-addresses)" can be found in the printout of the hardware
configuration in the respective module description of the F-I/O.
3. Check that the PROFIsafe destination addresses are unique from one another.
WARNING
10.Check the following For each F-I/O addressed in the F-runtime group:
– Based on the start address of the F-I/O, check whether the symbolic name used in the
safety program and the number of the F-I/O DB belong to the proper F-I/O.
– Check whether the value of F_Monitoring_Time matches the corresponding value of
the F-I/O with the same start address in the "Hardware configuration" printout (or
"F_WD_Time" for fail-safe DP standard slaves/standard I/O devices).
– Check whether PROFIsafe is in V2 mode when F-I/O are used on PROFINET IO or in
a hybrid configuration on PROFIBUS DP and PROFINET IO based on IE/PB Links.
– Check whether the type of passivation corresponds the value you configured.
11.Check the additional information:
– Check whether the "Safety mode can be deactivated" setting corresponds the value
you configured.
– Check whether the printout of the project data is complete based on the total page
count.
See also
Printing out Project Data (Page 297)
Introduction
You download the S7 program to the F-CPU as described in Chapter "Downloading the
Safety Program". Afterwards, you perform the checks described below.
Note
The "Safety Program" dialog must be used to download F-blocks the last time prior to the
acceptance test. Downloading the changes is not sufficient.
Note
In the case of recurring tests, you can determine whether the F-CPU contains the correct
safety program by comparing the online collective signature of all F-blocks with F-attribute in
the block container with the collective signature in the accepted offline printout.
If there is no programming device or PC with S7 Distributed Safety V5.4 available for
recurring tests, you can read out the collective signature of the safety program from the F-
shared DB using an operator control and monitoring system. You can obtain the address in
the F-shared DB where the collective signature of the safety program is found
("F_PROG_SIG" variable) from the "Safety program" printout. This option should only be
used if you do not have to perform a manipulation.
See also
Downloading the Safety Program (Page 275)
Introduction
For the acceptance test of changes, you must use the same procedure as for the initial
acceptance test (see Chapter "Overview of System Acceptance Test").
For the acceptance test of changes, it is sufficient to check the following aspects of the
hardware configuration and the F-blocks and to perform the following function test:
● Check the safety-related parameters of the changed or newly added F-I/O in the printout
of the hardware configuration.
● Check the changed or newly added F-blocks in the printout of the F-blocks.
● Check whether the signatures and initial value signatures of the modified F-application
blocks and F-system blocks in the printout of the safety program match the signatures
specified in Annex 1 of the Certification Report.
● Perform a function test of the changes.
Note
If the safety program occupies block numbers (for FBs, DBs, and FCs) that are required by
the software package, it may be necessary to change the safety program to release the
block numbers for subsequent use of the software package. This requires another
acceptance test for the changes in the safety program.
See also
Downloading the Safety Program (Page 275)
Comparing Safety Programs (Page 290)
Testing the Safety Program (Page 308)
Introduction
Pay attention to the following important notes on safety mode of the safety program.
WARNING
If you operate simulation devices or simulation programs that generate safety message
frames, e.g., based on PROFIsafe, and make them available to an S7 Distributed Safety F-
system via the bus system (such as PROFIBUS DP or PROFINET IO), you have to ensure
the safety of the F-system using organizational measures, such as operational monitoring
and manual safety shutdown.
If you use the S7-PLCSIM function of STEP 7 to simulate safety programs, these measures
are not necessary because S7-PLCSIM cannot establish an online connection to a real S7
component.
Note, for example, that a protocol analyzer may not perform functions that reproduce
recorded frame sequences with correct time behavior.
WARNING
Switching from STOP to RUN mode using a programming device or PC interface, mode
selector, or communication function is not interlocked. For example, only one keystroke is
necessary to switch from STOP to RUN mode on a programming device or PC interface.
For this reason, a STOP that you have set by means of a programming device or PC, mode
selector, or communication function must not be regarded as a safety condition.
Therefore, always switch off the F-CPU directly at the device when performing maintenance
work.
WARNING
A STOP state initiated by SFC46 "STP" can be canceled very easily (and unintentionally)
from the programming device or PC. For this reason, an F-CPU STOP initiated by SFC46 is
not a fail-safe STOP.
Note
CRC error in safety-related communication
If you observe that an F-CPU requests manual acknowledgement of a CRC error more than
once within the space of 100 hours, and this occurs repeatedly, check whether the
PROFINET or PROFIBUS installation guidelines have been followed.
There is a CRC error if:
• The ACK_REQ tag of the F-I/O DB is set and the DIAG tag of the F-I/O DB (bit 2 or bit 6)
indicates CRC errors
• A CRC error is entered in the diagnostic buffer of the F-CPU
In this case, the probability of failure values (PFD/PFH) for safety-related communication no
longer apply.
Information on installation guidelines for PROFINET and PROFIBUS can be found in:
• PROFINET Installation Guide (http://www.profibus.com/nc/download/installation-
guide/downloads/profinet-installation-guide/display/)
• PROFIBUS Installation Guidelines (http://www.profibus.com/nc/download/installation-
guide/downloads/profibus-installation-guideline/display/)
If your check indicates that the installation guidelines for PROFIBUS and PROFINET have
been met, contact Technical Support.
See also
Programming Startup Protection (Page 95)
Overview of Testing the Safety Program (Page 303)
See also
Installing/Removing the S7 Distributed Safety V5.4 SP4 Optional Package (Page 17)
F-I/O Access (Page 97)
Introduction
This chapter presents a compilation of diagnostic capabilities that can be evaluated for your
system when an error occurs. Most of the diagnostic capabilities are the same as those in
standard automation systems. The sequence of steps represents one recommendation.
Note
The following diagnostic variables/parameters provide you with detailed diagnostic
information: DIAG, RETVAL14, RETVAL15, STAT_RCV, and STAT_SND. These can be
read out using the testing and commissioning functions on the programming device or using
an operator control and monitoring system, or they can be evaluated in your standard user
program.
These parameters must not be accessed in the safety program.
See also
F-I/O Access (Page 97)
Checklist
Key:
● Stand-alone chapter references refer to this documentation.
● "SM" stands for the Safety Engineering in SIMATIC S7 system manual.
● "F-SMs Manual" stands for the Automation System S7-300, Fail-Safe Signal Modules
manual.
● "F-Modules Manual" stands for the ET 200S Distributed I/O System, Fail-Safe Modules
manual.
● "ET 200eco Manual" stands for the ET 200eco Distributed I/O Station, Fail-Safe I/O
Module manual.
● "ET 200pro Manual" stands for the ET 200pro Distributed I/O Station, Fail-Safe Modules
manual.
See also
Overview (Page 13)
Installing/Removing the S7 Distributed Safety V5.4 SP4 Optional Package (Page 17)
Overview of Configuration (Page 23)
Particularities for Configuring the F-System (Page 25)
Configuring the F-CPU (Page 26)
Configuring the F-I/O (Page 35)
Overview of Access Protection (Page 45)
Overview of Programming (Page 55)
Structure of the Safety Program in S7 Distributed Safety (Page 57)
Defining the Program Structure (Page 75)
Creating F-Blocks in F-FBD/F-LAD (Page 77)
Rules for F-Runtime Groups of the Safety Program (Page 86)
F-I/O Access (Page 97)
Overview of Distributed Safety F-Library (V1) (Page 183)
Custom F-Libraries (Page 265)
Compiling Safety Program (Page 272)
Downloading the Safety Program (Page 275)
Modifying the safety program in RUN mode (Page 287)
Comparing Safety Programs (Page 290)
Deleting the Safety Program (Page 294)
Printing out Project Data (Page 297)
Deactivating Safety Mode (Page 304)
Testing the Safety Program (Page 308)
Overview of System Acceptance Test (Page 313)
Notes on Safety Mode of the Safety Program (Page 323)
Replacing Software and Hardware Components (Page 325)
Guide to Diagnostics (Page 327)
Access protection
-> Fail-safe systems must be protected against dangerous, unauthorized access. Access
security is implemented in F-Systems by assigning two passwords (one for the -> F-CPU,
and one for the -> safety program).
Category
Category in accordance with ISO 13849-1:2006 or EN ISO 13849-1:2008
S7 Distributed Safety can be used in -> safety mode up to Category 4.
Channel Fault
Channel-related fault, such as a wire break or short circuit.
Collective Signatures
The collective signatures uniquely identify a particular state of the -> safety program and the
safety-related parameters of the F-CPU and F-I/O. They are important for the preliminary
acceptance test of the safety program, e.g., by -> experts.
The following signatures are displayed by the programming software and can also be printed
out:
● Collective signature of all F-blocks with F-attribute of the block container
● Collective signature of the safety program
These two signatures must match for the acceptance test.
CRC
Cyclic Redundancy Check -> CRC Signature
CRC Signature
The validity of the process data in the -> safety message frame, the accuracy of the
assigned address references, and the safety-related parameters are ensured by means of a
CRC signature contained in the safety message frame.
Custom F-Libraries
User-created F-libraries are F-libraries created by the user containing F-FBs, F-FCs, and
application templates (network templates).
Depassivation
-> Reintegration
Discrepancy Analysis
Discrepancy analysis for equivalence or nonequivalence is used for fail-safe inputs to
determine errors based on the time characteristic of two signals with the same functionality.
The discrepancy analysis is initiated when different levels are detected in two associated
input signals (for non-equivalence testing, when the same levels are detected). The signals
are checked to establish whether the difference (when checking for non-quality: has
disappeared after the so called -> discrepancy time has expired. If not, there is a
discrepancy error. The discrepancy analysis is performed between the two input signals of
the 1oo2 sensor evaluation (-> sensor evaluation) in the fail-safe input.
Discrepancy Time
Discrepancy time is a period of time configured for the -> discrepancy analysis. If the
discrepancy time is set too high, the fault detection time and -> fault reaction time are
extended unnecessarily. If the discrepancy time is set too low, availability is decreased
unnecessarily because a discrepancy error is detected when, in reality, no error exists.
DP/DP Coupler
Device for coupling two PROFIBUS DP subnets that is required in S7 Distributed Safety for
master-master communication between -> safety programs in different -> F-CPUs.
(At least) two F-CPUs are involved in safety-related master-master communication via a
DP/DP coupler. Each F-CPU is linked to the DP/DP coupler by means of its PROFIBUS DP
interface.
Expert
A system is generally approved, that is, the safety acceptance test of the system is usually
carried out by an independent expert (for example, from TÜV).
Fail-Safe Modules
ET 200S and ET 200pro modules that can be used for safety-related operation (in -> safety
mode) in the ET 200S and ET 200pro distributed I/O systems. These modules feature
integrated -> safety functions. They behave in accordance with the standards IEC 61784-1
Ed3 CP 3/1 or IEC 61784-2 CP 3/5 and CP 3/6 and IEC 61158 Types 5-10 and 6-10 and the
PROFIsafe bus profile according to IEC 61784-3-3 Ed2.
Fail-Safe Systems
Fail-safe systems (F-systems) are systems that remain in a safe state or immediately switch
to another safe state as soon as particular failures occur.
F-application blocks
Block container for the Distributed Safety F-library containing the -> F-application blocks.
F-Application Blocks
F-application blocks are F-blocks (F-FBs, F-FCs) with ready made functions in the
Distributed Safety F-library. The F-application blocks can be called by the user in the -> F-PB
and in additional -> F-FBs and -> F-FCs.
F-attribute
All -> F-blocks in a -> safety program are provided an F-attribute (identified in the "Safety
Program" dialog box by an "F" in the F-block symbol). Only the blocks of the -> safety
program have the F-attribute after the -> safety program is successfully compiled.
F-blocks
The following fail-safe blocks are designated as F-blocks:
● Blocks created by the user in programming languages -> F-FBD/F-LAD, F-CALL, and
F-DB
● Blocks selected by the user from an F-library
● Blocks automatically added in the -> safety program (-> F-SBs, -> automatically
generated F-blocks, -> F-shared DB)
All F-blocks are depicted with a yellow background in the "Safety Program" dialog box and
SIMATIC Manager.
F-CALL
F-CALL is the "F-call block" for the -> safety program in S7 Distributed Safety.
F-CALL is created by the user as a function in the "F-CALL" programming language and
cannot be edited. F-CALL calls the -> F-runtime group from the -> standard user program. It
contains a call for the -> F-PB and calls for the F-blocks (-> F-SBs, -> automatically
generated F-blocks, -> F-shared DB) of the F-runtime group that were automatically added.
F-Communication DBs
F-communication DBs are fail-safe data blocks for safety-related CPU-CPU communication
via S7 connections.
F-CPU
An F-CPU is a central processing unit with fail-safe capability that is permitted for use in S7
Distributed Safety and in which a -> safety program can run in addition to the -> standard
user program.
F-DBs
Optional fail-safe data blocks with read/write access from anywhere within the safety
program (exception: DBs for F-runtime group communication)
F-FBD
F-FBD is a programming language for -> safety programs in S7 Distributed Safety. The
standard FBD/LAD Editor in STEP 7 is used for programming.
F-FBs
F-FBs are fail-safe function blocks (with instance DBs) in which the user programs the ->
safety program in -> F-FBD or -> F-LAD.
F-FCs
F-FCs are fail-safe FCs in which the user programs the -> safety program in -> F-FBD or ->
F-LAD.
F-I/O
F-I/O is a group designation for fail-safe inputs and outputs available in SIMATIC S7 for
integration in S7 Distributed Safety, among others. They behave in accordance with the
standards IEC 61784-1 Ed3 CP 3/1 or IEC 61784-2 CP 3/5 and CP 3/6 and IEC 61158
Types 5-10 and 6-10 and the PROFIsafe bus profile according to IEC 61784-3-3 Ed2.
The following F-I/O modules are available for S7 Distributed Safety:
● ET 200eco fail-safe I/O module
● S7-300 fail-safe signal modules (-> F-SMs)
● -> Fail-safe modules for ET 200S
● -> Fail-safe modules for ET 200pro
● -> Fail-safe DP standard slaves
● -> Fail-safe standard I/O devices
F-I/O DB
An F-I/O DB is a fail-safe data block for an -> F-I/O in S7 Distributed Safety. An F-I/O DB is
automatically created for each F-I/O during compilation in HW Config. The F-I/O data block
contains variables that the user can evaluate in the safety program, or that he can or must
write to as follows:
● For reintegration of F-I/O after communication errors, F-I/O faults, or channel faults
● If F-I/O should be passivated as a result of particular safety program conditions (for
example, group passivation)
● For reassignment of parameters for fail-safe DP standard slaves
● In order to evaluate whether fail-safe values or process data are output
F-I/O faults
An F-I/O fault is a module related fault for F-I/O, such as a communication error or a
parameter assignment error
F-LAD
-> F-FBD
F-modules
-> Fail-safe modules
F-PB
The F-PB is the "introductory fail-safe block" for fail-safe programming of the -> safety
program in S7 Distributed Safety. The F-PB is an -> F-FB or -> F-FC that the user assigns to
the -> F-CALL of an -> F-runtime group.
The F-PB contains the F-FBD or F-LAD safety program, any calls of additional ->
F-FBs/F-FCs for program structuring, and any F-application blocks from the block container
of -> F-application blocks of the Distributed Safety F-library and F-blocks from ->
user-created F-libraries.
F-runtime group
The -> safety program consists of one or two F-runtime groups. An F-runtime group is a
logical construct of several associated -> F-blocks. It is generated internally by the F-system.
An F-runtime group consists of the following F-blocks:
-> F-CALL, -> F-PB, -> F-FBs/ -> F-FCs (if applicable), -> F-DBs (if applicable), -> F-I/O
DBs, F-blocks of Distributed Safety F-library and user-created F-libraries, instance DBs, ->
F-SBs, and -> automatically generated F-blocks.
F-SBs
F-SBs are fail-safe system blocks which are automatically inserted and called when the -
> safety program is compiled in order to generate an executable safety program from the
user's safety program.
F-shared DB
The F-shared DB is a fail-safe data block that contains all of the shared data of the -> safety
program and additional information needed by the F-system. When the hardware
configuration is saved and compiled in HW Config, the F-shared DB is automatically inserted
and expanded. Using its symbolic name F_GLOBDB, the user can evaluate certain data of
the -> safety program.
F-SMs
F-SMs are S7-300 fail-safe signal modules that can be used for safety-related operation (in -
> safety mode) as centralized modules in an S7 300 or as distributed modules in the ET
200M distributed I/O system. F-SMs are equipped with integrated -> safety functions.
F-system blocks
Block container of Distributed Safety F-library containing -> F-SBs and the -> F-shared-DB.
F-systems
-> Fail-safe systems
i-Parameter
Individual parameter of -> fail-safe DP standard slaves
MSR
Instrumentation and control technology
Non-equivalent Sensor
A non-equivalent sensor is a two-way switch that is connected in -> fail-safe systems
(two-channel) to two inputs of an -> F-I/O module (for 1oo2 evaluation of sensor signals; ->
sensor evaluation).
Passivation
When passivation occurs in a -> F-I/O module with inputs the -> F-system provides fail-safe
values (0) for the safety program instead of the process data pending in the PII at the
fail-safe inputs.
When passivation occurs in a F-I/O module with outputs, the F-system transfers fail-safe
values (0) to the fail-safe outputs instead of the output values in the PIQ provided by the
safety program.
PROFIsafe
Safety-related bus profile of PROFIBUS DP/PA and PROFINET IO according to IEC 61784-
3-3 Ed2 for communication between the -> Safety program and the -> F-I/O in an > F-
system.
PROFIsafe Address
Every -> F-I/O module has a PROFIsafe address. You must configure the PROFIsafe
address in HW Config of STEP 7 and set the address via a switch on the F-I/O.
Program Signature
-> Collective signature
Reintegration
Switching from substitute values (0) to process data (reintegration of a -> F-I/O module)
occurs automatically or after user acknowledgment in the F-I/O DB. The reintegration
method depends on the following:
● The cause for -> passivation of the F-I/O or channels of the F-I/O
● Parameter assignment in the -> F-I/O DB
For an -> F-I/O module with inputs, the process data in the PII pending at the F-inputs are
provided again for the safety program after reintegration. The F-System transfers the PIO
output values provided in the safety program to the fail-safe outputs of the F-I/O.
S7-PLCSIM
The S7-PLCSIM application enables you to execute and test your program on a simulated
automation system on your programming device or PC. Because the simulation takes place
entirely in STEP 7, you do not require any hardware (CPU, I/O).
Safe State
The basic principle of the safety concept in -> fail-safe systems is the existence of a safe
state for all process variables. For digital -> F-I/O, the value is always "0".
Safety Function
Safety function is a mechanism built into the -> F-CPU and -> F-I/O that allows them to be
used in -> fail-safe systems.
In accordance with IEC 61508:2000: safety functions are implemented by a safety system in
order to maintain the system in a -> safe state or to place it in a safe state in the event of a
particular error. (-> user safety function)
Safety Mode
1. Safety mode is the operating mode of the -> F-I/O that allows -> safety-related
communication by means of a -> safety frame.
2. Operating mode of the safety program. In safety mode of the safety program, all safety
mechanisms for fault detection and reaction are activated. In safety mode, the safety
program cannot be modified during operation. Safety mode can be deactivated by the
user (-> deactivated safety mode).
Safety Program
The safety program is a safety-related user program.
Safety Protocol
-> Safety message frame
Safety-related communication
Safety-related communication is used to exchange fail-safe data.
Sensor Evaluation
There are two types of sensor evaluation:
● 1oo1 evaluation – sensor signal is read in once
● 1oo2 evaluation - sensor signal is read in twice by the same ->F-I/O and compared
internally
Signature
-> Collective signatures
Standard Communication
Standard communication is used to exchange non-safety-related data.
Standard Mode
Standard mode is the operating mode of -> F-I/O in which -> safety-related communication
by means of -> safety frames is not possible; only -> standard communication is possible in
this operating mode.
Startup of F-system
When an -> F-CPU switches from STOP to RUN mode, the -> standard user program is
started as usual. When the -> safety program is started, all data blocks with -> F-attribute are
initialized with values from the load memory (as with a cold start). This means that saved
error information is lost.
The -> F-system automatically performs -> reintegration of the -> F-I/O.
Voltage Group
In the ET 200S and ET 200pro distributed I/O systems: A voltage group is a group of
electronic modules supplied by one power module.
Basic knowledge, 3
Required, 3
1 Basic procedure for creating the safety program, 73
Behavior after a startup, 109
1oo2 Evaluation with Discrepancy Analysis, 211
Behavior after communication errors, 111
Behavior after F-I/O faults and channel faults, 113
Bidirectional connections, 136
A
Bit memory, 61, 127
Access permission, 48, 53 BOOL, 61
Canceling, for the F-CPU, 53
Canceling, for the safety program, 48
Setting up, for the F-CPU, 53 C
Setting up, for the safety program, 48
Changing F-runtime groups, 86
Access protection, 45
Checking block consistency, 85
Overview, 45
Checklist, 331
Accessing variables of F-I/O DB, 108
Communication
ACK_NEC, 101
Via F_SENDS7 and F_RCVS7,
ACK_REI, 101
Communication between standard user program and
ACK_REI_GLOB, 241
safety program, 127, 129
ACK_REQ, 101
Communication connection between two F-CPUs via
Acknowledgment, 59
DP/DP coupler, 136
Address areas, 61
Configuring, 136
For safety-related I-slave-I-slave
Programming, 136
communication, 156
Communication connection via DP/DP coupler, 136
for safety-related I-slave-slave communication, 162
Configuring, 136
For safety-related master-I-slave
Programming, 136
communication, 144
Communication error, 111, 242
Address areas for I-slave-I-slave communication
F_SENDDP/F_RCVDP, 242
Assignment, 156
Communication via S7 connections, 173
Definition, 156
Configuring, 173
Address areas for I-slave-slave communication
Comparing safety programs, 290
Assignment, 162
Compiling the safety program, 272
Definition, 162
Complete function test of the safety program, 283
Address areas for master-I-slave communication
Configuration
Assignment, 144
F parameters of the F-CPU, 26
Definition, 144
Fail-safe DP standard slaves, 39
Address setting, 35
F-I/O, 35
PROFIsafe, 35
Group diagnostics, 35
Applying changes to the safety program, 287
Level of protection of the F-CPU, 26
Approvals, 3
Overview, 23
Automatically generated F-blocks, 275
Particularities, 25
Block size, 275
PROFIsafe address setting, 35
Same as standard, 25, 35
Symbolic names, 44
B
with GSD file, 39
Band of numbers Configuring, 146, 158, 165, 173
F-data blocks, 26 Address areas for safety-related I-slave-I-slave
F-function blocks, 26, 38 communication, 156
F_SFDOOR, 236 F
F-I/O DB, 101
F- I/O DB, 44
Diagnostic options, 327
Symbolic names, 44
Steps for evaluation, 327
F local data, 26
Diagnostic parameters, 327
Maximum possible number, 26
Evaluation, 327
F parameters of the F-CPU, 26
Diagnostic variable, 327
Base for PROFIsafe addresses, 26
Evaluation, 327
Configuration, 26
Diagnostics, 327
F local data, 26
Guide, 327
F-data blocks, 26
Dialog ", 267
F-function blocks, 26
Differences between the F-FBD and F-LAD
F_1oo2DI, 211
programming languages and the standard FBD and
F_2H_EN, 216
LAD programming languages, 61
F_2HAND, 200
Discrepancy error at sensor pair 1, 202
F_ACK_GL, 241
Timing diagrams, 202
F_ACK_OP, 198
Distributed Safety F-library (V1), 183
F_BO_W, 258
Directory, 55
F_Check_SeqNr, 39
F-blocks, 59
F_CRC_Length, 39
Distributed Safety F-library (V1):Overview, 183
F_CTD, 189
Documentation, 3
F_CTU, 188
Additional, 3
F_CTUD, 190
Scope, 3
F_Dest_Add, 39
Downloading, 275
F_ESTOP1, 229
In SIMATIC Manager or FBD/LAD Editor, 275
F_FDBACK, 232
In the "Safety Program" dialog, 275
F_GLOBDB, 127, 264
Of the safety program, 275
F_INT_RD, 262
Downloading in SIMATIC Manager or FBD/LAD Editor
F_INT_WR, 260
Rules, 275
F_IO_StructureDescCRC, 39
Downloading to an S7-PLCSIM, 275
F_MUT_P, 219
DP/DP coupler, 139, 140
F_MUTING, 202
Configuring safety-related master-master
Structure of DIAG, 202
communication, 136
F_MUTING parallel, 219
Programming safety-related master-master
F_Par_Version, 39
communication, 139, 140
F_RCVDP, 242
Behavior in event of communication errors, 242
Programming safety-related I-slave-I-slave
E
communication, 150
Editing Programming safety-related master-I-slave
F-FB/F-FC, 78 communication, 150
Emergency STOP up to Stop Category 1, 229 Programming safety-related master-master
EN, 61 communication, 139, 140
Enable input, 61 Receiving data, 242
Enable output, 61 Structure of DIAG, 242
ENO, 61 Timing diagrams, 242
Entering, changing, or canceling the password for the F_RCVS7, 173, 249
safety program, 48 F_SCA_I, 186
Evaluation, 327 F_SENDDP, 242
Diagnostic variables/parameters, 327 Behavior in event of communication errors, 242
Programming safety-related I-slave-I-slave
communication, 150
G L
Group diagnostics, 35
Level of protection of the F-CPU, 26
For S7-300 F-SMs, 35
Configuration, 26
Group passivation, 118
Life Cycle of Fail-Safe Automation Systems, 331
GSD file, 39
Light curtain, 202
Configuration, 39
Limits of data transfer:Safety-related communication
Parameters, 39
via S7 connections, 181
Guide, 3
Limits of data transfer:safety-related master-master
communication, 144
Local data, 61
H
Local ID, 173
Hardware components, 14 Of S7 connection, 173
Hardware configuration, 25 Logbook of the Safety Program, 295
Saving and compiling, 25
Hardware simulation, 275
M
Master-I-slave communication, 146
I
Configuring, 146
IE/PB Link, 172 Master-master communication, 136
IM 151-1 High Feature (ET 200S), 325 Configuring, 136
Implementation of user acknowledgment, 121, 124 Memory Card, 283
In safety program of F-CPU of DP master, 121 Memory requirements, 275
In safety program of F-CPU of intelligent DP Of the safety program, 275
slave, 124 Memory reset, 283, 308
Inconsistent, 271 MMC, 283
Industrial Ethernet, 131 Modifications to the standard user program, 287
Safety-related communication via, 131 Modifying data of the safety program, 308
Information landscape, 3 Modifying the safety program in RUN mode, 287
Placement, 3 Modifying values in F-DBs, 308
Instance DB, 61, 327 Monitor/modify variable function, 308
Access, 61 Muting procedure with 4 muting sensors, 202
Evaluation of diagnostic variables/parameters, 327 Muting procedure with reflection light barriers, 202
Instructions, 61
INT, 61
Internet, 3 N
Service & Support, 3
Non-permissible address areas, 61
SIMATIC documentation, 3
Non-permissible data and parameter types, 61
Interruption of the light curtain, 202
Non-permissible instructions, 61
IPAR_EN, 101
IPAR_OK, 101
I-slave-I-slave communication, 158
O
Configuring, 158
I-slave-slave communication, 165 Opening F-Blocks, 308
U
Unidirectional connections, 136
Universal module, 136
Unlinked, 61
DB, 61
Update Reference Data, 274
Use of Access to an F-I/O DB, 101
User acknowledgement, 124
By means of acknowledgment key, 121, 124
By means of operator control and monitoring
system, 121, 124
During interruption of the light curtain, 202
For reintegration of an F-I/O, 121, 124
User safety function, 8
Example, 8
User-created F-libraries, 265
V
Validity check, 129
Variables of an F-I/O DB, 101
W
Wiring test, 308
WORD, 61
Work memory requirement, 275, 281
Of the safety program, 275, 281
Write INT indirectly to an F-DB, 260