automazione industriale 4- ingegneria del software · manutenzione) novembre 2010 4. ingegneria del...

32
Università degli Studi di Modena e Reggio Emilia A utomation R obotics and S ystem CONTROL Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi ([email protected] ) Ingegneria Meccatronica Ingegneria della Gestione Industriale AA 2010/2011

Upload: lamkhue

Post on 14-Feb-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Università degli Studidi Modena e Reggio Emilia

AutomationRobotics and

SystemCONTROL

Automazione Industriale4- Ingegneria del Software

Cesare Fantuzzi ([email protected])

Ingegneria MeccatronicaIngegneria della Gestione Industriale

AA 2010/2011

Page 2: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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.

24. Ingegneria del Software per l'Automazione

Page 3: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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

34. Ingegneria del Software per l'Automazione

In definitiva:

Pensare prima di agire

Page 4: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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

4. Ingegneria del Software per l'Automazione

Page 5: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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.

Novembre 2010 4. Ingegneria del Software per l'Automazione

5

Page 6: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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_

oggettiNovembre 2010 4. Ingegneria del Software per

l'Automazione6

Page 7: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

I concetti chiave del “Object Oriented”

� Modularità.� Information Hiding.� Astrazione .� Identità e responsabilità .

Novembre 2010 7

� Riusabilità.

4. Ingegneria del Software per l'Automazione

Page 8: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Software “Object Oriented”

Un metodo di progettazione Conduce alla

Novembre 2010 8

orientato agli oggetti programmazione modulare (di buona qualità)

4. Ingegneria del Software per l'Automazione

Page 9: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 agisconosull’oggetto

Funzioni di interfaccia

Parte nascostaParte visibile

4. Ingegneria del Software per l'Automazione

Page 10: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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

4. Ingegneria del Software per l'Automazione

Page 11: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Applicazione alle macchine“Oggetto Meccatronico”

� Un “Oggetto Meccatronico” implementa una funzione benprecisa all’interno della macchina (quindi è un “oggetto”) e ne rende disponibile l’uso a clienti esterni mediante interfaccie bendefinite.

� Un oggetto meccatronico è costituito da una parte meccanicaed una parte elettronica di controllo da progettarsi in modointegrato.integrato.

4. Ingegneria del Software per l'Automazione

Novembre 2010 11

Page 12: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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.

Novembre 2010 4. Ingegneria del Software per l'Automazione

12

Page 13: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

13

Un modulo è una parte di software dedicataal controllo di una parte ben definita di una

macchina automatica, che svolge un determinatosotto-processo produttivo, avente un numero

minimo di collegamenti con altre parti.

Page 14: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

14

controllata� Un modulo di automazione è un componente costituito

da:– una parte sofware (controllo logico + controllo

continuo)– una parte elettrica (sensori/attuatori)– una parte meccanica

Page 15: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Esempio: isola di foratura

Novembre 2010 4. Ingegneria del Software per l'Automazione

15

Page 16: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Modularizzazione di un applicativo

Novembre 2010 4. Ingegneria del Software per l'Automazione

16

Page 17: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Soluzione “Meccatronica”

Sistema fisico

Modulo ASupervisore

&

stop_rotate

FinishStart

Rotate

Start

Modulo CStart

Finish

Finish

Controllore

Novembre 2010 4. Ingegneria del Software per l'Automazione

17

&

Modulo BStart

Modulo D

Finish

Finish

FinishStart

Page 18: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Libreria di moduli meccatronici

Start

Finish Finish

Start

Blocco funzionale tastatore Blocco funzionale foratura

Novembre 2010 4. Ingegneria del Software per l'Automazione

18

Blocco funzionale evacuazione

Finish

StartStart

Finish

blocco funzionale controllo tavola

Page 19: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Aggiungiamo una nuova funzionalità

Novembre 2010 4. Ingegneria del Software per l'Automazione

19

Page 20: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

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.

Page 21: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

21

software a loro dedicate che non interagiscono con le altre?

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

Page 22: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Approccio alla modularizzazioneconcettuale

� 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 l'Automazione

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 (valutare i “confini” del modulo).

Page 23: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Tipica architettura del sistema di controllo per l’automazione

Novembre 2010 4. Ingegneria del Software per l'Automazione

23

Page 24: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Architettura modulare

Novembre 2010 4. Ingegneria del Software per l'Automazione

24

Page 25: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Un oggetto Meccatronico

Novembre 2010 4. Ingegneria del Software per l'Automazione

25

Page 26: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

Un oggetto meccatronico

Novembre 2010 4. Ingegneria del Software per l'Automazione

26

Page 27: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

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

Page 28: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

28

OO (v. norma IEC 61131-3.)� Vantaggi:

– Modularità e scalabilità.– Riusabilità.

Page 29: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

29

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

Page 30: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

30

e ben definita– Interfaccia “hardware” con la parte fisica privata del

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

Page 31: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

31

– Standard IEC 61499, estende i concetti IEC 61131-3 ai sistemi distribuiti, è ancora in fase di sviluppo, non esistono attualmente prodotti commerciali “maturi”.

Page 32: Automazione Industriale 4- Ingegneria del Software · manutenzione) Novembre 2010 4. Ingegneria del Software per l'Automazione 20 – Focalizzando un modulo è più facile capire

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 l'Automazione

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

(classe/oggetto).