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 curve

rX2

REAL

100

Point 2 of the input range

rY2

REAL

100

Point 2 of the output characteristic curve

xMinMaxLimit

BOOL

Enable / disable the limit 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 from the analog value input rIn_X depending on the linear characteristic curve defined by the two points P1(rX1/rY1) and P2(rX2/rY2) is calculated. In the event of a conversion error (xErr = TRUE) the analog value output remains unchanged.

circle-info

Formula

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

Constraints

The analog value output is of data type REAL. Through an unsuitable selection of the parameters rX1, rX2, rY1 and rY2 as well as the value of the analog value input rIn_X it can lead to exceeding the limits 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

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:

circle-info

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 during 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

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