Luigi Piroddi

Documenti analoghi
Traduzione degli SFC in Ladder Logic

Luigi Piroddi

Luigi Piroddi

Corso di Automazione industriale

Luigi Piroddi

Corso di Automazione industriale

Luigi Piroddi

Luigi Piroddi

Luigi Piroddi

PREMESSA In questa lezione analizziamo le diverse modalità di programmazione del PLC, soffermandoci in particolare sulle programmazioni KOP e AWL.

Corso di Automazione industriale

Note sull utilizzo di ISAGRAF V. 3.31

Reggio Calabria, 29 Aprile 2009 ING.VALERIO SCORDAMAGLIA

Sequential Functional Chart

Sistemi di Elaborazione delle Informazioni

Programmazione dei PLC in linguaggio Ladder

POLITECNICO DI MILANO. V Facoltà di Ingegneria. Ladder Diagram. Sistemi ad Eventi Discreti

Elementi di memoria Ciascuno di questi circuiti è caratterizzato dalle seguenti proprietà:

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Luigi Piroddi

Automa a Stati Finiti (ASF)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Macchine sequenziali. Automa a Stati Finiti (ASF)

Ladder Diagram 16/03/2012. Sommario POLITECNICO DI MILANO. Introduzione. Elementi Base. Elementi Dinamici. Temporizzazione e Contatori

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti e connessioni. Capitolo 3

Reti sequenziali. Nord

Linguaggi di Programmazione

Luigi Piroddi

Reti e Sistemi per l Automazione LADDER LOGIC. Stefano Panzieri Ladder Logic - 1

Componenti principali

Luigi Piroddi

AB=AB. Porte logiche elementari. Livello fisico. Universalità delle porte NAND. Elementi di memoria: flip-flop e registri AA= A. Porta NAND.

Caratteristiche principali. Introduzione. Area Dati e convenzioni tipiche. Elementi di Base. Elementi di Base. Elementi di Base

Calcolatori Elettronici Lezione 4 Reti Sequenziali Asincrone

Reti Logiche T. Esercizi reti sequenziali sincrone

Sistemi ad Eventi Discreti

Linguaggi, Traduttori e le Basi della Programmazione

Corso di Automazione industriale

Luigi Piroddi

Circuiti sequenziali: macchine a stati finiti

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Dispositivi per il controllo

Corso di Informatica di Base

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Luigi Piroddi

Luigi Piroddi

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Primi passi col linguaggio C

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

Modellazione di Workflow mediante le Reti di Petri. Prof. Giancarlo Fortino

Corso di Calcolatori Elettronici I Elementi di memoria ing. Alessandro Cilardo

Rappresentazione dei numeri interi in un calcolatore

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Capitolo IX. Convertitori di dati

Flip-flop, registri, la macchina a stati finiti

Esempi di possibili domande d esame.

Domande di Reti Logiche compito del 29/1/2016

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Tecnica basata su Relazioni I/O Circuito di Clock

Transcript:

Automazione industriale dispense del corso 21. Implementazione di automi e reti di Petri piroddi@elet.polimi.it

Problemi generali di implementazione Come per l SFC, anche per gli automi e le reti di Petri (modelli astratti, asincroni e, nel secondo caso anche paralleli) si pone il problema dell implementazione su macchine generiche per l elaborazione dell informazione, che operano in modo sequenziale e sincrono, come il PC. l implementazione del controllore dovrà essere sufficientemente più rapida del sistema da controllare, in modo da poter reagire prontamente agli ingressi che arrivano da esso (non si devono perdere eventi) se dovessero scattare due eventi nello stesso tempo di ciclo, come si comporta il PC? E in grado di processarli entrambi? In generale, i modelli devono essere congegnati in modo tale che: ogni evento generato dal processo sia accettabile dal PC, quando accade (la transizione di stato corrispondente deve poter avvenire al momento giusto) se accadono più eventi in un tempo di ciclo devono essere tutti accettabili dal PC e processabili correttamente nello stesso tempo di ciclo 21. Implementazione di automi e reti di Petri 2

Rispetto agli schemi SFC, gli automi e le reti di Petri sono modelli più astratti (sono pensati per un interprete ideale, in grado di farli evolvere in modo infinitamente rapido, quando richiesto) e quindi la traduzione in linguaggi di basso livello, come il D, è meno immediata: gli automi e le reti di Petri sono in generale modelli non deterministici in un automa, uno stato può avere più nodi successori, di modo che sono possibili diverse transizioni di stato in una rete di Petri, più transizioni possono essere abilitate in uno stato al contrario, un controllore deve reagire in modo deterministico la traduzione di un automa o una rete di Petri dovrà quindi essere compatibile con una delle possibili evoluzioni del modello ed evitare di tralasciare qualche transizione di stato il tempo non è modellizzato non sappiamo quando avviene una transizione di stato un controllore deve invece reagire in tempi prefissati 21. Implementazione di automi e reti di Petri 3

