106
UNIVERSITÀ DEGLI STUDI DI PADOVA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA MECCATRONICA DIPARTIMENTO DI TECNICA E GESTIONE DEI SISTEMI INDUSTRIALI TESI DI LAUREA Progetto SPES: Software LabVIEW per Termoregolatore Eurotherm 2216e Relatore: Ch.mo Prof. ROBERTO OBOE Laureando: MANUELE FOCHESATO Matricola: 581175-IMC ANNO ACCADEMICO 2010-2011

UNIVERSITÀ DEGLI STUDI DI PADOVA - Istituto Nazionale di ... 2.6 iTools e il Test della Linea 2.6.1 iTools 2.6.2 Il Test della Linea . ... Dipartimenti di Ingegneria Meccanica e Meccatronica

Embed Size (px)

Citation preview

UNIVERSITÀ DEGLI STUDI DI PADOVA

FACOLTÀ DI INGEGNERIA

CORSO DI LAUREA IN INGEGNERIA MECCATRONICA

DIPARTIMENTO DI TECNICA E GESTIONE

DEI SISTEMI INDUSTRIALI

TESI DI LAUREA

Progetto SPES: Software LabVIEW per

Termoregolatore Eurotherm 2216e Relatore: Ch.mo Prof. ROBERTO OBOE Laureando: MANUELE FOCHESATO Matricola: 581175-IMC

ANNO ACCADEMICO 2010-2011

INDICE Sommario CAPITOLO 1 Il Termoregolatore Eurotherm 2216e

1.1 Generalità sui Regolatori Eurotherm 1.2 Il Termoregolatore 2216e 1.3 I Collegamenti del Regolatore 1.4 I Livelli di Accesso 1.5 Il Tuning 1.5.1 Il Tuning Automatico o Autotuning 1.5.2 Il Tuning Manuale 1.6 La Configurazione del 2216e CAPITOLO 2 La Linea di Trasmissione

2.1 Presentazione della Linea di Trasmissione

2.2 Gli Standard RS232 e RS485

2.3 Il Convertitore 232-485 I-7520 IP-CON 2.4 Il Convertitore USB-RS232

2.5 Parametri Comuni alla Linea 2.6 iTools e il Test della Linea

2.6.1 iTools 2.6.2 Il Test della Linea

CAPITOLO 3

Il Protocollo MODBUS

3.1 Generalità sul Protocollo MODBUS 3.2 Basi del Protocollo 3.2.1 Indirizzo dei Dispositivi 3.2.2 Indirizzo dei Parametri 3.2.3 La Risoluzione dei Parametri 3.2.4 Metodo di Trasmissione

3.3 Il Formato dei Messaggi 3.4 Le Funzioni MODBUS 3.4.1 Read N Bits 3.4.2 Read N Words 3.4.3 Write a Bit 3.4.4 Write a Word 3.4.5 Fast Read Status 3.4.6 Diagnostic Loopback 3.4.7 Write N Words 3.5 Altre caratteristiche del Protocollo MODBUS CAPITOLO 4 Interfaccia LabVIEW per Eurotherm 2216e 4.1 National Instruments e LabVIEW 4.2 Dettagli dei VI 4.2.1 Un Esempio di un VI 4.3 Tipi di Dati e Strutture 4.4 Selezione delle Operazioni 4.5 L’interfaccia LabVIEW per Eurotherm 2216e

4.5.1 La Porta Seriale e la Libreria VISA 4.5.2 La Gerarchia dell’Interfaccia 4.5.2.1 Configurazione della Porta Seriale 4.5.2.2 Configurazione del Protocollo MODBUS 4.5.2.3 L’Interfaccia di Comando 4.6 L’Interfaccia MODBUS per leggere Temperatura/Setpoint

4.7 L’interfaccia di Lettura

4.8 L’interfaccia di Scrittura

4.8.1 File di Riferimento

4.9 Interfaccia Definitiva

CAPITOLO 5 Il Controllo di Temperatura 5.1 Obiettivi del Controllo 5.2 Preparazione del Circuito di Controllo 5.3 Il Circuito di Controllo 5.4 La Procedura di Autotuning del Regolatore 2216e 5.5 Risposta ad un Gradino di Riferimento

5.6 Profilo di Temperatura Personalizzato Conclusioni Bibliografia

1

SOMMARIO

Lo scopo del presente lavoro riguarda l’utilizzo di un termoregolatore e la realizzazione di

un’interfaccia LabVIEW, dedicata a questo dispositivo. Il termoregolatore in uso è un

Eurotherm Invensys 2216e, per mezzo del quale si vuole monitorare la temperatura

all’interno di un forno elettrico ad alte temperature. Per effettuare la misurazione di

temperatura, si è prodotta un’interfaccia realizzata con l’ambiente di sviluppo di

LabVIEW, che permette di comandare il regolatore da un computer remoto. Tramite questa

interfaccia è possibile leggere la temperatura e il valore di riferimento utilizzato in tempo

reale, oltre alla possibilità di poter modificare lo stesso valore di riferimento sempre da

remoto. Inoltre è possibile inserire il valore di riferimento da file e decidere quindi anche il

profilo di temperatura che deve eseguire il forno. Successivamente, grazie alle sue

potenzialità di regolatore PID e di autosintonizzazione dei parametri di controllo, si

desidera impiegarlo in un semplice controllo di temperatura comandato in corrente, in

modo da simulare il suo reale utilizzo.

2

INTRODUZIONE

La fisica nucleare e la branca della fisica che studia il nucleo atomico nei suoi costituenti

protoni, neutroni e loro interazioni. Negli ultimi 30 anni e stata acquisita una vasta

conoscenza sul mondo dei nuclei grazie a molteplici studi teorici e sperimentali. Le

ricerche e le complesse tecnologie appositamente create, hanno portato alla nascita di un

gran numero di applicazioni nel campo della medicina, dell’ industria, della scienza dei

materiali e della fisica applicata. La maggior parte degli atomi che si trovano in natura

possiedono nuclei stabili, cioè nuclei in cui protoni e neutroni sono presenti in numero

uguale. Attraverso determinati processi fisici e possibile destabilizzare i nuclei stabili,

producendo cosi dei nuclei instabili detti radioattivi o denominati anche “esotici”.

L’insieme degli impianti e delle necessarie attrezzature per la produzione e l’ utilizzo di

questi ioni radioattivi prende il nome di facility. Nel corso degli anni l’Europa e diventata

leader nel campo della ricerca nucleare e sta pianificando, sotto la guida del CERN di

Ginevra, la costruzione di una nuova generazione di facility per la produzione di fasci

radioattivi con lo scopo di esplorare la materia esotica e di fornire un valido strumento per

applicazioni di tipo medico ed industriale. A questo programma partecipa attivamente

l’Istituto Nazionale di Fisica Nucleare (INFN) di Legnaro, con il progetto SPES (Study and

Production of Exotic nuclear Species) che prevede la costruzione di una facility per la

produzione di fasci di ioni radioattivi ricchi di neutroni (n-rich) e di alta qualità,

nell’intervallo di valori di massa compreso tra 80 e 160 uma. Tale progetto porterà, nei

prossimi anni, alla costruzione di un impianto di tipo ISOL per la produzione di ioni

esotici. La costruzione di un' unica grande facility di tipo ISOL a livello europeo

(EURISOL) e una iniziativa che coinvolge i principali laboratori nucleari europei.

Il progetto SPES prevede il bombardamento di un bersaglio in carburo di uranio con un

fascio di protoni in modo da generare, tramite reazione nucleare, specie radioattive all’

interno del target. Le particelle radioattive generate vengono successivamente estratte,

ionizzate, separate in massa ed accelerate come fascio di ioni radioattivo. Il cuore della

facility e il target in carburo di uranio, che solitamente si presenta come un unico blocco

cilindrico racchiuso all’interno di una scatola in grafite. L’ idea innovativa introdotta dal

progetto SPES e la suddivisione del target in sette dischi opportunamente spaziati che

consente, a parità di volume, di aumentare la superficie di scambio termico radioattivo tra

il target e il contenitore in grafite. Gli isotopi prodotti vengono estratti dalla camera grazie

alla linea di trasferimento che indirizza a sua volta le particelle verso la sorgente di

3

ionizzazione dove avviene appunto il processo di ionizzazione (ioni +1). A seconda del

tipo di elemento che viene utilizzato, vengono impiegate sorgenti di ionizzazioni differenti.

La scelta della sorgente di ionizzazione e di fondamentale importanza, in quanto il suo

funzionamento influenza l' intensità e la qualità del fascio radioattivo. Si possono

distinguere sorgenti con ionizzazione superficiale, sorgenti laser (RILIS), sorgenti al

plasma (FEBIAD) e le sorgenti ECR (Electron Cyclotron Resonance). Gli ioni prodotti

dalla sorgente di ionizzazione vengono accelerati da un elettrodo estrattore, realizzato in

lega di titanio, che viene mantenuto ad una differenza di potenziale di 60 kV rispetto alla

sorgente stessa. La linea di trasferimento, la sorgente di ionizzazione , l’ elettrodo

estrattore sono componenti che costituiscono il target e lo studio della distribuzione di

temperatura e delle deformazioni termiche che si verificano durante il processo e assai

complesso.

I Laboratori Nazionali di Legnaro hanno avviato, per queste ragioni, delle strette

collaborazioni con l’ENEA di Bologna, i Dipartimenti di Ingegneria dell’Informazione, i

Dipartimenti di Ingegneria Meccanica e Meccatronica e di Scienze Chimiche

dell’Università degli Studi di Padova, il CERN di Ginevra ed i Laboratori di Oak Ridge

(USA).

Fig.0-1 Rappresentazione schematica della facility SPES

4

La produzione del fascio radioattivo e strettamente legata alle caratteristiche del target

colpito dal raggio protonico. La composizione ed il livello di purezza dei materiali

costitutivi, la microstruttura e la morfologia (fase cristallina, porosità, dimensione dei

grani) del target sono di particolare importanza per la qualità del fascio. Il tipo di isotopi

prodotti dipende dall’energia del raggio incidente e dal materiale fissile, mentre

l’efficienza di rilascio e legata soprattutto alla diffusione degli isotopi all’interno del target,

nonché alla loro effusione.

La diffusione e l’effusione delle specie radioattive crescono enormemente all’ aumentare

della temperatura. Per questo motivo, la temperatura di lavoro del target deve essere

mantenuta il più elevata possibile in modo da garantire che la fase di rilascio sia minore del

tempo di decadimento degli atomi. La temperatura di lavoro del target e limitata dalla

pressione del vapore dei suoi elementi costituenti, dalla stabilita del target alle alte

temperature e dalle possibili reazioni che possono avvenire tra il target ed il contenitore

(alle alte temperature).

I forni di produzione rappresentano quindi validi e potenti strumenti per compiere test

sperimentali, per effettuare studi qualitativi e quantitativi sui risultati empirici ottenuti, per

sviluppare e consolidare nuove o rodate realizzazioni tecnico-strutturali.

a) b)

Fig.0-2 Forni di Produzione- a) forno per i test termo-meccanici - b) forno per i test sui

materiali

5

Essi sono progettati per trattamenti termici dei materiali e per l’ analisi e lo studio delle

deformazioni meccanico-strutturali dei componenti. Operano in condizioni di alto vuoto e

vengono perennemente raffreddati, grazie ad un impianto di raffreddamento a liquido,

nelle possibili zone di contatto per ragioni di sicurezza. I forni utilizzati nell’ambito del

progetto SPES sono 4. Di seguito vengono mostrati i 3 forni presenti ai LNL.

Il trattamento avviene all’interno di un contenitore accessibile (denominato evaporatore o

camera target), attraverso il riscaldamento per effetto joule di un elemento conduttore nel

quale vengono collocati i composti da trattare. L’ elemento conduttore può essere un

crogiolo di grafite oppure un riscaldatore in tantalio. Il forno può funzionare in modalità

manuale, oppure in modalità remota attraverso un software dedicato. Il forno può rimanere

in funzione anche per cicli lunghi (della durata di alcuni giorni).

Fig.0-3 Forno di Produzione target

6

Il fine di questa tesi è quello di creare un sistema che sia in grado di monitorare e di

controllare la temperatura di un forno elettrico o più ad alte temperature, utilizzati per

scopi di ricerca dall’Istituto Nazionale di Fisica Nucleare (INFN) di Legnago. Tali forni,

complessi e costosi, sono dotati di una resistenza sulla quale scorre una corrente elevata

(~1200A), che deve scaldare il forno a temperature altrettanto elevate. Ad oggi i forni sono

dotati di un PLC, che si occupa di numerosi controlli, e di un potente alimentatore (600V –

1500A) comandabile da un segnale esterno di corrente o di tensione. Visti gli enormi costi,

sia del PLC che dell’alimentatore, si desidera poter ridurre queste spese studiando delle

soluzioni alternative. Questo lavoro, infatti, si propone di determinare se fosse possibile

liberare il PLC dal controllo di temperatura, che dovrà essere eseguito dal termoregolatore

Eurotherm 2216e in dotazione. All'inizio nel progetto dei forni il regolatore aveva il solo

obbiettivo di misurare la temperatura del forno, tramite una termocoppia da 2500°C, e poi

di inviare i valori misurati, per via analogica, ad un sistema di acquisizione. In questa

modalità, però il modulo Eurotherm, non sfrutta a pieno le sue capacità. Ora si è interessati

a eseguire questa misurazione sempre con il regolatore, ma la successiva condivisione dei

dati deve avvenire per via digitale, cosa che il componente è atto a fare grazie la sua

predisposizione all'uso dei protocolli di trasmissione RS-485 e, più ad alto livello, con il

protocollo MODBUS. Oltre al cambiamento nell'utilizzo del dispositivo in uso, si vuole

produrre un'interfaccia LabVIEW dedicata a questo oggetto, in modo che lo scambio dei

dati digitali si concluda su un computer. Su questo computer, grazie a questa interfaccia, si

potrà monitorare la temperatura in tempo reale. Supponendo poi, l'utilizzo del

termoregolatore, come un reale regolatore, si è dotata l'interfaccia di una funzione di

visualizzazione e di modifica istantanea del valore di riferimento, o setpoint. In corso

d'opera, visto che il 2216e è anche in grado di auto-tararsi, cioè è in grado di auto-

determinare le grandezze indispensabili per il controllo, come la banda proporzionale, il

tempo derivativo e il tempo integrale, si è svolto un'insieme di prove che avevano lo scopo

di simulare il controllo della temperatura del forno. Solo in questo modo si può dire che il

regolatore sia sfruttato al meglio e che si giustifichi così la sua spesa, che in ogni caso è

notevolmente inferiore a quella del PLC. A causa poi dell'utilizzo del protocollo RS-485

del modulo e dell'assenza di questo tipo di connessioni nei normali computer, che usano la

RS-232, si è costituita una linea di trasmissione e di conversione dei dati in modo da poter

comunicare tra il regolatore e l'interfaccia LabVIEW.

7

Passando ora a presentare la struttura della tesi, essa si articola in cinque capitoli legati tra

loro, che seguono l'ordine temporale e intuitivo delle azioni svolte per raggiungere gli

scopi prefissati..

1. Il primo capitolo ha lo scopo di descrivere le caratteristiche e le funzionalità del

modulo Eurotherm utilizzato, oltre all’hardware e al software specifico di cui è

dotato. In esso, poi, verrà illustrata la configurazione programmata per essere

utilizzato al meglio in questo progetto.

2. Il secondo capitolo tratta della linea di trasmissione e conversione necessaria per far

dialogare il regolatore Eurotherm, che comunica in 485, con il computer, che

utilizza, invece la 232.

3. Il terzo capitolo analizza il protocollo di comunicazione a più alto livello in uso dal

regolatore Eurotherm, che è il MODBUS, in modo da essere successivamente in

grado di costruire l’interfaccia.

4. Il quarto capitolo presenta e illustra la gerarchia dell’interfaccia generata e spiega il

suo effettivo funzionamento e tutte le funzioni che è in grado di svolgere.

5. Il quinto capitolo esamina come è avvenuta la simulazione del controllo di

temperatura con la strumentazione e con l’interfaccia, visti nei capitoli precedenti.

Qui verranno anche mostrati i risultati finali della tesi, in modo da poter capire se

questa soluzione alternativa è attuabile.

Capitolo 1

Il Termoregolatore Eurotherm 2216e

8

Capitolo 1

Il Termoregolatore Eurotherm 2216e

1.1 Generalità sui Regolatori Eurotherm

Eurotherm è un'azienda del gruppo Invensys plc. Il gruppo Invensys, con sede a Londra, è

formato da cinque società: Process Systems, Eurotherm, Wonderware, Rail Systems e

Controls. Il gruppo conta oltre 25.000 dipendenti in 60 paesi e la sola Eurotherm vanta più

di 1.200 lavoratori in tutto il mondo e più di 100 ricercatori, che operano nello sviluppo dei

prodotti. Nata nel 1965 a Worthing, West Sussex, Inghilterra , Eurotherm è famosa per lo

sviluppo di soluzioni di sistema e prodotti ad hoc di ottima qualità, e offre oggi, un'ampia

gamma di prodotti, servizi e soluzioni di progettazione, in particolare per il settore

primario e con un’attenzione specifica alle soluzioni per i processi di produzione

industriale. La gamma di prodotti comprende: sistemi distribuiti di automazione dei

processi, di controllo delle macchine di tipo singolo e multi-loop, display operatore,

gestione dei dati, registratori grafici, controllo energetico, condizionamento dei segnali,

