Vai al contenuto principale

Caso di studio · Industriale · Produzione

CheckList — MES offline-first per il controllo dei processi su reattori

Pubblicato · Aggiornato · A cura di YuSMP Group Engineering

Come abbiamo rilasciato un ecosistema industriale a tre applicazioni — un client Android Kotlin per gli operatori, un pannello di amministrazione Laravel + React e un dashboard del controllore — distribuito all'interno di una rete di impianto isolata e progettato per sostituire i registri cartacei con un flusso di lavoro di livello audit per strutture negli Stati Uniti e nell'Unione Europea.

SettoreIndustriale · Produzione
Anno del progetto2024
Tipo di contrattoPrezzo fisso + supporto
CheckList — MES offline-first per la produzione, app Android per gli operatori, dashboard del controllore

Il brief — sostituire i registri cartacei in un impianto senza internet

Il cliente di CheckList gestiva un impianto manifatturiero in cui i processi dei reattori venivano tracciati con registri cartacei: gli operatori annotavano a mano i tempi delle fasi, i supervisori sfogliavano i libri di registro per ricostruire i turni e non c'era visibilità in tempo reale su tempi di attività o conteggio degli errori. L'impianto operava senza internet all'interno del suo perimetro — un vincolo fisso, non una preferenza — quindi qualsiasi sostituzione digitale doveva funzionare completamente offline e sincronizzarsi quando la connettività LAN era disponibile. Abbiamo consegnato un ecosistema a tre applicazioni distribuito nella rete isolata dell'impianto: gli operatori usano un'app Android Kotlin per registrare le fasi con timestamp e fotoprove; gli amministratori configurano attrezzature, checklist, utenti e permessi in un pannello di amministrazione Laravel e React; i controllori seguono un dashboard live con tempi di attività, conteggio errori e un pulsante di arresto di emergenza. L'autenticazione locale e la sincronizzazione offline-first rendono il sistema utilizzabile senza accesso internet, e un costruttore di reattori/processi consente all'impianto di aggiungere nuove attrezzature senza modifiche al codice. Il risultato è un flusso di lavoro di livello audit che regge al controllo in entrambe le giurisdizioni USA e UE e sostituisce ogni riga del registro cartaceo.

Punti salienti del progetto

App Android Kotlin per gli operatori Pannello di amministrazione Laravel + React Dashboard del controllore in tempo reale Deployment on-prem Sincronizzazione offline-first Fotoprove + timer per fase DSL costruttore reattori / processi Archivio cicli completati di livello audit

I numeri

Una panoramica di ciò che la realizzazione di CheckList ha prodotto nell'app per gli operatori, nel pannello di amministrazione e nel dashboard del controllore durante il primo ciclo di produzione in impianto.

3applicazioni strettamente integrate — Android per gli operatori, web admin, web controller dashboard
0dipendenze da internet nel piano di produzione — il sistema funziona interamente sulla LAN dell'impianto
100%delle azioni degli operatori salvate prima in locale, poi sincronizzate con il server quando la LAN è raggiungibile
2 websuperfici web — pannello admin per la configurazione, dashboard controllore per il monitoraggio live
RBACcontrollo degli accessi basato sui ruoli — operatore, admin, controllore, ciascuno con viste delimitate
20–32 sett.finestra di consegna tipica per un MVP MES offline-first paragonabile
Pannello di amministrazione CheckList — navigazione laterale con sezioni Reattori, Processo, Amministrazione e Statistiche

Perché Kotlin + Laravel + React personalizzato rispetto a SaaS MES, SCADA off-the-shelf e form builder

La scelta dello stack condiziona ogni altra decisione architetturale in un MES industriale. Abbiamo scelto un client Android Kotlin personalizzato abbinato a un backend Laravel e a una superficie web React perché i compromessi si allineano perfettamente con un piano di produzione che opera senza internet. L'app Android funziona offline per design, il backend Laravel si distribuisce su un singolo server on-prem all'interno della LAN dell'impianto, e le dashboard admin e controllore React condividono lo stato di sessione tramite WebSocket in modo che un supervisore veda un contatore di errori aggiornarsi nel momento in cui un operatore registra una deviazione.

I fornitori SaaS MES sono stati esclusi subito: richiedono una connessione internet affidabile, estraggono i dati dell'impianto dal perimetro e fatturano per nodo in modi che diventano insostenibili con la crescita dell'impianto. Lo SCADA off-the-shelf è altamente configurabile ma la sua gestione del flusso di lavoro — passaggio del turno, fotoprove, archivio di livello audit — esula dalla sua competenza principale. Un form builder generico più uno strumento di automazione crea una pipeline fragile che si spezza al primo pacchetto perso sulla LAN dell'impianto.

