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

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

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

vladka767

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Мгновенный расход
« : 26 Июня 2022, 18:14:16 »
Добрый день.
Есть счетчик воды с импульсным выходом, который выдает 14 импульсов на литр, максимальный расход  150 литров в минуту.
Он подключен на счетчик импульсов, который будет опрашиваться по Modbus с OPC сервера, который в свою очередь будет передавать данные в Simple SCADA.
В Simple SCADA нужно отображать значение расхода в л/минуту.
Подскажите как по вашему лучше решить эту задачу?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1365
    • Просмотр профиля
Re: Мгновенный расход
« Ответ #1 : 28 Июня 2022, 16:21:34 »
Здравствуйте.

Чтобы не было зависимости от работы ПК и перезапусков проекта, подобные вычисления проще и надежнее выполнять на контроллере. Если такой возможности нет, то можно попробовать решить данную задачу в скада-системе, как это описано в примере по ссылке.

ART63

  • Постоялец
  • ***
  • Сообщений: 151
    • Просмотр профиля
Re: Мгновенный расход
« Ответ #2 : 30 Июня 2022, 13:08:26 »
Добрый день!

В вашей ссылке описано как рассчитать параметр за период (например, за сутки). Можно ли данный параметр использовать в отчетах, например, "посуточный отчет по потреблению э/э"?
Как я это себе вижу.
1. Для расчетной переменной поставить признак "архивировать". Только по изменению здесь не подходит. Если значения за два периода совпадут, то записи не произойдет. Значит надо "комбинированный". Но там максимальный период 1 час. Т.е. в БД будет минимум 24 значения за сутки.
2. Переменная будет записываться в БД с текущей датой (а последняя может и на следующие сутки перейти), хотя расчет сделан для предыдущей.
Как сделать, чтобы в отчет она попадала с правильной датой? Или отчет по потреблению строится иначе?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3197
    • Просмотр профиля
    • Simple-Scada
Re: Мгновенный расход
« Ответ #3 : 01 Июля 2022, 09:51:56 »
Здравствуйте.

Если Вам нужен отчет за период по нарастающему значению счетчика, то нужно использовать "Периодический" источник данных и добавить в него колонку с типом обработки "Разница". Переменную-интервал выставить равной 0. Затем задать переменной начала время начала суток, переменной конца - время конца суток и построить отчет. Скада возьмёт значение переменной на начало и конец суток, вычислит разницу "конец - начало" и отобразит результат.

Цитировать
Для расчетной переменной поставить признак "архивировать". Только по изменению здесь не подходит. Если значения за два периода совпадут, то записи не произойдет. Значит надо "комбинированный".
Зачем "комбинированный"? Вы думаете, что этот тип будет записывать в БД повторяющиеся значения переменной через заданный интервал? Это не так и не имеет смысла, никакой тип архивации не будет записывать повторяющиеся значения в БД просто так (см. описание типов архивации по ссылке). Для данной задачи полностью подходит тип архивации "по-изменению".


ART63

  • Постоялец
  • ***
  • Сообщений: 151
    • Просмотр профиля
Re: Мгновенный расход
« Ответ #4 : 01 Июля 2022, 11:41:28 »
Добрый день!

Цитировать
Затем задать переменной начала время начала суток, переменной конца - время конца суток и построить отчет. Скада возьмёт значение переменной на начало и конец суток, вычислит разницу "конец - начало" и отобразит результат.
Она возьмет текущее значение на 00-00 или первое значение из БД в сутках?

Цитировать
Зачем "комбинированный"? Вы думаете, что этот тип будет записывать в БД повторяющиеся значения переменной через заданный интервал? Это не так и не имеет смысла, никакой тип архивации не будет записывать повторяющиеся значения в БД просто так (см. описание типов архивации по ссылке). Для данной задачи полностью подходит тип архивации "по-изменению".

Не совсем понял, как тогда получать данные в моем случае.
Имеем рассчитанный расход за сутки (к примеру):
Сутки 1 - 100
Сутки 2 - 104
Сутки 3 - 104
Сутки 4 - 101
Но в БД будет всего 3 строки:
Дата 1 - 100
Дата 2 - 104
Дата 4 - 101.
В итоге в отчет не попадет Дата 3.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3197
    • Просмотр профиля
    • Simple-Scada
Re: Мгновенный расход
« Ответ #5 : 01 Июля 2022, 12:05:20 »
Цитировать
В итоге в отчет не попадет Дата 3.
Если вывести эти данные в источник "по-изменению", то дата 3 в него не попадёт, т.к. данный источник отображает изменение переменной.

Но если использовать источник "Периодический" и задать:
  переменную-интервал равную = 86400 (24 часа),
  переменную начала = 01.01.2022 00:00:00,
  переменную конца  = 05.01.2022 00:00:00
, то в результате получится отчет в 4 строки:
  с 01.01.2022 00:00:00 по 02.01.2022 00:00:00,
  с 02.01.2022 00:00:00 по 03.01.2022 00:00:00, 
  с 03.01.2022 00:00:00 по 04.01.2022 00:00:00,
  с 04.01.2022 00:00:00 по 05.01.2022 00:00:00.
Даже если переменная не менялась 5 суток и в БД одна точка. Если разобраться не получается, то рекомендуем сделать тестовый проект с переменной архивируемой по-изменению и тестовый отчет, создать в нём периодический источник и построить его. Например, за 1 час, с интервалом 10 минут для переменной, которая не меняется. Принцип работы станет понятнее. Для любых других интервалов принцип работы тот же. 

vladka767

  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Мгновенный расход
« Ответ #6 : 19 Июля 2022, 18:40:30 »
Чтобы не было зависимости от работы ПК и перезапусков проекта, подобные вычисления проще и надежнее выполнять на контроллере. Если такой возможности нет, то можно попробовать решить данную задачу в скада-системе, как это описано в примере по ссылке.
В примере указан алгоритм рассчета расхода за период времени, а мне нужно мгновенный расход в л/минуту
« Изменён: 19 Июля 2022, 21:25:14 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1365
    • Просмотр профиля
Re: Мгновенный расход
« Ответ #7 : 19 Июля 2022, 22:34:12 »
Как мы уже писали выше, подобные вычисления проще и надежнее выполнять на контроллере. Исходя из Вашего первоначального описания вводных данных, расчет в скаде возможен только за какой-то период времени. По другому не получится. Если требуется "расход в л/минуту", значит период времени расчета можно взять равным одной минуте. По ссылке имеется пример расчета расхода за минуту. Т.к. у Вас "14 импульсов на литр", то результат нужно разделить на 14. В итоге получится расход в литрах за прошедшую минуту. По этой и этой ссылкам на форуме ОВЕН можно найти обсуждения вычисления расхода по импульсам. Можно попробовать реализовать варианты вычислений предложенные в данных обсуждениях.