Розробка мобільного додатка для виробничого контролю (MES)
MES-системи управляють виробництвом у реальному часі: контроль завдань, учет виробки, якість, простої обладнання. Паперові маршрутні листи та Excel-звіти — звичний спосіб роботи, який ломається при першій вимозі до наскрізної прослідковуваності або інтеграції з ERP. Мобільний додаток тут — точка збору даних з цеху: робітник сканує завдання, відзначає виконані операції, фіксує брак.
Специфіка виробничого середовища
Цех — не офіс. Пристрої повинні працювати в рукавицях (потрібен стилус або великі touch-зони), при вібрації, у умовах промислових 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 місяців. Вартість розраховується індивідуально після аналізу інтеграційної схеми.







