Recent Changes · Search:

Dispense


Navigation Tips - Dritte


PmWiki

pmwiki.org

edit SideBar

DataAcquisitionSoftware

< Connessioni della breadboard | Indice | Strumentazione.Malus >


Scheda di acquisizione NI PC6024: come è vista dal daq software

Per prima cosa bisogna stabilira la comunicazione tra matlab e la scheda, che si ottiene col comando:

daqregister('nidaq')

Il passo successivo è di creare l'accesso all'Analog to Digital Converter (ADC) della scheda, per mezzo del comando

AI=analoginput('nidaq',1);

Quindi procederemo con l'elencare i comandi necessari per convertire i valori di due tensioni da misurare "simultaneamente" (ossia in rapida successione) da due ingressi della scheda. Supporremo che nessuno dei quattro punti misurati corrisponda necessariamente alla massa (ossia entrambe le coppie di ingressi sono volanti, o floating).

  • Supporremo di essere interessati alla differenza tra le tensioni dei due primi e i dei due secondi ingressi, e che questa possa variare tra -5 e +5 V.
  • Supporremo infine di volere ripetere la misura circa ogni 0.2 secondi, "N" volte, prendendo ciascuna volta M=100 acquisizioni successive per utilizzarne media e deviazione standard (occorre quindi una ripetizione della misura di almeno 1000 Hz, per consentire 100 misure ogni 0.2 s su ciascuna delle due coppie di ingressi).

Dobbiamo ora definire le due coppie di ingressi. Sulla "breadboad" vi sono due ingressi separati per connettori a banana, marcati Ch0 Floating differential input, Vi sono poi due connettori BNC marcati rispettivamente Ch2 e Ch4 Floating differential input: ciascuno de essi fornisce due ingressi coassiali, uno sulla massa esterna ed uno centrale. Inoltre sul lato sinistro della breadboard c'è una serie di connettori in linea, con morsetto, marcati da Ch3 a Ch7. Da ultimo, ad un estremo della morsettiera c'è un connettore marcato AIGND. Noi utilizzeremo Ch0 e Ch2.

I due generatori dei segnali da misurare vanno collegato a questi ingressi, seguendo i suggerimenti del manuale, Cap. 4, per Differential, Floating Source, che coinvolgono l'uso di AIGND. Occorre quindi definire i canali all'interno del programma software:

chan=addchannel(AI,[0 1]); % aggiunge due canali sull'analog input AI

                              ad es. calibrazione di un sensore con un secondo

oppure

chan=addchannel(AI,0); % aggiunge un solo canale sull'analog input AI

Nel primo esempio i due canali si chiamano 0 e 1 come stabilito dalla scheda. All'interno del programma matlab essi saranno visti come 1 e 2, rispettivamente. Prima di effettuare la misura occorre fissare il fondo scala con il comando:

setverify(AI.Channel,'InputRange',[-0.5 0.5])

che significa che vengono misurati correttamente segnali compresi tra -0.5 e 0.5 V. e quindi configurare tre delle caratteristiche prescelte con i comandi:

setverify(AI,'SampleRate',2e3) % due volte più veloce del necessario

setverify(AI,'InputType','Differential')

setverify(AI,'SamplesPerTrigger',200)

Per vedere le caratteristiche della scheda (ed anche i fondo scala disponibili) occorre digitare:

daqhwinfo(AI)

che mostra tutti i parametri configurabili nella scheda su finestra grafica e permette di editarli. Alcuni di questi si svelano aprendo la riga Channel (InputRange, UnitRange, SensorRange).

Tutti i comandi precedenti sono per l'inizializzazione e la scelta dei parametri di acquisizione. Quindi in genere vanno eseguiti solo una volta, all'inizio della seduta di misura, dopo l'accensione delle apparecchiature. Ciascuna misura viene quindi attivata dal comando:

start(AI)

Siccome abbiamo fissato un numero finito di SamplesPerTrigger la misura termina da sola, scaricando in memoria il risultato. Per ottenerlo in una variabile di matlab occorre dare il comando:

y=getdata(AI,200);

Si ottengono così le prime 200 coppie di dati. I due ultimi comandi possono quindi essere ripetuti tante volte quante la misura lo imponga. Nota bene: la lettura è effettuata da start(AI); se si scelgono ad es. 200 SamplePerTrigger e si leggono solo 100 dati con getdata(AI,100), un successivo comando getdata(AI,100) leggerà i secondi 100 dati registrati quando si è effettuala la digiltalizzazione con il comando start(AI) e non lo stato dell'ingresso differenziale nel momento in cui si esegue il comando getdata.

Per generare un analog output dalla scheda NI occorre seguire questo esempio e prelevare il segnale tra i morsetti DI00 (+) e GND (-).


< Connessioni della breadboard | Indice | Strumentazione.Malus >

Edit - History - Print - PDF - Recent Changes - Search
Page last modified on December 15, 2008, at 09:31 AM