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

PALUZZANO PRELAUREA

  • 1.
    Università degli studidi Trieste Dipartimento di Ingegneria ed Architettura Corso di studi in Ingegneria Informatica Laureando: Enrico PALUZZANO Relatore: prof. Alberto BARTOLI
  • 2.
    Introduzione  Il lavoropresentato è 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’organizzazionedegli 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  Ilsoftware 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 statodell’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  Afronte 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  Ilsoftware 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)  Percomunicare 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 / Linkda 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
  • 17.
  • 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
  • 19.