Sei sulla pagina 1di 114

TESI DI LAUREA

COSTRUZIONE DI PROTOCOLLI
DI COMUNICAZIONE TRA PC E DISPOSITIVI
DI CONTROLLO

RELATORE

PROF. GIULIO DESTRI

CORRELATORE

ING. CESARE CHIODELLI

CANDIDATO

LUCA LODI RIZZINI

II

Ai miei genitori

III

IV

Ringraziamenti
Desidero innanzitutto ringraziare ling. Cesare Chiodelli e il prof. Giulio
Destri per aver permesso lo svolgimento del mio stage lavorativo presso la
ditta CS Soluzione, consentendomi di apprendere le basi per lo sviluppo di
software a livello professionale e impostando la stesura della mia tesi.
Un grazie anche a Luca Visioli, Alberto Picca e Marco Maltraversi per il
lavoro svolto insieme.
Ringrazio anche i miei compagni di universit Amadini, Lucia, Fabio e tutti
gli altri con cui ho passato questi quattro anni di studio e tutti gli amici
del mio paese che mi hanno sostenuto ed aiutato.
Ringrazio i miei genitori Curzio e Marina per essermi stati vicini e per
avermi supportato materialmente e moralmente, a cui dedico questo lavoro.
Un

ringraziamento

speciale

Nicole,

per

essermi

stata

vicino

sostenendomi nei momenti difficili del mio percorso di studio.


Vorrei salutare un mio grande amico Marco Belletti, conosciuto da tutti
come Kumbel , da poco deceduto in un incidente stradale.
Tu per me sei stato un ottimo amico di baraccate, grigliate , bevute e
tanto altro, non scorder mai il tuo sorriso che ti accompagnava in ogni
istante e la tua grande dinamicit.
Ciao Kumbel.

VI

Sommario
INTRODUZIONE ...............................................................................................................1
Il contesto del problema: la comunicazione digitale fra dispositivi................................................... 1
Come stato affrontato il lavoro......................................................................................................................... 2

LA COMUNICAZIONE DIGITALE ..................................................................................4


Le reti di comunicazioni ......................................................................................................................................... 4
Applicazioni delle reti............................................................................................................................................... 5
Aspetti hardware delle reti..................................................................................................................................... 6
Tecnologia trasmissiva ........................................................................................................................................... 6
Scala dimensionale.................................................................................................................................................. 8
Reti Locali .............................................................................................................................................................. 9
Reti metropolitane............................................................................................................................................. 11
Reti geografiche.................................................................................................................................................. 12
Interconnessione di reti ........................................................................................................................................ 15
Protocolli e aspetti software delle reti........................................................................................................... 16
Gerarchie di protocollo .......................................................................................................................................... 16
Architettura di rete ................................................................................................................................................. 18
Funzionamento del software di rete ................................................................................................................ 19
Servizi connection-oriented e connectionless............................................................................................. 21
Servizi connection-oriented................................................................................................................................. 21
Servizi connectionless........................................................................................................................................... 22
Affidabilit del servizio .......................................................................................................................................... 23
Servizi vs protocolli................................................................................................................................................. 24
Aspetti di progetto dei livelli ............................................................................................................................... 24
Il modello ISO/OSI................................................................................................................................................... 26
Livello fisico......................................................................................................................................................... 28
Livello Data Link................................................................................................................................................ 29
Livello Network................................................................................................................................................... 29
Livello Transport................................................................................................................................................ 30
Livello Session .................................................................................................................................................... 31
Livello Presentation........................................................................................................................................... 31
Livello Application ............................................................................................................................................. 31
Internet Protocol Suite o TCP/IP....................................................................................................................... 31
Livello host-to-network.................................................................................................................................... 32
Livello Internet ................................................................................................................................................... 33
Livello Transport................................................................................................................................................ 33
Livello Application ............................................................................................................................................. 33

VII

Confronto fra modello di riferimento OSI e architettura TCP/IP............................................................ 34


Confronto fra pile di protocolli OSI e TCP/IP................................................................................................ 35
LE RETI NEL MONDO REALE: PROBLEMI E STANDARD FISICI.......................................................... 36
Un limite per le reti: il rumore e i disturbi elettromagnetici ............................................................... 36
Trattazione matematica del rumore ................................................................................................................. 36
I tipi di rumore........................................................................................................................................................ 38
Disturbi elettromagnetici..................................................................................................................................... 39
Lo standard pi diffuso ai livelli 1 e 2: Ethernet........................................................................................ 41
I motivi del successo ............................................................................................................................................. 42
Il Frame ..................................................................................................................................................................... 43
Indirizzo Ethernet .................................................................................................................................................. 44
Tipologia di trasmissione ..................................................................................................................................... 44
Ethernet con ripetitori e hub.............................................................................................................................. 47
Uno standard diffusissimo per le reti corte: seriale o RS-232.......................................................... 48
Utilizzi ........................................................................................................................................................................ 49
Storia dello standard............................................................................................................................................. 50
Definizione................................................................................................................................................................ 50
Le unit di misura ................................................................................................................................................. 51
Come fatto un segnale EIA RS-232............................................................................................................... 52
Il bit di parit........................................................................................................................................................... 54

I SISTEMI PER LAUTOMAZIONE INDUSTRIALE ...................................................55


Architetture tipiche dei sistemi ........................................................................................................................ 55
La piramide CIM........................................................................................................................................................ 57
Descrizione dei livelli............................................................................................................................................. 57
Livello 0: sensori, attuatori, tools legati al processo esecutivo........................................................... 57
Livello 1: Controllo di macchina ................................................................................................................... 58
Livello 2: Controllo di cella ............................................................................................................................. 58
Livello 3: Controllo di area ............................................................................................................................. 59
Livello 4: mainframe per il governo del management, gestione commesse e amministrazione
centrale delle attivit di fabbrica (pianificazione della gestione globale). ........................................ 59
Lo Scada e le sue caratteristiche....................................................................................................................... 60
Acquisizione dati .................................................................................................................................................... 62
Supervisione ............................................................................................................................................................ 63
Controllo ................................................................................................................................................................... 64
Il Plc e le sue caratteristiche............................................................................................................................... 67
Funzionamento ....................................................................................................................................................... 68
Struttura del PLC................................................................................................................................................... 69
Cpu ............................................................................................................................................................................. 69
Schede di comunicazione .................................................................................................................................... 70

CANALI DI COMUNICAZIONE PER LAUTOMAZIONE ...........................................71


Caratteristiche generali dei protocolli usati per lautomazione.......................................................... 71
Sistemi seriali vs Sistemi ethernet .................................................................................................................. 72
I protocolli dei sistemi Omron............................................................................................................................ 73
C-Command............................................................................................................................................................. 73
Fins .............................................................................................................................................................................. 76

VIII

Strumenti misti : i bridge ethernet-seriali e le loro caratteristiche .................................................. 80

UNAPPLICAZIONE CONCRETA: CONTROLLO DI PLC OMRON ..........................82


Obiettivo del progetto ............................................................................................................................................ 82
Larchitettura del nuovo sistema ...................................................................................................................... 84
I sistemi controllati................................................................................................................................................. 85
I Plc e le strutture associate................................................................................................................................ 86
Lo Scada e le sue caratteristiche....................................................................................................................... 87
La base di dati per la persistenza ...................................................................................................................... 88
Visione di insieme.................................................................................................................................................... 93

IL LAVORO OPERATIVO ..............................................................................................96


Difficolt incontrate................................................................................................................................................ 96
Correzioni in corso dopera.................................................................................................................................. 97

CONCLUSIONI ................................................................................................................99
Il sistema in esecuzione ........................................................................................................................................ 99
Bilancio del lavoro svolto...................................................................................................................................... 99
Applicazioni e ampliamenti futuri .................................................................................................................. 100

INDICE DELLE FIGURE..............................................................................................102


BIBLIOGRAFIA .............................................................................................................104

IX

INTRODUZIONE
Il contesto del problema: la comunicazione digitale fra dispositivi
Oggetto di questa tesi quello di implementare un protocollo per
comunicazioni digitali in ambito di rete locale per far comunicare fra loro
sistemi digitali che svolgono compiti completamente diversi. Da un lato
abbiamo lentit composta da uno o pi PC che ospitano gli applicativi di
supervisione.

Tali

applicativi

servono

sia

rendere

disponibile

uninterfaccia uomo-macchina , semplice e snella , per coloro che utilizzano


le applicazioni, mascherando nel contempo la complessit dei dati e delle
metodologie di comunicazione fra le varie componenti, sia a svolgere le
funzioni di supervisione al normale funzionamento degli apparati cui sono
connessi. Gli applicativi sono connessi anche ad un DBMS avente la
funzione di memorizzare sia i dati di configurazione impostati dagli utenti
sia i numerosi dati acquisiti dagli apparati.. Allaltro capo della rete sono
apparati PLC, (Programmable Logic Controller). Un PLC , in pratica, un
dispositivo programmabile, dotato di ingressi e uscite analogiche e digitali e
una o pi connessioni di reti, specializzato nella gestione dei processi
industriali. Il PLC esegue un programma ed elabora i segnali digitali ed
analogici provenienti dai sensori ricevuti attraverso gli ingressi , generando
sulle proprie uscite i corrispondenti comandi per gli attuatori presenti in
un impianto industriale, i quali riescono a gestire una moltitudine di
funzioni dalla pi elementare (rilevare la temperatura, accendere una
lampadina, ecc..) alle pi sofisticate e complesse (muovere un braccio
meccanico, programmare laccensione/avviamento di macchine, automi,
ecc..). La tesi si propone di realizzare l implementazione dei protocolli
standard che, nellambito di contesti aziendali operativi, con tutti i vincoli
che caratterizzano tali ambienti, permettendo la comunicazione efficiente
fra PC e PLC su supporti di rete Ethernet-TCP\IP e RS-232. Nella seconda
1

parte della tesi verr presentata lapplicazione operativa dei software cos
sviluppati entro il contesto di
realizzare la

unazienda di medie dimensioni, per

gestione integrata di

alcuni impianti tecnologici come ad

esempio lapertura e chiusura meccanica di porte e finestre, laccensione


della

fontana

situata

nel

giardino

dellazienda,

lavviamento

di

riscaldamento e climatizzatore e, oltre a questi aspetti prettamente


domotici, per gestire anche laccensione e spegnimento di impianti
propriamente industriali, quali bruciatori, compressori, presse. Il tirocinio e
lallegato progetto sono stati compiuti presso lazienda CS Soluzioni di
Casalmaggiore (CR).

Come stato affrontato il lavoro


I

protocolli

di

comunicazione

da

realizzare

devono

essere

snelli,

minimizzando gli overhead di carico, per permettere un comunicazione in


tempo reale ma, allo stesso tempo, anche robusti rispetto a diversi tipi di
canale fisico(Ethernet,RS-232) ad adatti ad un applicazion a sistemi reali.
La tesi e stata svolta operando in particolare con i sistemi PLC Omron,
tecnologia italiana molto diffusa presso le medie imprese. Omron utilizza
due

protocolli,

comunicazione:

proprietari
il

ma

protocollo

ampliamente
C-Command,

documentati,
pi

vecchio,

per

la

per

la

comunicazione su canale RS-232 ed il protocollo FINS, pi recente e


completamente rinnovato rispetto al precedente per la comunicazione su
canali TCP/IP su Ethernet. La prima parte della tesi consistita nello
studio dei due protocolli, cui e seguita limplementazione, debug e verifica
su

piattaforma

hardware

reale

dei

due

protocolli,

realizzando

la

trasmissione bidirezionale di byte ed array di byte, contenenti le


informazioni opportune, tra la memoria del PC e la memoria del PLC,
utilizzando il linguaggio C# di microsoft con lambiente di sviluppo
integrato Visual Studio 2008. Una volta ottenuto una comunicazione
bidirezionale funzionate efficace, le librerie di comunicazione cos ottenute
2

sono state integrate in un sistema molto complesso atto a governare reti di


PLC Omron che controllano impianti industriali quali compressori,
bruciatori, ventilatori e infrastrutture edilizie come le finestre superiori dei
capannoni. Tale sistema costituito da una piattaforma SCADA con
opportuna interfaccia utente , realizzata completamente il linguaggio C#
con architettura pienamente Objet-oriented e stratificata, da una base di
dati in un RDBMS Oracle 10g Express, dalle librerie di comunicazione e da
reti di PLC Omron, connessi ai PC industriali ove operano le console
grafiche dello SCADA in alcuni casi tramite connessione RS-232 e in alcuni
casi tramite Ethernet. E stato inoltre verificato luso di un componente di
conversione seriale-Ethernet che per, per poter essere utilizzato nelle sue
piene potenzialit, ha richiesto linserimento di nuove strutture software
nel sistema. In collaborazione con le persone di CS Soluzioni incaricate
della realizzazione del sistema si contribuito ad ogni sua fase, in
particolare al design della base di dati, come sar presentato in dettaglio
nei capitoli seguenti. La struttura

della tesi nei capitoli successivi la

seguente: Saranno presentate in primo luogo le reti di comunicazione, per


contestualizzare in modo adeguato il cuore del lavoro, ossia lo sviluppo del
protocollo di comunicazione. Successivamente sar presentato in dettaglio
il contesto software di super visione entro i sistemi di automazione
industriale e , in particolare , la struttura dei protocolli Fins e C-Command
di Omron; Nel capitolo seguente sar presentato il progetto svolto nei suoi
vari aspetti, partendo dalle librerie di comunicazione per arrivare ala
visione del sistema nel suo insieme. Infine saranno presentate le
conclusioni con un bilancio del lavoro svolto ed eventuali prospettive di
sviluppo.

LA COMUNICAZIONE DIGITALE
Le reti di comunicazioni
Il 900 fu, dal punto di vista della strumentazione tecnologica, un
susseguirsi

di

successi.

Principalmente

nell

ultimo

cinquantennio,

lattenzione degli studiosi fu rivolta a nuove metodologie di informazione,


che possono essere sintetizzate in tre punti:
raccolta e memorizzazione;
elaborazione;
distribuzione.
Nel nostro secolo si sono via via diffusi:
il sistema telefonico, a livello mondiale;
la radio e la televisione;
il computer;
i satelliti per telecomunicazioni.
Queste tecnologie stanno rapidamente convergendo, in particolare, la
combinazione di elaboratori e sistemi di telecomunicazione ha avuto una
profonda influenza sull'organizzazione dei sistemi di calcolo. Infatti si
passati dal vecchio modello mainframe - terminali, in cui la potenza di
calcolo concentrata in un unico grande elaboratore, a cui si accede per
mezzo di un certo numero di terminali, a quello attuale, in cui vi un
grande numero di elaboratori autonomi, interconnessi fra loro.

Per

autonomi si vuole intendere che non deve esserci fra loro una relazione tipo
master/slave (ad es., l'uno non pu forzare lo spegnimento dell'altro) bens
interconnessione

che

sta

significare

la

capacit

di

scambiarsi

informazioni (sfruttando un opportuno mezzo fisico). Un sistema di calcolo


siffatto detto rete di elaboratori o computer network. Rete di elaboratori
non sinonimo di sistema distribuito. Infatti in un sistema distribuito
l'esistenza di pi elaboratori invisibile all'utente, che ha l'impressione di
avere a che fare con un unico sistema di calcolo; in una rete di elaboratori,
4

l'utente conscio dell'esistenza di molteplici elaboratori, che devono essere


esplicitamente riferiti.

Applicazioni delle reti


Moltissimi sono gli usi delle reti di elaboratori, sia per le organizzazioni che
per i singoli individui. Per le aziende, associazioni, organizzazione si
possono sintetizzare in questi piccoli punti:
condivisione di risorse: si possono rendere disponibili a qualsiasi
programma e informazioni anche distanti migliaia di km;
affidabilit: si ottiene mettendo in rete sorgenti alternative delle
risorse (ad es. duplicando le applicazioni e i dati su pi computer).
E' importante in sistemi che devono funzionare a tutti i costi
(traffico aereo, centrali nucleari, sistemi militari, ecc.);
diminuzione dei costi: una rete di personal computer costa molto
meno di un mainframe. A volte alcuni elaboratori sono pi potenti
ed offrono agli altri dei servizi (modello client-server, vedi figura
sottostante);
scalabilit: si possono aumentare le prestazioni del sistema
aumentando il numero di elaboratori (entro certi limiti);
comunicazione

fra

persone:

possibile

inviarsi

messaggi,

scambiarsi file, ecc.

Elab. cliente

Elab. server

Proc. cliente

Proc. server

Richiesta

Rete

Risposta

Figura 1-1: Il modello client-server

Per i singoli individui (di solito da casa propria tramite "fornitori di


accesso": viene usata per laccesso ad informazioni remote, (ad es.:accesso
a servizi bancari, acquisti da casa; navigazione sul World Wide Web);
oppure per la comunicazioni fra persone (posta elettronica); divertimento:
video on demand (selezione e ricezione via rete di un qualunque spettacolo
tratto da un catalogo); giochi interattivi (contro macchine o avversari
umani).

Aspetti hardware delle reti


I due parametri utili per definire le caratteristiche di una rete, anche se
non vi una tassonomia universalmente accettata, sono:
la tecnologia trasmissiva e la scala dimensionale.

Tecnologia trasmissiva
Esistono due tipologie per quanto riguarda la tecnologia trasmissiva e sono:
le reti broadcast

e le reti punto a punto. Una rete broadcast

caratterizzata da processi di comunicazione punto-multipunto, in cui i


singoli nodi sono connessi tramite lo stesso supporto trasmissivo. Se sono
presenti supporti trasmissivi di tipo diverso occorre che alcuni nodi
svolgano

la

funzione

di

gateway

(repeater

bridge)

rigenerando
6

l'informazione in modo da essere propagata sul nuovo supporto. In alcuni


casi possibile che si voglia impedire tale funzionalit e quindi il gateway
sar sostituito da un router configurato per filtrare il traffico (firewall).
Se gli elementi della rete utilizzano supporti trasmissivi condivisi, il
principale problema che necessario affrontare la gestione dei conflitti
nell'uso della rete, per cui esistono diverse tecniche di gestione e di
risoluzione (aloha,csma,csma/cd ...). Le reti broadcast sono dotate di un
unico "canale" di comunicazione che condiviso da tutti gli elaboratori.
Brevi messaggi, spesso chiamati pacchetti, inviati da un elaboratore sono
ricevuti da tutti gli altri elaboratori. Un indirizzo all'interno del pacchetto
specifica il destinatario.

Elaboratori

Rete

Figura 1-2: una rete broadcast

Quando un elaboratore riceve un pacchetto, esamina l'indirizzo di


destinazione; se questo coincide col proprio indirizzo il pacchetto viene
elaborato, altrimenti viene ignorato.

Le reti broadcast, in genere,

consentono anche di inviare un pacchetto a tutti gli altri elaboratori,


usando

un

opportuno

indirizzo

(broadcasting).

Tutti

prendono

in

considerazione il pacchetto. Un'altra possibilit inviare il pacchetto ad un


sottoinsieme degli elaboratori (multicasting). In tal caso solo gli elaboratori
di tale sottoinsieme lo prendono in considerazione, gli altri lo ignorano. Le
reti punto a punto consistono invece in un insieme di connessioni fra
coppie di elaboratori.

Pacchetto

Elaboratore

Connessione

Figura 1-3: una rete punto a punto

Per arrivare dalla sorgente alla destinazione, un pacchetto pu dover


attraversare uno o pi elaboratori o nodi intermedi. Spesso esistono pi
cammini alternativi, per cui gli algoritmi di instradamento (routing) hanno
un ruolo molto importante. In generale le reti geograficamente localizzate
tendono ad essere broadcast; mentre le reti geograficamente molto estese
tendono ad essere punto a punto. Esistono per alcune eccezioni, ad
esempio la rete geografica realizzata via satellite (e quindi broadcast) ed
infine la rete locale basata su ATM (e quindi punto a punto).

Scala dimensionale
Un criterio alternativo di classificazione la scala dimensionale delle reti.
In questo contesto si distinguono: reti locali, reti metropolitane e reti
geografiche.

Distanza fra processori Ambito

Tipo di rete

10 m.

Stanza

Rete locale

100 m.

Edificio

Rete locale

1 km.

Campus

Rete locale

10 km.

Citt

Rete metropolitana

100 km.

Nazione

Rete geografica

1000 km.

Continente

Rete geografica

10.000 km.

Pianeta

Internet
(Rete geografica)

La distanza un fattore molto importante, poich a differenti scale


dimensionali si usano differenti tecniche.

Reti Locali
Le reti locali (Local Area Network, LAN), in genere sono possedute da una
organizzazione (reti private), hanno un'estensione che arriva fino a qualche
km, si distendono nell'ambito di un singolo edificio o campus (non si
possono, di norma, posare cavi sul suolo pubblico), sono utilizzate
prevalentemente per connettere PC o workstation. Esse si distinguono dagli
altri tipi di rete per tre caratteristiche diverse: La prima la dimensione
che non pu andare oltre un certo limite, per cui noto a priori il tempo e
quindi il ritardo di trasmissione. Questa conoscenza permette di utilizzare
delle tecniche particolari per la gestione del canale di comunicazione.
La seconda la tecnologia trasmissiva. Le LAN sono in generale reti
broadcast. Velocit di trasmissione tipiche sono da 10,100,1000 Mbps con
basso ritardo di propagazione del segnale da un capo all'altro del canale e
basso tasso di errore. Ultima ma non meno importante la topologia: sono
possibili diverse topologie, le pi diffuse alcuni anni fa erano il bus ed il
ring. Nellambito della topologia bus in ogni istante solo un elaboratore pu
9

trasmettere, gli altri devono astenersi, inoltre necessario un meccanismo


di arbitraggio per risolvere i conflitti quando due o pi elaboratori vogliono
trasmettere contemporaneamente e l'arbitraggio pu essere centralizzato o
distribuito; lo standard IEEE 802.3 (chiamato impropriamente Ethernet)
per una rete broadcast, basata su un bus, con arbitraggio distribuito,
operante a 10,100 oppure 1000 Mbps; infine gli elaboratori trasmettono
quando vogliono; esistono alcuni protocolli, che permettono di evitare le
collisioni. Nella topologia ring ogni bit circumnaviga l'anello in un tempo
tipicamente inferiore a quello di trasmissione di un pacchetto. Anche qui
necessario un meccanismo di arbitraggio (spesso basato sul possesso di un
gettone (token) che abilita alla trasmissione. Lo standard IEEE 802.5
(derivante dalla rete IBM Token Ring) una rete broadcast basata su ring,
con arbitraggio distribuito, operante a 4 o 16 Mbps.

Ring

Bus

Figura 1-4: topologie bus e ring

Infine le reti broadcast possono essere classificate a loro volta

in due

sottogruppi a seconda del meccanismo scelto per l'arbitraggio. Il primo


allocazione statica: le regole per decidere chi sar il prossimo a trasmettere
sono fissate a priori, ad esempio assegnando un time slot ad ogni
elaboratore con un algoritmo round-robin. Lo svantaggio rappresentato
dallo spreco dei time slot assegnati a stazioni che non devono trasmettere.
Il secondo allocazione dinamica: si decide di volta in volta chi sar il
prossimo a trasmettere; necessario un meccanismo di arbitraggio delle
10

contese, che pu essere anche in questo caso un arbitraggio centralizzato,


unapposita apparecchiatura, ad esempio, una bus arbitration unit, che
accetta richieste di trasmissione e decide chi abilitare oppure pu essere
un arbitraggio distribuito: ognuno decide per conto proprio.

Reti metropolitane
Le

reti

metropolitane

(Metropolitan

Area

Network,

MAN)

hanno

un'estensione tipicamente urbana (quindi anche molto superiore a quella di


una LAN) e sono generalmente pubbliche (cio un'azienda, ad es. Telecom
Italia, Ommitel, Infostrada mettono la rete a disposizione di chiunque
desideri, previo pagamento di una relativa tariffa). Fino a qualche anno fa
erano basate essenzialmente sulle tecnologie delle reti geografiche,
utilizzate su scala urbana. Recentemente per stato definito un apposito
standard, lo IEEE 802.6 o DQDB (Distributed Queue Dual Bus), che
effettivamente impiegato in varie realizzazioni, molto pi vicino alla
tecnologia LAN che WAN. Esiste un mezzo trasmissivo di tipo broadcast
(due bus in 802.6) a cui tutti i computer sono attaccati.

Head end

Flusso

Elaboratore

Head end
Flusso

Figura 1-5: Distributed Queue Dual Bus

Ogni bus (cavo coassiale o fibra ottica) unidirezionale, ed ha una headend che modula l'attivit di trasmissione.
11

Reti geografiche
Le reti geografiche (Wide Area Network, WAN) si estendono a livello di una
nazione, di un continente o dell'intero pianeta. Una WAN tipicamente
costituita da due componenti distinte: un insieme di elaboratori (host
oppure end system), sui quali girano i programmi usati dagli utenti una
comunication subnet (o subnet), che connette gli end system fra loro. Il suo
compito trasportare messaggi da un end system all'altro, cos come il
sistema telefonico trasporta parole da chi parla a chi ascolta. Di norma la
subnet costituita, a sua volta, da due componenti: linee di trasmissione
(dette anche circuiti, canali, trunk) e elementi di commutazione (switching
element). Gli elementi di commutazione sono elaboratori specializzati
utilizzati per connettere fra loro due o pi linee di trasmissione. Quando
arrivano dati su una linea, l'elemento di commutazione deve scegliere una
linea in uscita sul quale instradarli. Non esiste una terminologia standard
per identificare gli elementi di commutazione. Termini usati sono i sistemi
intermedi, i nodi di commutazione pacchetti o router. Una tipica WAN
utilizzata per connettere pi LAN fra loro:

WAN
Router

Subnet

Host

LAN

Linea di trasmiss.

Figura 1-6: struttura tipica di una WAN

12

In generale una WAN contiene numerose linee (spesso telefoniche), che


congiungono coppie di router. Ogni router, in generale, deve: ricevere un
pacchetto da una linea in ingresso, memorizzarlo per intero in un buffer
interno ed infine, appena la necessaria linea in uscita libera, instradare il
pacchetto su essa. Una subnet basata su questo principio pu essere
chiamata: punto a punto, store and forward o a commutazione di pacchetto
(packet switched).Molte topologie di interconnessione possono essere
impiegate fra i router:
a stella (ridondanza zero);
ad anello (ridondanza zero);
ad albero (ridondanza zero);
magliata (ridondanza media);
completamente connessa (ridondanza massima).

Anello

Stella

Magliatura

Albero

Compl. connessa

Figura 1-7: topologie di interconnessione

13

Un'altra possibilit una WAN basata su satellite oppure radio al suolo.


Utilizzando il satellite cio ogni router sente l'output del satellite e invia a
sua volta dati al satellite. Dunque, in generale si ha un broadcast downlink
(cio dal satellite a terra) e broadcast uplink (cio da terra al satellite) .
Satellite

Uplink
beam

Downlink
beam

Router + antenna

Router + antenna

Figura 1-8: interconnessione di router via satellite

Ogni router quindi utilizza onde Radio al suolo: ogni router sente l'output
dei propri vicini (entro una certa distanza massima) ed anche in questo
caso siamo in presenza di una rete broadcast.

Area di copertura del segnale

Router + antenna

Router + antenna

Router + antenna

Figura 1-9: interconnessione di router via radio al suolo

Una WAN pu essere anche realizzata in maniera mista: in parte cablata,


in parte basata su radio o satellite.

14

Interconnessione di reti
Una interconnessione di reti, talvolta anche chiamata internetwork,
formata quando reti diverse (sia LAN che MAN o WAN) sono collegate fra
loro. A prima vista, almeno in alcuni casi, la cosa apparentemente uguale
alla definizione di WAN vista precedentemente (se al posto di subnet si
scrive WAN, abbiamo una internetwork costituita da una WAN e quattro
LAN). Alcuni problemi per sorgono quando si vogliono connettere fra di
loro reti progettualmente diverse (spesso incompatibili fra loro). In questo
caso si deve ricorrere a speciali attrezzature, dette gateway (o router
multiprotocollo), che, oltre ad instradare i pacchetti da una rete all'altra,
effettuano le operazioni necessarie per rendere possibili tali trasferimenti.

WAN 1

WAN 1

Router multiprotocollo
(gateway)

Figura 1-10: interconnessione di reti

In questo contesto e concretamente utilizzata questa terminologia:


internet come sinonimo di internetwork, cio la interconnessione di pi reti
generiche; ed Internet (con la I maiuscola) per riferirsi alla specifica
internetwork, basata su TCP/IP, che ormai tutti conoscono.
L uso della terminologia non sempre preciso ed univoco.
Si indica:
con sottorete (subnet): l'insieme dei router e delle linee di
trasmissione;
con rete (network): una subnet pi tutti gli host collegati;
15

con internetwork: una collezione di pi network, anche non


omogenee, collegate per mezzo di gateway.

Host

Host
Gateway

Subnet

Subnet

Network

Network
Internetwork

Figura 1-11: relazioni fra subnet, network e internetwork

Protocolli e aspetti software delle reti


Le prime reti furono progettate cominciando dall'hardware e sviluppando il
software solo successivamente, quasi come se esso fosse un'accessoria
appendice dell'hardware. Questo approccio non pu pi funzionare.
Il SW di rete oggi altamente strutturato.

Vogliamo esaminare ora, a

grandi linee, tale strutturazione, che servir come base per introdurre il
lavoro svolto.

Gerarchie di protocollo
Per ridurre la complessit di progetto, le reti sono in generale organizzate a
livelli, ciascuno costruito sopra il precedente.

Fra un tipo di rete ed

unaltra possono essere diversi: il numero, i nomi, il contenuto e le funzioni


dei livelli. Comunque sempre rispettato il principio generale secondo il
16

quale lo scopo di un livello offrire certi servizi ai livelli pi alti,


nascondendo i dettagli sul come tali servizi siano implementati.
Il livello n su un host porta avanti una conversazione col livello n su
di un'altro host.
Le regole e le convenzioni che governano la comunicazione

sono

collettivamente indicate col termine di protocollo.


Le entit (processi) che effettuano tale conversazione si chiamano
peer entity (entit di pari livello).

HOST 1
Livello 5

HOST 2
Protocollo
di livello 5

Livello 5
Interfaccia liv. 4/5

Interfaccia liv. 4/5


Livello 4

Protocollo
di livello 4

Livello 4
Interfaccia liv. 3/4

Interfaccia liv. 3/4


Livello 3

Protocollo
di livello 3

Livello 3
Interfaccia liv. 2/3

Interfaccia liv. 2/3


Livello 2

Protocollo
di livello 2

Livello 2
Interfaccia liv. 1/2

Interfaccia liv. 1/2


Livello 1

Protocollo
di livello 1

Livello 1

Mezzo fisico

Figura 1-12: Dialogo fra peer entity

In realt non c' un trasferimento diretto dal livello n di host 1 al livello n di


host 2. Ogni livello di host 1 passa i dati, assieme a delle informazioni di
controllo, al livello sottostante. Al di sotto del livello 1 c' il mezzo fisico,
attraverso il quale i dati vengono trasferiti da host 1 ad host 2. Quando
arrivano a host 2, i dati vengono passati da ogni livello (a partire dal livello
1) a quello superiore, fino a raggiungere il livello n. Fra ogni coppia di livelli
adiacenti definita una interfaccia, che caratterizza sia le operazioni
primitive, che possono essere richieste al livello sottostante e i servizi, che
17

possono essere offerti dal livello sotto di esso. I vantaggi di una buona
progettazione delle interfacce sono la minimizzazione delle informazioni da
trasferire e la possibilit di modificare l'implementazione del livello (ad es.,
ove le linee telefoniche venissero sostituite da canali satellitari) con una pi
attuale che offra gli stessi servizi.

Architettura di rete
L'insieme dei livelli e dei relativi protocolli detto architettura di rete. La
specifica dell' architettura deve essere abbastanza dettagliata da consentire
la realizzazione di SW e/o HW che, per ogni livello, rispetti il relativo
protocollo. Viceversa, i dettagli implementativi di ogni livello e le interfacce
fra livelli non sono parte dell'architettura, in quanto sono nascosti
all'interno di un singolo host. E' quindi possibile che sui vari host della rete
ci siano implementazioni che differiscono fra di loro anche in termini di
interfacce fra livelli, purch ogni host implementi correttamente i protocolli
previsti dall'architettura. In questo caso possono dialogare fra loro anche
host aventi caratteristiche (processore, sistema operativo, costruttore)
diverse. Dunque, nell'ambito di una specifica architettura di rete, si ha che
tutti gli host devono contenere implementazioni conformi in termini di
livelli e di protocolli. Un'architettura di rete pu essere: proprietaria,
standard de facto, standard de iure.
Un'architettura proprietaria basata su scelte indipendenti ed arbitrarie
del costruttore ed generalmente incompatibile con architetture diverse.
Nel senso pi stretto del termine un'architettura per la quale il
costruttore non rende pubbliche le specifiche, per cui nessun altro pu
produrre apparati compatibili. Alcuni esempi sono IBM SNA (System
Network Architecture), Digital Decnet Phase IV; Novell IPX e Appletalk.
Un'architettura standard de facto un'architettura basata su specifiche di
pubblico dominio (per cui diversi costruttori possono proporre la propria
18

implementazione) che ha conosciuto una larghissima diffusione. Lesempio


lampante di questa architettura Internet Protocol Suite (detta anche
architettura TCP/IP).
Un'architettura standard de iure un'architettura basata su specifiche
(ovviamente di pubblico dominio) approvate da enti internazionali che si
occupano di standardizzazione. Anche in questo caso ogni costruttore pu
proporne una propria implementazione.

Nello specifico possono essere

considerate standard de iure standard IEEE 802 per le reti locali;


architettura OSI (Open Systems Interconnection) e Decnet Phase V
(conforme allo standard OSI). L'insieme dei protocolli utilizzati su un host e
relativi ad una specifica architettura di rete va sotto il nome di pila di
protocolli

(protocol

stack).

Si

noti

che

un

host

pu

avere

contemporaneamente attive pi pile di protocolli per eventualmente


comunicare con host differenti.

Funzionamento del software di rete


Per comprendere i meccanismi basilari di funzionamento del software di
rete si pu pensare alla seguente analogia umana, nella quale un filosofo
indiano vuole conversare con uno stregone africano:

Filosofo ind
(parla solo industano)

Traduttore

Segretaria

Dialogo sui
massimi sistemi

Uso della
lingua inglese

Uso del
fax

Stregone africano
(parla solo swahili)

Traduttore

Segretaria

Mezzo fisico

Figura 1-13: Dialogo fra grandi menti

19

Nel caso delle reti, la comunicazione fra le due entit di livello superiore
avviene con una modalit che, almeno in linea di principio, uguale in
tutte le architetture di rete:

HOST 1
M

H4

H3 H4 M1

H2 H3 H 4 M1 T2

H 3 M2

H2 H3 M2 T2

Protocollo
di livello 5

Protocollo
di livello 4

Protocollo
di livello 3

Protocollo
di livello 2

HOST 2
M

H4

H3 H4 M1

H2 H 3 H 4 M1 T2

H3 M2

H 2 H3 M2 T2

Canale
fisico

Figura 1-14: Flusso dell'informazione fra peer entity

Il programma applicativo (livello 5) deve mandare un messaggio M alla sua


peer entity. Il livello 5 consegna M al livello 4 per la trasmissione, il livello
4 aggiunge un suo header in testa al messaggio questo header contiene
informazioni di controllo, tra le quali: numero di sequenza del messaggio;
dimensione del messaggio, time stamp e priorit. Il livello 4 consegna il
risultato al livello 3, il quale pu trovarsi nella necessit di frammentare i
dati da trasmettere in unit pi piccole, (pacchetti) a ciascuna delle quali
aggiunge il suo header. Il livello 3 passa i pacchetti al livello 2. A questo
20

punto il livello 2 aggiunge ad ogni pacchetto il proprio header (e magari un


trailer) e lo spedisce sul canale fisico; nella macchina di destinazione i
pacchetti

fanno

il

percorso

inverso,

con

ogni

livello

che

elimina

(elaborandoli) l'header ed il trailer di propria competenza, e passa il resto al


livello superiore. Si possono definire alcuni aspetti importanti: le peer
entity pensano concettualmente ad una comunicazione orizzontale fra loro,
basata sul protocollo del proprio livello, mentre in realt comunicano
ciascuna col livello sottostante attraverso l'interfaccia fra i due livelli;
spesso i livelli bassi sono implementati in hardware o firmware (per ragioni
di efficienza). Nonostante questo, spesso gli algoritmi di gestione sono
complessi.

Servizi connection-oriented e connectionless


Ci sono due principali classi di servizi offerti da un livello a quello
superiore: servizi connection-oriented e servizi connectionless.
Servizi connection-oriented
I servizi connection-oriented sono modellati secondo il sistema telefonico,
dove per parlare con qualcuno si alza il telefono, si chiama, si parla e poi si
riattacca. Ovvero: si stabilisce una connessione; si scambiano informazioni
e si rilascia la connessione. Analogamente, un servizio connection-oriented
si sviluppa in 3 fasi:
1. si stabilisce una connessione, cio si crea con opportuni mezzi un
"canale di comunicazione" fra la sorgente e la destinazione. La relativa
attivit tipicamente coinvolge un certo numero di elaboratori nel
cammino fra sorgente e destinazione;
2. la connessione, una volta stabilita, agisce come un tubo digitale lungo il
quale scorrono tutti i dati trasmessi, che arrivano nello stesso ordine in
cui sono partiti;
21

3. si rilascia la connessione (attivit che coinvolge di nuovo tutti gli


elaboratori sul cammino).

Pacchetto

Sorgente

Destinazion
Connessione

(a)

Sorgente

Destinazion

(b)

Figura 1-15: Servizi connection-oriented (a) e connectionless (b)

Servizi connectionless
I servizi connectionless sono modellati secondo il sistema postale: ogni
lettera viaggia indipendentemente dalle altre; arriva quando arriva, e forse
non arriva. Inoltre, due lettere con uguale mittente e destinatario possono
viaggiare per strade diverse. Analogamente, in un servizio connectionless, i
22

pacchetti viaggiano indipendentemente gli uni dagli altri, possono prendere


strade diverse ed arrivare in ordine diverso da quello di partenza o non
arrivare affatto.

La fase una sola : invio del pacchetto (corrisponde

all'immissione della lettera nella buca).

Affidabilit del servizio


Un servizio generalmente caratterizzato dall'essere o no affidabile
(reliable). Un servizio affidabile non perde mai dati, cio assicura che tutti i
dati spediti siano consegnati al destinatario. Ci generalmente richiede che
il ricevente invii un acknowledgement (conferma) alla sorgente per ogni
pacchetto ricevuto.

Si introduce ovviamente overhead, che in certe

situazioni pu non essere desiderabile.

Viceversa, un servizio non

affidabile non offre la certezza che i dati spediti arrivino effettivamente a


destinazione.

Si noti che se un certo livello non offre nessun servizio

affidabile, qualora tale funzionalit sia desiderata dovr essere fornita da


almeno uno dei livelli superiori (cosa che accade spesso). Si propongono
ora alcuni esempi di protocolli specifici aventi lo scopo di migliorare
laffidabilit:
reliable connection oriented: trasferimento di file (non devono
mancare pezzi e il file non deve essere "rimescolato");
non reliable connection oriented: nelle trasmissioni isocrone
(stremming audio e video ) le relazioni temporali fra i bit del
flusso devono essere mantenute. E' meglio qualche disturbo
ogni

tanto,

piuttosto

che

interruzioni

momentanee,

ma

avvertibili del flusso di dati;


non reliable connectionless (detto anche datagram service, da
telegram): distribuzione di posta elettronica pubblicitaria, non
importa se qualche messaggio si perde.

23

reliable connectionless (detto anche acknowledged datagram


service): si invia un breve messaggio e si vuole essere
assolutamente sicuri che arrivato.

Servizi vs protocolli
Servizi e protocolli sono spesso confusi, ma sono concetti ben distinti. Il
servizio un insieme di operazioni primitive che un livello offre al livello
superiore. Come queste operazioni siano implementate non riguarda il
livello superiore. Mentre il protocollo rappresenta un insieme di regole che
governano il formato ed il significato delle informazioni (messaggi, frame,
pacchetti) che le peer entity si scambiano fra loro.

Le entit usano i

protocolli per implementare i propri servizi

HOST 1

HOST 2
Protocollo

Livello n

Livello n

Servizi

Servizi
Protocollo

Livello n - 1

Livello n - 1

Figura 1-16: Relazione fra protocolli e servizi

Aspetti di progetto dei livelli


Le decisioni che governano lutilizzo e la scelta implementativa di un
protocollo sono:
1. Meccanismi

di

identificazione

di

mittente

destinatario

(cio

indirizzamento), in ogni livello.


24

2. Regole per il trasferimento dati (livelli bassi):


in una sola direzione (simplex connection);
in

due

direzioni

ma

non

contemporaneamente

(half-duplex

connection).
in due direzioni contemporaneamente (full-duplex connection);
3. Meccanismi per il controllo degli errori di trasmissione; possibile:
rilevarli oppure no;
correggerli oppure no;
avvertire il mittente oppure no.
4. Meccanismi per il mantenimento (o la ricostruzione) dell'ordine originario
dei dati.
5. Meccanismi per regolare le velocit di sorgente e destinazione.
6. Decisioni sulla dimensione (minima o massima) dei messaggi da inviare,
e su come eventualmente frammentarli.
7. Meccanismi di multiplexing di varie "conversazioni" su di un'unica
connessione (se stabilire la connessione costoso).
8. Meccanismi di routing dei messaggi, se esistono pi strade alternative,
ed eventualmente di suddivisione di una "conversazione" su pi
connessioni

contemporaneamente

(per

aumentare

la

velocit

di

trasferimento dei dati).

Modelli di riferimento nel mondo delle reti


Iniziamo

ad esaminare due importanti realt nel mondo delle reti: per

primo il modello OSI Reference Model che senza dubbio determinante per
la creazione e lutilizzo di Internet Protocol Suite (detta anche architettura
TCP/IP o, piuttosto impropriamente, TCP/IP reference model). Un modello
di riferimento cosa diversa da un'architettura di rete: esso definisce il
numero, le relazioni e le caratteristiche funzionali dei livelli, ma non

25

determina i protocolli effettivi. Larchitettura di rete invece fissa, livello per


livello, i protocolli effettivi

Il modello ISO/OSI
L'OSI (Open Systems Interconnection) Reference Model il frutto del lavoro
della ISO (International Standard Organization), ed ha lo scopo di fornire
uno standard per la connessione di sistemi aperti, cio in grado di
colloquiare gli uni con gli altri, una base comune per lo sviluppo di
standard per l'interconnessione di sistemi e un modello rispetto cui
confrontare le varie architetture di rete.

Esso non include di per se la

definizione di protocolli specifici. Sono stati seguiti durante lo sviluppo del


modello OSI alcune regole fondamentali tra le quali :
ogni livello deve avere un diverso livello di astrazione;
ogni livello deve avere una funzione ben definita;
la scelta dei livelli deve:
minimizzare il passaggio delle informazioni fra di essi;
evitare troppe funzioni in un livello, ma contemporaneamente non
eccedere nella quantit dei livelli.

Il modello OSI consiste di 7 livelli strutturati seguendo

le regole sopra

citate.

26

Application protocol
7

Application

Presentation

Session

Transport

Application

Presentation protocol

Presentation

Session protocol

Session

Application protocol

Transport

Subnet di comunicazione
Network

Network

Network

Network

Data Link

Data Link

Data Link

Data Link

Fisico

Fisico

Fisico

Fisico

HOST 1

ROUTER

ROUTER

HOST 2

Protocolli host - router

Protocolli router - router

Protocolli host - router

Figura 1-17: Il modello OSI

Spesso, per visualizzare le competenze (in termini di livelli gestiti) dei vari
elaboratori sul cammino, si usano diagrammi simili al seguente:

27

HOST 1

HOST 2

5
ROUTER

ROUTER

Figura 1-18: Rappresentazione schematica dei livelli gestiti lungo un cammino

Si noti che il modello OSI non un'architettura di rete, perch suggerisce


solo cosa devono fare i livelli, ma non stabilisce n i servizi n i protocolli.
Per questo esistono separati documenti di definizione degli standard.

Livello fisico
Ha a che fare con la trasmissione di bit "grezzi" su un canale di
comunicazione. Gli aspetti di progetto sono volti a garantire che se parte
un 1, arrivi effettivamente un 1 e non uno zero e largamente riguardanti le
caratteristiche meccaniche, elettriche e procedurali delle interfacce di rete
(componenti che connettono l'elaboratore al mezzo fisico) e quelle relative al
mezzo fisico.

Si caratterizzano alcune grandezze fisiche tra le quali:

tensioni, scelte per rappresentare 0 ed 1, durata (in microsecondi) di un


bit; trasmissione simultanea in due direzioni oppure non meno importane
la forma dei connettori.

28

Livello Data Link


Lo scopo di questo livello far si che un mezzo fisico trasmissivo appaia, al
livello

superiore,

esente

da

errori

di

trasmissione

non

rilevati.

Normalmente funziona in questo modo: spezzetta i dati provenienti dal


livello superiore in frame (da qualche centinaia a qualche migliaia di byte),
invia i frame in sequenza; aspetta un acknowledgement frame (ack) per
ogni frame inviato. Il livello Data Link deve offrire questi servizi:
aggiungere delimitatori (framing) all'inizio ed alla fine del frame;
gestire errori di trasmissione causati da: errori in ricezione; perdita di
frame; duplicazione di frame (da perdita di ack);
regolare il traffico (per impedire che il ricevente sia "sommerso" di
dati);
implementare meccanismi per l'invio degli ack: frame separati (che
per

competono

col

regolare

traffico

nella

stessa

direzione);

piggybacking (da pickaback, cio trasportare sulle spalle).


Le reti broadcast hanno lulteriore problema del controllo dell'accesso al
canale trasmissivo, che condiviso. Per questo hanno uno speciale
sottolivello del livello data link, il sottolivello MAC (Medium Access Control).

Livello Network
Lo scopo del livello controllare il funzionamento della subnet di
comunicazione. Inizialmente tale livello offriva solamente servizi connection
oriented; successivamente fu aggiunta la modalit connectionless. Il livello
Network deve offrire questi servizi:

29

routing: cio scelta del cammino da utilizzare. Il suddetto pu essere


statico (fissato ogni tanto e raramente variabile) o dinamico
(continuamente aggiornato, anche da un pacchetto all'altro);
gestione della congestione: a volte troppi pacchetti arrivano ad un
router (es.: da molte linee in ingresso ad un unica linea di uscita);
accounting: in cui gli operatori della rete possono far pagare l'uso
agli utenti sulla base del traffico generato;
conversione di dati nel passaggio fra una rete ed un'altra (diversa) e
quindi indirizzi da rimappare; pacchetti da frammentare; protocolli
diversi da gestire.

Livello Transport
Lo scopo di questo livello accettare dati dal livello superiore, spezzettarli
in pacchetti, passarli al livello network ed assicurarsi che arrivino alla peer
entity che si trova all'altra estremit della connessione.

In pi, fare ci

efficientemente, isolando i livelli superiori dai cambiamenti della tecnologia


di rete sottostante. Il livello transport il primo livello realmente end-toend, cio da host sorgente a host destinatario: le peer entity di questo
livello portano avanti una conversazione senza intermediari. Si noter che
certe problematiche sono, in ambito end-to-end, le stesse che il livello data
link ha nell'ambito di una singola linea di comunicazione; le soluzioni per
sono alquanto diverse per la presenza della subnet di comunicazione. I suoi
compiti sono quelli di creare connessioni di livello network (attraverso i
propri servizi) ; creare un canale punto a punto affidabile, che consegni i
dati in ordine e senza errori (il servizio pi diffuso, connection oriented);
inviare messaggi isolati, con o senza garanzia di consegna (connectionless);
ed infine broadcasting di messaggi a molti destinatari (connectionless).

30

Livello Session
Ha a che fare con servizi pi raffinati che non sono quelli del transport
layer, come ad es.: token management: autorizza le due parti, a turno, alla
trasmissione. Come vedremo nel seguito, questo livello non ha mai avuto
un grande successo.

Livello Presentation
E' interessato alla sintassi ed alla semantica delle informazioni da
trasferire. Ad esempio, si occupa di convertire tipi di dati standard
(caratteri, interi) da rappresentazioni specifiche della piattaforma HW di
partenza in una rappresentazione "on the wire" e poi in quella specifica dell'
HW di arrivo. Anche questo livello non ha avuto molto successo.

Livello Application
Prevede che qui risieda tutta la variet di protocolli che sono necessari per
offrire i vari servizi agli utenti, quali ad esempio: terminale virtuale;
trasferimento file; posta elettronica ecc. Attraverso l'uso di questi
protocolli si possono scrivere applicazioni che offrono i suddetti servizi agli
utenti finali.

Internet Protocol Suite o TCP/IP


La "madre di tutte le reti" fu Arpanet, originata da un progetto di ricerca
finanziato dal DoD (Department of Defense) americano.

Lo scopo era

creare una rete estremamente affidabile anche in caso di catastrofi (o eventi


bellici) che ne eliminassero una parte. Arpanet, attraverso varie evoluzioni,
come spiegato nellintroduzione, ha dato origine alla attuale Internet. Nel
corso dello sviluppo, per integrare via via tipi diversi di reti, si vide la
necessit di una nuova architettura, mirata fin dall'inizio a consentire
31

l'interconnessione di molteplici reti (internetwork). L'architettura divenne,


pi tardi, nota coi nomi di Internet Protocol Suite, architettura TCP/IP e
TCP/IP reference model, dal nome dei suoi due protocolli principali. Essa
non un modello nel senso stretto del termine, in quanto include i
protocolli effettivi, che sono specificati per mezzo di documenti detti RFC
(Request For Comments). I livelli TCP/IP hanno questa relazione con quelli
OSI:

OSI

Tcp/Ip

Application

Application

Presentation
Session
Tranport

Transport

Network

Internet

Data Link
Host - to - Network

Fisico

Figura 1-19: Relazione fra i livelli OSI e TCP/IP

I requisiti di progetto stabiliti fin dall'inizio (estrema affidabilit e tolleranza


ai guasti, possibilit di interconnessione di pi reti) portarono alla scelta di
una

rete:

packet-switched

basata

su

un

livello

connectionless

di

internetwork.

Livello host-to-network
Il livello pi basso non specificato nell'architettura, che prevede di
utilizzare quelli disponibili per le varie piattaforme HW e conformi agli
standard.

Tutto ci che si assume la capacit dell'host di inviare

pacchetti IP sulla rete.

32

Livello Internet
E' il livello che tiene insieme l'intera architettura. Il suo ruolo permettere
ad un host di iniettare pacchetti in una qualunque rete e fare il possibile
per farli viaggiare, indipendentemente gli uni dagli altri e magari per strade
diverse, fino alla destinazione, che pu essere situata anche in un'altra
rete. Dunque per quanto detto tale sistema connectionless. E' un servizio
best-effort datagram. E' definito un formato ufficiale dei pacchetti ed un
protocollo, IP (Internet Protocol).

Livello Transport
E' progettato per consentire la conversazione delle peer entity sugli host
sorgente e destinazione (end-to-end). Sono definiti due protocolli in questo
livello:
TCP (Transmission Control Protocol): un protocollo connesso
ed affidabile (ossia tutti i pacchetti arrivano, e nell'ordine
giusto). Frammenta il flusso in arrivo dal livello superiore in
messaggi separati che vengono passati al livello Internet. In
arrivo, i pacchetti vengono riassemblati in un flusso di output
per il livello superiore.
UDP (User Datagram Protocol): un protocollo non connesso e
non affidabile, i pacchetti possono arrivare in ordine diverso o
non arrivare affatto.

Livello Application
Nell'architettura TCP/IP non ci sono i livelli session e presentation (non
furono ritenuti necessari; l'esperienza col modello OSI ha mostrato che
questa visione condivisibile). Sopra il livello transport c' direttamente il
livello application, che contiene tutti i protocolli di alto livello i quali
33

vengono usati dalle applicazioni reali.

I primi protocolli furono: Telnet:

terminale virtuale; FTP (File Transfer Protocol): file transfer e SMTP (Simple
Mail Transfer Protocol) e POP (Post Office Protocol) utilizzati

posta

elettronica. Successivamente se ne sono aggiunti altri, fra cui: DNS


(Domain Name Service): mapping fra nomi di host e indirizzi IP numerici;
NNTP (Network News Transfer Protocol): trasferimento di articoli per i
newsgroup; HTTP (HyperText Transfer Protocol): alla base del Word Wide
Web. I vari protocolli nell'architettura TCP/IP si collocano come segue:

Application

Telnet

Ftp

Transport

Smtp

Http

Tcp

Nntp

ecc.

Udp

Internet

IP

Host -to - Network

Vari standard per LAN, WAN e MAN

Figura 1-20: Relazione fra i livelli e i protocolli dell'architettura TCP/IP

Confronto fra modello di riferimento OSI e architettura TCP/IP


Le somiglianze fra i vari protocolli si fondano sul presupposto che sono
basati entrambi sul concetto di pila di protocolli indipendenti e che hanno
funzionalit simili in entrambi per i vari livelli. Al contrario le differenze
riguardano il fatto che il modello OSI nasce come modello di riferimento
(utilissimo

per

le

discussioni

generali),

protocolli

vengono

solo

successivamente; il TCP/IP invece nasce coi protocolli, il modello di


riferimento viene a posteriori. Il fatto che il modello OSI fosse nato prima
dei relativi protocolli si ebbero da una parte benefici e dallaltra
conseguenze negative: il modello era, ed tuttora, molto generale (punto a
favore); vi era insufficiente esperienza nella progettazione dei livelli (punto
a sfavore).

Ad esempio: il livello data-link (pensato all'origine per linee

punto-punto) ha dovuto essere sdoppiato per gestire reti broadcast; ed


34

infine manc del tutto l'idea di internetworking: si pensava ad una rete


separata, gestita dallo stato, per ogni nazione. I protocolli dell'architettura
TCP/IP sono invece il punto di partenza del progetto, per cui l'architettura
molto efficiente (punto a favore); il reference model non generale, in
quanto descrive solo questa particolare architettura (punto a sfavore) ed
difficile rimpiazzare i protocolli se necessario (punto a sfavore).

Confronto fra pile di protocolli OSI e TCP/IP


I protocolli OSI non sono riusciti ad affermarsi sul mercato per una serie di
ragioni: Scelta di tempo non appropriata: la definizione dei protocolli
arrivata

troppo

tardi,

quando

cio

quelli

TCP/IP

si

erano

gi

considerevolmente diffusi; le aziende non se la sono sentite di investire


risorse nello sviluppo di una ulteriore architettura di rete; linfelicit

di

scelte tecnologiche: i sette livelli (e i relativi protocolli) sono stati dettati in


realt dalla architettura SNA dell' IBM, pi che da considerazioni di
progetto; grande complessit e conseguente difficolt di implementazione;
inutili i livelli session e presentation;

la non ottimale attribuzione di

funzioni ai vari livelli: alcune funzioni appaiono in molti livelli ad es.


controllo errore e flusso in tutti i livelli e altre funzioni mancano del tutto
ad es. sicurezza e gestione rete ; linfelice implementazione: le prime
realizzazioni erano lente ed inefficienti, mentre contemporaneamente
TCP/IP era molto ben implementato (e per di pi gratis!).
protocolli

dell'architettura

TCP/IP

invece

sono

stati

In effetti i
implementati

efficientemente fin dall'inizio, per cui si sono affermati sempre pi, e quindi
hanno goduto di un crescente supporto che li ha resi ancora migliori. Ad
ogni modo, neanche l'architettura TCP/IP priva di problemi, infatti :
l'architettura TCP/IP non ha utilit come modello (non serve ad altro che a
descrivere se stessa); non c' una chiara distinzione fra protocolli, servizi e
interfacce, il che rende pi difficile l'evoluzione dell'architettura; alcune
35

scelte di progetto cominciano a pesare oggi (ad es., indirizzi IP a soli 16


bit). In conclusione: il modello OSI ottimo come modello, mentre i suoi
protocolli hanno avuto poco successo; TCP/IP ottima (per ora e si crede
per ancora molti anni con lintroduzione di IPv6 ) come architettura di rete,
ma inutile come modello.

LE RETI NEL MONDO REALE: PROBLEMI E STANDARD FISICI


Un limite per le reti: il rumore e i disturbi elettromagnetici
Il rumore in elettronica l'insieme di segnali in tensione o corrente elettrica
indesiderati che si sovrappongono al segnale utile. Si distingue tra rumore
e disturbo, per rumore solitamente si intende segnali di origine interna,
mentre i disturbi sono segnali che provengono dall'esterno. Il rumore
consiste in "fluttuazioni" dovute a propriet fondamentali della materia,
come ad esempio nel flusso degli elettroni che forma una corrente,e in
quanto tali di origine interna e non eliminabili. Queste fluttuazioni che si
osservano a livello macroscopico derivano da fluttuazioni a livello
microscopico.

Si manifestano nella forma di segnali casuali il cui

andamento nel tempo non descrivibile analiticamente, ma solo in termini


statistici.
Trattazione matematica del rumore
In genere, essendo intrinsecamente stocastico, il rumore viene analizzato
usando la teoria dei processi stocastici: si assume perci che il rumore sia
stazionario cio ha propriet invarianti nel tempo e sia ergodico cio tutte le
propriet

d'insieme

osservazione.

del

processo

sono

estraibili

da

una

singola

Perch sia possibile trattare il rumore bisogna che se ne

possa associare una qualche distribuzione di probabilit. In genere se la

36

distribuzione gaussiana, come nella maggior parte dei casi, allora la sua
distribuzione nota:

dove rappresenta il suo valore medio e la sua deviazione standard


entrambi costanti nel tempo se il processo stazionario. Inoltre
necessario conoscere la funzione di autocorrelazione:

che rappresenta la correlazione fra due campioni del processo a distanza


temporale . la correlazione massima per = 0, cio quando la
il valore quadratico medio del

correlazione
processo. Per

, la funzione di autocorrelazione rappresenta il grado di

prevedibilit di una realizzazione al tempo t + una volta nota al tempo t.


Dunque lo studio del rumore passa per la definizione di una appropriata
distribuzione di probabilit e come funzione di correlazione nel caso dei
segnali. Si usa lo spettro di potenza e si utilizzano le relazioni di WienerKinchin:

cio della trasformata e antitrasformata di Fourier della funzione di


autocorrelazione. Lo spettro ottenuto

, ma in genere essendo

simmetrico si utilizza lo spettro di potenza unilatero positivo. Le relazioni di


Wiener-Kinchin possono allora scriversi esplicitamente:

37

A seconda dei casi le grandezze possono essere misurate in tensione allora


l'unit di misura degli spettri V2 / Hz o in corrente allora A2 / Hz. Dagli
spettri di potenza dei segnali si possono anche ricavare gli spettri di
ampiezza di rumore:

Per calcolare il valore efficace della tensione o della corrente in un


intervallo di banda si applica semplicemente:

I tipi di rumore
La sorgente di rumore pi comune negli apparati e dispositivi elettronici il
rumore termico, esso infatti intrinseco di ogni elemento dissipativo (es.
resistori) che si trovi ad una temperatura diversa dallo zero assoluto.
Scoperto da Jonhson e teorizzato analiticamente da Nyquist.

Nyquist

(1924) ha dimostrato che un segnale analogico di banda h (da 0 ad h Hz)


pu

essere

completamente

ricostruito

mediante

una

campionatura

effettuata 2h volte al secondo. Dunque esso "convoglia" una quantit di


informazione rappresentabile con un numero di bit pari a 2h*(logaritmo in
base 2 del numero di possibili valori del segnale) per ogni secondo. Una
conseguenza di tale teorema che il massimo data rate (detto anche, con
un termine non del tutto appropriato, velocit di trasmissione) di un canale
38

di comunicazione dotato di una banda passante da 0 Hz ad h Hz (passabasso di banda h) che trasporta un segnale consistente di V livelli discreti
massimo data rate (bit/sec.) = 2h log2V
Questo risultato implica che un segnale binario non va oltre i 6 kpbs su
una linea di banda passante pari a 3 kHz. Come vedremo, i modem veloci
sfruttano un segnale con un numero V di livelli piuttosto elevato per
riuscire a trasmettere, su una linea funzionante ad x baud, pi di x
bit/sec. (il termine baud indica la velocit di segnalazione di una linea,
ossia quante volte al secondo essa in grado di cambiare valore). Questo
rumore conseguenza dell'agitazione termica dei portatori di carica in un
conduttore. Il loro movimento caotico tale da creare ai capi di un resistore
una differenza di potenziale che mediamente vale 0 Volt (si dice che il
valore medio del processo rumore bianco nullo), ma che se misurata con
uno strumento che non carichi il resistore altamente variabile e
descrivibile solo in termini statistici: il valore quadratico medio (quadrato
.

del valore efficace) dipende dalla temperatura ed pari a

Disturbi elettromagnetici
Per poter parlare di Disturbi elettromagnetici bisogna prima parlare di
Compatibilit elettromagnetica. Il termine compatibilit elettromagnetica
(EMC, dall'inglese Electromagnetic Compatibility) si riferisce alla disciplina,
nell'ambito

dell'ingegneria

elettrica

ed

elettronica,

che

studia

la

generazione, la trasmissione e la ricezione non intenzionali di energia


elettromagnetica in relazione agli effetti indesiderati che queste possono
comportare, con l'obiettivo di garantire il corretto funzionamento nel
medesimo ambiente dei diversi apparati che coinvolgono fenomeni
elettromagnetici nel loro funzionamento.
39

Figura 1.21 - Schema di propagazione di disturbi elettromagnetici tra un dispositivo


sorgente di disturbi (Device 1, EMC Source) e un dispositivo soggetto a tali disturbi
(Device 2, EMC Sinc). In rosso i disturbi irradiati; in azzurro i disturbi condotti.

Nelle prove di compatibilit elettromagnetica quando si verificano le


emissioni Device 1 il dispositivo da testare (DUT Device under test),
mentre Device 2 lo strumento di misura dei disturbi. Le parti si invertono
quando si fanno le prove di immunit (o suscettibilit). Nel perseguire il
suo intento, la compatibilit elettromagnetica prende in considerazione
diverse problematiche: le problematiche di emissione si riferiscono alla
riduzione della generazione non intenzionale di energia elettromagnetica ed
alle contromisure atte ad evitare la sua trasmissione e le problematiche di
suscettibilit (o immunit), si riferiscono invece al corretto funzionamento
degli apparati elettrici ed elettronici in presenza di disturbi elettromagnetici
provenienti

dall'esterno.

Quando,

nell'ambito

della

compatibilit

elettromagnetica, si prendono in considerazione disturbi elettromagnetici


che si propagano in strutture guidanti quali conduttori metallici, ci si
riferisce a problematiche di suscettibilit ed emissione condotte (in azzurro
nella figura 1), quando invece ci si riferisce a disturbi propagatisi in spazio
40

libero, ci si riferisce a problematiche di suscettibilit ed emissione irradiata


(radiata, irraggiata), indicate in rosso nella figura 1. In passato le
problematiche

di

compatibilit

elettromagnetica

erano

lasciate

alla

valutazione dei singoli produttori o regolamentate a livello nazionale. Gli


sviluppi sempre pi rapidi dell'elettronica e l'interscambio commerciale
sempre pi intenso hanno reso necessario imporre delle normative comuni
di regolamentazione. Con la nascita dell'Unione Europea, in particolare, si
cercato di unificare la legislazione in materia. Le normative proposte in
sede comunitaria sono poi state ratificate dai parlamenti degli stati
membri. L'Italia, in particolare, ha approvato tali normative e dal 1
gennaio 1997 l'apposizione del marchio CE comporta il rispetto di
normative specifiche su queste problematiche (oltre al rispetto di altre
normative relative alla sicurezza elettrica

Lo standard pi diffuso ai livelli 1 e 2: Ethernet


Ethernet il nome di un protocollo per reti locali, sviluppato a livello
sperimentale da Robert Metcalfe e David Boggs, suo assistente , alla Xerox
PARC. La data ufficiale il 1973 quando Metcalfe scrisse un promemoria
ai suoi capi della Xerox sulle potenzialit di Ethernet. Nel 1976 Metcalfe e
Boggs pubblicano un articolo dal titolo Ethernet: Distributed PacketSwitching

For

Local

Computer

Networks.

L'obiettivo

originale

dell'esperimento era ottenere una trasmissione affidabile a 3Mbps su cavo


coassiale in condizioni di traffico contenuto, ma in grado di tollerare bene
occasionali picchi di carico. Per regolamentare l'accesso al mezzo
trasmissivo era stato adottato un protocollo di tipo CSMA/CD (Carrier
Sense Multiple Access / Collision Detection). Il successo dell'esperimento
suscit forte interesse e port alla formazione di un gruppo di imprese,
costituito da Xerox Corporation, Intel Corporation e Digital Equipment
Corporation, che nel 1978 portarono alla standardizzazione 802.3 e il 30
41

settembre 1980 a pubblicare la versione 1.0 dello standard Ethernet.


Intanto Metcalfe lasci Xerox nel 1979 per promuovere l'uso del PC e delle
LAN per cui fond 3Com. Metcalfe spesso attribuisce il successo di 3Com a
Jerry Saltzer. Questi collabor alla stesura di un articolo importantissimo
dove suggeriva che l'architettura token ring fosse teoricamente superiore
alla Ethernet. Con questo le grosse aziende decisero di non puntare su
Ethernet mentre, al contrario, 3Com pot creare un business intorno al
sistema riuscendo a guadagnarsi un ottimo vantaggio tecnico e a dominare
sul mercato quando Ethernet prese piede.

Successivamente, l'interesse

delle imprese del settore aument al punto che l'IEEE costitu alcuni
gruppi di studio finalizzati a perfezionare e consolidare Ethernet, nonch a
creare numerosi altri standard correlati. Uno dei risultati raggiunti fu la
pubblicazione, nel 1985, della prima versione dello standard IEEE 802.3,
basato

sull'originale

specifica

Ethernet,

ma

non

completamente

identificabile con essa. In seguito, lo standard Ethernet come tale non pi


stato mantenuto, ma il termine continua ad essere usato quasi come fosse
un sinonimo di IEEE 802.3, sebbene i due standard non coincidano affatto.

I motivi del successo


Ethernet attualmente il sistema LAN pi diffuso per diverse ragioni:
nata molto presto e si diffusa velocemente per cui nuove tecnologie come
FDDI e ATM hanno trovato il campo occupato. Rispetto ai sistemi
concorrenti pi economica e facile da usare e la diffusione delle
componenti hardware ne facilitano l'adozione. Funziona bene e genera
pochi problemi. adeguata all'utilizzo con TCP/IP e, nonostante i suoi
concorrenti fossero pi veloci nella trasmissione dati, Ethernet si sempre
ben difesa.

42

Il Frame
Nonostante Ethernet abbia diverse tipologie, l'elemento comune nella
struttura del frame che viene definito DIX (DEC, Intel, Xerox) ed rimasto
fedele alla versione originale:

Figura 1.22 : schema pacchetto Ethernet

Questo il frame ricevuto dallo strato di rete nella pila di protocolli. Gli
elementi sono:
Preamble: Preambolo (8 byte): I primi 7 byte hanno valore 10101010 e
servono a svegliare gli adattatori del ricevente e a sincronizzare gli
oscillatori con quelli del mittente. L'ultimo byte ha valore 10101011 e la
serie dei due bit a 1 indica al destinatario che sta arrivando del contenuto
importante.
Destination MAC address: Indirizzo di destinazione (6 byte). Questo campo
contiene l'indirizzo LAN dell'adattatore di destinazione, se l'indirizzo non
corrisponde il Livello fisico del protocollo lo scarta e non lo invia agli strati
successivi.
Source MAC address: Indirizzo sorgente (6 byte);
EtherType: Campo tipo (2 byte): Questo campo indica il tipo di protocollo
del livello di rete in uso durante la trasmissione oppure (nel caso di frame
IEEE 802.3) la lunghezza del campo dati;
Payload: Campo dati (da 46 a 1500 byte): contiene i dati reali e possono
essere di lunghezza variabile in base all'unit massima di trasmissione
43

della Ethernet. Se i dati superano la capacit massima, vengono suddivisi


in pi pacchetti;
FCS Frame Check Sequenze: Controllo a ridondanza ciclica (CRC) (4 byte):
permette di rilevare se sono presenti errori di trasmissione, in pratica il
ricevente calcola il CRC mediante un algoritmo e lo confronta con quello
ricevuto in questo campo. molto simile al frame IEEE 802.3 tranne che
per il campo tipo che nell'802.11 diventa Tipo o Lunghezza e il preambolo
ridotto a 7 byte con 1 byte trasformato in Start of Frame.

Indirizzo Ethernet
Gli indirizzi sono tutti a 6 byte in quanto Ethernet definisce uno schema di
indirizzamento a 48 bit: ogni nodo collegato, quindi, ha un indirizzo
Ethernet univoco di questa lunghezza. Esso corrisponde all'indirizzo fisico
della macchina ed associato all'hardware. Sono anche detti indirizzi
hardware, indirizzi MAC (o MAC address) o indirizzi di livello 2.

Tipologia di trasmissione
La codifica usata per i segnali binari la codifica Manchester. che prevede
una transizione del valore del segnale nel mezzo di ogni bit, zero o uno che
sia.

44

Codifica
di Zero

Codifica
di Uno
+ 0,85 V

0V

- 0,85 V
Durata
del bit

Durata
del bit

Figura 1-23: Codifica Manchester

Fra i vantaggi di tale codifica facilit di sincronizzazione fra mittente e


destinatario; il codice trasmissivo bilanciato, cio vi uguale energia per
lo zero e per l'uno, e quindi la trasmissione di dati, anche se genera diverse
quantit di zeri e uni, non produce componenti in corrente continua, molto
dannosa, perch ostacola la trasmissione dei segnali, per questo facile
rilevare le collisioni.

Si noti per che tale codifica richiede, a parit di

velocit di trasmissione, una banda doppia rispetto alla codifica diretta


(ogni bit richiede la trasmissione di due valori distinti). Ethernet una
tecnologia che fornisce al livello di rete un servizio senza connessione, in
pratica il mittente invia il frame nella LAN senza alcun handshake iniziale,
questo frame viene inviato in modalit broadcast (o a bus condiviso) e
attraversa tutta la LAN.

Quando viene ricevuto da tutti gli adattatori

presenti sulla LAN, quello che vi riconoscer il suo indirizzo di destinazione


lo recepir, mentre tutti gli altri lo scarteranno.

Il frame ricevuto pu

contenere errori, la maggior parte dei quali sono verificabili dal controllo
CRC noto anche come polynomial code.

I polynomial code sono basati

sull'idea di considerare le stringhe di bit come rappresentazioni di polinomi


a coefficienti 0 e 1 (un numero ad m bit corrisponde ad un polinomio di
grado m-1). Ad esempio, la stringa di bit 1101 corrisponde al polinomio x3
45

+ x2 + x0. L'aritmetica polinomiale fatta modulo 2, secondo le regole della


teoria algebrica dei campi.

In particolare: addizione e sottrazione sono

equivalenti all'or esclusivo (non c' riporto o prestito); e la divisione come


in binario, calcolata attraverso la sottrazione modulo 2. Il mittente ed il
destinatario si mettono d'accordo su un polinomio generatore G(x), che
deve avere il bit pi significativo e quello meno significativo entrambi uguali
ad 1. Supponiamo che G(x) abbia r bit. Il frame M(x), del quale si vuole
calcolare il checksum, deve essere pi lungo di G(x).
abbia m bit, con m > r.

Supponiamo che

L'idea di appendere in coda al frame un

checksum tale che il polinomio corrispondente (che ha grado m + r -1) sia


divisibile per G(x). Quando il ricevitore riceve il frame pi il checksum,
divide il tutto per G(x). Se il risultato zero tutto OK, altrimenti c' stato
un errore.

Un frame che non supera il controllo CRC, viene scartato.

Ethernet non prevede la ritrasmissione del frame scartato, n una notifica


della sua perdita agli strati superiori. Ethernet non quindi affidabile, ma
anche semplice ed economica.

Sar compito degli strati superiori (ad

esempio TCP) provvedere alla ritrasmissione. La gestione delle collisioni e


dell'occupazione simultanea del canale di trasmissione viene gestita
mediante il CSMA/CD. CSMA/CD che l'acronimo inglese di Carrier Sense
Multiple Access with Collision Detection, ovvero accesso multiplo tramite
rilevamento della portate e con rilevamento delle collisioni. un'evoluzione
del protocollo MAC del CSMA ed nato per la risoluzione del conflitti di
trasmissione dovuti al CSMA puro. L'algoritmo il seguente: l'adattatore
sistema il frame in un buffer; se il canale inattivo si procede alla
trasmissione, se occupato attende prima di ritrasmettere; mentre si
trasmette l'adattatore monitora la rete ( questo il vero e proprio Collision
Detection), se non riceve segnali da altri adattatori considera il frame
spedito. Tale segnale si ricava confrontandolo con quello che trasmette: se
i due differiscono avvenuta una collisione, quindi va interrotta la
trasmissione. Se l'adattatore riceve, durante una trasmissione, un segnale
da un altro adattatore, arresta la trasmissione e trasmette un segnale di
46

disturbo (jam). Dopo aver abortito la trasmissione attende in maniera


esponenziale

(backoff

esponenziale)

in

questo

modo:

gli

adattatori

aspettano un tempo casuale entro un valore massimo d (il protocollo che


usa il CSMA/CD fissa tale valore). Se viene generata nuovamente una
collisione il valore d viene raddoppiato, cos fino a che questo
sufficientemente grande. Questa tecnica viene chiamata recessione binaria
esponenziale. Avviene perch se altri adattatori sono contemporaneamente
in attesa, tutti simultaneamente tenteranno di trasmettere provocando
altre collisioni.

Il segnale di disturbo viene inviato per avvertire tutti gli

adattatori che avvenuta una collisione. Anche da questo punto di vista


ci permette all'Ethernet, in certe condizioni, di avere un'efficienza di
trasmissione del 100%.

L'efficienza vista come la frazione di tempo a

lungo termine durante la quale sono trasmessi frame senza collisioni con
altri mittenti. Nei sistemi Ethernet recenti, il problema non si presenta in
quanto con gli switch e la crescita della capacit (vedi Gigabit Ethernet) si
eliminano le collisioni e si rende molto pi improbabile la congestione.

Ethernet con ripetitori e hub


Ethernet tende a crescere ma il cavo Ethernet ha una capacit limitata sia
in lunghezza (100 mt.) sia in capacit di traffico, per cui le LAN di grosse
dimensioni vengono suddivise in reti pi ridotte interconnesse tra loro da
particolari nodi tra i quali possiamo trovare dei ripetitori, degli hub o
elementi pi sofisticati come bridge o switch. Il ripetitore semplicemente
replica il segnale ricevuto. Il cavo Ethernet pu quindi assumere lunghezze
molto maggiori alle sue capacit. L'unico vincolo che tra due computer ci
devono

essere

al

massimo

due

ripetitori

per

salvaguardare

la

temporizzazione di CSMA/CD. Il bridge un elemento di interconnessione


pi sofisticato dell'hub perch opera sui pacchetti e non sui segnali
elettrici. Con questo sistema si possono creare segmenti di LAN
47

indipendenti in cui le collisioni e i ritardi restano limitati. Molti bridge sono


adattativi o ad apprendimento per cui sono provvisti di un software con
elenchi di indirizzi per ogni scheda ethernet che posseggono.

In questo

modo quando arriva un pacchetto, estrapolano l'indirizzo di destinazione, e


inviano lo stesso pacchetto nel segmento giusto in base agli elenchi
associati alle schede.

Molto pi sofisticati sono gli switch che sono

composti da un numero elevato di schede ethernet che consente ad ogni


host di essere connesso direttamente.

Allo switch vengono poi collegati

uno o pi cavi Ethernet ad alta velocit che collegano altri segmenti di LAN.
In questo modo lo switch intercetta i pacchetti e li ridireziona ad un host
oppure sui segmenti Ethernet. La gestione dei pacchetti, quindi,
ottimizzata perch questi sono subito indirizzati alla destinazione evitando,
per quanto possibile, collisioni.

In questo modo ogni scheda ha un suo

dominio di collisione.

Uno standard diffusissimo per le reti corte: seriale o RS-232


EIA RS-232 equivalente allo standard Europeo CCITT V21/V24, uno
standard che definisce una interfaccia seriale a bassa velocit per lo
scambio di dati tra dispositivi digitali. Stendendo un cavo fisico tra due
apparecchiature elettroniche dotate di una porta RS-232 (tra cui i PC)
possibile realizzare una comunicazione tra di loro

48

FIGURA 1.24 : Retro di un PC con due porte RS-232 (i due connettori maschio in basso)

Utilizzi
Lo standard EIA RS-232 nacque nei primi anni '60 per opera della
"Electronic Industries Association" ed era orientato alla comunicazione tra i
mainframe e i terminali attraverso la linea telefonica, utilizzando un
modem. Oggi la porta seriale EIA RS-232 presente in quasi tutti i PC
desktop, anche se stata soppiantata dall'interfaccia USB (o da PS/2) in
quasi tutti gli utilizzi. La gran parte dei PC portatili invece non viene ormai
pi dotata di questa interfaccia.
possono

citare:

connessione

Tra gli utilizzi della porta seriale, si


di

terminali

ad

un

calcolatore

(tradizionalmente un mainframe, ma anche un PC); connessione di


periferiche: la porta seriale stata usata per collegare i mouse ai primi PC,
stampante (soppiantato dalla porta parallela, e poi da USB e dalle
stampanti di rete) dispositivi specializzati, come ad esempio lettori di codici
a barre e di tessere magnetiche (soppiantato da USB), ancora tuttoggi in
uso collegare a un PLC ad un singolo PC od altri, connessione a dispositivi
embedded, ad esempio Dispositivi di rete, per scopi di configurazione e
monitoraggio.

In questo utilizzo RS-232 ancora ampiamente usato,

anche se spesso necessario dotarsi di un adattatore seriale/USB per


utilizzare come terminale un computer privo di porta seriale.

49

Storia dello standard


L'interfaccia seriale EIA RS-232 uno standard costituito da una serie di
protocolli meccanici, elettrici ed informatici che rendono possibile lo
scambio di informazioni a bassa velocit tra dispositivi digitali. Esso
includeva

le

caratteristiche

elettriche

dei

segnali,

la

struttura

