Salta al contenuto principale

Il software è quella tecnologia che integra una serie infinita di strumenti (basti pensare all’Intelligenza Artificiale) e che permette di creare, progettare, implementare e testare la “mente” delle soluzioni sviluppate, che siano di acquisizione dati, monitoraggio, controllo di processo, supervisione di cella/macchina/isola di lavoro, ecc.

MUSP è specializzato nella realizzazione di software tecnico per la digitalizzazione di un processo attraverso la misura di grandezze, la loro elaborazione nel mondo digitale che permette di raggiungere gli obiettivi fissati. Il software è un componente fondamentale del manifatturiero digitale e può essere integrato a diversi livelli che vanno dal locale in real-time fino al cloud. 

Una fase fondamentale è quella dell’Analisi dei Requisiti che necessita la comprensione delle esigenze degli stakeholder, la raccolta di requisiti funzionali e non funzionali, e la definizione delle specifiche del sistema. A questa fase seguirà la Progettazione del Software vera e propria in cui verrà definita l'architettura del software. Questa fase include la definizione di strutture dati, algoritmi e l'organizzazione generale del sistema.

A valle dell’Implementazione del Codice, nei progetti di R&D è fondamentale la fase di Testing del Software che permette di ottimizzare le prestazioni e garantire che rispecchi i requisiti definiti.

MUSP è in grado di integrarsi, a seconda delle applicazioni, all’interno di sistemi già esistenti aggiungendo l’architettura, la potenza di calcolo e gli algoritmi o moduli necessari a raggiungere gli obiettivi di progetto.

Strumenti

Linguaggi di programmazione e ambienti di calcolo (TOOL: SW_DEV)

All’interno di questo strumento sono raggruppati tutti gli ambienti di programmazione tecnici che MUSP utilizza per lo sviluppo dei progetti e/o servizi. L’utilizzo di questi linguaggi di programmazione o software di sviluppo permette, ad esempio, di dialogare con software commerciale tramite API per velocizzare lo scambio di dati e informazioni tra più piattaforme. Altri programmi vengono scritti per velocizzare analisi e calcoli che derivano da misure sperimentali o ancora servono a leggere/scrivere su bus di campo per le applicazioni legate alla manifattura avanzata. MUSP, a seconda delle esigenze dell’azienda, può realizzare fogli di calcolo o programmi di calcolo per velocizzare progettazione di componenti, programmazione di macchine, storicizzazione di misure e ottimizzazione di parametri processo che rispondano ad un problema tecnico molto focalizzato per l’azienda.

A titolo esemplificativo, non esaustivo, MUSP si serve ad esempio dei seguenti ambienti/linguaggi:

  • Python: linguaggio di programmazione ad alto livello, noto per la sua semplicità e leggibilità. Supporta paradigmi di programmazione multipli, inclusi il procedurale, l'orientato agli oggetti e il funzionale. MUSP lo utilizza prevalentemente per l’analisi di dati;
  • C++: linguaggio di programmazione di basso livello. Caratterizzato da efficienza e controllo diretto sull'hardware, è ancora ampiamente utilizzato per programmare sistemi embedded, software di sistema e applicazioni ad alte prestazioni;
  • LabVIEW: ambiente di sviluppo integrato sviluppato da National Instruments®, utilizzato principalmente per l'automazione di test, misure e controllo di sistemi industriali. Consente di creare applicazioni tramite un'interfaccia intuitiva basata su diagrammi di flusso, facilitando lo sviluppo di software per acquisizione dati e analisi in tempo reale;
  • ROS (Robot Operating System): framework flessibile per lo sviluppo di software per robot, fornendo servizi come astrazione hardware, controllo di dispositivi, implementazione di algoritmi e messaggistica tra processi. Grazie alla sua architettura modulare e alla vasta collezione di pacchetti open source, facilita la ricerca e lo sviluppo di applicazioni robotiche complesse, dalla prototipazione alla produzione.

Digital Twin (TOOL: DTWIN)

