Files

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