HomeProcess AutomationIndustrial SoftwareCome implementare l'intelligenza artificiale nei sistemi di controllo industriali?

Come implementare l’intelligenza artificiale nei sistemi di controllo industriali?

Crescono le opportunità di applicazione di algoritmi di intelligenza artificiale nella programmazione dei sistemi di controllo. Ne è un esempio la collaborazione tra The MathWorks e Beckhoff.

Leggi la rivista ⇢

  • n.305 - Settembre 2022
  • n.304 - Luglio 2022
  • n.303 - Giugno 2022

Ti potrebbero interessare ⇢

Vittoria Lugli

Autori: Dr. Fabian Bause, Product Manager di TwinCAT di Beckhoff Automation, e Philipp Wallner, Industry Manager di The MathWorks

Le crescenti esigenze dei consumatori relative alla personalizzazione e, di conseguenza, alla flessibilità degli impianti di produzione moderni, abbinate a una sempre maggiore sensibilizzazione verso una gestione più rispettosa delle risorse (tanto la manodopera, quanto l’ambiente), richiedono metodi di progettazione innovativi.

A seguito della trasformazione digitale, la meccanica ha perso il suo ruolo dominante nella costruzione di macchine. Già da ora, sono soprattutto i software implementati su sistemi di controllo industriali sempre più efficienti a rendere le macchine moderne più flessibili e più produttive.

La trasformazione digitale attraverso la progettazione Model-Based di software di controllo

Mentre il software di controllo sta acquisendo un ruolo sempre più importante nell'intera macchina, i test funzionali nell'ambito delle simulazioni e del collaudo virtuale svolgono ancora un ruolo secondario nella costruzione di macchine e impianti. Spesso ne conseguono ritardi nella consegna e fermi macchina obbligati, nonostante aziende leader nella produzione di sistemi di controllo come Beckhoff offrano già da anni interfacce perfettamente integrate per ambienti di simulazione quali Simulink di MathWorks e propongano, quindi, una soluzione adeguata.

Anche l'intelligenza artificiale (IA), accanto allo sviluppo basato sulla simulazione, fornisce approcci per implementare con successo le sfide della costruzione moderna di macchine e impianti citati precedentemente. Mentre l'IA è entrata nella vita privata di tutti i giorni attraverso smartphone, fitness tracker e assistenti vocali, l'implementazione nella costruzione di macchine automatiche e impianti tarda ancora a decollare. Eppure sono proprio le tecnologie basate su intelligenza artificiale la chiave per una maggiore flessibilità nella produzione e per un utilizzo ottimale delle risorse.

Il software testato tramite progettazione Model-Based

È possibile realizzare test completi del software di controllo parallelamente allo sviluppo del codice di controllo semplicemente servendosi della progettazione Model-Based ("Model-Based Design"), ben prima di avere a disposizione la macchina assemblata.

A tal fine Simulink offre una gamma di funzioni che gli permettono, da un lato, di creare modelli fisici di simulazione della meccanica e dell'elettronica (e, perciò, di costruire un gemello digitale dell'impianto) e, dall'altro, di mettere a disposizione una grande varietà di metodi per sviluppare la logica di automazione e i controlli di regolazione che concorrono alla funzionalità di controllo. In questo modo, tanto il modello dell'impianto quanto il codice di controllo possono venire sviluppati in un unico ambiente ed essere valutati nella simulazione.

Inoltre, MathWorks offre metodi di test e verifica all'interno di Simulink, in modo che il processo di sviluppo possa essere realizzato senza soluzione di continuità in un software di sviluppo completo.

Un software di controllo pratico e intuitivo

La funzionalità di controllo testata nella simulazione, insieme al gemello digitale della macchina o dell’impianto, non viene più codificata manualmente per la piattaforma di controllo industriale bensì trasferita automaticamente sul sistema di controllo industriale in pochi passaggi.

