Sei sulla pagina 1di 19

Automation

Robotics and
System
CONTROL Universit degli Studi Universit degli Studi
di Modena e Reggio Emilia di Ferrara

PLC
CodeSys
Esercitazione 5

Francesca Fanfoni
francesca.fanfoni@unimore.it
Indice

Esercitazione 4
Carroponte
-Un diagramma degli stati per gestire lintera
macchina
-Libreria per gestione nastri
-Libreria per gestione organo di presa
-Librerie grafiche di CodeSys
Esercitazione 5
I moduli del sistema di controllo del Carroponte

Creazione di un programma per ogni modulo

ARSControl@unimore.it
Un modulo

Riceve delle richieste attraverso dei comandi


Fornisce un servizio e al termine segnala lavvenuta
esecuzione al richiedente attraverso un acknoledge
(conferma)
Pu essere istanziato pi volte
Diagramma degli stati:
Attesa di comando
riceve un
comando
Esecuzione
acknoledge comando

3
Un modulo

Ha uninterfaccia di comandi e acknoledges per


comunicare con gli altri moduli.

In CodeSys possibile creare un tipo di dato definito


dallutente, che consiste in:
DataType
Struct

Aggiungi Oggetto >> DataType

4
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

5
Carroponte
gripper

nastro di
nastro di
ingresso
uscita

sensore
6
Un 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
sincronizzazione  si chiama Machine Controller

7
Un esempio - Una
automazione a carro ponte
Implementa la funzione principale della
macchina
Diagramma degli stati
START
Attesa di
riceve un
Avvio il
comando
nastro di
ingresso
Pezzo arrivato
Pezzo uscito Avvio il gancio
per fare la
presa
Avvio il nastro
di uscita Pezzo arrivato sul nastro di uscita
8
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
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

Malfunzionamento
Esecuzione
comando
9
Modulo NASTRO

Interfaccia:
Cmd
dovete elencare i comandi che possono essere eseguiti
Avviamento BOOL
Ack
dovete elencare gli acknoledge che confermano lesecuzione
di un comando
Avviato BOOL
Attesa di
Diagramma degli stati:
NOT Nastro.Cmd.Run
riceve un
comando
Nastro.Cmd.Run

Nastro.Cmd.Reset Esecuzione
comando

Malfunzionamento Errore 10
Interfaccia del modulo NASTRO

In CodeSys possibile creare un tipo di dato definito dallutente, 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

11
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
lesecuzione di un comando
Avviato BOOL

Modulo GRIPPER
Diagramma degli stati
Attesa di Gripper.Cmd.Manual
riceve un
comando
Macrostato di funzionamento in manuale
Gripper.Cmd.Automatic
Spostamento Spostamento
a destra a sinistra

Gripper.Cmd.Reset
Esecuzione
Attesa
del prelievo selezione
comando

Salita Discesa

Errore
Errore
Malfunzionamento
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_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
guida, con direzione dal punto di carico al punto di scarico

tenuta_pinza: comando di azionamento della pinza per effettuare il carico


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


Configurazione Attivit in Main Task
Libreria grafica di CodeSys
Gripper

x Absolute Movement  Movement  x


x
Relative Movement  Movement topleft  x
y
x  Movement bottomright  x
y  Movement bottomright  y
Absolute Movement  Movement  x
Absolute Movement  Movement  y

Il pezzo Absolute Movement  Movement  x


 Movement  y
x Il pezzo da trasportare si muove sul nastro quando il nastro in
y movimento. Quando la pinza preleva il pezzo le coordinate del
pezzo devono essere aggiornate con la posizione della pinza.
C un OFFSET (sia in x sia in y) dovuto alla distanza del
sistema di coordinate.
Offset

x = 132
y = 89
Altezza = 33
Larghezza = 27
(in pixel)

x = 56
y = 198
Altezza = 30 Offset x = 132 56 = 76
Larghezza = 26
(in pixel) Offset y = 198 89 = 79
PLC
CodeSys

Francesca Fanfoni
francesca.fanfoni@unimore.it