Process Control Sensore Laser ottico per IMA
Software sperimentale per la gestione di un flusso di dati binario proveniente da un sensore ottico di linea.
Il progetto
Questo software sperimentale è stato progettato su richiesta di IMA per gestire un flusso di dati in formato binario attraverso un protocollo TCP proprietario ad alta velocità da un sensore ottico di linea, fornendo un'ispezione 3D del pezzo. Il sistema elabora i dati attraverso l'analisi e il filtraggio, gestisce i meccanismi di allarme e lo streaming dei dati a un client. Quest'ultimo è responsabile della visualizzazione dei grafici e delle relative informazioni in tempo reale, garantendo un'interfaccia utente efficace e reattiva.
Il sensore laser è posizionato sopra un materiale che si muove su un nastro trasportatore, eseguendo una misurazione della distanza in più punti. L'output del sensore può essere semplificato in un elenco di n valori numerici (samples) che indicano la distanza dal materiale.
Il software è fortemente data-driven: tutte le misurazioni, i calcoli e le analisi sono eseguiti specificamente per il tipo di dati ottenuti dal sensore e, di conseguenza, dal materiale in transito.
Scelta tecnica
Dato il throughput molto elevato e la natura concorrente e asincrona del software, abbiamo scelto Go come linguaggio per il server. Tutti i componenti interni comunicano tra loro tramite canali sincronizzati. Il server esegue una serie di operazioni concorrenti:
- Ingestion dati via TCP da connessione diretta al sensore Laser
- Invio e ricezione comandi per settaggi via TCP
- API REST per comunicare con la dashboard web
- Parsing, analisi ed elaborazione dati e misurazioni
- API Websockets per mostrare i dati passanti in semi-real time su dashboard web
- Sistema di alerting impostabile da utente su misurazioni effettuate
Requisiti
- Misurazioni in tempo reale di ogni campione ricevuto dal sensore (velocità elevata, ~10.000 samples/secondo)
- Dashboard web per visualizzare in tempo reale il grafico dei samples, gestire le impostazioni del sensore e dell'utente
- Sistema di alerting che si attiva quando le misure superano i limiti imposti dall'utente.
Stack Tecnologico
Go (back end e software di analisi)
MongoDB (database per storage di samples e settaggi utenti)
Svelte (frontend web)
Prometheus e Grafana (telemetria e monitoring interno al software)