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