Introduzione alle macchine a stati Ghisleri
Transcript
Introduzione alle macchine a stati Ghisleri
Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in sottoproblemi più piccoli. La divisione permette di realizzare uno schema a blocchi che risulta molto utile per l’analisi del problema e semplifica la risoluzione dello stesso. Ogni condizione nella quale può trovarsi il ciclo della lavorazione viene detta STATO; la scelta ed il numero degli stati varia da caso a caso ed in generale programmatori diversi possono usare stati di diversa complessità. A ogni stato è possibile pervenire tramite delle apposite condizioni di ingresso; ad ognuno degli stati è poi associata una Memoria la cui attivazione identificherà lo stato nel quale si trova la macchina via via che il ciclo prosegue; l’ingresso in uno stato deve chiaramente provocare il reset dello stato dal quale si proviene: non è infatti possibile trovarsi contemporaneamente in più stati (anche se per problemi semplici questo in genere non causa problemi, in casi di maggiore complessità può portare ad anomalie anche rilevanti); Si passa da uno stato all’altro mediante una Condizione, essa può essere realizzata mediante segnali di ingresso, contatti di temporizzatori oppure di contatori ecc… Ad ogni stato sono associate delle azioni: tali azioni possono interessare direttamente le uscite, oppure semplicemente creare delle condizioni di passaggio allo stato successivo; alla fine del ciclo si deve ritornare alla condizione iniziale (che in alcuni casi viene chiamata STATO0); a questo punto è quindi possibile ricominciare con il ciclo. - Schema di base di una macchina a stati Lo schema base di una macchina a stati si presenta come in figura: Condizione STATO 0 Macchina ferma Condizione Condizione STATO 1 STATO 2 Azioni in questo stato Azioni in questo stato - - - Inizio ciclo: è la condizione che permette di entrare nello Stato 1 della macchina; tipicamente essa è rappresentata dal pulsante di START; STATO 1: rappresenta una delle parti del ciclo di lavorazione che si deve implementare; tale parte viene identificata all’interno del programma per mezzo di una memoria (M1); Azioni all’interno degli stati: sono le azioni da implementare all’interno di ogni stato: possono essere ad esempio l’attivazione di una uscita, l’inserimento di un contatore o di un temporizzatore, ecc… Condizione: è la condizione che, se verificata, permette di passare dallo STATO1 allo STATO2; questa condizione può essere rappresentata da un ingresso, da un contatore o da un temporizzatore; tale condizione deve anche resettare lo STATO1 poiché non è possibile essere contemporaneamente all’interno di più stati; (in generale ogni condizione di passaggio da uno stato al successivo deve resettare lo stato precedente) STATO 2: è la seconda parte del ciclo; anche questa parte viene identificata all’interno del programma mediante una memoria (M2); Fine ciclo: è la condizione che permette di terminare il ciclo e tornare alla condizione di partenza (spesso si introduce anche uno STATO0 ovvero lo stato di riposo prima che inizi il ciclo; la fine del ciclo porta quindi allo STATO0.) Esercizio 1 Problema: si voglia realizzare il seguente ciclo: Alla pressione del tasto START il motore si avvii sino a raggiungere il finecorsa, arrivato a tale finecorsa il motore inverta il suo moto sino a tornare nel punto di partenza. - 1 Identificazione degli ingressi: START (I1)1, Finecorsa avanti (I2), Finecorsa indietro (I3) = 3 Ingressi; Identificazione delle uscite: Motore avanti (Q1), Motore indietro (Q2) = 2 uscite; Identificazione degli stati: Andata (STATO1), Ritorno (STATO2); Realizzazione della macchina a stati: È importante notare che in questo caso (estremamente comune) nello stato di riposo della macchina, il finecorsa I3 è comunque attivo (si veda il disegno); per essere certi che la macchina parta dallo STATO0 è quindi possibile introdurre un ulteriore condizione per l’avvio. START, I1 STATO 1 AVANTI STATO 0 Macchina ferma Fc avanti, I2 Set M1; Q1 attiva - Fc indietro, I3 STATO 2 INDIETRO Set M2; Reset M1; Q2 attiva Diagramma LADDER: In uno schema completamente corretto, sarebbe necessario che l’intervento dell’ingresso I3 possa provocare effetti sul sistema esclusivamente quando ci si trova nello STATO2; in questo caso non è necessario poiché è fisicamente impossibile che l’ingresso I3 sia attivo in istanti diversi che dalla posizione finale. Esercizio 2 Problema: si voglia realizzare il seguente ciclo: Alla pressione del tasto START il motore si avvii sino a raggiungere il finecorsa, arrivato a tale finecorsa il motore si arresti per 5 secondi, trascorsi i quali ritorni nel punto di partenza. - Identificazione degli ingressi: START (I1), Finecorsa avanti (I2), Finecorsa indietro (I3) = 3 Ingressi; Identificazione delle uscite: Motore avanti (Q1), Motore indietro (Q2) = 2 uscite; Identificazione degli stati: Andata (STATO1), Attesa (STATO2), Ritorno (STATO3)2; Realizzazione della macchina a stati: START, Fc. Avanti, - 2 Fine ciclo, I3 STATO 0 Macchina ferma I1 Tempo I2 STATO 3 STATO 1 AVANTI STATO 2 ATTESA INDIETRO Set M1, Uscita Q1 attiva Reset M1, Set M2, Timer attivo Reset M2, Set M3, Q2 attiva Diagramma LADDER: Si sarebbero potuti utilizzare ancora una volta 2 stati, ovvero inglobando gli stati 1 e 2. - Condizioni a scelta multipla È possibile creare una macchina che implementi delle condizioni a scelta multipla. Questo tipo di condizioni viene usato quando si ha a che fare con una macchina che può eseguire delle lavorazioni su dei pezzi: in questo modo, a seconda del tipo di pezzo che viene caricato (segnali di ingresso distinguono i pezzi) è possibile eseguire una operazione piuttosto che un’altra. Condizione STATO 0 Macchina ferma Condizione Condizione 1 STATO 2a STATO 1 Condizione 2 STATO 2b Condizione È importante notare che, una volta entrati nello STATO2a, un eventuale verificarsi della Condizione 2 non porta ad entrare nello STATO2b; anche le condizioni di uscita dagli STATI2 sono indipendenti, ovvero trovandosi nello STATO2a il verificarsi della condizione di uscita dallo STATO2b il sistema non deve andare nello STATO0. - Esercizio 1 Problema: si voglia realizzare il seguente ciclo: Alla pressione del tasto START il motore si avvii sino a raggiungere i 2 sensori, a questo punto se è attivo il “sensore basso” il motore torna indietro, se è attivo il “sensore alto” il motore aspetta 5 secondi e poi torna indietro, il motore si arresta una volta arrivato al “finecorsa indietro”. - Identificazione degli ingressi: START (I1), sensore basso (I2), sensore alto (I3), Finecorsa indietro (I4) = 4 Ingressi; Identificazione delle uscite: Motore avanti (Q1), Motore indietro (Q2) = 2 uscite; Identificazione degli stati: Avanti (STATO1), Ritorno (STATO2a)3, Attesa (STATO2b); Realizzazione della macchina a stati: START, I1 STATO 0 Macchina ferma I4 I2 STATO 2a INDIETRO (M2) STATO 1 AVANTI (M1) Tempo 2b ATTESA (M3) STATO I3 - 3 Diagramma LADDER: Non serve introdurre uno stato di ritorno apposito dopo l’attesa, infatti lo stato di ritorno già esiste. - Cicli con posizioni doppie (o multiple) Tipicamente un ciclo completo presenta delle posizioni doppie; si immagini ad esempio il ciclo rappresentato in figura: La sequenza che descrive questo è la seguente: alla pressione del pulsante di START parte il primo motore sino a raggiungere il finecorsa (I2); a questo punto parte il motore 2 sino a raggiungere il finecorsa (I4) per poi tornare indietro fino al finecorsa (I3); a questo punto il motore 1 ritorna al punto iniziale raggiungendo il finecorsa (I5). La cosa da notare in questo ciclo è che la condizione di I2 e I3 attivi si verifica 2 volte ma tale condizione, a seconda che il ciclo sia in fase di andata oppure di ritorno il sistema deve compiere una azione diversa. È quindi necessario in questo caso far capire al software in quale delle due condizioni si trova; questo viene fatto mediante lo STATO. Avremo quindi 2 STATI: uno STATO1 di andata e uno STATO2 di ritorno e in base a quale dei sue si trovi la macchina, la condizione (I2 e I3 attivi) eseguirà una istruzione piuttosto che un’altra. Tutte queste combinazioni e limitazioni vengono realizzate in modo automatico utilizzando gli STATI: poiché ad ogni stato è associata una memoria, le condizioni di uscita sarà posta in serie ad un contatto di tale memoria, in modo da poter agire esclusivamente in quello STATO e non in un altro: Analizzando lo schema in figura, si può notare che l’arrivo del pezzo in macchina (segnalato dall’ingresso I1) provoca effetti differenti a seconda dello STATO in cui ci si trova; in particolare se ci si trova nello STATO1 (M1) viene attivata l’uscita Q1, mentre se ci si trova nello STATO2 (M2) viene attivata l’uscita Q2. L’utilizzo degli stati e delle memorie diviene quindi indispensabile quando un sistema assume più volte la stessa posizione ma deve eseguire operazioni differenti. - Identificazione degli ingressi: START (I1), motore 1 avanti (I2), motore 2 indietro (I3), motore 2 avanti (I4), motore 1 indietro (I5) = 5 Ingressi; Identificazione delle uscite: Motore1 avanti (Q1), Motore1 indietro (Q2), Motore2 avanti (Q3), Motore2 indietro (Q4)= 4 uscite; - Identificazione degli stati: Avanti motore1(STATO1), Avanti motore2 (STATO2), Indietro motore2 (STATO3), Indietro motore1 (STATO4); Realizzazione della macchina a stati: START, STATO 0 Macchina ferma I1 Fine ciclo, I5 I4 I2 I3 STATO 1 AVANTI Motore1 STATO 2 AVANTI Motore2 STATO 3 STATO 4 INDIETRO INDIETRO Motore2 Motore1 Set M1, Q1 attiva Reset M1, Set M2, Q3 attiva Reset M2, Set M3, Q4 attiva Reset M3, Set M4, Q2 attiva Come si può notare dallo schema, l’ingresso I3 agisce sul sistema unicamente se esso si trova nello STATO3; se questo non avvenisse l’ingresso tenderebbe in ogni istante di far muovere indietro il motore1. - Diagramma LADDER: [DA INSERIRE] - Condizioni di salto È possibile inserire delle condizioni che permettono di saltare da uno stato ad un altro non adiacente: questo può avvenire in lavorazioni nella quali in base al tipo di oggetto si debba effettuare oppure no una determinata operazione; si pensi ad esempio al caso in cui un pezzo debba essere raffreddato tramite ventola (STATO2 nello schema sotto) oppure debba andare direttamente in lavorazione (STATO3) Fine ciclo STATO 0 Macchina ferma START Condizione 1-3 Condizione 1-2 STATO 1 - Diagramma LADDER: Condizione 2-3 STATO 2 STATO 3