Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: maks83 от 10 Мая 2024, 04:39:06

Название: Нарисовать график и сохранить в БД
Отправлено: maks83 от 10 Мая 2024, 04:39:06
Добрый день.
Есть переменная с текущей температурой. Если температура превышает некий порог, то нужно начать рисовать график изменения температуры. Выборка каждые 100мс, длительность процесса не более 10секунд. Далее этот график нужно сохранить в БД, чтобы можно было повторно просматривать.
Как это лучше организовать?
Спасибо
Название: Re: Нарисовать график и сохранить в БД
Отправлено: Simple_Scada от 12 Мая 2024, 11:35:06
Здравствуйте.

Изменять частоту опроса или частоту архивации переменной во время работы проекта нельзя. Установите у переменной параметр "Частота опроса (https://simple-scada.com/help/manual/varmain.html)" = 100мс. и выберите тип архивации "По изменению (https://simple-scada.com/help/manual/vararchive.html)". Для архивации трендов необходимо установить СУБД (https://simple-scada.com/help/manual/mysql.html). Интерфейс просмотра трендов рассмотрен по ссылке (https://simple-scada.com/help/manual/client-trends-view.html). Также, возможно Вам подойдет формирование отчетов (https://simple-scada.com/help/report/index.html) за требуемые промежутки времени.
Название: Re: Нарисовать график и сохранить в БД
Отправлено: maks83 от 12 Мая 2024, 14:06:56
Я так понимаю, что график процесса мне нужно сохранить в mysql базе данных с типом TINYBLOB (или сделать более 100 столбцов в БД..) и потом распаковывать обратно, если нужно рисовать архивный переходный процесс. Но как вывести сам график? Рисовать вручную ломаную линию и использовать сглаживание?
Название: Re: Нарисовать график и сохранить в БД
Отправлено: Simple_Scada от 13 Мая 2024, 10:29:46
Нет, Вы понимаете неправильно. Архивация производится автоматически штатными средствами Simple-Scada. Для архивации и просмотра трендов нужно:
1. Установить и настроить подключение к СУБД - пример для MySQL (https://simple-scada.com/help/manual/mysql.html).
2. У необходимых переменных включить архивацию - в Вашем случае с типом "по изменению" (https://simple-scada.com/help/manual/vararchive.html).
3. Добавить нужные переменные в тренды (https://simple-scada.com/help/manual/editor-trends.html).
4. Сохранить проект и перезапустить его на сервере Simple-Scada (https://simple-scada.com/help/manual/server-project.html).
5. Перейти к просмотру трендов (https://simple-scada.com/help/manual/client-trends-view.html) и просматривать тренды за требуемые интервалы времени.

Если требуется, по архивным данным можно строить отчеты (https://simple-scada.com/help/report/index.html) за необходимый промежуток времени. Пример отчета с выводом трендов см. по ссылке (https://simple-scada.com/help/report/rep-trends.html).
Название: Re: Нарисовать график и сохранить в БД
Отправлено: maks83 от 13 Мая 2024, 14:54:44
Спасибо за помощь, задача почти решена. К сожалению, в самом начале диалога я упустил один момент и вынужден озвучить его сейчас.
Мне нужно сделать так, чтобы график 10 секундного переходного процесса остался на экране и не двигался. И следующий график должен начать отрисовку так сказать "с чистого листа" после отработки стартового условия (превышение порога). Возможно ли управлять трендом таким образом?
Название: Re: Нарисовать график и сохранить в БД
Отправлено: Simple_Scada от 14 Мая 2024, 10:46:10
Такой возможности нет. Судя по описанию задачи, Вам должно подойти использование системы отчетов (https://simple-scada.com/help/report/index.html). Например, при выполнении требуемых условий ("после отработки стартового условия (превышение порога)") автоматически формировать и сохранять отчет за нужный промежуток времени, либо выводить его для просмотра на клиенте.

Если в отчете требуется видеть изменения чаще 1 сек., то нужно использовать отчет "по изменению" (https://simple-scada.com/help/report/change-rep.html). Если достаточно частоты 1 сек., то подойдет периодический отчет (https://simple-scada.com/help/report/per-rep.html) с интервалом 1 сек. Пример отчета с выводом трендов см. по ссылке (https://simple-scada.com/help/report/rep-trends.html).
Название: Re: Нарисовать график и сохранить в БД
Отправлено: pan2000 от 14 Мая 2024, 20:04:32
  Здравствуйте.

Штатную систему трендов можно использовать для предварительного просмотра и подготовке к формированию отчета.
В основе предпросмотра - таблица графиков, управление архивированием переменной и переход в меню трендов.
При выполнении критерия начала запуска измерения (в примере - просто порог) в таблицу записывается текущее время, разрешается архивирование переменной и запускается таймер.
По окончании таймера архивирование переменной выключается.
По клику на строку таблицы вызывается просмотр тренда в пределах 1 минуты (самый минимальный интервал отображения, разрешение графики примерно 30 элементов на 1 секунду). Выключение архивирования дает слева и справа от графика пустые поля (разумеется если графики следуют по времени не слишком часто).
В примере для переменной используется возрастающая последовательность типа пилы. Генератор пилы дает примерно 20 отсчетов в секунду и работает после запуска ограниченное время (иначе графики "пилы" пойдут сплошным потоком :-\).
Устанавливаются порог начала измерения и начальное значение генератора. При маленькой разнице от момента запуска генератора до момента начала измерения могут получится два близко расположенных на тренде графика.   
Название: Re: Нарисовать график и сохранить в БД
Отправлено: maks83 от 15 Мая 2024, 04:23:08
Всем большое спасибо за помощь!