Вложений: 1
Программа для суммирования значений.
Доброго времени суток, форумчане !
В общем, необходима программа, неважно на чем написанная для суммирования показаний с массомера ЭМИС-МАСС 260. У самого прибора только общие накопленные значения, а необходимо сделать периодическую градацию:накомпленный объем за 2 часа, за сутки, за месяц и за год. В учебном проекте "Учет воды" нашел вот это:
______________
time_date := DT_TO_TOD(GET_LOCAL_TIME());
day_cur := DT_TO_Date(GET_LOCAL_TIME());
month_cur := MID(DT_TO_STRING(GET_LOCAL_TIME()),2,6);
IF NOT start THEN
time_start := DT_TO_TOD(GET_LOCAL_TIME());
day_start := DT_TO_DATE(GET_LOCAL_TIME());
month_start := MID(DT_TO_STRING(GET_LOCAL_TIME()),2,6);
start := true
END_IF;
hour := SUB_TOD_TOD(time_date, time_start);
day := SUB_DATE_DATE(day_cur,day_start);
расход_за_час := расход_за_час+(расход_час/3600);
расход_за_сутки:=расход_за_сутки+(расход_час/3600);
расход_за_месяц:=расход_за_месяц+(расход_час/3600);
IF month_start = month_cur THEN
IF day = t#0s THEN
IF hour > t#3600s THEN
расход_за_час := 0;
time_start := DT_TO_TOD(GET_LOCAL_TIME());
END_IF;
ELSE
расход_за_сутки := 0;
расход_за_час := 0;
time_start := DT_TO_TOD(GET_LOCAL_TIME());
day_start := DT_TO_DATE(GET_LOCAL_TIME());
END_IF;
ELSE
расход_за_сутки:=0;
расход_за_час:=0;
расход_за_месяц:=0;
расход_час:=0;
time_start:=DT_TO_TOD(GET_LOCAL_TIME());
day_start:=DT_TO_DATE(GET_LOCAL_TIME());
month_start:=MID(DT_TO_STRING(GET_LOCAL_TIME()),2, 6);
END_IF;
___________________
Проблема в следующем: Очень завышенная сумма получается, подозреваю, что программа складывает значения чаще 1 раз в секунду. И еще почему-то время текущее время на 3 часа вперед устанавливает. Подскажите, как это можно исправить?Скрин с параметрами прилагаю. Если накидаете новую программу, с меня обязательно пивасик )) Заранее спасибо!
p.s Импульсный выход с прибора использовать нет возможности.