paluzzano prelaurea
DESCRIPTION
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLLO DI PROCESSO IN AMBITO INDUSTRIALETRANSCRIPT
![Page 1: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/1.jpg)
Università degli studi di Trieste
Dipartimento di Ingegneria ed Architettura
Corso di studi in Ingegneria Informatica
Laureando:Enrico PALUZZANO
Relatore:prof. Alberto BARTOLI
![Page 2: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/2.jpg)
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.
![Page 3: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/3.jpg)
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.
![Page 4: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/4.jpg)
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
![Page 5: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/5.jpg)
PLC Lo stato dell’impianto viene controllato da specifiche
apparecchiature chiamate PLC (Programmable LogicController)
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.
![Page 6: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/6.jpg)
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
![Page 7: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/7.jpg)
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)
![Page 8: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/8.jpg)
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
![Page 9: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/9.jpg)
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
![Page 10: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/10.jpg)
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)
![Page 11: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/11.jpg)
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
![Page 12: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/12.jpg)
La comunicazione (II) La comunicazione, all’interno del Gate, avviene
tramite l’intervento di due macro entità:
PlcDriver
PipeObject
GATE
APPLICAZIONI
PIPEOBJECT
LINKPLC
TRANSAZIONI
PLC
PLC
PLCDRIVER
SOFTNET
SENDRECEIVE
ALLNBRADLEYALLEN-BRADLEY
LINK
SOFTNET LINK
SENDRECEIVE LINK
![Page 13: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/13.jpg)
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
![Page 14: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/14.jpg)
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
![Page 15: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/15.jpg)
INIZIO
UNUSED
Entry / Link da servire = 0Do / Attende e inizial. driverExit / Link da servire > 0
ACTIVE
Entry / Link da servire > 0Do / Apre link, attende transazioni ed esegue transazioniExit / Links da servire = 0 oppure un link è in stato di errore per più di MaxOveralltime oppure è stata richiesta la chiusura del driver
STOPPED
Do / Finalizza il driver e rimuove i link.
FINE
RESTARTING
Do / Finalizza driver e terimina link
SIMULATION
Entry / Mod. sim. richiestaDo / Finalizza il driver e attende Exit / Mod. live richiesta
ERROR
Entry / Inizial. driver fallitaDo / Aspetta timeout
![Page 16: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/16.jpg)
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
![Page 17: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/17.jpg)
Screenshot Gate
![Page 18: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/18.jpg)
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
![Page 19: PALUZZANO PRELAUREA](https://reader033.vdocuments.pub/reader033/viewer/2022050907/5598bb611a28abb24a8b479d/html5/thumbnails/19.jpg)
Screenshot Board