Kotlin + Laravel + React personalizzato vs SaaS MES vs SCADA off-the-shelf vs form builder generico — panoramica
Dimensione CheckList (Kotlin + Laravel + React) Fornitori SaaS MES SCADA off-the-shelf / form builder
Funzionamento offline-firstNativo — coda SQLite locale, si svuota sulla LANRichiede internet affidabileSCADA: sì; form builder: di solito no
Topologia di deploymentOn-prem sulla LAN dell'impianto; isolabileCloud multi-tenant; prezzo per sedeSCADA: on-prem; form: solo cloud
Proprietà dei datiL'impianto possiede il database dall'inizio alla fineIl fornitore detiene i dati di produzioneSCADA: impianto; form: fornitore + automazione
Adeguatezza del flusso di lavoroFlusso di turno, tempistica delle fasi, fotoprove nativiSolido ma vincolato al modelloSCADA: orientato al processo; form: fragile
Profondità di personalizzazioneDSL costruttore reattori/processi — l'impianto aggiunge attrezzatureCicli del fornitore + limiti di configurazioneSCADA: profondo; form: superficiale
Controllo degli accessi basato sui ruoliOperatore / admin / controllore integratiSolido, ma eredita il modello RBAC del fornitoreSCADA: solido; form: tipicamente debole
Archivio di livello auditArchivio cicli completati con fotoproveDipende dal fornitore; qualità di export variabileSCADA: historian; form: foglio di calcolo

Riferimenti: documentazione Laravel, guida sviluppatore Android SQLite, documentazione React.

Operatore Android CheckList — countdown timer della Fase 16 di 35 a 45:34 con istruzione Caricamento carbonato e Passo successivo

App per gli operatori — Android Kotlin, sincronizzazione offline-first, fotoprove

Il client Android è scritto in Kotlin e funziona su tablet nel piano di produzione legati a un identificatore univoco del dispositivo al primo avvio. È richiesta l'autenticazione locale — non si presume che il dispositivo possa raggiungere un provider di identità cloud — e ogni azione dell'operatore viene scritta prima in un archivio SQLite locale prima di qualsiasi tentativo di sincronizzazione. Il flusso di lavoro per turni guida l'operatore attraverso le fasi con un timer integrato, acquisisce le fotoprove nei punti richiesti dall'audit e instrada l'archivio del ciclo completato nel server on-prem quando la connettività LAN è disponibile. L'interfaccia utente è ottimizzata per guanti spessi, illuminazione industriale e tocchi rapidi anziché per il pattern consumer di un telefono in tasca.

Un worker di sincronizzazione in background svuota la coda locale verso il server Laravel on-prem tramite WebSocket, con operazioni idempotenti identificate da un ID generato dal client in modo che i retry non duplichino mai il lavoro. Il passaggio automatico del turno trasferisce un ciclo di reattore in corso dal tablet di un operatore al successivo senza perdere lo stato, e i conflitti vengono risolti lato server dal motore del flusso di lavoro. La superficie per gli operatori fa parte della nostra practice di sviluppo di app mobile, e il contratto offline-first ne è il fulcro — se la LAN dell'impianto cade per metà turno, nessuna azione dell'operatore viene mai persa.

Dashboard operativo CheckList — Reattore n. 1 al 48% con elenco dipendenti, tabella delle fasi del processo e scostamento dal piano

Superficie web admin e controllore — Laravel + React

La superficie web ha due profili distinti, ciascuno con una vista delimitata supportata dal controllo degli accessi basato sui ruoli. Il pannello di amministrazione — realizzato in React con un backend Laravel — consente ai supervisori di configurare le attrezzature, modificare le checklist, gestire utenti e permessi e associare i tablet a operatori specifici. Il DSL del costruttore di reattori/processi è il fulcro: l'impianto aggiunge un nuovo reattore o estende un flusso di processo esistente modificando i template delle checklist nel pannello di amministrazione, senza attendere un ciclo di ingegneria. Nuove attrezzature, nuove definizioni di fase, nuovi requisiti di fotoprove arrivano tramite configurazione.

