Sempre più spesso ci troviamo di fronte alla necessità di integrare, ovvero di mettere a disposizione delle informazioni ad altre entità, hardware o software, che si occuperanno della loro analisi e, si spera, della loro valorizzazione. Questi dati possono provenire da altri software oppure dal campo. In ottica Industrial IoT, noi ci occuperemo proprio di questi ultimi, ovvero quelli che arrivano dalla fisicità.

I dati nell’IoT

Come sappiamo, macchine e strumenti di ogni genere sono oggi in grado di fornirci una enorme quantità di informazioni utili ad analizzare nel dettaglio i nostri processi al fine di ottimizzarli ed ottenere il massimo dai nostri investimenti. Una grande quantità di dati, però, porta con sé diverse complessità.

Vediamo di analizzare le più importanti:

  1. Spazio di memoria richiesto per la loro storicizzazione
  2. Traffico generato sulla rete
  3. Significatività del dato

Per poter gestire in modo corretto queste tematiche, è necessario affrontare ogni progetto di integrazione partendo dal punto più importante: l’analisi di progetto.

Prima di procedere, però, diamo una breve occhiata a quella che, in linguaggio informatico, viene detta tipizzazione del dato.

Ogni dato ha un suo tipo specifico e, di tipi, ne esistono molti; possiamo avere dati di tipo Stringa, di tipo Intero, di tipo Booleano, con tanti, pochi o nessun valore decimale.
Esistono anche tipi più complessi, come la data e l’ora.

Perché questo è un aspetto importante? Perché ogni tipo di dato occupa uno spazio, in termini di memoria, differente.
Il tipo più piccolo, per esempio, è il Boolean, ovvero un singolo bit che rappresenta uno stato logico: on / off, acceso / spento etc.
Uno dei più “pesanti”, invece, è il tipo Real che serve a contenere un numero con molte più decimali.

Tornando al nostro progetto, sarà fondamentale analizzare preventivamente quali informazioni vorremo scambiare con il campo; in questo modo cercheremo di ottimizzare l’utilizzo dello spazio necessario alla storicizzazione delle informazioni raccolte.

Oltre allo spazio, però, dovremo anche tenere conto di un altro aspetto: i moderni protocolli industriali scambiano informazioni sulla rete ethernet.
Le piattaforme di integrazione hanno il compito di monitorare questi dati e, al momento opportuno, a seconda delle regole impostate, salvarli o spedirli a destinazione.

Proviamo però a soffermarci su un ulteriore aspetto, spesso non considerato: come viene gestito il monitoraggio, logico, di un’informazione?
Astraendo al massimo, ci accorgiamo di trovarci in presenza di due sole situazioni. Un dato, in massima sintesi, può essere registrato (salvato o gestito) in due soli modi:

  1. Ad intervalli di tempo prestabiliti (On Interval)
  2. Al cambio di stato (On Change)

Proviamo a fare degli esempi, per meglio comprendere questi aspetti.

Tipi di dato On Interval

Sono informazioni che vengono lette, o salvate, ad intervalli di tempo prestabiliti.

Il conta pezzi di una macchina molto veloce verrà salvato, per esempio, una volta al minuto (pezzi/minuto).

Sarebbe inutile, infatti, salvare il dato ogni qual volta questo dovesse cambiare: ci troveremmo con grandi quantità di dati senza alcun valore aggiunto.

Tipi di dati On Change

Come detto, si tratta di quelle informazioni che vengono salvate ogni volta che il loro stato cambia, ovviamente rispetto al loro valore attuale.

L’allarme di una macchina, che potrebbe essere rappresentato da un valore di tipo vero / falso (quindi booleano), verrà gestito solo quanto dallo stato falso passa allo stato vero o viceversa.

Contrariamente al nostro contatore, per questo dato sarebbe inutile essere salvato ad intervalli prestabiliti anche perché, all’interno di quello stesso intervallo di tempo, potrebbe cambiare più volte, vanificando il nostro lavoro di integrazione.

Il concetto di deadband

Come spesso accade, però, potremmo trovarci nella condizione di voler conoscere le variazioni significative di un dato che però salviamo ad intervalli regolari.

Il concetto di deadband viene in nostro aiuto.
La deadband è un valore, espresso in percentuale, che indica quale variazione il nostro dato deve subire per essere spedito o salvato.

Ma vediamo un esempio.

Se dovessimo decidere di monitorare la temperatura interna di una stanza, sarebbe ipotizzabile impostare un intervallo di tempo di dieci minuti (vedremo dopo, nel dettaglio, perché). Questo significa che io conoscerò il valore della temperatura solo una volta ogni dieci minuti. E se, all’interno di quel lasso di tempo, il valore cambiasse repentinamente?

Se utilizzassimo la logica On Interval, io saprei che la mia temperatura è scesa di 10 gradi solo dopo 10 minuti. Utilizzando la deadband, invece, potremmo dire: salva la temperatura ogni 10 minuti OPPURE quando questa varia (in più o in meno) del 10%.

Et voilà.

Pur mantenendo ottimizzato il traffico di rete e la memoria utilizzata, saremo certi di ricevere anche le variazioni che, per noi, risulterebbero significative. 

Ma torniamo al nostro iniziale elenco: la significatività del dato.
Sempre in ottica di analisi di progetto, e dopo aver capito quali dati abbiamo bisogno di monitorare, ci troviamo a dover decidere COME monitorarli.
Per trovare la risposta, dobbiamo conoscere i processi che andiamo ad integrare.

Un dato può variare molto velocemente nel tempo ma, per decidere se campionare o salvare con logiche On Change, dobbiamo prima di tutto stabilire se le variazioni che avvengono, sono o meno significative per la nostra analisi.

Ogni quanto tempo devo salvare il valore della temperatura, per esempio, di uno stampo?
Dipende; dipende da quanto precisa voglio sarà la curva che, alla fine, rappresenterà quel dato.
Ma dipende anche da quale impatto le variazioni che rilevo influiranno sul mio processo.

Ogni quanto tempo monitoro l’assorbimento di una macchina?
Dipende: dipende da quale tipo di lavoro svolge e da quanto è significativo il dato che andrò ad analizzare in seguito.

Siamo invece sicuri di quante volte devo salvare il cambio di stato di un allarme, e la risposta è molto semplice: ogni qual volta questo cambierà il suo stato.
Come potete vedere da questo ultimo esempio, esistono anche delle certezze.

Monitorare la temperatura di una stanza ogni secondo, per concludere con gli esempi, non ha senso.
Perché?
Perché questa temperatura non varierà mai, in modo significativo, in un intervallo di tempo così ristretto.
Qualora dovesse cambiare, potremmo sempre chiedere aiuto alla nostra deadband.

Questi sono solo alcuni degli esempi con i quali voglio riportare all’importanza dell’analisi.
Come abbiamo visto, solo un’analisi attenta e puntuale ci permetterà di ottimizzare e spremere il massimo dai nostri progetti di integrazione, evitando sprechi e, soprattutto, di annegare nelle nostre stesse informazioni.

Stefano Bosotti
Industrial IoT Manager – smeup
My LinkedIn Profile

Published On: Novembre 29th, 2019 / Categories: Integrazione dati di campo / Tags: , , , , /

Naviga per categoria:

Seleziona una categoria d’interesse dal nostro magazine