Esercitazione in aula informatica - Automazione@ingre

Transcript

Esercitazione in aula informatica - Automazione@ingre
Automation
Robotics and
System
CONTROL
Università degli Studi
di Modena e Reggio Emilia
Università degli Studi
di Ferrara
PLC
CodeSys
Esercitazione 6
Francesca Fanfoni
[email protected]
Indice
Esercitazione 6
Carroponte
-Soluzione modulare.
Un modulo ha un’interfaccia verso l’esterno (variabili di
ingresso e di uscita), un diagramma degli stati a cui
corrisponde un programma in testo strutturato.
Vengono utilizzate le librerie:
- Libreria per gestione nastri
- Libreria per gestione organo di presa
- Librerie grafiche di CodeSys
[email protected]
Carroponte
gripper
nastro di
ingresso
nastro di
uscita
sensore
3
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
4
Un esempio - Una
automazione a carro ponte
‫ ּס‬Implementa la funzione principale della
macchina
‫ ּס‬Diagramma degli stati
Attesa di
riceve un
comando
START
Avvio il
nastro di
ingresso
Pezzo arrivato
Pezzo uscito
Avvio il nastro
di uscita
Avvio il gancio
per fare la
presa
Pezzo arrivato sul nastro di uscita
5
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
‫ ּס‬Diagramma degli stati:
Attesa di
riceve un
comando
NOT Nastro.Cmd.Run
Nastro.Cmd.Run
Nastro.Cmd.Reset
Malfunzionamento
Esecuzione
comando
Errore
6
Modulo GRIPPER
NOT Gripper.Cmd.Manual
Attesa di
riceve un
comando
Gripper.Cmd.Manual
Macrostato di funzionamento in manuale
Gripper.Cmd.Automatic
Spostamento
a destra
NOT Gripper.Cmd.Automatic
Esecuzione
del prelievo
Spostamento
a sinistra
Gripper.Cmd.Reset
Attesa
selezione
comando
Salita
Errore
Malfunzionamento
Errore
Discesa
IEC 61131-3, 3rd Ed - TASK
“a task is defined as an execution control element which is capable of
calling, either on a periodic basis or upon the occurrence of the rising
edge of a specified Boolean variable, the execution of a set of program
organization units, which can include programs and function blocks whose
instances are specified in the declaration of programs.
‫ ּס‬The maximum number of tasks per resource and task interval resolution are
implementation dependencies. ”
CoDeSys supports the generation of
multiple IEC tasks. Depending on the
operating system of the target device
The tasks can be either non preemptive
or preemptive.
The tasks can be directly configured within
the programming system CoDeSys. Each
task has a certain priority level (up to 32
levels).
Sistemi multitasking
‫ּס‬
La guida di CodeSys:
‫ּס‬
Alcuni sistemi godono dell'esecuzione di un vero multitasking preventivo (per es. CoDeSys SP).
‫ּס‬
In casi come questi, si raccomanda quanto segue:
Come anche in CoDeSys V2.3, tutte le attività si dividono una medesima immagine di processo.
Motivo: L'esistenza di un'immagine di processo per ognuna delle attività graverebbe sulle
performance.
L'immagine di processo può tuttavia dimostrare consistenza solo verso un'attività.
In fase di creazione di un progetto è bene tuttavia accertarsi come utente, che, in caso di conflitti, i
dati input siano copiati in un'area sicura e lo stesso vale per le uscite. Per risolvere problemi di
consistenza e sincronizzazione si utilizzano opportune librerie (es. libreria SysSem)
Nei sistemi multitasking possono insorgere problemi di consistenza anche in caso di accesso ad
altri oggetti globali (variabili globali, moduli), quando gli oggetti superano la larghezza dati
del processore (strutture o matrici che costituiscono un'unità logica). Anche in questo caso,
una soluzione può essere rappresentata per es. dai moduli della libreria SysSem.
Task in CodeSys
Monitoraggio Task
‫ּס‬
‫ּס‬
‫ּס‬
‫ּס‬
Numero di cicli
Tempo medio di ciclo
Tempo max di ciclo
Jitter minimo e massimo
PLC
CodeSys
Francesca Fanfoni
[email protected]