Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Часовой расход воды  (Прочитано 2805 раз)

razorqhex

  • Пользователь
  • **
  • Сообщений: 79
    • Просмотр профиля
Часовой расход воды
« : 27 Декабря 2019, 14:30:57 »
Всем привет. Недавно я задавал вопрос о суточном расходе https://simple-scada.com/forum/index.php?topic=929.0

Я пытался сделать часовой расход

Добавил скрипт "прошел час" и формулу расчёта

Код
begin
  HourlyWaterConsumption_VNS19.Value := (DiscreteInputCount0_19_End.Value - DiscreteInputCount0_19_Start.Value) / 10;
end.

Как можно считать часовой расход + суточный?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Часовой расход воды
« Ответ #1 : 27 Декабря 2019, 21:31:14 »
Здравствуйте.
 
Вы пересчитываете часовой расход раз в час? И нужно добавить ещё расчет суточного расхода раз в 24 часа? Если да, то можно в тот же часовой скрипт добавить код проверки на то, что прошло 24 часа, например:
Код: (delphi)
begin
  // этот код выполняется каждый час
  HourlyWaterConsumption_VNS19.Value := (DiscreteInputCount0_19_End.Value - DiscreteInputCount0_19_Start.Value) / 10;

  if HourOf(Now) = 0 then
  begin
    // код расположенный здесь будет выполняться каждые 24 часа в 00 часов 00 минут.
    // здесь же можно разместить пересчет суточного расхода
  end;
end.

razorqhex

  • Пользователь
  • **
  • Сообщений: 79
    • Просмотр профиля
Re: Часовой расход воды
« Ответ #2 : 06 Января 2020, 14:23:20 »
Здравствуйте.
 
Вы пересчитываете часовой расход раз в час? И нужно добавить ещё расчет суточного расхода раз в 24 часа? Если да, то можно в тот же часовой скрипт добавить код проверки на то, что прошло 24 часа, например:
Код: (delphi)
begin
  // этот код выполняется каждый час
  HourlyWaterConsumption_VNS19.Value := (DiscreteInputCount0_19_End.Value - DiscreteInputCount0_19_Start.Value) / 10;

  if HourOf(Now) = 0 then
  begin
    // код расположенный здесь будет выполняться каждые 24 часа в 00 часов 00 минут.
    // здесь же можно разместить пересчет суточного расхода
  end;
end.
Здравствуйте. Всё-равно не получилось сделать часовой расход. Сделал вот такую залипуху:
Создал скрипт который выполняется ежечасно:
Код: (delphi)
var
  aDateHourly: TDateTime;
begin
//Часовой расход воды ВНС 19
  aDateHourly := RecodeTime(Now, HourOf(Now), 0, 0, 0);
  ArchiveValueByTime(DiscreteInputCount0_19, HourlyWaterConsumption_VNS19_End, aDateHourly);

  aDateHourly := IncHour(Now, -1);
  ArchiveValueByTime(DiscreteInputCount0_19, HourlyWaterConsumption_VNS19_Start, aDateHourly);
end.
Также создал скрипт по изменению переменной и добавил туда 2 тега HourlyWaterConsumption_VNS19_Start и HourlyWaterConsumption_VNS19_End
Код: (delphi)
begin
//Вычисляем значение в кубометрах и записываем результат в HourlyWaterConsumption_VNS19_Result
HourlyWaterConsumption_VNS19_Result.Value := (HourlyWaterConsumption_VNS19_End.Value - HourlyWaterConsumption_VNS19_Start.Value) / 10;
end.

Как думаете? Правильно?
Я сделал по принципу суточного расхода https://simple-scada.com/forum/index.php?topic=929.0
« Изменён: 06 Января 2020, 14:25:11 от razorqhex »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Часовой расход воды
« Ответ #3 : 07 Января 2020, 16:51:34 »
Цитировать
Как думаете? Правильно?
Здравствуйте. Можно и так, если Вам это подходит.