Università degli Studi di Modena e Reggio Emilia Automation
Robotics and System
CONTROL Università degli Studi
di Ferrara
PLC
Esercitazione 6
Francesca Fanfoni francesca.fanfoni@unimore.itPLC
CodeSys
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.
Esercitazione 6
Indice
ARSControl@unimore.it
Vengono utilizzate le librerie:
- Libreria per gestione nastri
- Libreria per gestione organo di presa
- Librerie grafiche di CodeSys
Carroponte
nastro di
nastro di
gripper
3sensore
nastro di
ingresso
nastro di
uscita
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
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
5comando
Avvio il
nastro di
ingresso
Pezzo uscito
Avvio il gancio
per fare la
presa
Avvio il nastro
di uscita
Pezzo arrivato
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
6Attesa di
riceve un
comando
Esecuzione
comando
Nastro.Cmd.Run
Nastro.Cmd.Reset
Malfunzionamento
Errore
Modulo GRIPPER
Attesa di
riceve un
comando
Macrostato di funzionamento in manuale
Gripper.Cmd.Manual
Gripper.Cmd.Automatic
Spostamento a destra Spostamento a sinistra NOT Gripper.Cmd.AutomaticNOT Gripper.Cmd.Manual
Gripper.Cmd.Reset
Malfunzionamento
Errore
Esecuzione
del prelievo
a destra a sinistra Discesa Salita Attesa selezione comandoErrore
NOT Gripper.Cmd.AutomaticIEC 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
סּ
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.
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
סּ
Jitter minimo e massimo
PLC
Francesca Fanfoni
francesca.fanfoni@unimore.it