Overview IEC Operators
The table shown below shows the operators in ST and IL with the available modifiers in IL.
Take note that for the 'IL operator' column: Only the line in which the operator is used will be displayed. A prerequisite is that the (first) required operand have been successfully loaded in the preceding line (e.g. LD in). The 'Mod. IL' column shows the possible modifiers in IL:
|
C |
The command is only executed if the result of the preceding expression is TRUE. |
|
N |
for JMPC, CALC, RETC: The command is only executed if the result of the preceding expression is FALSE. |
|
N |
otherwise: negation of the operand (not of the accumulator) |
|
( |
Operator enclosed in brackets: only after the closing bracket is reached will the operation preceding the brackets be carried out. |
Please obtain a detailed description of usage from the Appendix.
|
Operator ST |
Operator AWL |
Mod. AWL |
Signification |
|---|---|---|---|
|
' |
|
|
String delimiters (e.g. 'string1') |
|
[..] |
|
|
Size of Array range (e.g. ARRAY[0..3] OF INT) |
|
: |
|
|
Delimiter between Operand and Typ in a declaration (e.g. var1 : INT;) |
|
; |
|
|
Termination of instruction (e.g. a:=var1;) |
|
^ |
|
|
Derefereced Pointer (e.g. pointer1^) |
|
|
LD var1 |
N |
Load value of var1 in buffer |
|
:= |
ST var1 |
N |
Store actual result to var1 |
|
|
S boolvar |
|
Set boolean operand boolvar exactly then to TRUE, when the actual result is TRUE |
|
|
R boolvar |
|
Set boolean operand boolvar exactly then to FALSE, when the actual result is TRUE |
|
|
JMP marke |
CN |
Jump to label |
|
<Programmname> |
CAL prog1 |
CN |
Call program prog1 |
|
<Instanzname> |
CAL inst1 |
CN |
Call function block instance inst1 |
|
<Fktname>(vx,vy,..) |
<Fktname> vx,vy,.. |
CN |
Call function fctname and transmit variables vx, vy |
|
RETURN |
RET |
CN |
Leave POU and go back to caller |
|
|
( |
|
The value following the bracket is handled as operand, the operation before the bracket is not executed before the expression in the brackets. |
|
|
) |
|
Now execute the operation which has been set back |
|
AND |
AND |
N, ( |
Bitwise AND |
|
OR |
OR |
N, ( |
Bitwise OR |
|
XOR |
XOR |
N, ( |
Bitwise exclusive OR |
|
NOT |
NOT |
|
Bitwise NOT |
|
+ |
ADD |
( |
Addition |
|
- |
SUB |
( |
Subtraction |
|
* |
MUL |
( |
Multiplication |
|
/ |
DIV |
( |
Division |
|
> |
GT |
( |
Greater than |
|
>= |
GE |
( |
Greater or equal |
|
= |
EQ |
( |
Equal |
|
< |
LT |
( |
Less than |
|
<> |
NE |
( |
Not equal |
|
<= |
LE |
( |
Less or equal |
|
in1 MOD in2 |
MOD |
|
Modulo Division |
|
INDEXOF(in) |
INDEXOF |
|
Internal index of POU in1; [INT] |
|
SIZEOF(in) |
SIZEOF |
|
Number of bytes required for the given data type of in |
|
SHL(in,K) |
SHL |
|
Bitwise left-shift of operator in by K |
|
SHR(in,K) |
SHR |
|
Bitwise right-shift of operator in by K |
|
ROL(in,K) |
ROL |
|
Bitwise rotation to the left of operator in by K |
|
ROR(in,K) |
ROR |
|
Bitwise rotation to the right of operator in by K |
|
SEL(G,in0,in1) |
SEL |
|
Binary selection between 2 operands in0 (G is FALSE) and in1 (G is TRUE) |
|
MAX(in0,in1) |
MAX |
|
Returns the greater of 2 values |
|
MIN(in0,in1) |
MIN |
|
Returns the lesser of 2 values in0 and in1 |
|
LIMIT(Min,in,Max) |
LIMIT |
|
Limits the value range (in is set back to MIN or MAX in case of exceeding the range) |
|
MUX(K, in0,.. in_n) |
MUX |
|
Selects the Kth value out of a group of values (in0 to In_n) |
|
ADR(in) |
ADR |
|
Address of the operand in [DWORD] |
|
BOOL_TO_<type>(in) |
BOOL_TO_<type> |
|
Type conversion of the boolean operand |
|
<type>_TO_BOOL(in) |
<type>_TO_BOOL |
|
Type conversion to BOOL |
|
INT_TO_<type>(in) |
INT_TO_<type> |
|
Type conversion of an INT Operand to another elementary type |
|
REAL_TO_<type>(in) |
REAL_TO_<type> |
|
Type conversion of an REAL operand to another elementary type |
|
LREAL_TO_<type>(in) |
LREAL_TO_<type> |
|
Type conversion of a LREAL operand to another elementary type |
|
TIME_TO_<type>(in) |
TIME_TO_<type> |
|
Type conversion of a TIME operand to another elementary type |
|
TOD_TO_<type>(in) |
TOD_TO_<type> |
|
Type conversion of a TOD operand to another elementary type |
|
DATE_TO_<type>(in) |
DATE_TO_<type> |
|
Type conversion of a DATE operand to another elementary type |
|
DT_TO_<type>(in) |
DT_TO_<type> |
|
Type conversion of a DT operand to another elementary type |
|
STRING_TO_<type>(in) |
STRING_TO_<type> |
|
Type conversion of a STRING operand to another elementary type |
|
TRUNC(in) |
TRUNC |
|
Conversion from REAL to INT |
|
ABS(in) |
ABS |
|
Absolut value of operand in |
|
SQRT(in) |
SQRT |
|
Square root of operand in |
|
LN(in) |
LN |
|
Natural logarithm of operand in |
|
LOG(in) |
LOG |
|
Logarithm of operand in, base 10 |
|
EXP(in) |
EXP |
|
Exponential function of operand in |
|
SIN(in) |
SIN |
|
Sine of operand in |
|
COS(IN) |
COS |
|
Cosine of operand in |
|
TAN(in) |
TAN |
|
Tangent of operand in |
|
ASIN(in) |
ASIN |
|
Arc sine of operand in |
|
ACOS(in) |
ACOS |
|
Arc cosine of operand in |
|
ATAN(in) |
ATAN |
|
Arc tangent of operand in |
|
EXPT(in,expt) |
EXPT expt |
|
Exponentation of operand in with expt |
|
LEN(in) |
LEN |
|
String length of operand in |
|
LEFT(str, size) |
LEFT |
|
Left inital string of given size of string str standard.lib |
|
RIGHT(str, size) |
RIGHT |
|
Right initial string of given size of string str standard.lib |
|
MID(str, len, pos) |
MID |
|
Partial string of str of given length |
|
CONCAT(str1, str2) |
CONCAT |
|
Concatenation of two subsequent strings standard.lib |
|
INSERT(str1, str2, pos) |
INSERT |
|
Insert string str1 in String str2 at position pos standard.lib |
|
DELETE(str1, len, pos) |
DELETE |
|
Delete partial string (length len), start at position pos of str1 standard.lib |
|
REPLACE(str1, str2, len, pos) |
REPLACE |
|
Replace partial string of lenght len by str2, start at position pos of str1 |
|
FIND(str1, str2) |
FIND |
|
Search for partial string str2 in str1 |
|
SR |
SR |
|
Bistable FB is set dominant |
|
RS |
RS |
|
Bistable FB is set back |
|
SEMA |
SEMA |
|
FB: Software Semaphor (interruptable) |
|
R_TRIG |
R_TRIG |
|
FB: rising edge is detected |
|
F_TRIG |
F_TRIG |
|
FB: falling edge is detected |
|
CTU |
CTU |
|
FB: Counts up |
|
CTD |
CTD |
|
FB: Counts down |
|
CTUD |
CTUD |
|
FB: Counts up and down |
|
TP |
TP |
|
FB: trigger |
|
TON |
TON |
|
FB: on-delay timer |
|
TOF |
TOF |
|
FB: off-delay timer |