4.4.3.10 Operators
The following table indicates the suitability of operators for creating safety-oriented applications.
Keyword Suitable (Yes / To a limited extent / No) (comment)
AND, OR, NOT, XOR Yes
+, -, *, /, MOD Yes (Division should include an explicit test for divisor <> 0)
=, <>, >, >=, <, <= Yes
SQRT, SIN, COS, TAN,
ASIN, ACOS, ATAN, LOG,
LN, EXPT, EXP
To a limited extent (Prone to error through rounding errors)
MIN, MAX, LIMIT Yes
MUX, SEL Yes (Please note: branches that are not selected are not executed. This can
lead to problems if functions calling system libraries are used.)
TIME Yes
ADR To a limited extent (Required for POINTERS that may be used to a limited
extent.)
INDEXOF To a limited extent (Only used as parameter for runtime system functions.
The function used should be treated like an independent task.)
SIZEOF Yes
ROL, ROR, SHR, SHL Yes
4.4.3.11 Language constructs
The following ST language control elements are suitable for creating safety-oriented applications:
Keyword Suitable (Yes / To a limited extent / No) (comment)
IF Yes
CASE Yes
FOR Yes
WHILE To a limited extent (Proof of avoidance of an infinite loop is required)
REPEAT To a limited extent (Proof of avoidance of an infinite loop is required)
EXIT To a limited extent (Exits a loop immediately. A loop should only be exited
through its end condition leave.)
RETURN To a limited extent (Exits a subroutine immediately. A subroutine should only
be exited once all instructions have been processed.)
Configuration and programming
CoDeSys Safety programming guidelines > Language-specific programming guidelines
30.03.2017AC500-S220