In sintesi, ciò significa che un programma verificato in Simulink viene tradotto tramite Simulink Coder di MathWorks in codice C/C++ eseguibile e, utilizzando TwinCAT Target for Simulink di Beckhoff, viene trasferito in un oggetto real-time per TwinCAT. L'oggetto real-time può quindi essere incorporato velocemente in un programma di controllo, ad esempio sotto forma di blocco funzione di un PLC.

I vantaggi della generazione automatica di codice di controllo sono perciò evidenti. In primo luogo, le funzioni appena testate vengono tradotte senza errori in codice comprensibile dal sistema di controllo. Si riescono a evitare errori di implementazione anche per progetti estesi, difficilmente evitabili anche da parte di programmatori esperti con la programmazione manuale.

In secondo luogo, lo sviluppatore può concentrarsi sulla sua competenza principale (ad esempio lo sviluppo di un controllo dei processi, di un algoritmo di controllo o di un modello di Machine Learning). Non deve occuparsi della loro implementazione su diverse piattaforme. Il workflow automatizzato accorcia il tempo di sviluppo necessario dalla richiesta all'implementazione e aumenta il tempo per le innovazioni.

Verso un nuovo livello di astrazione

Complessivamente si verifica un'ulteriore astrazione della programmazione del sistema di controllo. In passato il programma di controllo veniva implementato in linguaggio macchina o linguaggio assembly. Gli ambienti di sviluppo moderni come TwinCAT 3 supportano invece linguaggi di programmazione ad alto livello quali C/C++ o alcuni linguaggi di programmazione per PLC secondo lo standard IEC 61131-3.

Grazie alla crescente importanza della progettazione Model-Based, con la generazione automatica di codice da modelli di simulazione si aggiunge un ulteriore livello di astrazione, che rende gestibile la complessità di applicazioni molto articolate della macchina. In questo modo l'ambiente di sviluppo supporta team di sviluppo eterogenei nell'integrazione di diversi moduli software su un sistema di controllo.

TwinCAT 3 utilizza un approccio modulare denominato TcCOM. Ciascun modulo software può essere creato in un qualsiasi linguaggio di programmazione (supportato) e dispone di interfacce standardizzate per l'integrazione nell'intero software di controllo. In questo modo i programmatori di PLC o di C/C++ possono accedere a moduli software con interfacce standardizzate. Possono scambiare dati con i moduli creati da Simulink mediante generazione automatica del codice. Il linguaggio di programmazione utilizzato nel modulo passa pertanto in secondo piano. Ciascun membro del team può concentrarsi sulla funzionalità e sulla riutilizzabilità dei moduli software.

Le tre fasi della progettazione Model-Based

Secondo lo standard VDI/VDE 3693, una messa in servizio virtuale completa include tre fasi. La prima fase (simulazione Model-in-the-Loop, MiL) ha come scopo l'implementazione prototipale del codice di controllo. L'attenzione è rivolta all'effettiva funzionalità nonché alla correttezza degli algoritmi, ma non all'eseguibilità su una specifica piattaforma hardware. La fase Model-in-the-Loop è caratterizzata dalla simulazione congiunta della funzionalità di controllo e del gemello digitale della macchina o dell'impianto all'interno del medesimo strumento di simulazione.

Nella seconda fase (simulazione Software-in-the-Loop, SiL) viene realizzata la conversione del codice di controllo sviluppato nella fase MiL nel codice seriale per la piattaforma di controllo. La simulazione congiunta al modello dell'impianto viene effettuata non necessariamente in real-time, ovvero il modello dell'impianto continua a venire eseguito nel software di simulazione, mentre il codice di controllo è eseguito sotto forma di codice seriale su un sistema di controllo emulato non necessariamente in real-time.

La generazione automatica di codice di controllo garantisce un trasferimento senza errori del codice testato nella fase MiL nel codice seriale. Insieme all'interfaccia TwinCAT per MATLAB/Simulink, Beckhoff offre inoltre uno strumento per l'accoppiamento sincrono di Simulink con il modello della macchina o dell'impianto e Usermode Runtime di TwinCAT, che riceve tramite Simulink il tick per l'esecuzione del ciclo di calcolo successivo.

