Поделиться
Поделиться

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

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

Где заканчивается Excel и начинается система

Автоматизация окупается, когда выполняется хотя бы два условия из списка:

  • данные с линии нужны не раз в сутки, а в реальном времени или ближе к нему;
  • решения зависят от состояния оборудования, а не от памяти смены;
  • отчётность должна сходиться с 1С / ERP без ручного копирования;
  • ошибки оператора должны блокироваться системой, а не разбираться постфактум;
  • простой из-за «не той уставки» измеряется в деньгах, а не в неудобстве.
Сигнал «пора в систему» Что обычно делают до этого Что даёт переход
Сводки раз в смену Бумажный журнал, Excel Тренды, алерты, корреляция с браком
Ручной ввод в ERP Двойной учёт Автоматическая выгрузка проводок / нарядов
«Позвони механику» Телефон, мессенджер Эскалация по правилам, SLA, история
Разные версии регламента PDF на стене Единый цифровой регламент с версионированием

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

Архитектура промышленного контура

Уровни по классической модели

[Поле: датчики, ПЛК, приводы]
        ↓ Modbus / OPC-UA / PROFINET
[Edge: шлюз, буфер, локальная логика]
        ↓ MQTT / AMQP / REST
[Платформа: правила, история, API]

[Интеграции: ERP, MES, CMMS, BI]

[Интерфейсы: SCADA, мобильное приложение оператора]

Поле (OT) — реальное время, миллисекунды–секунды. Здесь не место тяжёлому веб-стеку: логика аварийного останова остаётся на ПЛК или сертифицированном контроллере.

Edge — агрегация, буферизация при обрыве связи, предобработка (фильтрация выбросов, агрегаты по минутам). Edge не заменяет ПЛК, но снимает нагрузку с облака и сокращает объём передаваемых данных.

Платформа (IT) — долгосрочное хранение, бизнес-правила, роли, интеграции. Здесь уместны PostgreSQL/TimescaleDB, InfluxDB, очереди (Kafka, RabbitMQ), сервисы на Go, Java, .NET.

SCADA vs MES vs собственная разработка

Решение Сильные стороны Слабые стороны
Классическая SCADA Готовые мнемосхемы, драйверы ПЛК Слабая кастомизация бизнес-процессов, лицензии
MES Учёт партий, маршруты, качество Долгое внедрение, жёсткая методология
Кастомная платформа Процесс «как у вас», интеграции под заказ Нужна сильная команда и сопровождение
Гибрид SCADA на операторской, API в свою систему Два контура согласования и ответственности

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

Принципы разработки, без которых система не переживёт смену

1. Идемпотентность

Повтор команды не должен «двойно» запустить цикл. Оператор нажал «Старт» дважды из-за лага — линия не должна удвоить выдачу. Реализация: идемпотентные ключи команд, состояние конечного автомата (idle → running → done), отказ повторного принятия той же команды с тем же id.

2. Наблюдаемость

Метрики, логи, трассировка — иначе ночную смену нельзя диагностировать удалённо. Минимальный набор:

  • телеметрия с метками времени и quality flag (good / substituted / bad);
  • корреляционный id от датчика до записи в ERP;
  • дашборд «здоровья» шлюзов: последний пакет, очередь, ошибки парсинга.

Подробнее про удалённый мониторинг: ПО для мониторинга оборудования и удалённое обслуживание промышленного оборудования.

3. Роли и аудит

Кто изменил уставку, когда, с какого устройства, какое было предыдущее значение. Без неизменяемого журнала споры «кто завалил партию» не решаются, а регуляторные проверки становятся болезненными.

Рекомендуемая модель ролей:

Роль Права
Оператор Пуск/стоп в рамках регламента, подтверждение алертов
Мастер смены Корректировка уставок в допустимых пределах
Технолог Изменение рецептов, версионирование
Администратор Пользователи, интеграции, не производственные команды

4. Интеграции как контракт

Modbus, OPC-UA, MQTT, REST — с версионированием API, таймаутами, явными схемами данных и политикой обратной совместимости. «Поле в JSON пришло строкой вместо числа» — классика, которая роняет ночную выгрузку в ERP.

Для MQTT: фиксированные topic-конвенции, retained messages только где уместно, QoS по критичности. Для REST: идемпотентные POST с ключом, пагинация истории, лимиты на размер ответа.

5. Безопасность OT/IT

Сегментация сети, отсутствие прямого выхода ПЛК в интернет, VPN или выделенные каналы для удалённого доступа, обновления по окну простоя. Разработка ПО не отменяет требований ИБ на уровне инфраструктуры.

Протоколы и выбор технологий

Протокол Типичное применение На что смотреть при разработке
Modbus RTU/TCP Датчики, счётчики, простые ПЛК Таймауты, endianness, batch-опрос
OPC-UA Современные ПЛК, единая модель данных Сертификаты, подписки vs poll
MQTT Edge → облако, много точек Брокер HA, ACL, переполнение очереди
REST/GraphQL Интеграция с ERP, мобильные клиенты Версии API, rate limit
AMQP/Kafka Высокий поток событий, аналитика Порядок партиций, replay

