6 arithmetic (l_arit), Arithmetic (l_arit), Function library lenzedrive.lib – Lenze DDS Function library Drive User Manual

Page 21: Analog signal processing, Parameter codes of the instances, Function, Function in st

Advertising
background image

Function library LenzeDrive.lib

Analog signal processing

2.2.6

Arithmetic (L_ARIT)

2−11

L

LenzeDrive.lib EN 1.7

2.2.6

Arithmetic (L_ARIT)

This FB can arithmetically combine two analog signals.

L_ARIT

±32767

nOut_a

byFunction

nIn1_a

x/(1-y)

/

+

-

*

x

y

nIn2_a

Fig. 2−9

Arithmetic (L_ARIT)

VariableName

DataType

SignalType

VariableType

Note

nIn1_a

Integer

analog

VAR_INPUT

nIn2_a

Integer

analog

VAR_INPUT

nOut_a

Integer

analog

VAR_OUTPUT

The signal is limited to ±32767.

byFunction

Byte

VAR CONSTANT RETAIN

Selection of the function

Parameter codes of the instances

VariableName

L_ARIT1

L_ARIT2

SettingRange

Lenze

byFunction

C0338

C0600

0 ... 5

1

Function

Selection of the function

Arithmetic function

Notes

byFunction = 0

nOut_a = nIn1_a

byFunction = 1

nOut_a = nIn1_a + nIn2_a

byFunction = 2

nOut_a = nIn1_a − nIn2_a

byFunction = 3

nOut_a

+

(nIn1_a)

@ (nIn2_a)

16384

byFunction = 4

nOut_a

+

nIn1_a

|nIn2 a| @

164

If the denominator = 0,
the denominator is set = 1.

byFunction = 5

nOut_a

+

nIn1_a

16384

* nIn2_a @

16384

Function in ST

CASE byFunktion OF

0: nOut_a:=nIn1_a;

1: nOut_a:= DINT_TO_INT ( LIMIT (−32767,( INT_TO_DINT (nIn1_a)+ INT_TO_DINT (nIn2_a)),32767));

2: nOut_a:= DINT_TO_INT ( LIMIT (−32767,( INT_TO_DINT (nIn1_a)− INT_TO_DINT (nIn2_a)),32767));

3: nOut_a:= DINT_TO_INT ( LIMIT (−32767,(( INT_TO_DINT (nIn1_a)* INT_TO_DINT (nIn2_a))/16384),32767));

4: IF (nIN2_a=0) THEN

nOut_a= DINT_TO_INT ( LIMIT (−32767,(( INT_TO_DINT (nIn1_a)*164)),32767));

ELSE

nOut_a= DINT_TO_INT ( LIMIT (−32767,(( INT_TO_DINT (nIn1_a)*164)/ ABS (nIn2_a)),32767));

END_IF

5: IF (16384− INT_TO_DINT (nIn2_a)=0) THEN

nOut_a= DINT_TO_INT ( LIMIT (−32767,(( INT_TO_DINT (nIn1_a)*16384),32767));

ELSIF (16384− INT_TO_DINT (nIn2_a)>32767) THEN

nOut_a= DINT_TO_INT ( LIMIT (−32767,(( INT_TO_DINT (nIn1_a)*16384/32767),32767));

ELSIF (16384− INT_TO_DINT (nIn2_a)<−32767) THEN

nOut_a= DINT_TO_INT ( LIMIT (−32767,(( INT_TO_DINT (nIn1_a)*16384/−32767),32767));

ELSE

nOut_a= DINT_TO_INT ( LIMIT (−32767,(( INT_TO_DINT (nIn1_a)*16384)/(16384− INT_TO_DINT (nIn2_a)))

END_IF

END_CASE ;

Advertising