PDA

Просмотр полной версии : Отчет - почасовое среднее значение из архива



Alexei_MolKom
03.03.2013, 11:46
Есть архивные значение которые появляются раз в тридцать секунд. Надо создать отчеты, которые бы отображали за сутки среднее значение за каждый час. В общем то значение на первый взгляд простое, но решить ее не удается. В видео-примере, сказано что нужно поставить в настройках данных "периодический процесс" и задать интегральное значение. Но если устанавливаю периодический процесс то МастерСкада требует подключить время какого-то начала и конца. Никак не могу с этим разобраться. Как решить текущую задачу имея только архивное значение?

SCADAMaster
03.03.2013, 12:43
А в чем проблема связать параметры "Начало" и "Конец"?
Эти параметры определяют время выборки из архива. Если вам нужно строить отчет за прошедшие сутки, то сделайте в дереве объектов два "Расчет". Один назовите "Начало" а другой "Конец". У конца в формуле пропишите:
CurDay( )
У начала пропишите:
CurDay( ) - 86400
После чего свяжите их с одноименными параметрами источника данных в редакторе отчетов.
У параметра источника "Интервал" задайте 3600.

Alexei_MolKom
03.03.2013, 16:19
А в чем проблема связать параметры "Начало" и "Конец"?


Так время и конец и интервал за который надо построить общий отчет? Вот оно что...



У начала пропишите:
CurDay( ) - 86400


Во! Как получилось 86400 - это один день назад? Пытался разобраться как вычесть из текущего ДатаТайм минус один день так и не допетрил. =)

SCADAMaster
03.03.2013, 16:44
Так время и конец и интервал за который надо построить общий отчет? Вот оно что...

Да. Этими параметрами вы ограничиваете диапазон времени выборки данных из архива.


Во! Как получилось 86400 - это один день назад? Пытался разобраться как вычесть из текущего ДатаТайм минус один день так и не допетрил. =)
В модуле "Расчет" при работе со временем нужно работать с секундами.
24*60*60 = 86400, то есть вы вычитаете из начала текущий суток, количество секунд в сутках, и получаете вчерашнее число.

Alexei_MolKom
03.03.2013, 22:03
Сделал два "Расчета" один Начало с формулой "КурДай() - 24*60*60*7" другой Конец с формулой "КурДай". Перетыскиваю их мышкой на Начало и Конец в источнике данных. Далее настраиваю остальные параметры. При нажатии на предварительной просмотр выводится сообщения о том что необходимо определить Начало и Конец например перетаскиванием мышкой... Как будто я их не перетаскивал. В свойствах Начала и Конца источника стоит связь на мои Расчеты. Что может быть не так? Описать остальные шаги подробно?

SCADAMaster
04.03.2013, 06:36
Дело в том, что если вы хотите просматривать отчет в предварительном просмотре, то все переменные должны иметь данные. Сейчас у вас в расчетах прописана формула, но работает она только в режиме исполнения.
Чтобы просмотреть отчет в предварительном просмотре, просто задайте у расчетов "Начало" и "Конец" значение до опроса (на закладке "Опрос").

Alexei_MolKom
04.03.2013, 20:59
...формула, но работает она только в режиме исполнения...
Вон че оказывается. Блин, чета столько нюансов толи не описаны в книге (которая идет бесплатно с первой покупкой МастерСкада), толи я такой не внимательный. Кроме справки по МастерСкада есть какой то полный материал не "справочником", а последовательным "расказом" со всеми описанными изюминками?

SCADAMaster
05.03.2013, 07:22
Есть видеопримеры:
http://www.masterscada.ru/?additional_section_id=233
Есть текстовая документация:
http://www.masterscada.ru/?additional_section_id=141

Alexei_MolKom
05.03.2013, 19:26
Как в отчете вывести время начала и конца среднего значения??? Если создаю поле текст со стандартной переменной Время + 60*60, то нифига не получается... Т.е. Время = 02.03.2013 8:00, то как сделать второе поле = 02.03.2013 9:00 для текущего значения? То есть чтобы показывалось время расчета значения.

SCADAMaster
05.03.2013, 19:37
Непонятно что именно именно вам нужно. Как может быть время начала и конца среднего значения?
Опишите вашу задачу подробнее.

Alexei_MolKom
05.03.2013, 20:37
Источник данных: есть Начало, Конец, Интревал, Время и вход из дерева объектов(переменная). Ставлю Источник данных Периодический; Начало КурДай() - 24*60*60, Конец - КурДай(); Интервал - 3600; в переменной ставлю Среднее. Хватаю источник данных и кидаю на форму. Добавляются два столбца Время и Значение. Выводятся строки со среднем значением в час. Всего 24 строки, за каждый час. Соотвественно в поле время одно значение. Например, если значение посчитано с 17 до 18, то в поле время выводится дата со значение 18 часов. Хотелось бы ставить Время начала и конца: т.е. первая строка - два времени, начало 17:00 и конец 18:00, вторая - 18:00 и 19:00 и т.д.

SCADAMaster
05.03.2013, 21:09
Создайте в источнике данных новую рассчитываемую колонку (через контекстное меню). В выражение пропишите:
ВашИсточникДанных.Время-TimeSpan.FromHours(1)
Это создаст колонку которая будет возвращать значение на 1 час раньше.


в переменной ставлю Среднее.
Лучше поставить "Интегральное среднее".