From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
in data 11-08-2011 10:03 AM
Ciao a tutti, ho bisogno del vostro aiuto,
1.Acquisisco un segnale in ingresso fatto da una serie di campioni (signed 16 bit) che variano ogni 5 ms
2.Eseguo il trigger (Trigger and Gate) su questo segnale,
Ora da quello che ho capito per (1) è meglio utilizzare il Chart.
Ma quello che io voglio fare è:
1.Mostrare il segnale originale, poi dopo che viene trovato il trigger, pulire lo schermo e mostrare solo il segnale triggerato
Quello che invece fa adesso è mostrarmi il segnale originale, dopo se trova il trigger lo plotta a fianco al segnale mostrato fino ad ora.
2. Per rappresentare il Trigger vorrei utilizzare i cursori che sono presenti solo sui Graph.
Come posso fare???
Grazie in anticipo!!!
Risolto Andare alla soluzione.
in data 11-08-2011 11:32 PM
Non ho capito bene l'architettura della tua applicazione, certo però che se vuoi usare i cursori la scelta del graph è obbligata.
Comunque anche col chart si può cancellare il tracciato esistente e ripartire da capo: se ci dici con che linguaggio lavori ti possiamo dire il metodo da usare.
in data 11-09-2011 02:55 AM
Ciao,
Grazie per l'aiuto,
Sto utilizzando LV 8.5, essenzialmente sto utilizzando un trigger and gate che quando trova un trigger manda un manual trigger ad una serie di Trigger and gate posti in cascata.
Per il pulire lo schermo ho risolto azzerando History, il problema dei cursori rimane, infatti con Graph non riesco a visualizzare i miei dati.
Il mio dato è ottenuto dall'acquisizione di un valore singed su 16 bit (da messaggio CAN, non uso DAQ) ogni 5 ms e da quello che ho letto per questo tipo acquisizione va utilizzato un chart!!!
Grazie
Ciao!
in data 11-09-2011 03:49 AM
Dipende.
Il chart è comodo perchè accoda automaticamente i dati ogni volta che glieli mandi, un po' come fa un registratore X/T oppure un oscilloscopio in modalità sweep o roll.
Il graph richiede di fornire sia l'informazione X che Y (nel tuo caso probabilmente la X è il tempo). Per visualizzare il segnale dopo il trigger (ma non in tempo reale) potresti costruire una waveform con il Build Waveform passando il tuo array e le altre informazioni (dt = 5 msec) e passarla al graph (un waveform graph), ottenendo il segnale sull'indicatore e potendo usare i cursori. In alternativa, se il tempo di acquisizione non è costante, salvare il valore dell'orologio ogni volta che acquisisci e costruire un XY graph con un cluster dei due array (tempo e segnale).
In LV trovi degli esempi che possono chiarire meglio, in particolare il Temperature Analysis.vi (lo trovi facendo una ricerca per "graph" nel Find Examples) in cui il segnale è visualizzato nel chart man mano che è acquisito e poi in un graph a fine acquisizione.
in data 11-09-2011 05:18 AM
Ciao,
La tua soluzione mi ha fatto venire un po di dubbi su quello che ho fatto, quindi mi spiego meglio nel caso il mio errore fosse a monte.
Io ogni 5ms acquisisco un campione su 16bit, poi attraverso il Build Waveform (con ingressi dt, to e Y) creo la mia waveform.
Di questi segnali ne ho 15.
Il mio problema è che questi segnali passano dal Trigger And Gate, dove in uscita ho più waveform che non riesco a plottare insieme! Ne con Chart ne con Graph.
L'errore è:
You have connected an array data type to its element data type. This type conflict may be resolved by indexing the array to access individual elements of the array. Check for a tunnel on a loop that has indexing incorrectly enabled.
The type of the source is 1-D array of La sorgente è l'uscita del mio trigger
Dynamic Data.
The type of the sink is Dynamic Data.
1. La Build Waveform può dare problemi di ritardi errori o oltro? Mi consigli un altro modo per farla!?! è importante avere un campione ogni 5 ms
2. l'uscita del trigger è sempre dello stesso tipo indipendentemente dall'ingresso. Come posso plottare queste uscite insieme.???
Grazie Mille
Ciao Caio!!!
in data 11-10-2011 04:56 AM
Se non ho capito male vorresti fare come nell'esempio che ti allego.
Quando costruisci la waveform? Non dopo ogni acquisizione, vero?
in data 11-10-2011 05:26 AM
Ciao,
ok ci siamo, ma non ho capito cosa intendi per "Quando costruisci la Waveform".
Io semplicemente ho una Build Waveform, a cui applico Y, dt e to. L'uscita della Build è connessa ad un grafico.
Posso in qualche modo decidere quando costruire la waveform o ogni quanti campioni devo plottare? Se si perchè nn conviene ad ogni campione???
Grazie ancora!!
Ciao!
in data 11-10-2011 06:33 AM
Se vedi, nell'esempio c'è un for che produce un array di 10 letture che viene elaborato poi dal trigger and gate. Potresti fare lo stesso nel tuo caso: elaborare il segnale dopo un certo numero di acquisizioni.
Vorrei evitare che ad ogni lettura crei una waveform nuova che poi incasina il tutto: dopo 10 letture ti troveresti 10 waveform di 1 campione ognuna! La waveform è fatta per descrivere un segnale ottenuto con una acquisizione periodica e costante con un minimo di dati: il vettore Y e per l'appunto la cadenza di acquisizione.
in data 11-10-2011 07:52 AM
Ciao, perfetto ora ci sono!!! Grazie mille!!!
in data 11-15-2011 05:38 AM
Ciao ,
Scusa se ti ridisturbo riguardo l'argomento.
Ma per un altro problema (l'ho postato sul forum) servirebbe creare un array non come l'esempio che hai fatto tu!
Cioè, io voglio costruitre un array di valori da utilizzare poi per creare una waveform da salvare in excel.