Il “Digital Twin” è una replica digitale di un oggetto, di un processo o di un sistema del mondo reale. Questo gemello digitale permette di monitorare, simulare e ottimizzare le prestazioni dell'oggetto o del sistema, consentendo una migliore comprensione del suo funzionamento e facilitando la presa di decisioni informate.

Il Gemello Digitale è un insieme ampio di concetti; nelle esperienze e competenze MUSP si sintetizza nell’utilizzo di strumenti digitali che, anche grazie alla presenza di sensori sull’oggetto virtualizzato, sono in grado di scambiare informazioni e mantenere aggiornato (o evidenziare scostamenti in caso di anomalie) tra il modello digitale (descritto in maniera analitica da una matematica) e quello reale (immerso in un contesto con diverse variabili non sempre prevedibili o controllabili soprattutto quando è industrializzato e operativo).

EdgePc (TOOL: EDGEPC)

Un Edge PC è un computer progettato per eseguire elaborazioni di dati e applicazioni direttamente sul campo, cioè vicino alle fonti di dati o agli utenti, anziché in un data center remoto. Questi dispositivi, solitamente più robusti di un computer tradizionale, sono utilizzati per elaborare dati in tempo reale, ridurre le latenze e la congestione di rete, migliorare la sicurezza e supportare applicazioni in ambienti distribuiti.

Le attività di MUSP nell’integrazione dell’ambito fisico-digitale sulle macchine hanno come oggetto la realizzazione di un supervisore di cella o di produzione che, parallelamente all’automazione di base (ie. PLC e safety), permette di aumentare le potenzialità del sistema attraverso l’elaborazione locale dei dati provenienti dagli stessi azionamenti o da sensori aggiuntivi. Lo scopo di un edge PC è sintetizzare (tramite opportuni algoritmi o tecniche) un dato di processo in (“soft”) real-time utilizzandolo localmente o esponendolo ai layer digitali di livello superiore.

A livello di strumenti, MUSP ha un’infrastruttura di base (sviluppata in anni di ricerca) denominata “autonomous manufacturing platform (AMP)” che permette l’integrazione di sensori, visione, algoritmi e piattaforma installata direttamente su una soluzione di Edge computing.

FPGA (TOOL: FPGA)

Il (Field-Programmable Gate Array) è un dispositivo flessibile che può essere configurato per eseguire una vasta gamma di funzioni digitali, dalla semplice logica combinatoria alla complessa elaborazione del segnale digitale e del calcolo parallelo. Le FPGA sono utilizzate in applicazioni che richiedono alta velocità, bassa latenza e personalizzazione su misura, come reti di comunicazione, sistemi embedded, elaborazione di immagini e altro ancora.

L’esperienza e la competenza di MUSP nella programmazione software di sistemi embedded permettono, per determinate applicazioni (anche industriali), una traduzione in un linguaggio adatto a device FPGA che a discapito della flessibilità e semplicità di programmazione permettono – su applicazioni in cui la velocità di elaborazione è fattore critico – di rispondere in maniera adeguata alla richiesta dell’applicazione.

Intelligenza Artificiale (TOOL: IA)

L'intelligenza artificiale (IA) è un campo dell'informatica che si occupa dello sviluppo di sistemi e algoritmi in grado di eseguire compiti che normalmente richiedono l'intelligenza umana e che non possono essere modellati in maniera efficace con la modellazione analitica. L'IA è ampiamente utilizzata in una vasta gamma di settori, tra cui assistenza sanitaria, automotive, finanza, robotica, sicurezza informatica e, nel manifatturiero, per automatizzare processi, prendere decisioni, migliorare l'efficienza e fornire soluzioni innovative.

Le esperienze di MUSP nel campo infinito dell’IA si concentrano sulle applicazioni prettamente edge e a bordo macchina. L’approccio MUSP rispetto all’utilizzo dell’intelligenza artificiale è quello di utilizzarla dove serve, senza abusarne. Con questo approccio, il risultato è quello di un processo completamente in locale (fisicamente isolato dalle reti esterne) che genera risposte rapide fin dall’avvio e continua a migliorare nel tempo con un approccio che non richiede che non richiede una diretta iterazione con l’operatore.