regolatori di processo e di temperatura, indicatori, registratori di dati, sistemi di

acquisizione dei dati, sensori, attuatori e regolatori di alimentazione SCR.

Della vasta gamma dei prodotti Eurotherm, quello che verrà utilizzato appartiene alla

classe dei regolatori PID, che si suddividono in quelli a loop-singolo o ad multi-loop (vedi

fig.1-1).

Capitolo 1

Il Termoregolatore Eurotherm 2216e

9

Fig.1-1 I regolatori Eurotherm a loop-singolo e a multi-loop

Al momento dell'ordine di un regolatore PID, Eurotherm offre un servizio per mezzo del

quale è possibile specificare le proprie esigenze in termini di tipi di ingressi, funzioni di

controllo e segnali di uscita, cosicché lo strumento verrà spedito solo dopo essere stato

preconfigurato, per consentirne un funzionamento immediato.

Processi industriali come l'estrusione di materie plastiche, il trattamento termico o la

lavorazione dei semiconduttori sono "processi continui" e richiedono un controllo stabile.

Eurotherm offre delle soluzioni per misure di processo precise, in grado di distinguere i

valori reali dal disturbo del segnale, unite ad algoritmi PID avanzati, che permettono di

ottenere una risposta a loop chiuso ottimale, in modo da creare un sistema personalizzato

per tenere sotto controllo anche il processo più difficile. Il calcolo manuale dei parametri

PID può essere una procedura lunga e richiedere approfondite conoscenze in materia di

controllo. La semplice ed intuitiva funzione di self-tuning automatica (vedi capitolo 1.5.1

Il Tuning Automatico o Autotuning), è in grado di calcolare i parametri PID ottimali,

consentendo di ridurre i tempi tecnici ed ottenere risposte di controllo in "continuo".

Tra i regolatori a loop-singolo vi è anche la famiglia del termoregolatore di temperatura

utilizzato in questo progetto, cioè la Serie 2000 o con maggiore particolarità la Serie 2200.

Queste due famiglie offrono un controllo ad alta precisione della temperatura e del

processo, semplice da implementare ed intuitivo da utilizzare, tramite una configurazione

guidata, in più sono anche abilitate alla funzione di self-tuning automatica o, chiamata

anche, auto-tuning. Benché la semplicità sia spesso il requisito fondamentale dei regolatori

a loop singolo, la famiglia utilizzata offre molte caratteristiche avanzate per soddisfare i

Capitolo 1

Il Termoregolatore Eurotherm 2216e

10

più diversi requisiti, come ad esempio: il rilevamento guasti del riscaldatore, la funzione di

timer, la programmazione del setpoint e l’appoggio ad un software di configurazione via

PC, di nome iTools (vedi capitolo 2.5.1 iTools), dove è possibile salvare le configurazioni

su file per riutilizzarle o modificarle per eventuali applicazioni future. I regolatori della

Serie 2200 (2216e/2208e/2204e, vedi fig.1-2), sono dei regolatori di processo o

temperatura, versatili ad alta stabilità, con la funzione di self-tuning che elimina

l’overshoot. Sono dotati anche di uscite caldo/freddo, hardware modulare, display

operatore personalizzato e comunicazione digitale.

Fig.1-2 I regolatori della Serie 2200

Alle uscite modulari caldo/freddo possono essere associate una o due uscite di relè di

allarme. Le unità DIN 1/8 e 1/4, presenti sui dispositivi, sono dei blocchi che hanno due

ingressi digitali per selezionare il comando automatico/manuale, la modalità standby, il

secondo setpoint o la conferma di un allarme e quindi aumentano di molto la funzionalità

dei regolatori. E' inoltre possibile interfacciare la Serie 2200 con sistemi di supervisione

e/o registrazione dati, utilizzando protocolli di comunicazioni standard tipo MODBUS e

DeviceNetTM. Possono poi essere configurati dei semplici profili di temperature da

seguire per il trattamento termico con il programmatore interno e un timer preimpostato. Si

elimina anche la necessità di amperometri, grazie alla funzione di monitoraggio avanzato

Capitolo 1

Il Termoregolatore Eurotherm 2216e

11

della corrente di carico che può essere visualizzata e possono essere rilevati guasti di

cortocircuito o di circuito aperto.

All’interno di questa Serie 2200, il progetto è stato dotato di un termoregolatore 2216e per

raggiungere gli scopi prefissati, visto che bilancia elevate funzionalità e semplicità di

utilizzo.

1.2 Il Termoregolatore 2216e

Fig.1-3 Il termoregolatore 2216e

Il modello 2216e, mostrato in figura 1-3, è un regolatore di temperatura di precisione con

autotuning. Esso ha una costruzione hardware modulare, che offre sicuramente due uscite

di controllo, un relé di allarme e una porta comunicazioni, oltre a due ingressi logici. Ogni

modello, proprio perché viene ordinato su misura del compratore e per la sua caratteristica

di hardware modulare, ha un determinato codice che lo descrive e ne mostra le sue

potenzialità. Questo codice prodotto (vedi fig.1-4) si divide in due parti: la prima

descrivente l’hardware presente nel regolatore e la seconda che presenta il software

configurato o configurabile al suo interno.

Capitolo 1

Il Termoregolatore Eurotherm 2216e

12

Fig.1-4 Divisione del codice di ordinazione

Ora andremo a vedere nel dettaglio le caratteristiche del termoregolatore in dotazione,

presentando il suo codice hardware e software. Nei primi due blocchi del codice hardware,

si nota il nome del modello, 2216e, e la sua funzione di regolatore, seguiti dal blocco di

alimentazione, che mostra un range di funzionamento molto ampio: (85-264 Vac).

Continuando, si notano le tipologie di uscita 1, 2 e 3, che nel nostro dispositivo

corrispondono rispettivamente ad un’uscita PID di riscaldamento in corrente (4-20mA),

un’uscita non utilizzabile e ad una configurazione di allarme numero 3 di tipo alto. Nelle

ultime due sezioni il codice segnala la tipologia di trasmissione, che avviene con il

protocollo MODBUS su due fili EIA RS-485 e la lingua del manuale, ITA. In figura 1-5

sono evidenziate le nostre specifiche, senza cancellare le altre possibilità, in modo da far

vedere le potenzialità e le varie configurazioni del modello, esplicitando così la sua

caratteristica di hardware modulare.

Per quanto riguarda il codice software, invece viene mostrata, in figura 1-6, la

programmazione utilizzata nel progetto, visto che questa parte di codice è personalizzabile

per ogni suo uso, tranne che nella parte di “opzioni”. Nel progetto si è usato in ingresso

una termocoppia di tipo K, con range ammissibile mostrato in figura, l’unità di misura del

display saranno i gradi Celsius e il raffreddamento avverrà tramite ventola. Anche in questa

figura, i riquadri mostreranno ciò che è stato realmente utilizzato, ma anche in questo caso

si vede che il regolatore è uno strumento molto duttile rispetto le operazioni da svolgere.

Capitolo 1

Il Termoregolatore Eurotherm 2216e

13

Fig.1-5 Il codice hardware

Capitolo 1

Il Termoregolatore Eurotherm 2216e

14

Fig.1-6 Il codice software

Illustrate le potenzialità del regolatore e i campi di utilizzo, come ad esempio il protocollo

MODBUS, che verrà adeguatamente spiegato nel capitolo 3, ora si desidera esaminare la

struttura del dispositivo e alcune altre sue caratteristiche.

Il regolatore, essendo concepito per applicazioni industriali di controllo della temperatura e

dei processi, è conforme alle richieste delle Direttive Europee e EMC ed inoltre è previsto

il montaggio dello strumento su un pannello (vedi fig.1-7) o in caso contrario, deve essere

inserito in un involucro per proteggerlo da agenti esterni, quali polvere e affini. E’ in grado

di funzionare all’interno di una temperatura tra gli 0° e i 55° gradi Celsius, con un’umidità

relativa tra il 5% e il 95% non in condensa. Non può essere utilizzato in atmosfere

corrosive od esplosive o sopra i 2000 metri di altitudine. Infine, trattando l’alimentazione

Capitolo 1

Il Termoregolatore Eurotherm 2216e

15

in modo più specifico, esso viene alimentato all’interno di un range 100-240Vac con uno

scarto del -15% (limite inferiore) e +10% (limite superiore). Ecco spiegato il perché

dell’indicazione del codice hardware che dava tra gli 85 e i 264Vac. Per quanto riguarda la

frequenza, accetta tensioni tra i 48 e i 62 Hz, consumando al massimo 10 Watt. Le sue

dimensioni ridotte e la sua struttura meccanica lo rendono inseribile, come già detto, in un

pannello, posizionamento naturale e normalmente previsto, o in una catena per il controllo

comprendente l’utilizzo di molti dispositivi della stessa classe, come è mostrato in figura 1-

7.

Fig.1-7 Dimensioni, caratteristiche e posizionamenti del regolatore

La parte più importante del regolatore è sicuramente quella che ci permette di

programmarlo e ciò avviene tramite il layout del pannello frontale, dove si trova il display

e i tasti attraverso i quali si raggiungono i menù di configurazione desiderati. In figura 1-8

viene illustrato tutto questo pannello ed ora viene descritto in ogni suo tasto o indicatore.

Capitolo 1

Il Termoregolatore Eurotherm 2216e

16

a. OP1: è un indicatore, chiamato Uscita 1. Se acceso, indica che l’uscita 1 è in

funzione. Normalmente e anche nel nostro modello è l’uscita di riscaldamento;

b. OP2: è un indicatore, chiamato Uscita 2. Se acceso, indica che l’uscita 2 è in

funzione. Normalmente è l’uscita di raffreddamento, non presente nel nostro

modello;

c. SP2: è un indicatore, chiamato Setpoint 2. Se acceso indica che il setpoint 2 è stato

selezionato;

d. REM: è un indicatore, chiamato Setpoint Remoto. Se acceso, indica che l’ingresso

setpoint remoto PDSIO (vedi capitolo 1.3) è stato selezionato. Esso viene anche

usato per indicare che il setpoint è impostato da un altro ente, nel nostro caso

comparirà sia quando andremo ad utilizzare il dispositivo con LabVIEW che con

iTools;

e. MAN: è un indicatore, chiamato Luce Manuale. Se acceso indica che la potenza di

uscita è modificata manualmente dall’operatore (non verrà utilizzato);

f. RUN: è un indicatore, chiamato Luce Attiva. Se acceso indica che il limite rampa

setpoint è attivo (non verrà mai utilizzato tale limite);

g. tasto PAGE: se premuto seleziona una nuova lista di parametri;

h. tasto SCROLL: se premuto seleziona un nuovo parametro in una lista;

i. tasto DOWN: se premuto diminuisce di un valore la variabile selezionata;

j. tasto UP: se premuto aumenta di un valore la variabile selezionata.

Fig.1-8 Il pannello frontale del modello 2216e

Capitolo 1

Il Termoregolatore Eurotherm 2216e

17

1.3 Collegamenti del Regolatore

Tutti i collegamenti verso l’esterno sono fatti su morsettieri a vite sulla parte posteriore del

regolatore (vedi numerazione 4 fig.1-7). Essi accolgono sezioni di fili comprese tra 0.5 e

1.5 mm² e sono protetti da un coperchio a cerniera per evitare il contatto accidentale di

mani o oggetti di metallo con fili scoperti. I collegamenti esterni sono mostrati in figura 1-

9, con lo specifico ingresso di termocoppia che è stato utilizzato, le uscite digitali per la

comunicazione dei dati, l’uscita in corrente e l’alimentazione. Da questi contatti per la

trasmissione dei dati dovremo in seguito raggiungere il PC, che però accetta, a meno di

casi speciali, solo protocolli seriali di tipo RS-232 e non 485, come quello che sfrutta il

regolatore. Si sarà quindi obbligati a costruire una linea di trasmissione in grado di

convertire la comunicazione seriale da 485 a 232, in modo che il computer possa dialogare

correttamente col dispositivo. La descrizione di questa linea di trasmissione, delle sue

specifiche e dei suoi componenti verrà eseguita nel capitolo 2. I morsetti 1A e 1B, invece

saranno utilizzati solo per le verifiche finali, cioè quando si andrà a costituire il controllo di

temperatura comandato dalla corrente uscente proprio da quei due terminali.

Fig.1-9 Collegamenti esterni del regolatore

Capitolo 1

Il Termoregolatore Eurotherm 2216e

18

In figura 1-9, per semplicità, non sono mostrate tutti i tipi di collegamenti delle

comunicazioni possibili, ma solo la tipologia utilizzata e l'unica utilizzabile nel dispositivo

in uso. Evidentemente, quando è stato ordinato questo modello, la scelta sul tipo di

comunicazioni è caduta sulla 2 fili EIA-485 seriale, perché ancora si ignorava il futuro

utilizzo del regolatore, visto che l'alternativa EIA 232 seriale è presente fra le scelte

possibili. Se fosse stata scelta direttamente la 232, non avremmo avuto la necessità di

costituire una linea di trasmissione e conversione da 485 a 232. Gli altri tipi di

comunicazioni in aggiunta a quello utilizzato sono:

• 4 fili EIA – 485 seriale;

• EIA 232 seriale;

• PDSIO Ingresso Setpoint (questa è una tecnica esclusiva sviluppata da Eurotherm

per la comunicazione bidirezionale su un doppino).

1.4 I Livelli di Accesso

In questa sezione si presenta come eseguire la programmazione del modulo 2216e per i

nostri scopi attraverso i vari livelli di accesso disponibili nel modulo Eurotherm. Ci sono in

totale quattro livelli di accesso, ognuno dei quali permette la visione o la modifica di vari

parametri, più o meno importanti, all’interno del dispositivo.

Il primo grado corrisponde al livello operatore (OPEr), che viene normalmente usato per

azionare il regolatore. Qui gli operatori potranno visualizzare e modificare il valore dei

parametri definiti a livello edit.

Il secondo tipo di accesso, è il livello completo (FuLL) che permette la messa in funzione

del regolatore e del processo controllato. In questo modo tutti i parametri riferiti ad una

particolare configurazione sono visibili e tutti i parametri alterabili possono essere

modificati. Per raggiungere tale stato bisogna immettere un codice, cosa non è necessario

per il livello operatore.

Successivamente vi è il livello edit (Edit) usato per impostare i parametri che un operatore

potrà visualizzare e modificare a livello operatore. Quindi a questo livello, si possono

nascondere o far apparire liste complete, o parametri, individuabili all’interno di ogni lista,

e renderli di sola lettura o alterabili.

Capitolo 1

Il Termoregolatore Eurotherm 2216e

19

Infine vi è il livello di configurazione (ConF), che è utilizzato per impostare le specifiche

fondamentali del termoregolatore, infatti, come per il livello edit necessita di una password

per accedervi.

La funzionalità di questi livelli di accesso è molto importante per l’utilizzo di ogni giorno

del dispositivo, soprattutto quando sono più persone ad usarlo. Si suppone che sia

l’ingegnere, o colui con le sufficienti competenze, ad usare i livelli di configurazione e

edit, con lo scopo di preparare il modulo al controllo dell’operazione stabilita. Tale

operazione avverrà sotto gli occhi di un operatore, che avendo conoscenze inferiori a

quelle dell’ingegnere, potrà accedere solo ai primi due stadi, in modo da non provocare

danni al modulo o da non apportare modifiche vitali per l’operazione in uso.

Durante il progetto si è utilizzato il livello configurazione per eseguire la giusta

programmazione del modulo e poi la sola modalità di operatore per verificare visivamente

l’andamento dei parametri.

1.5 Il Tuning

Col tuning o sintonizzazione, si accordano le caratteristiche del regolatore con quelle del

processo che si vuole controllare, al fine di ottenere un controllo ottimo. Di solito si cerca

un controllo stabile della temperatura al valore di riferimento, senza fluttuazioni, nessun

overshoot o undershoot del setpoint e una risposta veloce alle deviazioni del setpoint

causate da disturbi esterni, con un ritorno immediato della temperatura al valore di

riferimento. I parametri dedicati al tuning, che come già accennato può essere sia

automatico che manuale, sono mostrati in figura 1-10.

Capitolo 1

Il Termoregolatore Eurotherm 2216e

20

Fig.1-10 I parametri del tuning

1.5.1 Il Tuning Automatico o Autotuning

Tramite il tuning automatico si determinano automaticamente i parametri della figura 1-10.

Per eseguire questa operazione, il regolatore, immette un’oscillazione di qualche grado sul

valore misurato, in modo tale che il tuner possa eseguire i calcoli dei vari parametri.

Questo calcolo, di solito, viene eseguito una sola volta durante la messa in avvio del

processo. Se in seguito il processo dovesse cambiare comportamento e il controllo

diventasse instabile, basterà eseguire un nuovo tuning per riequilibrare il tutto. Nei casi in

cui, il processo non potesse tollerare queste oscillazioni indotte, vi è la possibilità di

impostare dei limiti per queste deviazioni, al fine di non danneggiare il processo. Avviata la

procedura di auto-tuning ed impostato il setpoint di lavoro del processo, il regolatore

indurrà le oscillazioni di temperatura accendendo e spegnendo l’uscita di riscaldamento,

che regola la temperatura. Il primo ciclo di calcoli termina al raggiungimento del setpoint e

successivamente ne viene eseguito un altro per determinare i parametri con maggiore

precisione. Se si desidera eseguire un controllo solo proporzionale, solo PI o solo PD

basterà impostare i parametri da non configurare in OFF, così il tuner non cercherà di

determinare tali valori. Per impostare eseguire il tuning automatico, è sufficiente spostarsi

