energvk а как вы предыдущий результат измерения получаете в CDS ?
У меня не установлен 106-й, а так, макросы онлайн или что-то подобное, он вроде там был.
Вид для печати
energvk а как вы предыдущий результат измерения получаете в CDS ?
У меня не установлен 106-й, а так, макросы онлайн или что-то подобное, он вроде там был.
Что-то типа такого:
Код:VAR_INPUT
ai :REAL;
in_min :REAL;
in_max :REAL;
out_min :REAL;
out_max :REAL;
END_VAR
VAR_OUTPUT
Res :REAL;
Err :BOOL;
END_VAR
VAR
tmp :REAL;
END_VAR
Err:=TRUE;
CASE OF
ELSE
Err:=FALSE;
END_CASE
IF NOT Err THEN tmp:=out_min+(ai-in_min)*(out_max-out_min)/(in_max-in_min); (*Расчет фактического значения*)
END_IF
Res:=tmp;
Поставил 106-й. Там есть fSEL7, на форуме можно найти просто fSEL для двух значений.
На счет сохранения предыдущего, можно поиграться с записью в переменную при сравнении на ошибку. Может с обратной связью или даже без нее. Тоже ведь в цикле все выполняется.
Да, звучит вроде просто, но вот в лоджике пока не пойму как сделать (fSel действительно есть на форуме, обнаружил, когда уже написал тоже самое :))
Ну, через fSEL гнать переменную, при отсутствии ошибки сохранять в переменную на второй вход fSEL. При наличии ошибки запрещать обновлять переменную и переключать fSEL на нее.
Спасибо! С Вашей помощью функцию намалевал, пока не совершенную, буду дорабатывать, спасибо большое!
Вложение 20374
Если кому-то пригодится, вот причёсанный:
Вложение 20375
Здравствуйте. Где можно прочитать как настраивать визуализацию для ПР200? К примеру активен выход 6, появляется цифра 6.