in data 01-21-2007 06:20 PM
in data 01-22-2007 04:36 AM
in data 01-22-2007 05:31 AM
Premetto che lavoro in VB.Net.
La cosa non mi è molto chiara ....
Allora supponiamo che io acquisisca a 10KHtz . Se per ogni ciclo io registro un solo dato allora è facile risalire al timestamp.
Se invece io acquisissi 100 sample per ogni ciclo come faccio a calcolare il timestamp di ogni sample?
Devo considederare i 100 sample con lo stesso timestamp o c'è una formula per risalire al timestamp di ognuno?
Grazie mille.
in data 01-22-2007 08:18 AM
Purtroppo io non ho mai lavorato in VB quindi non ti posso essere di aiuto nello specifico ma solo a livello concettuale.
Non mi è ben chiara la struttura della tua acquisizione; visto che parli di "ciclo" immagino che il processo di acquisizione si svolga all'interno di un loop, ma poi? Supponiamo per semplicità di avere un canale solo di cui acquisisco 100 misure ad ogni ciclo alla cadenza di 10 kHz (il ciclo può durare ad esempio qualche secondo). In questo caso la spaziatura fra le letture (100 µs) è garantita dal contatore interno alla scheda e tu devi solo memorizzare ad ogni ciclo il timestamp iniziale (orologio del computer...)
Se invece stai acquisendo su più canali (supponiamo per semplicità 5) sempre una volta per ciclo e sempre 100 misure (20 per canale), allora il timestamp iniziale è sempre da determinare ciclo per ciclo, i 20 pacchetti di misure sono spaziati di 100 µs l'uno dall'altro e le singole misure all'interno di ogni pacchetto puoi considerarle contemporanee (di solito la scheda viene predisposta per la massima velocità di scansione, vale a dire che si passa al canale successivo non appena acquisita la misura del precedente). Questo introduce nelle misure fra canale e canale un errore che dipende dalle performance della scheda -diciamo dell'ordine di grandezza del microsecondo- che normalmente è trascurabile (dipende dal tuo processo). Questo a meno che tu non stia usando una scheda simultaneous sampling, nel qual caso la contemporaneità delle misure fra i canali è garantita dall'hardware.
in data 01-22-2007 10:08 AM
Ciao Cla70,
Credo che la risposta di Roberto sia la soluzione migliore, anche perchè la temporizzazione della scheda a livello HW ha la precisione migliore cui tu possa fare riferimento.
Se il tuo desiderio è quello di avere (per fini puramente di esplicita visualizzazione) una colonna dei time stamp di ciascun campione, l'unica idea che mi viene in mente è quella di creare un pezzo di codice che faccia la seguente cosa:
aggiunga al time stamp del primo campione preso ad inizio ciclo (che chiamo "timestamp1") il multiplo intero della separazione temporale riferita all'n-simo campione (e ovviamente glielo associ). Quindi, ad esempio, il time stamp del 55 campione (che chiamo "timestamp55") sarà:
timestamp55=timestamp1+(55*t)
con t distanza temporale (in s) tra due campioni consecutivi (ricavata come ha suggerito Roberto in base alla frequenza di acquisizione).
Facci sapere se la soluzione ti soddisfa
ciao
carlo>
in data 01-25-2007 04:55 PM
in data 01-29-2007 04:57 AM
Ciao Cla70,
1. Quando tu selezioni la frequenza di campionamento sai (precisione HW, la massima ottenibile praticamente) che la distanza temporale tra i campioni è il suo inverso. Quindi se selezioni 1Hz come sampling rate, hai che prendi un campione, poi passa un secondo e ne prendi un altro, dopo un secondo un altro ancora... Quello che devi decidere è se vuoi acquisire in continuo (cioè continuativamente) o solo tot campioni tipo 300 da quando parte il segnale che vuoi acquisire.
2. In LabVIEW comunque c'è il dato di tipo waveform che secondo me ha tutte le informazioni che ti servono. Infatti il dato waveform è un cluster che contiene 3 elementi:
a. t0, cioè il timestamp iniziale. b. dt, cioè la distanza temporale tra i singoli campioni acqisiti. c. Y, il valore di ciascun campione.
Spero di esserti stato utile, ciao
carlo>
in data 01-29-2007 05:59 AM
in data 01-30-2007 04:27 AM
Domanda da cento milioni: quanti canali devi acquisire?
Una scheda da 200 k non può acquisire più di due canali a 100k...
Devi considerare la velocità della scheda come massima cadenza di conversione analogico/digitale,quindi da "spendere" su tutti i canali che devi acquisire. In pratica, la massima cadenza per canale è data dalla velocità scheda / numero canali acquisiti
in data 01-30-2007 04:31 AM
Questa già è una cosa che non sapevo e che è fondamentale sapere. Io pensavo che i 200K fossero indipendenti dal numero di canali che si acquisiscono.
Ok, allora per adattarci diciamo che, visto che a 100K non ci posso arrivare, voglio acquisire 4 canali a 50K con samples equidistanti nel tempo.
C'è un modo?
Grazie mille.