УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

Тренды и графики как результат операции над архивными значениями


Автор Сообщение
Сообщение создано: 14. 02. 2013 [09:26]
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
На одном из объектов установлена система опрашивающая систему защиты оборудования.
Аналоговые сигналы сохраняются раз в 1с "архиватором значений" и выводятся на Тренд.
Теперь у заказчика появилось желание делать анализ исторических данных.
Нужно предоставить пользователю возможность выбирать параметры в качестве операндов и операции над ними,
а результат выводить в виде:
1. тренда(функция времени)
2. графика без привязки ко времени.
Пока не очень представляю как это можно сделать. Подскажите какие есть пути решения задачи?



Сообщение создано: 14. 02. 2013 [10:47]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"hyper_sonic" wrote:

Теперь у заказчика появилось желание делать анализ исторических данных.
Нужно предоставить пользователю возможность выбирать параметры в качестве операндов и операции над ними,

Как-бы анализ это не функция системы реального времени и обычно для этого производится экспорт в CSV, а затем в табличном процессоре (ака Open(Libre)OfficeCalc) делается, что нужно.

"hyper_sonic" wrote:

а результат выводить в виде:
1. тренда(функция времени)

Это ещё можно делать, например, функцией пересчёта архива JavaLikeCalc."Сервисные процедуры"."Пересчёт архивов".

"hyper_sonic" wrote:

2. графика без привязки ко времени.

А это нельзя, опять-же потому что система реального времени без времени по оси иксов нехарактерно.

P.S. Конечно можно в примитив "Диаграмма" добавить функцию отрисовки графиков из произвольных данных, особенно сейчас, когда поддерживается работа с объектами (как контейнера данных).

Learn, learn and learn better than work, work and work.
Сообщение создано: 15. 02. 2013 [12:46]
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
"roman" wrote:

"hyper_sonic" wrote:

Теперь у заказчика появилось желание делать анализ исторических данных.
Нужно предоставить пользователю возможность выбирать параметры в качестве операндов и операции над ними,

Как-бы анализ это не функция системы реального времени и обычно для этого производится экспорт в CSV, а затем в табличном процессоре (ака Open(Libre)OfficeCalc) делается, что нужно.

Полностью согласен, первое что сказал когда стали об этом спрашивать. Со слов эксплуатации им хотелось бы строить по архивным данным характеристики и оценивать режимы работы защищаемого оборудования.

"roman" wrote:

"hyper_sonic" wrote:

а результат выводить в виде:
1. тренда(функция времени)

Это ещё можно делать, например, функцией пересчёта архива JavaLikeCalc."Сервисные процедуры"."Пересчёт архивов".

Я так понимаю, таким образом можно производить заранее предопределенные расчеты.

А как это делать динамически из VCA Engine? Что бы можно было выбрать операцию, например "отношение", а потом знаменатель и числитель из списка параметров. А можно производить такой расчет на лету перед выводом в тренд?


"roman" wrote:

"hyper_sonic" wrote:

2. графика без привязки ко времени.

А это нельзя, опять-же потому что система реального времени без времени по оси иксов нехарактерно.
P.S. Конечно можно в примитив "Диаграмма" добавить функцию отрисовки графиков из произвольных данных, особенно сейчас, когда поддерживается работа с объектами (как контейнера данных).


Да было бы здорово использовать этот виджет не только в режиме спектрометра и тренда.
Те, я так понимаю можно выводить данные в тренд не только из параметров и архивов? Есть такой функционал в LTS 0.8.4?

[Сообщение редактировалось 1 раз(а), в последний раз 15.02.2013 в 12:48.]
Сообщение создано: 15. 02. 2013 [13:27]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"hyper_sonic" wrote:

А как это делать динамически из VCA Engine? Что бы можно было выбрать операцию, например "отношение", а потом знаменатель и числитель из списка параметров. А можно производить такой расчет на лету перед выводом в тренд?

Этот скрипт я привёл только как пример реализации. Вы же можете поместить вызов подобного кода в момент выбора интервала и производить пересчёт на запрошенное время, а диаграмма будет показывать пересчитанное.

"hyper_sonic" wrote:

Те, я так понимаю можно выводить данные в тренд не только из параметров и архивов? Есть такой функционал в LTS 0.8.4?

Сейчас нельзя я сказал только, что эту функцию принципиально возможно реализовать.

Learn, learn and learn better than work, work and work.
Сообщение создано: 15. 02. 2013 [13:54]
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
"roman" wrote:

"hyper_sonic" wrote:

