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

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

Автор Тема: Отчёты через MySQL и тренды  (Прочитано 4060 раз)

TereshinEU

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Отчёты через MySQL и тренды
« : 08 Мая 2018, 13:42:05 »
Здравствуйте, прошу совета по построению отчёта термоподвескам.
В моём проекте есть 6 силкорпусов, в каждом силкорпусе 144 термоподвески, а в термоподвеске 28 датчиков (24192 тэгов). Информацию о каждом датчике я считываю через OPC сервер. Каждый датчик как отдельный тэг. Прошу совета как более правильно будет построить отчёт через "Reports". Отчёт требуется по времени (раз в сутки) и в отчёте  должны быть все температуры на момент построения отчёта. Хотелось чтобы строка в отчёте строилась (<термоподвеска> - <датчик 1>- <датчик 2>- ... -<датчик 28>).

И ещё перед мной стоит задача вывести тренды по всем датчикам температуры. В вашей системе возможна только прямая привязка тэгов к тренду а через скрипт не поддерживается. Прошу добавить возможность обращения через скрипт для возможности подмены тэгов у трендов.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3211
    • Просмотр профиля
    • Simple-Scada
Re: Отчёты через MySQL и тренды
« Ответ #1 : 10 Мая 2018, 15:24:47 »
Здравствуйте.

Отчет должен быть по всем силкорпусам? В нём нужно отобразить сразу все температуры, каждую на отдельной строке, т.е. 24192 строки? Либо по каждому силкорпусу отдельный отчет? Либо отдельный отчет по каждой термоподвеске? Нужно отобразить в отчете температуру в какой-то определенный момент времени (например в 00:00:00 10.05.2018), или за период времени (например с "00:00:00 10.05.2018" по "00:00:00 11.05.2018")?

Цитировать
И ещё перед мной стоит задача вывести тренды по всем датчикам температуры. В вашей системе возможна только прямая привязка тэгов к тренду а через скрипт не поддерживается. Прошу добавить возможность обращения через скрипт для возможности подмены тэгов у трендов.
В каждой группе трендов можно разместить не более 10 трендов. Если 24192 температуры разбить на такие группы, то получится 2420 групп. Конечным пользователям будет очень сложно пользоваться таким количеством групп (если все группы нужно разместить в одном проекте). Может быть здесь подойдут редактируемые группы трендов (см. свойство "Редактируемая" у групп трендов), в которых можно каждый тренд сменить на тренд другой переменной.

Genrosol

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: Отчёты через MySQL и тренды
« Ответ #2 : 10 Мая 2018, 16:35:42 »
Здравствуйте! Имеется следующее предложение: при создании тренда в редакторе автоматически формировать название тренда в виде описания переменной, при отсутствии описания переменной можно подставлять имя переменной (либо выбор, что подставлять, сделать настраиваемым). А так работа с трендами реализована очень здорово! Спасибо!

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1393
    • Просмотр профиля
Re: Отчёты через MySQL и тренды
« Ответ #3 : 10 Мая 2018, 17:45:17 »
Здравствуйте!

Цитировать
при создании тренда в редакторе автоматически формировать название тренда в виде описания переменной
Сейчас именно так и реализовано: если создать новый тренд и выбрать для него переменную, то в название тренда подставится описание переменной если оно имеется. Возможно Вы используете старую версию, в которой это еще не было реализовано - обновитесь до последней версии 2.2.8.2.

Миханик

  • Постоялец
  • ***
  • Сообщений: 193
    • Просмотр профиля
    • www.vpa-dv.ru
Re: Отчёты через MySQL и тренды
« Ответ #4 : 11 Мая 2018, 03:45:52 »
Я делал отчеты вот в таком виде.
Один общий по всем силосам, а другой отдельно по термоподвеске за период.

