Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ

Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ

Приветствую! Меня зовут Сергей Багров. В свои 50 лет, обладая многолетним опытом инженера-теплотехника, я столкнулся с профессиональным выгоранием и решил перешагнуть привычные границы КИПиА. Используя современные нейросети в качестве цифрового ассистента, я разработал универсальное мобильное приложение на Flutter/Dart для управления шкафами автоматики без необходимости глубокого погружения в профессиональное кодирование.

Когда рутинные алгоритмы автоматизации и типовые экраны панелей управления превращаются в бесконечный конвейер, мозг начинает искать нестандартные вызовы. Вместо того чтобы заказывать разработку уникального интерфейса под каждый новый проект блочного теплового пункта, я решил объединить свой богатый опыт в проектировании и программировании контроллеров с возможностями искусственного интеллекта, создав кроссплатформенный софт под любые задачи.

Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ
Как теплотехник в 50 лет создал универсальный SCADA-движок на Flutter с помощью ИИ

Идея: Зачем потребовалось создавать собственное мобильное приложение

Первоочередная причина заключалась в колоссальном удобстве настройки оборудования. Значительная часть наших шкафов управления комплектуется компактными реле вроде ПР200, которые оснащаются лишь скромным двухстрочным дисплеем. Настраивать сложную систему через такое примитивное меню — настоящее испытание, а передавать подобные инструкции сторонним наладчикам и вовсе рискованно. Смартфон в руках инженера полностью меняет сценарий взаимодействия с техникой.

Реклама
Экран систем автоматики теплового пункта на смартфоне
Структура отображения подсистем и датчиков на экране смартфона

Второй важнейший аспект — удобство проведения пусконаладочных работ. Зачастую наладку приходится выполнять в одиночку: требуется одновременно визуально контролировать состояние самого шкафа, замечать срабатывание световых индикаторов на дверце и отслеживать реакцию реле. Беспроводное подключение смартфона по Wi-Fi решает эту проблему раз и навсегда, позволяя свободно перемещаться по объекту.

Настройка подключения через Modbus в мобильном приложении
Интерфейс настройки транспортных протоколов связи

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

Архитектура системы: Концепция «JSON-Конструктор»

В качестве технологической базы я выбрал фреймворк Flutter и язык Dart. Это позволило получить быструю кроссплатформенную систему, одинаково плавно функционирующую на любых Android-смартфонах и планшетах, а также легко адаптируемую под ноутбуки с операционной системой Windows при минимальных доработках кода.

Графики трендов и архивных данных теплового пункта
Просмотр архивных значений и графиков параметров в реальном времени

Динамический парсер JSON как сердце движка

Интерфейс мобильного клиента не зашит жестко в программный код. На старте утилита считывает внешний конфигурационный файл в формате JSON, где детально описана вся логика конкретного объекта. В нем фиксируются количество технологических систем (например, отопление, горячее водоснабжение или подпитка), перечень контролируемых параметров вроде температур и давлений, адреса Modbus-регистров, а также типы данных и аварийные уставки.

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

Экран логов и системных ошибок мобильного приложения
Встроенный лог-трекер для диагностики сбоев связи

Три независимых контура связи для любых условий

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

Реклама
Генерация отчетов в формате PDF на Android устройстве
Функция формирования и сохранения отчета по всем параметрам ИТП
  • Контур 1 («Полевой хардкор»): Modbus RTU через USB-OTG. Если на объекте полностью отсутствует интернет, а дорогостоящий Wi-Fi модуль для контроллера не предусмотрен, в смартфон втыкается OTG-кабель, соединяющий его напрямую с преобразователем интерфейсов или USB-портом передней панели ПР200. Приложение выступает в роли Master-устройства.
  • Контур 2 («Локальный комфорт»): Modbus TCP по Wi-Fi. При наличии локальной беспроводной сети или точки доступа шлюза пакеты передаются по протоколу TCP/IP, избавляя инженера от необходимости стоять вплотную у шкафа.
  • Контур 3 («Глобальный контроль»): HTTP REST API к облачному сервису OwenCloud. Это решение обеспечивает удаленный мониторинг параметров в реальном времени и доступ к архивам с возможностью выгрузки таблиц в CSV-формате.

Итоговая структура интерфейса

Интерфейсная часть приложения спроектирована максимально логично. Главный экран отображает основные системы, текущие тренды, исторические данные из облака, меню выбора типа подключения, настройки безопасности по PIN-коду и функцию мгновенного создания комплексного PDF-отчета по всем параметрам теплового пункта.

Из главного меню можно провалиться в экран конкретной системы, где сгруппированы подсистемы, исполнительные механизмы, датчики и аварийные индикаторы. Отдельные экраны отведены под детальный мониторинг датчиков, а встроенный лог-трекер помогает эффективно отслеживать возможные сбои и ошибки связи.

Конфигурационный JSON файл для настройки теплового пункта
Пример описания параметров автоматики в текстовом формате

Разработка в тандеме с искусственным интеллектом

Конечно, базовый синтаксис Dart я освоил самостоятельно, но попытка погрузиться с нуля в асинхронное программирование, потоки Streams и низкоуровневую работу с USB-портами Android могла занять годы. Искусственный интеллект выступил в роли высокопроизводительного цифрового подмастерье, взявшего на себя рутинное написание кода.

Моя роль носила исключительно архитектурный характер. Я самостоятельно проектировал структуры JSON-документов и объяснял нейросети физику технологических процессов: например, формулировал задачу на отправку Modbus-запроса функции 0x03, чтение пары регистров, их объединение в формат Float и привязку к переменной давления. ИИ мгновенно генерировал чистый код и подбирал профильные библиотеки.

Схема подключения смартфона к контроллеру ПР200 через USB OTG
Реализация полевого контура связи Modbus RTU через USB-OTG

Тестирование готовых модулей я проводил на реальном тестовом стенде у себя дома. При возникновении ошибок тайм-аутов сети или некорректном парсинге массивов я не тратил часы на изучение документации Flutter, а просто возвращал лог ошибки нейросети с описанием контекста для оперативной доработки алгоритма.

Настройка Wi-Fi шлюза для локального управления шкафом
Подключение к шкафу автоматики через беспроводную сеть

Практические выводы и результаты

Реализация этого проекта позволила успешно преодолеть профессиональный кризис и воплотить давнюю задумку. Пройдя за годы карьеры все этапы от подбора оборудования и руководства заводом до программирования промышленных контроллеров Siemens, Carel и Овен, я создал собственный гибкий SCADA-движок. Пусть на текущем месте работы разработка не нашла прямого применения и осталась для меня ценным хобби, результат превзошел ожидания.

Интеграция мобильного приложения с облаком OwenCloud
Удаленный контроль параметров через HTTP REST API облака

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

01.