Università degli Studi di Modena e Reggio Emilia Automation
Robotics and System
CONTROL Università degli Studi di Ferrara
PLC
Esercitazione 5
PLC
Carroponte
-Un diagramma degli stati per gestire l’intera macchina
-Libreria per gestione nastri
Esercitazione 4
Indice
I moduli del sistema di controllo del Carroponte
Esercitazione 5
-Libreria per gestione organo di presa -Librerie grafiche di CodeSys
Un modulo
סּ Riceve delle richieste attraverso dei comandi
סּ Fornisce un servizio e al termine segnala l’avvenuta
esecuzione al richiedente attraverso un acknoledge (conferma)
סּ Può essere istanziato più volte
סּ Può essere istanziato più volte
סּ Diagramma degli stati:
Attesa di riceve un comando Esecuzione comando comando acknoledge
Un modulo
סּ Ha un’interfaccia di comandi e acknoledges per
comunicare con gli altri moduli.
סּ In CodeSys è possibile creare un tipo di dato definito
dall’utente, che consiste in: dall’utente, che consiste in:
– DataType
– Struct
Un esempio – Una
automazione a carro ponte
סּ Descrizione:
un sistema di movimentazione a carro ponte ha come scopo la movimentazione di merci in senso verticale e orizzontale.
Spostare merci da un nastro trasportatore di arrivo ad un nastro trasportatore di partenza evitando un ostacolo
posto tra i due.
• Quali sono i moduli? • nastro di ingresso • nastro di uscita • gripper
Carroponte
nastro di nastro di gripper sensore nastro di ingresso nastro di uscitaUn esempio – Una
automazione a carro ponte
סּ Ogni modulo ha un diagramma degli stati che
definisce il funzionamento di una parte della macchina in modo indipendente dagli altri moduli
סּ Chi controlla la macchina?
– è necessario definire un modulo Macchina che impartisce i comandi ai moduli e gestisce la loro impartisce i comandi ai moduli e gestisce la loro sincronizzazione si chiama Machine Controller
Un esempio - Una
automazione a carro ponte
סּ Implementa la funzione principale della
macchina
סּ Diagramma degli stati
Attesa di riceve un comando Avvio il START comando Avvio il nastro di ingresso
Pezzo uscito Avvio il gancio per fare la
presa Avvio il nastro
di uscita
Modulo NASTRO
Un modulo ha:סּ – Stato interno, memorizzato in variabili private
CurrentState, NextState
סּ – Comportamento incapsulato in una parte di codice privata
struttura CASE …OF
סּ – Interfaccia “software” con gli altri moduli di controllo isolata
variabili del modulo DataType
סּ – Interfaccia “hardware” con la parte fisica privata del modulo meccatronico
configurazione di un mapping I/O del controllo che consiste nella dichiarazione degli
configurazione di un mapping I/O del controllo che consiste nella dichiarazione degli indirizzi di ingresso, di uscita e di salvataggio del dispositivo di controllo vengono
assegnate delle variabili di progetto utilizzate dall'applicazione.
Attesa di riceve un comando Esecuzione comando Malfunzionamento
Modulo NASTRO
סּ Interfaccia:– Cmd
dovete elencare i comandi che possono essere eseguiti
• Avviamento BOOL
– Ack
dovete elencare gli acknoledge che confermano l’esecuzione di un comando • Avviato BOOL • Avviato BOOL Attesa di riceve un comando Esecuzione comando Nastro.Cmd.Run Nastro.Cmd.Reset
Interfaccia del modulo NASTRO
סּ In CodeSys è possibile creare un tipo di dato definito dall’utente, che consiste in:
– DUT,(Data Unit Types) tipi di dati definiti dall'utente
– Struct
סּ Aggiungi Oggetto >> DataType si aprirà un editor per tipi di dati
סּ L'editor contiene già la predefinizione di una definizione di una struttura.
סּ Inoltre l'editor si apre anche quando un oggetto DUT esistente viene aperto per
essere modificato.
סּ Vogliamo ottenere
NomeModulo.Comando.TipoComando NomeModulo.Ack.TipoAck
Libreria NASTRO
סּ Nel diagramma degli stati di gestrione del Nastro uso la Function
Block di gestione del hardware
סּ La Function Block riceve dei comandi di ingresso e rende
disponibile dei segnali di uscita:
INPUT per il PLC:
- Fotocellula presenza merce sul nastro
OUTPUT per il PLC
- motore_nastro_abilitato Comando di attivazione del nasto - posizione del prodotto sul nastro
Modulo GRIPPER
סּ Interfaccia– Cmd
dovete elencare i comandi che possono essere eseguiti • Manual_mode BOOL • Automatic_mode BOOL • … • … – Ack
dovete elencare gli acknoledge che confermano l’esecuzione di un comando
• Avviato BOOL
Modulo GRIPPER
Attesa diriceve un comando
Macrostato di funzionamento in manuale
Gripper.Cmd.Manual Gripper.Cmd.Automatic Spostamento a destra Spostamento a sinistra
סּDiagramma degli stati
Gripper.Cmd.Reset Errore Esecuzione del prelievo a destra a sinistra Discesa Salita Attesa selezione comando
Libreria GRIPPER (Motion)
סּ Nel diagramma degli stati di gestrione del Nastro uso la Function Block di gestione del
hardware
סּ La Function Block riceve dei comandi di ingresso e rende disponibile dei segnali di uscita:
INPUT per il PLC: • sensore_fine_corsa_sinistro • sensore_fine_corsa_destro • sensore_fine_corsa_alto • sensore_fine_corsa_alto • sensore_fine_corsa_basso OUTPUT per il PLC
Il sistema è controllato attraverso i segnali di attuazione:
motore_verticale_abilitazione
motore_verticale_salita: comando che aziona il motore elettrico per la movimentazione del
tamburo sul quale è fissata la fune, in direzione di arrotolamento
motore_orizzontale_abilitazione
motore_orizzontale_destra: comando che attiva il movimento del carroponte lungo la
סּ Dovete definire un PROGRAM per ogni modulo.
סּ Nel PROGRAM implementerete il diagramma degli stati
con la struttura CASE … OF
סּ La comunicazione tra il modulo Machine Controller e gli
altri moduli avviene usando le strutture dati che avete definito (comandi e acknoledge)
סּ Associare un task ad ogni PROGRAM nella
Libreria grafica di CodeSys
x x y x y • Gripper• Absolute Movement Movement x
• Relative Movement Movement topleft x
Movement bottomright x Movement bottomright y
y Movement bottomright y
• Absolute Movement Movement x
Absolute Movement Movement y
• Il pezzo • Absolute Movement Movement x
Movement y
Il pezzo da trasportare si muove sul nastro quando il nastro è in movimento. Quando la pinza preleva il pezzo le coordinate del pezzo devono essere aggiornate con la posizione della pinza. x