TwoPointFun

TwoPointFun (FUN)

FUNCTION TwoPointFun : REAL

Short description

Linear conversion of a numerical input value using a characteristic curve defined by two points. Typical application: scaling of raw process values\

Interfaces

Inputs

Name
Data type
Value range
Initial value
Function

rIn_X

REAL

Analog value input

rX1

REAL

0

Point 1 of the input range

rY1

REAL

0

Point 1 of the output characteristic

rX2

REAL

100

Point 2 of the input range

rY2

REAL

100

Point 2 of the output characteristic

xMinMaxLimit

BOOL

Enable / disable of the limits at the analog value output

iMinMaxOffset

INTEGER

Values of the limits at the analog value output

Outputs

Name
Data type
Value range
Initial value
Function

TwoPointFun

REAL

Linear conversion of a numerical input value

xErr

BOOL

* FALSE: Conversion error-free * TRUE: Error during the conversion process

Function description

Analog value output

The analog value output is driven by the analog value input rIn_X depending on the linear characteristic determined by the two points P1(rX1/rY1) and P2(rX2/rY2). In case of a conversion error ( xErr = TRUE ) the analog value output remains unchanged.\

Formula

rOut_Y = (((rX1-rIn_X)*(rY2-rY1))/(rX1-rX2))+rY1\

Restrictions

The analog value output is of data type REAL. Through an inappropriate selection of the parameters rX1, rX2, rY1 and rY2 as well as of the value of the analog value input rIn_X there may be an exceedance of the limits of the data type.\

Enable / disable of the limits xMinMaxLimit

The limits of the analog value output can generally be enabled and disabled with this input.\

xMinMaxLimit

Limits

Notes

FALSE

none

Analog value output without absolute limits

TRUE

Y_min and Y_max

Limitation of the analog value output active

Values of the limits iMinMaxOffset

The limits of the analog value output are only active if the input xMinMaxLimit is active ( = TRUE ). The limit values Y_min and Y_max are then calculated as follows:\

Formulas

Y_min = rY1 - ((ABS(rY2-rY1))*iMinMaxOffset)/100 Y_max = rY2 + ((ABS(rY2-rY1))*iMinMaxOffset)/100\

rY1

rY2

rY2 - rY1

iMinMaxOffset

Y_min

Y_max

Notes

0

100

100

0

0

100

Standard limits

0

100

100

10

-10

110

Positive offset

0

100

100

-10

10

90

Negative offset

Digital output xErr

The digital output xErr signals an error in the conversion process. The following errors are considered: \

  • rX1 AND rX2 = 0

  • rX1 = rX2

  • rY1 AND rY2 = 0

  • rY1 = rY2

Error during the conversion process

xErr

Notes

FALSE

FALSE

Conversion error-free

TRUE

TRUE

Error during the conversion process

Legend: X = any\

Codesys

InOut:

Scope
Name
Type
Initial
Comment

Return

TwoPointFun

REAL

Input

rIn_X

REAL

Analog value input

Input

rX1

REAL

0

Point 1 of the input range

Input

rX2

REAL

100

Point 2 of the input range

Input

rY1

REAL

0

Point 1 of the output characteristic

Input

rY2

REAL

100

Point 2 of the output characteristic

Input

xMinMaxLimit

BOOL

Enable / disable of the limits at the analog value output

Input

iMinMaxOffset

INT

Values of the limits at the analog value output

Output

xErr

BOOL

FALSE: Conversion error-free TRUE: Error in the conversion process

Last updated