Software LabVIEW per Termoregolatore Eurotherm 2216e

Transcript

Software LabVIEW per Termoregolatore Eurotherm 2216e
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
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.
1
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
2
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
3
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
4
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
5
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 autodeterminare 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.
6
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.
7
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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).
8
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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
9
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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
10
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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.
11
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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.
12
Capitolo 1
Il Termoregolatore Eurotherm 2216e
Fig.1-5 Il codice hardware
13
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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
14
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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 17.
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.
15
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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
16
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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 19, 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
17
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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.
18
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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.
19
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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”.
20
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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
21
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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
22
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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.
23
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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
24
Capitolo 1
Il Termoregolatore Eurotherm 2216e
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.
25
Capitolo 2
La Linea di Trasmissione
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
26
Capitolo 2
La Linea di Trasmissione
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
27
Capitolo 2
La Linea di Trasmissione
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
28
Capitolo 2
La Linea di Trasmissione
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
29
Capitolo 2
La Linea di Trasmissione
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.
30
Capitolo 2
La Linea di Trasmissione
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
31
Capitolo 2
La Linea di Trasmissione
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
32
Capitolo 2
La Linea di Trasmissione
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
33
Capitolo 2
La Linea di Trasmissione
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 I7520 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.
34
Capitolo 2
La Linea di Trasmissione
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
35
Capitolo 2
La Linea di Trasmissione
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.
36
Capitolo 3
Il Protocollo MODBUS
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).
37
Capitolo 3
Il Protocollo MODBUS
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à
38
Capitolo 3
Il Protocollo MODBUS
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
39
Capitolo 3
Il Protocollo MODBUS
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),
40
Capitolo 3
Il Protocollo MODBUS
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
41
Capitolo 3
Il Protocollo MODBUS
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
42
Capitolo 3
Il Protocollo MODBUS
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
43
Capitolo 3
Il Protocollo MODBUS
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
44
Capitolo 3
Il Protocollo MODBUS
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
45
Capitolo 3
Il Protocollo MODBUS
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
46
Capitolo 3
Il Protocollo MODBUS
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.
47
Capitolo 3
Il Protocollo MODBUS
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
48
Capitolo 3
Il Protocollo MODBUS
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
49
Capitolo 3
Il Protocollo MODBUS
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”.
50
Capitolo 3
Il Protocollo MODBUS
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
51
Capitolo 3
Il Protocollo MODBUS
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.
52
Capitolo 3
Il Protocollo MODBUS
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:
53
Capitolo 3
Il Protocollo MODBUS
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.
54
Capitolo 3
Il Protocollo MODBUS
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.
55
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
56
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
57
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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:
58
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
• 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
59
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
60
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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 ingressouscita 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
61
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
62
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
63
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
64
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
65
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
66
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
Fig.4-8 La Controls Palette e la Functions Palette
Fig.4-9 La barra degli strumenti
67
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
68
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
69
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
70
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
71
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
72
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
73
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
74
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
75
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
76
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
77
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
78
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
79
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
80
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
81
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
82
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
83
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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).
84
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
85
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
86
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
87
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
88
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
89
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
90
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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
91
Capitolo 4
Interfaccia LabVIEW per Eurotherm 2216e
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.
92
Capitolo 5
Il Controllo di Temperatura
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
93
Capitolo 5
Il Controllo di Temperatura
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
94
Capitolo 5
Il Controllo di Temperatura
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;
95
Capitolo 5
Il Controllo di Temperatura
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
96
Capitolo 5
Il Controllo di Temperatura
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
97
Capitolo 5
Il Controllo di Temperatura
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
98
Capitolo 5
Il Controllo di Temperatura
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
99
Capitolo 5
Il Controllo di Temperatura
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
100
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.
101
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-ModBusDomoticaEdEdificiIntelligenti-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
102