Blocks for safe logic

Blocks for safe logic are used to develop safety-relevant applications.

For developing safety-related applications, you must use a Neuron Power Engineer version that has been qualified for this purpose. See the documentation "Safety instructions on working with the IDE" for the appropriate information and valid safety instructions. Contact your system integrator to obtain this documentation.

Base variant

The blocks for safe logic are particular system blocks that are highlighted as safe logic, if they are provided with a safe value as follows:

  • At least one block input (including the input EN) gets a safe value.
    A safe value is the value of a →variable declared based on a safe data type. Expressions according to ST (including operands in ST and operators in ST) can be used to evaluate safe values – as long as no variable is used that provides a non-safe value.
    Compare: A non-safe value is the value of a variable declared based on another →data type or an expression with such a variable.

  • For all other block inputs, one of the following conditions applies:

    • The input is unconnected, i.e. not connected to any other FBD-element.

    • The input gets a safe value (see above).

    • The input gets a constant value from a value field containing a →literal. Expressions according to ST (incl. operands in ST and operators in ST) can be used to evaluate the constant value – as long as no variable is used that provides a non-safe value.

Example: The system block OR is such a block for safe logic:


Explanation:

  • The left call is highlighted as safe logic because the 2nd function block input gets a safe value and all other inputs are not connected.

  • The right call is not highlighted as safe logic because the 1st function block input gets a non-safe value.

Special variant

The system block AND is a block for safe logic that is highlighted as safe logic, if it is provided with a safe value as follows:

  • At least one block input (but excluding the input EN) gets a safe value (see above).

  • For the input EN, one of the following conditions applies:

    • The input EN is unconnected, i.e. not connected to any other FBD-element.

    • The input EN gets a safe value (see above).

    • The input EN gets a constant value from a value field containing a literal. Expressions according to ST (incl. operands in ST and operators in ST) can be used to evaluate the constant value – as long as no variable is used that provides a non-safe value.

  • The other block inputs are not relevant for the identification of the safe logic. This means that these inputs can also get a non-safe value.

Here the behavior of the system block AND (based on the above example):


Explanation:

  • The left call is highlighted as safe logic because the 2nd function block input gets a safe value and the input EN is not connected.

  • The right call is also highlighted as safe logic. The same conditions as for the left call apply. Here the 1st block input is supplied with a non-safe value but this is not relevant for highlighting the safe logic in the case of the AND block.

List of blocks (base variant)

Be sure to use the documentation "Safety instructions on working with the IDE" to determine whether there are conditions for using the following blocks when developing safety-related applications, e.g. whether actions are required from the system integrator for the block to actually be supported. Contact your system integrator to obtain this documentation.

The following blocks are provided as blocks for safe logic as of Neuron Power Engineer version 3.20.0:

ABS block

ACOS block

ADD block

ADD_TIME block

ASIN block

ATAN block

ATAN2 block

BCD_TO_DINT block

BCD_TO_INT block

BCD_TO_LINT block

BCD_TO_SINT block

BCD_TO_UDINT block

BCD_TO_UINT block

BCD_TO_ULINT block

BCD_TO_USINT block

CEIL block

CONCAT_DATE_TOD block

CONCAT_DT block

COS block

CTD block

CTD_DINT block

CTD_INT block

CTD_LINT block

CTD_UDINT block

CTD_UINT block

CTD_ULINT block

CTU block

CTU_DINT block

CTU_INT block

CTU_LINT block

CTU_UDINT block

CTU_UINT block

CTU_ULINT block

CTUD block

CTUD_DINT block

CTUD_INT block

CTUD_LINT block

CTUD_UDINT block

CTUD_UINT block

CTUD_ULINT block

DIV block

DIV_TIME block

DT_TO_DATE block

EQ block

EXP block

EXPT block

F_TRIG block

FLOOR block

FROM_BIG_ENDIAN block

FROM_LITTLE_ENDIAN block

GE block

GT block

IS_VALID block

LE block

LIMIT block

LN block

LOG block

LT block

MAX block

MIN block

MOD block

MOVE block

MUL block

MUL_TIME block

MUX_BYTE block

MUX_DINT block

MUX_DWORD block

MUX_INT block

MUX_SINT block

MUX_UDINT block

MUX_UINT block

MUX_USINT block

MUX_WORD block

NE block

NOT block

OR block

R_TRIG block

ROL block

ROR block

ROUND block

RS block

SEL block

SEL_BOOL block

SEL_BYTE block

SEL_DATE block

SEL_DINT block

SEL_DT block

SEL_DWORD block

SEL_INT block

SEL_LINT block

SEL_LREAL block

SEL_LWORD block

SEL_REAL block

SEL_SINT block

SEL_TIME block

SEL_TOD block

SEL_UDINT block

SEL_UINT block

SEL_ULINT block

SEL_USINT block

SEL_WORD block

SHL block

SHR block

SIN block

SPLIT_DT block

SQRT block

SR block

SUB block

SUB_DT_DT block

SUB_TIME block

TAN block

TO_BCD_BYTE block

TO_BCD_DWORD block

TO_BCD_LWORD block

TO_BCD_WORD block

TO_BIG_ENDIAN block

TO_BOOL block

TO_BYTE block

TO_DINT block

TO_DWORD block

TO_INT block

TO_LINT block

TO_LITTLE_ENDIAN block

TO_LREAL block

TO_LWORD block

TO_REAL block

TO_SINT block

TO_TIME block

TO_UDINT block

TO_UINT block

TO_ULINT block

TO_USINT block

TO_WORD block

TOF block

TON block

TP block

TRUNC block

TRUNC_DINT block

TRUNC_INT block

TRUNC_LINT block

TRUNC_SINT block

TRUNC_UDINT block

TRUNC_UINT block

TRUNC_ULINT block

TRUNC_USINT block

XOR block

List of blocks (special variant)

The following blocks are provided as blocks for safe logic (special variant) as of Neuron Power Engineer version 3.20.0: