Per intenderci:
Automazione Tilli
Automatica Castaldi
È un campo fortemente interdisciplinare.
Modelli funzionali dei controlli in generale MIMO (Multiple-Input-Multiple-Output) costituiti da più SISO
in cascata (o, comunque, opportunamente configurati).
MICROCONTROLLORI E DSP
Microcontrollore: speciale microprocessore per il controllo, orientato a grande capacità di gestione I/O,
riducendo costi e ingombri. Componenti principali: memoria, convertitori D/A o A/D, interfaccia di
comunicazione seriale, gestione di tempo ed eventi, I/O digitale.
DSP: processore progettato per minimizzare i costi dell’elaborazione digitale dei segnali. Usato spesso
anche come co-processore matematico. Prestazioni molto elevate (ottenibili e superabili con processori da
PC, ma con costi/ingombri molto maggiori). Architettura speciale che comprende: moltiplicatore hardware
integrato, supporto ad operazioni “al volo”, struttura a pipe-line, supporto per very long instruction word.
Linguaggio assembler ottimizzato per l’esecuzione di prodotti scalari (operazioni MAC – Multiply
Accumulate).
Possibili scelte:
• FIFO (First-In First-Out): è on-line a priorità dinamica, non-preemptive, semplice. Ordinamento
esecuzione secondo ordine di attivazione. Nessuna garanzia di rispetto delle deadlines. Condizione
U ≤ 1 è necessaria ma non sufficiente.
• RMPO (Rate Monotonic Priority Ordering) on-line a priorità statica, preemptive. Ad ogni task viene
assegnata una priorità proporzionale a 1/Ti (processiamo subito i più “sbrigativi”). Anche questa
volta possiamo non rispettare le deadlines (non è detto che i più sbrigativi siano quelli a deadline più
vicina). Condizione necessaria e sufficiente per la schedulabilità RMPO: U ≤ n 2 n − 1 . Condizione
1
U ≤ 1 è necessaria ma non sufficiente. Computazionalmente, va meglio dell’EDF (v. oltre), ma per
efficacia è inferiore.
• EDF (Earlies Dead-Line First) on-line, priorità dinamica, preemptive. Ad ogni task viene assegnata
priorità inversamente proporzionale al tempo rimanente prima della deadline. Condizione U ≤ 1 è
necessaria e sufficiente. Trattasi dell’algoritmo ottimo per efficacia (vince su tutti gli altri); di contro,
non è facilissimo da implementare.
Scelta offline, non-preemptive Timeline scheduling: si divide il tempo in time-slice (uguali) assegnate in
modo fisso ai task. PRO: determinismo assoluto, elevata efficienza (tipico per off-line e non-preemption),
maggiore affidabilità e predicibilità. CONTRO: flessibilità nulla, efficacia bassa.
Un SO real time deve essere in grado di gestire l’I/O delle periferiche e i diversi tasks, di rilevare gli eventi,
di effettuare lo scheduling, di verificare il rispetto delle deadlines. Il campionamento degli eventi e la gestione
del tempo viene quindi effettuata dal SO: i task lavorano senza coscienza del tempo e possono essere
interrotti dal SO (in alternativa si sospendono autonomamente).
Modello di esecuzione (rappresentazione dell’effettivo svolgimento nel tempo dell’esecuzione delle attività
real-time): insieme di eventi/attività RT + unità di elaborazione/SO real-time. Il modello d’esecuzione deve
soddisfare le richieste RT di tutte le applicazioni.
Due approcci:
• event driven: ad ogni evento il SO
o prende il controllo della CPU
o analizza l’evento e decide quale task attivare
o esegue l’algoritmo di scheduling
o manda in esecuzione il task scelto
Essenzialmente, il cardine sta nella gestione a interrupt. Eventi possono essere complessi e ci deve
essere verifica delle deadlines. PRO: approccio intuitivo, massime potenzialità, semplificato per
controllo, buona flessibilità e garanzia, possibile verificare la schedulabilità a priori (EDF). CONTRO:
complesso, in quanto intrinsecamente legato alla schedulazione on-line, alto overhead di SO.
• time driven: non si reagisce al singolo evento, bensì il SO è chiamato a intervalli regolari (ogni Ts =
tempo di scansione) di tempo per campionare la condizione di tutte le grandezze d’interesse.
Particolarmente adatto alla schedulazione off-line, ma può essere utilizzato anche nel caso online
a patto che non vi sia perdita di eventi e che il loro ordinamento non sia significativo.
Essenzialmente consiste nella gestione a polling degli eventi, soluzione che sposta il
riconoscimento degli stessi da HW a SW del SO (l’applicazione reattiva è resa ciclica pseudo-
trasformazionale sincronizzata alla scansione del SO). Gestibile ma comunque complesso
richiede grande tempo di elaborazione. Esistono però accorgimenti per ridurre al minimo la
complessità e il tempo per riconoscere gli eventi semplificazione per ottenere il massimo
grado possibile di efficacia dagli algoritmi di scheduling. Auspicabile la sincronizzazione tra
campionamento del SO e l’evento periodico, in modo che si possano innescare i task senza
bisogno di verificare l’evento (meno overhead e deadline automaticamente uguale a prossimo ciclo
scelta non obbligatoria ma che semplifica molto). Ad ogni scansione il SO passa il
campionamento delle grandezze al task che
o discrimina l’evento
o aggiorna IN e OUT
o attende il nuovo evento
PRO: semplicità. DIFETTI: task attivato anche in assenza di evento.
Soffermandoci sul time-driven, si ha:
• time driven monotask: time driven e monotask si sposano bene, c’è un’unica deadline molto semplice
(cioè il campionamento successivo: ciclo completo è leggi input esegui task entro la fine di Ts
[Sample Time = tempo di campionamento] attua outputs etc…). Tempo di risposta max: 2Ts.
Scelta del tempo di campionamento: nel caso di applicazione trasformazionale ciclica Ts coincide
con il periodo di ripetizione dell’evento di innesco. Caso di applicazione reattiva mappata su pseudo-
trasformazionale ciclica 2Ts (tempo di reazione max) dev’essere inferiore al time scope nonché
alla distanza minima fra due eventi; inoltre dev’essere uguale o maggiore al tempo massimo di
calcolo necessario.
• time driven multitask: servono accorgimenti per minimizzare l’overhead e aumentare l’efficacia.
o a tempo di scansione unico analogo al caso monotask ma all’interno di un ciclo possono
essere eseguiti più task, l’importante è che si faccia in tempo. Questa scelta è semplice in
quanto si tratta di fare scheduling statico seriale, ma si gestiscono male task che non
richiedono tempi di intervento brevi e hanno carichi elevati.
o a più tempi di scansione (multipli o non multipli fra loro), per evitare sovra campionamento.
Più deadline da rispettare, schedulazione più complessa ma semplificabile se i tempi sono
armonici.
PRO del Time Driven CONTRO del Time Driven
Gestione a polling HW semplice Mancanza di flessibilità, gestione di eventi sporadici non
Semplificato riconoscimento degli eventi sfruttando ottimizzata, uniformità di campionamento (fs adattata
sincronizzazione con eventi periodici all’evento più frequente) sovradimensionamento dell’HW
Possibilità di usare schedulazione semplice a priorità statica, rispetto a quanto necessario
con singolo tempo di scansione o multipli (armonici)
Semplicità del sistema operativo - Predicibilità
SISTEMI DIGITALI REAL TIME PER IL CONTROLLO
Controllori embedded: dedicati ad una particolare applicazione, sono parte integrante del sistema. HW e SO
generalmente custom fortemente orientato all’applicazione specifica. Tipicamente sono dentro ai prodotti
finali. Sono realizzati da costruttori/realizzatori di sistemi di controllo HW, SO, SW tutti fatti dalla stess
azienda.
Controllori industriali: realizzati per coprire una vasta gamma di applicazioni di controllo (HW e SW general
purpose). Servono a controllare i sistemi di produzione. Sono realizzati da costruttori di controllori.
Tipicamente con architettura modulare a bus (all’interno dell’elaboratore); diffusi microprocessori e DSP,
meno i microcontrollori. Buona configurabilità e modularità, elevate prestazioni (possibile architettura
multiprocessore). Il SO e l’interfaccia di programmazione sono definiti dal costruttore del controllore e il
SO è tipicamente time driven. Le applicazioni sono definite dal progettista del sistema. Due grandi famiglie
di controllori industriali:
• PLC soft real time, soprattutto per controllo di sequenze e industria manifatturiera (produzione
di pezzi meccanici, componenti, elettrodomestici, farmaci, etc…).
• DCS per controllo digitale standard (PID), hard real time, utilizzo in industria di processo
(distribuzione gas, produzione carta, industria petrolifera, energetica…).
Sistema operativo PLC: deve poter garantire l’inizializzazione e la scansione ciclica (time driven), deve avere
la gestione automatica dell’I/O nonché quella dei timer e del counter.
Linguaggio di programmazione: inizialmente era ladder (schemi a Relais) o funzionale (schemi logici); più
recentemente è diventato un linguaggio vero e proprio.
CONTROLLO LOGICO
La progettazione di un controllo logico è un compito complesso ma cruciale per la buona riuscita del
progetto.
FASI:
• lavoro di gruppo per definire il progetto
• realizzazione: hardware (acquisto + progettazione) e software (progettazione che tiene conto delle
scelte HW)
• collaudo: fase costosa e delicata, conviene investire di più sulla progettazione per poi risparmiare in
collaudo
• creazione della documentazione
STRUMENTI DI MODELLAZIONE:
• descrizione letterale (a parole): lunga, imprecisa, poco funzionale
• descrizione logica: troppo particolareggiata
• diagrammi temporali: pesante, carente
• diagramma degli stati: interessante soluzione del tipo “reti logiche”, rappresentazione concentrata
ed efficace.
Nasce quindi lo standard IEC 61131-3 scopo: definire linguaggi standard per la programmazione di PLC.
Caratteristiche in comune fra i vari linguaggi proposti:
• functions: procedure prive di memoria che con certi IN producono certi OUT;
• function blocks: come sopra, ma con memoria;
• programs: insieme di unità e/o istruzioni che costituiscono l’implementazione del controllo di
sequenze di una macchina/impianto.
Sono stati proposti cinque linguaggi:
• due linguaggi testuali
• ST (Structured Text): linguaggio testuale pseduo-Pascal;
• IL (Instruction List): testuale, pseudo-Assembly;
• tre linguaggi grafici
• LD (Ladder Diagram): riprende gli schemi a relais, flusso di potenza da sx a dx elaborazione da
alto a basso;
• FBD (Function Block Diagram): grafico, riprende le logiche cablate, esecuzione dall’alto al basso;
• SFC (Sequential Function Chart): elevate potenza espressiva, leggibilità e semplicità e scarso
legame con l’implementazione ottimo per la rappresentazione funzionale del controllo di
sequenze!! È l’evoluzione del diagramma a stati e permette un alto grado di astrazione. Deriva
da Grafcet (francese).
SFC
Concetti base:
• Stato: l’evoluzione temporale del funzionamento di un impianto è un insieme di stati (o fasi, o
passi), i quali rappresentano una condizione operativa della macchina.
• Evento: occorrenza di una particolare condizione.
• Transizione (da uno stato ad un altro): provocata da un evento.
• Condizioni (di transizione): il verificarsi di una condizione corrisponde all’evento che determina il
passaggio ad un altro stato.
Sintassi e regole:
• Stati: ad ogni stato vanno associate le azioni da eseguire quando quello stato è attivo. Due stati
vanno sempre separati da una transizione.
• Transizioni: due transizioni successive non
separate da uno stato sono proibite.
• Stato attivo/inattivo: se lo stato è attivo le sue
azioni vengono eseguite. Possono esistere
più stati attivi contemporaneamente.
• Inizializzazione: occorre definire alcuni stati
di inizializzazione (attivi all’avviamento). Gli stati iniziali possono essere più d’uno).
• Abilitazione delle transizioni: una transizione si dice abilitata quando tutti gli stati precedenti alla
transizione sono attivi. Una transizione diventa attiva quando è abilitata e, contemporaneamente, la
condizione necessaria è vera.
• Cambio di stato: la transizione attiva determina il cambio di stato. Se più transizioni sono attive
contemporaneamente allora vengono simultaneamente superate.
Variabili:
• Step flag: statename.x è 1 quando lo stato è attivo;
• Step time: statename.t tempo trascorso dall’attivazione dello stato.
Azioni associate allo stato: possono essere
• non memorizzata (not stored): eseguita finché lo stato è attivo;
• pulsata (pulsed): eseguita solo una volta quando lo stato è attivato;
• set: eseguita finché non sopraggiunge il reset;
• reset: termina il set;
• time limited: termina l’esecuzione dopo un certo tempo;
• time delayed: inizia l’esecuzione dopo un certo tempo;
• combinazioni varie: stored/delayed, delayed/stored, stored/time-limited…
STRUTTURE DI COLLEGAMENTO
• Scelta alternativa: più transizioni collegate ad uno stesso passo. Il flusso segue un solo percorso (le
condizioni devono essere strutturate affinché siano mutualmente esclusive evitiamo ambiguità).
• Convergenza (singola): serve per chiudere la diramazione di più percorsi generati da una scelta
alternativa.
• Parallelismo (divergenza doppia): da una singola transizione a più passi percorsi
contemporaneamente.
• Sincronizzazione (convergenza doppia): da più passi ad una sola transizione. Si va oltre solo
quando convergono tutti i passi
Pila ISO-OSI: organizzata a stack (vantaggi: astrazione e modularità, rimpiazzabilità dei vari livelli,
interoperabilità fra i livelli), è un modello di riferimento per l’organizzazione HW/SW delle reti
informatiche. Ad ogni livello (layer) corrisponde una o più funzionalità: il layer n di un nodo si occupa di
interfacciarsi con quello n-1 e di comunicare con il layer n di un altro nodo mediante un protocollo. Le
prestazioni dei livelli inferiori condizionano quelle dei livelli superiori: se un livello deve fare una certa
cosa, devono esistere limiti inferiori alla velocità con cui tale cosa dev’essere fatta.
Ethernet livello 1 + livello 2: molto usata!
LIVELLO 1: fisico trasmette fisicamente il segnale. Vengono definite la topologia (a maglia, a bus, etc…)
e le caratteristiche del supporto fisico (propagazione guidata, libera, etc…), nonché i dettagli realizzativi
(materiali, tempi di propagazione, banda, numero di canali fisici o virtuali, numero di nodi agganciabili a
ciascun canale, etc…). Si sceglie inoltre la metodologia di rappresentazione dei bit (numero di livelli, forma
dei segnali, comunicazione S/P…).
LIVELLO 2: data link divisione del dato in frames (pacchetti conformi alle necessità HW della rete di
comunicazione), invio degli stessi e (in ricezione) spedizione degli ACK. Si inseriscono header (per
identificare mittente e destinatario) e terminator per ogni pacchetto; dopodiché si procede alla spedizione
dei singoli frames. Altre funzionalità tipiche: verifica dell’errore (CRC), notifica di ricezione (ACK),
ritrasmissione, meccanismi di controllo del flusso, accesso al canale fisico/virtuale per la trasmissione
(MAC: Medium Access Controller). Scelte per l’allocazione del canale:
• Statica: il tempo è diviso in quanti (TDMA: Time Division Multiple Access) ed ogni nodo può eseguire
l’accesso solo in corrispondenza del quanto associato al nodo stesso. Si previene conflitto, i tempi di
trasmissione massimi sono facili da calcolare, ma tempo di trasmissione massimo e medio
coincidono.
• Dinamica…
o A controllo centralizzato: un’entità suprema (master) controlla tutto. Si previene il conflitto,
tempi di trasmissione massimi e medi si calcolano facilmente e dipendono dalla politica del
master.
o A controllo decentralizzato: ogni nodo decide autonomamente se iniziare a trasmettere.
Possibile collisione e tempi di trasmissione difficilmente calcolabili.
Gestione controllata: sistemi a token ring/bus. Ogni nodo trasmette quando è in
possesso del token (abilitazione) e poi lo dà in giro quando ha finito di trasmettere.
A collisione: CSMA-CD (Carrier Sense Multiple Access: Collision Detection) ogni
nodo è in ascolto sul canale e, quando lo percepisce libero, può trasmettere.
Possibilità di collisione: tutti si bloccano. CSMA-CR (Carrier Sense Multiple Access:
Collision Resolution) alla collisione c’è un nodo che vince e prosegue.
LIVELLO 3: rete decisione del percorso (routing) da nodo a nodo.
LIVELLO 4: trasporto divisione/ricostruzione del dato in/da pacchetti (conformi alle necessità SW della
rete informatica).
LIVELLO 5: sessione gestione delle connessioni fra nodi (poco utilizzato).
LIVELLO 6: presentazione codifica del dato e verifica della correttezza (poco utilizzato controllo degli
errori ai livelli più bassi).
LIVELLO 7: protocolli dell’applicazione finale (HTTP, POP, FTP, …).
Per l’automazione spesso usati i fieldbus (PRO: semplicità del cablaggio, flessibilità): trasportano dati di
piccole dimensioni (misure, comandi, allarmi, piccoli messaggi). Standard di livello fisico: RS485.
Due tipi di messaggi:
• State messages: fotografano completamente la condizione di interesse di un certo istante. Sono di
solito periodici (periodo noto e deciso in funzione di accuratezza temporale necessaria); non si
richiede ACK. Il traffico è periodico anch’esso; è d’uopo sincronizzare la trasmissione periodica con
l’esecuzione ciclica dei task (si minimizza la latenza). Preferiti nei controlli per la loro semplice
gestione; tipica frequenza dei dati: 1-10 kHz.
• Event messages: fotografano la variazione dello stato. Di solito sono sporadici traffico non noto a
priori. In situazioni con vincoli RT è importante l’istante temporale in cui avviene la variazione
della condizione.
La divisione in pacchetti è praticamente assente. I messaggi vengono schedulati in base alla loro priorità e
all’ordine di invio.
Dai fieldbus si richiedono:
• Robustezza meccanica.
• Robustezza EM (spesso lavorano in ambiente ostile) Spesso si sceglie un supporto fisico solido e
guidato (e magari schermato). Codifiche più diffuse: a pochi livelli (2 o 3). Utilizzazione della
codifica di Manchester: il dato e il clock sono combinati per generare un’unica stringa di dati auto-
sincronizzati dividiamo ogni periodo di bit in due parti uguali (clock) 1 logico = alto nel primo
sottointervallo; 0 logico = l’opposto. PRO: maggiore robustezza e facilità di sincronizzazione.
CONTRO: serve una banda doppia (periodo dimezzato). Manchester differenziale: 1 logico =
transizione nel primo sottointervallo; 0 logico assenza di transizione nel primo sottointervallo.
PRO: sincronizzazione sempre garantita (cosa non ovvia col Manchester “liscio”).
• Soddisfacimenti di vincoli RT.
o Ritardo di trasmissione contenuto (elevata efficienza della rete), poco overhead.
o Determinismo: dati consegnati entro una deadline fissa. Tipicamente ci si basa sulla filosofia
del caso peggiore. Si considera la frequenza delle collisioni e si gestiscono gli errori di
trasmissione. Differenza tra caso medio e caso peggiore = jitter. Dev’essere il più basso
possibile: meglio reti non velocissime con poco jitter che reti velocissime e jitterose.
o Possibilità di sincronizzare i nodi (soprattutto nei sistemi di controllo distribuiti)
sincronizzazione dell’innesco dei tasks. (PRO: dà maggiori possibilità. CONTRO:
complesso).
Approfondimento sul MAC. Quando una stazione deve inviare i dati, ascolta il canale: se è libero
trasmette immediatamente, altrimenti ritenta in seguito (tempi d’attesa fissi o casuali). Due stazioni
comunicano contemporaneamente collisione! tutti smettono di trasmettere. Esistono fortunatamente
protocolli a rilevamento della collisione (Collision Detection) e a risoluzione della collusione (Collision
Resolution). In base a questi ultimi la stazione che vince l’arbitraggio prosegue nella trasmissione fino al
completamento. Per il rilevamento della collisione il frame deve avere una durata minima Tf maggiore del
caso peggiore del ritardo di rilevamento della collisione (caso peggiore: A e B sono ai due capi estremi della
linea, A parla e B inizia a trasmettere nell’esatto momento in cui sta arrivando il dato di A τ perché B
rilevi la connessione e altri τ perché la rilevi A). Se τ = tempo di propagazione del segnale, Tr = tempo di
reazione dei driver di linea si ha Tf ≥ 2 τ + Tr. Se Tf = Nbit * Tbit si ha τ < 0,5 (Nbit * Tbit – Tr).
A volte si ha anche la CSMA-BA (Bitwise Arbitration) vince l’arbitraggio chi sta spedendo un bit
“dominante” (si può scegliere 1 “dominante” e 0 “recessivo” o anche viceversa, basta saperlo a priori): in
tal caso, però, l’arbitraggio deve avvenire durante la trasmissione del bit (Tr dev’essere abbastanza basso).
CONDIZIONI Traffico basso (ciclico Traffico noto a priori Preferibilmente Poche stazioni e Traffico ciclico noto
o aciclico) (per poter calcolare il traffico noto traffico periodico (allineamento con le
DI BUON
latency delay) slot temporali del
FUNZIONAM. BUS)
ALTRO Elevata adattabilità, Efficienza piuttosto Scarsa efficienza,
pericolo di perdita bassa a causa dei possibili soluzioni
del token, non messaggi di ATDMA per
efficiente a basso autorizzazione migliorare
traffico e con molti master/slave
nodi
Approfondimento topologie (livello MAC).
• Token ring rete ad anello con connessioni punto-punto fra le varie interfacce. L’accesso al mezzo
avviene mediante token (sequenza speciale di bit che circola sulla rete). Quando una stazione vuole
spedire un frame, rimuove il token dall’anello e inizia a trasmettere il frame. Tutte le stazioni
ascoltano quindi il frame (la rete è di fatto broadcast). Quando il frame è trasmesso si rilascia il token.
Caratteristiche: controllo di accesso dinamico, decentralizzato e senza collisione (per trasmettere ci
vuole il token).
• Token bus come il token ring, ma si sta su un bus (mezzo trasmissivo comune a tutti i nodi). Le
stazioni sono organizzate in anello solo “logicamente” (ogni stazione ha un predecessore e un
successore). Vantaggio: la rottura di un elemento non interrompe la comunicazione fra tutti gli altri.
• Master/slave (polling): un nodo speciale (master) manda un messaggio esplicito al nodo che può
trasmettere. Trattasi di una soluzione dinamica, centralizzata e senza collisioni. Contro: se si rompe
il master siamo fregati.
• TDMA: divisione del tempo in slot. Un particolare terminale può comunicare solo “durante il suo
slot”.
o Sincrono: accesso è assegnato periodicamente a tutti i nodi in modo ciclico.
o Asincrono: accesso assegnato in base alla necessità.
Si richiede sincronizzazione dei clock dei nodi.
Application layer per i fieldbus: definisce cosa si scambiano i task di controllo e le specifiche che devono
garantire i livelli sottostanti. Tipi di messaggi: misure, comandi, allarmi, info non complesse.
Eventuali features:
• possibilità di settare la priorità dei messaggi;
• possibilità di marcare i messaggi (temporalmente o con numero di sequenza);
• bufferizzazione di ingresso e uscita con schedulazione.
Modelli di comunicazione utilizzati:
• Client-server: richieste specifiche da un client (es. PLC) a un server (es. sensore/attuatore).
• Producer-consumer (preferibile): messaggio a tutti e poi lo usa chi è veramente interessato.
Scelta interessante: ethernet per fieldbus. Rete broadcast, con diversi tipi di supporto e diverse velocità,
CSMA-CD. PRO: ethernet è veloce e costa poco, con switch poche collisione. CONTRO: overhead rilevante,
difficile avere determinismo. Conclusioni: ethernet è utile per controllo e supervisione (con poche richieste
realtime). Altra opzione: ethernet modificato per applicazioni industriali. Altra ancora (estrema!): fieldbus
wireless.
SISTEMI DI CONTROLLO DISTRIBUITO
Passaggio da sistemi centralizzati a distribuiti: PRO = distribuzione sui nodi di rete di “intelligenza di
calcolo”, elaborazione parallela, maggiore incapsulamento fra implementazione ed elaborazione. Una
soluzione distribuita consente di individuare più facilmente un malfunzionamento, nonché di isolarlo
senza creare danni al resto. CONTRO = maggiore complessità, problema della sincronizzazione.
Necessario scomporre il sistema in parti per individuare le problematiche e le soluzioni principali.
Cosa deve fare, in più, il livello dei controlli per poter supportare un modello distribuito?
• Data collection: misura di tutte le variabili di interesse, costruzione in memoria di un’immagine RT
delle grandezze.
• Signal conditioning: elaborazioni sul dato grezzo per trasformarlo in una grandezza utilizzabile.
• Alarm monitoring: rilevamento situazioni anormali.
• Funzioni di controllo: controllo in retroazione dell’impianto, dei vincoli RT.
• Man-Machine interaction: comunicazione tra l’operatore e la macchina.
Requisiti:
• Dependability: qualità del servizio, prestazioni
o Reliability: affidabilità (funzione probabilistica che esprime la probabilità che un sistema
garantisca il corretto funzionamento fino all’istante di tempo t).
o Safety: affidabilità relativa agli eventi di guasto critici, quelli che producono danni seri.
o Certification: processo di certificazione per qualificare l’impianto o la macchina.
o Maintainability: tempo necessario per riparare un sistema dopo un guasto.
o Availability: frazione di tempo in cui un sistema soggetto a riparazioni/rotture funziona
nell’unità di tempo.
o Security: capacità di impedire accessi non autorizzati alle informazioni contenute nel sistema
o ai servizi forniti.
Architettura:
NODO: computer autonomo che svolge una funzione del sistema distribuito. Ogni nodo contiene al suo
interno un calcolatore e funzioni di gestione per la comunicazione con altri nodi, nonché interfacce per la
trasmissione/ricezione su rete di comunicazione (mezzo trasmissivo + comunication controller).
Comunication-network interface (CNI): rappresenta il livello di scambio dei messaggi e deve
inviare/ricevere informazioni dai nodi (con limiti di tempo e di latenza). Deve gestire messaggi che
contengono informazioni relativi a eventi e messaggi che contengono informazioni di stato.
Rete di comunicazione: è una risorsa critica, perché la perdita di comunicazione comporta la conseguente
perdita di tutti i servizi. Il gateway ha un importanza cruciale perché adatta diverse strutture di rete fra loro.
Componibilità: importantissima da garantire l’integrazione di un nuovo componente non altera le
proprietà precedentemente testate sul componente. La rete di comunicazione gioca un importante ruolo nel
garantire la componibilità di un’architettura distribuita. La componibilità richiede che
• Ogni nodo e la CNI devono avere una dinamica completamente specificata nel tempo.
• L‘integrazione non deve modificare le proprietà temporali.
• Le proprietà temporali devono poter essere testate in maniera indipendente.
Scalabilità: i sistemi di controllo devono evolvere nel tempo (aggiunta di nuove funzionalità,
aggiornamento di quelle già esistenti). L’architettura time-triggered è scalabile perché il controllo dello
scambio dati è autonomo e non centralizzato.
Estendibilità: un’architettura scalabile non deve avere nessun collo di bottiglia né nella capacità di
elaborazione né in quella di comunicazione. Un’architettura distribuita è intrinsecamente
estendibile! Estendere significa anche incrementare la capacità di un sistema.
Complessità: si riferisce al numero di parti e al tipo/numero di interazioni che devono essere considerate
per comprendere la funzione del sistema. Si può ridurre grazie all’incapsulamento.
Gestione del tempo: importantissima per la sincronizzazione e per l’approccio time triggered. Approccio
preferibile: orologi locali ai vari elementi eventualmente sincronizzati per schedulare il time triggering di
ogni parte. Gestione del tempo condivisa serve a sincronizzare la gestione di elementi in modo componibile
e a ricostruire sequenze di eventi in modo distribuito.
Ordinamento degli eventi:
• Temporale sequenza di eventi ordinata temporalmente (problema: come modellare quelli
simultanei?)
• Causale dipendenza causale può essere di grande interesse quando si hanno catene di eventi che
dipendono l’uno dall’altro.
Standard per la misura del tempo:
• TAI Tempo Atomico Internazionale si basa sulla radiazione del Cesio 133 (scala “continua”).
• UTC Universal Time Coordinated derivato da osservazioni astronomiche (scala “discontinua”)
Misura del tempo:
• Orologio (clock) ogni nodo ha un suo clock, frequenza f z l’orologio funziona a un
sottomultiplo di questa frequenza Granularità dell’orologio quanti microtick (durata 1/ f z ) ci
sono fra due di questi sottomultipli. Drift dell’orologio: scostamento della sua frequenza rispetto a
quella del clock = microtick. La frequenza dell’orologio dipende da temperatura, qualità del quarzo,
tensione, etc…
• Timestamp clock indica il rilevamento e la marcatura dell’evento event da parte dell’orologio clock
(dicitura: clock(event) ).
• Offset fra due orologi errore di misura fra i due orologi in termini di microtick
In un sistema di elaborazione:
• Precisione di un insieme di orologi massimo offset fra ogni coppia di orologi.
• Accuratezza di un orologio rispetto al riferimento massimo offset fra l’orologio e il riferimento.
Si necessita di periodica ri-sincronizzazione! In un sistema distribuito ogni nodo ha il suo orologio quindi
bisogna fare il meglio che possiamo: dobbiamo introdurre una base dei tempi locale comune a tutti i nodi
(tempo globale) utilizzando n microtick di un orologio (= macrogranulo . Il tempo globale è ragionevole se
l’errore di sincronizzazione è al più 1 macrogranulo (se sono più di due l’errore di sincronizzazione può
diventare pericoloso per la corretta successione degli eventi non possiamo ricostruire l’ordine temporale
e due eventi possono anche essere rilevati in ordine opposto!). Il tick globale deve essere continuamente
risincronizzato per ottenere una ragionevole calibratura.
Limiti nella misura del tempo: se un singolo evento è osservato da due nodi può essere che le due
marcature siano diverse di un tick non è possibile ricostruire l’ordine.
Le marcature devono fra loro distare almeno 2 ticks!
Altra scelta: sincronizzazione tramite un master centrale, che invia periodicamente il valore del suo
contatore a tutti possibili problemi: la precisione di sincronizzazione dipende dalla rete che porta in giro
il segnale del master (jitter = pericolo!). Serve un master di backup in caso di guasti. La sincronizzazione degli
orologi può avvenire variando (provvisoriamente) la frequenza o modificando il numero di microtick
quanto basta per riportare il tutto al passo. Occorre un “server del tempo”.