
Сообщение от
Dimensy
Думаю, проблема в погрешности расчета времени цикла.
Попробуйте время цикла посчитать так
Код:
function_block TimeCycle
var_input
none : bool;
end_var
var_output
Q : udint;
end_var
var
init : bool;
t1, t2 : udint;
end_var
t1 := time_to_udint(get_time());
if init then
Q := t1 - t2;
else
init := true;
end_if
t2 := t1;
end_function_block
Проще сразу на ST мгновенный расход вычислять, время цикла не нужно вообще
Простейший вариант
Код:
function_block RASHOD_lite (* (с) PeterA для форума ОВЕН *)
var_input
TIC: BOOL; (*импульс счетчика*)
Cimp: REAL; (*Вес импульса, л*)
end_var
var_output
Q: REAL; (*мгновенный расход мкуб/час*)
end_var
var
M: BOOL;
period: TIME;
start: TIME;
end_var
IF TIC AND NOT M THEN
period:= GET_TIME() - start;
start:= GET_TIME();
END_IF
M:= TIC;
Q:= 3600/udint_to_real(time_to_udint(period)) * Cimp;
end_function_block
Более продвинутый вариант - с учетом параметра расходомера Qмин (Минимальный расход) см.ниже
https://owen.ru/forum/showthread.php...l=1#post470767
Захват-11.png