nei menù come è indicato in figura 1-10, e nel menù di Autotune List, si imposterà tunE

“ON”.

Capitolo 1

Il Termoregolatore Eurotherm 2216e

21

Fig.1-10 I menù per le operazioni di tuning

In figura 1-11 è illustrato un normale ciclo di tuning automatico.

Fig.1-11 Ciclo di tuning automatico

I valori di Cutback basso e alto sono valori di restrizione della somma di overshoot o

undershoot, che avvengono con elevati cambiamenti della temperatura, ad esempio in caso

di avvio. Se questi valori sono in modalità automatica, saranno fissati al triplo della banda

Capitolo 1

Il Termoregolatore Eurotherm 2216e

22

proporzionale. Questa procedura verrà eseguita per il controllo finale, in modo da

verificarne le capacità e la bontà del suo funzionamento.

Fig.1-12 Overshoot e undershoot

1.5.2 Il Tuning Manuale

Se il tuning automatico non risultasse essere sufficiente o adatto al processo, si può sempre

eseguire il tuning manuale. In questo caso si possono seguire in normali metodi standard,

come ad esempio quello di Ziegler e Nichols, che sfrutta la misura del periodo di

oscillazione del sistema a catena chiusa, T, all’aumentare dell’ampiezza della banda

proporzionale, B. Avvenuta la misurazione di T e della banda proporzionale, vengono poi

consigliati dei valori da impostare di Pb, ti e td dipendenti dai parametri appena misurati,

mostrati in figura 1-13.

Fig.1-13 Valori consigliati per il tuning manuale

Capitolo 1

Il Termoregolatore Eurotherm 2216e

23

Per impostare il tuning manuale (vedi fig.1-10) basta lasciare nel menù di Autotune List, il

tunE in “OFF”, mentre nel Pid List (visibile solo in configurazione tuning manuale), basta

inserire un dato valore per ogni variabile che ci interessa, o se non vogliamo usarla

impostarla su “OFF”.

1.6 La Configurazione del 2216e

Gli scopi del progetto sono principalmente la misurazione della temperatura, che sarà la

variabile di processo o Process Variale o PV, e la possibilità di effettuare un controllo su di

essa a distanza su un computer. Di conseguenza, per eseguire tale controllo, dovremo

anche impostare il valore di riferimento o Setpoint o SP. Successivamente per visualizzare

sul PC i dati necessari bisognerà configurare le capacità di trasmissione del modulo. La PV

e il SP sono facilmente visualizzabili nel display a livello operatore.

Fig.1-14 Display semplificato del dispositivo

Come si era visto nel codice software del dispositivo, tali due variabili, possono essere

espresse in vari unità di misura: in gradi Celsius, Kelvin, Fahrenheit o anche come ingressi

lineari. Le prime cose da impostare, quindi, riguardano interamente le caratteristiche

d’ingresso del modulo e di visualizzazione sul display. Nel primo menù di configurazione,

Inst menù, imposteremo proprio l’unità di misura (°C), i decimali desiderati e il tipo di

azione di controllo. Essa sarà importante al momento di eseguire il controllo di

temperatura, di conseguenza il tipo di controllo sarà settato attivo e in modalità PID,

mentre l’azione di controllo sarà di tipo inversa.

Capitolo 1

Il Termoregolatore Eurotherm 2216e

24

Fig.1-15 Parametri per la configurazione del controllo e del display

Alla successiva voce dei menù di configurazione, iP menù, dovremo dichiarare la tipologia

di ingresso che utilizziamo, cioè una termocoppia di tipo K.

Fig.1-16 Parametri di configurazione dell’ingresso

Capitolo 1

Il Termoregolatore Eurotherm 2216e

25

Nel sotto-menù per la trasmissione, dedicato alle metodologie della trasmissione dei dati

invece, HA menù, potremo scegliere la velocità di trasmissione (baud reate, 9600), la parità

(Even) e la risoluzione (Full). Queste tre grandezze verranno esaminate più in dettaglio nel

corso dei prossimi capitoli. Per quanto riguardano invece, le voci iD e Func, non abbiamo

scelta viste le caratteristiche hardware del modulo in uso ed entrambe sono

automaticamente settate con cmS. Tale simbologia, come già visto nel codice hardware del

prodotto, significa che il regolatore è abilitato per la trasmissione digitale via due fili, con i

protocolli RS485 e MODBUS.

Fig.1-17Parametri di configurazione della comunicazione digitale

Come già descritto in precedenza è possibile collegare in parallelo fino a 32

termoregolatori sulla stessa linea. Questo mi obbliga ad impostare per ogni slave un suo

indirizzo in modo univoco per renderlo distinguibile dagli altri. Per fare ciò selezionare il

livello di configurazione Full, successivamente spostarsi sul sottomenù CmS e di seguito in

Addr. Qui impostare il valore 1 per il primo termoregolatore, 2 per il secondo e così via.

Fatto ciò ritorniamo in modalità Operatore. Si imposterà poi nell'interfaccia l'indirizzo del

dispositivo che si vuole monitorare e eventualmente controllare.

Capitolo 2

La Linea di Trasmissione

26

Capitolo 2

La Linea di Trasmissione

2.1 Presentazione della Linea di Trasmissione

Nel seguente capitolo verrà descritta, con maggiore dettaglio, la linea di trasmissione che

ci permette di effettuare lo scambio dei dati dal termoregolatore Eurotherm al PC. Dopo di

che verranno presentati dei risultati parziali visibili per mezzo del programma iTools, con i

quali si è verificata l'effettiva funzionalità della linea. Come già accennato

precedentemente la linea si compone di quattro diversi utilizzatori, opportunamente

programmati, che dialogano fra loro attraverso due standard seriali diversi. Di seguito

viene illustrata tutta la linea di trasmissione in una semplice immagine.

Fig.2-1 Schema di principio della linea di trasmissione

Capitolo 2

La Linea di Trasmissione

27

2.2 Gli Standard RS232 e RS485

L'Electrical Industries Association (EIA) ha introdotto gli standard RS232 e RS485 con lo

scopo di definire i parametri elettrici di comunicazione in una rete. Nella tabella seguente

sono elencate le caratteristiche di questi due formati di trasmissione.

Fig.2-2 Caratteristiche generali degli standard seriali 232 e 485

Si segnala che la RS232C d'ora in poi verrà semplicemente abbreviata a RS232 (o

solamente 232). Questo standard permette ad un singolo strumento (single serial link) di

essere connesso ad un PC, ad un controllore logico programmabile o a dispositivi simili

per mezzo di un cavo di lunghezza al massimo di 15 metri. Al contrario invece, utilizzando

lo standard RS485 (o brevemente 485) si possono connettere uno o più dispositivi (multi

drop serial link), fino ad un massimo di 32 utilizzatori, tramite cavi di lunghezza anche di

1200 metri. La 485, che viene collegata anche solo tramite due fili, ha una maggiore

protezione contro i disturbi e le interferenze rispetto la 232, infatti, viene preferita a

quest'ultima per le applicazioni industriali. Per avere una protezione ancor più elevata

contro il rumore, la 485 viene collegata anche a tre fili, facendo uso anche del cavo di

ground return/shield o comune (common).Una limitazione nell'utilizzo di questi standard

deriva dal fatto che la Serie 2000 dei dispositivi Eurotherm opera solo in modo half duplex,

cioè non permette la trasmissione e la ricezione simultanea dei dati. Tali dati dovranno

passare alternandosi quindi, il possesso della linea. Per quanto riguarda la linea che

andremo ad utilizzare, useremo la 485 tra il termoregolatore Eurotherm 2216e e il

convertitore 232-485 I-7520 della IP-COM e poi tra lo stesso convertitore e il PC, lo

Capitolo 2

La Linea di Trasmissione

28

scambio dei dati avverrà con la 232. Nella figura sottostante si possono notare tutte le

caratteristiche della rete, in particolare la tipologia incrociata dei collegamenti e la

resistenza terminale da 220 ohm, utile per non creare grossi problemi di disadattamento di

impedenza. Grazie all'utilizzo della 485 la complessità e la grandezza della rete possono

anche essere ampliate. Se si pensa il computer come trasmettitore “master” e il

termoregolatore Eurotherm come ricevitore “slave”, abbiamo la capacità di inserire in

totale 31 slave e un singolo master. Se in alternativa il 31° slave fosse sostituito con un

ripetitore, la 485 sopporterebbe altri 32 dispositivi e così in avanti. Vedremo in seguito che

questa capacità di ampliamento della rete, apparentemente infinita, avrà un limite imposto

dal protocollo di trasmissione che verrà utilizzato, ovvero il MODBUS.

Fig.2-3 Schema circuitale della linea di trasmissione

Capitolo 2

La Linea di Trasmissione

29

2.3 Il Convertitore 232-485 I-7520 IP-CON

Fig.2-4 Il Convertitore 232-485 I-7520 IP-CON

Per poter interagire tra loro i due diversi standard di trasmissione, la 485 e la 232,

necessitano di un convertitore, che nel progetto è un Bus Converter I-7520 della IP-CON.

Tale dispositivo, parzialmente visibile nelle figure 2-3 e 2-1, necessita di un paio di

accorgimenti per il suo corretto funzionamento, principalmente ha bisogno di

un'alimentazione continua stabilizzata tra i 10 e 30 Volt. All'interno di questo range si è

scelto un valore pari a 12 Volt per il fatto che è molto comune nella strumentazione di

alimentazione. A causa del doppio senso di percorrenza dei dati nella linea non si potrà

parlare di ingresso o di uscita, ma solo di un lato 232 o 485. Il fronte 485 è caratterizzato

dai collegamenti Data+ e Data-, che corrispondono al RX+/- (ricezione) e al TX+/-

(trasmissione) della seriale 485 a tre fili. Il terzo collegamento, che non è stato prelevato

dal termoregolatore, è collegato al comune dell'alimentatore stabilizzato in uso. Proprio per

la tipologia vista prima, la resistenza da 220 ohm è posta a cavallo dei due morsetti Data+ e

Data- del convertitore. Sul fronte 232 invece, si è prodotto un cavo seriale a 9 pin, dei quali

Capitolo 2

La Linea di Trasmissione

30

solo cinque sono realmente presenti al suo interno: TX, RX, Gnd, RTS (Request To Send) e

il DSR (Data Set Ready), tutti ugualmente indispensabili per la corretta conversione da 485

a 232 e viceversa. L'immagine seguente mostra proprio la tipologia dei collegamenti che il

convertitore accetta e che è stata descritta (omettendo però il RTS e il DTS sul fronte 232).

Fig.2-5 Schema a blocchi del convertitore 232-485

Non addentrandoci troppo nella descrizione del convertitore, si sottolinea però, la presenza

di un blocco di notevole importanza e funzionalità al suo interno. Esso è il blocco di

adeguamento di velocità Self Tuner ASIC, che ha lo scopo di regolare il funzionamento del

convertitore con la velocità di trasmissione presente sulla linea all'interno di una range di

valori ammissibili che vanno da 300 a 115200 bps.

2.4 Il Convertitore USB-RS232

Il convertitore utilizzato per poter sfruttare una normale porta USB come una classica porta

seriale RS232 è un articolo prodotto dalla Sure Electronics.

Esso è basato sul modulo integrato CP2102 proprietario della Silabs, che non è altro che

un'evoluzione del precedente modulo CP2101 largamente utilizzato in molte applicazioni,

migliorato e raccomandato per i nuovi tipi di progetto.

Capitolo 2

La Linea di Trasmissione

31

Fig.2-6 Convertitore USB-RS232 Sure Electronics

Il controller USB-to-RS232 CP2102 è un modulo altamente integrato capace di convertire

una trasmissione su USB in una trasmissione seriale standard, utilizzando il minor numero

di componenti e occupando inoltre il minimo spazio sul PCB del prodotto.

Esso comprende un controller USB 2.0 full-speed, un oscillatore, EEPROM e un bus dati

seriale asincrono (UART) con segnali di controllo full-modem in un modulo QFN-28

estremamente compatto. Non richiede nessun altra componente USB esterna.

Fig.2-7 Modulo Integrato CP2102

Capitolo 2

La Linea di Trasmissione

32

Viene riportata di seguito una tabella riassuntiva per la piedinatura utilizzata:

Fig.2-8 Tabella Piedinatura CP2102

Ulteriori informazioni si possono trovare sul sito del produttore

http://www.sureelectronics.net dove peraltro sono disponibili anche i driver compatibili

con Windows, Mac e Linux.

2.5 Parametri Comuni della Linea

Tutti e quattro i dispositivi collegati alla linea, per poter dialogare fra loro, dovranno avere

ovviamente delle caratteristiche in comune. Il primo parametro da considerare è

sicuramente la velocità di trasmissione, essa infatti, come abbiamo appena visto, non

influenza il convertitore 232-485 (se all’interno del range di funzionamento) e il

Capitolo 2

La Linea di Trasmissione

33

convertitore USB-RS232, ma il PC, o meglio la sua porta seriale, e il termoregolatore

Eurotherm devono essere settati con lo stesso livello di velocità. Segnaliamo già che, anche

gli stessi programmi di LabVIEW e iTools e avranno bisogno di questo dato per funzionare

al meglio, visto che entrambi utilizzeranno la medesima porta seriale del computer. Stessa

cosa varrà per il controllo di parità nella metodologia di trasmissione. Anche qui solo la

porta seriale del PC e il termoregolatore dovranno essere programmati allo stesso modo.

Nella figura sottostante si nota che per settare questi due dati nel termoregolatore

Eurotherm è necessario entrare a livello di configurazione, nel menù di navigazione e poi

nel sotto-menù di Comms alle voci Baud e PrtY.

Fig.2-9 Menù di programmazione del termoregolatore per le comunicazioni

2.6 iTools e il Test della Linea

Ora che tutta la linea è fisicamente stata collegata e le varie impostazioni dei dispositivi

sono state programmate al modo da andare d’accordo tra loro, non ci resta che verificare

l’effettivo scambio dei dati dal termoregolatore al PC. Lo scopo di questa operazione è

quello di trovare degli errori nei vari collegamenti effettuati ricercando semplicemente la

presenza o meno del segnale trasmesso nei vari punti della linea e successivamente

verificare che tali dati, ignorando ancora la loro struttura, siano esatti e funzionanti.

2.6.1 iTools

iTools è un software di configurazione e messa in servizio per computer, e permette una

personalizzazione avanzata ed intuitiva del regolatore. In un'ottica di ottimizzazione dei

tempi, iTools consente di eliminare la riprogettazione, dal momento che le configurazioni

Capitolo 2

La Linea di Trasmissione

34

di prodotto vengono salvate e riutilizzate. Questo software, inoltre può essere scaricato

gratuitamente. Esso è molto versatile e permette la configurazione e il controllo di quasi

tutti i prodotti Eurotherm, di cui nello specifico la nostra Serie 2000, che, come già detto, è

la classe del dispositivo utilizzato in questo progetto. E’ anche in grado di modificare,

memorizzare e clonare completamente lo stato e la struttura di un controllore con il quale

entra in collegamento. Per quello che riguarderà il progetto, iTools verrà utilizzato solo per

verificare il corretto scambio dei dati. Le funzioni di questo software, che verranno

utilizzate, saranno limitate e di base in modo da raggiungere il nostro unico scopo, cioè

quello di test della linea. Prima di tutto si dovrà effettuare la ricerca del dispositivo

collegato e la sua identificazione, cosa che iTools esegue facilmente e in automatico,

premendo un unico tasto. Una volta trovato il termoregolatore per mezzo di funzioni

dedicate, si è controllato il suo stato tramite la sua programmazione, le variabili

caratteristiche, i suoi collegamenti esterni (Terminal Wiring) e la visione a schermo della

variabile di processo (Device Panel). Questa ultima sua dote è risultata essere il controllo

più corretto che si è potuto effettuare visto che, dispositivo e computer, in questa modalità,

devono visualizzare quasi contemporaneamente gli stessi valori. Successivamente si

proverà a modificare il setpoint del dispositivo da PC per verificare che lo scambio corretto

dei dati avvenga in entrambi i sensi.

2.6.2 Il Test della Linea

Per osservare il reale passaggio dei dati sulla linea, in modo da poter verificare se tutti i

collegamenti fossero stati effettuati al meglio, si è affiancato il software con un controllo

tramite un oscilloscopio, prelevando i dati tramite una sonda differenziale. Questa verifica,

con i tipici strumenti da laboratorio, ha permesso di determinare quale utilizzatore della

linea fosse in errore. In pratica, si è controllato il passaggio dei dati tra PC e convertitore I-

7520 e a sua volta dal convertitore al termoregolatore, così da permettere di capire chi

trasmetteva, chi riceveva o chi non eseguiva nessuna delle due operazioni. Il controllo è

stato effettuato ignorando il significato dei pacchetti di dati scambiati, cosa che sarà

esaminata in seguito nel capitolo dedicato al protocollo MODBUS. Trovato e identificato il

termoregolatore tramite l’operazione di scansione, e altri due semplici comandi, abbiamo

effettuato tutte le verifiche sopra nominate e visibili in figura 2-10.

Capitolo 2

La Linea di Trasmissione

35

Fig.2-10 Il controllo mediante iTools

La totalità dei risultati ricercati con iTools è tutta illustrata nelle figura precedente ed ora

verrà brevemente descritta. La prima operazione svolta è stata la scansione (riquadro rosso

vedi fig.2-10) che ci illustra nella barra inferiore tutti i dispositivi trovati, nel nostro caso è

uno solo, e nella colonna di sinistra mostra il modello, 2216e, e il nome della porta seriale

