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

Post on 05-Dec-2014

238 views 2 download

description

 

transcript

REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL

CONTROLLO DI PROCESSO IN AMBITO INDUSTRIALE

Università degli studi di Trieste

Dipartimento di Ingegneria ed Architettura

Corso di studi in Ingegneria Informatica

Laureando:Enrico PALUZZANO

Relatore:prof. Alberto BARTOLI

IntroduzioneIl 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 aziendaleL’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 2Il software sviluppato nel livello 2 svolge

svariati compiti:calcolo dei piani di taglio per gli acciai specialicontrollo della composizione chimica

dell’acciaio…

Le necessità del software di questo livello sono:Conoscere lo stato dell’impiantoComandare 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 rilevatoriLeggere dalla memoria i comandi da inviare alle

macchine tramite gli attuatoriUn’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

differentiUtilizzano librerie proprietarie diverseNecessitano di comunicazioni robuste ed affidabili

Le applicazioni di livello 2 hanno la necessità di comunicare:Con più PLC nello stesso momentoIn maniera concorrente fra loroFrequentemente

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 comunicazioneIncorpora l’utilizzo di diversi protocolliPermette 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’arteIl software presentato in questa tesi è stato

sviluppato partendo da quello correntemente utilizzato.

Il software precedente:E’ scritto in linguaggio PascalUtilizza 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 WPFUtilizza 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 proprietariaApre il canale di comunicazioneEsegue 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à:PlcDriverPipeObjectGATE

APPLICAZIONI

PIPEOBJECT

LINKPLC

TRANSAZIONI

PLC

PLC

PLCDRIVER

SOFTNET

SENDRECEIVE

ALLNBRADLEYALLEN-BRADLEY LINK

SOFTNET LINK

SENDRECEIVE LINK

Comportamento delle classiIl PipeObject ha il compito di:

Ricevere le richieste di connessione da parte delle applicazioni

Passarle al corretto driver in esecuzioneRicevere ed accodare le richieste di lettura o scrittura

Il PlcDriver ha il compito di:Caricare le librerie proprietarieAprire le connessioni passategli dal PipeObject, con i PLCPrelevare dal PipeObject, se accodata, una Transazione

relativa alla connessione apertaEseguire la Transazione e salvarne il risultato all’interno del

PipeObjectRilasciare le librerie proprietarie

Sviluppo di PlcDriverE’ la classe ancestrale che definisce il

comportamento generale del driver Incorpora un thread per l’esecuzione ciclica

di una funzione chiamata ExecuteQuesta funzione è stata completamente

riprogettata e sviluppataE’ la più rilevante modifica apportata al

software precedenteSi 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 driverUna miglior chiarezza del codiceUn aumento delle prestazioni in alcune

situazioni

Screenshot Gate

L’applicazione di test: BoardIl Board è un’applicazione che simula il

comportamento di una normale applicazione del livello 2

Tramite il Board è possibile:Definire un Link ad un PLCLeggere dalla memoria del PLCScrivere sulla memoria del PLCLanciare delle funzioni di testControllare lo stato delle transazioni

Screenshot Board