Microsoft Azure per Industria 4.0 – Parte II

Questo è un articolo di una serie che cerca di rendere più chiara la tematica, affrontandola dal lato tecnico e specificatamente dal lato Cloud, in particolare quello di Microsoft Azure.

Questo è un articolo di una serie che cerca di rendere più chiara la tematica, affrontandola dal lato tecnico e specificatamente dal lato Cloud, in particolare quello di Microsoft Azure. Della serie:
1.Parte I: cos’è Industria 4.0

Proseguiamo il nostro percorso definendo innanzitutto che cosa significa Internet of Things. Il tema è molto ampio ma cominciamo subito con il concetto di embedded.

Things significa cose, oggetti, potenzialmente qualunque cosa. Nello specifico ci riferiamo a quella cosa con una parte elettronica embedded (ossia incluso, dentro).
Embedded Thing è una “qualunque cosa con dentro una scheda elettronica”.

Si apre ovviamente un mondo perché sono veramente tanti gli oggetti del nostro quotidiano, in casa, che contengono una scheda elettronica.

Partiamo dal contesto casalingo poiché più semplice ed efficace da comprendere per passare poi al mondo industriale.
Qualunque elettrodomestico come il frigorifero, la lavatrice, il forno a microonde, contiene una scheda elettronica. Essa è presente per poter abilitare il pannello di controllo e il display, permettere ad un utente di controllare gli eventuali motori, le resistenze, il compressore e molto altro ancora. Inoltre ha dei sensori per compiere queste azioni in autonomia.

L’elettronica riempie non solo gli elettrodomestici ma è presente anche in un cancello elettrico, un campanello, un sistema di allarme, tra sensori, rilevatori e telecamere.

E poi, da quando già diversi anni fa si è cominciato a parlare di domotica, (da domus, quindi casa automatica), possiamo anche aggiungere le finestre con gli scuri o i rotolanti per aprire e chiudere la casa con un pulsante, l’impianto di irrigazione per poter decidere di bagnare il giardino quando l’erba è troppo secca o di spegnerlo ad una determinata ora o quando comincia a piovere.

Il meccanismo di questi comportamenti è dato da quattro componenti, legate tra di loro da una elettronica che rappresenta una logica, interpretano gli input e scelgono come agire tramite gli output.

LE COMPONENTI
1.il Sensore è un dispositivo di ingresso (input) che traduce un evento nell’ambiente circostante in un segnale elettrico, ampio in proporzione all’evento che l’ha generato. Nel mondo digitale, il segnale diventa un numero espresso elettricamente come un numero fatto di 0 e 1;
2.il Display è un dispositivo di uscita (output) che fornisce all’operatore/utente informazioni su ciò che sta avvenendo (stato)
3.il Pannello di Controllo è un dispositivo di input che permette all’operatore/utente di fornire parametri per controllare il funzionamento, in base ciò che legge nel display
4.l’Attuatore è un dispositivo di output che permette di intervenire nell’ambiente circostate o sul dispositivo per cambiarne lo stato.

Storicamente, la logica veniva implementata fino a qualche decina di anni fa con circuiti elettronici implementati ad hoc, ognuno specificatamente per il processo implementato. Il risultato del lavoro ingegneristico è il circuito elettronico più efficace possibile in termini di velocità di esecuzione e, nel lungo tempo, il costo più basso di produzione. Ma il tempo ha anche dimostrato che man mano che i processi implementati diventavano più complessi, il tempo di progettazione e testatura del circuito di logica è cresciuto esponenzialmente, facendo lievitare i costi in maniera esorbitante e rendendo antieconomica l’implementazione. E al giorno d’oggi, in cui la garanzia di successo è sempre più bassa, bisogna poter implementare queste schede al costo più basso possibile.

Al giorno d’oggi la perfezione va sostituita con l’ottimizzazione (dei costi) non solo per economia di scala ma anche per prototipazione, ossia minimizzare i costi per verificare la bontà di una idea.

Per questo motivo, la “logica discreta”, così come veniva chiamata, è stata man mano sostituita con logiche a microprocessore.

