Author |
Message |
Written on: 14. 02. 2013 [09:26]
|
hyper_sonic
Роман Федоров
Topic creator
registered since: 13.09.2011
Posts: 13
|
На одном из объектов установлена система опрашивающая систему защиты оборудования.
Аналоговые сигналы сохраняются раз в 1с "архиватором значений" и выводятся на Тренд.
Теперь у заказчика появилось желание делать анализ исторических данных.
Нужно предоставить пользователю возможность выбирать параметры в качестве операндов и операции над ними,
а результат выводить в виде:
1. тренда(функция времени)
2. графика без привязки ко времени.
Пока не очень представляю как это можно сделать. Подскажите какие есть пути решения задачи?
|
Written on: 14. 02. 2013 [10:47]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 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.
|
Written on: 15. 02. 2013 [12:46]
|
hyper_sonic
Роман Федоров
Topic creator
registered since: 13.09.2011
Posts: 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?
[This article was edited 1 times, at last 15.02.2013 at 12:48.]
|
Written on: 15. 02. 2013 [13:27]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"hyper_sonic" wrote:
А как это делать динамически из VCA Engine? Что бы можно было выбрать операцию, например "отношение", а потом знаменатель и числитель из списка параметров. А можно производить такой расчет на лету перед выводом в тренд?
Этот скрипт я привёл только как пример реализации. Вы же можете поместить вызов подобного кода в момент выбора интервала и производить пересчёт на запрошенное время, а диаграмма будет показывать пересчитанное.
"hyper_sonic" wrote:
Те, я так понимаю можно выводить данные в тренд не только из параметров и архивов? Есть такой функционал в LTS 0.8.4?
Сейчас нельзя я сказал только, что эту функцию принципиально возможно реализовать.
Learn, learn and learn better than work, work and work.
|
Written on: 15. 02. 2013 [13:54]
|
hyper_sonic
Роман Федоров
Topic creator
registered since: 13.09.2011
Posts: 13
|
"roman" wrote:
"hyper_sonic" wrote:
А как это делать динамически из VCA Engine? Что бы можно было выбрать операцию, например "отношение", а потом знаменатель и числитель из списка параметров. А можно производить такой расчет на лету перед выводом в тренд?
Этот скрипт я привёл только как пример реализации. Вы же можете поместить вызов подобного кода в момент выбора интервала и производить пересчёт на запрошенное время, а диаграмма будет показывать пересчитанное.
Ясно, те использовать временный промежуточный архив? И его подсовывать для тренда?
"roman" wrote:
"hyper_sonic" wrote:
Те, я так понимаю можно выводить данные в тренд не только из параметров и архивов? Есть такой функционал в LTS 0.8.4?
Сейчас нельзя я сказал только, что эту функцию принципиально возможно реализовать.
Понятно спасибо.
[This article was edited 1 times, at last 15.02.2013 at 13:55.]
|
Written on: 15. 02. 2013 [22:52]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"hyper_sonic" wrote:
Ясно, те использовать временный промежуточный архив? И его подсовывать для тренда?
Ну да.
Хотя уже подумывал о возможности реализовать это прозрачно, встроив код скрипта пересчёта прямо в объект архива.
Learn, learn and learn better than work, work and work.
|
Written on: 25. 05. 2013 [20:00]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"hyper_sonic" wrote:
Да было бы здорово использовать этот виджет не только в режиме спектрометра и тренда.
Те, я так понимаю можно выводить данные в тренд не только из параметров и архивов?
Добавил функцию построения графика из производных данных: http://wiki.oscada.org/Doc/VCAEngine#h668-18
Пока только в рабочей версии!
Learn, learn and learn better than work, work and work.
|
Written on: 26. 05. 2013 [21:47]
|
aleax
Alexey Bondarchuk
registered since: 27.01.2010
Posts: 73
|
Супер, то что нужно.
Уже начал было пилить свой костылек для реализации поведения схожего с теперешним "line:3.14". Хотя что-то рабочее и получилось (см патч во вложении), там все же код не айс.
А бекпорт в ветку 0.8 планируется? Или это уже расширение функционала, что не предусматривается статусом ветки LTS?
Хотя бекпортнуть думаю, для меня не проблема.
Еще раз спасибо за проделанный труд!
Attachment
|
Written on: 27. 05. 2013 [12:27]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"aleax" wrote:
Уже начал было пилить свой костылек для реализации поведения схожего с теперешним "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.
|
Written on: 03. 10. 2014 [11:09]
|
vitaly
Виталий Литвиненко
registered since: 03.10.2014
Posts: 3
|
Добрый день!
При попытке отобразить график по примеру:
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 для отображения тренда?
|