tramite la quale avviene il collegamento, COM1. Il risultato più importante, invece, si

ottiene con la seconda operazione pannello del dispositivo (Device Panel, riquadro blu vedi

fig.2-10) che presenta la stessa schermata visibile sul dispositivo quasi in tempo reale,

dove si possono leggere la process variable e il setpoint, la prima in caratteri di grandezza

superiore. Tramite questa visualizzazione siamo in grado, con i tasti raffigurati nella parte

inferiore, di eseguire tutte le operazioni in ugual modo che il termoregolatore sia nelle

nostre stesse mani, come ad esempio modificare il setpoint. Con la terza funzione,

l’esplorazione dei parametri (riquadro viola vedi fig.2-10), si possono controllare i dati

caratteristici della configurazione utilizzata e il loro indirizzo. In questa sezione, sempre

Capitolo 2

La Linea di Trasmissione

36

agendo sul display rappresentante lo strumento, cambiando il livello di accesso, si possono

modificare i parametri visualizzabili. In figura 2-10 si possono notare i dati visibili solo a

livello operatore. L’ultima operazione (riquadro verde vedi fig.2-10), il collegamento della

morsettiera (Terminal Wiring), espone la morsettiera di ingresso e uscita dal dispositivo.

Nel nostro caso si possono riconoscere la termocoppia ai capi di V+ e V-, che le uscite di

trasmissione digitali utilizzano il protocollo di trasmissione MODBUS e che l’uscita di

riscaldamento (1A-1B) è in funzione.

Capitolo 3

Il Protocollo MODBUS

37

Capitolo 3

Il Protocollo MODBUS

3.1 Generalità sul Protocollo MODBUS

Questo capitolo introduce i principi base del protocollo digitale di comunicazione

MODBUS, implementato dalla Gould Inc., che definisce le regole e la struttura dei

messaggi utilizzati dai vari dispositivi all'interno di una rete, al fine di condividere e

scambiare fra loro dei dati. Inoltre vengono imposti anche l'ordine di tali messaggi,

l'identificazione degli utilizzatori della rete e le tecniche di rilevamento degli errori.

Il MODBUS, nella linea di trasmissione dei dati, stabilisce l'esistenza di un unico e

indispensabile trasmettitore “master” e di uno o più ricevitori “slave”, che rispondono alle

interrogazioni del master. Ad una stessa linea si possono connettere un master e fino a 247

slave. Questo è uno dei limiti logici del protocollo, che però va ben oltre i limiti

dell'interfaccia fisica che di solito viene utilizzata, ad esempio lo standard RS-485 prevede

un massimo di 31 slave connessi alla linea, a meno di sostituire l'ultimo di questi, con un

ripetitore “bridge”, che permette di connettere altri 31 slave. Così facendo, si riesce ad

aumentare il numero di slave utilizzabili e anche di raggiungere il limite logico del

MODBUS. In base al numero di slave si identificano due tipi di organizzazione della linea

di trasmissione: il single serial link, con un unico slave (RS232 o RS485 a scelta) o la multi

drop serial link con n slave (solo con la RS485).

Capitolo 3

Il Protocollo MODBUS

38

Fig. 3-1 Single serial link e multi drop serial link

Esiste anche un “fratello” di questo protocollo, prodotto dalla April, che è funzionalmente

identico a questo, denominato JBUS, il quale si differenzia per la diversa numerazione

degli indirizzi: nel MODBUS questi partono da zero (0000 = 1° indirizzo) mentre nel

JBUS partono da uno (0001 = 1° indirizzo) mantenendo questo scostamento per tutta la

numerazione. Nel seguito si farà riferimento al MODBUS (o MBUS solamente), ma la

descrizione è del tutto valida per entrambi i protocolli.

3.2 Basi del Protocollo MODBUS

Per poter comunicare tra due o più dispositivi, il messaggio deve essere contenuto in un

“involucro” che parte dal trasmettitore ed, attraversando la linea, raggiunge il ricevitore. Il

MBUS di conseguenza definisce tutte le caratteristiche utili per tale operazione a partire

proprio da questo “involucro”.

Solo il master può iniziare una transazione, ovvero uno scambio di messaggi. Una

transazione, inoltre può avere il formato domanda/risposta diretta ad un singolo slave o

broadcast, in cui il messaggio viene inviato a tutti i dispositivi sulla linea, che non daranno

nessuna risposta a tale domanda. Si vedrà in seguito, ma già lo si può capire, che solo

alcune operazioni potranno essere trasmesse in modalità broadcast, ad esempio la lettura di

un determinato dato non può essere eseguita in questa modalità, perché non viene prevista

nessuna risposta e di conseguenza risulta essere un'operazione inutile. Al contrario, il

settaggio di un certo parametro, comune a tutti i vari slave, può avvenire in modalità

Capitolo 3

Il Protocollo MODBUS

39

broadcast, che viene quindi sfruttata per le sole operazioni di assegnazione. In base a questi

due metodologie di scambi di messaggi si può notare il tipico comportamento della linea di

trasmissione.

Fig. 3-2 Tipico comportamento della linea di trasmissione

Nell’immagine 3-2 si possono distinguere tre periodi caratteristici:

i. il periodo 'a' è il tempo necessario allo slave per interpretare il comando del master e

produrre una risposta;

ii. il periodo 'b' è il tempo impiegato dal master per analizzare la risposta dello slave e

formulare il nuovo comando;

iii. il periodo 'c' è il periodo calcolato dal master per permettere a tutti gli slave di

svolgere l'operazione richiesta, facendo attenzione che in questo caso, broadcast, la

risposta non viene inviata.

3.2.1 Indirizzo dei Dispositivi

Come sopra menzionato, le transazioni MBUS coinvolgono sempre il master, che gestisce

la linea, ed uno slave per volta (tranne nel caso di messaggi broadcast). Di conseguenza per

identificare lo slave 1 o lo slave n, in pratica il destinatario voluto, viene sempre trasmesso

all'interno del messaggio un byte, che contiene l'indirizzo numerico del dispositivo slave

Capitolo 3

Il Protocollo MODBUS

40

destinatario. Ciascuno slave quindi, avrà assegnato un diverso numero d'indirizzo, che lo

identifica univocamente. Gli indirizzi ammissibili sono quelli da 1 a 247, mentre l'indirizzo

0, che non può essere assegnato ad uno slave, indica che tale messaggio è un broadcast,

cioè diretto a tutti gli slave contemporaneamente.

3.2.2 Indirizzo dei Parametri

Oltre all'indirizzo proprio del dispositivo, il protocollo MBUS definisce molti altri

indirizzi, uno per ogni parametro utilizzabile all'interno degli slave connessi alla linea.

Questi altri indirizzi, sono descritti da 16 bits e il range a loro disposizione va da 0001 a

FFFF. In seguito, quando verranno mostrate le operazioni svolte verrà anche reso noto

l'indirizzo del parametro utilizzato, per esempio per la process value o per il setpoint con i

quali si vuole lavorare.

3.2.3 La Risoluzione dei Parametri

Ogni parametro a sua volta avrà una determinata risoluzione, mentre quella massima messa

a disposizione dal MBUS per ognuno di essi è di 16 bits. La caratterizzazione dei vari bits,

all'interno di questo limite impostato dal protocollo (altro limite fisico), dipenderà poi dal

tipo di dispositivo connesso. Ad esempio tutta la Serie 2000 dei termoregolatori Eurotherm

può sfruttare molti tipi di risoluzioni: quella Integer, dove il parametro è approssimato al

valore intero più vicino, quella Full Resolution, che utilizza anche il punto decimale fino

ad un massimo di 327.67 (causa i 16 bits per descrivere il parametro) e inoltre, possiedono

anche uno speciale sub-protocollo (solo per quelli programmati con il MBUS), che amplia

la precisione, permettendo di rappresentare il numero decimale per mezzo di 32 bits (vedi

Appendice B).

3.2.4 Metodo di Trasmissione

Tutte queste informazioni sono contenute all'interno del formato dei messaggi,

l'”involucro” menzionato prima, che per essere giustamente interpretato viene suddiviso in

caratteri e ogni carattere viene trasmesso mediante un suo formato. I protocolli JBUS e

MBUS sopportano sia il formato carattere ASCII che quello RTU (Remote Terminal Unit),

Capitolo 3

Il Protocollo MODBUS

41

che però è l'unico utilizzato anche dal termoregolatore Eurotherm della Serie 2000 e quindi

l'unico che verrà illustrato. Il formato RTU definisce che per ogni carattere venga

trasmesso un bit di start, 8 bits di dati, un bit di parità e uno o due bits di stop. La parità

può essere definita in modo pari, dispari o nessuna parità e quindi in questo ultimo caso

non verrà trasmesso nessun bit di parità. La Serie 2000 utilizza sempre e solo un bit di

stop.

Fig.3-3 Il metodo di trasmissione RTU

L'ultima questione di base del protocollo MBUS da analizzare, prima di poter analizzare il

formato dei messaggi, è quella del loro stesso sincronismo. La sincronizzazione del

messaggio tra trasmettitore e ricevitore viene ottenuta, interponendo una pausa tra i

messaggi pari ad almeno 3.5 volte il tempo di un carattere. Se il dispositivo ricevente, non

riceve per un tempo di 3.5 caratteri, ritiene completato il messaggio precedente e considera

che il successivo byte ricevuto, sarà il primo di un nuovo messaggio, che come vedremo

sarà interpretato come un indirizzo.

3.3 Il Formato dei Messaggi

Un messaggio è formato da una sequenza di un numero determinato di caratteri e questa

struttura è conosciuta come il formato dei messaggi. Unendo ora le conoscenze acquisite

con le basi del protocollo MBUS si può esporre questa sintassi.

Fig.3-4 Il formato dei messaggi del protocollo MODBUS

Il Frame Start è il periodo di inattività descritto per il sincronismo (3.5 volte quello di un

singolo carattere) ed ovviamente la sua durata potrà variare in base alla velocità di

Capitolo 3

Il Protocollo MODBUS

42

trasmissione dei dati utilizzata sulla linea. Questo periodo non è altro che l'End Of

Trasmission (EOT) del messaggio precedente, quindi il Frame di Start e l' EOT sono

identici tra loro e tra un messaggio e l'altro vi è un solo periodo di inattività e tale tempo

però, è sia l'EOT del messaggio precedente che il Frame di Start del messaggio successivo.

Il Device Address è il singolo byte che identifica l'indirizzo proprio di ogni dispositivo

collegato alla linea. Tra l'indirizzo e l'EOT si avrà il corpo del messaggio che ha una

lunghezza variabile in base all'operazione che si vuole svolgere. Il Function Code, di un

byte, rappresenta il codice funzione identificativo di una delle possibili operazioni e ad

esso segue il campo Data, che ha una lunghezza non costante. Nell'immagine di figura 3-6

si potranno riconoscere i vari codici funzione delle operazioni ammesse dai dispositivi

della Serie 2000.

Fig.3-5 Codici funzione ammissibili nella Serie 2000

Infine, prima del carattere di EOT, vi sono due caratteri riservati per il CRC (Cyclic

Redundancy Check), che è un codice di ricerca di errore, a 16 bits, per verificare la

veridicità dei dati trasmessi e dei dati ricevuti in modo tale che le informazioni scambiate

siano le stesse.

3.4 Le Funzioni MODBUS

Come si è visto poco sopra, ogni funzione ha un codice identificativo racchiuso in un solo

byte, il quale ha una determinata posizione all'interno del formato dei messaggi. Quando si

Capitolo 3

Il Protocollo MODBUS

43

va a scegliere l'operazione da svolgere bisogna fare molta attenzione a non confondere le

operazioni di lettura da quelle di scrittura, ma soprattutto non bisogna affatto inserire un

codice funzione errato, perché la Serie 2000 Eurotherm è programmata in modo tale da

non rispondere ad un messaggio di questo genere e quindi non saremmo in grado di

scoprire la fonte dell'errore. Vedendo le tipologie delle funzioni messe a disposizione, ora

si possono individuare le funzioni abili per la modalità broadcast e queste sono la 05, la 06

e la 16, in pratica tutte le operazioni di scrittura, ovvero di assegnazione, come accennato

in precedenza. Di seguito entreremo nel dettaglio esaminando le funzioni e descrivendo per

ognuna di esse la struttura dei blocchi Data.

3.4.1 Read N Bits

Il Function Code di questa funzione è lo 01, o lo 02, visto che le due operazioni sono

praticamente identiche, e servono entrambe per poter leggere un determinato numero N di

bits. Nella figura 3-7 si possono notare le due strutture del comando iniziale, che viene

prodotto dal master e della risposta inviata dallo slave che è stato interpellato. Per

semplicità non vengono inseriti i blocchi di Frame Start e di EOT (cosa che avverrà per

tutte le prossime immagini dei messaggi di esempio in tutto il capitolo).

Fig.3-6 Messaggi di comando e risposta della funzione Read N Bits

Capitolo 3

Il Protocollo MODBUS

44

Il blocco di Data, nel messaggio di comando, contiene l'indirizzo iniziale del parametro che

si vuole leggere, Address of first bit (1 byte) e successivamente, deve essere scritto il

numero di bit (N) che si vogliono conoscere, Number of bits to read (1byte). Nel

messaggio di risposta invece, sempre nel campo Data, si ha il numero dei bytes letti,

Number of bytes read. Nella seconda parte del campo Data, invece si hanno i vari bytes

letti, uno in serie all'altro, dove il primo byte contiene lo stato dei primi 8 bits letti, con il

bit meno significativo nella prima posizione. Lo stesso ordinamento vale per gli altri bytes

letti e se vi sono dei bits che non vengono utilizzati, questi verranno settati a zero.

Fig.3-7 Esempi dei messaggi di comando e risposta della funzione Read N Bits

Esaminando il messaggio spedito dal master si nota che: si vogliono leggere 14 bits

partendo dal parametro d'indirizzo 2, del dispositivo d'indirizzo 19. Il dispositivo 19, viene

identificato con il numero 13 a causa della codifica esadecimale che si utilizza, infatti i

Capitolo 3

Il Protocollo MODBUS

45

primi 15 slave saranno compresi nel range 01-0F, e poi si arriverà al diciannovesimo slave

con la codifica rappresentata mediante il numero 13 (ricordando che l'indirizzo 00 è

riservato per i messaggi broadcast). Nel messaggio di risposta, si può notare la struttura del

messaggio descritta prima e lo stesso ordine dei bits. Il primo byte, infatti va dal bit

all'indirizzo 2 fino al 9 e il secondo dal 10 al 17. Avendo impostato di leggere solo 14 bits e

non 16, i bits 16 e 17 sono posti a zero.

3.4.2 Read N Words

Il Function Code di questa funzione è il 03, o il 04, visto che le due operazioni sono uguali,

ed ognuna di esse permetterà di leggere un desiderato numero N di words. Dalla figura

sottostante si può determinare che la struttura di questo tipo di messaggi è la stessa del caso

precedente solo che qui si parla di words e non di singoli bits.

Fig.3-8 Messaggi di comando e risposta della funzione Read N Words

La Serie 2000 con questo tipo di operazioni ha un limite fisico che consiste nella capacità

di leggere al massimo 32 word. Nell'esempio del messaggio di comando, sopra riportato si

andrà a leggere dallo slave d'indirizzo 2, due words a partire dell'indirizzo 1 dei parametri.

Si vedrà in seguito che questa è proprio una delle operazioni che si devono svolgere nel

Capitolo 3

Il Protocollo MODBUS

46

progetto, perché i due parametri corrispondenti a tali indirizzi sono proprio la process

variable e il setpoint. Ricordandoci la diversa possibilità di scelta della risoluzione dei

parametri di seguito vengono mostrate due possibili risposte. La prima in risoluzione

Integer, che supponendo la PV=18,3 e il SP=21,6, fornisce come risultati 12 (0001-0010) e

16 (0001-0110), quindi convertiti dall’esadecimale 18 e 22. La seconda invece che utilizza

la risoluzione Full, con gli stessi valori di PV e SP di prima, dà in risposta B7 (1011-0111)

e D8 (1101-1000), che corrispondono a 183 e 216. Quando il master riceverà tali valori,

riconosciuta la modalità di risoluzione, dovrà scalare opportunamente il punto decimale.

Fig.3-9 Esempi dei messaggi di comando e risposta della funzione Read N Words

3.4.3 Write a Bit

Il Function Code di questa operazione è il 05 e permette di scrivere, quindi di settare a

piacimento un singolo bit. Il nuovo carattere del messaggio nel campo di Data è quindi il

valore del bit che vogliamo imporre, Value of bits. Essendo composto da 16 bits il suo LSB

è sempre a 00, mentre il suo MSB è utilizzato per il settaggio 01 o FF per impostarlo a 1 e

Capitolo 3

Il Protocollo MODBUS

47

00 per azzerarlo. Con questa funzione si può anche svolgere la modalità broadcast ed in

questo caso non vi sarà nessuna risposta. Nelle due immagini qui sotto viene quindi

presentata la struttura dei messaggi di comando e di risposta (se non trasmesso in modalità

broadcast).

Fig.3-10 Messaggi di comando e risposta della funzione Write a Bit

Dall'esempio numerico che ora verrà proposto si nota anche, che la risposta ad un

messaggio con questa funzione deve essere identica a ciò che ha spedito il master. Ecco

quindi i comandi per settare ad uno il bit all'indirizzo 2 dello slave numero 2.

Capitolo 3

Il Protocollo MODBUS

48