Il dashboard del controllore è una superficie di monitoraggio in tempo reale che trasmette in streaming lo stato dell'impianto tramite WebSocket — tempi di attività correnti dei reattori, conteggio errori, turni in corso, crescita dell'archivio cicli completati — ed espone un pulsante di arresto di emergenza controllato da RBAC in modo che solo un utente con ruolo di controllore possa premerlo. Il dashboard funziona in qualsiasi browser moderno all'interno della LAN dell'impianto, il che significa che il controllore può monitorare da una postazione fissa, un laptop di manutenzione o uno schermo a parete sopra la linea di produzione. L'intera superficie web viene fornita come parte della nostra practice di sviluppo software su misura ed è strutturata in modo che gli impianti possano aggiungere nuovi dashboard (export KPI, vista mobile per il supervisore) senza ristrutturare il livello dati.

Griglia reattori CheckList — 7 reattori con stati In funzione, Arresto di emergenza e In attesa con barre di avanzamento delle fasi

Architettura, deployment on-prem e archivio dei log di audit

L'architettura di CheckList è stata costruita attorno al vincolo che la LAN dell'impianto non ha accesso a internet in uscita. Il backend Laravel e il database MariaDB vengono distribuiti su un singolo server on-prem all'interno del perimetro dell'impianto, le dashboard React admin e controllore sono servite dalla stessa macchina e i tablet Android raggiungono il backend tramite WebSocket sulla LAN dell'impianto. Non ci sono broker di terze parti, telemetria solo cloud o tracker analytics nascosti. Worker in background gestiscono le scritture nel log di audit e l'acquisizione delle fotoprove, e l'archivio dei cicli completati viene conservato indefinitamente con politiche di retention configurabili per struttura.

Il controllo degli accessi basato sui ruoli regola ogni endpoint API e ogni route del dashboard — un operatore vede solo il proprio turno, un admin vede la configurazione e la gestione degli utenti, un controllore vede la superficie live delle metriche più il controllo di arresto di emergenza. Il binding del dispositivo lega ogni tablet a un identificatore univoco in modo che un tablet smarrito non possa essere riutilizzato fuori dall'impianto. La postura di gestione dei dati è documentata sia per gli obblighi GDPR per le operazioni nell'Unione Europea sia per gli obblighi CCPA / CPRA per le operazioni in California e negli Stati Uniti, con la retention dei log di audit configurabile per struttura in base alle finestre normative locali. La postura di hardening è coerente con la nostra più ampia igiene di cloud & DevOps.

Postura di conformità: conforme al GDPR · pronto per ISO 27001 · SOC 2 Type II in corso · compatibile HIPAA · CCPA riconosciuto.

Metodologia di consegna

Un percorso in cinque fasi che ha portato CheckList dai registri cartacei a un ecosistema industriale a tre applicazioni distribuito all'interno di una rete di impianto isolata.

Fase 1

Discovery & mappatura del piano di produzione

Interviste con operatori e controllori, tassonomia dei registri cartacei, modellazione del flusso di lavoro per turni, requisiti delle fotoprove, vincoli di deployment on-prem, mappatura della postura GDPR + CCPA.

Fase 2

Architettura & DSL costruttore

Selezione dello stack Laravel + React + Kotlin, progettazione del DSL per il costruttore di reattori/processi, superficie del controllo degli accessi basato sui ruoli, schema dell'archivio log di audit, schema di binding del dispositivo.

Fase 3

Sviluppo delle tre applicazioni

App Android Kotlin per gli operatori con sincronizzazione offline-first, pannello di amministrazione Laravel + React, dashboard del controllore con streaming WebSocket, controllo di arresto di emergenza.

Fase 4

Hardening di livello audit

Hardening della pipeline per le fotoprove, politiche di retention dei log di audit, sweep di test RBAC, regole di risoluzione dei conflitti nel motore del flusso di lavoro, ottimizzazione UX per il piano di produzione.

Fase 5

Rollout on-prem

Deployment del server on-prem, provisioning e binding dei tablet, formazione degli operatori, verifica del dashboard del controllore, verifica dell'archivio cicli completati.

Da un impianto a una topologia di deployment multi-struttura