Implementazione di automi Il modo più semplice di tradurre un automa è quello di riformularlo come SFC, e poi (se necessario) tradurre quest ultimo in D. X1 e1 T1 1 X2 e2 T2 X1 e1 T1 2 e1 X3 T1 e3 T3 X2 X2 e2 T2 3 e2 T2 X1 X3 X2 X3 e3 T3 1 e3 T3 X1 X3 21. Implementazione di automi e reti di Petri 4

Implementazione di reti di Petri In primo luogo, occorre estendere la rete di Petri, associandovi ingressi e uscite: tipicamente, ingressi e uscite sono eventi associati alle transizioni (v. modello a 2 eventi) ciò non esclude però altre soluzioni, come l associazione di segnali di comando ai posti e delle sole misure alle transizioni (v. SFC) implementazione della rete dovrà quindi: accettare le misure dell impianto controllato quando l impianto genera un evento, il controllore deve essere pronto ad accettarlo emettere i comandi prima possibile se dal modello risulta che un comando può essere emesso, non ci sono motivi per dilazionarlo 21. Implementazione di automi e reti di Petri 5

Algoritmo di evoluzione Anche qui si deve utilizzare un algoritmo di evoluzione che interpreti correttamente le regole di evoluzione della rete di Petri. idea base è che prima il controllore accetta informazioni dall impianto e quindi, sulla base del nuovo stato, prende decisioni aggiornate. Inizializzazione algoritmo di evoluzione è diviso in due porzioni: accettazione degli eventi non controllabili (misure) produzione degli eventi controllabili (comandi) Ad ogni ciclo vengono compiuti i seguenti quattro passi: lettura ingressi determinazione e scatto delle transizioni non controllabili determinazione e scatto delle transizioni controllabili aggiornamento segnali di uscita ettura ingressi Scatto transizioni non controllabili Scatto transizioni controllabili Aggiornamento uscite 21. Implementazione di automi e reti di Petri 6

Osservazioni: cosa accade se ci sono più transizioni abilitate nelle porzioni non controllabili o controllabili? quale ordine di scatto va imposto? Faremo l ipotesi che non esista un ordine di scatto migliore di un altro. Più precisamente, assumeremo che lo stato assunto dalla rete di Petri sia indipendente dall ordine con cui essa esegue una sequenza di eventi non controllabili. 21. Implementazione di automi e reti di Petri 7

Esempio 1 b 1 b 3 b 1 b 3 O 1 O 3 O 1 O 3 e 1 e 3 e 1 e 3 R 1 R 2 R 1 R 2 b 2 b 4 b 2 b 4 O 2 O 4 O 2 O 4 e 2 e 4 e 2 e 4 Nello stato rappresentato nella figura a sinistra, il sistema è in grado di accettare gli eventi non controllabili e 1, e 3 ed e 4 (2 volte), rispettivamente associati alle terminazioni delle operazioni O 1, O 3 ed O 4. Qualunque sia l ordine di scatto delle transizioni associate, lo stato finale sarà sempre lo stesso (figura a destra). 21. Implementazione di automi e reti di Petri 8

Esempio 2 n esempio di rete che non soddisfa l ipotesi è il seguente: e nc1 e nc2 e nc2 e nc1 e c1 Gli eventi e nc1 e e nc2 sono non controllabili, mentre e c1 e e c2 sono controllabili. Se e nc1 e e nc2 sono letti nello stesso tempo di ciclo, l ordine con cui vengono interpretati dipende dal codice e a seconda dell implementazione scelta verrà emesso e c1 oppure e c2. e c2 21. Implementazione di automi e reti di Petri 9

Esempio 3 n altra situazione non accettabile è quella riportata in figura: e nc1 e c1 In effetti, questa è una struttura ambigua: occorre aspettare l emissione di e nc1 oppure si deve emettere e c1? e se si stabilisce di attendere e nc1, per quanto tempo deve durare l attesa? Faremo perciò anche una seconda ipotesi, e cioè che non esistano conflitti tra eventi controllabili e eventi non controllabili. 21. Implementazione di automi e reti di Petri 10

Traduzione di reti di Petri in D Per semplicità supporremo inizialmente che la rete sia binaria. altrimenti bisogna introdurre opportuni contatori per gestire le marcature dei posti e operatori di confronto per valutare l ammissibilità di transizioni Associazioni: ad ogni posto si associa un bit di memoria che ne rappresenta lo stato ad ogni transizione si associa un istruzione (un rung) che ne rappresenta lo scatto gli eventi controllabili sono associati a bobine gli eventi non controllabili sono associati a contatti Entrambi i tipi di eventi sono modellizzati come impulsi di durata pari ad un tempo di ciclo. 21. Implementazione di automi e reti di Petri 11

Idea base: p 1 enc1 t 1 e nc1 P3 p 2 p 3 P3 p 1 p 2 t 1 e c1 p 3 ec1 21. Implementazione di automi e reti di Petri 12

Supponiamo di avere una rete di Petri contenente una sequenza di transizioni tra cui alcune associate allo stesso evento non controllabile. Se accade l evento non controllabile e il programma D lo consuma più volte, come se ne fossero accaduti più di uno contemporaneamente (nello stesso tempo di ciclo), allora si dice che ha avuto luogo l effetto valanga, che rappresenta un comportamento scorretto, non coerente con la rete originaria. p 1 enc1 e nc1 p 2 enc2 P3 e nc2 p 3 P3 enc1 P4 e nc1 P3 p 4 21. Implementazione di automi e reti di Petri 13

