Значит нужно взять значение счётчика на конец суток, например 1000, вычесть из него значение на начало суток, например 400 и полученный результат будет количеством импульсов накопленных за сутки, т.е 1000 - 400 = 600 импульсов. Делим это количество на 10 и получаем значение в кубах 600 / 10 = 60 кубов.
Для извлечения значений из архива нужно использовать
процедуру ArchiveValueByTime. Эта процедура берёт значение переменной из архива и записывает результат в переменную которую Вы укажете. Т.е. можно создать две внутренние переменные для значения на начало и на конец суток, например vrStart и vrEnd и в них получать значение из архива:
var
aDate: TDateTime;
begin
aDate := EncodeDateTime(2019, 12, 10, 0, 0, 0, 0); // время на начало суток (10 декабря 00:00:00)
{ извлечь из архива значение переменной "MyVariable" в отметке времени "aDate" и записать результат в переменную "vrStart" }
ArchiveValueByTime(MyVariable, vrStart, aDate);
aDate := EncodeDateTime(2019, 12, 11, 0, 0, 0, 0); // время на конец суток (11 декабря 00:00:00)
{ извлечь из архива значение переменной "MyVariable" в отметке времени "aDate" и записать результат в переменную "vrEnd" }
ArchiveValueByTime(MyVariable, vrEnd, aDate);
end.
, здесь мы время формируем в скрипте, но можно брать его из переменной или из компонента Календарь, как угодно.
Теперь можно создать отдельный скрипт
с типом события "Изменились переменные", добавить в него переменные vrStart и vrEnd и написать код пересчёта:
begin
// вычисляем значение в кубометрах и записываем результат в переменную vrResult
vrResult.Value := (vrEnd.Value - vrStart.Value) / 10;
end.