Fig.3-11 Esempi dei messaggi di comando e risposta della funzione Write a Bit

3.4.4 Write a Word

Al Function Code 06 corrisponde la funzione Write a Word che ci permette di scrivere una

determinata word ad un indirizzo desiderato. Questa operazione può essere fatta in

modalità broadcast (in questo caso non ci sarà nessuna risposta) e come struttura e

caratteristiche, risulta essere molto simile alla funzione Write a Bit, tranne nella possibilità

di settaggio visto che in questo caso devo impostare il valore di tutti gli 8 bits nel LSB del

campo Value of Word e non di un unico bit.

Fig.3-12 Messaggi di comando e risposta della funzione Write a Word

Capitolo 3

Il Protocollo MODBUS

49

3.4.5 Fast Read of Status

Il Function Code 07 è riservato per l'operazione di lettura veloce del byte di stato, che è un

registro dove sono contenute molte informazioni che devono essere controllate spesso e

che racchiudono lo stato del dispositivo. Le qualità di ogni singolo bit sono mostrate in

figura 3-14, mentre la struttura del messaggio viene proposta di seguito in figura 3-13.

Fig.3-13 Messaggi di comando e risposta della funzione fast read of Status

Capitolo 3

Il Protocollo MODBUS

50

Fig.3-14 I bits del registro di stato

3.4.6 Diagnostic Loopback

Questa funzione che risponde al Function Code 08, ha lo scopo di testare le comunicazioni

sulla linea, infatti ad un dato messaggio di comando il determinato slave risponderà con lo

stesso identico messaggio, proprio per questo viene detto “Loopback”.

Capitolo 3

Il Protocollo MODBUS

51

Fig.3-15 Messaggi di comando e risposta della funzione Diagnostic loopback

Il campo riservato al Diagnostic Code per tutta la serie 2000 è unico e deve essere posto

tutto a 0. Nell'esempio sottostante si può vedere l'uguaglianza tra il messaggio del master e

la risposta dello slave.

Fig.3-16 Esempi dei messaggi di comando e risposta della funzione diagnostic loopback

Capitolo 3

Il Protocollo MODBUS

52

3.4.7 Write N Words

Il Function Code 16 è dedicato all'operazione di scrittura di N words, che anch'essa può

essere svolta in modalità broadcast. Come nel caso di Read N Words, vi è una limitazione

fisica dovuta al massimo numero di words che si possono scrivere e tale limite è 32. La

struttura è del tutto simile a quella della sua funzione gemella che legge N words ed è

illustrata qui sotto.

Fig.3-17 Messaggi di comando e risposta della funzione Write N Words

Di seguito viene riportato un esempio numerico, che evidenzia la variabilità della

lunghezza del campo Data.

Capitolo 3

Il Protocollo MODBUS

53

Fig.3-18 Esempi dei messaggi di comando e risposta della funzione Write N Words

3.5 Altre Caratteristiche del Protocollo MODBUS

Il protocollo MBUS, come il fratello JBUS, definisce delle risposte ad un numero di

determinate condizioni di errore. Un dispositivo slave è in grado di trovare un messaggio

di comando, inviato dal master, corrotto o con un contenuto incorretto. In questi casi lo

slave risponderà con un messaggio di errore in codice. Con alcuni errori i dispositivi slave

non sono capaci di produrre una risposta, infatti in automatico, dopo un periodo di attesa, il

master interpreterà il fallimento di risposta come una richiesta di rinvio del messaggio di

comando. Il messaggio di errore inviato dallo slave ha la seguente sintassi:

Capitolo 3

Il Protocollo MODBUS

54

Fig.3-19 Struttura del messaggio di errore

Di default la Serie 2000 ha solo due codici di funzione di errore che sono mostrate e

spiegate in figura.

Fig.3-20 I codici di errore della Serie 2000

Ci sono parecchi errori che uno slave non riesce a riconoscere e quindi esso non riesce a

produrre una risposta di errore utile. Ad esempio: se nel messaggio di comando viene

scritto un indirizzo di uno slave non collegato o se a causa delle interferenze di linea il

CRC trasmesso è diverso da quello internamente calcolato. In questi casi nessuno slave

risponderà e il master dopo un periodo di attesa, Wait Period, ritrasmetterà il messaggio.

Lo stesso Wait Period viene utilizzato dopo un messaggio spedito in modalità broadcast e

tipicamente la lunghezza di questo tempo è tra i 50 e i 100 ms per i dispositivi Eurotherm

della Serie 2200.

Il periodo di Latency (periodo 'a' fig.3-2) necessario per processare un messaggio e iniziare

la trasmissione dello stesso, ovviamente dipende dal tipo di funzione che si vuole svolgere.

Ad esempio per leggere/scrivere una word, scrivere un bit e per le funzioni di codice 07 e

08, esso varia tra i 2 e i 10 ms. Per leggere N bits/word o scrivere N words la lunghezza del

periodo è indeterminata, ma comunque dipendente da N. In questi casi il tempo varierà tra

i 50 e i 500 ms per le Serie 2200.

Capitolo 3

Il Protocollo MODBUS

55

L'ultimo periodo da considerare è il tempo di trasmissione del messaggio che dipende dalla

lunghezza del messaggio stesso e dalla baud rate, velocità di trasmissione.

Fig.3-21 Calcolo del tempo di trasmissione del messaggio

Ogni tipo di funzione ha un determinato numero di bytes ai quali bisogna sempre

aggiungere i 3,5 extra byte per l'End Of Transmission. I numeri di bits per carattere sono

tipicamente 8 ai quali vanno aggiunti i bit di start e stop ed eventualmente il bit di parità,

visti in precedenza.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

56

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

4.1 National Instruments e LabVIEW

LabVIEW (abbreviazione di Laboratory Virtual Instrumentation Engineering Workbench)

è l’ambiente di sviluppo integrato per il linguaggio di programmazione visuale della

National Instruments, o solo NI, nato nel 1983 dalla necessità della NI di disporre di un

software grafico, con il quale testare rapidamente gli apparati hardware prodotti da tale

industria statunitense. National Instuments distribuisce software commerciale, come

l'ambiente di sviluppo grafico NI LabVIEW, e hardware modulare a costi ridotti e la sua

sede si trova ad Austin, Texas. Fin dalla sua fondazione nel 1976, National Instruments ha

rivoluzionato il modo di lavorare di tecnici e ricercatori attraverso l'utilizzo del personal

computer. L'azienda sviluppa e produce centinaia di prodotti software e hardware integrati

che, utilizzati insieme ai computer standard, permettono di sostituire gli strumenti

tradizionali, oppure di comunicare con essi, monitorandone e controllandone i processi. Per

mezzo dei software National Instruments, tecnici e ricercatori sono in grado di aumentare

la produttività e ridurre i costi. I tool di sviluppo offerti dall'azienda, tra cui il suo prodotto

di punta, che è proprio LabVIEW, sono gli strumenti più diffusi in ambito industriale . La

NI continua ad affermarsi nel settore dell'automazione industriale fornendo ai suoi clienti

schede d'interfaccia basate su PC per reti industriali e software per l'automazione

industriale, come LabVIEW grazie ai quali gli utenti possono monitorare e controllare i

propri impianti in modo efficiente.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

57

LabVIEW è un ambiente di sviluppo per applicazioni principalmente orientate ad:

• acquisizione, analisi, visualizzazione, elaborazione, memorizzazione di segnali e

dati;

• gestione di strumentazione elettronica;

• simulazione ed emulazione di sistemi fisici.

Si presenta come un ambiente di programmazione di tipo grafico ad oggetti, che consente

di realizzare i programmi in forma di diagrammi a blocchi e per questa ragione è battezzato

G-Language (Graphic Language). La semplicità di programmazione (abbastanza intuitiva

in quanto modellata su un diagramma di flusso), la semplicità di utilizzo (l'utente finale

dispone di uno strumento virtuale disegnato sullo schermo del computer) e la grande

versatilità, hanno reso LabVIEW molto impiegato e diffuso nell'ambito dell'acquisizione

dei dati e nel loro controllo nei processi industriali, nonché nel campo della ricerca

scientifica (tramite LabVIEW, ad esempio, sono gestiti i sistemi DAQ degli acceleratori di

particelle). La definizione di strutture dati ed algoritmi avviene anch’essa con icone e altri

oggetti grafici, ognuno dei quali incapsula funzioni diverse, uniti da linee di collegamento

(wire), in modo da formare una sorta di diagramma di flusso. Tale linguaggio viene

definito dataflow (flusso di dati) in quanto la sequenza di esecuzione è definita e

rappresentata dal flusso dei dati stessi attraverso i fili monodirezionali che collegano i

blocchi funzionali. Poiché i dati possono anche scorrere in parallelo attraverso blocchi e fili

non consecutivi, il linguaggio realizza spontaneamente il multithreading senza bisogno di

un’esplicita gestione da parte del programmatore. LabVIEW presenta tutti i tipi di dati e gli

operatori predefiniti di uso comune, permettendo di generare nuovi tipi di dati, e

controllare l’esecuzione dei programmi ricorrendo a strutture di controllo di flusso. Il

programmatore ha a disposizione una serie di librerie che possono essere richiamate ed

utilizzate all’interno dei programmi. Queste comprendono:

• funzioni di uso comune: aritmetiche, statistiche, logiche, manipolazione di

stringhe…

• funzioni specializzate per l’acquisizione e l’elaborazione dei segnali;

• il controllo di strumentazione numerica via interfaccia IEEE-488.2 (GPIB), VXI o

PXI;

• la trasmissione di dati mediante l’uso di porte seriali (RS-232 o RS-485) oppure

mediante il protocollo di comunicazione TCP/IP.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

58

4.2 Dettagli dei VI

I programmi realizzati in LabVIEW vengono chiamati strumenti virtuali (VI, Virtual

Instrument), poiché nell’aspetto e nel funzionamento sono simili a strumenti fisici, ma

l’interazione avviene attraverso un programma in esecuzione, che simula il funzionamento

di un dispositivo fisico (oscilloscopio, multimetro…). L’utente può modificare il valore di

alcune grandezze, agendo su opportune manopole o interruttori visualizzati dal

programma, e può osservare il risultato delle elaborazioni condotte su display grafici molto

simili a quelli che si trovano sulla strumentazione numerica/digitale. Un VI non esiste sotto

forma di testo, ma può essere salvato solo come un file binario visualizzabile e compilabile

solo da LabVIEW. I VI constano di tre componenti principali:

1. Lo schema a blocchi (Block Diagram)

E’ il diagramma di flusso che rappresenta il codice sorgente in formato grafico. Gli

oggetti del pannello frontale appaiono come terminali nello schema a blocchi. I

terminali sono porte di ingresso e di uscita che scambiano informazioni tra il

pannello frontale e lo schema a blocchi, e sono del tutto analoghi a parametri e

costanti nei linguaggi di programmazione testuali. I tipi di terminali includono:

• terminali di controlli e di indicatori: sono i corrispondenti dei controlli ed

indicatori selezionati nel pannello frontale. I dati inseriti nei controlli dal pannello

frontale, si inseriscono nello schema a blocchi tramite i terminali del controllo. I

dati passano poi attraverso varie funzioni. Quando queste completano i loro calcoli,

producono nuovi valori dei dati, che arrivano ai terminali indicatori, aggiornando

gli indicatori del pannello frontale;

• terminali nodo o strutture: oggetti dello schema a blocchi che hanno ingressi

e/o uscite ed effettuano operazioni quando un VI si trova in esecuzione. Essi sono

analoghi a dichiarazioni, operatori, funzioni e subroutine nei linguaggi di strutture.

Le strutture sono elementi di controllo del processo, come i costrutti Case, i cicli

For o While… Le strutture eseguono il controllo di flusso di base e verranno

spiegate successivamente.

All’interno di un diagramma a blocchi si possono anche trovare altre tipologie di

interpreti di dati:

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

59

• funzioni o blocchi: sono elementi operativi fondamentali di LabVIEW. Le

funzioni non hanno pannelli frontali o schemi a blocchi, ma hanno i riquadri dei

connettori e possono avere un numero indefinito di ingressi e di uscite come ogni

VI;

• subVI: sono VI costruiti per essere usati all’interno di un altro VI. Ogni VI

può essere potenzialmente utilizzabile come subVI. Essi hanno ingressi e uscite a

cui collegare le linee di flusso.

• fili di collegamento: possono trasportare teoricamente qualunque mole di dati

di qualunque tipo, anche aggregati (bundle) definiti dal programmatore. Il colore e

lo spessore del filo cambiano di conseguenza per permetterne una facile

identificazione. Ad esempio gli interi scorrono su fili blu e le stringhe su fili rosa,

gli scalari su filo sottile, gli array su filo spesso e le matrici su filo doppio;

• commenti testuali.

Fig.4-2 Corrispondenze tra il pannello frontale e il diagramma a blocchi

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

60

2. Il pannello frontale (Front Panel)

E’ la finestra che rappresenta l’interfaccia utente del VI. Si realizza con controlli e

indicatori, che costituiscono i terminali interattivi d’ingresso e d’uscita,

rispettivamente. I controlli sono matrici, manopole, potenziometri, pulsanti,

quadranti e molti altri. Simulano i dispositivi d’ingresso degli strumenti e

forniscono dati allo schema a blocchi del VI. Gli indicatori sono grafici, tabelle,

LED, termometri e molti altri. Simulano i dispositivi d’uscita degli strumenti e

visualizzano i dati che lo schema a blocchi acquisisce o genera.

Alcune tipologie di controlli o indicatori sono illustrati in figura 4-1

Fig.4-1 Pannello frontale: controlli e indicatori

3. Il Riquadro Connettori (Icona/connettore)

Essendo LabVIEW un linguaggio di programmazione ad oggetti è facile che un VI

venga riutilizzato come subVI in un altro VI. Per poter fare ciò, bisogna definire le

variabili che riceve in ingresso, e quelle che restituisce in uscita: ciò viene fatto

mediante i riquadri dell’icona e dei connettori. L’icona è un simbolo grafico di

piccole dimensioni che rappresenta simbolicamente il VI stesso, e che permette di

trasformare il programma in un oggetto. È normalmente visibile nell’angolo in alto

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

61

a destra sia della finestra del Front Panel, sia in quella del Block Diagram (vedi

figura 4-3). Quando il VI corrente viene impiegato all’interno di un altro

programma come sub-VI, l’icona permette di identificare il sub-VI stesso nel Block

Diagram del programma principale che lo contiene. Il riquadro dei connettori,

presente solo nel Front Panel, è un insieme di terminali che corrisponde ai controlli

e agli indicatori del VI, analogamente alla lista di parametri di chiamata di funzione

nei linguaggi di programmazione testuali. Essi stabiliscono la corrispondenza tra

aree dell’icona e controllori/indicatori del pannello frontale (elementi di ingresso-

uscita del pannello frontale associato al sub-VI).

Fig.4-3 Il riquadro connettori

Il riquadro dei connettori serve appunto a definire qual è l’aspetto del VI quando

appare come subVI in uno schema a blocchi, ma soprattutto come e dove vanno

collegate le linee per permettere il passaggio dei dati. In generale ogni controllo

può essere associato a un ingresso e ogni indicatore può essere associato a

un’uscita.

4.2.1 Un Esempio di un VI

In figura 4-4 si può notare un semplice VI che calcola l’area di un triangolo rettangolo.

Sono visibili il pannello frontale (a sinistra) e il diagramma a blocchi (a destra). In questo

caso nel pannello frontale abbiamo due controlli, ingressi, Base e Altezza, modificabili

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

62

dall’utente e un indicatore, Area, che riporta il risultato dell’operazione. Nel diagramma a

blocchi, si notano i tipi di dati con il loro colore, assunto anche dai fili di collegamento, che

sono i DBL. Essi sono rappresentati dal colore arancione, che significa tipo di dato

numerico in virgola mobile a doppia precisione. I riquadri triangolari gialli invece

simboleggiano le funzioni, in questo caso matematiche, utili per arrivare a determinare il

risultato. Concettualmente si possono anche facilmente distinguere gli ingressi dalle uscite,

sia nel diagramma a blocchi, per mezzo del bordo colorato o meno e della posizione della

freccia bianca, sia nel pannello frontale, dove Base e Altezza hanno dei pulsanti per essere

modificati, mentre Area no.

Fig.4-4 Esempio: calcolo area triangolo rettangolo

4.3 Tipi di Dati e Strutture

LabVIEW mette a disposizione una vasta gamma di tipi di dati vedi fig 4-5. Ogni tipologia

di dato ha un specifico colore, come abbiamo visto nell’esempio sopra riportato

l’arancione per i DBL, e pure i collegamenti che uniscono oggetti e funzioni che operano

con dati dello stesso genere.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

63

Fig.4-5 Tipi di dati

Queste tipologie di dati a loro volta si possono organizzare in matrici, vettori o in Cluster.

Un cluster è un insieme eterogeneo di dati. Nel modo di pensare di LabVIEW i dati

viaggiano in pacchetti (data packets). Se un pacchetto, per portare l’informazione dovuta,

necessita, per esempio, di mettere insieme un array con una stringa, si realizza un cluster

formato da tali elementi.

Oltre ai vari tipi di dato in LabVIEW abbiamo anche diversi tipi di strutture:

• For ;

• While;

• Case/If ;

• Sequence ;

• Node.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

64

Ogni struttura o ciclo viene rappresentata mediante una determinata visualizzazione

grafica. Ognuna di queste ha un bordo dimensionale che comprende la sezione del

diagramma a blocchi appartenente al corpo del ciclo. I terminali per mezzo dei quali le

