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