Полная текущая документация доступна по адресу https://vovaman.github.io/peresvet/.
В настоящее время документация обновляется каждый раз,
когда в ветку разработки dev
добавляется
новая функциональность.
Пересвет - платформа-конструктор для создания моделей технических объектов и информационных систем. Область применения:
- Промышленная автоматизация уровней SCADA, диспетчеризация/мониторинг, MES.
- Умный дом, умное здание.
- Создание программно-аппаратных комплексов
- И т.д.
Главная задача - построение модели технического объекта.
Основные сущности, которыми оперирует модель: объект, тег, тревога, метод, коннектор, хранилище данных. Этих сущностей достаточно для построения моделей, решающих множество задач: мониторинг, часть задач MES.
Кроме этого, модель может быть расширена дополнительными сущностями для моделирования более сложных объектов и процессов.
Платформа может использоваться для сбора, хранения, обработки данных, а также автоматизации процессов, протекающих в рамках технического объекта.
Отличия от баз данных реального времени (Prometheus, VictoriaMetrics и т.д.):
- Инфраструктура. Платформа представляет собой, в первую очередь, инфраструктурную надстройку над базой данных реального времени, т.е. предлагает создание иерархии объектов, каждый из которых обладает набором параметров (тэгов).
- Расчётные тэги. У объекта могут быть параметры, которые рассчитываются на основании других параметров.
- Внешние расчётные методы. К событиям, происходящим в платформе (изменения тэгов; тревоги; расписания) могут быть привязаны как расчётные методы тэгов, так и просто внешние методы, запускающие какие-либо внешние процессы.
- Платформа позволяет не только собирать внешние данные, но и записывать (через коннекторы) данные во внешние источники. Таким образом, на базе платформы можно строить SCADA-системы, системы управления умным домом и т.д.
Говоря в общем, платформа Пересвет, в отличие от большинства баз данных реального времени, нацелена не столько на сбор метрик, сколько на автоматизацию технических объектов.
Существуют две версии платформы: открытая и для промышленного применения.
Отличия промышленной версии:
- Одновременная поддержка нескольких хранилищ данных разного типа (PostgreSQL, Victoriametrics, и т.д.).
- Полноценные масштабирование и высокая доступность.
- Отделение функционала по созданию модели от среды исполнения.
- Готовые модели для решения задач в области промавтоматизации.
- Работа с промышленными протоколами передачи данных.
- Инструменты для работ с большими моделями.
- Ubuntu 22.04, Ubuntu 24.04.
- Установленный Docker Engine с выполненными шагами после установки.
- При первом запуске необходим доступ в интернет для скачивания docker-образов.
⚠️ Для запуска платформы должны быть свободны порты 80, 443 и 3000.
-
Копируем платформу со страницы релизов.
-
Распаковываем архив в локальную папку.
-
Заходим в папку с распакованным архивом и запускаем на исполнение скрипт:
$ ./run_one_app.sh
-
Открываем браузер и в строке адреса вводим: http://localhost/grafana.
⚠️ Имя пользователя и пароль по умолчанию: user=admin, password=admin. При первом входе в систему Grafana предложит сменить пароль. -
По умолчанию откроется панель с конфигуратором системы.
Инструкции по работе с конфигуратором здесь.
Начальный пример работы с платформой описан в документации: пример.
Примеры работы с платформой собраны в отдельном проекте peresvet_examples.
Проект постоянно пополняется.
Для отладки платформы необходимо создать виртуальное окружение проекта с помощью инструмента pipenv.
После установки pipenv
заходим в папку проекта и выполняем команду
$ pipenv install
Теперь запускаем все контейнеры, кроме сервисов платформы, скриптом
$ ./run_one_app_debug.sh
Далее открываем файл src/services/one_app/one_app.py
, это главный исполняемый файл платформы,
и запускаем его в режиме отладки.
Перед генерацией документации необходимо также, как и в случае с отладкой, сначала создать виртуальное окружение проекта.
После создания виртуального окружения заходим в папку docs
и выполняем команду
$ make html
В результате в каталоге docs/build/html
будет сгенерирована HTML-документация на проект.