Indice

Esercizi PLC

Raccomandazioni generali

Tutorial Siemens

Per prendere dimestichezza col PLC è bene cominciare col documento Getting Started con l'S7-1200 do Siemens, che guida nella realizzazione si un automatismo marcia-arresto di un motore usando il PLC.

Le parti più interessanti sono:

Controllo livello in un serbatoio

Specifiche

Una pompa azionata da un motore riempie un serbatoio fino a che il sensore di livello SL2 non segnala che il serbatoio è pieno. Quando il livello scende la pompa non si aziona finché il livello non scende sotto al sensore di livello SL1. I sensori segnalano la presenza di liquido con un valore logico 0. Il motore si aziona con la bobina di un contattore KM1.

Due pulsanti abilitano o disabilitano il riempimento automatico: SB1 “start” e SB2 “stop”.

Tabella variabili

nome indirizzo commento
SB1%I0.0avvio riempimento automatico NA
SB2%I0.1stop riempimento automatico NA
SL1%I0.2sensore livello inferiore (0 = presenza liquido)
SL2%I0.3sensore livello superiore (0 = presenza liquido)
KM1%Q0.0contattore motore pompa
M_on%M0.0merker abilitazione riempimento automatico
M_pompa%M0.1merker attivazione motore pompa

Variante con segnalazione

In questo file zip una possibile soluzione.

Esercizio 10 pag. 283

Specifiche

Parcheggio con passaggio per una sola auto in ingresso o in uscita. Fotocellule all'ingresso e all'uscita del passaggio per rilevare l'ingresso o l'uscita delle auto. Segnalazione all'interno e all'esterno per segnalare che il passaggio impegnato da un'auto.

Tabella variabili

nome indirizzo commento
BF1_stradaI0.0 fotocellula lato esterno (strada)
BF2_parkI0.1 fotocellula lato interno (parcheggio)
H1_park Q0.0 segnalazione passaggio impegnato lato interno
H2_strada Q0.1 segnalazione passaggio impegnato lato esterno
M_inM0.0 merker auto in ingresso
M_outM0.1 merker auto in uscita
M_FB1_NM0.2 merker per il fronte di discesa di BF1_strada
M_FB2_NM0.3 merker per il fronte di discesa di BF2_park

Logica

Ingresso auto:

Per l'uscita si procede allo stesso modo.

soluzione esercizio

Esercizio 14 pag. 288

Specifiche

Linea confezionamento bottiglie con nastro trasportatore. Il nastro funziona (contattore KM1) se è presente una scatola (sensore SQ1) e si arresta quando sono passate 10 bottiglie (sensore SQ2) o se viene tolta la scatola. Un pulsante di emergenza (SB1_stop) arresta l'impianto. Un altro pulsante (SB2) resetta il conteggio delle bottiglie.

Tabella variabili

nome indirizzo commento
SQ1I0.0sensore presenza scatola
SQ2I0.1sensore passaggio bottiglia
SB1I0.2pulsante arresto emergenza
SB2I0.3pulsante azzeramento conteggio
KM1Q0.0bobina motore nastro
M_nastroM0.0merker abilitazione nastro
M_conteggioM0.1merker scatola piena (conteggio terminato)
M_stopM0.2merker arresto di emergenza
M_SQ1M0.3merker fronte SB1 (nuova scatola)

Logica

Applicazioni per progetti 8: impianto di verniciatura

Specifiche

Posizionando il pezzo davanti a F1 parte il nastro verso sinistra e si aziona la pistola. Quando il pezzo arriva a F2 si ferma la pistola e parte il soffiatore S2 che funziona per 10 secondi. Poi il nastro si ferma e riparte verso destra dopo 15 secondi. Quando il pezzo oltrepassa F2 riparte la pistola che si ferma quando raggiunge F1. In seguito parte il soffiatore S1 che resta attivo per 10 secondi dopodiché si ferma anche il nastro. Il ciclo riparte posizionando un nuovo pezzo davanti a F1.

diagramma temporale

Indirizzamento

nome indirizzo commento
F1I0.0fotocellula destra
F2I0.1fotocellula sinistra
KM-SQ0.0contattore marcia verso sinistra
KM-DQ0.1contattore marcia verso destra
PQ0.2pistola verniciatrice
S1Q0.3soffiatore destra
S2Q0.4soffiatore sinistra

Qui una file zippato con una possibile soluzione.

Cancello automatico

Cancello automatico

Specifiche

Un cancello automatico scorrevole è mosso da un motore asincrono (motoriduttore) con un movimento aCremagliera. L'apertura del cancello viene comandata da un pulsante e la chiusura avviene automaticamente dopo un tempo pari a 10 secondi. Il movimento del motore avviene in due direzioni (apertura e chiusura) e si arresta quando si attivano due finecorsa normalmente chiusi che segnalano la completa apertura e chiusura. Una fotocellula apre automaticamente il cancello se viene rilevato un ostacolo durante il movimento di chiusura. Un segnalatore lampeggiante si accende e spegne con una frequenza di 1 Hz durante il movimento del cancello.