Хранилища временных рядов: InfluxDB, TimescaleDB, VictoriaMetrics — выбор по объёму, retention и необходимости SQL-отчётов поверх сырых тегов.

Очереди: при пиковой нагрузке (тысячи тегов в секунду) буфер между edge и обработчиками спасает от потери данных при кратковременном падении consumer.

Стек приложения: Go и .NET часто выбирают за предсказуемость под долгоживущие сервисы; Node.js — для быстрых админок и BFF; Python — для прототипов аналитики и ML на исторических данных. Связка с ИИ для предиктивного обслуживания разобрана в автоматизации с AI.

Сценарии из практики

Сценарий 1. Линия упаковки

Задача: считать брак, останавливать при отклонении веса, печатать этикетку из ERP.

Решение: весы по Modbus → edge агрегирует 1 измерение/сек → правило «3 подряд вне допуска» → команда на ПЛК → событие в очередь → запись партии в MES/ERP.

Ошибка, которую избегали: не останавливать линию из облака напрямую — только через ПЛК с локальным interlock.

Сценарий 2. Энергомониторинг цеха

Задача: пиковые нагрузки, связь с графиком смен, отчёт для экономиста.

Решение: счётчики по OPC-UA → TimescaleDB → дашборд + ежесуточная выгрузка в 1С.

Критично: единая timezone и привязка к календарю производства, иначе «пик» смещается на бумаге.

Сценарий 3. Мобильный обходчик

Задача: обход оборудования, QR/NFC точки, фото дефекта, заявка в CMMS.

Решение: офлайн-first приложение, синхронизация при Wi-Fi в цехе, конфликты по timestamp и id обхода.

Офлайн-режим и отказоустойчивость

Промышленная сеть не гарантирует 100% доступность. Минимальные требования к проекту:

  1. Edge-буфер на 24–72 часа телеметрии при обрыве uplink.
  2. Локальные правила для аварийных порогов без облака (уже на ПЛК или edge).
  3. Очередь исходящих команд с экспоненциальным retry и dead letter для ручного разбора.
  4. Healthcheck шлюзов: heartbeat, алерт если нет данных N минут (с учётом планового простоя).
  5. Процедура восстановления: после длительного офлайна — сверка счётчиков и партий, не слепой replay всей очереди.

Таблица режимов деградации:

Компонент недоступен Допустимое поведение
Облако Edge + ПЛК, локальные алерты
ERP Буфер проводок, ручной импорт по регламенту
SCADA-станция Резервная станция или read-only мобильный вид
Брокер MQTT Локальный буфер на edge, backpressure

Внедрение: пошаговый план

Фаза 0. Обследование (1–3 недели)

  • Карта оборудования, протоколов, существующих систем.
  • Интервью с операторами, мастерами, IT, ИБ.
  • Фиксация KPI: что измеряем до и после (простой, брак, время отчёта).

Фаза 1. Пилот на одной линии / участке

  • Один шлюз, ограниченный набор тегов, один дашборд, один интеграционный поток.
  • Параллельный учёт со старым процессом 2–4 недели для сверки.

Фаза 2. Продуктизация

  • CI/CD для конфигураций (не только для кода), staging-контур.
  • Документация регламентов и runbook инцидентов.
  • Обучение смен, назначение владельца продукта со стороны заказчика.

Фаза 3. Масштабирование

  • Тиражирование шаблонов edge-узлов, единый каталог тегов.
  • Централизованный мониторинг всех площадок.

Типичные ошибки внедрения:

  • Начать с «всего цеха» без пилота — год интеграции без измеримого эффекта.
  • Игнорировать операторов при проектировании UI — систему обходят стороной.
  • Не заложить сопровождение: вендор ушёл, некому менять рецепт при новой SKU.
  • Путать демо-дашборд с production: без аудита, ролей и резервирования.

Чеклист требований к ТЗ на разработку

Перед стартом разработки зафиксируйте:

  • Перечень оборудования, протоколов, частота опроса / подписки.
  • Список интеграций (ERP, MES, CMMS) и формат обмена.
  • Требования к задержке (от датчика до алерта / до ERP).
  • Сценарии офлайна и аварийного останова — что где исполняется.
  • Роли, аудит, хранение журналов (срок, неизменяемость).
  • Требования ИБ и сегментация сети.
  • Кто владелец данных и кто меняет уставки в production.
  • SLA поддержки и окна обслуживания.

Заключение

Разработка автоматизации — это проектирование программного продукта вокруг реального процесса: поле, edge, платформа, интеграции и люди. Системы, которые переживают смену, строят на идемпотентности, наблюдаемости, контрактных интеграциях и честном офлайн-режиме — а не на иллюзии «всё всегда онлайн». Пилот на одном участке, сверка с ручным учётом и вовлечение операторов с первой недели отделяют окупаемое внедрение от дорогой витрины данных.