Strumentazione virtuale

Anatomia di uno strumento digitale

Gli strumenti moderni, sono in gran parte basati su uno schema ricorrente in cui si distinguono le seguenti parti principali:
  • Circuito di condizionamento del segnale. E' costituito da un amplificatore con ingresso single ended o differnenziale.
  • Convertiore A/D. Campiona periodicamente il segnale in ingresso e lo converte in un insieme di bit.
  • Processore. Un sistema basato su microprocessore in grado di memorizzare i campioni, elaborarli e presentare il risultato della misura.
  • Software. Un programma di gestione dei dati.
  • A parte forse il circuito di condizionamento, che può richiedere in taluni casi un progetto ad hoc, ed il software che dovrà rispecchiare le esigenze dell' utilizzatore, le altre parti del sistema possono essere standardizzate.

    In effetti nella maggior parte dei casi non ha senso riprogettare l' intero sistema di misura, ma è sufficiente selezionare alcuni moduli commerciali per realizzare le funzioni necessarie, assemblarli e scrivere del codice per realizzare la funzionalità richiesta.

    Questo è quindi l' approccio seguito in molti casi. Il mercato ha risposto a questa tendenza (che si traduce in una richiesta di prodotti) ampliando i cataloghi dedicati alla strumentazione modulare e raffinando i linguaggi di programmazione specializzati (LabVIEW, VEE ecc.) e non ( visual C++, visual basic ecc.).

    Ad oggi il panorama offerto dal mercato permette di coprire la maggior parte i esigenze di misura "standard" e, in alcuni casi, anche quelle speciali e di settore, come la visione, l' analisi armonica e degli ordini, il collaudo automatico e le misure RF, tanto per citarne solo alcuni.

    Dal punto di vista delle prestazioni esistono diversi approcci alla strumentazione modulare, che permettono di ottenere prestazioni diverse (e costi diversi) a seconda delle esigenze.

    Una possibile classificazione in ordine crescente di prestazioni (e costi) è la seguente:
  • Schede di acquisizione ISA/PCI per PC e software di sviluppo
  • Queste schede vanno montate all' interno di un PC cui viene richiesta la disponibilità di slot ISA e/o PCI. Sono schede generalmente di fascia medio-bassa di tipo generale. Lo strumento virtuale viene sviluppato mediante un ambiente di programmazione in grado di accedere alle risorse hardware ed elaborare i dati da esse provenienti. Generalmente la piattaforma usata è LabVIEW della National Instruments, anche se sono possibili vie alternative come il VEE della Agilent o l' impiego di Matlab.

    La popolarità di LabVIEW è giustificata fra l' altro dalla relativa indipendenza dallo strumento virtuale sviluppato dalla piattaforma impiegata. LabVIEW può infatti girare sia su macchine con sistemi operativi Microsoft ma anche su Mac, macchine Linux e Solaris. La portabilità è quindi notevole.

  • Schede di acquisizione PCMCIA ed esterne
  • In questo caso le schede sono orientate ad hardware di calcolo più specifici come il notebook o i computer palmari. Generalmente le prestazioni sono leggermente ridotte rispetto all' analogo PCI o ISA a vantaggio della compattezza del modulo e quindi dello strumento finale. Questo tipo di scelta è motivata da esigenze particolari come la necessità di eseguire misure sul campo o di sviluppare uno strumento portatile o indossabile.

  • Moduli VXI e PXI
  • Questi moduli sono pensati per essere alloggiati in appositi "cestelli", ovvero frame con diversi cassetti che possono alloggiare i moduli. L'unità di calcolo è pure realizzata in uno speciale modulo alloggiato nel cassetto (slot). Questi sistemi permettono di elevare le prestazioni del sistema di misura in quanto sono progettati per ottimizzare l' ambiente interno allo strumento ed in particolare il rapporto segnale/rumore, l'omogeneità dei percorsi dei segnali ed il sincronismo Delle acquisizioni . Il costo di questi sistemi è evidentemente elevato e giustificato solo da scelte progettuali particolari come per esempio l' alloggiamento in mezzi di trasporto (locomotrici) , macchine utensili, applicazioni di tipo militare,.

  • Moduli distribuiti
  • Recentemente sono comparsi sul mercato diversi elementi per la realizzazione di strumenti virtuali "distribuiti sul territorio",, ovvero non necessariamente all'interno dello stesso ambiente fisico di misura. Questo approccio è molto innovativo: l' hardware di misura non è infatti alloggiato in un singolo chassis e collegato ai punti di misura mediante cavi di collegamento, ma frammentato in diversi moduli disposti in prossimità dei punti di misura e collegati fra loro e a un calcolatore (che funge da controller) mediante rete o bus industriale. In questo modo si estende notevolmente il concetto di strumento virtuale rendendo possibile distribuire lo strumento sul territorio senza limitazioni se non quella della connettività. Considerato il notevole incremento della banda dei collegamenti wireless è quindi possibile pensare a sistemi di misura collocati in parte su unità mobili (autoveicoli, persone ecc.).

    Elementi chiave di uno strumento virtuale (Virtual Instuments - VI)

    Come già detto, gli elementi chiave di uno strumento virtuale sono l' hardware di misura ed il software di sviluppo.

    E' dall'insieme di questi due elementi che è possibile la costruzione dello strumento virtuale ed è quindi essenziale che l' integrazione fra questi due elementi sia ottimizzata.

    In particolare parametri di merito per la scelta dell' hardware sono :

  • numero di I/O analogici, numero di bit del convertitore, sample rate
  • numero di I/O digitali
  • eventuali canali accessori (contatori, trigger analogici, ecc.)
  • flessibilità
  • velocità di trasferimento dei campioni
  • Per quanto riguarda il software vengono considerati invece:
  • Facilità di apprendimento e sviluppo del software
  • Tools di debugging
  • Librerie
  • Velocità di esecuzione
  • Portabilità
  • Possibilità di esecuzione in real time
  • Per una integrazione ottimale fra HW e SW è inoltre necessario disporre delle driver degli elementi HW, di eventuali tools di configurazione e di librerie di istruzioni per il loro controllo e trasferimento dei dati.

    Il progetto di un sistema di misura basato su strumentazione virtuale si fonda oltre che su una oculata scelta delle parti anche su un armonico bilanciamento fra gli elementi. In particolare, è necessario scegliere oculatamente quali elementi realizzare in hardware per il condizionamento del segnale e quali elaborazioni eseguire poi sui dati per ottenere la misura voluta.

    Per esempio, se il livello del segnale di ingresso è molto basso è opportuno amplificarlo a monte del convertitore per poterne sfruttare al meglio la dinamica e poi eseguire dei filtraggi numerici sui campioni per eliminare le componenti indesiderate quale per esempio i disturbi di rete.

    La scelta delle caratteristiche dei moduli di acquisizione dipende dalle caratteristiche dei segnali da acquisire. In particolare valgono le seguenti associazioni:
  • Accuratezza /Numero di bit
  • Banda passante /Sampling rate
  • Numero di segnali /Numero di canali
  • Velocità trasferimento dati /Tipo di Bus
  • Esempio

    In figura è rappresentato lo schema di collegamento fra un sensore di deformazione (strain gauge) ed un sistema di acquisizione basato su strumentazione virtuale. Scopo del sistema è rilevare la deformazione di un oggetto in funzione del tempo, fare la FFT del segnale acquisito, visualizzare e memorizzare i dati. Inoltre il segnale acquisito dovrà essere filtrato per eliminare i disturbi di rete (50 Hz e suoi multipli).

    Le caratteristiche del sensore sono le seguenti:
  • sensibilità : 0.5mV/g
  • portata : 100 g
  • Risulta allora chiaro che se collegassimo direttamente il sensore all' ingresso di una scheda di acquisizione a 12 bit con dinamica ±10V, l' errore di quantizzazione commesso nella misura del massimo peso ammissibile (condizione più favorevole) sarebbe del 10%.

    quindi necessario inserire un amplificatore di misura di guadagno adeguato fra l' uscita del sensore e l' ingresso del campionatore.

    Un secondo aspetto importante da considerare è la non idealità del sensore ed in particolare il fatto che l' uscita del sensore presenta un certo offset. Questo può essere compensato misurandolo in assenza di carico e generando un livello di compensazione per l' amplificatore del circuito di condizionamento.

    La scheda di acquisizione deve quindi essere dotata anche di uscite analogiche programmabili.

    Nella figura è rappresentato lo schema a blocchi di una tipica scheda di acquisizione definita "multifunction" ovvero in grado di offrire diverse risorse fra la più comuni. In particolare notiamo la presenza di diversi canali di ingresso, di due canali di uscita analogici, di un gruppo di uscite digitali e di canali ausiliari, come per esempio quello di trigger.

    Da notare innanzitutto che i canali di ingresso analogici (tipicamente 16) sono collegati all' unico ADC mediante un multiplexer analogico. Questo significa che l' acquisizione di due canali non è mai perfettamente simultanea. L'acquisizione può essere sincronizzata con un evento che si presenta su un canale digitale, su uno degli analogici oppure su un ingresso ausiliario di trigger. E' possibile in quest' ultimo caso scegliere il livello di soglia programmando opportunamente la scheda.

    Per quanto riguarda le uscite analogiche, i DAC in questo caso sono separati e dotati di una FIFO, ovvero una memoria a lettura sequenziale dove è possibile memorizzare i dati per la generazione continua di forme d' onda senza la necessità di fornire alla scheda in continuazione e in tempo reale i dati necessari a questa operazione.

    Infine è da notare la presenza di numerosi generatori di riferimento sfruttati sia in fase di misura che di autocalibrazione.

    Sulla scheda sono presenti circuiti di interfacciamento con il bus PCI per il trasferimento dei dati da e verso il sistema di calcolo.

    Ed è proprio il bus del sistema di calcolo a costituire uno dei maggiori colli di bottiglia dei sistemi basati su strumentazione virtuale.

    Se infatti sarebbe possibile l' impiego sulle schede DAQ di campionatori ad alta velocità (i campionatori usati negli oscilloscopi digitali possono avere frequenze di campionamento di decine di GSample/sec), non sarebbe però possible poi trasferire in tempo reale i campioni verso il sistema di calcolo principalmente a causa della limitata banda del bus di interfaccia.

    Una situazione lievemente migliore si ha nel caso di cestelli VXI o PXI (che si basano su una estensione del bus PCI) ma la banda rimane comunque limitata. Nel caso sia necessario elaborare segnali di banda più estesa è necessario prevedere che parte dell' elaborazione del segnale avvenga direttamente sulla scheda e sia quindi trasferito sul bus solo il risultato dell' elaborazione (hardware)

    Strumenti modulari

    In questa ottica va quindi vista l' introduzione sul mercato di moduli PXI per specifiche misure in campo RF il cui costo viene giustificato proprio dalla complicazione hardware imposta per poter effetturare misure ad alta frequenza appoggiandosi al bus PXI.

    Nell' esempio di figura è mostrato lo schema a blocchi di uno strumento modulare per misure RF fino a 2.7 GHz. La struttura dello strumento è simile a quella di un analizzatore di spettro: attenuatore, downconveter, campionatore del segnale IF.

    Una volta campionato il segnale IF, lo strumento fornisce sul bus i dati di questo segnale a (relativa) bassa frequenza che vengono elaborati da un opportuno software.

    Questo tipo di approccio è però abbastanza rigido ed in particolare, trattandosi di moduli specializzati in un tipo specifico di misura, tradisce un pò il concetto che è alla base stesso di strumentazione virtuale.

    Si tratta di moduli molto specifici per risolvere situazioni di misura altrimenti non affrontabili.

    Dal SW all HW: FPGA

    Un secondo approccio, molto più elegante e soprattutto in linea con la filosofia di strumento virtuale è rappresentato dai moduli hardware programmabili. Questi elementi contengono componenti di tipo FPGA (Field Programmable Gate Array) che possono essere configurati per eseguire una determinata funzione definita da un modello software. Una volta simulato e verificato tale modello, l' FPGA viene programmato in modo da realizzare tale funzione.

    I vantaggi di questo approccio sono notevolissimi. In particolare:
  • è possibile eseguire ad alta velocità operazioni sui segnali acquisiti e trasferire sul bus solo il risultato
  • l' hardware può essere configurato a piacimento ed è quindi di tipo general purpose.
  • le acquisizioni sono simultanee ed intrinsecamente real time.
  • Esempio: caratterizzazione di un flussimetro

    Un esempio che ben si presta alla descrizione dei passi di progetto di uno strumento virtuale è rappresentato dal sistema illustrato in figura.

    Il problema è la realizzazione di un banco di prova per la caratterizzazione di un flussimetro per confronto con un analogo strumento preso come riferimento. I due flussimetri sono di tipo diverso e diverso è il segnale alla loro uscita. In particolare l' uscita del flussimetro di riferimento è una tensione proporzionale alla portata del liquido nel condotto, mentre quello in prova fornisce in uscita un segnale digitale di periodo proporzionale alla portata.

    La caratterizzazione deve essere effettuata misurando le uscite dei due strumenti in per diversi valori di portata e di pressione nel condotto. Per variare la portata è necessario agire sul controller del motore della pompa. Il controller accetta al suo ingresso una tensione variando la quale è possibile variare il numero d giri del motore della pompa. Per variare la pressione nei condotti si agisce sulla valvola proporzionale. Per aumentare la pressione si chiude la valvola cambiando la tensione di controllo in ingresso al servomeccanismo del suo azionamento. La pressione a monte del flussimetro di riferimento ed a valle di quello in prova sono misurate medianti due manometri elettronici con uscita in tensione.

    La sequenza di operazioni per la corretta caratterizzazione del flussimetro prevede la definizione da parte dell' operatore di un elenco di successive situazioni di test, individuate da una coppia di valori portata e pressione, che devono essere raggiunte stabilmente a meno di un certo scarto ed in corrispondenza delle quali vanno campionati i segnali di portata e quelli di pressione. Il test si conclude quando sono state applicate tutte le coppie previste. L' algoritmo di misura prevede quindi i seguenti blocchi:

  • Inizializzazione: il sistema viene portato su una condizione di partenza nota, ovvero pompa ferma e valvola proporzionale aperta.
  • Raggiungimento della portata di test: la tensione di controllo della pompa viene via via modificata fino a raggiungere la portata richiesta a meno di uno scarto prefissato di ±2%.
  • Raggiungimento della pressione di test: a questo punto si regola l'apertura della valvola proporzionale in modo da raggiungere la pressione richiesta a monte del flussimetro di riferimento. Per semplicità, ipotizziamo che la portata della pompa non dipenda (entro i limiti di interesse) dalla pressione nelle condutture a valle. la pressione richiesta deve essere raggiunta con uno scarto massimo di ±2%.
  • Misura dei valori di portata e pressione : una volata stabilizzata a meno di uno scarto prefissato la pressione vengono letti i valori di flusso e di portata forniti dagli strumenti. Il ciclo viene ripetuto per ogni coppia portata-pressione richiesta.
  • Vengono infine salvati su disco i dati delle misure.

    Esaminiamo ora i segnali elettrici necessari per controllare e osservare il sistema. In particolare per i segnali analogici il range di variazione e la larghezza di banda, per i segnali digitali i livelli e la frequenza massima.

    Nel caso del nostro esempio individuiamo i seguenti segnali:
  • VP : segnale in tensione di controllo della velocità della pompa
  • VFR : segnale in tensione di uscita dal flussimetro di riferimento
  • fFT : segnale digitale in uscita dal flussimetro sotto test. Duty cycle 50%.
  • VVP : Segnale in tensione di controllo della valvola proporzionale
  • VP1 e VP2 : segnali in tensione di uscita dai manometri.
  • Dall' esame dei componenti del sistema le specifiche sui segnali sono le seguenti:
  • 1 KHz 0 ÷ 10 l/min TTL 0 ÷ 1 KHz D fFT
  • 10 Hz 0% ÷ 100% 0 ÷ 10V A VVP
  • 10 Hz 0 ÷ 2 bar 0 ÷ 10V A VP1 e VP2
  • 10 Hz 0 ÷ 20 l/min 0 ÷ 5V A VFR
  • 10 Hz 0 ÷ 14 l/min 0 ÷ 10V A VP
  • Banda o fmax Range Range segnale Tipo Segnale

    Considerati i segnali coinvolti nella misura, valutiamo ora la possibilità di utilizzare una scheda i acquisizione PCI montata su un PC per lo sviluppo di uno strumento virtuale in grado di assolvere a tutte le funzioni richieste dal banco di misura.

    Data la varietà di segnali ci orientiamo verso una scheda mutifunction, in grado di analizzare e generare segnali analogici e digitali.

    Consideriamo per esempio la DAQ card 6024E della National Instruments.

    Questa scheda ha le seguenti caratteristiche:
  • numero di ingressi analogici : 16single ended o 8 differenziali
  • range massimo per i segnali di ingresso analogici 10V
  • numero di bit dell' ADC : 12 (4096 livelli)
  • numero di uscite analogiche : 2
  • range dei segnali di uscita analogici : 10V
  • numero di bit dei DAC : 12
  • I/O digitali : 16 con livelli TTL
  • contatori : 2
  • Frequenza massima di campionamento : 200 Ksample/s
  • FIFO sui canali di uscita analogici : non presente
  • canale di trigger analogico : assente
  • Verifichiamo ora la correttezza della scelta di questa scheda in rapporto alle specifiche del progetto.

    Segnali analogici collegati agli ingressi della scheda.

    Il progetto richiede il campionamento di quattro segnali analogici lentamente variabili nel tempo. La frequenza massima di campionamento è quindi sicuramente più che sufficiente. Anche per quanto riguarda il range dei segnali di ingresso, sicuramente gli ingressi della scheda hanno caratteristiche compatibili con quelle dei segnali da analizzare.

    Per quanto riguarda il numero di bit cerchiamo di valutare qual'è la massima risoluzione richiesta dalla misura. Le specifiche richiedono che prima della misura dell' uscita del flussimetro sotto test la portata e la pressione siano stabilizzate entro ± 2% del valore nominale. il che vuol dire che se ipotizziamo di impiegare un controllo PID la misura del segnale in tensione in uscita dal flussimetro di riferimento e dai manometri deve avere risoluzione di almeno 1 % del valore nominale.

    Il caso peggiore è evidentemente quello delle pressioni e portate minime. in questo caso si ha:

    Segnali analogici in uscita dalla scheda.

    I due canali di uscita analogici sono sufficienti per pilotare la valvola proporzionale e la pompa.

    Anche in questo caso con considerazioni analoghe alle precedenti si può dimostrare che la scheda è adatta al pilotaggio di questi due elementi. Per la pompa risulta infatti:

    Dato che la risoluzione del DAC converter è 20V/4096 = 4.88mV, rientriamo nelle specifiche richieste.

    Per quanto riguarda il controllo valvola la cosa è più complicata in quanto la pressione prodotta dalla strozzatura del condotto dipende dalla portata del fluido. Prove sperimentali hanno però evidenziato che le pressioni richieste si possono ottenere all' interno del range 30%±75% di chiusura della valvola. Il caso peggiore risulta quindi:

    entro le specifiche.

    Segnali digitali.

    L'unico segnale digitale da analizzare risulta quello in uscita dal flussimetro sotto test.

    Questo segnale ha una frequenza che nel range di interesse può variare da 0Hz a 1KHz. Scegliamo di collegare questo segnale ad uno speciale ingresso della scheda di acquisizione detto contatore. Il circuito di misura collegato a questo terminale permette di misure direttamente la durata del periodo del segnale di ingresso come multiplo del periodo del clock interno alla scheda di acquisizione che è di 20 MHz.

    Questi dati ci permettono di calcolare la risoluzione nella misura della frequenza che nel caso peggiore (1 KHz) risulta pari a che consideriamo più che accettabile. Data l' estrema precisione che questa misura ci consente, decidiamo di ripeterla ad intervalli regolari per valutare anche la stabilità del flussimetro.

    Sulla base dell' hardware scelto strutturiamo ora lo strumento virtuale. Per prima cosa organizziamo sul pannello dello strumento gli indicatori ed i controlli necessari. Prevediamo inoltre alcuni campi di input che serviranno per la scelta dei passi di misura (coppie portata pressione) e per il file di uscita contenete i dati.

    Nel pannello riportato nella figura non sono riconoscibili tutti gli elementi del sistema in esame. Alcune grandezze (come la tensione di controllo della pompa) non sono direttamente accessibili ma vengono impostati dal programma LabVIEW sulla base del risultato di una elaborazione (vedi slide successive). Sono presenti invece alcuni indicatori grafici in basso dove vengono riportati i dati di misura in funzione del tempo per permettere all' operatore di seguire il susseguirsi delle operazioni.

    La barra in alto serve per selezionare quali coppia flusso-pressione usare per le prove. Le coppie sono memorizzate in un file letto all' avvio del test.

    Ad ogni controllo o indicatore del pannello corrisponde un elemento nel diagramma LabVIEW. Questi elementi sono rispettivamente le partenze e gli arrivi dei cammini di elaborazione dei dati che vengono rappresentati con dei fili che attraversano diversi blocchi di elaborazione.

    Una corretta programmazione prevede di definire dei macroblocchi che corrispondono a sub-vi del vi principale, analogamente a quando avviene per le chiamate di sottoprocedure nella programmazione a codice.

    In figura è riportato un esempio di sub-vi relativo al controllo PID per il raggiungimento della portata desiderata. Scopo di questo blocco è quello di raggiungere stabilmente entro una banda del ±2% il set point. La scelta dell' impiego di questo blocco piuttosto che, per esempio, un blocco di ricerca lineare, sta nel cercare di ridurre al minimo il tempo di attesa fra una misura e l'altra, e ridurre quindi il tempo (ed il costo) del collaudo.

    Come di può notare il controllo è rappresentato da un loop che ripete il calcolo del set successivo sulla base della formula del controllo PID. Dal loop si esce quando lo scarto fra la misura di portata ed il set point rientra nella banda permessa. Il diagramma risulta facilmente leggibile considerando che un blocco viene eseguito solo se i dati a tutti i sui ingressi sono validi.

    Per quanto riguarda la gestione della scheda di acquisizione, opportuni blocchi di elaborazione ne consentono l' inizializzazione e la lettura/scrittura dei dati

    In figura è mostrato la parte di diagramma relativa al campionamento dei canali relativi alle pressioni ed al flussimetro di riferimento.

    Nel caso in esame, la lettura dei canali analogici è eseguita come gruppo (0,1,2) e quindi, in teoria, simultaneamente. In realtà il ritardo (skew) fra il campionamento di un canale e del successivo corrisponde al tempo impiegato dal multiplexer analogico della scheda a commutare da un canale all' altro. Lo skew minimo può essere calcolato approssimativamente come:

    Dove SR è il valore del sample rate e nCH è il numero di canali di ingresso multiplexati.