SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Semelhante a REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLLO DI PROCESSO IN AMBITO INDUSTRIALE

Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
Alberto Lagna
 
SESAMO (application login automator): evoluzioni applicative e considerazioni...
SESAMO (application login automator): evoluzioni applicative e considerazioni...SESAMO (application login automator): evoluzioni applicative e considerazioni...
SESAMO (application login automator): evoluzioni applicative e considerazioni...
AndrijaCiric1
 
CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)
iBLio
 

Semelhante a REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLLO DI PROCESSO IN AMBITO INDUSTRIALE (20)

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...
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
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
 
Hardware e plugin
Hardware e pluginHardware e plugin
Hardware e plugin
 
Scenario Framework
Scenario FrameworkScenario Framework
Scenario Framework
 
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
 
Socket python
Socket pythonSocket python
Socket python
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciuta
 
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...
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community Tour
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
GreenVulcano ESB Technical Overview (ITA)
GreenVulcano ESB Technical Overview (ITA)GreenVulcano ESB Technical Overview (ITA)
GreenVulcano ESB Technical Overview (ITA)
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
 
SESAMO (application login automator): evoluzioni applicative e considerazioni...
SESAMO (application login automator): evoluzioni applicative e considerazioni...SESAMO (application login automator): evoluzioni applicative e considerazioni...
SESAMO (application login automator): evoluzioni applicative e considerazioni...
 
CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)
 

REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLLO DI PROCESSO IN AMBITO INDUSTRIALE

  • 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