TereshinEU

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Отчёты через MySQL и тренды
« Ответ #5 : 11 Мая 2018, 09:17:55 »
Цитировать
Отчет должен быть по всем силкорпусам? В нём нужно отобразить сразу все температуры, каждую на отдельной строке, т.е. 24192 строки? Либо по каждому силкорпусу отдельный отчет? Либо отдельный отчет по каждой термоподвеске? Нужно отобразить в отчете температуру в какой-то определенный момент времени (например в 00:00:00 10.05.2018), или за период времени (например с "00:00:00 10.05.2018" по "00:00:00 11.05.2018")?

Да, отчёт по всем силкорпусам. Да, все температуры. Это отчёт можно представить в виде таблицы где 864 строки(144 термоподвески в каждом из 6 силкорпусов) и 28 столбцов (датчики в каждой термоподвески). Температуры нужно выводить в 9 утра каждый день и эта температура должна быть на этот же момент(то есть температура всех датчиков в 9.00 утра)

Цитировать
В каждой группе трендов можно разместить не более 10 трендов. Если 24192 температуры разбить на такие группы, то получится 2420 групп. Конечным пользователям будет очень сложно пользоваться таким количеством групп (если все группы нужно разместить в одном проекте). Может быть здесь подойдут редактируемые группы трендов (см. свойство "Редактируемая" у групп трендов), в которых можно каждый тренд сменить на тренд другой переменной.

В моей программе можно следить за каждой термоподвеской отдельно (смотреть температуру , выставлять уставки порогов температур и т.д). Самой удобной для оператора возможность будет при выборе термоподвески, смотреть тренды именно выбранной термоподвески (это 3 группы по 10, 10, 8 трендов). А при выборе следующей термоподвески те же группы трендов изменили привязку на следующие переменные (переменные следующей термоподвески). Я ознакомился что вы мне предложили сделать, это удобная функция когда трендов не такое большое количество как в моём проекте, я думаю у оператора будут сложности с поиском нужных трендов.

TereshinEU

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Отчёты через MySQL и тренды
« Ответ #6 : 11 Мая 2018, 09:23:30 »
Я делал отчеты вот в таком виде.
Один общий по всем силосам, а другой отдельно по термоподвеске за период.
Да мне кажется это удачная схема отчёта , хотелось бы узнать принцип построения отчёта.
« Изменён: 12 Мая 2018, 09:58:43 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3211
    • Просмотр профиля
    • Simple-Scada
Re: Отчёты через MySQL и тренды
« Ответ #7 : 12 Мая 2018, 10:26:16 »
Решить такую задачу используя стандартные способы будет сложно. Каждую переменную пришлось бы добавлять отдельно в источник данных, а затем располагать в отчете, опять же, каждую отдельно. Плюс при построении отчета нужно вычислить значения на указанный момент времени для каждой температуры, а ведь такие вычисления довольно тяжелые, т.к. сначала выполняется выборка данных из БД, затем вычисление значения. Из-за этого построение отчета могло бы затянуться на длительное (либо недопустимо долгое) время.

Поэтому при решении данной задачи лучше рассмотреть вариант реализации с отдельной таблицей БД, как у Миханика. При помощи MySQLWorkbench в БД создается отдельная таблица с колонками: номер_силкорпуса, номер_подвески, температура_1, температура_2,... и так далее... температура_28. Затем в проекте создается отдельный скрипт, который в нужный момент времени выполняет вставку в данную таблицу БД всех температур по всем силкорпусам. Вставку в БД из скады осуществляется с помощью процедуры RunSQL, которая позволяет выполнить любой пользовательский SQL-запрос. Таким образом во время работы проекта в БД формируется таблица, практически в том виде, в каком нужно отобразить данные в отчете. Остается только создать отчет в редакторе отчетов (Reports.exe). Он должен быть создан на основе пользовательского источника данных. Посмотрите эту статью. В ней описано создание пользовательской таблицы в БД и вывод этой таблицы в отчет. Меняя текст запроса, можно делать выборки не только всех данных по силкорпусам, но и по каждому отдельно и строить отчеты разных видов.