Strumenti Utente

Strumenti Sito


esercizi_plc

Esercizi PLC

Raccomandazioni generali

  • salvare tutti i progetti in Z: (cartella di rete personale) all'interno di in una cartella plc aggiungendo il proprio cognome al nome del progetto o esercizio
  • cominciare il progetto dall'assegnazione delle variabili, usando nomi simbolici descrittivi (eventualmente aggiungendo un commento esplicativo)
  • assegnare un nome descrittivo a tutti i segmenti (eventualmente aggiungendo un commento esplicativo)
  • verificare il corretto collegamento tra PLC e PC (spostando il mouse sull'icona della rete in basso a destra devono essere presenti due reti, quella d'istituto e quella che collega PC e PLC)
  • rilevare sempre la CPU (dopo aver controllato che siano presenti tutte e due le interfacce di rete nel PC)
  • verificare il corretto cablaggio della console (osservare i LED degli ingressi del PLC)
  • verificare il corretto funzionamento del programma
    • usando la console (ingressi) e osservando i LED (uscite) sul PLC
    • controllando le variabili nelle tabelle e i valori logici nell'editor del programma usando la modalità online
  • non modificare mai le impostazioni di rete del PLC

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:

  • pag. 7, 8 e 9: descrizione della CPU e ciclo di scansione
  • pag. 12: aree di memoria del PLC e immagini di processo
  • pag. 13: linguaggio ladder come schema funzionale
  • pag. 18: interfaccia del programma TIA Portal
  • pag. 23: rilevamento CPU
  • pag. 29-34: esempio marcia-arresto con auto-ritenuta
  • pag. 37-38: caricamento del programma e collaudo con la contattiera
  • pag. 41-50: esempio marcia-arresto con temporizzatore
  • pag. 54: controllo del programma con la modalità online

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

  • aggiungiamo una lampada che segnali l'attivazione della pompa (H1 e Q0.1)
  • attiviamo un lampeggiatore se i sensori di livello producono la combinazione errata (acqua nel sensore superiore ma non in quello inferiore) 1)

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:

  • se la fotocellula esterna è attiva e non c'è un auto in uscita imposta il merker auto in ingresso
  • quando c'è un auto in ingresso e c'è un fronte di discesa della fotocellula interna resetto il merker (l'auto è passata ed è entrata nel parcheggio)
  • quando il merker è impostato attivo la segnalazione H1_park

Per l'uscita si procede allo stesso modo.

FIXME soluzione nascosta

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

  • se è presente la scatola (SQ1), il conteggio non è terminato (M_conteggio) e non è stato premuto il pulsante di arresto (M_arresto) imposta il merker che aziona il motore (M_nastro)
  • se è premuto il pulsante di arresto (SB1) settare il merker M_arresto
  • se è posizionata una nuova scatola (fronte SQ1) resettare il merker M_arresto
  • il conteggio avanza ad ogni fronte del sensore bottiglia (SQ2)2); a conteggio terminato settare il merker M_conteggio che segnala che la scatola è piena
  • il conteggio si resetta quando si preme il pulsante di reset (SB2) o quando si toglie la scatola (SQ1)
  • abilitare il motore (KM1) in base al merker M_nastro

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:

  • le uscite dipendono solo dallo stato in cui si trova il sistema
  • il passaggio da uno stato ad un altro (transizioni) avviene quando si verificano determinati eventi (attivazione di determinati ingressi)

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

dove:

  • i cerchi individuano i quattro possibili stati e le uscite che andranno attivate in quel determinato stato
  • le frecce (linee orientate) indicano le transizioni e l'evento (l'ingresso) che le abilita

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):

  • mettere la spunta su Attiva l'utilizzo del byte del merker di clock
  • indicare il valore 1 nel campo indirizzo del byte del merker di clock (bisogna fare attenzione a non sovrascrivere i merker già definiti con indirizzo del byte zero)
  • caricare l'impostazione hardware sulla CPU cliccando col tasto destro sulla CPU e selezionando Carica nel dispositivo→configurazione hardware

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:

  • migliora la leggibilità
  • permette di riutilizzare parti del programma
  • facilità la manutenzione del programma
  • agevola la scrittura del programma, scomposto in parti più semplici

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

Nel nostro caso useremo:

  • una funzione per gestire il passaggio da uno stato ad un altro, usando dei merker abilitare le uscite e gli stati successivi
  • una funzione per gestire il lampeggiatore
  • una funzione per abilitare le uscite

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:

  • FC1: gestione_cancello
  • FC2: gestione_lampeggiatore
  • FC3: gestione_uscite

Osservazioni

  • nell'inversione del motore è sempre bene mettere un interblocco - nel programma ma anche direttamente nei contattori - che impedisca la chiusura contemporanea dei due contattori
  • può essere utile inserire un ritardo all'eccitazione dei due contattori in modo che l'apertura sia istantanea e la chiusura leggermente ritardata (frazioni di secondo); questo riduce le sollecitazioni meccaniche del sistema oltre ad essere un'ulteriore misura che impedisce la chiusura contemporanea dei due contattori

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

  • copio i progetti
  • se PLC simulabile (FW ≥ 4, S7-1200-qualcosa-40-qualcosa) si simula da Tia Portal
  • se PLC uguale a quello del prof. si carica il progetto (configurazione HW compresa) e si collauda
  • se PLC diverso si crea un progetto nuovo (simulato o su CPU) e si copiano
    • tabella variabili
    • main e blocchi di programma
    • blocchi dati (si riesce a copiarli solo se è già presente la Blocchi di Sistema nella vista ad albero Navigazione del progetto; se non c'è buttare un timer nel main e cancellarlo insieme al suo blocco dati per crearla)

Per simulare:

  • CPU serie 40
  • replico la configurazione hw nelle proprietà
  • copio le variabili (esclusi merker di sistema e di clock) nella tabella standard
  • copio (drag & drop) i blocchi dati sui blocchi dati della nuova CPU
  • apro i blocchi dati (altrimenti non vengono associati alle relative istruzioni nel main)
  • carico sw e hw nella nuova CPU (non serve cancellare la vecchia)
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
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information
esercizi_plc.txt · Ultima modifica: 2019/10/14 12:06 da admin