Разработка мобильного приложения для производственного контроля (MES)
MES-системы (Manufacturing Execution System) управляют производством в реальном времени: контроль заданий, учёт выработки, качество, простои оборудования. Бумажные маршрутные листы и Excel-отчёты — привычный способ работы, который ломается при первом же требовании сквозной прослеживаемости или интеграции с ERP. Мобильное приложение здесь — точка сбора данных с цеха: рабочий сканирует задание, отмечает выполненные операции, фиксирует брак.
Специфика производственной среды
Цех — не офис. Устройства должны работать в перчатках (нужен стилус или крупные тач-зоны), при вибрации, в условиях промышленных Wi-Fi-помех от частотных преобразователей. Экраны должны читаться при ярком освещении или, наоборот, в тёмных зонах. Все эти требования влияют на выбор устройства.
Для тяжёлой промышленности — защищённые терминалы: Panasonic Toughbook FZ-T1, Zebra MC9300, Honeywell CT40. На Android 8+, поддерживают DataWedge, RFID, NFC. Для лёгкого производства — обычные смартфоны или планшеты в защитных кейсах.
Интеграция с MES и ERP: где тонко
Большинство промышленных MES (SAP ME, Siemens Opcenter, Wonderware) предоставляют OData или REST API. Но версии SAP ME до 15.x работают через SOAP — нужен XML-маппинг. Retrofit с SimpleXml конвертером справляется, но схемы WSDL от SAP ME объёмные: автогенерация через wsdl2java спасает время.
Синхронизация производственных заданий — pull-модель с кешированием. Рабочий получает список заданий на смену при входе в систему, далее работает офлайн. Критичные события (старт операции, стоп, фиксация брака) — немедленно в очередь на отправку через WorkManager:
val syncRequest = OneTimeWorkRequestBuilder<OperationSyncWorker>()
.setConstraints(
Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()
)
.setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 15, TimeUnit.SECONDS)
.build()
WorkManager.getInstance(context).enqueueUniqueWork(
"operation_sync_${operationId}",
ExistingWorkPolicy.KEEP,
syncRequest
)
KEEP политика важна: если сеть пропала, а рабочий успел нажать «завершить» дважды — в очереди должна быть только одна задача на синхронизацию операции.
Учёт выработки и штрихкодирование деталей
Сканирование деталей, узлов, готовой продукции — центральная функция. Каждая деталь имеет уникальный QR или DataMatrix с серийным номером. При сборке: рабочий сканирует компонент → система проверяет, что он подходит для текущей операции → разрешает продолжить или блокирует с причиной.
Это называется Component Traceability. Реализация на уровне приложения — запрос к MES API с serial_number + work_order_id + operation_id. Ответ: «разрешено» / «не тот компонент» / «компонент уже использован». Последний случай — важный: это ловит повторное сканирование из-за ошибки и предотвращает дублирование в учёте.
Контроль качества и фиксация брака
Форма отметки брака — не просто поле «количество». Нужен выбор кода дефекта из классификатора (по ГОСТ или внутреннему справочнику), возможность прикрепить фото дефекта, указать локацию на детали.
Фото дефекта на Android: CameraX ImageCapture, сжатие через Bitmap.compress(JPEG, 70) до отправки — фотографии с камеры 50 мп неуместны в этом контексте. Аннотация локации — Canvas поверх ImageView с сохранением координат нажатия как процент от размера изображения (не пиксели — они меняются при ресайзе).
Мониторинг оборудования через OPC UA
Если MES интегрирован с SCADA через OPC UA, мобильное приложение может отображать параметры станков в реальном времени: обороты, температура, вибрация. Prosys OPC UA SDK for Android — коммерческая библиотека с хорошей документацией. Подписка на MonitoredItem с sampling interval 1000ms достаточна для производственного дашборда.
OPC UA без этого SDK — Eclipse Milo через JVM, но на Android требует осторожности с thread management и размером приложения.
Ролевой доступ
На производстве роли принципиальны: рабочий видит только свои задания, мастер — задания своего участка, технолог — все операции с возможностью редактировать нормы. Spatie Permissions на Laravel-бэкенде, JWT-токен с claims для роли. На мобильном — проверка прав перед рендерингом экранов, но также принудительная проверка на бэкенде при каждом запросе.
Сроки
Базовое MES-приложение (задания, операции, брак, синхронизация): 8–12 недель. Полный цикл с OPC UA, прослеживаемостью компонентов, фотофиксацией дефектов и BI-интеграцией: 4–7 месяцев. Стоимость рассчитывается индивидуально после анализа интеграционной схемы.







