Automazione dei Sistemi a Eventi Discreti Prof. Luca Ferrarini Policollege – giugno 2022 Automazione dei sistemi a eventi discreti • Introduzione sui sistemi di produzione discreta • Esempi di problemi di controllo logico • Due modelli matematici utili: – Automi a stati finiti – SFC • Esempi di rappresentazione con automi e SFC • Il controllore logico (PLC) Prof. Luca Ferrarini 2 Sistemi di produzione Nel mondo industriale vi sono svariati impianti dedicati alla produzione di beni, detti anche genericamente «prodotti» Prof. Luca Ferrarini 3 Sistemi di produzione Nel mondo industriale vi sono svariati impianti dedicati alla produzione di beni, detti anche genericamente «prodotti» Sistemi di produzione (discreta) Prof. Luca Ferrarini 4 Sistemi di produzione Nel mondo industriale vi sono svariati impianti dedicati alla produzione di beni, detti anche genericamente «prodotti» Sistemi di produzione (discreta) Sistemi (fabbriche automatizzate) dove si lavorano materie prime per arrivare a prodotti finiti, dopo una serie di successive lavorazioni attraverso macchine, sistemi di trasporto e di immagazzinamento Prof. Luca Ferrarini 5 Sistemi di produzione Nel mondo industriale vi sono svariati impianti dedicati alla produzione di beni, detti anche genericamente «prodotti» Sistemi di produzione (discreta) Sistemi (fabbriche automatizzate) dove si lavorano materie prime per arrivare a prodotti finiti, dopo una serie di successive lavorazioni attraverso macchine, sistemi di trasporto e di immagazzinamento … svariate tipologie! Prof. Luca Ferrarini 6 Sistemi di produzione – i sistemi di trasporto Nastri, rulliere, gru, portali, ecc.. Prof. Luca Ferrarini 7 Sistemi di produzione – i sistemi robotizzati Sistemi per la manipolazione, trasporto, e talvolta lavorazione impianto di bugnatura e foratura cerchi moto Prof. Luca Ferrarini 8 Sistemi di produzione – le macchine operatrici Sistemi per l’esecuzione in automatico di lavorazioni con utensili Prof. Luca Ferrarini 9 Sistemi di produzione – il centro di lavoro Prof. Luca Ferrarini 10 Compiti del controllore Cosa deve fare il controllore in questi impianti? • rispettare le sequenze di lavoro desiderate • coordinare e sincronizzare le attività dei vari componenti del sistema: • Es: se hai già riempito un magazzino, non puoi caricare un nuovo prodotto evitare situazioni di blocco • Es: se devi dare al robot un comando per caricare un pezzo grezzo in macchina, assicurati prima che la macchina sia pronta per il caricamento evitare occupazioni contemporanee di macchine e dispositivi • Es: prendi un utensile, usalo, riponilo al suo posto Es: verifica che il sistema non vada in stallo per troppe regole! gestire situazioni anomale (es: guasti) Es: identificare un guasto e reagire di conseguenza Prof. Luca Ferrarini 11 Problema del controllo i C u P y Sp m • impianto modello del sistema da controllare (P) • dato P e data una specifica del comportamento del sistema in anello chiuso (Sp), determinare un controllore C in modo tale che il sistema in anello chiuso si comporti “il più possibile” in modo simile a quanto specificato • possibilmente anche a fronte di guasti prevedibili • trovato C, lo realizzeremo con dispositivi industriali (PLC) Prof. Luca Ferrarini 12 Esempio di sistema da controllare Sistema con due macchine di lavoro (M1 e M2), 2 carrelli (AGV1 e AGV2) AGV1 M1 M2 AGV2 Flusso di lavorazione (macchine) = sequenziale: AGV1 M1 M2 AGV2 Prof. Luca Ferrarini 13 Esempio di sistema da controllare Sistema con due macchine di lavoro (M1 e M2), 2 carrelli (AGV1 e AGV2) Usiamo un robot per le operazioni di carico e scarico delle macchine R AGV1 M1 M2 AGV2 Flusso di lavorazione (macchine) = sequenziale: AGV1 M1 M2 AGV2 Prof. Luca Ferrarini 14 Esempio di sistema da controllare Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2 R AGV1 M1 M2 AGV2 Flusso di lavorazione (macchine) = sequenziale: AGV1 M1 M2 AGV2 Prof. Luca Ferrarini 15 Esempio di sistema da controllare Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2 R AGV1 M1 M2 AGV2 Flusso di lavorazione (macchine) = sequenziale: AGV1 M1 M2 AGV2 Prof. Luca Ferrarini 16 Esempio di sistema da controllare Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2 R A AGV1 M1 M2 AGV2 Flusso di lavorazione (macchine) = sequenziale: AGV1 M1 M2 AGV2 Prof. Luca Ferrarini 17 Esempio di sistema da controllare Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2 R AGV1 M1 M2 AGV2 Cosa ci aspettiamo che succeda? Prof. Luca Ferrarini 18 Esempio di sistema da controllare Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2 R A B C AGV1 M1 M2 AGV2 Ora 2 scelte: Soluzione 1 = scarico M2 Soluzione 2 = scarico M1 Luca Ferrarini - Automazione Industriale 19 Esempio di sistema da controllare Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2 R C AGV1 M1 B M2 AGV2 A Ora 2 scelte: Soluzione 1 = scarico M2 Soluzione 2 = scarico M1 Luca Ferrarini - Automazione Industriale 20 Esempio di sistema da controllare Il Robot R può: scaricare M1 su M2, oppure scaricare M2 su AGV2 R C AGV1 M1 B M2 AGV2 A Adesso il sistema è in deadlock (blocco critico)! Ora 2 scelte: Ora è completamente bloccato! Tuttavia, può temporaneamente muoversi Soluzione 1 = scarico M2 Soluzione 2 = scarico M1 Luca Ferrarini - Automazione Industriale 21 Necessità di un formalismo rappresentativo E’ evidente che: • Mi serve un modo per rappresentare questi comportamenti • Questo «modo» in generale si chiama «modello matematico» • Il modello matematico deve: – Catturare gli elementi essenziali del comportamento – Permettermi di eseguire opportune analisi – Prototipare soluzioni se l’analisi identifica comportamenti anomali – Permettermi di tornare nel mondo reale e di implementare le soluzioni prototipate • Modello matematico: sistemi ad eventi discreti Prof. Luca Ferrarini 22 Necessità di un formalismo rappresentativo Sistemi ad eventi discreti • Sistemi dinamici, ovvero modelli matematici che evolvono sulla base di uno «stato» • Sono guidati dalla occorrenza (accadimento) di eventi – «Se accade questo, allora devo poi fare quell’altro» – Se il carrello è arrivato a fine corsa, allora comanda il robot per il suo caricamento – Se la macchina utensile ha terminato la lavorazione, allora scarica il prodotto – Ecc… Prof. Luca Ferrarini 23 Necessità di un formalismo rappresentativo Sistemi ad eventi discreti Ci sono tantissimi modelli all’interno di questa categoria, tutti molto simili funzionalmente, ma ognuno caratterizzato dal mettere in evidenza alcuni aspetti: • Automi a stati finiti • Reti di Petri • SFC (Sequential Function Charts) • Linguaggi formali • Logiche e predicati Prof. Luca Ferrarini 24 Necessità di un formalismo rappresentativo Sistemi ad eventi discreti Ci sono tantissimi modelli all’interno di questa categoria, tutti molto simili funzionalmente, ma ognuno caratterizzato dal mettere in evidenza alcuni aspetti: • Automi a stati finiti per analisi di raggiungibilità e deadlock • Reti di Petri • SFC (Sequential Function Charts) per comandi e misure • Linguaggi formali • Logiche e predicati Prof. Luca Ferrarini 25 Necessità di un formalismo rappresentativo Sistemi ad eventi discreti Ci sono tantissimi modelli all’interno di questa categoria, tutti molto simili funzionalmente, ma ognuno caratterizzato dal mettere in evidenza alcuni aspetti: • Automi a stati finiti per analisi di raggiungibilità e deadlock • Reti di Petri • SFC (Sequential Function Charts) per comandi e misure • Linguaggi formali • Logiche e predicati Prof. Luca Ferrarini 26 Automi – esempio intuitivo Il robot non sta facendo nulla (idle) Ora, salda! Prof. Luca Ferrarini 27 Automi – esempio intuitivo Ora, salda! Prof. Luca Ferrarini 28 Automi – esempio intuitivo salda Prof. Luca Ferrarini 29 Automi –rappresentazione grafica «salda» Robot idle • Stati • Transizioni • Eventi Prof. Luca Ferrarini Robot salda 30 Automi –rappresentazione grafica evento a q0 transizione q1 stati • Stati: descritti da nomi • Transizioni = archi orientati (frecce) • Eventi (associati a transizioni) identificati con lettere (label) Prof. Luca Ferrarini 31 Automa – definizione formale Un automa A è descritto da 4 quantità: • QA insieme degli stati; • ΣA insieme degli eventi (alfabeto); • iA stato iniziale ( • è la funzione di transizione (gli archi): per ogni stato ed evento mi dice quale è il prossimo stato. Prof. Luca Ferrarini ) 32 Linguaggio di un automa • Gli automi posso anche essere studiati tramite «linguaggi» • Il linguaggio L(A) di un automa A è l’insieme di tutte le sequenze di eventi eseguibili dall’automa stesso Prof. Luca Ferrarini 33 Esempio Automa B: • QB = {q0, q1, q2} • ΣB = {a, b} q1 q0 • iB = q0 • q2 B = {((q0,a), q1), ((q1,b), q2), ((q2,a),q0)} • L(B) = {ε, a, ab, aba, abaa, abaab,…} Linguaggio infinito, anche se l’automa è finito! Prof. Luca Ferrarini 34 Esempio Automaton B: • QB = {q0, q1, q2} • ΣB = {a, b} q1 q0 • iB = q0 • q2 B = {((q0,a), q1), ((q1,b), q2), ((q2,a),q0)} • L(B) = {ε, a, ab, aba, abaa, abaab,…} Notation * = infinite repetitions (aba)* = (ε, aba, abaaba, …) Prof. Luca Ferrarini • L(B) = {(aba)*, (aba)*a, (aba)*ab} 35 Necessità di un formalismo rappresentativo Sistemi ad eventi discreti Ci sono tantissimi modelli all’interno di questa categoria, tutti molto simili funzionalmente, ma ognuno caratterizzato dal mettere in evidenza alcuni aspetti: • Automi a stati finiti per analisi di raggiungibilità e deadlock • Reti di Petri • SFC (Sequential Function Charts) per comandi e misure • Linguaggi formali • Logiche e predicati Prof. Luca Ferrarini 36 Tapparella automatica (1) Esempio: Vogliamo descrivere il funzionamento di un sistema di tapparelle automatiche. Le tapparelle devono scendere quando il sole tramonta e devono risalire quando il sole sorge. Componenti: • Motore per alzare ed abbassare le tapparelle • Sensore di «tapparella alzata» • Sensore di «tapparella abbassata» • Sensore di luce esterna Prof. Luca Ferrarini 37 Tapparella automatica (2) (*Tapparella alzata*) 1 Tramonto 2 (*Abbassando*) Comando: abbassa tapparella Abbassata (*Tapparella abbassata*) 3 Alba 4 (*Alzando*) Comando: alza tapparella Alzata Prof. Luca Ferrarini 38 Elementi di base dell’SFC (1) PASSI • Passo iniziale (con azioni associate) 1 (* Commento *) Azione; • Passo (con azioni associate) 2 (* Commento *) Azione; Prof. Luca Ferrarini 39 Elementi di base dell’SFC (2) TRANSIZIONI Transizione (con condizioni associate) (* Commento *) Condizione 123 Prof. Luca Ferrarini 40 Elementi di base dell’SFC (3) REGOLE DI COMPOSIZIONE – I collegamenti sono sempre orientati dall’alto verso il basso – È possibile solo saltare da una transizione ad un passo (e da un passo ad una transizione) Prof. Luca Ferrarini 41 Elementi di base dell’SFC (4) REGOLE DI EVOLUZIONE – Situazione iniziale: caratterizzata dai passi iniziali, che per definizione sono attivi all'inizio dell’esecuzione del programma SFC – Abilitazione di una transizione: una transizione è detta abilitata quando tutti i passi precedenti connessi alla corrispondente transizione sono attivi – Attivazione di una transizione: una transizione è detta attiva quando è abilitata e la condizione associata alla transizione vale TRUE (superamento) – Modifica dello stato dei passi: l'attivazione di una transizione, simultaneamente, porta allo stato attivo i passi immediatamente successivi ed allo stato inattivo i passi immediatamente precedenti – Attivazione simultanea di transizioni: se più transizioni risultano attive nello stesso istante allora vengono tutte superate contemporaneamente Gestione delle eccezioni: – Attivazione e disattivazione simultanea di un passo: se, durante un'operazione, un passo viene contemporaneamente attivato e disattivato, la priorità viene data all'attivazione (importante per le azioni PULSE) Prof. Luca Ferrarini 42 Elementi di base dell’SFC (7) STRUTTURE CLASSICHE: SCELTA 1 (*Inizializzazione*) OR-DIVERGENZA condizione1 11 … condizioniVarie NOT(condizione1) &&(altreCondizioni) 12 … condizioniVarie OR-CONVERGENZA Prof. Luca Ferrarini 43 Elementi di base dell’SFC (8) STRUTTURE CLASSICHE: PARALLELISMO 1 (*Inizializzazione*) condizioniVarie 11 AND-DIVERGENZA 12 … condizioniVarie 12 condizioniVarie 22 … condizioniVarie Prof. Luca Ferrarini … … AND-CONVERGENZA 44 Facciamo qualche esempio concreto Analizziamo ora con un paio di esempi come si usano i due modelli che abbiamo visti (Automi e SFC). Per gli automi vedremo un sistema produttivo con due macchine. Per l’SFC vedremo l’esempio del carrello. Partiamo dal secondo esempio, più semplice da trattare. Prof. Luca Ferrarini 45 Il carrello (1) • • • • Ogni volta che l’operatore aziona il pulsante di START, bisogna portare il carrello a destra. Quando il carrello è arrivato a destra, bisogna caricare il carrello ribaltando il serbatoio. Alla fine del caricamento il carrello deve essere riportato a sinistra. Qualcun altro si occuperà di svuotare il carrello e di riempire nuovamente il serbatoio. Prof. Luca Ferrarini 46 Il carrello (2) Sensori (misure) Attuatori (comandi) - START: inizia la sequenza - SX: vai a sinistra - FS: fine corsa sinistro - DX: vai a destra - FD: fine corsa destro - RIB: ribalta serbatoio - FR: fine riempimento Prof. Luca Ferrarini 47 Il carrello (3) Attuatori (comandi) - SX: vai a sinistra - DX: vai a destra - RIB: ribalta serbatoio Sensori (misure) - START: inizia la sequenza - FS: fine corsa sinistro - FD: fine corsa destro - FR: fine riempimento 1 START 2 DX FD 3 RIB FR 4 SX FS Prof. Luca Ferrarini 48 Il carrello (4) 1 E se il carrello fosse già a destra? START & NOT(FD) 2 DX START & FD OR-DIVERGENZA FD 3 RIB FR 4 SX FS Prof. Luca Ferrarini 49 Il carrello (5) 1 Alternativa: START Per definire delle azioni di inizializzazione da eseguire ad ogni START? 2 NOT(FD) 3 DX FD FD 4 RIB FR 5 SX FS Prof. Luca Ferrarini 50 Il carrello (6) Sensori (misure) Attuatori (comandi) - FS: fine corsa sinistro - SX: vai a sinistra - FD: fine corsa destro - DX: vai a destra - FR: fine riempimento - RIB: ribalta serbatoio - START: inizia la sequenza Ad ogni attuatore corrisponde un sensore… perché? Prof. Luca Ferrarini 51 Esempio extra: stazione di lavoro (1) • M1 C1 • • M2 C2 R • • Il robot R preleva il prodotto dal carrello C1 e lo deposita sulla macchina M1 La macchina M1 effettua la lavorazione Il robot R trasferisce il prodotto dalla macchina M1 alla macchina M2 La macchina M2 effettua la lavorazione Il robot R trasferisce il prodotto finito sul carrello C2 Comandi: Sensori (misure): - CM1: carica M1 - SM2: scarica M2 - TM2: trasferisci da M1 a M2 - LM1: lavorazione M1 - LM2: lavorazione M2 - Prof. Luca Ferrarini FCM1: fine caricamento M1 FLM1: fine lavorazione M1 FTM2: fine trasferimento da M1 a M2 FLM2: fine lavorazione M2 FSM2: fine scaricamento M2 C1: C1 presente C2: C2 presente 52 Esempio extra: stazione di lavoro (2) M1 C1 1 M2 C2 R C1 2 Comandi: - CM1: carica M1 SM2: scarica M2 TM2: trasferisci da M1 a M2 LM1: lavorazione M1 LM2: lavorazione M2 FCM1 3 C1: C1 presente C2: C2 presente FCM1: fine caricamento M1 FLM1: fine lavorazione M1 FTM2: fine trasferimento da M1 a M2 FLM2: fine lavorazione M2 FSM2: fine scaricamento M2 Prof. Luca Ferrarini NLM1 | LM1 FLM1 4 Sensori (misure): - NCM1 | CM1 NTM2 | TM2 FTM2 5 NLM2 | LM2 FLM2 & C2 6 NSM2 | SM2 FSM2 53 Facciamo qualche esempio concreto Vediamo ora l’applicazione del formalismo degli automi. Vedremo un sistema produttivo con due macchine operatrici e un sistema di trasporto (lo stesso di prima, ma con nomi un po’ diversi). Prof. Luca Ferrarini 54 Esempio delle 2 machine con automi Input buffer M1 M2 Output buffer AGV Impianto composto da: • Due macchine (M1 e M2) che lavorano un pezzo alla volta • Un Automated Guided Vehicle (AGV) che fa carico / scarico • Buffer di ingresso e uscita Prof. Luca Ferrarini 55 Example 1 – plant modeling (automata) Input buffer M1 M2 Output buffer AGV Eventi: • Load M1 (l1) - caricamento della macchina M1 • Unload M1 (u1) - scaricamento della macchina M1 • Load M2 (l2) - caricamento della macchina M2 • Unload M2 (u2) - scaricamento della macchina M2 • Load output buffer (lb) - deposita il prodotto finito all’uscita Prof. Luca Ferrarini 56 Example 1 – plant modeling (automata) M1 F1 O1 F1 = M1 free O1 = M1 occupied Prof. Luca Ferrarini 57 Example 1 – plant modeling (automata) M1 Q1 = {F1, O1} Σ1 = {l1, u1} F1 O1 i1 = F1 1 = {((F1,l1), O1), ((O1,u1), F1)} L(M1) = {(l1 u1)*, (l1 u1)*l1} F1 = M1 free O1 = M1 occupied Prof. Luca Ferrarini 58 Example 1 – plant modeling (automata) M1 Q1 = {F1, O1} Σ1 = {l1, u1} F1 O1 i1 = F1 1 = {((F1,l1), O1), ((O1,u1), F1)} L(M1) = {(l1 u1)*, (l1 u1)*l1} F1 = M1 free O1 = M1 occupied E la lavorazione della macchina M1 dov’è? Prof. Luca Ferrarini 59 Example 1 – plant modeling (automata) M2 Q2 = {F2, O2} Σ2 = {l2, u2} F2 O2 i2 = F2 2 = {((F2,l2), O2), ((O2,u2), F2)} L(M2) = {(l2 u2)*, (l2 u2)*l2} F2 = M2 free O2 = M2 occupied Prof. Luca Ferrarini 60 Example 1 – plant modeling (automata) AGV P1 V P2 V = AGV idle (free) P1 = AGV ha un prodotto proveniente da M1 P2 = AGV ha un prodotto proveniente da M2 Prof. Luca Ferrarini 61 Example 1 – plant modeling (automata) AGV Q3 = {V, P1, P2} Σ3 = {u1, u2, l2, lb} P1 V P2 i3 = V = {((V,u1), P1), ((V,u2), P2), ((P1,l2), V), ((P2,lb), V)} L(AGV) = {((u1 l2)*(u2 lb)*)*, ((u1 l2)*(u2 lb)*)*u1, ((u1 l2)*(u2 lb)*)*u2} V = AGV idle (free) P1 = AGV ha un prodotto proveniente da M1 P2 = AGV ha un prodotto proveniente da M2 Prof. Luca Ferrarini 62 Example 1 – plant modeling (automata) Il modello complessivo è dato dalla combinazione dei 3 automi dei componenti. Tale combinazione è detta composizione sincrona, in cui gli eventi comuni si eseguono contemporaneamente (in sincronia, dunque), mentre eventi non comuni vengono eseguiti e basta (in realtà la formulazione matematica è un po’ più complessa). Ottengo in questo modo un automa unico che rappresenta l’intero sistema, considerando tutte le giuste combinazioni di eventi anche quando ci sono più prodotti nel sistema, evitando di far fare a me a mente i calcoli di tutte le combinazioni possibili Prof. Luca Ferrarini 63 Example 1 – plant modeling (automata) M1||M2||AGV O1F2V P1 V P2 F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V F1 F2 Prof. Luca Ferrarini O1 O2 64 Example 1 – plant modeling (automata) Main production cycle: O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini 65 Example 1 – plant modeling (automata) Main production cycle: 1. Load M1 O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini 66 Example 1 – plant modeling (automata) Main production cycle: 1. Load M1 2. AGV unloads M1 O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini 67 Example 1 – plant modeling (automata) Main production cycle: 1. Load M1 2. AGV unloads M1 3. AGV loads M2 O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini 68 Example 1 – plant modeling (automata) Main production cycle: 1. Load M1 2. AGV unloads M1 3. AGV loads M2 4. AGV unloads M2 O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini 69 Example 1 – plant modeling (automata) O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini Main production cycle: 1. Load M1 2. AGV unloads M1 3. AGV loads M2 4. AGV unloads M2 5. AGV loads output buffer 70 Example 1 – plant modeling (automata) O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini Main production cycle: 1. Load M1 2. AGV unloads M1 3. AGV loads M2 4. AGV unloads M2 5. AGV loads output buffer (cycle is repeated) 71 Example 1 – plant modeling (automata) O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini Second possible cycle: 1. Load M1 2. AGV unloads M1 3. Input buffer loads M1 4. AGV loads M2 5. AGV unloads M2 6. AGV loads output buffer (repeat from step 2) 72 Example 1 – plant modeling (automata) O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini Third possible cycle: 1. Load M1 2. AGV unloads M1 3. AGV loads M2 4. Load M1 5. AGV unloads M2 6. AGV loads output buffer (repeat from step 2) 73 Example 1 – plant modeling (automata) O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini Fourth possible cycle: 1. Load M1 2. AGV unloads M1 3. AGV loads M2 4. AGV unloads M2 5. Load M1 6. AGV loads output buffer (repeat from step 2) 74 Example 1 – plant modeling (automata) O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini Deadlock! 75 Example 1 – plant modeling (automata) Il deadlock è causato dal fatto che l’AGV è occupato con un prodotto di M1 e M2 è occupata: attesa circolare! O1F2V F1F2P1 O1F2P1 F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 F1F2V Prof. Luca Ferrarini 76 Example 1 – plant modeling (automata) Il deadlock è causato dal fatto che l’AGV è occupato con un prodotto di M1 e M2 è occupata: attesa circolare! O1F2V F1F2P1 O1F2P1 F1F2V F1O2V O1O2V F1O2P1 F1F2P2 O1F2P2 O1O2P1 Prof. Luca Ferrarini Soluzione: IF (macchine busy) THEN (vieta comando u1) 77 Realizzione del controllore logico Giunti a questo punto, sappiamo come modellare il comportamento di un sistema ad eventi discreti, capire se ci sono problemi, simularlo, identificare soluzioni. Come faccio a realizzare le mie logiche di controllo? Si utilizzano dei controllori dedicati (PLC, programmable logic controllers), la cui programmazione ed utilizzo è normato da uno standard internazione IEC 61131. Prof. Luca Ferrarini 78 Cos’è un PLC? Hardware di base Architettura OS & Funz. IEC61131 Conclusioni E’ una apparecchiatura elettronica programmabile per il controllo di macchine e processi industriali. La struttura hardware a bus interno ha dato origine all’attuale PC Sostituto della logica cablata e dei quadri di controllo a relé Riduzione tempi e costi Prof. Luca Ferrarini 79 Architettura Hardware Introduzione Architettura OS & Funz. Memoria Moduli di IO • RAM • ROM • Digitale • Analogica Alimentazione • AC • DC BUS ESTERNO BUS INTERNO PLC – Programmable Logic Controller IEC61131 Conclusioni Altri Moduli Interfacce Operatore • Rete • CNC • PID • Ecc. 80 Architettura OS e Funzionale Introduzione Hardware di base IEC61131 Conclusioni Come altri controllori di impianti e processi industriali, il PLC si collega in “retroazione” rispetto ad essi: PLC Schede Input CPU Memorie Schede Output Altre Schede Sensori Attuatori Processo PLC – Programmable Logic Controller 81 Architettura OS e Funzionale Introduzione Hardware di base IEC61131 Conclusioni Il Ciclo del PLC In quanto dispositivo a segnali campionati, il PLC durante il funionamento continua ad eseguire ciclicamente 3 fasi fondamentali: Tempo di Ciclo Lettura Ingressi Esecuzione Programma Scrittura Uscite Nota: all’interno del tempo di ciclo vi sono anche le esecuzioni di istruzioni del sistema operativo!! PLC – Programmable Logic Controller 82 Architettura OS e Funzionale Introduzione Hardware di base Conclusioni IEC61131 Il Ciclo del PLC valore basso valore alto segnale di ingresso non rilevato viene letto in questi istanti, e vale sempre “basso” fase di lettura ingressi fase di esecuzione del programma PLC – Programmable Logic Controller tempo fase di scrittura delle uscite sistema operativo 83 Architettura OS e Funzionale Introduzione Hardware di base Conclusioni IEC61131 Il Ciclo del PLC valore basso valore alto segnale di ingresso rilevato! viene letto in questi istanti, e cambia valore fase di lettura ingressi fase di esecuzione del programma PLC – Programmable Logic Controller tempo fase di scrittura delle uscite sistema operativo 84 IEC61131 Introduzione Hardware di base Architettura OS & Funz Conclusioni Normativa internazionale pubblicata la prima volta nel 1993 sull’uso dei PLC (seconda edizione 2003) Part 1: General information Part 2: Equipment requirements and tests Part 3: Programming languages Part 4: User guidelines Part 5: Messaging service specification Part 6: Communications via fieldbus (Awaiting completion of fieldbus standards.) Part 7: Fuzzy control programming Part 8: Guidelines for the application and implementation of programming languages Scopi principali: Ridurre il divario con le moderne tecniche informatiche Formalizzare in modo più astratto ed essenziale i problemi di automazione e controllo Proporre standard nel campo del controllo logico, per favorire la riusabilità della conoscenza e una reale concorrenza tra i costruttori PLC – Programmable Logic Controller 85 IEC61131-3 – POU Introduzione Hardware di base Architettura OS & Funz Conclusioni I moduli del software di controllo, che nello standard sono detti POU (Program Organisation Unit), sono: Programmi Blocchi Funzione Funzione Facile (ri)utilizzo di porzioni di progetti precedentemente sviluppati o acquistati sul mercato sotto forma di librerie PLC – Programmable Logic Controller 86 IEC61131-3 – Linguaggi Introduzione Hardware di base Conclusioni Architettura OS & Funz Strutturazione interna di un POU Sequential Function Charts (SFC) Ladder Diagrams (LD) Grafici Function Block Diagrams (FBD) Instruction List (IL) Structured Text (ST) Testuali Nota: il SFC è concepito come uno strumento di organizzazione interna di una POU, pur essendo a tutti gli effetti uno strumento formale ed eseguibile. PLC – Programmable Logic Controller 87 Conclusione • Cosa abbiamo imparato oggi? Prof. Luca Ferrarini 88