CheckList è stato distribuito inizialmente in un singolo impianto, ma l'architettura è progettata per l'espansione multi-struttura senza modificare l'app per gli operatori o il pannello di amministrazione. Ogni struttura gestisce il proprio server Laravel on-prem e il proprio database MariaDB — la LAN dell'impianto rimane il perimetro di sicurezza — e uno strato di federazione futuro può aggregare archivi di cicli completati, export KPI e feed BI in una panoramica a livello aziendale senza compromettere il contratto offline-first nel piano di produzione. Il DSL del costruttore di reattori/processi consente a una nuova struttura di configurare la propria libreria di attrezzature, checklist e flussi di lavoro per turni senza un ticket ingegneristico; lo schema di binding del dispositivo consente di eseguire il provisioning e la rotazione dei tablet localmente; la superficie del controllo degli accessi basato sui ruoli fa sì che i ruoli di operatore, admin e controllore funzionino in modo identico in tutte le strutture anche se le attrezzature sottostanti variano. La stessa postura lascia spazio a un futuro percorso di export BI — i dati dell'archivio dei cicli completati escono dal perimetro dell'impianto solo quando l'operatore dell'impianto lo autorizza esplicitamente, con finestre di retention configurate per struttura in base al regime normativo locale. Gli impianti negli USA e nell'UE possono operare con la stessa ricetta di deployment e regolare retention, ambiti RBAC e regole di export BI localmente senza fare fork del codebase.

Lancio negli Stati Uniti e nell'Unione Europea

CheckList è stato realizzato per il rollout in impianti negli Stati Uniti e nell'Unione Europea senza un codebase separato per regione. L'interfaccia in lingua inglese serve operatori e controllori in California, New York, Texas, Florida e Washington negli USA, e operatori e controllori nei Paesi Bassi, in Germania, Francia, Irlanda e Svezia nell'UE. Le pratiche di gestione dei dati sono allineate con il GDPR per le operazioni nell'Unione Europea e con il patchwork delle leggi sulla privacy statali USA — CCPA / CPRA (California), VCDPA (Virginia), CPA (Colorado), CTDPA (Connecticut), UCPA (Utah), TDPSA (Texas) e Oregon CPA. Poiché il deployment on-prem mantiene i dati del piano di produzione all'interno del perimetro di ogni struttura e la superficie del controllo degli accessi basato sui ruoli regola ogni lettura e scrittura, la conformità regionale si riduce a una divulgazione onesta e alla configurazione della retention dei log di audit anziché alla segregazione dei dati per giurisdizione.

La ricetta di deployment on-prem è identica nelle strutture USA e UE — stesso backend Laravel, stesso database MariaDB, stessa app Android Kotlin per gli operatori, stesse dashboard React admin e controllore. Le finestre di retention per l'archivio dei cicli completati sono configurabili per struttura in base alle aspettative normative locali, e l'archivio dei log di audit è strutturato per soddisfare gli obblighi di gestione dei dati GDPR per gli utenti nell'Unione Europea e gli obblighi CCPA della California per le strutture negli USA. Il team di ingegneria alla base della realizzazione opera nell'orario CET con sovrapposizione con la costa est degli Stati Uniti (9:00–13:00 ET) per stand-up, coreografia del rollout e risposta agli incidenti — il fuso orario che consente a un team di operazioni USA e a un team di ingegneria UE di condividere quattro ore di sovrapposizione live ogni giorno.

Stack tecnologico e roadmap

Kotlin PHP Laravel React MariaDB REST API Sincronizzazione offline-first Autenticazione locale Controllo accessi basato sui ruoli Autenticazione legata al dispositivo Deployment on-prem WebSockets Notifiche push Pipeline di caricamento immagini Worker in background Archivio log di audit DSL costruttore processi Dashboard in tempo reale

La roadmap attiva di sviluppo software su misura per CheckList include uno strato di federazione multi-impianto che aggrega gli archivi dei cicli completati nelle strutture, un percorso di export BI che trasmette in streaming KPI depurati verso data lake aziendali, una pipeline di fotoprove offline-first che sopravvive a lunghe interruzioni della LAN in siti remoti e una ricetta di aggiornamento on-prem hardened che non richiede la messa fuori servizio di un impianto. Sono previsti playbook di rollout focalizzati su USA e UE, con la superficie del controllo degli accessi basato sui ruoli già strutturata per supportare la configurazione della retention per struttura.

Realizza un MES industriale simile — contattaci

Se stai pianificando un MES manifatturiero, un'app offline-first per il piano di produzione o qualsiasi build di controllo di processo industriale in cui i dati devono rimanere all'interno del perimetro dell'impianto per destinatari in USA e UE, abbiamo consegnato questo stack dall'inizio alla fine e possiamo ridurre significativamente i tempi di sviluppo. Il team di ingegneria alla base fa parte di YuSMP Group. Lavoriamo a prezzo fisso per gli MVP ben definiti e con team di sviluppo dedicati per la consegna continuativa, con una giornata lavorativa CET e una finestra garantita di sovrapposizione con la costa est degli USA (9:00–13:00 ET) per stand-up, demo e risposta agli incidenti.

