Vai al contenuto
DigitalBorders

Connected Devices

Un servizio non presidiato che trasforma i test di una macchina in dati puliti

un produttore di materiali industriali

Sulla linea di produzione di un produttore di materiali industriali, una macchina di test scriveva un nuovo foglio di calcolo a ogni esecuzione e dialogava con il suo controllore via seriale e OPC-UA. DigitalBorders ha costruito il servizio non presidiato che legge la macchina, fa il parsing di ogni risultato nel momento in cui arriva e lo invia al cloud — e la dashboard in cui gli ingegneri lo revisionano.

  • Electron
  • serialport
  • OPC-UA
  • Appwrite
  • React
  • TypeScript

Contesto

Il produttore esegue test di qualità su una macchina sulla linea di produzione. Ogni test scrive un foglio di calcolo in una cartella, e la macchina stessa viene pilotata e interrogata tramite un bus industriale. I risultati si accumulavano come file su un PC, letti uno alla volta a mano. Il produttore voleva ogni test centralizzato e consultabile — senza che nessuno dovesse stare alla linea per farlo accadere.

Problema

I dati dei test erano intrappolati all'edge, in due formati nessuno dei quali pensato per un backend web.

  • La macchina parla due protocolli, nessuno dei quali HTTP — un collegamento seriale e un server OPC-UA. Raggiungere il suo stato e le sue letture significa parlarli entrambi.
  • I risultati arrivano come file. Un foglio di calcolo per test, depositato in una cartella a intervalli imprevedibili. Fare polling a timer spreca lavoro e rischia comunque di perderne uno; perderne uno non è accettabile.
  • Deve girare non presidiato su un PC di fabbrica. Nessun operatore che lo avvii, lo riavvii dopo un reboot o spinga un aggiornamento — e un PC in reparto si riavvia, perde la rete ed è in generale un posto ostile in cui far girare software.
  • I moduli nativi devono caricarsi davvero. L'accesso seriale e OPC-UA dipende da binding nativi che devono sopravvivere all'impacchettamento dentro un'app desktop.

Approccio

Abbiamo costruito il servizio edge come un'app desktop Electron che vive sul PC di reparto. Si avvia da sola al boot e si aggiorna sul posto, così nessuno deve andare a curarla. I binding nativi di cui ha bisogno — serialport per il collegamento seriale e OPC-UA per il controllore — sono impacchettati in modo da caricarsi in modo affidabile dentro l'app.

Il servizio legge la macchina direttamente sia via seriale sia via OPC-UA, e osserva la cartella dei risultati invece di fare polling: nel momento in cui un test scrive un nuovo foglio di calcolo, il servizio ne fa il parsing e invia il risultato strutturato a un backend Appwrite. Niente viene controllato a timer, e niente va perso.

Gli ingegneri revisionano ogni test in una dashboard React basata sullo stesso progetto Appwrite — ricercabile e con grafici — invece di aprire file sulla linea. Un solo team ha seguito il servizio edge a ridosso del firmware, il backend e la dashboard, così una lettura presa dalla macchina arriva a un grafico senza passaggi di consegne nel mezzo.

Risultato

Ogni test eseguito dalla macchina arriva in un unico posto, sottoposto a parsing e interrogabile, pochi secondi dopo la fine — nessun operatore, nessuna gestione manuale dei file. Il servizio sopravvive ai riavvii e alle cadute di rete di un PC di fabbrica e si aggiorna da solo quando rilasciamo una modifica, così la linea continua a riportare i dati senza che nessuno curi il software che lo rende possibile.