![]() |
|
Как получить расчеты тегов за длительные периоды - Версия для печати +- WINNUM Community (https://community.winnum.io) +-- Сообщество Все сообщества (https://community.winnum.io/forumdisplay.php?fid=1) +--- Сообщество Динамические приложения в WINNUM Platform (https://community.winnum.io/forumdisplay.php?fid=2) +--- Темы: Как получить расчеты тегов за длительные периоды (/showthread.php?tid=12) |
Как получить расчеты тегов за длительные периоды - Lamantur - 02-16-2024 Для построения отчетов за длительные периоды в WINNUM используется блокчейн. Длительности тегов рассчитываются в конце каждого дня для построения длительных отчетов. Эти же значения можно использовать в динамических приложениях, что позволяет использовать данные вместо многочисленных запросов и сокращать время выполнения команд. Так, например, для получения суммарного времени работы под нагрузкой для конкретного станка можно использовать функцию getPriorityTagDuration, в результате мы получим массив из промежутков, когда тег выполнялся с учетом приоритетности, но если временной интервал указать больше двух-трех дней, то результатом будет огромный массив и выполнятся такой запрос может достаточно долго, может даже не хватить оперативной памяти, выделенной под работу браузера и получить зависание всей страницы. Что же делать, если нас интересует график загрузки оборудования за год? Для этого работают роботы приложений. Рассчитанное значение тегов за каждый день уже с учетом приоритетности и календаря записано роботом. Для получения этих значений достаточно воспользоваться стандартной функцией getSignal, и указать вместо сигнала адрес в структуре блокчейн. Общая структура запроса: •[App ID].[Tag ID].[тип расчета].[тип значения] = значение •Типы расчета: •SCHED_PRIO – с приоритетностью по календарю
•SCHED_NOPRIO - без приоритетности по календарю
•REG_NOPRIO - без приоритетности без календаря•Типы значений: •PER – проценты, HOUR – часы Пример: •17.145.SCHED_PRIO.HOUR •17 – ID приложения
•145 – ID тега
•SCHED_PRIO – расчет по календарю с учетом приоритетности
HOUR – результат получить в миллисекундах суммарно по всем сменамКод: var UUID = "GHIKFKGL-IR85-85JR-JGHUTKOL" ;// UUID - это ключ идентификатор продукта (станка)Еще быстрее можно посчитать значения за несколько месяцев, если нас интересуют все дни месяца: Тогда нужно просто добавить "m", значения появляются в первый день следующего месяца, поэтому его нужно тоже захватить во временной промежуток Код: var tagsPriorityID = '6.1.m.SHED_PRIO.HOUR';Разница во времени выполнения ощущается даже при построения отчета за несколько дней. |