Please obtain a detailed description of usage from the appropriate appendices concerning IEC operators.
Operators in CODESYS:
in ST |
in AWL |
Mod. AWL |
Description |
---|---|---|---|
' |
|
|
String delimiters (e.g. 'string1') |
.. [ ] |
|
|
Size of Array range (e.g. ARRAY[0..3] OF INT) |
: |
|
|
Delimiter between Operand and Type in a declaration (e.g. var1 : INT;) |
; |
|
|
Termination of instruction (e.g. a:=var1;) |
^ |
|
|
Dereferenced 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
|
in ST |
in AWL |
Mod. AWL |
Description |
---|---|---|---|
|
JMP label |
CN |
Jump to label |
<Program name> |
CAL prog1 |
CN |
Call program prog1 |
<Instance name> |
CAL inst1 |
CN |
Call function block instance inst1 |
<Fctname>(vx, vy,..) |
<Fctname> 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 |
|
Bitweise NOT |
+ |
ADD |
( |
Addition |
- |
SUB |
( |
Subtraction |
* |
MUL |
( |
Multiplication |
/ |
DIV |
( |
Division |
> |
GT |
( |
Greater than |
>= |
GE |
( |
Greater or equal |
= |
EQ |
( |
Equal |
<> |
NE |
( |
Not equal |
<= |
LE |
( |
Less or equal |
< |
LT |
( |
Less than |
MOD(in) |
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(K,in) |
SHL |
|
Bitwise left-shift of operator in by K |
SHR(K,in) |
SHR |
|
Bitwise right-shift of operator in by K |
ROL(K,in) |
ROL |
|
Bitwise rotation to the left of operator in by K |
ROR(K,in) |
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 range of values (in is set back to MIN or MAX in case of exceeding the range)
|
in ST |
in AWL |
Mod. AWL |
Description |
---|---|---|---|
MUX(K,in0,...in_n) |
MUX |
|
Selecti the Kth value out of a group of values (in0 to In_n) |
ADR(in) |
ADR |
|
Address of the operand in [DWORD] |
ADRINST() |
ADRINST()
|
|
Address of the function block instance from which you are calling that operator. |
BITADR(in) |
BITADR |
|
Bitoffset 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, in must contain valid value of desired type |
TRUNC(in) |
TRUNC |
|
Conversion from REAL to INT |
ABS(in) |
ABS |
|
Absolute 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 |
Elements of the standard library
Structured Text |
Description |
---|---|
LEN(in) |
String length of operand in |
LEFT(str,size) |
Left inital string of given size of string str |
RIGHT(str,size) |
Right initial string of given size of string str |
MID(str,size,pos) |
Partial string of str of given size at position pos |
CONCAT('str1','str2') |
Concatenation of two subsequent strings |
INSERT('str1','str2',pos) |
Insert string str1 in string str2 at position pos |
DELETE('str1',len,pos) |
Delete partial string (length len), start at position pos of str1 |
REPLACE('str1','str2',len,pos) |
Replace partial string of lenght len by str2, start at position pos of str1 |
FIND('str1','str2') |
Search for partial string str2 in str1 |
SR |
Bistable function block is set dominant |
RS |
Bistable function block is set back |
SEMA |
FB: Software Semaphor (interruptable) |
R_TRIG |
FB: rising edge is detected |
F_TRIG |
FB: falling edge is detected |
CTU |
FB: Counts upv |
CTD |
FB: Count down |
CTUD |
FB: Up/down counter |
TP |
FB: trigger |
TON |
FB: on delay timer |
TOF |
FB: off delay timer |
RTC |
FB: real-time clock |
Elements of the util library
Element |
Description |
---|---|
BCD_TO_INT |
Conversion of a byte: BCD to INT format |
INT_TO_BCD |
Converstion of a byte: INT to BCD format |
EXTRACT(in,n) |
The n-th bit of DWORD in is returned in BOOL |
PACK |
Up to 8 bits are packed into a byte |
PUTBIT |
A bit of a DWORD is set to a certain value |
UNPACK |
A byte is returned as single bits |
DERIVATIVE |
Local derivation |
INTEGRAL |
Integral |
LIN_TRAFO |
Transformation of REAL values |
STATISTICS_INT |
Min., max., average values in INT format |
STATISTICS_REAL |
Min., max., average in REAL format |
VARIANCE |
Variance |
PD |
PD controller |
PID |
PID controller |
BLINK |
Pulsating signal |
FREQ_MEASURE |
Measuring frequency of boolean input signal |
GEN |
Periodic functions |
CHARCURVE |
Linear functions |
RAMP_INT |
Limiting ascendance of descendance of the function beeing fed (INT) |
RAMP_REAL |
Limiting ascendance of descendance of the function beeing fed (REAL) |
HYSTERESIS |
Hysteresis |
LIMITALARM |
Watches whether input value exceeds limits of a defined range |