strutture si connettono ad altri blocchi o strutture sono detti tunnel. Una volta che saranno

disponibili dei valori validi in ingresso, queste strutture verranno eseguite automaticamente

ed al termine di esse vengono forniti i dati di uscita. Il valore delle variabili fornite in

ingresso alle varie strutture vengono lette una sola volta all’inizio del ciclo e le uscite

vengono aggiornate solo alla fine totale del ciclo.

Il ciclo For è una struttura di controllo iterativa, che determina l'esecuzione di una

porzione di programma ripetuta per un certo numero di volte. Esso si distingue dalle altre

strutture per mezzo dei numeri interi “N” in alto a sinistra e il numero “i” in basso a

sinistra. Tali valori sono il Count Terminal, che indica il numero di iterazioni ed è una

variabile di ingresso, e l’Iteration Terminal che contiene il numero di iterazioni completate

ed è una variabile di uscita, inizialmente posto a zero.

La struttura While invece, determina la ripetizione di una porzione di un programma fino al

verificarsi di una determinata condizione. Esso viene eseguito fino a quando il Conditional

Terminal (variabile di ingresso booleana) assume un determinato valore. Il valore

dell’Iteration Terminal contiene il numero di iterazioni completate ed è identico a quello

visto per il ciclo For.

Le strutture Case o If eseguono una parte di codice piuttosto che un’altra, a seconda del

valore assunto dalla variabile di controllo, detta Selector Terminal. Per ottenere una

struttura If è sufficiente collegare il Selector Terminal ad una variabile di controllo di tipo

Boolean. Una struttura Case invece, si costruisce con una variabile di controllo Integer,

String, oppure di un altro tipo comunque enumerabile. E’ possibile specificare anche un

Default Case.

Le strutture Sequenze servono per controllare il flusso di esecuzione del programma. Esse

contengono uno o più subdiagrams (detti frame) che vengono eseguiti in sequenza.

All’interno di ogni frame l’ordine di esecuzione viene determinato dalle relazioni di

dipendenza dei nodi, come avviene comunemente in LabVIEW. Esistono due tipi di queste

strutture, quelle Flat e quelle Stacked, dove le prime visualizzano le operazioni da svolgere

in sequenza tutte insieme e una a fianco dell’altra, mentre le seconde una alla volta.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

65

La struttura Node consente di valutare formule ed espressioni simili a quelle usate nel

linguaggio C, all’interno del diagramma a blocchi, invece di utilizzare le normali funzioni.

Il riassunto delle strutture è mostrato in figura 4-6.

Fig.4-6 Le Diverse Strutture

Tipi di dati e strutture sono facilmente distinguibili a livello del solo diagramma a blocchi.

4.4 Selezione delle Operazioni

Tutte queste funzionalità di LabVIEW, viste fino ad ora, in ogni caso devo essere inserite

manualmente tramite degli opportuni comandi. In base alla nostra posizione troveremo dei

menù con potenzialità diverse e applicazioni altrettanto diverse. La Tools Pallette, ad

esempio, è una finestra dell’ambiente di sviluppo di LabVIEW, comune sia al Pannello

Frontale che al Diagramma a Blocchi, ed essa viene mostrata e spiegata in figura 4-7.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

66

Fig.4-7 La Tools palette

La Controls Palette e la Functions Palette (vedi fig.4-8), invece, sono esclusive del

Pannello Frontale e del Diagramma a Blocchi. Per posizionare degli oggetti e sufficiente

selezionare un oggetto da una palette e trascinarlo all’interno della finestra di lavoro di una

o dell’altra sezione, ovviamente se si sta lavorando sul Diagramma a Blocchi la Controls

Palette non è disponibile e i suoi oggetti non sono selezionabili. La Controls Palette

contiene le librerie di oggetti e indicatori, mentre la Functions Palette ci permette di

utilizzare le librerie di blocchi e funzioni per la realizzazione del codice sorgente. Per le

operazioni di avviamento e fermata del programma, infine, vi è una barra degli strumenti

che è sempre visibile e ci fornisce molte funzionalità nel campo di debug. Questa barra è

visibile figura 4-9, dove vengono anche sinteticamente spiegate le sue funzioni.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

67

Fig.4-8 La Controls Palette e la Functions Palette

Fig.4-9 La barra degli strumenti

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

68

4.5 L’Interfaccia per Eurotherm 2216e

LabVIEW ci ha messo a disposizione i mezzi per poter ora presentare l’interfaccia

utilizzata per realizzare il nostro progetto.

Il problema di realizzare un’interfaccia LabVIEW per lo scambio dei dati via seriale

tramite il MODBUS è stato risolto direttamente dall’azienda Eurotherm che prevede già di

fornire ai diretti interessati il pacchetto contenente il programma desiderato. Questa base di

partenza dovrà poi essere modificata dall’utente per adattarla alla propria applicazione.

Questo è stato possibile grazie all’universalità del protocollo MODBUS e della

disponibilità che Eurotherm mette a disposizione, garantendo ai suoi clienti un servizio

sufficientemente facile e risolutivo.

Anche la NI mette in condivisione una libreria per LabVIEW che fornisce la possibilità di

utilizzare facilmente il protocollo MODBUS, ma esaminando le due diverse soluzioni, per

convenienza e maggiore semplicità si è scelto di utilizzare quella proposta da Eurotherm.

4.5.1 La Porta Seriale e la Libreria VISA

LabVIEW è un potente software in grado di comunicare con molti strumenti, siano essi

strumenti di misura o dispositivi come il termoregolatore 2216e in uso per questo progetto.

Essendo il nostro regolatore un dispositivo molto flessibile useremo un normale

collegamento RS-232 in ingresso al computer, senza alcuna scheda particolare, cosa che

avverrebbe se si usasse il protocollo GPIB (General Purpose Interface Bus) e quindi se si

volesse dialogare con uno strumento di misura. Di conseguenza è necessaria la sola

presenza di un collegamento RS-232 in ingresso/uscita dal case del PC. Per installare la

porta seriale si usa il Measurement & Automation Explorer (MAX) con il quale si possono

automaticamente individuare e configurare tutte le risorse utilizzabili da LabVIEW

presenti nel computer.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

69

Fig.4-10 Utilizzo del MAX per installare la porta seriale

Nella configurazione della porta seriale bisogna fare molta attenzione a non commettere

errori nel specificare la porta in uso, nel nostro esempio Fig 4-10 è COM1. Quindi la porta

seriale è identificata con tale nome ed è vista anche come un oggetto VISA. La VISA

(Virtual Instruments Software Architecture) è una libreria di VI, cioè un’insieme di

“pezzi” di software e quindi un gruppo di driver, che controlla la trasmissione dei dati

provenienti esternamente dal PC, via seriale, GPIB, VXI o con protocolli più recenti come

l’USB o l’Ethernet. La VISA in pratica è un’interfaccia ad alto livello applicativa di

programmazione (API Application Programming Interface) che chiama i codici a basso

livello per comandare l’hardware. I singoli driver VISA o VI VISA, corrispondono ognuno

a delle determinate operazioni, come la programmazione, la configurazione, la lettura da e

la scrittura su strumenti esterni al computer. Di fatto, all’interno del nostro programma in

LabVIEW vedremo che ci saranno numerosi VI VISA che avranno lo scopo di rendere

possibile la trasmissione corretta dei dati.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

70

4.5.2 La Gerarchia dell’Interfaccia

Fig.4-11 La gerarchia dell’interfaccia

La figura 4-11 rappresenta lo schema a blocchi dei VI e quindi la gerarchia dei VI. Al

livello più alto c’è l’interfaccia di comando di LabVIEW, che è visibile all’utente,

scendendo troviamo la parte dedicata al protocollo MODBUS, utilizzato per dialogare con

il termoregolatore, ed infine i settaggi per la configurazione della porta seriale dove

implementiamo il nome della porta utilizzata oltre a richiamare la libreria VISA e settare

altri parametri come la velocità di trasmissione. Ora spostiamo l’attenzione sui singoli

blocchi dello schema senza però illustrare sia il diagramma a blocchi che il pannello

frontale di ognuno di questi VI, ma illustrando solo le parti necessarie per una spiegazione

di principio e per un normale utilizzo.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

71

4.5.2.1 Configurazione della Porta Seriale

La configurazione della porta seriale in LabVIEW avviene tramite la libreria VISA e i VI

che essa contiene e che vengono messi a nostra disposizione. Programmato il modulo

2216e e costruita la linea di trasmissione, ora non ci resta che configurare in modo coerente

la porta seriale del PC tramite LabVIEW. Le caratteristiche che ci serviranno sono le stesse

che sono già state abbozzate nel capitolo 2.5 della linea di trasmissione, che si andranno ad

aggiungere al nome della porta, COM1. Attenzione che da ora in avanti la porta utilizzata

non è più la COM1 ma bensì la COM3, quindi come vedremo nel capitolo 4.6 l’ingresso

serial port del MODBUS non è “0” ma “2”. In figura 4-12 viene mostrato il pannello

frontale, dei due VI, chiamati VISA Serial, identificati da un cerchio di colore rosso figura

4-11.

Fig.4-12 Il pannello frontale dei VISA Serial

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

72

Questo VI, che è il primo che si deve andare a settare, permette di configurare gran parte

dei dati relativi alla porta seriale. Si inizia con la scelta del nome della porta che sarà la

COM3, facendo attenzione a non selezionare un diverso nome che potrebbe essere

presente, se ad esempio, si ha una stampante collegata al computer. Successivamente si

configurano la velocità di trasmissione e la parità, baud rate e parity, che devono essere

coerenti con le scelte effettuate a livello di programmazione del termoregolatore. La scelta,

invece, della modalità di trasmissione utilizzata dal MODBUS, cioè il formato RTU, visto

nel capitolo 3.2.4, ci obbliga a scegliere 8 bit di dati, data bits e un unico bit di stop, stop

bits. I dati che si vedono tra parentesi, vicino alla denominazione dei vari indicatori,

segnalano la scelta di default per quel parametro. Altre due voci modificabili in base alle

esigenze sono il flow control, controllo di flusso e il timeout, che è il tempo massimo di

attesa per una singola esecuzione del VI. Nella parte inferiore, si nota la presenza di un

controllo di errore di trasmissione inserito con LabVIEW e che utilizza solamente le

eccezioni standard. Pur essendo molto semplice esso è in grado di determinare, ad

esempio, se la porta seriale è unicamente dedicata a LabVIEW o ad altri programmi, come

iTools. Tale condivisione ovviamente non sarebbe possibile, perché non si riuscirebbe più

a distinguere un messaggio da un altro e quindi il VI ci segnala l’errore modificando

l’icona di status in una “x” rossa e nel source immetterebbe il codice di errore proprio di

LabVIEW. Queste scelte eseguite nei due VI VISA Serial devono essere poi riportate allo

stesso modo nelle voci comuni nel VI Serial Port, , identificato con un cerchio di colore

blu in figura 4-11. In esso si segnala l’effettiva concatenazione tra LabVIEW e la porta

seriale per mezzo del parametro port number. Qui bisognerà controllare il Port Referencing

di LabVIEW, che è il seguente e che varia con la macchina con la quale si sta eseguendo il

programma:

• PC: 0 = COM1, 1= COM2, etc

• Mac: 0 = Modem, 1 = Printer, etc.

• Sun: 0 = ttya, 1 = ttyb, etc.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

73

Fig.4-13 Il pannello frontale dei Serial port

4.5.2.2 Configurazione del Protocollo MODBUS

Impostate le caratteristiche al livello più basso dell’interfaccia non ci resta ora che

verificare la struttura e il funzionamento della seconda sezione di essa dedicata al

protocollo di trasmissione, che è stato descritto nel capitolo 3. In figura 4-11, questa parte è

evidenziata dal riquadro centrale e il blocco più importante è quello identificato da un

cerchio di colore viola. Questo VI rappresenta invece l’operatore mediante il quale può

avvenire la trasmissione dei messaggi in MODBUS, infatti in esso vengono richieste le

singole parti che costituiscono il messaggio e lui le converte, con l’aiuto dei subVI visti

prima, le ordina e le trasmette seguendo le regole del protocollo. La rappresentazione

sintetica ingresso/uscita di questo VI è mostrata in figura 4-14, dove le uscite sono quelle

riportate sul lato destro del blocco MODBUS e gli altri sono tutti ingressi, da configurare.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

74

Fig.4-14 Schema di principio del VI MODBUS

Andiamo ora a studiare ogni singola variabile di ingresso e uscita in modo da renderci

conto della corretta corrispondenza con la struttura dei messaggi del MODBUS. Iniziamo

con gli ingressi:

• ModBus Function: rappresenta il Function Code dell’operazione che vogliamo

eseguire in MODBUS, mostrati in figura 3-5 del capitolo 3.3;

• Serial Port: si aspetta il numero della porta seriale che stiamo usando, cioè il Port

Referencing che utilizza LabVIEW;

• Modbus slave address: all’inizio del formato dei messaggi in MODBUS bisogna

sempre specificare l’indirizzo dello slave ricevente (vedi capitolo 3.2.1), cosa che

avverrà tramite questo ingresso. Si possono avere fino ad un massimo di 32 slave;

• Protocol start address: oltre all’indirizzo del dispositivo bisogna identificare anche

l’indirizzo del parametro (vedi capitolo 3.2.2) che si desidera utilizzare;

• No. of points: rappresenta il numero di points, cioè di word o di bit, che si vuole

scrivere o leggere, in base all’operazione che si desidera effettuare;

• Setpoints: questo ingresso è utile solo se si vuole andare a immettere il valore di

setpoint, in tutti gli altri casi non verrà utilizzato;

• Set Digitals: questo ingresso serve ad adattare il numero dei decimali visualizzabili

in LabVIEW in accordo con quello impostato sul regolatore (vedi capitolo 1.6);

• Error in: è lo stesso controllo di errore di LabVIEW che abbiamo visto per la porta

seriale, che viene riportato sino a questo livello in modo da dare l’opportunità di

accorgersi della presenza degli errori in trasmissione;

• Decimal points: specifica più in dettaglio il numero di decimali che si stanno

utilizzando, infatti si nota che è un filo spesso e blu, quindi rappresenta un vettore di

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

75

interi, che varia la sua lunghezza in base al numero di word che si utilizzano e per

ognuna di esse, accetta il numero di decimali che utilizzano;

• Iteration: indica quante volte verrà eseguita l’operazione stabilita prima di

visualizzarne a schermo il risultato.

Le uscite invece si dividono tra le seguenti:

• String send to device: questa uscita mostra il messaggio MODBUS che è stato

costruito a partire dagli ingressi e che è stato spedito sulla linea di trasmissione;

• String received from device: qui, invece, si potrà leggere la risposta del dispositivo,

solo se è prevista una risposta, in accordo con le regole del protocollo MODBUS;

• Process values: è l’uscita vera e propria, cioè quella che visualizza i dati che si

vogliono leggere dal dispositivo, con carattere non esclusivo della PV, infatti da essa

si riceverà anche il setpoint;

• Digitals read: uscita relativa all’ingresso Set Digitals;

• Error out: come per il medesimo ingresso, ha lo scopo di identificare la presenza o

meno di alcune semplici tipologie di errore, ma in ricezione.

Fig.4-15 Il pannello frontale del VI MODBUS

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

76

In figura 4-15, si può apprezzare il pannello frontale del VI MBmaster.vi, dove si

riconoscono a sinistra i vari ingressi e a destra le differenti uscite.

4.5.2.3 L’Interfaccia di Comando

L’ultima parte dell’interfaccia, riquadro in alto della figura 4-11, è quella che è stata

appositamente creata per la risoluzione di questo problema. Inizialmente essa si divide in

due VI che svolgono i due differenti scopi che deve avere l’applicazione: il primo quello di

poter leggere oltre la variabile di processo anche il valore di riferimento, Read PV SP.vi, il

secondo quello di poter creare un profilo di temperatura, interpolarlo è passarlo poi al

termoregolatore, VI_Scrittura_richiamo.vi. Infine si è realizzato un unico VI

Scrittuta_test2.vi in grado di creare un profilo lineare interpolando i dati letti da un file e

contemporaneamente di leggere la temperatura e il setpoint, ciò che vedremo visualizzato

su schermo è che la temperatura varierà secondo il profilo interpolato. Inoltre è possibile

comandare più regolatori in parallelo senza che uno sia di disturbo all’altro specificando

l’opportuno indirizzo, come vedremo in seguito abbiamo controllato e programmato due

regolatori i quali sono indipendenti l’uno dall’altro.

Questi VI, a parte per i settaggi della porta seriale che variano da computer a computer, e

che quindi devono essere configurati su ogni macchina dove si vuole utilizzare questa

interfaccia, sono gli unici che si devono utilizzare per svolgere tali operazioni, perché già a

livello di configurazione del protocollo MODBUS, essi sono già stati pre-programmati.

4.6 L’Interfaccia MODBUS per leggere Temperatura/Setpoint

Questa interfaccia è la base di partenza per cominciare a capire come si può leggere la

variabile di processo e il valore di riferimento dal termoregolatore, vedi figura 4-16.

Si nota subito che il blocco principe è il blocco per la configurazione del protocollo

MODBUS visto nel capitolo 4.5.2.2, il Mbmaster.vi , qui mostriamo come sono avvenuti i

collegamenti per eseguire la lettura.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

77

Fig.4-16 Diagramma a blocchi del VI Read Temp

La figura 4-16, mostra il diagramma a blocchi del VI in questione, dove si possono notare

alcune delle cose spiegate in precedenza. Prima di tutto si vede il rapporto tra questo VI e il

