Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
UKVED
Комплексные IT решения
для вашего бизнеса
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
Сопровождение 1С
  • Внедрение 1С
  • Обновление 1С
  • Обслуживание 1С
  • Поддержка 1С
  • Разработка 1C
Аренда 1С (1С:ФРЕШ)
Бухгалтерское сопровождение
Аренда сервера
  • Выделенный сервер 1C
  • Аренда сервера для 1C
  • Почтовые серверы
  • Backup серверы
Распознавание документов в 1С
Разработка мобильных приложений
Наши мобильные приложения
AmoCRM
  • Внедрение AmoCRM
  • Интеграция AmoCRM
  • Разработка виджетов AmoCRM
Системное администрирование
  • Обслуживание компьютеров
  • Обслуживание локальной сети
  • Обслуживание телефонии
IP телефония
Каталог товаров
  • 1С отчетность
  • Лицензии 1С
    • Комплексное управление ресурсами предприятия (ERP)
    • Клиентские лицензии
    • Серверные лицензии
    • Бухгалтерский и налоговый учет
    • ЗУП и кадровый учет (HRM)
    • Управление складом, логистикой и продажами
  • ТСД Клеверенс
  • ИТС
  • Тарифы ИТС
  • Наши решения
Наши внедрения
Статьи
Контакты
Комплексные IT решения
для вашего бизнеса
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Распознавание документов в 1С
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
1СFranch.pngmintsifryi_1С.png
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
UKVED
Телефоны
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Распознавание документов в 1С
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
  • 0 Корзина
  • +7 906 045 2827
    • Телефоны
    • +7 906 045 2827
  • г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
  • sale@ukved.ru
  • Пн. – Пт.: с 9:00 до 18:00
1СFranch.pngmintsifryi_1С.png
Главная
—
Статьи
—
Общее

Теплотехник и Flutter: Android-SCADA, где новая котельная — это новый конфиг

Владимир Ершов, руководитель UKVED · опубликовано 30 сентября 2026

Теплотехник и Flutter: Android-SCADA, где новая котельная — это новый конфиг

Теплотехник и Flutter: Android-SCADA, где новая котельная — это новый конфиг

Содержание
📟 Три часа ночи: давление упало, а экран остался в диспетчерской🔧 Почему граница между КИПиА и IT тоньше, чем кажется🧱 Архитектура движка: один конфиг и четыре слояПорядок работ: от одного регистра до пилота на объекте⚠️ Где движок ломается: фон Android, устаревшие данные и запись🌙 Та же ночь, но с приложением в кармане📊 Свой движок, готовая SCADA или заказная разработка💼 Когда проект перерастает прототип: что мы делаем и сколько это стоит❓ Частые вопросы

Мобильную SCADA на Flutter может собрать инженер КИПиА, если сделать движок конфигурируемым: теги, экраны и тревоги описываются файлом, код остаётся один. Новая котельная получает новый конфиг вместо новой сборки. Труднее всего получается другое: работа в фоне Android, безопасный доступ и запись команд в контроллер.

📟 Три часа ночи: давление упало, а экран остался в диспетчерской

На котельной падает давление в контуре отопления. Контроллер фиксирует событие, но журнал тревог лежит на АРМ в диспетчерской. Теплотехнику звонит дежурный: лампа мигает, причина неизвестна. Встал насос или пошла утечка, выясняется только выездом.

SCADA на объекте работает, лицензия куплена, но мобильного клиента у неё нет. Либо он есть, стоит отдельных денег и показывает урезанный набор экранов. Поэтому инженер решает написать своё приложение: подключиться к контроллеру с телефона и увидеть давление, температуру подачи и состояние насосов.

Ставка понятна без расчётов. Каждый выезд вслепую съедает ночь. А задержка с реакцией на остановку циркуляции в мороз заканчивается размороженным контуром и домом без отопления. Ниже типовой путь такого проекта. Сценарий собирательный, это не история конкретного заказчика.

🔧 Почему граница между КИПиА и IT тоньше, чем кажется

К пятидесяти годам инженер КИПиА знает о SCADA больше, чем видно со стороны. Датчик иногда врёт. Значение без отметки качества нельзя показывать как живое. У тревоги нужен гистерезис, иначе она мигает вокруг уставки. Это половина архитектуры, и курсы программирования её не дают.

Остальное ложится на привычные понятия:

  • ✓регистр Modbus становится тегом с именем, типом и масштабом;
  • ✓цикл опроса становится потоком значений (Stream в Dart);
  • ✓уставка с гистерезисом становится правилом тревоги;
  • ✓мнемосхема становится набором виджетов на холсте.

Flutter подходит по двум причинам. Один код даёт приложения для Android и iOS. Hot reload показывает правку мнемосхемы сразу, без пересборки, поэтому схему удобно подгонять на глаз. Dart при этом читается легко, если вы писали на ST в контроллерах или на любом C-подобном языке.

🧱 Архитектура движка: один конфиг и четыре слоя

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

Драйвер протокола

