TwoPointFun

TwoPointFun (FUN)

FUNCTION TwoPointFun : REAL

Short description

Linear conversion of a numeric 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 the limiting on the analog value output

iMinMaxOffset

INTEGER

Values of the limits on 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 in the conversion process

Function description

Analog value output

The analog value output is from the analog value input rIn_X calculated depending on the linear characteristic defined 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\

Limitations

The analog value output is of data type REAL. By an unsuitable selection of the parameters rX1, rX2, rY1 and rY2 as well as of the value of the analog value input rIn_X it can lead to exceeding the bounds of the data type.\

Enable / disable 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

Limit 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

Default 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 taken into account: \

  • rX1 AND rX2 = 0

  • rX1 = rX2

  • rY1 AND rY2 = 0

  • rY1 = rY2

Error in the conversion process

xErr

Notes

FALSE

FALSE

Conversion error-free

TRUE

TRUE

Error in the conversion process

Legend: X = any

CODESYS

InOut:

Scope
Name
Type
Initial

Return

TwoPointFun

REAL

Input

rIn_X

REAL

Input

rX1

REAL

0

Input

rX2

REAL

100

Input

rY1

REAL

0

Input

rY2

REAL

100

Input

xMinMaxLimit

BOOL

Input

iMinMaxOffset

INT

Output

xErr

BOOL

Last updated