SF_Antivalent
Tip
The version of the function block as described here corresponds to the latest version of the function block in Version list of function blocks.
Applicable safety standards
SF_Antivalent
is a certified PLCopen function block. For detailed information about applied standards, see "PLCopen – Technical Committee 5 – Safety Software".
Important
The requirements listed in the standards must be fulfilled by the user.
Interface description
This function block links two antivalent SAFEBOOL
inputs (NO/NC
pair) to a SAFEBOOL
output under discrepancy time monitoring. This FB should not be used stand-alone since it has no restart interlock. It is required to connect the output to other safety related functionalities.
Name | Data Type | Initial Value | Description, parameter values |
---|---|---|---|
|
|
| |
|
|
| Variable
Input for
|
|
|
| Variable
Input for
|
|
|
| Constant Maximum monitoring time for discrepancy state of both inputs The |
DiscrepancyTime
For developers in Extended Level: The DiscrepancyTime
input has to be set to a constant value. This means that the value must not be changed for the calls.
Name | Data Type | Initial Value | Description, parameter values |
---|---|---|---|
|
|
| |
|
|
| Safety-related output
|
|
|
| |
|
|
|
Tip
"Antivalent" means that during normal operation, the two inputs are in opposite states at the same time. This is sometimes called "complementary" or "non-equivalent".

Functional description
This function block processes two antivalent SAFEBOOL
inputs to a SAFEBOOL
output under discrepancy time monitoring. Both inputs are interdependent. The output of the function block shows the evaluation result of both channels.
If S_AntivalentOut
= TRUE
and one of the safety-oriented inputs changes, then the output immediately switches to FALSE
.
Discrepancy time monitoring: The discrepancy time is the maximum time span in which both inputs may have the same state (this means that either both inputs are TRUE
or both are FALSE
) without the FB detecting an error. Discrepancy time monitoring starts when the status of an input changes. The function block detects an error when both inputs have the same values once the discrepancy time has elapsed.
The inputs must be switched symmetrically. This means that monitoring is performed both for switching the inputs to TRUE
and FALSE
.
Inputs | Outputs | ||||||
---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
| Not started |
|
|
|
|
|
|
| Not started |
|
|
|
|
|
|
| Started |
|
|
|
|
|
|
| Started |
|
|
|
|
|
|
| Not started |
|
|
|
|
|
|
| Started |
|
|
|
|
|
|
| Started |
|
|
|
|
|
|
| Not started |
|
|
|
|
|
|
| Started |
|
|
|
|
|
|
| Started |
|
|
|
|
|
|
| Started |
|
|
|
|
|
|
| Started |
|
|
|
|
Tip
In the logic table, an arrow (->
) stands for a transition. TRUE -> FALSE
means that the value of the variable has changed from TRUE
to FALSE
.
Status diagram

Tip
Note: The transition from any state to the Idle
state, initiated by Activate
= FALSE
, is not shown. In every case, these transitions have the highest priority.
Typical timing diagrams


Error detection
The function block monitors the discrepancy time between Channel NO and Channel NC.
Error behavior
The S_AntivalentOut
output is set to FALSE
. Error
is set to TRUE
. DiagCode
displays the error states. There is no Reset defined as an input coupled with the reset of an error. As soon as a Set of input values with the correct S_AntivalentOut
is present, Error
is FALSE
again.
FB-Specific Error and Status Codes
DiagCode | Statue Name | Status description and output setting |
---|---|---|
|
| Discrepancy time expired in status
|
|
| Discrepancy time expired in status
|
|
| Discrepancy time expired in status
|
DiagCode | Statue Name | Status description and output setting |
---|---|---|
|
| The function block is not active (basic state).
|
|
| An activation has been detected by the block and the block is now activated.
|
|
| The inputs are switched to active in the antivalent mode.
|
|
|
|
|
|
|
|
| One channel has been switched to inactive; wait for the second channel to be switched to inactive as well.
|