Skip to content

Автоматизированное построение цифрового двойника производства

License

Notifications You must be signed in to change notification settings

CTLab-ITMO/DigitalTwinBuilder

Repository files navigation

DigitalTwinBuilder

For english version

Автоматизированное построение цифрового двойника производства

В данном репозитории разрабатывается библиотека с открытым кодом для создания цифровых двойников производства. Основана на мультиагентной системе, которая собирает информацию, проектирует базу данных и настраивает цифрового двойника. Содержит конструктор цифровых двойников и панель мониторинга данных. Также включает инструменты для интеграции с камерами видеонаблюдения и датчиками.

Библиотека поддерживает получение сигнала со следующих датчиков:

  • Температуры.
  • Уровня.
  • Вибрации.
  • Давления.
  • Износа.
  • RFID.

Библиотека поддерживает следующие протоколы к ip камер видеонаблюдения для построения производства и дальнейшего анализа:

  • Gige Vision - интерфейс передачи данных для цифровых камер промышленного класса.
  • RTSP - протокол для организации трансляций и передачи медиаконтента.

Структура проекта

DigitalTwinBuilder/
├── src/
│   └── DigitalTwinBuilder/ 
│       ├── DTlibrary/ - модуль для работы с мультиагентной системой
│       │   ├── agents/
│       │   │   ├── __init__.py
│       │   │   ├── base_agent.py
│       │   │   ├── user_interaction_agent.py
│       │   │   ├── database_agent.py
│       │   │   └── digital_twin_agent.py
│       │   │   
│       │   ├── core/
│       │   │   ├── __init__.py
│       │   │   ├── database.py
│       │   │   ├── models.py
│       │   │   └── sensor_manager.py
│       │   │   
│       │   ├── sensors/
│       │   │   ├── __init__.py
│       │   │   ├── base_sensor.py
│       │   │   ├── level_sensor.py
│       │   │   ├── pressure_sensor.py
│       │   │   ├── rfid_sensor.py
│       │   │   ├── temperature_sensor.py
│       │   │   ├── vibration_sensor.py
│       │   │   └── wear_sensor.py
│       │   │ 
│       │   ├── main.py   
│       │   ├── web_interface.py   
│       │   └── requirements.txt 
│       │   
│       └── ipcamera/ - модуль для работы с камерами с использованием протоколов gige vision и rtsp
│           ├── cpp/
│           │   ├── src/
│           │   │   └── camera/
│           │   │       ├── client.cpp
│           │   │       ├── client.hpp
│           │   │       ├── CMakeLists.txt
│           │   │       ├── gige
│           │   │           └── ...
│           │   │       └── rtsp
│           │   │           └── ...
│           │   │
│           │   ├── bindings/
│           │   │   └── camera/
│           │   │       ├── bindings.cpp
│           │   │       ├── CMakeLists.txt
│           │   │       ├── gige
│           │   │           └── ...
│           │   │       └── rtsp
│           │   │           └── ...
│           │   │
│           │   ├── python/
│           │   │   └── ipcamera/
│           │   │       ├── __init__.py
│           │   │       └── camera/
│           │   │           ├── __init__.py
│           │   │           ├── camera.so
│           │   │           ├── gige
│           │   │           |   └── ...
│           │   │           └── rtsp
│           │   │               └── ...
│           │   │
│           │   └── CMakeLists.txt
│           ├── __init__.py   
│           └── _core.so 
├── main.py 
├── scripts/
├── tests/
├── pyproject.toml
├── requirements.txt
└── README.md

Установка

git pull https://github.com/CTLab-ITMO/DigitalTwinBuilder && cd DigitalTwinBuilder

Docker (рекомендованный путь)

Установка зависимостей

Ubuntu, Debian
sudo apt-get update
sudo apt-get install docker docker-compose-plugin
Fedora, CentOS
sudo yum update
sudo yum install docker docker-compose-plugin
MacOS
brew install docker docker-compose

Также в зависимости от настроек вашей системы вам может понадобиться выполнить некоторые шаги, которые напишет brew при установке

Настройка Docker

docker compose up -d

Перезапуск

docker compose up --build -d && docker compose restart

Cборка из источника

Для сборки библиотеки IP camera следуйте инструкциям

Установка зависимостей

Ubuntu
sudo apt update && sudo apt install gcc cmake vcpkg boost-devel
Fedora
sudo dnf update && sudo dnf install gcc cmake vcpkg boost-devel
## Использование
```bash
python main.py 

IP camera модуль

from digital_twin_builder.ipcamera.camera.gige import gige
camera_ip = "192.168.150.15"
my_ip = "192.168.1.94"
streaming_port = 53899 ## should be the one that used in docker
g = gige(camera_ip, my_ip, streaming_port)
g.start_stream()
print("Enter :q to quit")
answer = ""
while (answer != ":q"):
    answer = input()
g.stop_stream()

from digital_twin_builder.ipcamera.camera.gige.gvcp import gvcp
gc = gvcp(camera_ip)
ack = gc.discovery
print(ack.current_ip) # "192.168.150.15"

DTlibrary

streamlit run web_interfaces.py

Для проведения интервью с сотрудником используется диалог в чате на странице «Интервью с пользователем». Диалог с агентом взаимодействия с пользователем

Дальнейшим этапом является «Создание базы данных» на основе полученной от пользователя информации. Интерфейс создания базы данных на основе требований пользователя к цифровому двойнику

Для лучшего восприятия представляется текстовый вариант результата работы агента. Текстовое представление результата работы агента для создания базы данных

На следующем этапе «Цифровой двойник» агент конфигурирует цифрового двойника, подбирая необходимые компоненты. Результат работы агента для конфигурации цифрового двойника

Для лучшего восприятия представляется текстовый вариант результата работы агента. Текстовое представление результата работы агента для конфигурации цифрового двойника

Перед запуском цифрового двойника необходимо выбрать режим работы датчиков. Для тестирования данного примера были выбраны симулированные данные. Для запуска и остановки датчика предусмотрены соответствующие кнопки. Общий вид интерфейса на этапе конфигурации цифрового двойника

После запуска цифрового двойника становится активна Панель мониторинга для обзора результатов моделирования и данных от сенсоров. На данном примере отображены текущие показания сенсоров, графики изменения показателей, предупреждения о критических значениях, некоторые показатели качества, а также анализ исторических данных, представленный различными графиками Интерфейс панели мониторинга с текущими показаниями датчиков Интерфейс панели мониторинга с предупреждениями о критических значениях и с показателями качества Интерфейс панели мониторинга с анализом исторических данных

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Автоматизированное построение цифрового двойника производства

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •