• Non ci sono risultati.

4. Ingegneria del Software per l'Automazione Industriale

N/A
N/A
Protected

Academic year: 2021

Condividi "4. Ingegneria del Software per l'Automazione Industriale"

Copied!
32
0
0

Testo completo

(1)

Università degli Studi di Modena e Reggio Emilia Automation

Robotics and System CONTROL

Automazione Industriale

4- Ingegneria del Software

Cesare Fantuzzi (cesare.fantuzzi@unimore.it)

Ingegneria Meccatronica

Ingegneria della Gestione Industriale AA 2010/2011

(2)

Strumenti per organizzare e

strutturare un progetto

סּ Vari settore dell’ingegneria si basano sulla definizione di

un modello del sistema da studiare e sviluppare.

סּ Metodi e processi sono stati sviluppati per questo: – Calcolo strutturale per edifici

– Dimensionamento e disegno 3D di componenti meccaniche

Novembre 2010

meccaniche

Modelli per lo sviluppo di sistemi software: Ingegneria del

Software.

2 4. Ingegneria del Software per

(3)

Ingegneria del Software

סּ Sviluppare un progetto attraverso la stesura di un

modello dell’applicativo.

סּ Utilizzare il modello per individuare i punti critici

dell’applicazione, per la discussione nel team di progetto e per la documentazione.

סּ Suddividere la complessita’ del progetto in sottomoduli

Novembre 2010

סּ Suddividere la complessita’ del progetto in sottomoduli

3 4. Ingegneria del Software per

In definitiva:

(4)

Progettazione modulare

סּ Per individuare i moduli in modo corretto occorre individuare le

entità che hanno un significato “per sé” nel sistema con cui il software interagisce.

סּ Occorre individuare quindi i componenti che hanno una precisa

identità e una precisa responsabilità all’interno del sistema considerato.

סּ In altre parole occorre identificare le entità che possono

Novembre 2010 4

סּ In altre parole occorre identificare le entità che possono

“sopravvivere” in autonomia una volta estratte dal sistema considerato.

סּ Nel corso dell’evoluzione dei metodi di progettazione software e

dei linguaggi di programmazione, questo concetto ha portato alla definizione sul finire degli anni ’70 delle metodologie

Object-Oriented (OO) per la progettazione del software,

סּ Nell’approccio OO, l’attenzione si sposta dalle “funzioni” agli

“elementi” costitutivi del sistema da realizzare

(5)

Object – Oriented

(orientamento agli oggetti)

סּ La programmazione orientata agli oggetti (OOP,

Object Oriented Programming) è un paradigma di programmazione, che prevede di raggruppare in un'unica entità (la classe) sia

– le strutture dati che

– le procedure che operano su di esse, – le procedure che operano su di esse,

סּ creando per l'appunto un "oggetto" software dotato di

proprietà (dati) e metodi (procedure) che operano sui dati dell'oggetto stesso.

(6)

Object – Oriented

(cont.)

סּ La programmazione orientata agli oggetti può essere

vista come una modulazione di oggetti software sulla base degli oggetti del mondo reale.

סּ La modularizzazione di un programma viene realizzata

progettando e realizzando il codice sotto forma di classi che interagiscono tra di loro.

che interagiscono tra di loro.

סּ Un programma ideale, realizzato applicando i criteri

dell'OOP, sarebbe completamente costituito da oggetti software (istanze di classi) che interagiscono gli uni con gli altri.

סּ Ref bibliografico sintetico:

http://it.wikipedia.org/wiki/Programmazione_orientata_agli_ oggetti

(7)

I concetti chiave del “Object

Oriented”

סּ Modularità. סּ Information Hiding. סּ Astrazione. סּ Identità e responsabilità. Novembre 2010 7 סּ Riusabilità.

(8)

Software “Object Oriented”

Un metodo di progettazione Conduce alla

Novembre 2010 8

orientato agli oggetti programmazione modulare (di buona qualità)

(9)

Il Concetto di Oggetto

סּ Un oggetto è quindi un’entità a sè stante avente le caratteristiche di un “Centro di Servizi”, che incapsula informazioni e funzionalità

disponibili a richiesta per gli altri oggetti.

סּ Il modo con cui le informazioni che l’oggetto contiene vengono elaborate è nascosto (privato)

סּ Le informazioni e le funzionalità sono accessibili dall’esterno solo attraverso una ben determinata interfaccia.

Novembre 2010 9

attraverso una ben determinata interfaccia. Oggetto

Funzioni che agiscono sull’oggetto

Funzioni di interfaccia

Parte nascosta Parte visibile

(10)

Estensione dei linguaggi

tradizionali in modo OO

סּ Una nota descrizione più sintetica di oggetto `e fornita da

Grady Booch (uno dei padri dell’“OO Design”):

סּ “Un oggetto è un componente software che ha uno stato,

un comportamento e una identità”

סּ In altre parole esso è costituito da

Novembre 2010 10

סּ In altre parole esso è costituito da

– una struttura dati (che memorizza lo stato),

– da delle operazioni (che determinano il comportamento) – ed è unico nel programma

(11)

Applicazione alle macchine

“Oggetto Meccatronico”

סּ Un “Oggetto Meccatronico” implementa una funzione ben

precisa all’interno della macchina (quindi è un “oggetto”) e ne rende disponibile l’uso a clienti esterni mediante interfaccie ben definite.

סּ Un oggetto meccatronico è costituito da una parte meccanica

ed una parte elettronica di controllo da progettarsi in modo integrato.

integrato.

4. Ingegneria del Software per

(12)

Modularità

סּ In generale, una macchina ha una struttura

intrinsecamente modulare.

סּ I processi produttivi o di trasformazioni eseguiti dalle

macchine automatiche sono tipicamente scomponibili in funzionalità elementari (sotto-processi)

סּ I sotto-processi sono eseguiti da parti ben precise della סּ I sotto-processi sono eseguiti da parti ben precise della

macchina.

סּ La struttura modulare della macchina puo’ essere legata

alla modularita’ del software.

(13)

Strutturazione modulare del

software.

סּ MODULO: componente di un sistema caratterizzato da

massima coesione interna e minimo accoppiamento esterno.

סּ In un contesto di software industriale possiamo dire che:

Novembre 2010 4. Ingegneria del Software per 13

Un modulo è una parte di software dedicata al controllo di una parte ben definita di una macchina automatica, che svolge un determinato

sotto-processo produttivo, avente un numero minimo di collegamenti con altre parti.

(14)

Obiettivi di progetto per il

software di controllo

סּ Modularità: definizione di componenti software

“interagenti”, ciascuno con proprie responsabilità di controllo

סּ Riusabilità: quella del modulo di controllo è

strettamente legata a quella della parte di macchina controllata

Novembre 2010 4. Ingegneria del Software per 14

controllata

סּ Un modulo di automazione è un componente costituito

da:

– una parte sofware (controllo logico + controllo continuo)

– una parte elettrica (sensori/attuatori)

(15)

Esempio: isola di foratura

(16)

Modularizzazione di un

applicativo

(17)

Soluzione “Meccatronica”

Sistema fisico Modulo A Supervisore & stop_rotate Finish Start Rotate Start Modulo C Start Finish Finish Controllore

Novembre 2010 4. Ingegneria del Software per 17

& Modulo B Start Modulo D Finish Finish Finish Start

(18)

Libreria di moduli

meccatronici

Start Finish Finish Start

Blocco funzionale tastatore Blocco funzionale foratura

Novembre 2010 4. Ingegneria del Software per 18

Blocco funzionale evacuazione

Finish Start

Start Finish

(19)

Aggiungiamo una nuova

funzionalità

(20)

La qualità del software

strutturato e modulare.

סּ Un software strutturato in moduli ha buone

caratteristiche di qualità secondo i criteri visti. Infatti:

– Ciascun modulo opera su una porzione di macchina e vi sono poche interazioni fra diverse parti di

programmi (facilità di verifica, incremento e manutenzione)

Novembre 2010 4. Ingegneria del Software per 20

manutenzione)

– Focalizzando un modulo è più facile capire il

funzionamento della macchina (un “pezzo” per volta) e “incapsulando” i dettagli implementativi di ciascun modulo è più facile la manutenzione del programma di controllo.

(21)

Come progettare in modo

modulare?

סּ Occorre chiedersi:

– Quali sono le parti della macchina che sono strettamente legate fra di loro (dal punto vista del controllo)?

– Posso isolare queste parti ed individuare delle funzioni software a loro dedicate che non interagiscono con le

Novembre 2010 4. Ingegneria del Software per 21

software a loro dedicate che non interagiscono con le altre?

– Posso, di contro, isolare delle “informazioni” di interfaccia fra tali funzioni?

(22)

Approccio alla modularizzazione

concettuale

סּ La chiave consiste nell’isolare le azioni “finite” che la

macchina esegue sul prodotto.

– Nel caso in cui la produzione sia “sequenziale” questa operazione è banale.

סּ Una volta isolate tali azioni, ci si chiede quali

componenti fisici sono coinvolti nell’esecuzione di tali azioni

Novembre 2010 4. Ingegneria del Software per 22

azioni

סּ Se tali parti fisico–funzionali sono separabili, ci si chiede

quali funzioni di controllo occorre eseguire il sotto-processo produttivo..

סּ ... e quali debbono essere le interfacce con altre parti

del progetto ...

סּ ... e se è possibile ridurre il numero di tali interazioni

(23)

Tipica architettura del sistema di controllo per l’automazione

(24)

Architettura modulare

(25)

Un oggetto Meccatronico

(26)

Un oggetto meccatronico

(27)

Un “oggetto” ha ...

סּ Stato: nella progettazione del controllo basata sullo stato, tale

aspetto vieneenfatizzato, ponendo come principio base che lo stato del software di controllo sia consistente con quello di funzionamento dell’impianto (di un modulo dell’impianto

סּ Comportamento: il comportamento di un “oggetto software” è determinato dai suoi metodi, il comportamento di un modulo meccatronico è dato dalle azioni eseguite dalla parte fisica e controllate dalla parte software, richieste tramite i segnali

Novembre 2010 4. Ingegneria del Software per 27

controllate dalla parte software, richieste tramite i segnali dell’interfaccia software del modulo

סּ Identità (...)

סּ Tipo: ogni modulo meccatronico della macchina può essere

classificato secondo la necessaria astrazione, al fine di garantirne il riuso su diversi progetti o la “istanziazione” molteplice nello stesso progetto

(28)

Approccio ad “oggetti” per

software industriale

סּ I concetti della progettazione orientata agli oggetti

possono essere utilizzati per il progetto dell’automazione, anche se i linguaggi di

programmazione di PLC e simili non sono propriamente OO (v. norma IEC 61131-3.)

Novembre 2010 4. Ingegneria del Software per 28

OO (v. norma IEC 61131-3.)

סּ Vantaggi:

– Modularità e scalabilità. – Riusabilità.

(29)

Come definire un “oggetto” in

ambito industriale?

סּ La meccatronica:

– Componenti elettromeccanici combinati a moduli di controllo (hardware e software).

– “Librerie” di moduli meccatronici riutilizzabili.

– Sincronismo tra moduli tramite “segnali” (software) di

Novembre 2010 4. Ingegneria del Software per 29

– Sincronismo tra moduli tramite “segnali” (software) di interfaccia.

(30)

Come implementare un “oggetto” in

ambito industriale?

סּ Occorre un modulo software che abbia:

– Stato interno, memorizzato in variabili private

– Comportamento incapsulato in una parte di codice privata – Interfaccia “software” con gli altri moduli di controllo isolata

e ben definita

Novembre 2010 4. Ingegneria del Software per 30

e ben definita

– Interfaccia “hardware” con la parte fisica privata del

modulo meccatronico (parte pià critica dal punto di vista implementativo)

(31)

Programmazione controllori

industriali: Normative

סּ Due standard internazionali:

– Standard IEC 61131-3, pubblicato nel 1993, ampiamente diuso e recepito dai costruttori di dispositivi per il controllo industriale.

– Standard IEC 61499, estende i concetti IEC 61131-3 ai

Novembre 2010 4. Ingegneria del Software per 31

– Standard IEC 61499, estende i concetti IEC 61131-3 ai sistemi distribuiti, è ancora in fase di sviluppo, non

(32)

Function Blocks: strumenti per

l’implementazione

degli oggetti

סּ • Il “Function Block” (FB) è un concetto definito dalla IEC

61131-3 (e fonda mentale per la IEC 61499) per la realizzazione di moduli software che eseguano

determinate funzionalità, nascondendone l’implementazione.

סּ E’ caratterizzato da:

Novembre 2010 4. Ingegneria del Software per 32

סּ E’ caratterizzato da:

– Una interfaccia di parametri (segnali) di ingresso-uscita.

– Una struttura dati locale privata.

– Un algoritmo interno, scritto in uno dei linguaggi IEC (ma non solo).

סּ E’ definito come tipo e utilizzato come istanza

Riferimenti

Documenti correlati

- difficoltà nella memoria di lavoro, all’interno della quale dovrebbero essere conservate le indicazioni-guida del proprio comportamento;.. - incapacità ad

Neuroni che rispondono a variazioni della concentrazione del glucosio sono presenti in altre aree : substantia nigra, locus coeruleus, neocorteccia, ippocampo e NTS ....

COME POSSIAMO AIUTARE IL NOSTRO ALUNNO A NON EMETTERE I COMPORTAMENTI PROBLEMA EMERSI FIN’ORA. STORIE SOCIALI (BREVI FRASI E DISEGNI PER SPIEGARE NUOVE SITUAZIONI

Il dirigente (o il responsabile del servizio sulla base delle disposizioni organizzative interne a ciascun settore) assegna l'istruttoria delle pratiche del

A seconda delle esigenze della persona, l’incontro è dedicato alla gestione delle ferite, ai controlli clinici da programmare e alla terapia farmacologica..

POSIZIONE ETICA IN RIFERIMENTO ALLA SCELTA 1.  Né Neil né nessun altro nella squadra hanno. l'autorità (titolarità) di impegnarsi in tale lavoro, utilizzando

1. Il presente codice di comportamento, di seguito denominato “Codice”, definisce, ai fini dell’articolo 54 del decreto legislativo 30 marzo 2001, n. 165, i doveri minimi di

Il Gruppo Quiris ritiene che l’applicazione dei principi e delle regole di condotta stabilite per il personale debba essere estesa per tutti gli aspetti compatibili anche