Nella messa in funzione virtuale, viene testata preventivamente l'interazione tra la funzionalità di controllo e il gemello digitale dell'impianto. ((© Beckhoff))

La terza fase (simulazione Hardware-in-the-Loop, HiL) ha come scopo l'inclusione dell’aspetto di rigore temporale, valutando il comportamento dell'intero sistema in real-time. Pertanto, occorre tradurre anche il modello di simulazione della macchina o dell'impianto in un modulo in grado di funzionare in real-time. Bisogna anche simulare il comportamento della comunicazione tra il sistema di controllo, l'impianto e il bus di campo. Per la realizzazione di una simulazione HiL, Beckhoff offre la possibilità di simulare la linea EtherCAT con TwinCAT 3 EtherCAT Simulation. I dispositivi EtherCAT vengono così virtualizzati su un IPC Beckhoff con TwinCAT 3 come dispositivo di simulazione. Il modello di simulazione tradotto con la generazione automatica di codice viene quindi istanziato e associato al dispositivo di simulazione.

I vantaggi della progettazione Model-Based

Utilizzando la progettazione Model-Based è possibile ridurre il tempo di sviluppo e migliorare la qualità del codice implementato per il controllo delle macchine. Ecco di seguito alcuni vantaggi.

1. Maggiore qualità dei progetti. Testando le nuove idee già nella fase di progettazione è possibile ottenere feedback fin dall'inizio della fase di sviluppo e capire se e come le nuove idee possono essere implementate nel sistema di controllo.

2. Migliore qualità del sistema modulare per diverse sottofunzionalità. Nella fase di programmazione, ovvero nell'implementazione del progetto nel codice seriale, l'utilizzo di progetti previamente testati e ben progettati consente di risparmiare tempo nell'implementazione e testare singole funzionalità rispetto al comportamento simulato dei sottocomponenti di una macchina.

3. Ampie possibilità per i test. Il codice seriale implementato, ovvero il coordinamento di tutte le sottofunzionalità testate, può essere testato sull'effettiva piattaforma di controllo della macchina rispetto a una rappresentazione virtuale completa della macchina reale. In questo modo si risparmia tempo nella messa in servizio effettiva e si riduce il rischio di danni alle macchine durante la prima accensione. Inoltre, si possono introdurre virtualmente malfunzionamenti ed errori gravi, cosa che in condizioni reali sarebbe possibile solo con grossi sforzi, costi elevati e, non ultimo, un rischio per le persone e le macchine.

4. Formazione e vicinanza al cliente. I clienti possono essere formati già sulla macchina virtuale. In questo modo, i clienti hanno la possibilità di implementare nello sviluppo il loro feedback sull'IUM. Questo permette di risparmiare tempo nella consegna e nella formazione all'uso duella macchina reale e aumenta la vicinanza al cliente.

5. Riutilizzabilità. Ulteriori vantaggi dei test virtualizzati sono la riproducibilità e la riutilizzabilità dei casi di test, così come la possibilità di automatizzazione. In questo modo, è possibile generare una biblioteca di test standard e utilizzarla per testare tutte le nuove funzionalità in modo automatizzato.

L'intelligenza artificiale nel controllo industriale

I leader dell'innovazione in numerosi settori utilizzano già con successo la progettazione Model-Based per i sistemi di controllo industriali. ((© Beckhoff più il copyright del cliente già integrato nell'immagine dell'applicazione))

Negli ultimi anni il Machine Learning ha avuto uno sviluppo tecnologico senza precedenti, in numerosi settori molto diversi tra loro. Il suo utilizzo è particolarmente efficace in quegli ambiti nei quali le tecnologie digitali si sono evolute in maniera particolarmente forte, ad esempio nel riconoscimento linguistico e nel riconoscimento di immagini (basti pensare alle applicazioni sul telefono cellulare). L'ascesa dell'intelligenza artificiale nell'automazione è stata finora ancora relativamente modesta. Ciò dipende, fra le altre cose, dall'evidente scarsità di dati di misurazione esistenti così come dalla bassa tolleranza agli errori nel settore dei sistemi critici di produzione.