VI del MODBUS, che compare qui come un unico blocco sintetico, e quindi come un

subVI, visto l’ordine di gerarchia. Si nota poi che per l’ingresso integer, blu, con il quale si

impostano i decimali, e per l’uscita setpoint, arancione di tipo double, questi sono

rappresentate da dei fili spessi che identificano dei vettori. Quello arancione è un vettore

che contiene la PV e il SP, che vengono esportati per mezzo del blocco Index Array

Function, evidenziato nella Fig. 4-16 da un cerchio di colore rosso, che accetta in ingresso

un vettore e restituisce un elemento o un sottovettore in base all’indice scelto “0” per la

temperatura e “1” per il setpoint. Sulla destra, poi, si distinguono i vari blocchi-funzione

degli indicatori descritti nel pannello frontale. Sempre dalla stessa figura, si osserva che

questo VI è totalmente dedicato alla lettura dei due parametri fondamentali e che quindi

per eseguire l’operazione di modifica del setpoint bisognerà disporre di un altro VI. In alto

a sinistra della figura 4-16 c’è una finestra che mostra tutte le possibili funzioni del

MODBUS le quali permettono di scrivere o leggere. Per la lettura è utilizzata la voce 03

Read output registers, invece se volessimo settare il setpoint utilizzeremo la voce 06 Write

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

78

single output registers; bisogna inoltre ricordarsi di implementare il relativo ingresso

(Setpoints), descritto nel capitolo 4.7.

L’ultima cosa importante da predisporre sono gli ingressi del blocco MODBUS (i numeri

fra parentesi sono i settaggi utilizzati nel progetto):

• Serial Port: indica il numero della porta seriale utilizzata (2);

• Modbus Slave Adress: indica l’indirizzo dello slave ricevente (1,2,3…);

• Protocol Start Adress: indirizzo del parametro;

• No. Of Points: : rappresenta il numero di points che si vuole scrivere o leggere,

quindi (2) perché voglio sia la PV che il SP;

• Iteration: indica quante volte verrà eseguita l’operazione stabilita prima di

visualizzarne a schermo il risultato (1);

• Setpoints: utilizzato solo in fase di scrittura per settare il setpoint ad un valore o più

di riferimento, vedi capitolo 4-7 per il suo effettivo utilizzo.

4.7 L’Interfaccia di Lettura

Fig.4-17 Diagramma a blocchi del Read PV SP

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

79

In figura 4-17 è mostrato lo schema a blocchi del VI per la lettura della temperatura e del

setpopint, è visibile il blocco dedicato alla configurazione del protocollo MODBUS, punto

chiave della realizzazione dell’interfaccia per la lettura della variabile di processo e del

valore di riferimento, già spiegato nel precedente capitolo 4.6. Ci rimane ora solo di

implementare le funzioni per salvare i dati prelevati dal regolatore e di gestire più

apparecchi collegati in parallelo. Innanzitutto ho utilizzato una Stacked Sequence Structure

che consiste in uno o più sottodiagramma, o strutture, che sono eseguite sequenzialmente.

Cliccando con il destro sul bordo si possono aggiungere o togliere frames oppure creare

una sequence local a cui passare dati fra frames, viene utilizzata per garantire l’esecuzione

di un sottodiagramma prima o dopo di un altro. Come evidenziato, con un rettangolo di

colore rosso, nella Fig. 4-17 è visibile l’etichetta della sequenza, la quale ci mostra l’ordine

con cui esse vengono eseguite. Nel nostro caso ho solo due frames già che ho a

disposizione solo due regolatori, comunque se volessi controllarne altri basta che aggiunga

altri frames e imposti gli opportuni indirizzi (Modbus Slave Adress) di comando. Dopo di

che, ogni programma contenuto in una struttura, è inserito in una Case Structure la quale

ha la funzione di far si che l’esecuzione del programma avvenga solo se si è verificata una

condizione di true, portando l’interruttore (Abilita) in posizione on. Questo ci permette di

abilitare uno o più termoregolatori o anche di disabilitarli tutti, quindi una comodità in più

per l’utente che li sta monitorando. Infine tutto ciò è contenuto all’interno di un ciclo while

che ha lo scopo di funzionare da temporizzatore. La parte dedicata al salvataggio dei dati è

evidenziata da un riquadro di colore verde, nel quale si è usato un nuovo blocco, chiamato

Write to Measurement File. Esso è stato inserito nel VI Read PV SP e dota all’interfaccia

la capacità di salvare tutti i valori che vengono letti dal programma. Questa funzionalità è

stata necessariamente inserita perché la visualizzazione della temperatura in funzione del

tempo è limitata ed essendo a scorrimento, a visualizzazione finita, non sarebbe più stato

possibile recuperare i dati iniziali dell’operazione. Tra le opzioni del Write to Measurement

File poi si possono segnalare i metodi di salvataggio preferiti, la destinazione del file e

altre informazioni molto utili per poi rendere i dati prelevati accessibili da altri programmi

di calcolo, vedi Fig. 4-18.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

80

Fig.4-17 Write to Measurement File

Passiamo adesso ad analizzare il pannello frontale del Read PV SP.vi:

Fig.4-18 Pannello Frontale del Read PV SP

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

81

In figura 4-16, si può apprezzare il pannello frontale del VI che legge sia la temperatura

che il setpoint. Per la lettura della temperatura si è utilizzato un semplice termometro in

verticale sulla sinistra, che visualizza la temperatura ad ogni suo campionamento, con una

scala che è in grado di visualizzare al massimo le mezze unità di grado. Al centro invece, si

nota un grafico che mostra l’andamento temporale della temperatura e sopra di esso, il

valore effettivo della temperatura, con la precisione massima messa a disposizione dal

termoregolatore, e il pulsante (Abilita) per abilitare o no la lettura dei dati prelevati dal

regolatore. I parametri di scala del grafico, sono ovviamente configurabili a piacere e

quindi i range visualizzabili sugli assi possono essere facilmente modificabili. Anche per la

lettura del setpoint vi è un indicatore ad arco per la visualizzazione immediata, ma non

precisa e un successivo indicatore per la visualizzazione del setpoint con la massima

precisione. In basso a destra del Pannello frontale si notano solamente dei controlli e degli

indicatori a LED che svolgono tre funzioni differenti. I primi due denominati Abilita,

permettono di iniziare il salvataggio dei dati, tramite il controllo a levetta si dà il via al

salvataggio, mentre l’indicatore a LED segnala l’avviamento. Un successivo indicatore a

LED, chiamato Salva informa l’utente dell’effettivo salvataggio dei dati. Infine vi è

un’altra coppia di comandi, identificati dalla scritta Reset. Il comando di Reset serve per

cancellare il file contenente le misure salvate e l’indicatore associato dimostra la riuscita

dell’operazione. Le variabili che verranno salvate sono proprio la PV e SP. Tutti gli oggetti

in questo pannello frontale sono degli indicatori, in quanto raffigurano solamente le uscite

del VI. E’ stato necessario inserire anche una visualizzazione della temperatura in funzione

del tempo, perché questo VI può essere eseguito ciclicamente. Per maggior chiarezza nella

figura 4-18 si è riportato solo il Pannello Frontale del primo regolatore senza riportare il

secondo già che è uguale in tutto.

4.8 L’Interfaccia di Scrittura

Il passo successivo, alla lettura, è quello di poter creare un profilo di temperatura da

passare al termoregolatore, a questo proposito si è implementato un nuovo VI in grado di

leggere un file in formato excel, più precisamente lvm, al quale applicare un’operazione di

interpolazione per poter realizzare un profilo lineare per poi passarlo al regolatore. Lo

scopo quindi è di poter realizzare un profilo in temperatura in funzione del tempo, vedi

figura 4-19 il VI corrispondente: VI_Scrittura_richiamo.vi.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

82

Fig.4-19 schema a Blocchi del VI_Scrittura_richiamo

Lo schema a blocchi di Fig. 4-19 rappresenta il programma dedicato esclusivamente per la

scrittura, nel quale andiamo a passare i vari riferimenti di temperatura al setpoint.

Quest’ultimo predisporrà il funzionamento del regolatore secondo i valori desiderati. Il

programma si suddivide in due operazioni fondamentali: la prima quella di creare il profilo

di temperatura interpolato la seconda di gestire il passaggio dei valori al setpoint in modo

temporizzato. La parte dedicata al prelievo dei dati è implementata dal blocco Read From

Measurement File il quale dota all’interfaccia la capacità di leggere un file (formato lvm)

esterno scritto secondo uno standard, tempo separatore, che è una virgola, e setpoint. Ora

devo interpolare i dati in modo da creare un profilo lineare; i due blocchi evidenziati da un

rettangolo di colore rosso sono degli Array Subset Function che hanno la funzione di

restituirmi in uscita un subarray di dati, il primo il tempo e il secondo il setpoint. I

blocchetti arancioni con il bordo blu sono dei convertitori che mi permettono di passare ad

esempio da un 2D array of scalars a rows are channels oppure da 1D array of scalars a

single channel. Il blocco evidenziato da un cerchio di colore verde, chiamato Interpolate

1D, ha lo scopo di realizzare l’interpolazione lineare. Esso riceve in ingresso il tempo, il

setpoint e l’uscita del blocco Ramp Data il quale è un subVI in quanto richiama il VI

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

83

create_ramp.vi. Costui è un VI già realizzato che LabVIEW mette a diposizione agli

utenti, in Fig. 4-20 è visibile il suo pannello frontale.

Fig.4-20 Front Panel del create_ramp

Gli ingressi starting value e final value non sono settati da noi, ma bensì determinati dal

blocco Array Max & Min Function il quale restituisce il valore minimo e massimo della

variabile d’ingresso, il tempo, vedi nella figura 4-20 il blocco evidenziato con un cerchio di

colore giallo. Invece per quanto riguarda l’ingresso increment esso è un controllo e quindi

sta all’utente a decidere il passo d’interpolazione più consono alle sue esigenze.

Il ciclo while ha lo scopo da temporizzatore nel quale il tempo da aspettare per ogni

singola scrittura di un valore di setpopint coincide con il passo di interpolazione

moltiplicato per una costante fissa di valore 1000 [ms]. In questo modo vincolo la scrittura

del setpoint in base al campionamento che voglio eseguire; per esempio se ho un passo di

interpolazione uguale a 1 vuol dire che scrivo ogni secondo se fosse 0.5 vuol dire che

scrivo ogni mezzo secondo e così via…

Ora ci rimane solo di capire cosa realmente succede all’interno del ciclo while per

comodità riporto in Fig. 4-21 il suo contenuto, in questo modo sarà più chiaro ciò che è

stato realizzato. Nella parte sinistra troviamo la configurazione del blocco MODBUS, per

realizzare la scrittura del setpoint, invece a destra è presente un controllo il quale permette

di stoppare il programma in esecuzione in qualsiasi momento che lo si desideri, diciamo

che è un pulsante per le emergenze nel caso si verificasse qualcosa di imprevisto.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

84

Fig.4-20 Scrittura del Setpoint

La configurazione che permette la scrittura del valore di riferimento è 06 Write single

output registers, l’ingresso Setpoints è abilitato per poter passare al regolatore i relativi

valori di temperatura calcolati dal blocco di interpolazione. In Fig. 4-20 il blocco arancione

più a sinistra (Array Subset Function) riceve nell’ingresso array i dati interpolati,

nell’ingresso index specifico il primo elemento, riga, colonna, o pagina da includere in una

parte dell’array che voglio che mi ritorni, infatti index assume il valore dell’iterazione del

ciclo. Nell’ingresso length specifico quanti elementi, righe, colonne, o pagine includo in

una parte di array che voglio che mi restituisca in uscita, già che voglio solamente i valori

di setpoint setto l’ingresso a “1”.

Se ci fosse un problema durante la fase di riscaldamento del forno si può interrompere il

ciclo grazie al controllo implementato nel VI, vedi parte destra della Fig. 4-20, infatti il

ciclo termina una volta che si è premuto il pulsante di emergenza oppure si è verificata la

condizione di uguaglianza cioè il numero di iterazione uguaglia il blocco divisore (tempo

max diviso passo interpolazione).

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

85

4.8.1 File di Riferimento

Il software realizzato nel capitolo 4.7 permette di leggere da un file esterno i dati necessari

per creare il profilo di temperatura che il forno dovrà eseguire. Il file di riferimento

implementato contiene i dati secondo uno standard che deve rispettare il seguente ordine:

• Variabile tempo;

• Separatore;

• Variabile di riferimento.

Quindi per prima cosa ci va la variabile tempo, espressa in secondi, poi il separatore, che è

una virgola ed infine il valore di setpoint, espresso in gradi [°C]. I riferimenti di tempo

prendono come istante di partenza, corrispondente al tempo 0sec, l’avvio dell’esecuzione

del profilo da parte del programma. Lo standard utilizzato può essere modificato a

piacimento; si può utilizzare come separatore, al posto della virgola, anche uno spazio, una

tabulazione, il punto o quant’altro. Inoltre ogni coppia di dati va messa in una nuova riga,

il che permette anche una più facile lettura in caso di problemi. Si ricorda che labVIEW

accetta solo file con estensione .lvm, quindi accertarsi che i propri profili scritti con

qualsiasi file di testo (Word, Exel,…) siano poi modificati tali da avere la giusta

estensione.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

86

Fig.4-21File di Riferimento e Profilo

In Fig. 4-21 è riportato sul lato sinistro i dati, e quindi come vanno scritti, invece sul lato

destro è presente l’andamento effettivo della temperatura in funzione del tempo che

appunto il software creato realizza. Quindi il nostro forno raggiunge a passi i vari

riferimenti di temperatura in modo lineare e non più a gradini; come si vede dalla Fig. 4-21

quando il forno si trova alla temperatura di 15°C al tempo di 14 secondi esso grazie al

software sviluppato comincerà a incrementare la sua temperatura in modo lineare fino ad

arrivare al successivo valore, 50°C, nel tempo indicato, 60 secondi.

In questo modo l’utente è in grado di creare profili di temperatura anche complessi in

maniera rapida ed economica senza doversi appoggiare a software proprietari, sfruttando

solamente un semplice editor di testi.

4.9 Interfaccia Definitiva

L’ultimo passo affrontato è stato quello di realizzare un’interfaccia singola in grado sia di

leggere che scrivere. Grazie alle capacità sviluppate del software utilizzato, LabVIEW, è

possibile sincronizzare le due operazioni di fondamentale interesse senza dover gestire

contemporaneamente due VI separati. Questo è reso possibile grazie alla versatilità di

LabVIEW che permette di gestire più VI assieme e di utilizzare subVI in aiuto. Vedremo

qui di seguito come è strutturata questa interfaccia apparentemente complicata a prima

vista, ma di estrema facilità una volta capito il reale funzionamento di ciascun blocco e

subVI. Il VI a disposizione, vedi nella figura 4-22, è un mix fra il VI di lettura e di scrittura

precedentemente illustrati, inoltre si potrà capire come implementare un subVI in uno

schema a blocchi, ma soprattutto come e dove vanno collegate le linee per permettere il

passaggio dei dati.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

87

Fig.4-22Schema a Blocchi del Scrittura_test2.vi

Lo schema a blocchi di figura 4-22 può essere diviso in tre grandi sotto blocchi: il primo,

riquadro rosso, per la lettura, il secondo, riquadro verde, per la scrittura e il terzo, riquadro

viola, dedicato al profilo di temperatura interpolato ideale. Il blocco di lettura è lo stesso

visto nel capitolo 4.7 con l’aggiunta solo di un comando per resettare il setpoint una volta

finito il ciclo di riscaldamento del forno. Questo nuovo comando, vedi Fig. 4-23, è inserito

all’interno di una Case Structure, all’interno del ciclo while. Il reset del setpoint è una

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

88

funzione che si verifica solo se soddisfiamo la condizione della struttura ovvero che

premiamo il pulsante (Reset Setppoint); nel caso in cui, tale condizione, non fosse

verificata il forno in questione manterrebbe costante la sua temperatura di fine ciclo.

Fig.4-23 Comando di Reset Setpoint

L’interfaccia adotta una configurazione del blocco MODBUS in modalità di scrittura.

L’ingresso Setpoints lo settiamo a zero; questo perché una volta che il forno ha raggiunto

la sua massima temperatura di lavoro, quindi il ciclo è finito, posso decidere di portarlo

alla temperatura d’ambiente. Quindi premendo il pulsante di reset obbligo il forno ad un

raffreddamento che nel nostro caso è volontario e non forzato.

Il terzo blocco, quello evidenziato da un rettangolo di colore viola, ha il compito di leggere

un file di dati e di interpolarlo per creare il profilo di temperatura da passare al regolatore.

Questo blocco, visto anche nel capitolo 4.8, è utilizzato per mostrare all’utente il profilo

ideale di temperatura che passiamo al termoregolatore oltre a dargli tutte le informazioni

sui dati originali e interpolati del profilo. Da esso estraiamo anche tre controlli il metodo, il

passo di interpolazione e il percorso del file di input che passiamo poi al subVI di scrittura.

Ci rimane ora solo l’ultimo blocco, quello dedicato alla scrittura, che è il più interessante in

quanto si vede il rapporto tra questo VI e il VI VI_Scrittura_richiamo.vi, che compare qui

come un unico blocco sintetico, e quindi come un subVI, visto l’ordine di gerarchia, vedi

figura 4-24.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

89

Fig.4-24 Blocco di Scrittura

Il ciclo while implementato ha lo scopo di temporizzatore. All’interno del ciclo si può

