24 lines
521 B
Plaintext
24 lines
521 B
Plaintext
|
|
(* @PATH := '\/Functions_Collection' *)
|
|
(* @SYMFILEFLAGS := '0' *)
|
|
FUNCTION ReadPeripherial : REAL
|
|
VAR_INPUT
|
|
i_Periferial : INT ;
|
|
i_MaxAnalog : REAL ;
|
|
i_MinAnalog : REAL ;
|
|
i_PerMin : INT ;
|
|
i_PerMax : INT ;
|
|
END_VAR
|
|
VAR
|
|
mSlope : REAL ;
|
|
mZero : REAL ;
|
|
END_VAR
|
|
(* @END_DECLARATION := '0' *)
|
|
IF i_PerMax <> i_PerMin THEN
|
|
mSlope := (i_MaxAnalog - i_MinAnalog) / (i_PerMax - i_PerMin) ;
|
|
mZero := i_MinAnalog - i_PerMin * mSlope ;
|
|
ReadPeripherial := i_Periferial * mSlope + mZero ;
|
|
END_IF
|
|
|
|
END_FUNCTION
|