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.

Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

Graph o Chart

Risolto!
Vai alla soluzione

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!!!

0 Kudos
Messaggio 1 di 13
6.568Visualizzazioni

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.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 2 di 13
6.568Visualizzazioni

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!

 

 

0 Kudos
Messaggio 3 di 13
6.566Visualizzazioni

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.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 4 di 13
6.564Visualizzazioni

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!!!

 

 

0 Kudos
Messaggio 5 di 13
6.560Visualizzazioni

Se non ho capito male vorresti fare come nell'esempio che ti allego.

Quando costruisci la waveform? Non dopo ogni acquisizione, vero?



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 6 di 13
6.553Visualizzazioni

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!

0 Kudos
Messaggio 7 di 13
6.551Visualizzazioni

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.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 8 di 13
6.547Visualizzazioni

Ciao, perfetto ora ci sono!!! Grazie mille!!!

 

0 Kudos
Messaggio 9 di 13
6.541Visualizzazioni

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.

 

0 Kudos
Messaggio 10 di 13
6.534Visualizzazioni