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