2. #iotsatpn
«Cosa c’entro io con l’IoT industriale ???»
• Ma che roba è?
• Ma qui son tutti
matti?
• Potete farmi
scendere?
• In che anno siamo
scusate?
• Come me ne
vado?
3. #iotsatpn
Salto nel vuoto
• Acronimi sconosciuti (HMI, SCADA, MES)
• Protocolli proprietari
• Vendor mai visti
• Non c’è sempre cloud
• Non c’è sempre Internet
• Architetture diverse, a seconda del bisogno
C’è un sacco di confusione, correnti di pensiero distanti, e molte variabili «OT» che sconvolgono la situazione.
4. #iotsatpn
Obiettivo: uscirne vivi
• Vari tentativi di «linguaggio»
• Varie prove di architetture
• Varie situazioni critiche «in baia»
• Varie riunioni con sedicenti
esperti, sedicenti partner
LEADER, … sedicenti clienti
«illuminati»
Chi ci troviamo davanti? Ad una
persona che espone un problema che
di IT non ha nulla.
Prima di esprimere qualsiasi giudizio, o
pensare a COME risolvere la cosa,
dobbiamo capire chi abbiamo davanti.
6. #iotsatpn
“Working hard, to KEEP at the WEEKLY SCHEDULE”
Perchè ho bisogno di questi dati?
Perché devo GARANTIRE la
produzione.
La produzione non deve andare in
ritardo e non deve avere scarti…
…perché altrimenti sto consumando
materie prime (pagate) più del
dovuto, per cui il guadagno cala
(più materie prime, più ore di lavoro).
7. #iotsatpn
Quando succede un problema..
..non si riesce in modo
scientifico o euristico a
capire la causa iniziale
del problema.
La produzione «teorica»
è difficilmente vicina alla
produzione «reale»..
Poiché gli imprevisti non
sono né prevedibili né
governabili
8. #iotsatpn
Le linee non sono sempre nuove, o tutte uguali
• Le linee non sono
nuove, gli danno
solo i PEZZI per
ora… ma nient’altro.
• I diversi produttori
propongono
soluzioni
«innovative» ma …
innovative in che
senso?
10. #iotsatpn
Ad esempio..
- I macchinari ad alte velocità
non garantiscono la stessa
prestazione… e bisogna
arrivare al limite
- I rulli hanno dei brevissimi
stop per cui hanno un
movimento discontinuo
Pause pranzo troppo lunghe?
Turni notturni sono inefficienti
Macchinari in sofferenza
I cambi prodotto sono lenti
11. #iotsatpn
Conclusione
• Mario non sa da dove partire
• Mario sta chiedendo di risolvere un
problema PRATICO
• Mario non può darti né dati, né un
pregresso
• Mario è «incazzato come una biscia»
già dopo 5 minuti che non vi capite.
… Ed è ovvio che a Mario di «AZURE» non gliene frega niente.
12. #iotsatpn
Obiettivi del vostro operato
• Mario ha bisogno di poter capire cosa sta succedendo, guardando i dati dal
proprio tablet, dal proprio excel, dal telefono
• Deve poter guardare le statistiche/le aggregate, e scaricarsi i dati RAW per
guardarli in dettaglio o confrontarli solo in caso di bisogno
• Ha bisogno di DIMOSTRARE agli altri (che lo insultano) i fatti e non le pugnette.
1) RIDARE IL CONTROLLO A MARIO.
2) TOGLIERE LO STRESS A MARIO.
13. #iotsatpn
DI COSA STIAMO PARLANDO
EDGE COMPUTING:
si indica l'elaborazione delle
informazioni ai margini della rete,
dove i dati vengono prodotti.
I benefici principali derivanti
dall'utilizzo delle tecnologie di edge
computing sono
la riduzione della latenza di
elaborazione, che permette
risposte in tempo reale
il risparmio di banda, inviando
al data center informazioni già
elaborate e quindi di minori
dimensioni.
FOG COMPUTING:
è un'architettura orizzontale, a livello
di sistema, utile a distribuire senza
soluzione di continuità risorse e
servizi di calcolo, immagazzinamento
di dati, controllo e funzionalità di rete
sull'infrastruttura che connette
il Cloud all'Internet delle Cose (IoT)
Il Fog rappresenta al tempo stesso
un'estensione e un miglioramento del
paradigma Cloud in supporto ad
applicazioni IoT che debbano
rispettare precisi parametri di Qualità
di Servizio (QoS) per essere
processati,
quali latenza e banda disponibili per
una certa connessione.
CLOUD COMPUTING:
paradigma di erogazione di servizi
offerti on demand da un fornitore ad
un cliente finale attraverso la
rete Internet (come l'archiviazione,
l'elaborazione o la trasmissione dati),
a partire da un insieme
di risorse preesistenti, configurabili e
disponibili in remoto sotto forma
di architettura distribuita
Le risorse sono assegnate,
rapidamente e convenientemente,
grazie a procedure automatizzate, a
partire da un insieme di risorse
condivise con altri utenti lasciando
all'utente parte dell'onere della
configurazione.
14. #iotsatpn
Hawaii Pizza
• Nei progetti Industriali è necessaria Flessibilità
• Cloud / Fog sono sempre presenti
• C’è molta paura poiché non c’è conoscenza
«Voglio tutto quello che mi hai
proposto… ma da qui non esce
niente»
Cit. #UnClienteVeramenteAdorabile
15. #iotsatpn
Definizioni
HMI
Interfaccia uomo-macchina IUM (in
inglese Human-Machine Interface, HMI) si
riferisce allo strato che separa un essere
umano che sta utilizzando una macchina dalla
macchina stessa.
MES
Con Manufacturing Execution System (MES) si
indica un sistema informatizzato che ha la
principale funzione di gestire e controllare la
funzione produttiva di un'azienda.
19. #iotsatpn
Azioni da fare: Presentare un piano
• Il cliente ha bisogno di un piano per arrivare ai SUOI risultati
• E’ disposto a spendere, ma non tutti sono d’accordo con lui sul COME
spendere
• E’ parzialmente conscio dei problemi effettivi che ha la sua struttura
• Ci sono le parrocchie anche in Industria
• Essere agnostici «non fa figo»
• Un conto è risolvere un problema, un conto è entrare per anni nel suo
sistema produttivo
20. #iotsatpn
Le fasi del piano
Catturare I
dati e
analizzarli
Concordare
le Pipeline
Progettare
le GUI e I
KPI
Definire gli
strumenti
utili
Definire le
“personas”
Formare la
governance
• Non parlare di informatica, cloud o altro
• Far capire cosa si può realmente ottenere e CHIEDERE se è sufficiente
• Non parlare di tecnologie o brand
• Porsi come AL SERVIZIO Di, e non AL CENTRO Di
21. #iotsatpn
Azioni da fare: Toolbox-A
• Partire con la «misuristica in salsa cloud»
• Capire come reperire i dati da una macchina / linea campione.
• Collezionare i datablock o i tags (es: OPC UA Client, in polling con RECORDER
via file «unixtimestamp.txt») , portarsi via i dati e poi riproporli in una
message driven architecture su azure per:
• Convertire in json
• Analizzare in serie temporali
• Capire la variazione (RMS)
• Portare un report di ciò che si è trovato
22. #iotsatpn
Giro del fumo EDGE
• Deve essere scriptabile
• Non va fatta alcuna lib di
conversione formato
• Storage SSD sul sampler
• No Isteresi, tutto polling
• Controllo remoto
NON LO PUOI FARE COL PC
DI CASA!!!!
1. Power Supply 24v
2. UPS 24v
3. OS LTS
4. Welding components
5. RTCodesys ready
6. X86 / ARM
7. OPC Server ready
23. #iotsatpn
Giro del fumo cloud
• Deve essere scriptato
• La lib di conversione formato va
all’inizio del flusso
• Payload decorati con PT, DT,
DID
RICETTA:
• 30 minuti per allestimento
• 8 ore per programmazione
• 1 giorni per analisi
• 1 giorno per la relazione
24. #iotsatpn
Relazione
• Elenco dei segnali acquisiti
• Prima esplorazione degli scarti (vars)
• Prime ipotesi di aggregazione per
«movimento»
• Visualizzazione statistica
• Usare le HEATMAP!!!
25. #iotsatpn
Azioni da fare: Toolbox-A
• Potrebbe servire:
• Un convertitore da tag a JSON tipizzato
• Un Enricher dimensionale
• Un tagger del transato in caso di errori
• Non è sempre vero che il dato è buono.
• Per cui va contrassegnato con una
percentuale di affidabilità
… C’era una volta un trapano grande e un PLC …
27. #iotsatpn
Azioni da fare: Toolbox-B
• Convertire il Foglio variabili in un protocollo
adatto all’uso.
• Arricchire i dati con le dimensioni di impianto e
le dimensioni di «reactive-behaviour»
• Dividere i dati in tipi:
• Basato sulla Variazione
• Basato sulla snapshot scadenziata
• Dividere i dati per «TEMPERATURA» (lambda)
• Dividere i dati per retention time
30. #iotsatpn
Per riassumere, su EDGE:
1. capire il protocollo e riportarlo ad un sistema
2. capire la frequenza dei dati
3. capire il giro della rete
4. capire da chi arrivano i dati (da SCADA, da PC industriale, da un OPC SERVER
passivo)
Problemi a cui stare attenti:
• non è detto che il sistema del cliente sia fatto bene (disconnessioni) => taggare il
periodo di tempo su TIPOLOGIA di flusso come "non perfetto" per causa terze.
• non è detto che la rete sia fatta bene. Docker ha problemi di BSOD, ad
esempio,quando ci sono troppe virtual network di mezzo
• non è detto che quello che il cliente sa sia giusto, in termini di OT Software.
31. #iotsatpn
Inoltre
• SOLUZIONE: EXCEL fatto bene + CALCOLO del throughput +
Assessment sulla rete
• a volte potrebbe essere necessario limitarsi all'edge. Non fare grandi
sistemi
Schema
di rete
con IP
Excel
fatto
bene
Calcolo del
throughtput
Raggruppamento
dei messaggi per
TEMPERATURA
Quantificazione e
Frequenza Risultati
32. #iotsatpn
Azioni da fare: «Checkpoint 1»
• Dichiarazione di Intenti, e
ricezione della conferma
• Applicazioni + Utenti
• Ricordare i bisogni di Mario,
non i bisogni del cloud, del
design, o della «figheria
tecnologica» in genere.
33. #iotsatpn
ATTENZIONE ALLA DICHIARAZIONE DI INTENTI
PROBLEMA: dove normalizzare.
• Stream di Byte, o stream di json ? Dipende da frequenza, network, RT
PROBLEMA: Mimica da utilizzare
• Realtime, batch. Organizziamo tutto secondo lo scopo
IMPORTANTISSSSSSSIMO:
• Un simulatore verosimile è l’unica cosa dove investire tempo
• Certe cose vanno fatte SOLO in fabbrica. Scordiamoci di avere «scontata»
una soluzione cloud-edge per i prossimi 5 anni. Le uscite dal cliente VANNO
FATTE.
34. #iotsatpn
DISTINGUERE MIMICA e FREQUENZA
• Distiguere i flussi dati, pertanto la mimica è in funzione degli obiettivi:
• PRODUCTION MONITORING
• PROCESS CONTROL
• CONTROL PLAN
• MAINTENANCE PLAN
• CHANGE OVER PIANIFICATION
• WORK ORDER PROGRESSION
• CORRELATION ANALYSIS
• STOPPAGES ANALYSIS
• RAW MATERIAL OPTIMIZATION
36. #iotsatpn
Definizione della Modalità («Freq&Temp»)
• PRODUCTION MONITORING => STREAMING, LOW FREQUENCY
• PROCESS CONTROL => STREAMING, HIGH FREQUENCY
• CONTROL PLAN =>
• MAINTENANCE PLAN => BATCH, LOW LOAD
• CHANGE OVER PIANIFICATION => BATCH, LOW LOAD + STREAMING + LOW
FREQ
• WORK ORDER PROGRESSION => STREAMINg, LOW FREQUENCY
• CORRELATION ANALYSIS => BATCH, HIGH LOAD
• STOPPAGES ANALYSIS => BATCH, LOW LOAD
• RAW MATERIAL OPTIMIZATION => BATCH, LOW LOAD
37. #iotsatpn
QUALI SONO GLI ATTORI
• Squadre manutentive
• Sala controllo
• Operatori
• Direttore di produzione
• Possiamo risolverli tutti con la stessa architettura? NO. Sta tutto in FOG?
NO.
• Quindi quali sono le architetture da scegliere, e dove le posizioniamo.
38. #iotsatpn
MACHINE APP
• Variabili di Stato
• Buffer circolare
• Segnalazione allarmi (regole)
• Work order in progress
• Settings correnti
Preferite «al WEB» le seguenti combinazioni:
Qt / PyQt
WPF+XAML
ElectronJS
39. #iotsatpn
OPERATOR APP
• CHANGE OPTIMIZATION
• Action Plan with RECORDER
• Digital Documentation
• WORK ORDER PIPE
• Cosa succede ora
• Cosa succederà poi
• SAFETY GUARDIAN
• Alert in corso
• Comunicazione da sala controllo
40. #iotsatpn
Architettura … Semplice!!!
API App
DocumentDB
Media
Services
Azure
Search Azure cache
Mobile
App
Db Documentale (Cosmos / Mongo)
Streaming video ( MediaServices / Kaltura )
Ricerca (A.Search / El.Search)
Cache Last info (Redis / Redis)
41. #iotsatpn
ON The Edge
• REDIS USAGE in
• Pattern: Reliable queue
• Pattern: Circular list
• Pattern: Status Snapshot K,V
• Pattern: Publish Subscribe
• RABBIT USAGE in
• Exchange to QUEUE for Lambda
cold/hot pushing
• Exchange to TOPIC multi Executor
pattern-matching
• Exchange to QUEUE for Enriching
data with Plant/Machine Metadata
Cache(Redis K,V)
42. #iotsatpn
Ma la chiave..è entrare in confidenza con lui…
• E’ solo lui che può spiegare (ad
esempio):
• Cosa intende l’azienda per OEE
• Cosa è interessante misurare (stoppages,
process vars)
• Quali sono le formule / i valori da usare, ad
esempio nelle carte di controllo
• Quali sono i metodi per correlare i dati
• Quali possono essere lavori di sensoristica
aggiuntiva per creare dei checkpoint di
linea ed avere quindi il tracking
Insomma… Lui sa il significato dei dati !!!!
Il Processista!!
43. #iotsatpn
Con il Processista al vostro fianco, potrete
Push the Stop Cause Button when your line stops
→ Automatically registers stop causes on the cloud application.
DOWNTIME ANALYSIS
Check-in gets signals from PLC automatically
→ Visualises the machine status on the graph and chart.
MONITORING ON A SMARTPHONE
Check-in gets signals from andon lights
→ Sends an SMS to operators when the light turns red.
PUSH MESSAGES ON A MOBILE PHONE
Check-in gets signals from stand-alone machines
→ Monitor your machine status from anywhere.
ON/OFF STATUS MONITORING
Check-in gets signals from movement at manual stations
→ Digit manual processes and visualize progresses.
PROGRESS MONITORING
Push the Issue Log Button when your line stops
→ Automatically registers issues with time stamps on the cloud application.
ISSUE LOGGING
44. #iotsatpn
Azioni da fare: Toolbox-C
• Proseguire con le architetture giuste
• Continuare la simulazione su azure per:
• Implementare i flussi Cold (basato su File e
topic ad-hoc) e importazione su TSDB
• Analizzare e generare, utilizzando delle
BufferedQueue / cache, i nuovi payload
(trigger di fine e inizio prodotto, tracking
corr_id)
• Analizzare e capire e regole da applicare
per generare alert da retroazionare
sull’edge
45. #iotsatpn
Architettura e proposta archetipo standard
Consumatore
Portable IMDG
(es: Hazelcast Docker)
Bufferizzatore + Controllo Transazione
Ripulitore
Logica/Regole
WebHook
WebHook
WebHook
Committer
Producer
Costruttore
Payload
Derivato
1 2
3
4
5
From Microsoft:
Standard MicroServ Consumer:
53. #iotsatpn
• Generare il proprio modus-operandi per scalare sulle richieste in
termini di charting:
• D3 / c3 / Plotly / ChartJS /ecc
• C# / NodeJS / Python /Php / Java / ecc
• PowerBI non è la soluzione per l’on premise (costi, fattibilità,
investimento iniziale)
• Usare un buon Transformer/Mapper tra un Json/Bson e un Json per
tipo di grafico
Azioni da fare: Toolbox-D
54. #iotsatpn
Qualche Esempio
• Non serve «poter
selezionare qualsiasi
variabile». Basta farsi dire le
variabili giuste e fare delle
GUI che permettano di:
• Vedere velocemente lo stato
attuale
• Selezionare almeno DUE
periodi di tempo e vedere lo
stesso grafico in due tempi
• Salvare gli snapshot di ricerca
grafico etichettandoli e
condividendoli con altri
UTENTI
55. #iotsatpn
Qualche Esempio
• E’ importante poter fare
drilldown confrontando i
valori rispetto a delle
statistiche di più ampio
spettro.
• Vedere velocemente lo stato
attuale
• Selezionare almeno DUE
periodi di tempo e vedere lo
stesso grafico in due tempi
• Salvare gli snapshot di ricerca
grafico etichettandoli e
condividendoli con altri
UTENTI
56. #iotsatpn
Qualche Esempio
• Arricchire le informazioni del
campo con annotazioni o
attributi «manuali» che tipizzano
ulteriormente il dato
(STOPPAGES ANALYSIS) porta ad
avere una evidenza maggiore dei
principali punti di «modifica
aziendale».
• La motivazione «accidentale»
spesso porta ad individuare le
zone del tempo dove indagare su
tutte le variabili di processo per
vedere anomalie o incidenze.
57. #iotsatpn
Qualche Esempio
• Le statistiche di utilizzo degli
impianti ( in termini di stop)
portano ad individuare,
facendo un banale match coi
turni di lavoro o con le
anagrafiche dei formati, a:
• eventuali carenze formative del
personale operativo,
• eventuali informazioni mancanti
derivate dalla parte MES
• Eventuali carenze di prestazioni
in termini di cambio formato
58. #iotsatpn
Azioni da fare: Toolbox E
• Proseguire con le architetture giuste
• Continuare la simulazione su azure per:
• Taggare a posteriori le ZONE temporali
dove sono stati rilevati errori del campo,
quali:
• Disconnect da Opc Server
• Riavvii edge
• Mancanza servizi
• Fornire in ogni dashboard un indice di
qualità del dato, a seconda del filtro dati
in corso in relazione al numero di errori
che sono successi in quel periodo.
• Fare una «BI della BI»: capire
volumetricamente se c’è stato un
incremento del throughput, degli errori, e
generare i dati che riassumono in slice
temporali l’utilizzo del sistema.
59. #iotsatpn
Architetture di riferimento
RG Health
Gateway API
RG Health
Gateway API
Event Grid Azure Relay
AKS EAI
Cluster
Logic
AppS
WF
Writer
Function
Application
Insights
RG Health
Gateway API
Log Hub
Timer
Search
Function
Timer
Search
Function
Logic
AppS
WF
• Entry point (Rest API)
• Stream Logger (EventHub, Kafka)
• Consumer (Console application)
• Log Data Ingestor (Application Insight)
• Timer based Function
• Logic Apps (Workflow
60. #iotsatpn
Perché non c’è alternativa onPremises?
The easiest way to get going is by installing a local agent
which will be installed on your IIS servers called Application
Insights Status Monitor.
Once Application Insights Status Monitor is installed, it will discover ASP .NET web
applications running on your IIS server.
62. #iotsatpn
Ora la domanda è spontanea.. e il cloud?
• Se anche il processista è
spaventato, non
importa. Basta farlo
ragionare e sarà il vostro
primo sponsor.
63. #iotsatpn
Quali sono le domande giuste per lo sponsor
• Quali dati sono segreti.
• Quali sono gli utenti «top manager» che bisogna far contenti
• Quali sono le terze parti
E la soluzione è: Derivare delle basi dati SEMPLICI con solo i dati che
direttamente vengono plottati (memorizzare i sum)
Non mandare i dati di processo, ma innescare un processo di accodamento
richieste ed export asincrono.
L’importante è NON FAR ENTRARE PORTE, e far uscire SOLO dati aggregati da
un DB di frontiera «senza segreti».
64. E quindi … ? Simulaton desk
• Throughput
• Analytics
• Inference
Extension Workplace
• ML Training Workbench
• Module Repository
Information Bus
• To Customers
• To Scientists
• From CLOUD MES
HMI
L'interfaccia utente comprende il flusso di informazioni per il supporto delle decisioni, attraverso:
messaggi visivi - generalmente forniti da uno schermo o monitor
messaggi sonori - altoparlanti, sirene, ricetrasmittenti
azioni di controllo - tastiere, pulsanti, interruttori
MES
La gestione coinvolge il dispaccio degli ordini, gli avanzamenti in quantità e tempo, il versamento a magazzino, nonché il collegamento diretto ai macchinari per dedurre informazioni utili ad integrare l'esecuzione della produzione come a produrre informazioni per il controllo della produzione stessa.
Last, Fast & Slow (Pipes)
Coda con scodatori verso KAFKA,
O verso FILE + invio payload con NOME FILE
LUI: TI farò questa applicazione che ti permetterà di..
GLI ALTRI: Darò a XXX uno strumento per analizzare..
IL PASSATO: Avrete comunque la possibilità di..
I PROBLEMI: Non Interferirà con..
IL SOGNO: Vedrai che in questo modo…
Normalizzare si.. MA a monte o a valle?
Production Monitoring: Check how well your production line has been running within a certain period of time. You also have access to a set of statistics and information incl. longest period of non-stop operation, the number and average length of stops, daily/weekly production and much more.
Process Control: serve a dare alla control room una indicazione precisa dello stato corrente dei settings, in modo da modificarli MANUALMENTE. With the proper information and equipment, a small staff of operation personnel can operate even the most complex processes from a central control room.
Control Plan: is a living document that outlines the methods taken for quality control of critical inputs to deliver outputs that meet customer requirements. It also provides a written description of the measurements, inspections, and checks put in place to control production parts and processes.
Planned maintenance, preventative maintenance or scheduled maintenance
La process capability (o capacità di processo), è un’analisi che consente di stimare l’allineamento tra il processo (Voice of Process) con le aspettative del cliente espresse in termini di target e di limiti di specifica (Voice of Customer)
Il Cp identifica quindi il rapporto che sussiste tra la differenza dei limiti di specifica e sei volte la deviazione standard.
Il Cpk, esprime quindi la minima distanza della media del processo dai limiti di specifica normalizzato a 3 volte la deviazione standard calcolata su un numero contenuto di dati.
Prendo 50-100 campioni, Misuro A MANO, e indico l’average. Il resto è FORMULA
In order to enable Application Insights for a web application, select it from the left pane. You will then have to sign to Azure. If you simply click the blue Add Application Insights button, a new instance of Application Insights will get created into a resource group named ApplicationInsights and it will be named after the IIS web site name. You probably want to name the objects yourself for clarity sake and respect of your corporate naming convention. In order to do this, your first need to select New Application Insights resource and then click the Configure settings link: