EnglishУкраїнськаmRussian
Login/New
Topic with many replies

Построение графика из произвольных данных


| 1 | 2 | Last
Author Message
Written on: 01. 04. 2016 [17:48]
legend
Oleg N
Topic creator
registered since: 13.04.2012
Posts: 63
Приветствую всех пользователей OpenScada.

Помогите разобраться. Стоит задача вывести на элемент построения диаграмм/трендов (Diagram) графики с произвольными данными. График должен быть построен по точкам.
Например: X:Y; 15:00-80% 16:22-70% 16:25-75% 16:40-70% 17:03-85% (точки соединяются между собой прямыми).
Периодичность данных непостоянная.
Первый способ, который нашел на форуме и в документации - отрисовка из прямо установленных данных "data:{XMLNodeData}", приспособить его не получилось. Там обязательно указывается периодичность данных.
Второй способ, попытка записать данные в архив значений, то же не подошел, так как архив так же должен обладать определенной периодичностью.

Вопрос, можно ли каким-то образом с помощью элемента диаграмма построить график по произвольным непериодичным точкам?
Written on: 01. 04. 2016 [18:30]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"legend" wrote:

Помогите разобраться. Стоит задача вывести на элемент построения диаграмм/трендов (Diagram) графики с произвольными данными. График должен быть построен по точкам.
Например: X:Y; 15:00-80% 16:22-70% 16:25-75% 16:40-70% 17:03-85% (точки соединяются между собой прямыми).
Периодичность данных непостоянная.
Первый способ, который нашел на форуме и в документации - отрисовка из прямо установленных данных "data:{XMLNodeData}", приспособить его не получилось. Там обязательно указывается периодичность данных.

И что?
Просто абстрагируйтесь от периодичности и времени и указывайте ему время от 0 через 1 (секунду). Всё-равно на XY визуально время никак не представлено.

Learn, learn and learn better than work, work and work.
Written on: 01. 04. 2016 [18:59]
legend
Oleg N
Topic creator
registered since: 13.04.2012
Posts: 63
"roman" wrote:

И что?
Просто абстрагируйтесь от периодичности и времени и указывайте ему время от 0 через 1 (секунду). Всё-равно на XY визуально время никак не представлено.

Проблема вся в том, что в проекте используется виджет "Группа графиков", на котором отображено несколько параметров. На тот же график нужно добавить 5-й параметр из произвольных данных.
Абстрагироваться я могу и легко. Указать в data:{XMLNodeData} "tm" и "tm_grnd", но точки не соединяются между собой прямыми, а рисуется статическое неизменное значение весь период времени до следующей точки.

Прикрепил скриншот вот такого примера: data:<d s="1" tm="1459524990" tm_grnd="1459524790" per="1">0 40 20 50 40 55 50 50</d>
Желтая линия, то что получается в результате обработки.
Зеленая линия то, что хочется получить на этом графике.

Может быть можно каким-то другим способом получить подобный график?
Attachment

graf.PNG (File type: image/png, Size: 110.89 kilobytes) — 1790 downloads
Written on: 03. 04. 2016 [16:03]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"legend" wrote:

Проблема вся в том, что в проекте используется виджет "Группа графиков", на котором отображено несколько параметров. На тот же график нужно добавить 5-й параметр из произвольных данных.
Абстрагироваться я могу и легко. Указать в data:{XMLNodeData} "tm" и "tm_grnd", но точки не соединяются между собой прямыми, а рисуется статическое неизменное значение весь период времени до следующей точки.

Правильно, потому-что data:{XMLNodeData} это внутренний формат и разрыв между точками означает упаковку, т.е. предыдущая точка повторяется для всех по периодичности. Однако добавил опцию "aprox" для аппроксимации таких переходов, при указании вручную.

Learn, learn and learn better than work, work and work.
Written on: 03. 04. 2016 [16:27]
legend
Oleg N
Topic creator
registered since: 13.04.2012
Posts: 63
"roman" wrote:

Однако добавил опцию "aprox" для аппроксимации таких переходов, при указании вручную.

Супер, спасибо! Завтра буду пробовать.
Если я правильно понял, то изменения находятся в последней рабочей сборке r2343.
В опциях data нужно указать aprox="1".
Written on: 04. 04. 2016 [17:09]
legend
Oleg N
Topic creator
registered since: 13.04.2012
Posts: 63
Обновил программу через apt-get из deb ftp://ftp.oscada.org/OpenSCADA/Work/Debian/7 ./
Создал тестовый пример, согласно измененной документации. Получил, то что видно на прикрепленном изображении.
Функция построения графиков из произвольных данных перестала работать совсем.
Выводит на график просто линию, независимо от того, есть aprox или нет. Ведет себя, как элемент line только с ограниченным периодом.
Attachment

test.jpg (File type: image/jpeg, Size: 966.9 kilobytes) — 1880 downloads
Written on: 04. 04. 2016 [17:16]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"legend" wrote:

Функция построения графиков из произвольных данных перестала работать совсем.
Выводит на график просто линию, независимо от того, есть aprox или нет. Ведет себя, как элемент line только с ограниченным периодом.

Не судьба!
У меня всё работает, а без "aprox" там как обычно, код смотрите если сомневаетесь!

Learn, learn and learn better than work, work and work.
Written on: 04. 04. 2016 [18:46]
legend
Oleg N
Topic creator
registered since: 13.04.2012
Posts: 63
"roman" wrote:

Не судьба!
У меня всё работает, а без "aprox" там как обычно, код смотрите если сомневаетесь!

Все заработало после удаления старых файлов проекта AGLKS из /home/user/.openscada. Результат прикрепил (рис.1).
Функция aprox заработала. Спасибо, то что нужно для построения графиков по точкам.
JAVASCRIPT
data:<d s="1" aprox="1" tm="1369465809" tm_grnd="1369465200" per="60">
0 3
1 6
2 4
3 5
4 10
5 8
</d>


Но после того, как я создал второй график и удалил из его параметров функцию aprox, график остался тем же самым. На этот раз удаление директории AGLKS из home не помогает. :)
Такое впечатление, что программа почему-то не обновляет данные из data после внесения в него последующих изменений. Перед тем как такое получилось удалял и изменял параметры s, aprox, per, чтобы посмотреть как поведет себя график.
Attachment

рис.1.PNG (File type: image/png, Size: 178.65 kilobytes) — 1716 downloads
рис.2.PNG (File type: image/png, Size: 208.71 kilobytes) — 1713 downloads
Written on: 04. 04. 2016 [20:26]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"legend" wrote:

Но после того, как я создал второй график и удалил из его параметров функцию aprox, график остался тем же самым. На этот раз удаление директории AGLKS из home не помогает. :)
Такое впечатление, что программа почему-то не обновляет данные из data после внесения в него последующих изменений. Перед тем как такое получилось удалял и изменял параметры s, aprox, per, чтобы посмотреть как поведет себя график.

У меня всегда обновляет!

Learn, learn and learn better than work, work and work.
Written on: 04. 04. 2016 [20:30]
legend
Oleg N
Topic creator
registered since: 13.04.2012
Posts: 63
"roman" wrote:

У меня всегда обновляет!

Я понял, спасибо. Буду дальше пробовать.

С поставленной задачей теперь я наверное справлюсь. Осталось только deb пакеты под raspberry pi собрать.
А можно в будущем такую же функцию добавить для построения графиков из архивов?
И еще мне кажется, что для более легкого восприятия списка точек можно добавить разделители, как допустив в JSON файлах. Например, так: { 0:3, 1:6, 2:4, 3:5, 4:10, 5:8 }.
Но это всего лишь предложения по оптимизации данной функции, не более того.

[This article was edited 1 times, at last 04.04.2016 at 20:31.]
| 1 | 2 | Last



7838