SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Università degli studi di Trieste

Dipartimento di Ingegneria ed Architettura
Corso di studi in Ingegneria Informatica

Laureando:
Enrico PALUZZANO

Relatore:
prof. Alberto BARTOLI
Introduzione
 Il lavoro presentato è stato svolto all’interno

dell’azienda SMS Concast.
 SMS Concast sviluppa e produce software per

l’automazione degli impianti siderurgici.
 Il software presentato è il sistema di

comunicazione, utilizzato dalle applicazioni, per
controllare il processo produttivo dell’impianto: il suo
nome è GATE.
Organizzazione aziendale
 L’organizzazione degli impianti viene strutturata
su diversi livelli.
 Livello 1: è il livello che gestisce l’automazione

nell’impianto.
 Il livello 2: è il livello preposto alla gestione del processo
produttivo.
(livello in cui è stato sviluppato il software prodotto)
 Il livello 3: è il livello preposto alla gestione delle
commesse.
Livello 2
 Il software sviluppato nel livello 2 svolge svariati

compiti:
 calcolo dei piani di taglio per gli acciai speciali
 controllo della composizione chimica dell’acciaio

…

 Le necessità del software di questo livello sono:
 Conoscere lo stato dell’impianto
 Comandare il processo produttivo
PLC
 Lo stato dell’impianto viene controllato da specifiche

apparecchiature chiamate PLC (Programmable Logic
Controller)
 Al loro interno sono installate le applicazioni di Livello 1
che permettono di:
 Scrivere in memoria i dati ricevuti dai rilevatori
 Leggere dalla memoria i comandi da inviare alle macchine

tramite gli attuatori

 Un’applicazione di livello 2, per controllare il processo

produttivo, deve necessariamente comunicare con i PLC.
 Questa comunicazione avviene interagendo con la loro
memoria interna.
Definizione del problema (I)
 Comunicare con i PLC presenta delle difficoltà in
quanto:
 Possono esser prodotti da case produttrici differenti
 Utilizzano librerie proprietarie diverse
 Necessitano di comunicazioni robuste ed affidabili

 Le applicazioni di livello 2 hanno la necessità di
comunicare:
 Con più PLC nello stesso momento

 In maniera concorrente fra loro
 Frequentemente
Definizione del problema (II)
 Per questo è stato realizzato dall’azienda un software

intermedio tra applicazioni di livello 2 e PLC.

 Vantaggi:
 Non impegna le applicazioni nella comunicazione
 Incorpora l’utilizzo di diversi protocolli

 Permette di controllare lo stato delle comunicazioni

 Svantaggi:
 Deve essere robusto

(capace di gestire correttamente i malfunzionamenti)
 Deve essere affidabile

(non può bloccarsi altrimenti le applicazioni non controllano
più il processo produttivo)
Specifiche richieste
 A fronte di una commessa è stato chiesto al livello 2

dell’azienda di:
 Tradurre le applicazioni che già distribuisce, in

linguaggio C#
 Ridisegnare le interfacce utilizzando WPF(Windows
Presentation Foundation)
 Sviluppare delle nuove applicazioni personalizzate per
alcune necessità specifiche del committente
Stato dell’arte
 Il software presentato in questa tesi è stato sviluppato

partendo da quello correntemente utilizzato.
 Il software precedente:
 E’ scritto in linguaggio Pascal

 Utilizza tre tipi di librerie




Softnet
AllenBradley
SendReceive

 Implementa il controllo da remoto
Specifiche del GATE (I)
 Il nuovo software, sviluppato nell’ambito del tirocinio,

presenta le seguenti specifiche:
 E’ scritto in linguaggio C#
 Ha le interfacce disegnate utilizzando WPF

 Utilizza la libreria proprietaria Softnet utilizzata per

comunicare con i PLC SIEMENS S7
 Implementa il sistema remoto utilizzando WCF
(Windows Comunication Foundation)
La comunicazione(I)
 Per comunicare con i PLC, le applicazioni, comunicano

con il Gate utilizzando la seguente procedura:
 Definiscono una connessione (Link)
 Accodano una richiesta (Transazione)
 Prelevano l’esito della richiesta

 Successivamente il Gate interagisce con i PLC nel

seguente modo:
 Carica la libreria proprietaria
 Apre il canale di comunicazione
 Esegue la richiesta tramite le funzioni della libreria

proprietaria
La comunicazione (II)
 La comunicazione, all’interno del Gate, avviene

tramite l’intervento di due macro entità:
 PlcDriver
 PipeObject
GATE
PIPEOBJECT

PLCDRIVER

APPLICAZIONI

SOFTNET

PLC

ALLEN-BRADLEY
LINK

LINK

ALLNBRADLEY

PLC

SENDRECEIVE LINK

SENDRECEIVE

PLC

SOFTNET LINK

TRANSAZIONI
Comportamento delle classi
 Il PipeObject ha il compito di:
 Ricevere le richieste di connessione da parte delle applicazioni
 Passarle al corretto driver in esecuzione
 Ricevere ed accodare le richieste di lettura o scrittura
 Il PlcDriver ha il compito di:
 Caricare le librerie proprietarie
 Aprire le connessioni passategli dal PipeObject, con i PLC
 Prelevare dal PipeObject, se accodata, una Transazione
relativa alla connessione aperta
 Eseguire la Transazione e salvarne il risultato all’interno del
PipeObject
 Rilasciare le librerie proprietarie
Sviluppo di PlcDriver
 E’ la classe ancestrale che definisce il comportamento

generale del driver
 Incorpora un thread per l’esecuzione ciclica di una
funzione chiamata Execute
 Questa funzione è stata completamente
riprogettata e sviluppata
 E’ la più rilevante modifica apportata al software

precedente
 Si basa sull’applicazione a PlcDriver di un modello a stati
finiti
UNUSED

SIMULATION

Entry / Link da servire = 0
Do / Attende e inizial. driver
Exit / Link da servire > 0

INIZIO

ERROR
Entry / Inizial. driver fallita
Do / Aspetta timeout

RESTARTING

Entry / Mod. sim. richiesta
Do / Finalizza il driver e attende
Exit / Mod. live richiesta

ACTIVE
Entry / Link da servire > 0
Do / Apre link, attende transazioni ed esegue
transazioni
Exit / Links da servire = 0 oppure un link è in stato
di errore per più di MaxOveralltime oppure è
stata richiesta la chiusura del driver

Do / Finalizza driver e terimina link

STOPPED

FINE

Do / Finalizza il driver e
rimuove i link.
Risultati dello sviluppo:
 Il risultato ottenuto da questa implementazione di

PlcDriver si può riassumere in:
 Un comportamento più affidabile dei driver
 Una miglior chiarezza del codice

 Un aumento delle prestazioni in alcune situazioni
Screenshot Gate
L’applicazione di test: Board
 Il Board è un’applicazione che simula il

comportamento di una normale applicazione del
livello 2
 Tramite il Board è possibile:
 Definire un Link ad un PLC
 Leggere dalla memoria del PLC
 Scrivere sulla memoria del PLC
 Lanciare delle funzioni di test
 Controllare lo stato delle transazioni
Screenshot Board

Weitere ähnliche Inhalte

Andere mochten auch

Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
Luca Milan
 
Architetttura Della Soluzione
Architetttura Della SoluzioneArchitetttura Della Soluzione
Architetttura Della Soluzione
Luca Milan
 
Usare le nuove WCF Web Api per creare servizi RESTful
Usare le nuove WCF Web Api per creare servizi RESTfulUsare le nuove WCF Web Api per creare servizi RESTful
Usare le nuove WCF Web Api per creare servizi RESTful
Luca Milan
 

Andere mochten auch (16)

Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
 
m-v-vm @ UgiAlt.Net
m-v-vm @ UgiAlt.Netm-v-vm @ UgiAlt.Net
m-v-vm @ UgiAlt.Net
 
Introduzione WPF
Introduzione WPFIntroduzione WPF
Introduzione WPF
 
Architetttura Della Soluzione
Architetttura Della SoluzioneArchitetttura Della Soluzione
Architetttura Della Soluzione
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
 
Usare le nuove WCF Web Api per creare servizi RESTful
Usare le nuove WCF Web Api per creare servizi RESTfulUsare le nuove WCF Web Api per creare servizi RESTful
Usare le nuove WCF Web Api per creare servizi RESTful
 
Model-View-ViewModel
Model-View-ViewModelModel-View-ViewModel
Model-View-ViewModel
 
WPF
WPFWPF
WPF
 
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEARCHITETTURA DI UN'APPLICAZIONE SCALABILE
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
 
WPF basics
WPF basicsWPF basics
WPF basics
 
Silverlight m v-vm @ DotNetteria
Silverlight m v-vm @ DotNetteriaSilverlight m v-vm @ DotNetteria
Silverlight m v-vm @ DotNetteria
 
WPF MVVM Toolkit
WPF MVVM ToolkitWPF MVVM Toolkit
WPF MVVM Toolkit
 
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
 
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi StyleLiferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
 
A pattern language for microservices (#SFMicroservices)
A pattern language for microservices (#SFMicroservices)A pattern language for microservices (#SFMicroservices)
A pattern language for microservices (#SFMicroservices)
 
Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)Developing microservices with aggregates (devnexus2017)
Developing microservices with aggregates (devnexus2017)
 

Ähnlich wie PALUZZANO PRELAUREA

Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
Yeser Rema
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
GiacomoZorzin
 

Ähnlich wie PALUZZANO PRELAUREA (20)

PALUZZANO TESI
PALUZZANO TESIPALUZZANO TESI
PALUZZANO TESI
 
3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
 
Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 
Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2
 
Tesi di Laurea
Tesi di LaureaTesi di Laurea
Tesi di Laurea
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Hardware e plugin
Hardware e pluginHardware e plugin
Hardware e plugin
 
Socket python
Socket pythonSocket python
Socket python
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
Scenario Framework
Scenario FrameworkScenario Framework
Scenario Framework
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
 

PALUZZANO PRELAUREA

  • 1. Università degli studi di Trieste Dipartimento di Ingegneria ed Architettura Corso di studi in Ingegneria Informatica Laureando: Enrico PALUZZANO Relatore: prof. Alberto BARTOLI
  • 2. Introduzione  Il lavoro presentato è stato svolto all’interno dell’azienda SMS Concast.  SMS Concast sviluppa e produce software per l’automazione degli impianti siderurgici.  Il software presentato è il sistema di comunicazione, utilizzato dalle applicazioni, per controllare il processo produttivo dell’impianto: il suo nome è GATE.
  • 3. Organizzazione aziendale  L’organizzazione degli impianti viene strutturata su diversi livelli.  Livello 1: è il livello che gestisce l’automazione nell’impianto.  Il livello 2: è il livello preposto alla gestione del processo produttivo. (livello in cui è stato sviluppato il software prodotto)  Il livello 3: è il livello preposto alla gestione delle commesse.
  • 4. Livello 2  Il software sviluppato nel livello 2 svolge svariati compiti:  calcolo dei piani di taglio per gli acciai speciali  controllo della composizione chimica dell’acciaio …  Le necessità del software di questo livello sono:  Conoscere lo stato dell’impianto  Comandare il processo produttivo
  • 5. PLC  Lo stato dell’impianto viene controllato da specifiche apparecchiature chiamate PLC (Programmable Logic Controller)  Al loro interno sono installate le applicazioni di Livello 1 che permettono di:  Scrivere in memoria i dati ricevuti dai rilevatori  Leggere dalla memoria i comandi da inviare alle macchine tramite gli attuatori  Un’applicazione di livello 2, per controllare il processo produttivo, deve necessariamente comunicare con i PLC.  Questa comunicazione avviene interagendo con la loro memoria interna.
  • 6. Definizione del problema (I)  Comunicare con i PLC presenta delle difficoltà in quanto:  Possono esser prodotti da case produttrici differenti  Utilizzano librerie proprietarie diverse  Necessitano di comunicazioni robuste ed affidabili  Le applicazioni di livello 2 hanno la necessità di comunicare:  Con più PLC nello stesso momento  In maniera concorrente fra loro  Frequentemente
  • 7. Definizione del problema (II)  Per questo è stato realizzato dall’azienda un software intermedio tra applicazioni di livello 2 e PLC.  Vantaggi:  Non impegna le applicazioni nella comunicazione  Incorpora l’utilizzo di diversi protocolli  Permette di controllare lo stato delle comunicazioni  Svantaggi:  Deve essere robusto (capace di gestire correttamente i malfunzionamenti)  Deve essere affidabile (non può bloccarsi altrimenti le applicazioni non controllano più il processo produttivo)
  • 8. Specifiche richieste  A fronte di una commessa è stato chiesto al livello 2 dell’azienda di:  Tradurre le applicazioni che già distribuisce, in linguaggio C#  Ridisegnare le interfacce utilizzando WPF(Windows Presentation Foundation)  Sviluppare delle nuove applicazioni personalizzate per alcune necessità specifiche del committente
  • 9. Stato dell’arte  Il software presentato in questa tesi è stato sviluppato partendo da quello correntemente utilizzato.  Il software precedente:  E’ scritto in linguaggio Pascal  Utilizza tre tipi di librerie    Softnet AllenBradley SendReceive  Implementa il controllo da remoto
  • 10. Specifiche del GATE (I)  Il nuovo software, sviluppato nell’ambito del tirocinio, presenta le seguenti specifiche:  E’ scritto in linguaggio C#  Ha le interfacce disegnate utilizzando WPF  Utilizza la libreria proprietaria Softnet utilizzata per comunicare con i PLC SIEMENS S7  Implementa il sistema remoto utilizzando WCF (Windows Comunication Foundation)
  • 11. La comunicazione(I)  Per comunicare con i PLC, le applicazioni, comunicano con il Gate utilizzando la seguente procedura:  Definiscono una connessione (Link)  Accodano una richiesta (Transazione)  Prelevano l’esito della richiesta  Successivamente il Gate interagisce con i PLC nel seguente modo:  Carica la libreria proprietaria  Apre il canale di comunicazione  Esegue la richiesta tramite le funzioni della libreria proprietaria
  • 12. La comunicazione (II)  La comunicazione, all’interno del Gate, avviene tramite l’intervento di due macro entità:  PlcDriver  PipeObject GATE PIPEOBJECT PLCDRIVER APPLICAZIONI SOFTNET PLC ALLEN-BRADLEY LINK LINK ALLNBRADLEY PLC SENDRECEIVE LINK SENDRECEIVE PLC SOFTNET LINK TRANSAZIONI
  • 13. Comportamento delle classi  Il PipeObject ha il compito di:  Ricevere le richieste di connessione da parte delle applicazioni  Passarle al corretto driver in esecuzione  Ricevere ed accodare le richieste di lettura o scrittura  Il PlcDriver ha il compito di:  Caricare le librerie proprietarie  Aprire le connessioni passategli dal PipeObject, con i PLC  Prelevare dal PipeObject, se accodata, una Transazione relativa alla connessione aperta  Eseguire la Transazione e salvarne il risultato all’interno del PipeObject  Rilasciare le librerie proprietarie
  • 14. Sviluppo di PlcDriver  E’ la classe ancestrale che definisce il comportamento generale del driver  Incorpora un thread per l’esecuzione ciclica di una funzione chiamata Execute  Questa funzione è stata completamente riprogettata e sviluppata  E’ la più rilevante modifica apportata al software precedente  Si basa sull’applicazione a PlcDriver di un modello a stati finiti
  • 15. UNUSED SIMULATION Entry / Link da servire = 0 Do / Attende e inizial. driver Exit / Link da servire > 0 INIZIO ERROR Entry / Inizial. driver fallita Do / Aspetta timeout RESTARTING Entry / Mod. sim. richiesta Do / Finalizza il driver e attende Exit / Mod. live richiesta ACTIVE Entry / Link da servire > 0 Do / Apre link, attende transazioni ed esegue transazioni Exit / Links da servire = 0 oppure un link è in stato di errore per più di MaxOveralltime oppure è stata richiesta la chiusura del driver Do / Finalizza driver e terimina link STOPPED FINE Do / Finalizza il driver e rimuove i link.
  • 16. Risultati dello sviluppo:  Il risultato ottenuto da questa implementazione di PlcDriver si può riassumere in:  Un comportamento più affidabile dei driver  Una miglior chiarezza del codice  Un aumento delle prestazioni in alcune situazioni
  • 18. L’applicazione di test: Board  Il Board è un’applicazione che simula il comportamento di una normale applicazione del livello 2  Tramite il Board è possibile:  Definire un Link ad un PLC  Leggere dalla memoria del PLC  Scrivere sulla memoria del PLC  Lanciare delle funzioni di test  Controllare lo stato delle transazioni