Добрый день. Есть данные в OPCDA сервере. Надо читать 10000 тегов каждые 500 мс и складывать их в какую-то time-series базу данных (пока рассматриваю Victoria Metrics). Далее надо как-то отображать эти данные для анализа в виде трендов (как у Aveva Historian Client - приложил картинку). Что-то типа Grafana на ум приходит, но не уверен, что там подобный функционал можно реализовать - чтобы был список тегов, по группам разбитый и можно было бы выбирать и добавлять на дашборд нужные. Нужен совет - чем читать данные из OPCDA сервера с такой периодичностью и в таком объеме и чем отображать тренды? Должно быть именно отдельное решение так как имеющееся сейчас на базе СКАДА не устраивает Смотрю на NodeRED, читать он может из OPCDA, вопрос - справится ли он с таким объемом и частотой? Кто-нибудь работал с ним?
Комментарии: 40
Aleksey
Я бы сделал шлюз OPC DA-UA, читал бы telegraf в influxDB и отображал бы в grafana. Я развернул эту часть без шлюза, тк был opcua и все работает год без проблем, все в графане можно настроить. Написал телеграм бот, который дублирует аварии со скады в телеграм и все гладко на 50000 тэгов
Nikita
Спасибо! А как вы выбираете теги для мониторинга в Графане из вашего объема в 50к? В самой influxdb не используете Chronograph для отображения? Я ранее использовал influxdb и там вроде был достаточно мощный язык запросов + можно было теги по бакетам раскидывать. Я больше за UI часть переживаю, так как там конечные пользователи будут, а на вкус и цвет.. Ожидаю, что будут вопросы по удобству поиска и выбора тега для отображения. И вообще, в Графана такое возможно сделать, чтобы на чарт добавлять нужные теги из какого-то списка?
Aleksey
Разбил все данные на разные measurements, внутри них конкретное оборудование и отдельные переменные через точку по группам оборудования, дальше переменными прямо в grafana выбираю сначала группу оборудования, потом единицу, потом отображаемые переменные. Ну и отдельно сделал потом кастомные дэшборлы подобным образом
Anonim
На хабре случаем не писали про свою реализацию?
Aleksey
Ну тогда выбираете второй путь с отдельными дэшбордами под разное оборудование (ГРЩ, ИБП, Охлаждение, что угодно), а уже внутри в переменных дэшборда прямо в графане задаете возможный выбор словарем (ток фазы А : I1, …), пользователь выбирает русское название, в коде для графика берете английское значение и из них кодом «собираете» имя нужной переменной Нет, мысли есть об этом, но компания не дает добро этим заниматься пока что
Aleksey
Ну и дальше можно для условной видео стены сделать несколько обобщающих статичных дэшбордов, на котором цветом понятно норм или не норм
Danila
Я для удобства из системной таблицы вычитывал комментарии к столбца а комментарий был записано название тега и по этой строке встроенным фильтром граваны фильтровал графики
Xabrs
Немного порекламирую, для просмотра трендов писал свою небольшую программу. Веб. Миллионы точек плавно отображает https://github.com/xabrs/trendviewer
Arina
Всем доброго дня! Ищу в СПб инженера АСУТП в крупную компанию стройматериалов. Кому актуально, пишите в лс, всё расскажу
Anonim
Можно здесь сразу и рассказать всем со ссылкой на вакансию.
Danila
С постгрес дБ может ?
Xabrs
Напишите на питоне плагин, сможет. Я старался сторонние библиотеки не таскать в основную сборку
Danila
А математические операции между сигналами может делать ?
Xabrs
Нет. С самим сигналом только. Пока нет нужды, так как у меня обычно временные метки не совпадают
Aleksey
А, ну и да, видя ссылку выше по поводу самописных решений - influx и любая другая бд отлично опрашивается кодом и если руки золотые, а требования понятные, то можно писать что угодно самому, просто графана быстро разворачивается с нуля и с открытым кодом
Aleksey
Добрался до рабочего места, в итоге получилось вот так и по всем типам оборудования свои варианты сделаны. Пользователи многие с компьютером на "Вы", но сами и без вопросов с базовыми вещами разобрались
Nikita
Классно выглядит! То, что нужно, в принципе. А можете подробнее объяснить, как вы данные сгруппировали и как вы сделали такой выпадающий список? У вас получается на панели один чарт и на него вы добавляете теги?
Aleksey
Напишу в личку
Andrey
А зачем? Диспетчер в телеге сидит? И если Дурова опять прижмут, то что?
Aleksey
Диспетчер сидит у Скады и действует по инструкции, а ответственные по направлениям сидят дома и в случае аварийной ситуации через минуту уже готовы реагировать и понимают, что у него на объекте происходит. А через 5 может открыть графану и посмотреть любой интересующий параметр А если Дурова прижмут, то изменив адрес в POST запросе я могу отправить в любой другой мессенджер с API, в Slack, Discord, почту или на любой webhook
Danila
не телеграм а телеграф тот что по проводам работает
Aleksey
Только сейчас увидел, что telegraf неправильно написал в оригинальном сообщении, исправил, там f на конце
Danila
Я писал скрипт на питоне для opc da и складывал данные в клик хаус а потом грфаной отображал , но я тогда не знал что есть node red возможно с помощью неё тоже можно сделать , и предложение Алексея тоже можно попробовать оно достаточно разумное , пробуйте вариантов много
Dyakonenkora
А что за данные требуется так часто читать?
Nikita
Обычные данные с производственных линий. Именно с такой частотой нужны далеко не все, может 1% от всех данных. В большинстве случаев раз в секунду достаточно
Dyakonenkora
Можно питоном собирать с разной частотой. Класть в influxdb или prometheus. И таскать данные графаной Но вот только для питона вроде всего одна либа для opcda. И немного заморочно ставить ее
Anonim
Лучше не запросами собирать а по подписке на изменения. А запись в базу отдельным потоком с небольшим буфером
Anonim
А почему не в скьюль базу данных?
Nikita
Mssql (если вы его имеете в виду) - реляционная бд, она не оптимальна для time-series данных
Dyakonenkora
Для такого потока пойдёт
Dan
Возможно ZIIOT от Zyfra подойдет
Anton
Давай по порядку OPC-DA мертвое никому ненужное легаси ТАЙМСЕРИАЛ БАЗА это исходя из каких требований? Потому что с твоей задачей справится самая обычная постгрес с партиционированием таблиц Ну и 10к тегов у тебя изменяются что ли непрерывно. У тебя там OPC он может оповещать об изменениях тегов.
Dan
Знаю что много кто заменил Графану на Цифру в РФ промке Но отказаться от этого старья тоже проблема. Если есть завод/цех который уже сейчас генерирует деньги и стоит на решениях начал 00ых Вариантов там не много Сам лично с таким сталкиваюсь, когда дирекция хочет цифровизовывать площадки с обородованием начал 00 ых
Dan
И одно из условий, ничего останавливать нельзя))))
Anton
Цифру? Чёт не слышал. Или ты про КАСКАД ЦИФРА
Dan
https://www.zyfra.com/ru/product/industrial-iot-platform/
Anton
Если уже есть, то конечно это другой разговор
Dan
Я думаю других причин для OPC DA и DCOM нет) В современных решениях DA уже почти нигде нет Даже как опции
Anton
Да я буквально недавно видел новый птк, который крутился на OPC-DA только потому, что местные программисты так сделали. Причём там был сделано так crevis -> modbus -> aropc -> simple scada с opc-da клиентом...