PROGRAM Kwt_hours
VAR
kwt_corr: BOOL;
rt1: R_TRIG;
kwt_h: REAL;
kwt_start: REAL;
END_VAR
VAR RETAIN
kwt_summ: REAL;
END_VAR
rt1(CLK:=kwt_corr , Q=> );
IF rt1.Q THEN
kwt_summ:=kwt_start;
kwt_start:=0;
END_IF
kwt_h:=active/7200/1000;
kwt_summ:=kwt_summ+kwt_h;
Программа запускается из Задач, циклическая, интервал 500 ms, расчет вполне приемлимый от значения мгновенной активной мощности
В основной программе просто Kwt_hours.kwt_summ в переменную через округление real заводил




Ответить с цитированием