notare a destra il subVI, dentro ad una Case Structure, e a sinistra la condizione necessaria

perché avvenga la scrittura. La Case Structure ha la funzione di far si che l’esecuzione del

programma avvenga solo se si è verificata una condizione di true. Quindi, perché ciò si

verifichi, la porta AND deve avere entrambi gli ingressi abilitati: il pulsante RUN portato

in posizione on e che la temperatura del forno sia inferiore alla temperatura di progetto

(Temp. Start). Quest’ultimo confronto è necessario per evitare di eseguire un profilo nel

caso in cui il forno non sia stato resettato o si trovi ad una temperatura di esercizio non

adeguata. Solo dopo aver verificato questi controlli è possibile eseguire il profilo caricato

dall’utente, vediamo qui di seguito le operazioni svolte dal subVI. Il subVI,

VI_Scrittura_richiamo.vi, ha quattro terminali che corrispondono esattamente al passo di

interpolazione, al metodo, al percorso del file di input e alla condizione di fine ciclo. I

primi tre terminali sono dei controlli, quindi degli ingressi, dove è l’utente che decide che

file fargli eseguire, che passo di interpolazione vuole e persino può scegliere il metodo fra

nearest, linear, spline, cubic Hermite e Langrange. Questo VI svolge la funzione descritta

nel capitolo 4.8 cioè passare al regolatore un profilo lineare di temperatura. Cliccando con

il destro nell’icona in alto a destra del pannello frontale del VI VI_Scrittura_richiamo.vi

selezioniamo la voce Show Connector, la quale mostra il riquadro connettori. Per assegnare

i connettori opportuni cliccare su una casellina del riquadro e poi il controllo o indicatore

presente nel front panel, vedi figura 4-25.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

90

Fig.4-25 Riquadro Connettori

La Fig. 4-25 mostra il pannello frontale del VI interessato e le operazioni da eseguire per

selezionare i connettori a noi più consoni per il progetto in uso. Per chiamare un VI dentro

un altro VI selezionare la voce Select a VI dalla Functions Palette.

Passiamo ora ad analizzare i relativi pannelli frontali dei VI dedicati alla lettura e scrittura,

in figura 4-26 c’è il front panel del subVI nel quale c’è solo un pulsante con scritto stop

emergenza. Una volta iniziata la fase di scrittura, quindi il regolatore riceve i dati

interpolati del profilo da eseguire, automaticamente si apre il pannello frontale del

VI_Scrittura_richiamo.vi. Il suo scopo è di interrompere il ciclo, una volta premuto il

pulsante, in caso di emergenza. Si può quindi dire che questo VI oltre a realizzare il profilo

interpolato garantisce una forma di sicurezza all’utente che sta controllando e monitorando

il suo funzionamento. Inoltre, sempre in figura 4-26, si può notare il riquadro connettori

realmente implementato nel VI d’interesse utilizzato nel progetto.

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

91

Fig.4-26 Front Panel del VI_Scrittura_richiamo

In figura 4-27 invece c’è il pannello frontale del VI VI_Scrittura_test2. La parte dedicata

alla lettura della temperatura effettiva e del setpoint con i relativi controlli e indicatori per

il salvataggio del file sono gli stessi utilizzati nel programma di lettura Read PV-SP, si può

notare solo un pulsante nuovo vicino all’indicatore del valore di riferimento che è il

pulsante per il reset del setpoint. Il quale, se premuto, permette al forno un raffreddamento

volontario; di solito viene azionato una volta terminato il processo di riscaldamento. La

parte sottostante invece rappresenta l’interfaccia che l’utente utilizza per settare a suo

piacimento il regolatore: infatti può scegliere che profilo fargli eseguire caricandolo con la

Path, il passo di interpolazione desiderato, il metodo con cui interpolare i dati e la

temperatura di inizio scrittura. Il tutto è previsto di un display che mostra il profilo ideale

caricato. A destra di esso ci sono due indicatori che ci mostrano i dati originali e quelli

interpolati. Portato in posizione on il pulsante di RUN ha inizio la scrittura solo se la

temperatura effettiva del forno è inferiore a quella di riferimento impostata (Temp. Start).

Quindi si potrà apprezzare nel display “in alto” il verificarsi dell’effettivo profilo di

temperatura settato al regolatore

Capitolo 4

Interfaccia LabVIEW per Eurotherm 2216e

92

Fig.4-27 Front Panel del Scrittura_test2

Questo VI ha solo un piccolo handicap che tutti e due i display non sono visibili in unica

schermata a meno che non si voglia ridurne le dimensioni, cosa da evitare, infatti labVIEW

offre un’interfaccia grafica eccellente e sarebbe uno spreco se non sfruttata alle sue

massime potenzialità. Quindi sarà difficile visualizzare su schermo che la variabile di

processo varierà secondo il profilo interpolato.

Capitolo 5

Il Controllo di Temperatura

93

Capitolo 5

Il Controllo di Temperatura

5.1 Obiettivi del Controllo

In questa ultima parte della tesi si desidera verificare realmente se la soluzione creata è

efficiente e se rispetta le aspettative. L’idea è quella di simulare il controllo di temperatura

comandato in corrente, che il pacchetto regolatore/LabVIEW dovrebbero eseguire in

sostituzione al PLC nel progetto dell’organizzazione INFN. Nel progetto attuale del forno

elettrico ad alte temperature il PLC misura la temperatura della camera riscaldata tramite

una o più termocoppie e dal valore percepito, genera un segnale in tensione, che pilota un

alimentatore, il quale alla fine produce un determinato segnale di corrente in funzione della

temperatura misurata. La simulazione vuole proprio emulare questo funzionamento in

modo da verificare a pieno le funzionalità della soluzione proposta con questo lavoro.

5.2 Preparazione del Circuito di Controllo

Come già evidenziato nell’introduzione, le strumentazioni attuali del forno sono molto

costose e anche lo stesso alimentatore lo è. Esso deve essere uno strumento in grado di

erogare una corrente costante di almeno 1200A, comandabile da un segnale esterno, in

modo da soddisfare le specifiche del progetto. L’alimentatore in uso è un ESS Series

Power Supply 10KW ESS 10-1000 prodotto dalla TDK-Lambda di 50Kg, che riesce ad

Capitolo 5

Il Controllo di Temperatura

94

erogare correnti fino ai 1000A stabili ed è visibile in figura 5-1. Esso fornisce in uscita

correnti molto elevate e tensioni fino ai 10V, in funzione di segnali in ingresso di corrente

(tra 0-1mA) e tensione (tra 0-5V o tra 0-10V) .

Fig. 5-1 L’alimentatore ESS Series 10KW-15KW TDK-Lambda

Il pannello posteriore dell'alimentatore presenta i connettori necessari per l'alimentazione

dello stesso (AC Input-380V), l'uscita verso il carico (Output Terminals) e la

comunicazione con i dispositivi per il controllo (Programming Connectors, vedi Fig.5-2).

Fig.5-2 Pannello Posteriore dell'Alimentatore

Capitolo 5

Il Controllo di Temperatura

95

Il connettore femmina J1 a 25pin (vedi Fig.5-2) è utilizzato per configurare il modo di

utilizzo dell'alimentatore. In base alla configurazione del connettore J1 è possibile

comandare l'alimentatore attraverso una tensione esterna, una corrente esterna oppure una

resistenza variabile. Nel modo di utilizzo normale l'alimentatore è comandato dai

potenziometri presenti sul pannello frontale e con questa impostazione viene venduto di

fabbrica. Noi invece utilizzeremo l'alimentatore in controllo di tensione e perciò si deve

impostare la configurazione del connettore J1 a tale modalità (vedi Fig.5-3).

Fig.5-3 Voltage Configuration Mode J1

Insieme all’alimentatore adatto, per svolgere la simulazione del controllo, si è dotato il

progetto di una termoresistenza da 5,6ohm, che verrà scaldata dalla corrente prodotta

dall’alimentatore e la sua temperatura verrà misurata dalla termocoppia in ingresso al

termoregolatore 2216e.

5.3 Il Circuito di Controllo

Descritti tutti gli strumenti necessari per la simulazione si vuole ora presentare il principio

di funzionamento del circuito con il quale andremo a fare i test per la regolazione della

temperatura. Esso si forma principalmente di cinque blocchi interagenti fra loro che sono:

1. l’insieme termoresistenza-termocoppia;

2. il termoregolatore 2216e;

3. il PC dotato di LabVIEW;

4. il convertitore I/V;

Capitolo 5

Il Controllo di Temperatura

96

5. l’alimentatore TDK-Lambda ESS 10-1000.

La termocoppia, posta a contatto con la termoresistenza, misura la temperatura della stessa

e fornisce tale dato al termoregolatore 2216e, il quale produce due diverse uscite. La prima

è la trasmissione dei dati verso la linea di trasmissione, descritta nel capitolo 2, che arriva

sino al computer remoto, dove attraverso il software di lettura siamo in grado di monitorare

il processo per mezzo dell’interfaccia presentata nel capitolo 4. La seconda, invece, è

l’uscita di riscaldamento, configurata nel capitolo 1.6, che fornisce in uscita una corrente

tra i 0mA e i 20mA. Questa corrente, entra poi nel blocco di conversione I/V, costituito da

due resistenze da 1Kohm in parallelo, che formano una resistenza equivalente di 500ohm.

Questo valore di resistenza è stato precedentemente calcolato in modo da ottenere, con le

specifiche dell’alimentatore ESS10-1000, una potenza sufficiente a scaldare la

termoresistenza. Tale alimentatore infatti, accetta come ingresso di comando in tensione un

segnale tra gli 0-10V, che si ottengono nel caso di corrente massima in uscita dal

termoregolatore, cioè in fronte ad una corrente di 20mA che scorre sulla resistenza di

500ohm. Nel caso di corrente minima, al contrario, si ha una tensione di 0V in uscita dal

convertitore I/V. Infine la tensione prodotta da tale alimentatore verrà posta ai capi della

termoresistenza che si scalderà in funzione della corrente che vi scorre. La potenza che

essa deve dissipare nel caso di tensione massima, 10V e di corrente anch’essa massima

pari a 1,78A, è di 56W, sufficiente a scaldarla in modo efficace per eseguire il controllo.

Uno schema di principio del circuito di controllo è raffigurato in figura 5-4.

Fig. 5-4 Schema di principio del circuito di controllo

Capitolo 5

Il Controllo di Temperatura

97

5.4 La Procedura di Autotuning del Regolatore 2216e

Ora che finalmente si possono sfruttare a pieno le funzionalità del regolatore, si desidera

effettuare la procedura di autotuning descritta nel capitolo 1.5.1. Contando che la

temperatura ambiente durante i test è di circa 25°C si decide di impostare un setpoint di

riferimento per la sequenza di autotuning fisso a 50°C, in modo da vedere bene

l’andamento della temperatura sulla resistenza durante i cicli automatici di autotuning.

Prima di lanciare il tuning automatico sul termoregolatore predisponiamo il software di

lettura in modo da salvare i dati relativi alla temperatura e al setpoint in un file di output

che servirà in seguito per una rappresentazione grafica qualitativa (Fig.5-5). Il

termoregolatore effettua un primo ciclo di autotuning nel quale calcola i parametri del

regolatore PID, superando, durante la procedura, anche la temperatura di riferimento a

causa dell’overshoot citato nel cap.1.5.1. Successivamente la temperatura viene fatta

ridiscendere per effettuare poi un secondo ciclo per il calcolo più preciso dei parametri

PID. Alla fine dei 2 cicli di tuning la procedura termina e il termoregolatore inizierà a

controllare realmente la temperatura, utilizzando i parametri appena calcolati, portando la

resistenza alla temperatura di setpoint impostata e mantenendola costante su quel valore.

Fig.5-5 L’operazione di autotuning

Capitolo 5

Il Controllo di Temperatura

98

5.5 Risposta ad un Gradino di Riferimento

Di seguito viene riportato il risultato di una prova di regolazione avvenuta dopo aver

eseguito il tuning automatico, che per gli scopi prefissati è risultato molto efficiente. Il

grafico descrive il classico andamento ad inseguimento del valore di riferimento a gradino,

da parte della variabile di processo, che in questo caso è la temperatura della

termoresistenza. Il ciclo di regolazione è partito da un valore di 26°C, aumentando

rapidamente verso il valore di riferimento impostato di 80°C. L’efficienza dell’autotuning

si nota dal fatto che l’andamento della temperatura evidenzia alcune caratteristiche

importanti:

• la temperatura non supera mai il valore di riferimento;

• nelle vicinanze del valore di setpoint, la velocità di aumento della temperatura

diminuisce in modo da non creare oscillazioni o superamenti del setpoint

(scalini del grafico molto lunghi e poco pendenti).

Fig. 5-6 Gradino di Riferimento

Capitolo 5

Il Controllo di Temperatura

99

5.6 Profilo di Temperatura Personalizzato

Ora che si è verificato il corretto funzionamento del regolatore sulla variabile di processo si

vuole testare la sua capacità di gestire un riferimento di temperatura non più a gradino e

quindi costante nel tempo bensì variabile secondo un profilo scelto ed impostato in un

opportuno file di input. La resistenza utilizzata è stata testata sperimentalmente fino alla

temperatura massima di 130°C, evitando di spingersi oltre per motivi di sicurezza ma con

margini sicuramente superiori. Si è scelto quindi un profilo composto sostanzialmente da

due step di temperatura, un primo a 60°C ed un secondo a 120°C. Raggiunto il primo

riferimento di 60°C si è fatto in modo che la temperatura aumentasse costantemente fino a

circa 65°C per poi ripartire rapidamente verso il secondo step e di conseguenza mantenere

costante la variabile di processo su quel valore (Fig.5-7).

Fig.5-7 Profilo Ideale di Temperatura

Dal grafico si possono vedere sia i punti effettivamente inseriti nel file di input (colore

verde) sia l’andamento interpolato di essi che viene realmente passato al termoregolatore

(colore viola). In questo modo il riferimento non varia a gradino ma segue un andamento

lineare pensato proprio per un comando più adatto per il controllo di un forno ad alte

Capitolo 5

Il Controllo di Temperatura

100

temperature. In Fig.5-8 invece si può vedere il reale andamento della temperatura prelevata

direttamente sulla resistenza. Confrontando i due grafici è facile notare il corretto

funzionamento del controllore che permette al carico di seguire in maniera efficace il

profilo di temperatura impostato. Va fatto notare un leggero ritardo tra riferimento passato

al regolatore e la temperatura effettiva sulla resistenza, dovuto alla costante termica del

carico e di conseguenza alla sua inerzia termica che impedisce variazioni istantanee della

temperatura sia in fase di riscaldamento che di raffreddamento.

Fig.5-8 Profilo Reale di Temperatura

101

CONCLUSIONI

Il presente lavoro dimostra che il sistema realizzato, in grado di monitorare e di controllare

la temperatura di forni elettrici ad alte temperature, esegue un controllo molto preciso e

affidabile nei range di lavoro della temperatura che si sono utilizzati all’interno della

simulazione. Inoltre si è dimostrato che il termoregolatore Eurotherm 2216e, insieme

all’interfaccia LabVIEW proposta, risulta una valida alternativa al costoso sistema a PLC

attualmente in opera nel progetto di tali forni. Questa combinazione hardware e software

quindi, ha la capacità di poter liberare il PLC dal monitoraggio e dal controllo di

temperatura rendendolo così maggiormente disponibile per altre operazioni più complesse,

che ne giustifichino gli alti costi. Infatti l’interfaccia realizzata permette di gestire sia il

controllo della temperatura effettivamente letta istante per istante e sia di comandare il

riscaldamento del forno con un profilo lineare a piacimento, propone così una soluzione

ottima e vantaggiosa per l’utente. Inoltre si è visto come è possibile utilizzare più

regolatori in parallelo, un sviluppo futuro potrebbe essere quello di utilizzare il secondo

regolatore, che sarebbe di sicurezza all’utente, per controlli di temperatura sulla linea cioè

verificare che non ci siano malfunzionamenti durante il processo. Altri successivi sviluppi

futuri di questo progetto possono comprendere il test vero e proprio di questo sistema di

controllo sui forni in questione, in modo da verificarne l’attendibilità direttamente sul

campo, con il range di temperature normalmente utilizzate e con la strumentistica

realmente in uso, come l’alimentatore della TDK-Lambda. Queste possibili innovazioni al

progetto non sono state implementate, ma il lavoro è stato svolto con mezzi che possano

prevedere queste eventualità proprio con lo scopo di poter successivamente arricchire ed

potenziare questo sistema di monitoraggio e di controllo della temperatura.

102

BIBLIOGRAFIA

1. 2000 Series MODBUS and EI-BISYNCH Digital Communications Handbook

(http://www.eurotherm.at/PDF/2kcomms.pdf), 31 Gennaio 2010

2. Manuale di Installazione Uso e Configurazione del Regolatore 2216e

(http://www.eurotherm.it/products/controllers/single-loop/2200/), 31 Gennaio 2010

3. Libreria MODBUS National Instruments

(http://zone.ni.com/devzone/cda/epd/p/id/4756), 31 Gennaio 2010

4. Guida del Protocollo MODBUS Prof.Romanell ISTI – Università di Urbino

(http://www.sti.uniurb.it/romanell/091123-Lez08a-ModBus-

DomoticaEdEdificiIntelligenti-Romanelli.pdf), 31 Gennaio 2010

5. Robert H. Bishop The University of Texas at Austin, 2006, Learning With

Labview 8™,

Pearson Prentice Hall, Upper Saddle River, NJ 07458