Nonostante ciò, gli apripista tecnologici dimostrano grandi successi nell'applicazione delle tecnologie di IA all'automazione. Alcuni esempi sono il controllo qualità completamente automatico e integrato nella macchina, la manutenzione predittiva (Predictive Maintenance), la pianificazione di traiettorie o l'uso di assistenti intelligenti per l'operatore della macchina. L'integrazione di modelli di IA addestrati nell'architettura di controllo è un passo fondamentale, che viene spesso fatto troppo tardi.

Anche in questo ambito la risposta è la toolchain congiunta di MathWorks e Beckhoff. Gli algoritmi di Machine Learning, Deep Learning o Reinforcement Learning possono essere sviluppati utilizzando applicazioni di MATLAB e quindi essere implementati nel codice di controllo tramite MATLAB e TwinCAT Target for MATLAB. Proprio come, ad esempio, gli algoritmi di controllo o di regolazione. Il programma basato sull'IA viene preventivamente addestrato con dati misurati e/o simulati. Qui la vicinanza alla progettazione Model-Based è evidente.

L'apprendimento sulla base di modelli di simulazione

Nei casi d'uso industriali, dati di addestramento reali sono spesso una rarità. Un approccio per affrontare questo problema fondamentale è l'apprendimento sulla base di modelli di simulazione. In questo modo, il modello di IA può essere pre-addestrato sulla base di valori simulati per fare in modo che apprenda il compito autonomamente. Per superare il cosiddetto reality gap, il modello viene infine addestrato con dati reali. Per ottenere buoni risultati sono quindi necessari molti meno dati di addestramento misurati.

I modelli di IA sviluppati in MATLAB vengono trasferiti sul sistema di controllo industriale di Beckhoff e sono qui eseguiti in tempo reale. ((© Beckhoff))

L'utilizzo dell'IA nei sistemi di controllo industriale determina spesso la necessità di un hardware conseguentemente più potente. Questa questione viene affrontata da Beckhoff su più piani. Dal punto di vista dell'hardware, con una gamma altamente scalabile di PC industriali, dal semplice processore ARM fino alla CPU Intel Xeon. Dal punto di vista del software, con il supporto dell'elaborazione multi-core in tempo reale.

È stato inoltre dimostrato che molte applicazioni di IA a livello di controllo possono essere affrontate con modelli di IA meno complessi. Piccole reti neurali vengono utilizzate ad esempio nei loop di controllo come feedforward o osservatori, oppure prevedono la qualità del prodotto sulla base delle caratteristiche effettive del processo. L'idea che le applicazioni di IA debbano essere sempre associate a ingenti risorse informatiche è pertanto errata. Da dove viene però questa associazione? L'elaborazione di immagini è il settore che attualmente trae maggiore vantaggio dall'IA, nello specifico dal Deep Learning. Ad esempio, le aziende stanno già lavorando ad applicazioni per il controllo ottico della qualità o della completezza.

Le esigenze in termini di prestazioni dell'hardware di controllo per i modelli di IA utilizzati a tale scopo possono in molti casi giustificare l'utilizzo di GPU. Anche in questo ambito Beckhoff fornisce la piattaforma hardware e software adeguata per incorporare con altrettanto successo questo campo di applicazione dell'IA in rapida evoluzione nel livello di controllo. A questo scopo, il modello di IA addestrato viene esportato da MATLAB sotto forma di file ONNX. Esso può a sua volta essere caricato ed eseguito dal TwinCAT Machine Learning Server, eventualmente su una GPU. L'integrazione nell'architettura del software di controllo avviene anche in questo caso tramite classico codice PLC.

Come implementare l’intelligenza artificiale nei sistemi di controllo industriali? - Ultima modifica: 2023-09-22T16:08:26+02:00 da Vittoria Lugli