temporizzazioni dei dati seriali, la definizione dei segnali e dei protocolli per
il controllo del flusso di dati seriali su un canale telefonico, il connettore e
la disposizione dei suoi pin ed infine il tipo e la lunghezza massima dei
possibili cavi di collegamento. Nel corso di questi oltre 40 anni lo standard
si evoluto pur mantenendosi in larga parte invariato. L'evoluzione
riconoscibile dalla sigla, leggendo l'ultima lettera; l'ultima revisione del
1997 ed indicata come EIA RS-232f. Probabilmente la versione pi
diffusa la RS232c, del 1969, corrisponde alle specifiche europee CCITT
raccomandazione V.24. Pur essendo un protocollo piuttosto vecchio,
attualmente la EIA RS-232 ancora largamente utilizzata per la
comunicazione a bassa velocit tra microcontrollori, dispositivi industriali
ed altri circuiti relativamente semplici che non necessitano di particolare
velocit; invece praticamente scomparsa in ambito "desktop", ambito nel
quale lo standard nato per la comunicazione tra un computer ed un
modem. Le informazioni raccolte, relative principalmente al livello elettrico,
sono

state

codificate

inizialmente

dallo

standard

EIA/TIA-232-E

successivamente modificate in alcuni dettagli secondari dallo standard


EIA/TIA-562.

Definizione
Seriale significa che i bit che costituiscono linformazione sono trasmessi
uno alla volta su di un solo "filo". Questo termine in genere contrapposto
a "parallelo": in questo caso i dati sono trasmessi contemporaneamente su
50

pi fili, per esempio 8, 16 o 32. Parlando astrattamente si potrebbe pensare


che la trasmissione seriale sia intrinsecamente pi lenta di quella parallela
(su di un filo possono passare meno informazioni che su 16). In realt
questo non vero in assoluto, soprattutto a causa della difficolt di
controllare lo skew (disallineamento temporale tra i vari segnali) dei molti
trasmettitori in un bus parallelo, e dipende dalle tecnologie adottate: per
esempio in una fibra ottica, in un cavo ethernet, USB o FireWire (tutti
standard seriali) le informazioni transitano ad una velocit paragonabile a
quella di un bus PCI a 32 fili.

In questo capitolo si tratter

solo di

interfacce seriali "lente" cio gestibili da PC e microcontrollori "normali".


Asincrono significa, in questo contesto, che i dati sono trasmessi, byte per
byte, in modo anche non consecutivo e senza l'aggiunta di un segnale di
clock, cio di un segnale comune che permette di sincronizzare la
trasmissione con la ricezione; ovviamente sia il trasmettitore che il
ricevitore devono comunque essere dotati di un clock locale per poter
interpretare i dati. La sincronizzazione dei due clock necessaria ed fatta
in corrispondenza della prima transizione sulla linea dei dati.

Le unit di misura
Le unit di misura della velocit di trasmissione sono essenzialmente due:
il baud ed il bit per secondo (bps o, meno spesso, b/s), spesso trattate
erroneamente come sinonimi. Il baud rate indica il numero di transizioni al
secondo che avvengono sulla linea; il bps indica, come dice il nome, quanti
bit al secondo sono trasmessi lungo la linea.

Nel caso di trasmissione

binaria (cio presente un livello alto ed uno basso) le due cose ovviamente
coincidono numericamente, da cui la parziale equivalenza dei due termini.
Nel caso di trasmissioni a pi livelli, invece, possibile trasmettere con una
sola transizione pi bit: se per esempio posso trasmettere otto diversi valori
di tensione tra 0 ed 7 volt, con un solo valore di tensione invio tre bit (0 V =
51

000, 1 V = 001, 2 V = 010) ed in questo caso una trasmissione a 1000


baud equivale ad una a 3000 bps. Nel caso dello standard EIA RS-232 i
livelli utilizzati sono due quindi il baud rate coincide numericamente con il
bps.
Come fatto un segnale EIA RS-232

Figura 1.25:Segnale della porta RS232

Il modo pi semplice per descrivere un segnale EIA RS-232 partire con un


esempio.

Nellimmagine visualizzato, in modo idealizzato, cosa appare

