是這個?寫過一篇教學。有興趣可以來看。
http://www.cx-programmer.com/read.php?tid=1119&fpage=1
[QUOTE]Under := FALSE;
Over := FALSE;
raw_int := int_Raw;
IF Clamp = TRUE THEN
IF int_Raw < int_Raw_Min THEN
raw_int := int_Raw_Min;
Under := TRUE;
ELSE IF int_Raw > int_Raw_Max THEN
raw_int := int_Raw_Max;
Over := TRUE;
END_IF;
END_IF;
ELSE IF Clamp = FALSE THEN
IF int_Raw < int_Raw_Min THEN
Under := TRUE;
ELSE IF int_Raw > int_Raw_Max THEN
Over := TRUE;
END_IF;
END_IF;
END_IF;
END_IF;
m := (flt_Scaled_Max - flt_Scaled_Min) / (INT_TO_REAL(int_Raw_Max) - INT_TO_REAL(int_Raw_Min));
b := flt_Scaled_Max - m * INT_TO_REAL(int_Raw_Max);
Scl_Real := m * INT_TO_REAL(raw_int) + b;
Scl_Int := REAL_TO_INT(Scl_Real);
[/QUOTE]