PALUZZANO PRELAUREA
-
Upload
enrico-paluzzano -
Category
Documents
-
view
140 -
download
0
description
Transcript of PALUZZANO PRELAUREA
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 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.
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
APPLICAZIONI
PIPEOBJECT
LINKPLC
TRANSAZIONI
PLC
PLC
PLCDRIVER
SOFTNET
SENDRECEIVE
ALLNBRADLEYALLEN-BRADLEY
LINK
SOFTNET LINK
SENDRECEIVE LINK
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
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
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