collegando un oscilloscopio ad un filo su cui transita un segnale EIA RS232 a 9600 bps del tipo 8n2 (in seguito verr indicato il significato di
questa sigla ) rappresentante il valore binario 01001011. Lampiezza del
segnale caratterizzata da un valore "alto" pari a circa +12 V ed un valore
"basso" pari a 12 V. Da notare che, nello standard EIA RS-232 un segnale
alto rappresenta lo zero logico ed uno basso un uno, quindi una codifica
a logica negativa, ossia rovesciata rispetto al comune pensare. A volte un
segnale alto (+12 V, cio uno zero logico) indicato come space ed uno
basso (-12 V, uno logico) come mark. Tutte le transizioni appaiono in
corrispondenza di multipli di 104us (pari ad 1/9600 cio ciascun bit dura
esattamente l'inverso del baud rate). La linea si trova inizialmente nello
stato di riposo, alta (nessun dato in transito); la prima transizione da alto a
basso indica linizio della trasmissione (inizia il "bit di start", lungo
52

esattamente 104us). Segue il bit meno significativo (LSB), dopo altri 104
uS il secondo bit, e cos via, per otto volte, fino al bit pi significativo
(MSB). Da notare che il byte trasmesso "al contrario", cio va letto da
destra verso sinistra.

Segue infine un periodo di riposo della linea di

almeno 208us, cio due bit di stop e quindi (eventualmente) inizia un


nuovo pacchetto di bit. Esistono diversi tipi di codifiche e metodi per capire
quando e dove una serie di dati termina, qui in seguito verranno mostrati e
proposti i principali. Se la trasmissione pi veloce o pi lenta, la distanza
tra i fronti varia di conseguenza (p.e. a 1200 bps le transizioni avvengono a
multipli di 0,833 ms, pari a 1/1200) invece di trasmettere 8 bit, ne posso
trasmettere 5, 6, 7 o anche 9 (ma questultima possibilit non prevista
dalle porte seriali dei normali PC). Al termine possibile aggiungere un bit
di parit. Alla fine la linea rimane nello stato di riposo per almeno 1, 1.5 o
2 bit; se non si ha pi nulla da trasmettere, il "riposo" molto pi lungo,
ovviamente. Molti sistemi non possono utilizzare 1.5 bit di stop che
venivano usati dalle telescriventi a 110 baud di velocit perch permetteva
il CR/LF (ritorno carrello/salto linea). In genere, nei personal computer, il
formato del pacchetto ricetrasmesso indicato da una sigla composta da
numeri e cifre, per esempio 8n1 e 7e2: la prima cifra indica quanti bit di
dati sono trasmessi (nei due esempi rispettivamente 8 e 7). La prima lettera
segna il tipo di parit (rispettivamente nessuna ed even-parity, cio parit
pari). La seconda cifra il numero di bit di stop (rispettivamente 1 e 2).
Tenendo conto che esiste sempre un solo bit di start, un singolo blocco di
bit quindi, per i due esempi riportati, costituito rispettivamente da 10
(1+8+0+1) e 11 (1+7+1+2) bit.

Da notare che di questi bit solo 8 e,

rispettivamente, 7 sono effettivamente utili. Lo standard originale prevede


una velocit da 75 baud a 19200 baud. Uno standard successivo (RS-562)
ha portato il limite a 64 Kbps lasciando gli altri parametri elettrici
praticamente invariati e rendendo quindi i due standard compatibili a
bassa velocit. Nei normali PC le cosiddette interfacce seriali RS-232
arrivano in genere almeno a 115 Kbps o anche pi: pur essendo
53

formalmente al di fuori di ogni standard ufficiale non si hanno particolari


problemi di interconnessione. Ovviamente sia trasmettitore che ricevitore
devono accordarsi sul modo di trasmettere i dati prima di iniziare la
trasmissione. importante garantire il rigoroso rispetto della durata dei
singoli bit: infatti non presente alcun segnale di clock comune a
trasmettitore e ricevitore e l'unico elemento di sincronizzazione dato dal
fronte di discesa del bit di start. Come linea guida occorre considerare che
il campionamento in ricezione effettuato di norma al centro di ciascun bit:
l'errore massimo ammesso quindi, teoricamente, pari alla durata di
mezzo bit (circa il 5% della frequenza di clock, considerando che anche il
decimo bit deve essere correttamente sincronizzato). Naturalmente questo
limite non tiene conto della possibile difficolt di riconoscere con precisione
il fronte del bit di start (soprattutto su grandi distanze ed in ambiente
rumoroso) e della presenza di interferenze intersimboliche tra bit adiacenti:
per questo spesso consigliabile usare un clock con una precisione
migliore dell'1% imponendo di fatto l'uso di oscillatori a quarzo.

Si

potrebbe anche ipotizzare un meccanismo che tenta di estrarre il clock dai


fronti intermedi, ma si tratta nel caso specifico di un lavoro poco utile, visto
che la lunghezza del pacchetto piuttosto breve.

Il bit di parit
Oltre ai bit dei dati (in numero variabile tra 5 e 9) viene inserito un bit di
parit (opzionale) per verificare la correttezza del dato ricevuto. Di questo
particolare ma importante bit ne esistono 5 importanti versioni:
None: nessun tipo di parit, cio nessun bit aggiunto;
Pari (even): il numero di mark (incluso il bit di parit) sempre pari;
Dispari (odd): il numero di mark (incluso il bit di parit) sempre
dispari;
54

Mark: il bit di parit vale sempre mark;


Space: il bit di parit vale sempre space;
Il bit di parit pu essere LRC o VRC , cio la funzione di parit, un XOR di
bit a bit della stringa dati incluso il bit di parit stesso, pu essere eseguita
sia lateralmente che verticalmente sui dati inviati, ottenendo una stringa
dati di parit finale con il relativo bit di parit : il LRC di tale stringa dati di
controllo deve combinarsi secondo le parit precedentemente eseguite
verticalmente che sul blocco VRC-dati creato.

I SISTEMI PER LAUTOMAZIONE INDUSTRIALE

Architetture tipiche dei sistemi


In questa sezione verr effettuata unanalisi inerente le architetture tipiche
dei sistemi in ambito industriale. Non esiste un modello unico e standard,
perch le applicazioni e le necessit di ogni azienda sono svariate e
molteplici, tutte per si appoggiano ad uno schema logico chiamato CIM
(Computer Integrated Manifacturing) come impiego articolato e cooperante
della tecnologia informatica nei processi di

progettazione, produzione,

distribuzione volto comunque continuamente ad acquisire un durevole


vantaggio competitivo. La grossa fetta di mercato dove questa tecnologia
pu essere applicata riguarda tutte le funzioni dellimpresa che possono
essere assistite dallelaboratore o

automatizzate e quindi eseguite e

controllate dalle macchine con un alto livello di integrazione. Di seguito


viene riportata una rappresentazione grafica che mostra i vari livelli di
questo semplice e snello schema logico.

55

Figura 2-1: schema logico architettura CIM

56

La piramide CIM

Gestione
Azienda
Livello 4 :
Gestione Stabilimento
Livello 3 :Supervisione Integrata
Livello 2 :Supervisione di Cella (Cell Area)
Livello 1: Sistemi di Controllo (Field Area)
Livello 0 : Piano di Officina (Sensor/Actuator )
Figura 2-2 : piramide Cim

Descrizione dei livelli


Livello 0: sensori, attuatori, tools legati al processo esecutivo
E costituito dallinsieme dei sensori e degli attuatori, ossia dai dispositivi di
campo che vengono interfacciati direttamente allimpianto industriale
costituendo la sezione di ingresso uscita del sistema di controllo. La
funzione del livello 0 quella di riportare al livello sovrastante le misure di
processo e di attuare i comandi ricevuti da esso. Il livello di intelligenza
richiesto ai dispositivi di campo limitata, dovendo essi soltanto tradurre
grandezze fisiche di varia natura (es. temperatura, pressione, tensione,
ecc.) a segnali tipicamente di tipo elettrico (corrente e tensione) e viceversa.

57

E bene notare come sia crescente la tendenza di dotare sensori ed attuatori


di intelligenza dedicata anche alla gestione di una interfaccia di
comunicazione digitale e seriale.

Livello 1: Controllo di macchina


Sistemi industriali che comandano direttamente i processi al livello 0
(comando individuale delle macchine e del processo o

controllo di

macchina). E costituito dai controllori, solitamente di tipo automatico o


semiautomatico, interfacciati con i sensori e gli attuatori dei dispostivi
meccanici facenti parte di una stessa unit operatrice. Le apparecchiature
del livello 1 sono i controllori a logica programmabile (PLC, ecc ), semplici
sistemi di controllo distribuito (DCS, Distributed Control System), centri di
lavorazione a controllo numerico (CNC, Computer Numeric Controller). Le
funzioni cui il controllo di macchina preposto sono la regolazione diretta
delle variabili e la realizzazione sequenziale di operazioni; tali operazioni
non sono in genere molto complesse, ma devono essere coordinate con
quelle fatte eseguire alle altre macchine attraverso loperato del livello
superiore.

Livello 2: Controllo di cella


Workshop computer (comando centralizzato delle macchine e del processo
o controllo di cella).

I controllori costituenti questo livello regolano il

funzionamento di tutte le macchine operatrici costituenti una cella di


lavoro attraverso la comunicazione con i relativi controllori; le operazioni
svolte a questo livello sono analoghe a quelle del livello 1 risultando
soltanto pi complesse e a maggior spettro in variet e dimensioni. In modo
analogo i controllori PLC e DCS del livello 2 sono pi potenti in termini di
capacit elaborativa, memoria, comunicazione, ecc. Crescente interesse,

58

soprattutto dal punto di vista economico, rivestono le moderne soluzioni di


automazione basate su Personal Computer (PC).

Livello 3: Controllo di area


High performance computer per il management e la supervisione delle
unit di processo (gestione della produzione o controllo di area).
E costituito dal sistema di supervisione, controllo e acquisizione dati
(SCADA); le apparecchiature su cui sono implementate le piattaforme
software sono tipicamente Work Station o PC nelle applicazioni pi
semplici.
dellintero

Le funzioni svolte a livello 3 sono quelle legate alla gestione


processo

controllato:

gestione

operativa

intesa

come

impostazione del lotto da produrre o dei cicli di lavorazione, gestione delle


situazioni di allarme, analisi dei risultati, ecc.Il controllo di area differisce
sostanzialmente da quello di macchina e di cella, in quanto i requisiti di
elaborazione real-time sono fortemente ridotti; le funzioni infatti che devono
essere svolte a questo livello sono fortemente dipendenti dalloperatore
eventualmente coadiuvato da sistemi automatici di tipo gestionale che per
lavorano su orizzonti temporali e con obiettivi completamente differenti.
Restano invece molto importanti i tempi di risposta dellintero sistema per
quanto concerne la rilevazione e segnalazione di eventuali situazioni di
allarme in cui loperatore pu e deve essere in grado di prendere
provvedimenti.
Livello 4: mainframe per il governo del management, gestione
commesse e amministrazione centrale delle attivit di fabbrica
(pianificazione della gestione globale).
Questo ultimo ed importante livello mostra i veri risultati del lavoro svolto
dai livelli sottostanti lavorando e trattando dati non solo grezzi e a volte
privi di significato ma dati elaborati e molto complessi i quali possono
essere utilizzati in tutti i modi possibili a partire dal semplice calcolo
59

statistico di errori di produzione e di conseguenza ha una maggior resa dal


punto di vista sia produttivo che dal punto di vista di costi a grosse
indagini di mercato e altro ancora.
Come accennato sopra,

sposando questa causa, si ottengono ottimi

risultati e vantaggi tra i quali:


ottimizzazione e pianificazione dei processi produttivi
migliore utilizzo delle risorse
riduzione del tempo di produzione
semplificazione dell'installazione e manutenzione ad esempio
taratura a distanza e rilevamento guasti massima flessibilit di
produzione
riconfigurazione del sistema a nuove lavorazioni in tempi brevi
miglioramento del controllo della qualit

controllo di ogni singolo prodotto invece che solo alcuni


campioni

Lo Scada e le sue caratteristiche


La definizione comunemente utilizzata per lidentificazione di sistemi
SCADA corrisponde al significato esteso dellacronimo e rappresenta senza
dubbio il mezzo pi semplice per introdurre il modello rappresentato da
questo tipo di sistemi. Lacronimo SCADA sta per Supervisory Control And
Data Acquisition ed nientaltro che lenumerazione delle tre funzionalit
principali realizzate dai sistemi: supervisione, controllo e acquisizione dati.
In realt

la versione estesa dellacronimo SCADA non una definizione

poich in nessun modo permette di discriminare quelli che effettivamente


vengono considerati sistemi SCADA da una gran quantit di sistemi o
semplicemente di dispositivi pi o meno complessi che svolgono le tre
funzioni o parte di esse.

Ci che manca allacronimo per essere una

definizione compiuta `e la descrizione del modo in cui questo tipo di


60

sistema espleta le proprie funzioni e il campo di applicazione. Utilizzando il


linguaggio della matematica possiamo dire che i sistemi SCADA sono
insiemi di funzioni dei quali si usa dare una definizione enumerando le
funzioni dellinsieme senza che queste siano qualificate in termini di
dominio e codominio (determinati dalle caratteristiche del campo di
applicazione) e in termini di propriet delle funzioni,

come se la

trigonometria potesse essere definita come Seno Coseno Tangente e


Cotangente

senza

la

definizione

delle

caratteristiche

di

continuit,

periodicit e quantaltro necessario a giustificare lesistenza stessa del


termine trigonometria e del metodo di calcolo che questa rappresenta.
Cos come in matematica lo studio di un insieme di funzioni come caso
particolare serve a estendere la comprensione del problema ma non la
conoscenza, nel caso dei sistemi di controllo la distinzione tra sistemi
SCADA e altri sistemi affini serve a comprendere meglio il ruolo che `e stato
attribuito loro dallapplicazione che hanno avuto per la risoluzione di
problemi di controllo. Le parte seguente mostra una breve descrizione delle
funzioni svolte da un sistema SCADA e le differenze che possono essere
individuate nel confronto tra questo tipo di sistemi e un altro tipo, affine al
primo,

anchesso

destinato

realizzare

funzioni

di

controllo

comunemente indicato con lacronimo DCS (Distributed Control System).

61

Figura 2.3 : Schema logico SCADA

Acquisizione dati
Lacquisizione dati una funzione che nella maggior parte dei casi ha un
ruolo di supporto alle funzioni di supervisione e controllo poich mette in
relazione il sistema con il processo controllato consentendo la conoscenza
dello stato in cui si trova il processo e lazione di controllo esercitata per
mezzo della variazione di parametri caratteristici del processo. In questo
senso acquisizione dati significa in realt scambio dati in entrambe le
direzioni: dal processo verso il sistema e viceversa.

In alcuni sistemi

classificati come sistemi SCADA lacquisizione la funzione principale


svolta dal sistema; questo il caso in cui non ci sono procedure di controllo
implementate dal sistema e la fase di supervisione pu essere realizzata
sporadicamente o come analisi a posteriori degli stati acquisiti dal
processo.

Esempio di questo tipo di casi un qualsiasi sistema di

telerilevamento nel quale il primo obiettivo la raccolta e lorganizzazione


dei dati sui quali possono essere condotte analisi non necessariamente
predefinite. Lacquisizione dati entra nella definizione di sistema SCADA
per il fatto che non possibile espletare funzioni di supervisione senza
62

acquisire informazioni sullo stato in cui si trova il processo osservato cos


come non possibile orientarne il comportamento, cio controllarlo, senza
avere la possibilit di influenzare lo stato cambiando il valore di parametri
che lo caratterizzano. La funzione di acquisizione dati di un sistema SCADA
considerata generalmente una funzione di scambio puro e semplice di
informazioni tra la parte di sistema che realizza supervisione e controllo e
processo

controllato,

cio

si

considera

assente

qualsiasi

processo

decisionale interposto tra le strutture di supervisione e controllo e il


processo controllato. Nei casi in cui questa condizione viene a mancare si
ha a che fare con sistemi che realizzano qualcosa di diverso rispetto a
quanto viene fatto da un sistema SCADA inteso in senso classico, si hanno
cio strutture a intelligenza distribuita. Uno dei motivi per il quali esiste
questa distinzione consiste nel fatto che la distribuzione della capacit di
elaborazione si rende necessaria solitamente nei casi in cui il processo
controllato ha dimensioni geograficamente rilevanti, tali da ostacolare la
realizzazione di un sistema di elaborazione concentrato e collocato a
ridosso del processo.

Supervisione
La supervisione lattivit per mezzo della quale un sistema SCADA rende
possibile losservazione dello stato e dellevoluzione degli stati di un
processo

controllato.

Con

tale

funzionalit

prendono

corpo:

la

visualizzazione delle informazioni relative allo stato attuale del processo, la


gestione delle informazioni storiche, la gestione degli stati che costituiscono
eccezioni rispetto alla normale evoluzione del processo controllato.
La funzione di supervisione costituisce un fine per qualsiasi sistema
SCADA.

Questa funzione determinante nella caratterizzazione di un

sistema nel senso che un sistema che non permetta di accedere alle

63

informazioni di stato corrente e/o storiche del processo osservato e/o


controllato non pu essere definito come sistema SCADA.

Controllo
La funzione di controllo rappresenta la capacit di un sistema di prendere
decisioni relative allevoluzione dello stato del processo controllato in
funzione dellevoluzione del processo medesimo. La modalit con la quale
le

procedure

di

controllo

vengono

realizzate

nellambito

dellintera

architettura del sistema dipende fortemente dal tipo di processo, essendo


questo in grado di imporre scelte architetturali sia hardware che software.
In questo senso i sistemi SCADA sono comunemente intesi come sistemi
che hanno la funzione di acquisizione dati nellintera catena di acquisizione
che dai sensori al sistema di elaborazione e archiviazione veicola
informazioni che sono i dati grezzi prelevati come valori di parametri di
stato del processo. Lesercizio di controllo quindi concentrato nel sistema
di elaborazione il quale, una volta eseguite opportune procedure di
elaborazione, sfrutta il sistema di acquisizione dati in senso inverso per
cambiare il valore di opportuni parametri di stato del processo controllato.
La variet dei processi controllati da sistemi classificati come sistemi
SCADA si manifesta in notevoli differenze tra le diverse realizzazioni

La

qualit dello sviluppo di sistemi di controllo dipendente in ugual misura


dalla capacit di realizzazione di sistemi tecnologici e dallefficacia
dellanalisi del processo da controllare.

Questultima impone vincoli

significativi nella realizzazione di sistemi di controllo rendendo questultimo


un processo, che di volta in volta, richiede tecniche di sviluppo adeguate
difficilmente riconducibili a modelli convenzionali.

Lanalisi del processo

controllato produce informazioni che influenzano le scelte progettuali sia


dal punto di vista tecnologico che organizzativo ed norma aurea anteporre
lapprofondimento della conoscenza del processo alla definizione delle
64

caratteristiche del sistema destinato a controllarlo.

Nel seguito sono

presentati alcuni elementi classici di indagine per la determinazione delle


caratteristiche fondamentali del sistema di controllo. La qualificazione del
processo rispetto a questi elementi permette di individuare vincoli nella
definizione delle specifiche tecniche,funzionali, organizzative che nella
maggior parte dei casi si traducono negli elementi distintivi del sistema
realizzato rispetto a tutti gli altri.
Realtime: il termine realtime si riferisce alla capacit del
sistema di reagire alle sollecitazioni del processo con ritardi
trascurabili rispetto alla dinamica evolutiva del processo
medesimo. Allo stesso tempo la reazione del sistema deve essere
caratterizzata da tempi di elaborazione compatibili con quelli
imposti dagli obiettivi del controllo. Le funzioni svolte da un
sistema di controllo sono tali da rendere questa capacit di
reazione un requisito solitamente irrinunciabile mentre altri
elementi di complessit del sistema e del processo controllato
Alta affidabilit: una qualit della quale i sistemi di controllo
non possono fare a meno laffidabilit intesa secondo il
significato dato nel gergo tecnologico anglosassone al termine
reliability. Un sistema di controllo un mosaico di componenti
ognuno

dei

quali

caratterizzato

da

un

determinato,

determinabile, grado di affidabilit, cio da un valore di


probabilit di malfunzionamento espresso come percentuale del
tempo

di

esercizio

realizzazione
considerazione

di

un

del

componente

sistema

laffidabilit

dei

medesimo.

necessario
singoli

Nella

tenere

componenti

in
per

provvedere alla eventuale implementazione di contromisure


destinate a contenere linfluenza che un dato sottosistema ha
sullaffidabilit dellarchitettura complessiva.
65

Alta disponibilit: la disponibilit la percentuale di tempo per


la quale deve essere assicurato lo stato di esercizio del sistema,
cio il valore complementare della percentuale di tempo in cui il
sistema

in

stato

di

fermo

manutenzioni,aggiornamenti o

causa

di

guasti,

altro. La disponibilit pu

essere riferita allintero sistema o a parti critiche dello stesso e,


come le altre, una caratteristica che si esprime in vincoli che
differiscono in funzione del tipo di processo da controllare. Un
processo pu avere esigenze stringenti di disponibilit

per

motivi di sicurezza (si pensi ai sistemi di controllo di processi


produttivi tipici dellindustria chimica nei quali lindisponibilit
del sistema di controllo pu pregiudicare lattivit del processo
di

produzione

lasciandolo

in

stati

potenzialmente

molto

pericolosi per la sicurezza delle strutture e lincolumit degli


operatori) o di continuit del servizio (questo `e il caso dei
sistemi di gestione del traffico). In altri casi la disponibilit
unesigenza di secondo piano rispetto ad altre caratteristiche
anche se i vincoli che essa produce sono comunque stringenti.
Grado dinterazione uomo-macchina: la realizzazione delle
funzioni di un sistema di supervisione e controllo comporta
sempre

la

realizzazione

dellinterazione
denominati

tra

gli

interfacce

di

operatori

sottosistemi
e

il

uomo-macchina

sistema
(in

responsabili
medesimo

inglese

si

usa

lacronimo HMI di human-machine interface). La complessit


dello sviluppo in

funzione del tipo di interazione richiesta

mentre questultima dipende dalle caratteristiche del processo


controllato. Linterfaccia uomo-macchina pu realizzare molti
gradi di interazione comprendendo funzionalit di semplice
osservazione dello stato di esercizio del sistema, nel caso di
sistemi che realizzano procedure completamente automatizzate,
66

o funzionalit responsabili della esecuzione di procedure


manuali gestite dagli operatori. In casi analoghi a quello dei
sistemi di telerilevamento ambientale le procedure automatiche
sono responsabili dellacquisizione dei dati e di uneventuale
primo trattamento degli stessi (un esempio dato dalle
procedure di validazione) mentre linterfaccia uomo-macchina
rende disponibili funzionalit per tipi di analisi dellinformazione
altrimenti non realizzabili. In altri casi, cio in quelli che
prevedono forme di controllo oltre che di supervisione, risulta
fondamentale la realizzazione di interfacce di facile utilizzo e di
funzionalit accessorie necessarie alla comprensione dello stato
di esercizio del sistema comprendenti la gestione della notifica
degli allarmi e la visualizzazione di grafici relativi alle grandezze
pi rappresentative.

Il Plc e le sue caratteristiche


Il controllore logico programmabile o programmable logic controller (PLC)
un computer industriale specializzato in origine nella gestione dei processi
industriali. Il PLC esegue un programma ed elabora i segnali digitali ed
analogici provenienti da sensori e diretti agli attuatori Un attuatore un
meccanismo attraverso cui un agente (per esempio l'unit di controllo
elettronico, come pu essere la centralina automobilistica) agisce su un
ambiente, inoltre l'agente pu essere o un agente intelligente artificiale o un
qualsiasi altro essere autonomo (umano, animale). In senso lato, un
attuatore talvolta definito come un qualsiasi dispositivo che converte
dell'energia da una forma ad un'altra, in modo che questa agisca
nell'ambiente fisico al posto dell'uomo. Anche un meccanismo che mette
qualcosa in azione automaticamente detto attuatore.

Gli attuatori

presenti in un impianto industriale, nel tempo, con la progressiva


67

miniaturizzazione della componentistica elettronica e la diminuzione dei


costi, sono entrati anche nell'uso domestico. Si porta in proposito come
esempio l'installazione di un PLC nel quadro elettrico di un'abitazione, a
valle degli interruttori magnetotermico e differenziale (salvavita), esso
permette la gestione automatica dei molteplici sistemi e impianti installati
nella casa: impianto di riscaldamento, antifurto, irrigazione, LAN, luci,
ecc.... Un PLC un oggetto hardware componibile.

La caratteristica

principale la sua robustezza estrema, infatti normalmente il PLC posto


in quadri elettrici in ambienti rumorosi, con molte interferenze elettriche,
con temperature elevate o con grande umidit.

In certi casi il PLC in

funzione 24 ore su 24, per 365 giorni all'anno, su impianti che non
possono fermarsi mai. La struttura del PLC viene adattata in base al
processo da automatizzare. Durante la progettazione del sistema di
controllo, vengono scelte le schede adatte alle grandezze elettriche in gioco.
Funzionamento
La prima cosa che il PLC compie la lettura degli ingressi e con questo si
intende tutti quelli digitali che analogici, on board o su bus di campo
(schede remote collegate al PLC o con una rete di comunicazione). Lo stato
degli ingressi, una volta letto, viene memorizzato in una memoria che
definita "Registro immagine degli ingressi". A questo punto le istruzioni di
comando vengono elaborate in sequenza dalla CPU e il risultato viene
memorizzato nel "Registro immagine delle uscite".

Infine, il contenuto

dell'immagine delle uscite viene scritto sulle uscite fisiche ovvero le uscite
vengono

attivate.

Poich

l'elaborazione

delle

istruzioni

si

ripete

continuamente, si parla di elaborazione ciclica; il tempo che il controllore


impiega

per

una

singola

elaborazione

viene

detto

tempo

di ciclo

(solitamente pochi millisecondi).

68

Struttura del PLC


Un PLC composto da un alimentatore, dalla CPU che in certi casi pu
avere interna o esterna una memoria RAM o Flash o EPROM, da un certo
numero di schede di ingressi digitali e uscite digitali, e nel caso in cui sia
necessario gestire grandezze analogiche, il PLC pu ospitare delle schede di
ingresso o di uscita sia analogiche che digitali. Il PLC normalmente opera
in rete con altri PLC, quindi sono necessarie delle schede di comunicazione
adatte al protocollo di rete gi implementato sugli altri PLC. Nel caso di
operazioni di movimentazione, come nel campo della robotica, il PLC ospita
delle schede acquisizione controllo assi, cio delle schede molto veloci e
sofisticate che permettono di gestire spostamenti e posizionamento.

Cpu
La CPU il cervello del PLC.

E una scheda complessa basata su un

microprocessore con un sistema operativo proprietario, e con una zona di


memoria a disposizione del programma utente, cio del programma di
automazione. La memoria utente spesso esterna come ad esempio nel
caso di memoria EPROM. Il vantaggio di una memoria esterna legata alla
semplicit di programmazione o di modifica del microcontrollori o
microprocessori. La CPU durante il funzionamento a regime, colloquia con
tutte le schede connesse sul BUS del PLC, trasferendo dati e comandi sia
verso il mondo esterno, sia dal mondo interno. Una delle caratteristiche
peculiari delle CPU dei PLC la loro capacit di poter gestire le modifiche
del programma di gestione del processo durante il normale funzionamento.
Questa possibilit estremamente utile nel caso di impianti che devono
essere sempre attivi. All'interno della CPU sono varie parti, tra cui:

69

unit di gestione, ovvero informazioni di gestione del PLC stesso,


impostate dal costruttore e trasparenti all'utente;

archivio di temporizzatori e contatori funzionali all'operativit del


PLC;

memorie immagine del processo, cio le informazioni in ingresso ed i


comandi in uscita del processo;

memoria utente, in cui vengono scritti i programmi che il PLC deve


eseguire;

interfaccia per il dispositivo di programmazione, che comunica con gli


strumenti di programmazione;

bus dati, comando, indirizzi per la veicolazione dei dati fra le varie
parti e con l'esterno della CPU.

Schede di comunicazione
Il PLC durante il suo funzionamento pu comunicare con computer, con
altri PLC oppure con altri dispositivi come le macchine CNC (i torni e/o le
frese a controllo numerico delle aziende). La comunicazione con computer e
altri dispositivi avviene tramite tipi di connessione standard come:

RS232 (quella utilizzata nel progetto attuato)

RS422/RS485

TCP/IP,UDP/IP

USB

La comunicazione con altri PLC avviene tramite protocolli standard, ad


esempio:

Profibus

DeviceNet

TCP/IP

Modbus (molto importante)

Fins, C-command
70

CANALI DI COMUNICAZIONE PER LAUTOMAZIONE


Caratteristiche generali dei protocolli usati per lautomazione
I protocolli di comunicazione usati per lautomazione sono molto simili a
quelli

utilizzati

in

altri

ambiti,

ma

devono

accentuare

particolari

caratteristiche per far si che lo scopo per cui vengono creati sia raggiunto
nei migliori dei modi. Nel nostro studio ci siamo soffermati solo ad
analizzare particolari protocolli, in particolare quelli utilizzati per la
comunicazione tra Pc e Plc o tra vari Plc e precisamente su due protocolli,
proprietari di Omron, i C-Command e Fins. Sono stati incontrati, ma non
approfonditi, anche altri protocolli come ModBus, o alcuni proprietari di
Vago (altra nota marca di Plc) e Simens. Tutti soddisfano ed enfatizzano
caratteristiche comuni tra le quali:
Velocit ed immediatezza:

si vuole intendere che sono protocolli molto

snelli, veloci e di semplice utilizzo e che sono in grado di fornire funzioni


immediate senza la perdita di tempo in header e tail inutili.
Tali caratteristiche sono determinanti, in certi casi, soprattutto in catene di
montaggio

dove

la

sincronizzazione

di

apparati

meccanici

deve

assolutamente essere rispettata.


Robustezza:

in ogni istante e come spiegato prima si deve conoscere se il

pacchetto spedito arrivato correttamente, se non arrivato o se la


risposta contiene errori. Un altro punto riguardante la robustezza che il
protocollo deve essere immune ai grandi disturbi elettromagnetici presenti
in una normale azienda dove viene installato. La schermatura dei cavi di
comunicazione costituisce senza dubbio la soluzione ottimale oltre al fatto
che il protocollo deve essere progettato in modo da capire in ogni istante se
durante la comunicazione ci sono stati eventuali errori.

71

Semplicit: questi protocolli non vengono utilizzati solo tra plc e pc ma


anche

tra

vari

plc,

per

cui

devono

essere

semplici

poich

la

programmazione in questi apparati elettronici non ancora cosi evoluta


come in quella dei pc. La semplicit, daltra parte, non sinonimo di facile
implementazione, infatti implementare questi protocolli su un normale
ambiente di sviluppo di pc comporta unottima conoscenza elettronica
riguardo alle varie conversioni. Ad esempio, per lavorare direttamente entro
il Plc, necessario conoscere a fondo la conversione tra numeri in base
decimale in numeri in base esadecimale (la codifica che usano i Plc ), la
conversione in Bcd e la conversione in Big-endian

Sistemi seriali vs Sistemi ethernet


I principali protocolli utilizzati e progettati

dalla maggior parte dei

produttori e venditori di plc si basano su sistemi Ethernet o su sistemi


seriali. Esistono, per, alcune eccezioni nelle quali gli stessi sono
implementati tramite specifici mezzi trasmissivi o reti private, sui quali in
questa sede non ci soffermeremo, in quanto esula dallargomento trattato.
Relativamente ai sistemi Ethernet e seriali rilevante sottolineare che non
esiste un vero e proprio paragone tra i due mezzi trasmissivi. I sistemi
seriali sono ormai datati e progressivamente vengono sostituiti da sistemi
USB

o da sistemi Ethernet. La tecnologia seriale fu il primo tipo di

collegamento tra i vari dispositivi di controllo. La comunicazione via porta


seriale un canale uno a uno tra i due dispositivi, relativamente lenta,
impossibile in alcun modo poter inserire uno strato software per capire
cosa viene inviato e ricevuto dai due partecipanti alla comunicazione. Come
gi spiegato in un precedente capitolo i settaggi della porta seriale devono
essere necessariamente fissati a priori e mantenuti costanti, e non viene
offerta la possibilit di modificare i parametri durante la comunicazione. Al
contrario Ethernet, come gi sottolineato in precedenza, elimina questi
72

limiti: con esso i parametri possono in qualsiasi momento essere variati,


offre una velocit di trasmissione nemmeno paragonabile alla precedente
soluzione, senza contare la possibilit di sniffare tutto ci che passa
attraverso la rete. Ci detto costituisce ulteriore conferma del fatto che non
pu e non deve esserci paragone tra le due tecniche di comunicazione.

I protocolli dei sistemi Omron


C-Command
Uno dei protocolli usati da Omron per la comunicazione tra i plc e tra pc e
plc viene definito e denotato come C-Command. I C-Command sono uno
dei primi protocolli utilizzati dalla ditta implementati attorno agli anni 80
erano il punto di forza dellazienda. Comunicano solo ed esclusivamente
mediante porta seriale. Vorremmo brevemente spiegare il protocollo in tutte
le sue parti partendo con il mostrare in un breve disegno la sintassi e
semantica del pacchetto di invio
@

101

100

Unit Number

Text

Header code

FCS

CR

Teminator

Figura 3-1 :pacchetto richiesta C-Command

@:
Unit Number :

Utilizzato come inizializzatore


Specifica in BCD da 0 a 32 il numero dellhost link con cui
si deve comunicare

Header Code :
Text :

specifica il comando che dovr eseguire il ricevente


Contiene

parametri

di

ogni

comando

specificato

nellheader code
FCS :

E il controllo sulla corretto ricevimento del pacchetto, non


nientaltro che l X-or a due a due dei bit precedenti
73

Terminator :

Contiene lasterisco e un carattere speciale di terminazione


Nella tabella unicode corrispondeva al carattere 13

Il campo text varia a seconda dellheader code presente e pu contenere, ad


esempio, indirizzi di memoria e bit se il pacchetto contiene le istruzioni di
lettura o scrittura, pu contenere un orario se il pacchetto si riferisce alla
sincronizzazione dellorologio. Vorremmo ora costruire una breve tabella
nella quale sono contenuti i possibili header code supportati e da noi
implementanti in questo protocollo:
Tipo

Header

Descrizione

Code
I/O lettura

RR

Lettura memoria CIO

memoria

RL

Lettura memoria LR

RH

Lettura memoria HR

RC

Lettura memoria Timer e Counter

RG

Lettura memoria stato Timer e Counter

RD

Lettura memoria DM

RJ

Lettura memoria AR

RE

Lettura memoria EM

I/O scrittura

WR

Scrittura memoria CIO

memoria

WL

Scrittura memoria LR

WH

Scrittura memoria HR

WC

Scrittura memoria Timer e Couter

WD

Scrittura memoria DM

WJ

Scrittura memoria AR

WE

Scrittura memoria EM

R#

Lettura timer 1

Timer/Counter R$

Lettura Timer 2

R%

Lettura Timer 3

Lettura

74

Scrittura

W#

Scrittura Timer 1

Timer/counter

W$

Scrittura Timer 2

W%

Scrittura Timer 3

Stato Unit

MS

Lettura dello stato

CPU

SC

Cambiamento di modalit operativa

MF

Lettura di errori

Forzatura

KS

Forzatura a 1

settaggio

KR

Forzatura a 0

resettaggio bit

FK

Forzatura multipla di bit

KC

Cancellazione di tutte le forzature

Modello PLC

MM

Modello del PLC

Testaggio

TS

Test

Modalit

RP

Lettura del programma in memoria

lavoro

WP

Scrittura del programma in memoria

Creazione

MI

Creazione tabella I/O

Creazione

QQMR

Registro di memoria I/O

registri

QQIR

Lettura del registro

Processi di

XZ

Reset della macchina

tabella

comunicazione **

Inizializzazione

IC

Comando lasciato a disposizione dellutente


Figura 3-2: tabella comandi C-Command

Se il pacchetto di invio stato ricevuto correttamente segue la sintassi e la


semantica del pacchetto di risposta
@

101 100 160 160 161 160 Text


Unit Number Header code

End code

160 160 *
FCS

CR

Teminator

Figura 3-3 :pacchetto risposta C-Command

75

Il campo Text in certe risposte pu anche essere vuoto a seconda del


comando inviato. Se ci sono per stati problemi non dal punto di vista di
sintassi del comando ma se ad esempio una particolare istruzione non
supportata in una determinata modalit in cui il PLC viene a trovarsi, se vi
stato un errore nel calcolo FCS, se ancora viene definito un indirizzo di
memoria non incluso nel range disponibile in quel determinato PLC, nel
campo end code viene visualizzato un valore diverso da 00, che si riferisce
ad uno specifico errore. Al contrario se sono avvenuti errori di sintassi e
semantica del pacchetto, viene ricevuto un secondo pacchetto di errore:
101 100 160 160 161 160 160 160 *

Unit Number

Header code End code

FCS

CR

Teminator

Figura 3-4: pacchetto errore C-Command

Fins
Rappresenta lultimo protocollo nato in casa OMRON. E molto affidabile ed
efficiente. Supporta la comunicazione via porta seriale o tramite Ethernet
(mediante socket UDP). Come fatto per il precedente C-Command si
illustrano di seguito la semantica e la sintassi del protocollo:

ICF

00

02

RSV

GCT

160 160
DNA

DA1

DA2

SNA

160 MR SR
SA1

SA2

SID

Text

Command

Figura 3-5: pacchetto richiesta Fins

Attenzione se per la comunicazione avviene tramite porta seriale bisogna


aggiungere la @ allinizio e FCS e i due caratteri terminatori alla fine.
Analogamente al precedente si mostrer il significato di ogni sigla:

76

ICF

(Information

control

field)

Configurato

per

mostrare

la

sequenza del datagramma


RSV

(Reserve) Bit usati dal sistema

GCT

(Gateway Count) Indica quanti nodi di rete il pacchetto pu


attraversare da 0 a 8.

DNA

(Destination network address) Specifica in esadecimale la rete


di destinazione

DA1

(Destination node address) Specifica il nodo di rete di


destinazione

DA2

(Destination unit address) Specifica lunit di comunicazione


di destinazione

SNA

(Source network address) Specifica in esadecimale la rete


sorgente

SA1

(Source node address) Specifica il nodo di rete di sorgente

SA2

(Source unit address) Specifica lunit di comunicazione di


sorgente

SID

(Service ID) usato per identificare il processo di trasmissione

COMMAND Varia da comando a comando


CODE
TEXT

Varia relativamente al comando inviato

Il settaggio di questi parametri varia per se stiamo utilizzando un


comunicazione seriale, infatti esistono alcune sigle speciali per identificare
che la comunicazione avviene mediante questo mezzo trasmissivo. Questo
protocollo non cos diverso dal precedente. Il campo Text contiene i
parametri dei relativi comandi ad esempio per la lettura di una memoria il
campo command code contiene il comandi di lettura, il Text contiene il
codice della memoria in cui dovr essere effettuata la lettura, lindirizzo di
memoria, e se richiesto anche lindirizzo del bit. Segue lelencazione in
tabella dei comandi:
77

Command
Code

Tipo

MR

Descrizione
SR

Accesso memoria 01

01

Lettura memoria

01

02

Scrittura memoria

01

03

Scrittura si blocchi di memoria

01

04

Lettura blocchi di memoria

01

05

Trasferimento

copiatura

blocchi

di

memoria
Parametri

di 02

01

Lettura area parametri

02

02

Scrittura area parametri

02

03

Pulizia area parametri

Area di memoria 03

06

Lettura area del programma

del programma

03

07

Scrittura area del programma

03

08

Pulizia area del programma

Modalit

04

01

Modalit Run

operativa

04

02

Modalit Stop/Program

Configurazione

05

01

Lettura modello della Cpu

dispositivo

05

02

Lettura dati per la connessione

dello 06

01

Stato della Unit CPU

stato

06

20

Lettura tempo Clock CPU

Sincronizzazione

07

01

Lettura Orologio interno

07

02

Scrittura Orologio interno

09

20

Tabella Comandi Fins supportati

Periferiche

0C

01

Memoria di accesso di altre periferiche

esterne

0C

02

Forzatura Memoria di accesso

0C

03

Eliminazione Memoria di accesso

accesso memoria

Lettura

Messaggio
display

78

Errori

21

01

Lettura file di log

21

02

Cancellazione file di log

21

03

Eliminazione del File

Errori protocollo 21

40

Scrittura area di accesso Fins

FINS

21

41

Pulizia Area di scrittura comandi fins

Memoria

22

01

Lettura File

riservata ai File

22

02

Lettura di un singolo file

22

03

Scrittura di un singolo file

22

04

Cancellazione File

22

05

Formattazione Memoria

22

07

Copiatura File

22

08

Modifica none del File

22

0A

Memoria Di appoggio di trasferimento file

22

0B

Parametri di trasferimento File

22

0C

Programma di trasferimento file

22

15

Creazione\Cancellazione Directory

22

20

Trasferimento memoria esterna

23

01

Forzatura Bit

23

02

Eliminazione Forzature

Forzature

Figura 3-6 : Comandi fins

Analogamente al precedente se la risposta non contiene errori di sintassi il


pacchetto ricevuto viene visualizzato come segue:

ICF

00

02

RSV

GCT

160 160
DNA

DA1

DA2

SNA

160 MR SR
SA1

SA2

SID

Command

Text
End Code

Figura 3-7: pacchetto risposta Fins

79

Anche in questo caso la risposta contiene un altro campo denominato End


Code, che contiene un possibile errore avvenuto durante la comunicazione.
Se tutto andato a buon fine il suddetto conterr 00.

Strumenti misti : i bridge ethernet-seriali e le loro caratteristiche


Nellambito del progetto per la comunicazione mediante i protocolli sopra
citati stato utilizzato un piccolo apparecchio elettronico comunemente
chiamato

bridge

ethernet-seriale.

Questo

dispositivo

permette

la

interconnessione fra reti o interfacce anche se logicamente e fisicamente


diverse. In commercio ne esistono di svariati tipi di forme, marche, modelli
e con caratteristiche diverse, in grado quindi di soddisfare la vasta gamma
di problematiche, per cui svolgono la funzione. Ci si soffermer solo ad
analizzare quello da noi utilizzato, in quanto non ci sembra il caso di
illustrare le funzionalit di tanti altri, che non abbiamo avuto modo di
utilizzare. Il nostro bridge ethernet-seriale un apparecchio di dimensioni
relativamente piccole, di seguito verr mostrata la foto ( stato eliminato il
produttore per problemi di copyright).

Figura 3-8: Bridge Ethernet-seriale

80

In questa foto non visibile, ma come interfaccia di ingresso ha un


connettore RJ45 , mentre in uscita, come si vede chiaramente in figura, vi
un connettore RS232 o comunemente chiamata porta Seriale. Al suo
interno contiene un piccolo server, nel quale possibile settare i principali
parametri di configurazione, tra i quali:

indirizzo ip e porta del bridge,

parametri di configurazione della porta seriale in uscita, ecc. Oltre a


questi semplici e importanti parametri offre anche la possibilit di lavorare
in diverse modalit, a seconda della funzione ed infine contiene un access
list (ACL), la quale elenca tutti i possibili indirizzi IP che sono abilitati a
comunicare con o attraverso il bridge . Il corretto funzionamento
permesso anche grazie ai driver forniti dallazienda produttrice.

Quando

un applicativo vuole comunicare tramite la porta seriale i driver controllano


se la porta seriale esiste veramente (porta fisica); in questo caso la
comunicazione avviene normalmente. Al contrario quando si tenta di
accedere ad una porta seriale inesistente (porta virtuale) i driver
redirezionano la comunicazione (inserendo header e tail appropriati) sulla
scheda ethernet e viene inviato il pacchetto in modo broadcast.

Gli

eventuali bridge collegati alla rete ricevono il pacchetto, se la porta seriale


di destinazione coincide con i parametri precedentemente stabiliti,
convertono il segnale e lo trasmettono tramite linterfaccia di output,
mentre se la porta non coincide, il pacchetto viene ignorato.

81

UNAPPLICAZIONE CONCRETA: CONTROLLO DI PLC OMRON


Obiettivo del progetto
Lesigenza dellattuazione del progetto in esame proveniva da unazienda di
medie dimensioni della provincia di Parma del settore metalmeccanico.
Lazienda si trovava in una situazione critica dove la comunicazione fra i
vari dispositivi (i Plc) utilizzava mezzi antiquati, lenti e tecnologicamente
inadeguati. Come esempio vorremmo riportare che la comunicazione era
possibile solo tramite uno switch seriale e manuale. Il richiedente quindi
chiedeva un intervento drastico, modificando radicalmente larchitettura,
metodi e protocolli di comunicazione. Modificando, o meglio creando a
nuovo ad hoc, larchitettura, i vincoli e le esigenze da rispettare non erano
molte (almeno ad un primo ed alto stato di analisi), a parte i soliti vincoli di
costi e flessibilit dellinfrastruttura per ampliamenti futuri. Lazienda ci
invitava a progettare ed implementare un applicativo su piattaforma
Windows XP, unico e di facile utilizzo che potesse espletare tutte le funzioni
che larchitettura e i software gi installati gi compivano. Questo software
quindi aveva il compito di: comunicare con i vari Plc, e quindi
implementare i protocolli di comunicazione propri dellazienda produttrice
dei dispositivi. Comunicare e manipolare con un base di dati per
mantenere consistenza e persistenza dei dati utilizzati in ogni fase del
progetto. Ed infine creare un interfaccia grafica locale, simile a quelle gi
presente in azienda in altri applicativi, in grado di mettere a disposizione
tutte le funzionalit e le propriet che questo applicativo offre. La ditta
richiedeva la messa in funzione di un sistema che potesse far comunicare e
configurare i sei PLC presenti nella stessa azienda e responsabili
dellattivazione sia di macchine utilizzate nella produzione che di operazioni
domotiche.

82

Figura 4-1 : vecchia architettura progetto

La situazione descritta nella figura rappresenta

lo stato reale in cui si

veniva ad operare e la carenza strutturale vigente.

Si notano pure sei

elementi sostanziali rappresentanti da altrettanti PLC Omron, dei quali


quattro della serie CPM2A con comunicazione seriale mediante CCommand, e i rimanenti due Omron della serie C200HS comunicanti tra
loro

mediante

modulo

Ethernet

con

protocollo

Fins.

CPM2A

comunicavano tra loro con un PC dedicato ed un piccolo software scritto in


MS-Dos. Tra i PLC e il PC era posizionato un piccolo switch seriale ancora
manuale. Per comunicare con uno di questi quattro si era costretti a:
posizionare il selettore dello switch

sul nodo duscita voluto caricare il

modulo del programma DOS corrispondente al PLC selezionato solo cos si


era in grado di comunicare con suddetto PLC. Gli ultimi due PLC rimasti
erano in contatto tramite unaltra applicazione scritta in Visual Basic,
coadiuvata da un controllo Active X che implementava le varie funzioni di
83

comunicazione, mentre il programma VB eseguiva l interfacciamento tra


lutente e la macchina. Come facilmente si deduce, la situazione non era
pi sostenibile e imponeva un intervento radicale al fine di ottenere i
seguenti benefici: eliminare lo switch
tecnologia ethernet sicura ed affidabile.

manuale, quindi portarsi su una


Sostituire la macchina MS-Dos

dedicata e lapplicativo VB con un programma ad hoc portabile in grado di


fondere in un unico programma le funzionalit svolte prima. Nei prossimi
capitoli verr mostrato come e in che modo stato possibile attuare il
progetto.

Larchitettura del nuovo sistema


A seguito di una prima analisi del problema sono emerse le caratteristiche
essenziali e i vincoli che il sistema doveva soddisfare. Abbiamo cercato di
creare un architettura ad hoc che permettesse di soddisfare le esigenze ed
emerso che:
i 6 Plc precedenti sono rimasti; come ovvio era impossibile eliminare o
sostituire i Plc, in quanto il programma e laggiornamento sarebbe
diventato troppo oneroso, sia con riferimento allacquisto di nuove
macchine che riguardo alla nuova programmazione sulle stesse.
Lazienda disponeva gi di una architettura DBMS centralizzata, con Oracle
sotto sistema ERP Baan e di altri applicazioni, in particolare installazioni
Oracle Express usate da un altro programma creato da AreaAsp e CS
Soluzioni per il monitoraggio di postazioni di lavoro. Si ritenuto
opportuno sfruttare questa tecnologia per creare un Database ad hoc il
quale potesse contenere tutte le informazioni necessarie per le varie fasi. Le
informazioni contenute riguardano sia la parte di impostazione, vengono
cio memorizzati i settaggi necessari per la comunicazione (indirizzo IP o
porta Seriale dei vari Plc, parametri dei protocolli, ecc), ma anche tutta
unaltra parte per mantenere, reperire informazioni anche senza dover
84

continuamente

interrogare

Plc,

soprattutto

quelli

connessi

con

collegamenti seriali mantenendo ottime le prestazioni di accesso in base ad


un costo temporale. Come spiegato sopra questa applicazione richiede
anche un costante aggiornamento dellorologio interno dei vari Plc.
Abbiamo utilizzato un piccolo server presente in azienda, costantemente
acceso per il monitoraggio di un altra applicazione, inserendo un piccolo
modulo software - chiamato appunto Sincronizzatore che, dopo un tempo
costante, aggiorna l orologio di ogni Plc con lora corrente del server in cui
l applicativo installato. Lultimo ma non meno importante componente
il programma di interfaccia utente, installato sulla postazione di controllo,
unico vero collante tra le varie parti del sistema.
Questa, viste le soluzioni precedenti e i vari software presenti in azienda,
necessitava essere snella, rapida da comprendere ed usare e infine dotata
di molti shortcut key (o tasti i scelta rapida) molto simile a vecchie
applicazioni Dos.

I sistemi controllati
Dopo aver mostrato larchitettura generale del sistema, abbiamo svolto una
breve e semplice analisi, dalla quale sono emerse le entit coinvolte
meritevoli di considerazione.
Qui sotto si propone un piccolo e breve elenco per capirle comprenderle al
meglio.
I PLC: Sono 6 e precisamente di due famiglie : 4 sono CP1A egli ultimi 2
C200HS. I primi comunicano solo ed esclusivamente mediante porta
seriale, mentre gli ultimi 2 comunicano tramite Ethernet e/o porta seriale.
Le caratteristiche tecniche e logiche di queste entit sono gi state
illustrate nei capitoli precedenti.

85

Lo SCADA : un piccolo modulo software installato su un server che ha il


compito di sincronizzare gli orologi all interno dei PLC. Le caratteristiche
teoriche degli scada sono state chiarite in precedenza mentre per la parte
implementava rimandata ad un successivo capitolo.
DBMS : Si tratta di una postazione Oracle

gi largamente utilizzata in

azienda sia per gestire la contabilit, che come base dati per

altri

applicativi. Nel presente progetto viene utilizzata per mantenere la


persistenza e la consistenza dei dati. La logica di costruzione della base di
dati definita e abbondantemente descritta successivamente.
L INTERFACCIA UTENTE: Linterfaccia locale da noi ideata fa in modo che
tutte le varie parti sopra elencate vengano unite, collegate in modo che tutti
gli utenti, anche con poche conoscenze tecniche, possano usufruire e
sfruttare le potenzialit offerte dal sistema. Si pensato di crearne solo
una locale con tecnologia Windows Form, essendo l applicativo interno
allazienda e non richiedente una visualizzazione o una manipolazione in
sedi al di fuori dellazienda.

I Plc e le strutture associate


Per comunicare fra i vari PLC, abbiamo dovuto inserire dispositive o schede
elettroniche, atte al raggiungimento di una comunicazione snella e veloce.
Nei nuovi PLC, cio quelli della famiglia C200HS, possibile inserire una
scheda di rete, chiamata precisamente ETN-11, la quale, a sua volta,
contiene un connettore RJ45, il classico connettore di rete Ethernet.
Questo fa si che tra un normale computer e suddetto PLC, la
comunicazione avvenga tramite rete Ethernet. I dispositivi associati sono i
pi comuni utilizzati in qualsiasi altro ambiente, dove la comunicazione
avviene mediante lanzidetta tecnologia. (Hub,router,switch,ecc..) Per i
86

restanti PLC, quelli facenti parte della famiglia CP1A, tale modulo ETN-11,
non era pi in produzione, pertanto la comunicazione poteva avvenire solo
ed esclusivamente mediante porta seriale. E stato quindi necessario
ricorrere ad un bridge ethernet seriale, in grado di ricevere in input un
segnale ethernet, convertirlo in un segnale seriale, inviarlo al plc

viceversa. In questo modo tutta la comunicazione globale avviene tramite


cavi RJ45, mentre il cosiddetto ultimo miglio avviene tramite canale
seriale.

Lo Scada e le sue caratteristiche


Dal punto di vista teorico lo scada stato trattato in modo esaustivo nei
capitoli precedenti. Unarchitettura di questo tipo per entra pedantemente
a far parte del nostro applicativo come sincronizzatore degli orologi interni
del plc. Vorremmo quindi spiegare brevemente la infrastruttura e la
architettura da noi sfruttata e utilizzata. La tecnologia usata stata, nel
complesso, molto semplice. Come interfaccia grafica abbiamo pensato di
creare una piccola form che derivasse dalla classe WindowsForm presente
in C# in modo da avere tutte le potenzialit di una classica interfaccia
utente , ma con la possibilit di creare overriding e overloading dei metodi
per poter eliminare alcuni aspetti delle form per noi poco interessanti. La
form da noi creata risulta molto semplice e intuitiva, contiene il simbolo
dellazienda, una progressbar e alcune label per visualizzare il risultato. Il
sincronizzatore opera in questo modo: sfruttando i componenti C#

precisamente il componente Timer ne sono stati creati 7 uno generale e i


restanti associati ad ogni singolo stabile. Il primo chiamato -timer generaleviene attivato ogni 15 minuti, questo non fa altro che attivare un altro
timer, e precisamente quello dello stabile A ( la scelta ricaduta su questo
perch il primo in ordine alfabetico, non per motivi tecnici) Il timer dello
stabile A richiama il comando per la sincronizzazione dellorologio interno.
87

Inoltre, analizzando a fondo il programma del Plc ci siamo accorti che


lorario era ripetuto allinterno di memorie utilizzate esclusivamente dal
programma e precisamente nella Dm 0, 1 e 2. Lorario per in queste 3
celle di memorie era diviso in questo modo: nella prima erano memorizzati i
secondi, nella seconda era memorizzato lorario come minuti dalla
mezzanotte, cio un numero intero compreso tra 0 se si trattava della
mezzanotte del giorno corrente e 1439 se si trattava della

mezzanotte

meno un minuto. Ed infine nella terza ed ultima Dm era memorizzato il


giorno come un numero intero progressivo e compreso tra 1 se si trattava
di luned e 7 se si trattava della domenica. Questo timer rimane attivo per 1
minuto infatti il tempo che intercorre tra l invio del primo pacchetto
(sincronizzazione orologio) e la risposta dellultimo (scrittura avvenuta
correttamente) anche in casi peggiori sicuramente minore . Ultimate in
modo corretto le sue operazioni attiva il secondo timer che svolge le
medesime operazioni. Terminate poi la sincronizzazioni dei primi 4 stabili
si passa alla sincronizzazione degli ultimi 2 stabili. In questo caso per il
programma contenuto allinterno dei PLC costantemente ed in automatico
aggiorna il suo orario anchesso creato nelle sue dm cosi in questo caso
bastato solo creare un piccolo socket

e inviare tramite esso il comando

Fins appropriato. Terminato ci si disabilitano e si rimane in attesa della


nuova abilitazione. Se il sincronizzatore per qualche motivo non riesce a
comunicare o i parametri dei comandi inviatogli sono errati in automatico
inserisce allinterno del database un record nella tabella dei log contenente
il tipo di errore.

La base di dati per la persistenza


Come in ogni applicazione che si rispetti anche in questo caso serviva una
base dati per la persistenza, la coerenza, la manutenibilit e i possibili

88

aggiornamenti o ampliamenti futuri. La nostra base di dati deve essere in


grado di soddisfare i seguenti requisiti:
Contenere tutti i dati relativi ai dettagli generali dellapplicazione,
come ad esempio i parametri di connessione ai vari plc, i parametri
del protocollo Fins, e alcuni parametri riferiti ad alcune preferenze
dellutente
Contenere gli stessi dati, ovviamente in un formato diverso , presenti
in ogni Plc , per far si che gli utenti di questa futura applicazione, non
siano costretti a collegarsi ad un particolare Plc per poter visualizzare
i dati contenuti, ma con semplici istruzioni SQL possano essere
visibili , aumentando in questo modo lefficienza globale (rispetto al
tempo di esecuzione).
Contenere i dati e i vari privilegi degli utenti che andranno ad
utilizzare questa applicazione aumentando in questo modo la
sicurezza .
Contenere un piccolo storico delle operazioni svolte per mantenere la
tracciabilit e la possibilit di effettuare un rollBack delle possibili
operazioni dannose commesse allinterno del sistema.
Dopo una lunga analisi (con non poche discussioni) siamo arrivati a
definire un piccola base di dati.

89

Figura 4-2: diagramma ER

90

Il Diagramma ER sovrastante spiega i collegamenti logici tra le varie


tabelle, mentre non spiega la semantica delle tabelle, che per viene di
seguito illustrata
PLC_LIST : oltre che ha contenere i 6 plc con i suoi dati personali sono
presenti anche i parametri di connessione.
RELE : contiene la lista delle uscite abilitate, che noi per semplicit
abbiamo definito in questo modo. Infine contiene tutti i vari parametri che
servono allapplicazione per trattare in modo corretto le possibili uscite o
rele che i Plc associati ofrono.
FASCIA : suddetta tabella contiene gli orari di inizio e fine di ogni rel
precedentemente abilitato. Una sua particolarit quella di non caricare
antecedentemente tutte le fasce che potranno essere inizializzate, ma solo
quelle veramente abilitate, (cio quelle che hanno subito una modifica da
un utente abilitato), in modo da evitare spreco di spazio. E stato il motivo
per cui stato necessario inserire un campo numerico posizione che
permette, anche grazie al giorno e al rel , di risalire con precisione e senza
margine di errore la reale ubicazione della fascia.
UTENTI :

questa piccola tabella contiene i minimi dati anagrafici di un

futuro utilizzatore dellapplicativo. Per mantenere alto il livello di sicurezza


tutta questa tabella verr criptata utilizzando una chiave di 32 caratteri
PRIVILEGI : contiene i rel o gli stabili che un dato utente pu manipolare
(modificare fasce orarie). Se un determinato utente e un Power Admin ,
sinonimo di Amministratore generale, questa tabelle viene ignorata poich
questo particolare utente ha tutti i privilegi.

91

LOG e SESSIONI : la tabella dei log contiene le operazioni principali svolte


dagli utenti, mentre nella tabella sessioni contenuto lora di ingresso,
inteso come login effettuato in modo corretto, e lora di uscita, intesa come
disconnessione o chiusura della form principale, di un utente.
Per limplementazione di questa base di dati inizialmente ho creato tutte le
tabelle mediante comandi SQL . Per ogni tabella, poi, ho utilizzato una
sequence cio un contatore che viene impiegato come chiave primaria.
Lunicit di questo particolare elemento viene costruita mediante la
realizzazione di un trigger che, dopo linserimento di un determinato
record, incrementa il contatore e lo inserisce nel campo prestabilito. Al
termine mi sono preoccupato di generare dei particolari trigger in grado di
mantenere coerenza e consistenza tra le chiavi primarie e le chiavi esterne
presenti nelle varie tabelle. In corso dopera poi il cliente, ha modificato le
richieste, esigendo la possibilit che lapplicazione svolgesse il suo normale
compito (anche con funzionalit ridotte) senza la base di dati. Bisognava
quindi trovare una soluzione veloce, ottimale senza dover stravolgere il
codice e la logica gi definite e scritte. Dopo una breve analisi e una lunga
ricerca tramite Internet, si giunti alla soluzione creando dei file Xml in
grado di simulare la stessa base di dati (o almeno una parte) su questi
particolare file. Pure in questa occasione abbiamo sfruttato le potenzialit
offerte dall ambiente di sviluppo e in particolare la libreria di classi
chiamate System.Linq. Tale libreria richiede in input uno schema (sfruttato
nel file per creare i tag e i nodi principali) e una serie di dati nello stesso
formato utilizzato in un database ed in output restituisce il file Xml. Come
si intuisce da quanto detto prima,la libreria non nientaltro che un parser
Xml che permette di creare e gestire una piccola o modesta base di dati su
file, questo comporta anche la possibile ricerca, cancellazione, o modifica
dei record, chiamati, nello specifico, nodi. Il pacchetto Linq in questo caso
mette a disposizione un particolare linguaggio molto simile al linguaggio sql
atto a svolgere tutte le operazioni sopra citate. Per inserirlo nella logica
precedentemente definita abbiamo creato un serie di classi che hanno il
92

compito di svolgere le funzioni di manipolazione di dati su Xml, cio un


adapter . Infine, sfruttando al massimo le capacit della programmazione
OOP abbiamo aggiunto un nuovo strato software, con il compito di
mantenere congruente la base di dati con file Xml. Ogni volta che viene
salvato un

particolare record allinterno del database, viene salvato

contemporaneamente sul file Xml, cio un wrapper, un cappello che


maschera il salvataggio.

Visione di insieme
Il disegno sottostante illustra la struttura generale dell architettura da noi
realizzata:

Figura 4-3: nuova architettura

93

Come si pu notare sono presenti i sei plc dei quali due collegati
direttamente alla rete ethernet, mentre i restanti collegati mediante il
bridge ethernet-seriale. La base dati oracle accessibile da ogni Pc o
dispositivo collegato.

Figura 4-4: Schermata principale

La schermata principale che, come spiegato, contiene e collega tutti gli


aspetti fondamentali. Questo infatti maschera la vera implementazione,
costituendo buona parte del lavoro svolto durante il tirocinio. Tutto
lapplicativo stato diviso in pacchetti, contenenti ciascuno un insieme di
classi

atte a soddisfare una determinata tipologia di problema. Vorrei

brevemente

elencare

pacchetti

presenti

nellapplicativo

da

me

implementato. Il primo pacchetto contiene le classi che si occupano del


canale di comunicazione e precisamente quello seriale ed ethernet (socket
94

UDP). Il secondo implementa i vari protocolli proprietari di Omron . Il terzo


pacchetto implementa la connessione e la comunicazione al database. Il
quarto si occupa di strutturare in memoria locale tutti i dati e le
informazioni presenti nel database. Ogni entit, quindi, viene rimappata in
memoria mediante le classi atte alla manipolazione dei dati allinterno del
database e allinterno dellapplicazione stessa. Il quinto pacchetto si occupa
delle varie conversioni dei dati per la comunicazione o per la corretta
sintassi dei dati utilizzati allinterno del PLC. Lultimo pacchetto contiene
tutte le interfacce grafiche (quella rappresentata nella figura sovrastante
solo la principale, ma, ne sono state realizzate molte altre al fine di
raggiungere un discreto grado di semplicit e immediatezza riguardo la
manipolazione dei dati). Il medesimo pacchetto sviluppa funzioni in grado
di soddisfare appieno le richieste del cliente. Un esempio la navigazione
completa dellinterfaccia mediante short-key.

Figura 4-5: schermata sincronizzatore

La figura 4-5 rappresenta linterfaccia del sincronizzatore. Questo piccolo


applicativo non contenuto nel precedente, ma per svilupparlo ho
utilizzato pacchetti, classi e funzioni proprie di quello sopra citato.

95

IL LAVORO OPERATIVO
Difficolt incontrate
Dopo aver mostrato nei vari capitoli precedenti tutto ci che riguarda
lapplicativo, visto sia dal punto di vista teorico sia dal punto di vista di
implementazione e progettazione vorrei soffermarmi sulle difficolt avute e
incontrate in corso dopera. Dal punto di vista di progettazione non
abbiamo

incontrato

particolari

difficolt

perch

il

sistema

era

completamente da rifare, i vincoli erano pochi tra i quali la struttura della


rete e anche la sua disposizione. Il problema maggiore stata la vera e
propria implementazione, data anche dalla nostra poca esperienza con
lambiente di sviluppo. Abbiamo cominciato ad implementare i CCommand, i manuali a disposizione erano tanti ma non sempre
descrivevano effettivamente ci che si doveva fare nella realt. E giusto
sottolineare che il protocollo utilizza una comunicazione seriale pertanto
era impossibile inserire tra i due attori uno strato software per capire o
visualizzare ci che i medesimi si inviavano. Dopo alcune prove, ricerche e
tentativi il protocollo stato implementato correttamente. Siamo poi
passati al protocollo Fins, in questo caso i manuali erano molto pi efficaci
ed efficienti, le spiegazioni erano dettagliate (anche se alcuni parametri non
erano documentati sufficientemente). Il problema incontrato in

questo

caso era rappresentato dallimplementazione di un socket UDP con il nuovo


linguaggio di programmazione, anche in questo caso, dopo molte ricerche
su Internet, la cosa si risolta nei migliore dei modi. Il lavoro di
implementazione del socket, non stato in seguito utilizzato entro il
progetto complessivo perch in corso dopera risultato preferibile usare
un componente chiuso associato ai convertitori Ethernet-seriali. Il passo
successivo stata la creazione del database. Questo passaggio non ha
creato alcuna difficolt, sia dal punto di vista della progettazione sia quella
implementativi. Creato il diagramma ER stato molto semplice ed intuitivo
96

limplementazione tramite linguaggio sql. Forse lunico ostacolo stata la


creazione di sequenze. Oracle non contiene un campo speciale di chiave
primaria che permette in automatico la creazione di un numero univoco
che rappresenta ogni record. In Oracle bisogna creare una successione e
un trigger in grado di sopperire la mancanza di questo campo speciale. Un
ulteriore passaggio stato quello di creare i metodi e le classi per la
comunicazione e la manipolazione di ogni entit allinterno dei database.
Dal punto di vista di logica implementativa non ci sono stati problemi
poich bastata la mia poca esperienza a portare a termine questo step.
Qualche difficolt si presentata con la vera e propria implementazione.
Per ultimo abbiamo affrontato il lavoro non poco difficoltoso della creazione
dellinterfaccia utente Per risolvere e soddisfare le richieste del cliente si
sono dovute creare molte icone semplici e intuitive da inserire nelle varie
parti del programma per facilitare gli accessi allutenza. E stato poi
semplice incollare i vari passaggi sopra elencati, in quanto nelle varie fasi
di progettazione di ogni singola si sono applicate le tecniche apprese nel
corso di laurea.

Correzioni in corso dopera


Avendo sviluppato unottima documentazione e unottima progettazione le
correzioni in corso dopera sono state relative solo ad alcuni componenti e
alla realizzazione nellinterfaccia grafica. Per spiegare meglio il tutto si cita
lesempio pi lampante: durante limplementazione dei C-Command
abbiamo creato una piccola classe chiamata SerialPortWrapper

che

utilizzava al suo interno il componente porta seriale contenuto in C#. Fino


a che la comunicazione tra PC e PLC avviene in modo diretto non vi alcun
problema, quindi abbiamo proseguito per questa strada, quando per tra i
PC e PLC si dovuto inserire il bridge Ethernet seriale, la comunicazione si
bloccava. In un primo momento pensavamo che il problema si dovesse
97

attribuire al Bridge, ma scaricando da Internet un piccolo applicativo Open


Source scritto in Visual Basic 6, abbiamo constatato che la comunicazione
avveniva in modo non solo corretto, ma anche veloce. Il problema quindi si
spostato dal Bridge al programma in s. Chiedendo parere ad esperti si
compreso che la gestione delloggetto porta seriale allinterno di C# era
completamente diverso e non supportava di conseguenza le porte virtuali.
Si deciso pertanto di importare loggetto porta seriale, creando un Active
X da VB 6. Nel momento in cui abbiamo dovuto implementare la classe
socket,

avendo

riscontrato

lo

stesso

problema,

si

proceduto

analogamente. Su espressa e specifica richiesta del cliente, sono state


successivamente apportate variazioni e correzioni allinterfaccia grafica.

98

CONCLUSIONI
Il sistema in esecuzione
Dopo una prima fase di test eseguita in ufficio si portato lapplicativo in
azienda, procedendo in questo modo: si mantenuto lapplicativo vecchio e
si installato a fianco il nostro nuovo. La situazione rimarr tale per circa
quattro mesi, cos da poter avviare una approfondita fase di collaudo in
azienda e, nel caso di riscontrassero problemi, non venga interrotta la
normale esecuzione del sistema. In questa prima fase si constatato che il
programma abbastanza affidabile per quanto riguarda la comunicazione
con il PLC. Sono emerse delle normali incongruenze dovute a piccoli errori
di programmazione o dei vari parametri, che impostati durante la fase di
sviluppo, avevano un determinato valore diverso da quello rilevato in
azienda. Questa tipologia di errore si sa che inevitabile ed sempre da
tenere in considerazione per questo motivo, come spiegato si scelto di
mantenere in parallelo le due soluzioni.

Bilancio del lavoro svolto


Mi ritengo abbastanza soddisfatto del lavoro svolto, ho potuto imparare,
capire e sviluppare un applicativo di medie dimensioni seguendo ed
implementando ogni parte, partendo prima dallanalisi fino al pi basso dei
livelli cio la vera e propria stesura del codice ricordando e applicando,
anche a volte con molte difficolt tutte le regole, i vincoli e le ottimizzazioni,
conosciute e apprese nel corso di laurea. Unottima analisi a monte
permette

di

avere

delle

fondamenta

solide

per

evitare

spiacevoli

inconvenienti e che il programma si svolga in modo fluido e senza


particolari intoppi. Lanalisi infatti, coadiuvata dai tutors, approfondita e
studiata nei minimi dettagli, ha prodotto un ottimo risultato. Lo sviluppo
del database, per il quale sono maggiormente appassionato, stato
99

interessante ed istruttivo. Utilizzando un sistema di DBMS nuovo e di alto


livello ho avuto modo di ampliare la mia esperienza e la mia conoscenza. Mi
sono avvicinato al mondo del PLC, anche se di una singola marca, ma
parlando in ufficio con gente pi esperta di me, ho potuto comprendere che
anche gli altri PLC di diversa marca, mantengono caratteristiche pressoch
simili. Non ho dubbi ad affermare di aver pertanto acquisito concrete
capacit di lavorare su PLC di qualsiasi altra marca.

La vera e propria

implementazione stata complicata, ma nello stesso tempo anche


interessante. Ho potuto e dovuto scrivere righe di codice agendo su varie
parti, anche completamente diverse, ma riutilizzabili sicuramente in altri
programmi.

Si

parte

infatti

dalla

creazione

di

codice

atto

alla

comunicazione (porta seriale, e socket), la realizzazione di un protocollo (nel


caso specifico C Command e Fins, includendo pure la gestioni dei diversi
errori), la comunicazione con un data base, limplementazione di query per
la manipolazione dei dati, la realizzazione di controlli per la manipolazione
di file XML ed infine una miriade di procedure, funzioni, classi e pacchetti
allo scopo di raggiungere la corretta e completa funzionalit del software.

Applicazioni e ampliamenti futuri


Avendo sfruttato tutte le propriet e le caratteristiche sia apprese al corso
di laurea sia offerte nellambiente di sviluppo, la prima applicazione
potrebbe essere lo sviluppo di uninterfaccia web, in modo tale da poter
manipolare e monitorare i dati anche allesterno dellazienda. Con poche
modifiche del codice possibile inserire una nuova entit, che definiamo
come profilo o meglio configurazione. Lentit raggrupperebbe un insieme
di rel impostati in modo tale da gestire gli interventi rispondendo ad
esigenze di orari e periodi diversi. Per spiegarmi meglio, gli orari invernali
sono diversi da quelli estivi, gli orari feriali non sono gli stessi rispetti i
festivi o i prefestivi, le ore diurne richiedono comandi differenti a quelli
100

notturni ecc. Lutente avrebbe quindi la possibilit di opzione sui diversi


profili e unamplia possibilit di caricamento dati. Non vediamo rilevanti
applicazioni o aggiornamenti futuri in quanto lapplicazioni e stata creata
ad hoc per quellazienda rispettando le tutti i suoi vincoli ed esigenze. Ci
non toglie pero che parti di codice vengano inserite in un altro contesto e
essere riutilizzate per scopi completamente diversi , si pensi al protocollo di
comunicazione Omron , la connessione al DataBase , la gestione dei file
Xml ,ecc

101

INDICE DELLE FIGURE


1-1

Il modello client-server

1-2

Una rete broadcast

1-3

Una rete punto a punto

1-4

Topologie Bus e Ring

1-5

Distribuited Queue Dual Bus

1-6

Struttura tipica di una WAN

1-7

Topologie di interconnessione

1-8

Interconnessione di router via satellite

1-9

Interconnessione di router via radio al suolo

1-10

Interconnessione di reti

1-11

Relazioni fra subnet, network e internetwork

1-12

Dialogo fra peer entity

1-13

Dialogo fra grandi menti

1-14

Flusso di informazioni fra peer entity

1-15

Servizi connection-oriented (a) e connectionless (b)

1-16

Relazioni fra protocolli e servizi

1-17

Modello OSI

1-18

Rappresentazione schematura dei livelli gestiti lungo un


cammino

1-19

Relazione fra i livelli OSI e TCP/IP

1-20

Relazione tra i livelli e i protocolli dellarchitettura TCP/IP

1-21

Schema di propagazione di disturbi elettromagnetici tra un


dispositivo sorgente di disturbi (Device 1, EMC Source) e un
dispositivo soggetto a tali disturbi (Device 2, EMC Sinc). In
rosso i disturbi irradiati; in azzurro i disturbi condotti.

1.22

Schema pacchetto Ethernet

1-23

Codifica Manchester

102

1-24

Retro di un PC con due porte RS-232 (i due connettori


maschio in basso)

1-25

Segnale della porta RS232

2-1

Schema logico architettura CIM

2.2

Piramide CIM

2.3

Schema logico SCADA

3-1

Pacchetto richiesta C-Command

3-2

Tabella comandi C-Command

3-3

Pacchetto risposta C-Command

3-4

Pacchetto errore C-Command

3-5

Pacchetto richiesta Fins

3-6

Comandi Fins

3-7

Pacchetto risposta Fins

3-8

Bridge Ethernet-seriale

4-1

Vecchia architettura progetto

4-2

Diagramma

4-3

Nuova architettura

4-4

Schermata principale

4-5

Schermata sincronizzatore

103

BIBLIOGRAFIA
[1] G.Destri : Introduzione ai sistemi informativi aziendali, Mup Editore,
Parma, 2007
[2] G.Destri : UML nella progettazione software 2003 ,slide per il corso di
ingegneria del software
[3] C.Chiodelli :Sistema Intelidomus IP,2005
[4] C.chiodelli :Building & home Automation 2004
[5] Tanenbaum Andrew S. : Reti di Calcolatori , Addison Wesley ,2003
[6] G.Bongiovanni : sistemi di elaborazione Universit di Roma 2000
[7] Omron : manuali operativi Cp1x, 1996 http://www.omron.com/
[8] Omron : manuali Operativi C200H, 1999 http://www.omron.com/
[9] Moxa : manuali Operativi Nport 5110, 2005
[10] I.Bacchi : Progettazione di applicativi per la super visione domotica
2005
[11] Wikipedia : Standard Seriale
[12] Wikipedia : Rumore ed interferenze elettromagnetiche.

104

105

Potrebbero piacerti anche