Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Нарисовать график и сохранить в БД  (Прочитано 1924 раз)

maks83

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Добрый день.
Есть переменная с текущей температурой. Если температура превышает некий порог, то нужно начать рисовать график изменения температуры. Выборка каждые 100мс, длительность процесса не более 10секунд. Далее этот график нужно сохранить в БД, чтобы можно было повторно просматривать.
Как это лучше организовать?
Спасибо

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1306
    • Просмотр профиля
Re: Нарисовать график и сохранить в БД
« Ответ #1 : 12 Мая 2024, 11:35:06 »
Здравствуйте.

Изменять частоту опроса или частоту архивации переменной во время работы проекта нельзя. Установите у переменной параметр "Частота опроса" = 100мс. и выберите тип архивации "По изменению". Для архивации трендов необходимо установить СУБД. Интерфейс просмотра трендов рассмотрен по ссылке. Также, возможно Вам подойдет формирование отчетов за требуемые промежутки времени.

maks83

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Нарисовать график и сохранить в БД
« Ответ #2 : 12 Мая 2024, 14:06:56 »
Я так понимаю, что график процесса мне нужно сохранить в mysql базе данных с типом TINYBLOB (или сделать более 100 столбцов в БД..) и потом распаковывать обратно, если нужно рисовать архивный переходный процесс. Но как вывести сам график? Рисовать вручную ломаную линию и использовать сглаживание?
« Изменён: 12 Мая 2024, 14:22:57 от maks83 »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1306
    • Просмотр профиля
Re: Нарисовать график и сохранить в БД
« Ответ #3 : 13 Мая 2024, 10:29:46 »
Нет, Вы понимаете неправильно. Архивация производится автоматически штатными средствами Simple-Scada. Для архивации и просмотра трендов нужно:
1. Установить и настроить подключение к СУБД - пример для MySQL.
2. У необходимых переменных включить архивацию - в Вашем случае с типом "по изменению".
3. Добавить нужные переменные в тренды.
4. Сохранить проект и перезапустить его на сервере Simple-Scada.
5. Перейти к просмотру трендов и просматривать тренды за требуемые интервалы времени.

Если требуется, по архивным данным можно строить отчеты за необходимый промежуток времени. Пример отчета с выводом трендов см. по ссылке.

maks83

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Нарисовать график и сохранить в БД
« Ответ #4 : 13 Мая 2024, 14:54:44 »
Спасибо за помощь, задача почти решена. К сожалению, в самом начале диалога я упустил один момент и вынужден озвучить его сейчас.
Мне нужно сделать так, чтобы график 10 секундного переходного процесса остался на экране и не двигался. И следующий график должен начать отрисовку так сказать "с чистого листа" после отработки стартового условия (превышение порога). Возможно ли управлять трендом таким образом?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1306
    • Просмотр профиля
Re: Нарисовать график и сохранить в БД
« Ответ #5 : 14 Мая 2024, 10:46:10 »
Такой возможности нет. Судя по описанию задачи, Вам должно подойти использование системы отчетов. Например, при выполнении требуемых условий ("после отработки стартового условия (превышение порога)") автоматически формировать и сохранять отчет за нужный промежуток времени, либо выводить его для просмотра на клиенте.

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

pan2000

  • Постоялец
  • ***
  • Сообщений: 210
    • Просмотр профиля
Re: Нарисовать график и сохранить в БД
« Ответ #6 : 14 Мая 2024, 20:04:32 »
  Здравствуйте.

Штатную систему трендов можно использовать для предварительного просмотра и подготовке к формированию отчета.
В основе предпросмотра - таблица графиков, управление архивированием переменной и переход в меню трендов.
При выполнении критерия начала запуска измерения (в примере - просто порог) в таблицу записывается текущее время, разрешается архивирование переменной и запускается таймер.
По окончании таймера архивирование переменной выключается.
По клику на строку таблицы вызывается просмотр тренда в пределах 1 минуты (самый минимальный интервал отображения, разрешение графики примерно 30 элементов на 1 секунду). Выключение архивирования дает слева и справа от графика пустые поля (разумеется если графики следуют по времени не слишком часто).
В примере для переменной используется возрастающая последовательность типа пилы. Генератор пилы дает примерно 20 отсчетов в секунду и работает после запуска ограниченное время (иначе графики "пилы" пойдут сплошным потоком :-\).
Устанавливаются порог начала измерения и начальное значение генератора. При маленькой разнице от момента запуска генератора до момента начала измерения могут получится два близко расположенных на тренде графика.   

maks83

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Нарисовать график и сохранить в БД
« Ответ #7 : 15 Мая 2024, 04:23:08 »
Всем большое спасибо за помощь!