230 likes | 399 Views
Sviluppo e gestione di sistemi di misura basati su PC. Matteo Lancini - UniBS. Sviluppo e gestione di sistemi di misura basati su PC. L’acquisizione digitale I trasduttori La scheda DAQ Il task di acquisizione Il salvataggio dati L’analisi dei segnali Tempistiche e prestazioni
E N D
Sviluppo e gestione di sistemi di misura basati su PC Matteo Lancini - UniBS
Sviluppo e gestione di sistemi di misura basati su PC • L’acquisizione digitale • I trasduttori • La scheda DAQ • Il task di acquisizione • Il salvataggio dati • L’analisi dei segnali • Tempistiche e prestazioni • Problemi comuni • Buone pratiche di programmazione
L’acquisizione digitale • Perché l’acquisizione digitale? • Offre notevoli vantaggi: • Bassa sensibilità al rumore elettrico • Alta accuratezza a basso costo • Elaborazione automatica possibile • Combinazione immediata di segnali diversi • Integrazione con sistemi di controllo • Trasmissione, registrazione e riproduzione dei segnali senza alcuna perdita di informazione • Ma esistono anche una serie di problemi da non sottovalutare che spesso sono trascurati…
L’acquisizione digitale • Criticità intrinseche • nel dominio dell’ampiezza: • Risoluzione • Saturazione • nel dominio del tempo: • Aliasing • Leakage • Risoluzione spettrale • Problemi di implementazione • Prestazioni computazionali limitate: • Concorrenza tra salvataggio, acquisizione, analisi e visualizzazione • Memoria di massa limitata: • Risoluzione numerica • Numerosità di canali e campioni • Affidabilità del sistema: • Perdita di dati una grandezza continua è rappresentata da un valore discreto usiamo un PC come elemento della catena di misura
Analisi preliminare • È importante non cominciare a sviluppare alla cieca, ma identificare fin da subito l’obiettivo finale del sistema di misura e la strumentazione a disposizione, in particolare: • L’oggetto della misura • I trasduttori da usare • La scheda DAQ da usare • La configurazione del campionamento • La durata ed il tipo di prova • Il dato finale da produrre come risultato
I trasduttori • Informazioni da raccogliere: • Tipologia • condizionatori necessari • Segnale in uscita (tensione, corrente, impulsi…) • il numero ed il tipo di canali richiesti • Alimentazione (a ponte, raziometrico, fissa) • eventuali canali aggiuntivi e condizionatori • Sensibilità statica • riconversione del segnale • Banda passante • frequenza di campionamento • Campo di misura e campo di lettura • range dei canali di acquisizione • Collegamento (a 2, 3, 4, 6 fili..) • eventuali canali aggiuntivi e condizionatori
La scheda DAQ • Caratteristiche dei canali: • Eventuale condizionatore integrato (IEPE, TC, RTD, ponte…) • Range di lettura e tipo (tensione, corrente…) • Connessione (pigtail, BNC, subD…) • Caratteristiche del convertitore: • Risoluzione digitale (numero di bit) • Frequenza di campionamento massima (globale o per canale) • Bus di collegamento (USB, RS232, WiFi, SCSI…) • Eventuale integrazione con altre schede in un unico rack (cDAQ, cRIO, PXI)
Il task di acquisizione • Combina le impostazioni dei vari canali fisici e della sessione di acquisizione, fornendo una controparte software alla configurazione hardware dell’acquisizione. • Le modalità di configurazione del task dipendono fortemente dalle capacità dell’hardware e dal driver
Il task di acquisizione • Sessione di acquisizione • Tipologia di campionamento • Durata dell’acquisizione • Frequenza di campionamento • Canali virtuali • Canale fisico associato • Configurazione di collegamento • Range di input • Scala di conversione • Eventuali impostazioni di condizionamento
Il task di acquisizione • Tipologia di campionamento • FINITE SAMPLESil sistema acquisisce n campioni, quindi l’acquisizione si arresta e l’intero array di valori viene messo a disposizione • Da usare quando l’acquisizione è di breve durata oppure quando dati discontinui sono ammessi • CONTINUAil sistema acquisisce n campioni, e li rende disponibili senza però interrompere l’acquisizione, sfruttando un buffer a bordo della scheda • Da usare quando l’acquisizione non tollera dati discontinui >> sviluppo più complesso • Durata e frequenza di campionamento hanno significati diversi nelle due opzioni
Il task di acquisizione • Canali virtuali • Canale fisico associato • Indica il nome univoco ed anche la tipologia di canale usato • Configurazione di collegamento • A ponte di wheatstone, raziometrico, differenziale… • Range di input • Assieme alla risoluzione della scheda ed alla sensibilità del trasduttore dà la risoluzione di misura della grandezza • Scala di conversione • Contiene le informazioni del diagramma di taratura del trasduttore collegato sul canale, in modo da visualizzare ed elaborare già i dati della grandezza fisica direttamente • Eventuali impostazioni di condizionamento • IEPE, ICP, TC, ed altri condizionatori standard
Il salvataggio dei dati • Ricordarsi l’obiettivo finale per cui si sta effettuando la misura in modo da scegliere la modalità di salvataggio ed il tipo adeguato • Formato del salvataggio • Testuale, per facilitare l’integrazione con altri software e la lettura diretta • Binaria, per ottimizzare il salvataggio e la lettura rapidi dei dati • Database, per gestire grosse quantità di dati • Modalità di salvataggio • Singola • Continua
Il salvataggio dei dati • Formato del salvataggio • Testuale • Facilmente integrabile con altri software • Può facilmente assumere dimensioni rilevanti • Può dipendere dalla localizzazione • Introduce un problema di risoluzione numerica • Binaria • Può essere letto e scritto solo dal software proprietario • Dimensioni relativamente ridotte • Neutrale rispetto alla localizzazione • Viene letto e scritto in maniera molto rapida • Database • Richiede una struttura dati ed un dbms di appoggio • Consente facilmente analisi statistiche sui dati • Può accumulare facilmente solo dati in forma sintetica
Il salvataggio dei dati • Modalità di salvataggio • Singola • Un numero finito di campioni viene mantenuto in memoria e salvato solo al termine dell’acquisizione • Attenzione all’uso della memoria, rischio di perdita di dati! • Continua • Ogni volta che sono disponibili dei campioni vengono aggiunti al file già aperto senza poi chiuderlo • In caso di errore si ha un salvataggio parziale • Richiede attenzione nella pianificazione della sequenza • Discontinua • Blocchi finiti di dati vengono aggiunti ad un file esistente, senza però garantire alcuna continuità nel flusso • È necessario corredare i dati con informazioni temporali
L’analisi dei segnali • Analisi in post processing: • Tutte le elaborazioni ed i calcoli per le misure indirette sono svolte al termine della misura • Non è possibile intervenire in caso di problemi • Nel caso di analisi complesse può essere necessario parcellizzare l’analisi per via dei limiti di memoria • Analisi on the run: • Tutte le elaborazioni sono svolte durante l’acquisizione, sfruttando il buffer della scheda • Consente di intervenire durante la misura • Può costringere ad un’acquisizione rallentata • Se l’analisi non è più che consolidata richiede comunque il salvataggio dei dati originari
Tempistiche e prestazioni • Visualizzazione • Anche la semplice visualizzazione richiede un notevole carico computazionale, quindi è necessario valutare attentamente quanti dati visualizzare • Visualizzazione a misura finita • Evita problemi di concorrenza con acquisizione ed analisi • In caso di errore non è possibile intervenire • Adatta a prove di breve durata • Visualizzazione continua • Consente di monitorare il fenomeno ed identificare problemi • Aumenta le probabilità di catene di errori bloccanti • Costringe ad un’esecuzione rallentata dell’acquisizione • Visualizzazione discontinua • Visualizzazione di brevi sequenze ad intervalli regolari senza garantire la continuità • Ha solo funzione diagnostica
Tempistiche e prestazioni • Prove di breve durata: • Acquisizione a campioni finiti • Visualizzazione a misura finita • Analisi in post processing • Salvataggio singolo • Prove di lunga durata: • Acquisizione in continua • Visualizzazione in continua • Analisi on the run • Salvataggio in continua ma la scelta dipende anche dalla frequenza
Problemi comuni • Dimensioni del file • Spesso è un problema trascurato! • Es. 12 ch, 10 kHz per 10 minuti (salvando in binario dati DBL a 2byte) => 12x10000x600x2 = 412 Mbyte • File troppo grossi risultano spesso ingestibili! • Risoluzione numerica • Se si sceglie un formato di salvataggio testuale è necessario convertire un numero nella sua rappresentazione letterale • POSSIBILE PERDITA IRREVERSIBILE DI DATI • Incompatibilità tra salvataggio e post-processing • Probabile se vengono sviluppati separatamente
Problemi comuni • Dimensioni del file • Salvare i dati in formato binario preferibilmente • Se indispensabile parcellizzare salvataggio ed analisi • Risoluzione numerica • Incompatibilità tra salvataggio e post-processing • Valutare attentamente il formato di esportazione • Mantenere una copia in binario dei dati grezzi è sempre consigliabile come tutela! • Effettuare una prova a vuoto del sistema di salvataggio ed analisi fino a raggiungere il formato finale desiderato
Buone pratiche di programmazione • Approccio TARGET-ORIENTED • In primo luogo definire il risultato della misura: • Valore sintetico • Timehistory • Analisi complessa • Consentire durante la prova una rappresentazione della misura il più possibile vicina alla sua rappresentazione finale • Pianificazione del progetto • Capire il problema a fondo prima di iniziare • Testare ogni step di sviluppo in modo singolo • Fare prove preliminari a vuoto che producano un risultato finale
Buone pratiche di programmazione • Scegliere uno dei due approcci : • BOTTOM-UP: • identificare i compiti più difficoltosi del progetto, sviluppare un modulo che li assolve, quindi integrarlo in step successivi nel progetto • utile solo se il progetto è semplice, ma il risultato è dubbio e si vuole valutarne la fattibilità • TOP-DOWN: • definire in linea di massima il funzionamento del progetto, partendo da uno schema logico di funzionamento, e delegare i vari compiti a template (moduli definiti solo in input-output) che verranno realizzati in seguito • Utile quando il progetto non prevede vincoli di fattibilità tecnica, anche in casi non complessi!
Buone pratiche di programmazione • Mantenere il codice pulito ed intuitivo • Scrivere sempre da sinistra a destra • Non andare oltre le dimensioni dello schermo • Disegnare icone intuitive ed usare nomi estesi • Commentare i passaggi meno espliciti • Sfruttare al massimo librerie e progetti • Se si pensa che una serie di funzioni sia correlata,usare una libreria • Se si pensa che qualcosa potrebbe essere riusato, metterlo in una libreria • Mantenere il progetto ordinato con cartelle virtuali e librerie