Modbus TCP работает в локальной сети объекта. Если контроллер говорит по RS-485, между ним и телефоном ставят шлюз. OPC UA и MQTT подключаются отдельными драйверами с тем же интерфейсом: соединиться, прочитать теги, записать тег. Из практики КИПиА сюда добавляются два нюанса. Число с плавающей запятой занимает два регистра, а порядок слов у контроллеров разных производителей отличается, поэтому его задают в конфиге для каждого тега. И читать лучше блок до 125 регистров одним запросом, а не по запросу на тег: иначе опрос большого числа тегов заметно растягивается.

Хранилище тегов

У каждого тега три поля: значение, метка времени и качество (норма, плохое, устарело). Экраны читают только из хранилища и сами в контроллер не ходят. Опрос крутится в отдельном изоляте, поэтому интерфейс не подвисает, когда контроллер отвечает медленно. Историю для трендов держит серверный архив: на телефоне лежит только короткое окно последних значений.

Экраны из конфига

В файле перечислены виджеты: числовое значение, индикатор насоса, задвижка, тренд. Каждый привязан к тегу по имени. Трубы и насосы рисует CustomPainter по координатам из того же файла. Новый объект добавляется новым файлом, а обновление не ждёт проверки в магазине приложений.

Тревоги и права

Правило тревоги состоит из тега, условия, уставки, гистерезиса и задержки срабатывания. Роли делят доступ: наблюдатель смотрит, оператор подтверждает тревоги и отправляет команды, наладчик правит уставки. Каждая запись попадает в журнал.

Порядок работ: от одного регистра до пилота на объекте

  1. ✓Выписать карту регистров в таблицу: адрес, тип, масштаб, порядок слов, единицы измерения, допустимый диапазон. Ошибка в этой таблице потом дороже любой ошибки в коде.
  2. ✓Прочитать один тег по Modbus TCP консольной программой на Dart и сверить значение с панелью контроллера.
  3. ✓Собрать хранилище тегов и один экран с числом и временем последнего обновления.
  4. ✓Вынести теги и экран в конфиг и проверить, что второй объект запускается без правки кода.
  5. ✓Подключить тревоги и запустить пилот; диспетчерская SCADA работает параллельно.

Параллельная работа со старой SCADA на время пилота обязательна. Расхождение значений вскрывает ошибки масштаба и порядка слов быстрее любых тестов, а оператор тем временем не остаётся без привычного экрана.

⚠️ Где движок ломается: фон Android, устаревшие данные и запись

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

Для опроса в фоне нужен foreground service с постоянным уведомлением. Оболочки ряда производителей убивают фоновые процессы агрессивнее стандартного Android, поэтому приложение просит пользователя исключить его из оптимизации батареи. Google-сервисы доступны не на всех устройствах, так что канал уведомлений закладывают с запасным вариантом: RuStore Push или собственный брокер MQTT.

Вторая ловушка: значение без времени. Связь с контроллером пропала, а на экране висит последнее давление, зелёное и спокойное. Оператор читает его как живое. Поэтому виджет следит за меткой времени: если обновлений нет дольше заданного интервала, значение сереет и появляется подпись «нет связи».

Третья ловушка: запись. Кнопка «включить резервный насос» отправляет команду в работающее оборудование. Нужны роль, диалог подтверждения, проверка допустимого диапазона, журнал «кто, когда, что» и чтение обратной связи. Команда считается выполненной, когда контроллер подтвердил новое состояние, а не когда ушёл пакет. Защиты и блокировки остаются в программе контроллера. Телефон не должен быть единственным барьером между оборудованием и аварией.

Отдельно о доступе. Порт 502 в интернет не открывают. Удалённая работа идёт через VPN или через шлюз, который сам подключается к брокеру MQTT, и тогда входящих соединений на объекте нет. Если объект относится к критической информационной инфраструктуре, требования к удалённому доступу жёстче, и обсуждать их нужно до первой строчки кода.

🌙 Та же ночь, но с приложением в кармане

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

📊 Свой движок, готовая SCADA или заказная разработка

Свой движок не всегда лучший вариант. Выбор зависит от числа объектов, протоколов и от того, кто будет чинить код через год, когда автор уйдёт в отпуск или на другую работу.

ВариантЧто получаетеГде упираетсяКогда выбирать
Мобильный клиент готовой SCADAГотовые экраны и поддержка производителяЛицензия по числу клиентов или тегов, ограниченный набор виджетов, привязка к одному вендоруОбъект один, SCADA уже стоит, хватает просмотра значений
Свой движок на Flutter силами инженераПолная гибкость и затраты времени вместо лицензийПоддержка держится на одном человеке, фон Android, безопасность, публикация в магазинахПилот на одном объекте, внутренний инструмент
Заказная разработкаПриложение с ролями, push-тревогами, журналом действий и интеграцией с 1СБюджет: от 500 000 ₽Объектов несколько, доступ нужен подрядчикам или клиентам, данные идут в учёт
Веб-интерфейс SCADA в WebViewБыстрый запуск без разработкиНеудобен на телефоне, нет фоновой работы и нативных уведомленийВременная мера до выбора основного решения

