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;


при условии вызова опроса раз в 0,5 секунды. Погрешность тоже будет. А вот если считать время между опросами и вместо 7200 подставлять точное значение между получения ответов, то погрешность будет меньше.

з.ы. считать при помощи ПЛК в принципе БРЕД, либо нужна скорость куда выше. Это вам не счетчик раз в 250 мкс расчет...