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

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


Автор Повідомлення
Повідомлення створено: 01. 04. 2016 [17:48]
legend
Oleg N
Автор теми
Зареєстрован(а) с: 13.04.2012
Повідомлення: 63
Приветствую всех пользователей OpenScada.

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

Вопрос, можно ли каким-то образом с помощью элемента диаграмма построить график по произвольным непериодичным точкам?
Повідомлення створено: 01. 04. 2016 [18:30]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 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.
Повідомлення створено: 01. 04. 2016 [18:59]
legend
Oleg N
Автор теми
Зареєстрован(а) с: 13.04.2012
Повідомлення: 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>
Желтая линия, то что получается в результате обработки.
Зеленая линия то, что хочется получить на этом графике.

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

graf.PNG (Тип файлу: image/png, Розмір: 110.89 кілобайтів) — 1785 завантажень
Повідомлення створено: 03. 04. 2016 [16:03]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"legend" wrote:

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

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

Learn, learn and learn better than work, work and work.
Повідомлення створено: 03. 04. 2016 [16:27]
legend
Oleg N
Автор теми
Зареєстрован(а) с: 13.04.2012
Повідомлення: 63
"roman" wrote:

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

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

test.jpg (Тип файлу: image/jpeg, Розмір: 966.9 кілобайтів) — 1876 завантажень
Повідомлення створено: 04. 04. 2016 [17:16]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"legend" wrote:

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

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

Learn, learn and learn better than work, work and work.
Повідомлення створено: 04. 04. 2016 [18:46]
legend
Oleg N
Автор теми
Зареєстрован(а) с: 13.04.2012
Повідомлення: 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, чтобы посмотреть как поведет себя график.
Вкладений файл

рис.1.PNG (Тип файлу: image/png, Розмір: 178.65 кілобайтів) — 1711 завантажень
рис.2.PNG (Тип файлу: image/png, Розмір: 208.71 кілобайтів) — 1708 завантажень
Повідомлення створено: 04. 04. 2016 [20:26]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"legend" wrote:

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

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

Learn, learn and learn better than work, work and work.
Повідомлення створено: 04. 04. 2016 [20:30]
legend
Oleg N
Автор теми
Зареєстрован(а) с: 13.04.2012
Повідомлення: 63
"roman" wrote:

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

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

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

[Повідомлення редагувалось 1 раз(ів), останній раз 04.04.2016 в 20:31.]



7055