Для ответа надо вспомнить школьную алгебру и решить пропорцию:Не могу масштабировать сигнал 4-20 мА с датчика давления, шкала которого -1 +10 Бар.
Надо при 4 мА получить -1 бар, а при 20 мА 10 бар.
Код: Выделить всё
XMIN (4 мА) соответствует YMIN (-1 бар)
XMAX (20 мА) соответствует YMAX (10 бар)
X мА соответствует Y бар
Код: Выделить всё
FUNCTION FC1: VOID //Масштабирование XMIN…XMAX -> YMIN…YMAX
TITLE = ' Масштабирование.'
VAR_INPUT //Входные переменные.
X:REAL; //Вход.
XMIN:REAL; //Минимум входного диапазона.
XMAX:REAL; //Максимум входного диапазона.
YMIN:REAL; //Минимум выходного диапазона.
YMAX:REAL; //Максимум выходного диапазона.
END_VAR
VAR_OUTPUT //Выходные переменные.
Y:REAL; //Выход.
END_VAR
//Алгоритм.
IF (XMAX<>XMIN) //Деление на 0 может остановить процессор.
THEN
Y:=(YMAX-YMIN)*((X-XMIN)/(XMAX-XMIN))+YMIN; //Масштабирование.
ELSE
Y:=0.0;
END_IF;
END_FUNCTION