Прототип на одном объекте закрывает вопрос «что происходит прямо сейчас». Проблемы начинаются, когда приложением пользуются другие. Появляются роли, аудит действий, публикация в RuStore, обновления под новые версии Android. Поддержка всего этого ложится на инженера поверх основной работы.

Считать стоит и поддержку: Android меняет правила работы в фоне почти с каждой крупной версией, поэтому приложение нужно обновлять, даже когда на объекте ничего не менялось.

💼 Когда проект перерастает прототип: что мы делаем и сколько это стоит

Обычно прототип доживает до момента, когда отчёты по расходу тепла нужны директору, а доступ к нескольким объектам нужен подрядчику. После этого приложению нужна команда разработки.

Мы занимаемся разработкой мобильных приложений и подключаем их к 1С. Связка мобильного приложения с учётом в таких проектах выглядит так. Тревога с объекта создаёт заявку на ремонт в 1С: это задача для интеграции приложения с 1С. Показания попадают в отчёт по потреблению. Сервисная бригада подрядчика видит только свои объекты, для этого подходит схема B2B-приложения с 1С.

Разработка мобильного приложения стоит от 500 000 ₽. Итог зависит от числа протоколов, ролей и интеграций. Типовой состав проекта: драйверы протоколов, хранилище тегов, конструктор экранов, push-тревоги, роли и журнал действий. Актуальные условия собраны на странице цен и тарифов.

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

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

❓ Частые вопросы

Можно ли написать мобильную SCADA на Flutter без опыта в программировании?

Прототип для одного объекта можно, если есть время и карта регистров контроллера. Инженер КИПиА быстро осваивает Dart, потому что понимает теги, уставки и качество сигнала. Основные сложности появляются позже: фоновая работа Android, push-тревоги, безопасный удалённый доступ и запись команд. Для них обычно нужен опытный мобильный разработчик.

Какие протоколы поддерживает мобильная SCADA на Flutter?

Движок не привязан к протоколу: каждый протокол подключается драйвером с одинаковым интерфейсом. Чаще всего начинают с Modbus TCP в локальной сети объекта. Контроллеры на RS-485 подключают через шлюз, а OPC UA и MQTT добавляют отдельными драйверами, когда нужен удалённый доступ или работа через брокер.

Безопасно ли управлять оборудованием котельной с телефона?

Безопасно, если соблюдены условия: защиты и блокировки остаются в программе контроллера, каждая команда проходит через роль, подтверждение и журнал, а доступ идёт через VPN или шлюз без открытых портов. Телефон не должен быть единственным барьером. Для объектов КИИ требования к удалённому доступу строже.

Сколько стоит разработка мобильного приложения для диспетчеризации?

Разработка мобильного приложения у нас стоит от 500 000 ₽. Итоговая сумма зависит от числа протоколов и объектов, ролей, тревог и интеграций, например с 1С. Для оценки понадобятся карта регистров контроллера, перечень тревог и описание ролей. Готовый прототип сокращает время на аналитику.

Чем своя SCADA на Flutter лучше мобильного клиента готовой SCADA?

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

Нужно мобильное приложение для бизнеса?
Подберём стек и свяжем с 1С — смета за 1 день.
Получить смету →
Читайте также
Услуги 1САренда 1САренда сервера 1СМобильная разработка

Не помогло? Опишите вашу ошибку — разберём
Ответим сразу, без звонков и заполнения анкет. Что не получилось, какая версия 1С, что уже пробовали — этого достаточно. Сложное передадим инженеру.

Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00

Возврат к списку

Читайте также

  • flutter и dart для бизнеса: одна кодовая база вместо ios- и android-команд
  • Flutter лагает на дешёвом Android: 10 правок для списков, старта и памяти
  • Новый сценарий в Android-приложении без техдолга: 6 шагов от задачи до релиза

Остались вопросы? Нужна помощь?

Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.

Бесплатная консультация
 
Компания
О компании
Вакансии
Каталог
1С отчетность
Лицензии 1С
ТСД Клеверенс
ИТС
Тарифы ИТС
Наши решения
Аренда сервера
Сопровождение 1С
Сопровождение бухгалтерии
Системное администрирование
Аудит сайта
IT-аутсорсинг в Москве
Услуги по серверам
Аренда сервера 1С
Аренда 1С в облаке
Распознавание PDF (ПДФ) в 1С
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
sale@ukved.ru
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
2017 - © 2026
Политика конфиденциальности Оплата Поставка Возврат Оферта Карта сайта
ООО «ВЕД» · ИНН 7720299436 · ОГРН 1157746343920 · КПП 501801001
Аккредитованная ИТ-компания — проверить в реестре Минцифры по ИНН 7720299436
0

Корзина

Очистить корзину
Ваша корзина пуста
Исправить это просто: выберите в каталоге интересующий товар и нажмите кнопку «В корзину»
В каталог
Главная 0 Корзина Каталог Контакты Услуги Бренды Отзывы Карьера Компания Проекты Лицензии Документы Блог Тарифы Цены
Мы считаем посещения сайта с помощью Яндекс.Метрики. Запись ваших действий на странице (Вебвизор) включается только с вашего согласия. Нажимая «Принять», вы соглашаетесь с Политикой конфиденциальности и Согласием на обработку ПДн.