Prenota una chiamata di discovery Scopri i servizi di sviluppo software su misura

Domande frequenti

Quanto costa realizzare un MES offline-first come CheckList?

Un MVP di MES a tre applicazioni che comprende un client Android Kotlin per gli operatori, un pannello di amministrazione Laravel + React, un dashboard del controllore, il deployment on-prem e la sincronizzazione offline-first costa tipicamente tra €140k e €320k. Aggiungendo un DSL per il costruttore di reattori e processi, la federazione multi-impianto, pipeline per le fotoprove, un archivio di log di audit hardened e l'export BI, si arriva a un prodotto industriale completo tra €400k e €780k. I principali fattori di costo sono la correttezza della sincronizzazione offline-first, l'hardening on-prem e la superficie del controllo degli accessi basato sui ruoli che deve resistere a un vero audit di impianto.

Perché scegliere un MES personalizzato invece di un SaaS off-the-shelf, uno SCADA generico o un form builder?

I fornitori SaaS MES assumono che l'impianto disponga di una connessione internet affidabile e che i dati dei clienti escano dal perimetro; entrambi i presupposti sono incompatibili con una struttura progettata per funzionare offline. Gli SCADA off-the-shelf sono configurabili ma la gestione del flusso di lavoro per il passaggio del turno, le fotoprove e un archivio di livello audit non rientrano nel loro modello principale. Un form builder generico più uno strumento di automazione crea una pipeline fragile. Un sistema personalizzato su Kotlin Android più Laravel e React possiede i dati, la topologia di deployment e la superficie del flusso di lavoro dall'inizio alla fine.

Come mantiene la sincronizzazione l'app Android offline-first con il server on-prem?

Ogni azione dell'operatore — avvio della fase, evento del timer, caricamento della foto, passaggio del turno — viene prima registrata in un archivio SQLite locale sul dispositivo con un'identità di autenticazione legata al dispositivo. Un worker di sincronizzazione in background svuota la coda verso il server Laravel on-prem tramite WebSocket quando la LAN dell'impianto è raggiungibile, con operazioni idempotenti identificate da un ID generato dal client in modo che i retry non duplichino il lavoro. I conflitti vengono risolti lato server dal motore del flusso di lavoro, e l'interfaccia dell'operatore mostra l'ultimo stato valido noto fino a quando il server conferma l'accettazione.

Come garantisce CheckList la conformità a GDPR e CCPA per i dati del piano di produzione?

Il sistema raccoglie solo i dati degli operatori e dei processi di cui l'impianto ha effettivamente bisogno — ruolo dell'operatore, turno, tempistiche delle fasi, fotoprove — e li archivia nel server on-prem all'interno del perimetro dell'impianto. Non ci sono broker di terze parti, telemetria solo cloud o tracker analytics nascosti. Il controllo degli accessi basato sui ruoli regola chi può vedere quali foto e quali archivi dei turni. La postura di gestione dei dati è documentata sia per il GDPR per le operazioni nell'Unione Europea sia per la CCPA per le operazioni in California, con la retention dei log di audit configurabile per struttura.

Quanto tempo ci vuole per rilasciare un MES offline-first come questo?

Un MVP focalizzato con un'app Android Kotlin per gli operatori, un pannello di amministrazione Laravel + React, un dashboard del controllore, deployment on-prem e sincronizzazione offline-first richiede tipicamente da 20 a 32 settimane di calendario. Aggiungendo un DSL per il costruttore di reattori e processi, la federazione multi-impianto, l'export BI e un archivio di log di audit hardened si aggiungono altre 10-16 settimane. Il processo di hardening on-prem — binding del dispositivo, controllo degli accessi basato sui ruoli, retention dei log di audit e la coreografia del rollout negli impianti in USA e UE — dovrebbe essere stimato in 4-6 settimane di lavoro dedicato.

Condividi questo caso

LinkedIn X

Pianifica una realizzazione simile

Prenota una chiamata di discovery

Richiedi una proposta

Condividi alcuni dettagli e un consulente senior risponderà entro un giorno lavorativo.

Preferisci parlare direttamente? ☎ Chiama +374 44 871 811 ✉ sales@yusmpgroup.com