А как это делать динамически из VCA Engine? Что бы можно было выбрать операцию, например "отношение", а потом знаменатель и числитель из списка параметров. А можно производить такой расчет на лету перед выводом в тренд?

Этот скрипт я привёл только как пример реализации. Вы же можете поместить вызов подобного кода в момент выбора интервала и производить пересчёт на запрошенное время, а диаграмма будет показывать пересчитанное.

Ясно, те использовать временный промежуточный архив? И его подсовывать для тренда?

"roman" wrote:

"hyper_sonic" wrote:

Те, я так понимаю можно выводить данные в тренд не только из параметров и архивов? Есть такой функционал в LTS 0.8.4?

Сейчас нельзя я сказал только, что эту функцию принципиально возможно реализовать.

Понятно спасибо.

[Сообщение редактировалось 1 раз(а), в последний раз 15.02.2013 в 13:55.]
Сообщение создано: 15. 02. 2013 [22:52]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"hyper_sonic" wrote:

Ясно, те использовать временный промежуточный архив? И его подсовывать для тренда?

Ну да.
Хотя уже подумывал о возможности реализовать это прозрачно, встроив код скрипта пересчёта прямо в объект архива.

Learn, learn and learn better than work, work and work.
Сообщение создано: 25. 05. 2013 [20:00]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"hyper_sonic" wrote:

Да было бы здорово использовать этот виджет не только в режиме спектрометра и тренда.
Те, я так понимаю можно выводить данные в тренд не только из параметров и архивов?

Добавил функцию построения графика из производных данных: http://wiki.oscada.org/Doc/VCAEngine#h668-18

Пока только в рабочей версии!

Learn, learn and learn better than work, work and work.
Сообщение создано: 26. 05. 2013 [21:47]
aleax
Alexey Bondarchuk
Зарегистрирован(а) с: 27.01.2010
Сообщения: 73
"roman" wrote:

Добавил функцию построения графика из производных данных: http://wiki.oscada.org/Doc/VCAEngine#h668-18

Пока только в рабочей версии!


Супер, то что нужно.

Уже начал было пилить свой костылек для реализации поведения схожего с теперешним "line:3.14". Хотя что-то рабочее и получилось (см патч во вложении), там все же код не айс.

А бекпорт в ветку 0.8 планируется? Или это уже расширение функционала, что не предусматривается статусом ветки LTS?

Хотя бекпортнуть думаю, для меня не проблема.

Еще раз спасибо за проделанный труд!
Вложенный файл

second_version_svn1978.patch (Тип файла: text/x-patch, Размер: 9.69 килобайт) — 1347 загрузок
Сообщение создано: 27. 05. 2013 [12:27]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"aleax" wrote:

"roman" wrote:

Добавил функцию построения графика из производных данных: http://wiki.oscada.org/Doc/VCAEngine#h668-18

Пока только в рабочей версии!

Уже начал было пилить свой костылек для реализации поведения схожего с теперешним "line:3.14". Хотя что-то рабочее и получилось (см патч во вложении), там все же код не айс.

Переименовывать addr() в loadaddr() не обязательно было, поскольку в модели он остался как "addr". На будущее, в записях вроде "mLoadaddr = addr().substr(type.size()+1,string::npos);" второй аргумент можно опустить.

"aleax" wrote:

А бекпорт в ветку 0.8 планируется? Или это уже расширение функционала, что не предусматривается статусом ветки LTS?

Тут же выше я писал, "Пока только в рабочей версии!", что подразумевает в будущем включение в LTS.

"aleax" wrote:

Еще раз спасибо за проделанный труд!

Пожалуйста, а также благодарности спонсору этого расширения — "Петру Литковцу".

Learn, learn and learn better than work, work and work.
Сообщение создано: 03. 10. 2014 [11:09]
vitaly
Виталий Литвиненко
Зарегистрирован(а) с: 03.10.2014
Сообщения: 3
"roman" wrote:

Добавил функцию построения графика из производных данных: http://wiki.oscada.org/Doc/VCAEngine#h668-18
Пока только в рабочей версии!


Добрый день!
При попытке отобразить график по примеру:
graph="data:<d tm=\"1369465209000000\" tm_grnd=\"1369465200000000\" per=\"1000000\">\n"
" 0 3.14\n"
" 1 3.141\n"
" 5 3.1415</d> ";
Diagram_prm0addr=graph;
время отображается верно, но тренд не отрисовывается. Значит, я неправильно вставляю значения. Что должна содержать переменная graph для отображения тренда?



5589