Overview operators and library elementsPermalink

The table below shows an overview on the operators, which are available in AC500-S Programming Tool or in the libraries Standard.lib and Util.lib. You find there the notation for ST.

Please obtain a detailed description of usage from the appropriate appendices concerning IEC operators.

Operators in AC500-S Programming Tool:

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