Разработка веб-платформы для визуального проектирования, проверки и симуляции программ промышленных контроллеров.
Пользователь собирает схему автоматизации из функциональных блоков, соединяет входы и выходы, настраивает параметры оборудования и проверяет работу проекта непосредственно в браузере. Платформа ориентирована на инженеров АСУ ТП, интеграторов, учебные центры и компании, которым требуется совместная работа с PLC-проектами.
Основная проблема существующих решений — зависимость от настольного ПО конкретного производителя, сложное управление версиями, отсутствие удобной совместной работы и ограниченные возможности автоматической проверки схем.
В проекте я отвечаю за системную архитектуру, Python backend, модель данных, API, валидацию PLC-схем и интеграцию симулятора.
Я спроектировал архитектуру платформы, разделённую на визуальный редактор, backend-сервисы, систему хранения проектов и движок симуляции.
Основные компоненты решения:
— графический редактор схем на базе React Flow;
— Python backend на FastAPI;
— типизированные API-контракты через Pydantic;
— хранение проектов и пользовательских данных в PostgreSQL/Supabase;
— библиотека функциональных блоков и поддерживаемого оборудования;
— модель PLC-проекта на основе узлов, портов и соединений;
— проверка совместимости типов входов и выходов;
— обнаружение некорректных соединений и ошибок структуры схемы;
— серверный движок симуляции логики проекта;
— импорт, экспорт и версионирование PLC-проектов.
В backend была разработана единая модель графа:
ProjectGraph → Nodes → Ports → Connections
Каждый блок содержит типизированные входы и выходы, параметры и правила выполнения. Перед запуском симуляции схема проходит валидацию: проверяется существование блоков и портов, совместимость типов данных, корректность соединений и ограничения выбранного контроллера.
Для проекта также заложена архитектура автоматической вставки преобразователей типов, корпоративных рабочих пространств, приватных библиотек блоков, истории изменений и AI-помощника для работы со схемами.
Создан рабочий MVP веб-редактора PLC-схем с Python backend, библиотекой блоков, API оборудования, системой валидации и базовым движком симуляции.
Пользователь может создавать проект, размещать функциональные блоки на холсте, соединять их, проверять схему на ошибки и запускать симуляцию логики.
Типизированная модель данных позволяет независимо развивать frontend, backend и симулятор. Архитектура поддерживает добавление новых контроллеров, функциональных блоков и правил валидации без переработки всего приложения.
Проект развивается как универсальная браузерная среда для разработки PLC-программ, совместной работы инженеров и накопления корпоративных библиотек решений.
Мой вклад включает продуктовую и техническую архитектуру, проектирование доменной модели, разработку Python/FastAPI backend, API-контрактов, валидатора схем и интеграцию движка симуляции.
Ильдар Кхафизов. Фронтендер и КИПиА-инженер. Проект его идея. Отвечал за то как он будет выглядеть