Automa

Il cancello automatico può essere considerato un semplice automa e può essere studiato considerando i possibili stati assunti dal sistema e la sequenza con cui si succedono. Facciamo riferimento alla macchina di Moore, dove:

Nel nostro caso l'automa può essere descritto con il seguente diagramma degli stati: diagramma degli stati del'automa cancello automatico

dove:

Il diagramma degli stati permette di descrivere in maniera chiara, sintetica ed univoca la sequenza di azioni dell'automatismo. Nella fase di progettazione la stesura del diagramma degli stati è solo la prima fase ma è molto utile perché permette di rappresentare facilmente e in maniera grafica le specifiche del del problema mettendo in risalto il comportamento sequenziale del sistema e la logica del controllo. Una volta individuati gli stati, le azioni associate agli stati e gli eventi che abilitano le transizioni tra stati occorre tradurre la logica descritta dal diagramma degli stati in un programma. Il procedimento è abbastanza naturale: partendo da uno stato iniziale (con un'eventuale azione associata) si individuano le condizioni che abilitano il passaggio allo stato successivo; poi si procede allo stesso modo per tutti gli stati seguenti.

Merker di sistema e merker di clock

Tra le configurazioni hardware che è possibile impostare nella CPU troviamo anche i merker di sistema e i merker di clock.

Tra i merker di sistema risulta particolarmente interessante quello di primo ciclo (Firstscan). E' un merker che risulta attivo solo nel primo ciclo di sistema ed è particolarmente utile per fissare le impostazioni iniziali del sistema, ad esempio per settare lo stato iniziale di un automatismo descritto come una macchina a stati finiti.

I merker di clock, se abilitati, mettono a disposizione una serie di merker che cambiano stato (da 0 a 1) con una frequenza fissa e preimpostata (da 0,5 a 10 Hz). Risultano particolarmente utili quando serve un segnale intermittente nel programma. In questo esercizio li useremo per gestire il lampeggio della lampada che segnala il movimento del cancello.

Per attivare questi merker selezionare la CPU e nella scheda Proprietà (in basso):

Programmazione modulare

In questo esercizio può sembrare superfluo ma proveremo a scrivere il programma in maniera modulare. Il programma principale OB1 (Main) richiama altri sottoprogrammi (le funzioni3) FC1, FC2 e FC3) che gestiscono compiti specifici. Questa soluzione:

Questa soluzione di solito risulta conveniente anche se il programma risulterà più lungo, o più complesso (o semplicemente verboso).

Nel nostro caso useremo:

Tabella variabili

nome indirizzo commento
SB1I0.0pulsante di apertura
SQ1I0.1finecorsa NC di apertura
SQ2I0.2finecorsa NC di chiusura
BF1I0.3fotocellula
KM1Q0.0contattore motore in fase di apertura
KM2Q0.1contattore motore in fase di chiusura
H1Q0.2lampeggiatore che segnala il movimento del cancello
M_apreM0.0merker apertura
M_chiudeM0.1merker chiusura
M_clockM1.5merker di clock a 1 Hz

Funzioni

Da OB1 (Main) chiamare le funzioni:

Osservazioni

Soluzione

Una possibile soluzione è quella proposta nelle schermate seguenti.

OB1 - Main:

OB1 - Main

FC1 - Gestione cancello:

FC1 - azionamento cancello

FC2 - gestione lampeggiatore:

FC2- lampeggiatore

FC3 - gestione uscite:

FC3 - attivazione uscite

Collaudo

Per il collaudo la sequenza per il contatti della console - da spostare manualmente - è la seguente:

contatto variabile cancello chiuso apertura cancello aperto chiusura
I0.0SB1 (pulsante apertura)01 poi 000
I0.1SQ1 (finecorsa NC cancello aperto) 1101
I0.2SQ2 (finecorsa NC cancello chiuso)0111
I0.3FB1 (fotocellula attiva se ostacolo)0000

Dove 0 significa contatto aperto (levetta indietro) e 1 contatto chiuso (levetta avanti). Bisogna partire dallo stato cancello chiuso.

Per il test della fotocellula attivare FB1 durante la chiusura (indicata dal merker) e riportarla a 0; il cancello passa da chiusura ad apertura.

Se si fa confusione con gli stati e i contatti riportare gli interruttori nella posizione iniziale (cancello chiuso) poi arrestare e riavviare la CPU con i bottoni nella barra degli strumenti.

Variante SFC

Diagramma SFC dell'automatismo

FIXME spiegazione

Correzione esercizi

Per simulare:

1)
per farlo serve un merker di clock
2)
non serve il contatto -(P)-, lo fa automaticamente il contatore
3)
i blocchi funzionali - che hanno un blocco dati associato e possono memorizzare il loro stato - non servono in questo caso