Nell esempio, per marcare p 4 devono accadere gli eventi e nc1, e nc2 ed e nc1, esattamente in quest ordine. Invece, se si verificassero solo e nc1 ed e nc2 si dovrebbe raggiungere la marcatura in cui c è un gettone in p 3. Se si implementa la rete come nello schema D a destra e gli eventi e nc1 ed e nc2 capitano nello stesso tempo di ciclo, con = 1, c è continuità logica in tutti e 3 i rung e alla fine il bit associato a p 4 risulta settato a 1. evento e nc1 è stato consumato 2 volte! Rimedi: cambiare l ordine dei pioli (per esempio invertire l ordine rispetto alla sequenza della rete di Petri); non è detto che esista sempre un ordine che risolva tutti i possibili problemi di questa natura copiare l ingresso associato ad un possibile effetto valanga in una variabile temporanea, da usare in luogo dell ingresso vero, così da poterla resettare appena dopo averla consumata (in modo che possa essere consumata una volta sola) 21. Implementazione di automi e reti di Petri 14

Implementazione con le variabili temporanee enc1 enc1w P3 enc1w enc1w...... enc1w P4 P3 enc1w 21. Implementazione di automi e reti di Petri 15

Algoritmo generale di traduzione Il codice D sarà costituito dalle seguenti porzioni consecutive. inizializzazione creazione delle copie degli eventi soggetti all effetto valanga accettazione eventi non controllabili reset delle variabili di comando generazione delle variabili di comando 21. Implementazione di automi e reti di Petri 16

inizializzazione W1 100 B 100 JMP W1... Pn Vengono settati a 1 i bit associati ai posti inizialmente marcati. 21. Implementazione di automi e reti di Petri 17

creazione delle copie degli eventi soggetti all effetto valanga e nc1 e nc1w e ncn... e ncnw 21. Implementazione di automi e reti di Petri 18

accettazione eventi non controllabili start_nc a variabile temporanea X registra l eventuale B X scatto di una transizione associata ad un evento non controllabile (ogni piolo che enc1 rappresenta una transizione setta X = 1). X enc2w X P3 X enc2w start_nc JMP Se alla fine delle istruzioni della sezione X = 1, si riesegue l intera sezione. algoritmo continua a consumare eventi non controllabili finché ce ne sono. In questo modo, se ci sono due transizioni in sequenza associate a due eventi non controllabili che capitano entrambi nello stesso tempo di ciclo, scattano entrambe, indipendentemente dall ordine in cui sono eseguiti i due rung corrispondenti. 21. Implementazione di automi e reti di Petri 19

reset delle variabili di comando... ec1 ecn 21. Implementazione di automi e reti di Petri 20

generazione delle variabili di comando start_c Anche in questo caso, si usa una variabile temporanea B Y Y per registrare l eventuale scatto di una transizione associata ad un evento controllabile (ogni piolo che rappresenta una transizione setta Y = 1). Y Y ec1 P3 Y ec2 start_c JMP Se alla fine delle istruzioni della sezione Y = 1, si riesegue l intera sezione. algoritmo continua a generare eventi controllabili finché è possibile. Agli eventi controllabili sono associate bobine a ritenzione, altrimenti se lo stesso evento comparisse in due rung di cui uno attivo e uno no, la sua effettiva esecuzione dipenderebbe dall ordine relativo dei due rung! sando bobine a ritenzione, il rung inattivo non ha alcun effetto sulla bobina associata all evento, ed esso viene sicuramente eseguito per effetto del rung attivo. 21. Implementazione di automi e reti di Petri 21

Osservazioni a rete di Petri comunica con l esterno attraverso eventi, mentre il sistema controllato trasmette e riceve segnali. Occorre quindi un interfaccia per consentire lo scambio di informazioni tra i due elementi. con il metodo illustrato vengono generati impulsi di durata pari ad un tempo di ciclo per gli eventi controllabili occorrerà allora un ulteriore sezione del codice D che trasformi tali impulsi in segnali adatti a pilotare effettivamente gli attuatori analogamente, anche gli eventi non controllabili sono impulsi di durata pari ad un tempo di ciclo occorrerà allora un ulteriore sezione del codice D che rilevi i fronti di salita/discesa sui segnali di ingresso effetto valanga non si presenta se tutti gli eventi non controllabili sono distinti tra loro, o se sono alternati ad eventi controllabili come accade seguendo il paradigma di rappresentazione delle attività con modelli a 2 eventi. 21. Implementazione di automi e reti di Petri 22

Traduzione di reti di Petri non binarie Se la rete non è binaria, occorre implementare la marcatura di un posto con dei contatori e le condizioni di scatto con comparatori (marcatura peso arco). idea generale è la seguente: t 1 p 1 t 2 2 3 e nc1 e c1 e NC1 GEQ 3 ADD 2 SB 3 e C1 e transizioni temporizzate si implementano con semplici timer. 21. Implementazione di automi e reti di Petri 23