Con microprocessore intendiamo il cuore dei computer come li conosciamo oggi. Essi hanno subito una fortissima evoluzione a partire dagli anni ’80. Visto l’ambito di applicazione, spesso vengono usate versioni o generazioni di potenza inferiore rispetto a quelle dei nostri computer che usiamo quotidianamente. Tutte le funzioni e la potenza sono controllate da un software particolare detto Sistema Operativo: per citare i nomi più famosi, Windows, Linux nei PC, iOS e Android sugli smartphone. Oggigiorno un microprocessore è inteso come economico se preso singolarmente (anche solo qualche decina di euro), ma in generale “costoso” se ragioniamo in termini di economia di scala (migliaia se non milioni di pezzi).

Per quali motivi si è passati quindi a logiche a microprocessore?
-semplicità nell’implementazione di processi complessi perchè lo sviluppo diventa di “alto livello” in quanto concentrati sul processo da implementare e non sull’elettronica per sé;
-razionalizzazione della produzione in quanto tutta la logica si riduce al minimo numero di componenti (all’estremo, uno) per agganciarsi a sensori, attuatori, display e pannello di controllo;
-microcontrollore: un microprocessore molto efficiente (veloce e leggero) nella gestione di processi di input/output come quelli descritti. Semplice e veloce per quei processi, inadatto in generale a processi più generici e complessi. In valore assoluto molto poco costoso.

Tanto per citare dei nomi, il microprocessore che si usa per la maggiore in ambito IoT – Internet fo Things è il processore ARM. Si tratta del progetto di un’azienda inglese (ARM), che li progetta e li personalizza per il cliente, includendo i più diversi livelli di performance e di funzionalità, differenziando ampiamente l’offerta e i costi. L’azienda vende la licenza di produrlo in autonomia in fabbriche specializzate in questa produzione. Tutti i produttori degli smartphone che usiamo oggi utilizzano questa famiglia di processori. Per citare invece un dispositivo noto nel mondo IoT è la scheda sperimentale Raspberry PI che usa il processore ARM.

I processori della famiglia Intel, quelli dei nostri computer odierni, fanno la loro parte in questo mondo, anche se con numeri inferiori (ma di questo ne parleremo in un articolo futuro).

Per quanto riguarda i microcontrollori, i loro nomi sono meno famosi al pubblico (ATMEL, PIC), ma molto diffusi. Se citiamo il famoso Arduino, allora facciamo riferimento ad una scheda che permette di sperimentare questo mondo utilizzando (nella sua versione originale) un microcontrollore ATMEL.

Come già detto, i microcontrollori hanno il vantaggio dei costi e dell’economia di scala. Ma il mondo ARM ha saputo rendersi particolarmente efficace generando le più svariate ed innumerevoli implementazioni, scalando in grande e in piccolo a favore di tante esigenze di prestazioni e di costo. Anche nelle piccole implementazioni oggi è possibile utilizzare versioni di processori ARM a costi comparabili con quello dei microcontrollori, mantenendo comunque tutta una serie di feature moderne.

La diffusione di ARM ha due impatti non indifferenti:
1.essendo processori a 32 bit, è possibile programmare questi dispositivi con strumenti, linguaggi, ambienti comparabili con i normali ambienti per sviluppare programmi per PC. Questo ha il vantaggio di poter accedere a competenze che derivano dallo sviluppo software piuttosto che dal mondo dell’elettronica, almeno per la parte software;
2.è possibile implementare in questi processori uno stack TCP/IP di comunicazione. Grazie alle connessioni fisiche Ethernet o Wi-Fi, è possibile per questi dispositivi collegarsi a Internet, alla base di tutti i nostri discorsi.

Nei due prossimi articoli, parleremo di IoT in ambito industriale e di come questi dispositivi possano comunicare, fino a raggiungere il Cloud.

Questo post è scritto da Marco Parenzan.
Marco Parenzan è professionista per le architetture Cloud, IoT e lo sviluppo in .NET. Ha ricevuto il titolo di MVP su Microsoft Azure sin dal 2014. È uno speaker in Italia su Azure e lo sviluppo di .NET. E’ un community lead per 1nn0va, una community ufficiale Microsoft a Pordenone, in Italia. Ha scritto un libro su Azure nel 2016. Ama sviluppare retrogames e leggere fumetti.