26 lines
1010 B
Smalltalk
26 lines
1010 B
Smalltalk
(*
|
|
===============================================================================
|
|
Project : PLC_Library
|
|
Device : -
|
|
Path : Общие
|
|
Name : Norm_real
|
|
Type : FUNCTION
|
|
===============================================================================
|
|
*)
|
|
|
|
FUNCTION Norm_real : REAL
|
|
(*
|
|
Нормирует значение аналогового входа X по двум заданным граничным точкам нормировки (X1,Y1) (X2,Y2)
|
|
*)
|
|
VAR_INPUT
|
|
X: REAL; (* Входное (ненормированное) значение *)
|
|
X1: REAL; (* Первая точка нормировки, вход *)
|
|
Y1: REAL; (* Первая точка нормировки, выход *)
|
|
X2: REAL; (* Вторая точка нормировки, вход *)
|
|
Y2: REAL; (* Вторая точка нормировки, выход *)
|
|
END_VAR
|
|
(*----- IMPLEMENTATION -----*)
|
|
IF (X2-X1 = 0) THEN Norm_real:=Y1; RETURN; END_IF;
|
|
Norm_real:=(X-X1)*(Y2-Y1)/(X2-X1)+Y1;
|
|
END_FUNCTION
|