Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

LINX: scrivere i dati su un file excel

ciao,

premetto che sono più un "fruitore" di VI (scritti da altre persone) che un programmatore Labview. Vorrei fare un corso labview strutturato ma per adesso mi limito a guardare file esempio e piccoli tutorial.

Sto facendo qualche esperimento con Arduino UNO. Leggo 4 canali analogici con il relativo modulo "analog read N chan", faccio qualche operazione matematica e li visualizzo correttamente su una waveform chart. Vorrei poter salvare questi dati su file, possibilmente xlsx (ma mi va bene anche csv o txt).

Non riesco però a capire come fare.  

 

Grazie

0 Kudos
Messaggio 1 di 5
2.088Visualizzazioni

Salvare direttamente su file Excel è un po' complesso - ma può non esserlo se già conosci l'interfaccia ActiveX di Excel.

Fossi in te comincerei con l'output su file di testo. A questo proposito, puoi usare il comodo vi Write Delimited Spreadsheet (oppure Write To Spreadsheet File in versioni precedenti), che trovi nella palette di File I/O.

Volendo, puoi aprire il vi e i subvi per vedere come vengono usate le primitive di File I/O (tipo Write TO Text File) e quelle di manipolazione di stringhe (in questo caso, Array To Spreadsheet String). Ma fai attenzione a non modificarne il contenuto! Ricordati che i vi nella vi.lib non vanno mai modificati (alcuni sono proprio protetti), al limite si può copiarne il contenuto in un nuovo vi per fare degli esperimenti.

Paolo
-------------------
LV 7.1, 2011, 2017, 2019, 2021
0 Kudos
Messaggio 2 di 5
2.073Visualizzazioni

grazie della risposta.

Ho in realtà risolto semplicemente usando un blocco di conversione "cluster to array" e un "Write To Measurement File" configurato per scrivere un file excel.

 

Nel file mi ritrovo 9 canali (nove colonne dati, più quella del tempo). Come posso fare per selezionare solo le prime n? (i sensori sono sui primi 4 canali)

 

Ho poi un problema con il timing di campionamento. Ho notato che i time step sono costanti se non sono inferiori i 500 ms, mentre con una frequenza maggiore ho un progressivo ritardo crescente con il passare del tempo. Uso il blocco "time delay", selezionando il tempo di delay. E' corretto?

  

0 Kudos
Messaggio 3 di 5
2.040Visualizzazioni

Per quanto riguarda la selezione, te la cavi con la funzione Array Subset; in certi casi, potresti preferire Delete From Array.

Francamente è difficile scrivere anche un minimo programma in LabVIEW senza conoscere queste funzioni di uso quotidiano.

Ti consiglio quindi di prenderti un po' di tempo per esplorare le funzioni fondamentali, magari seguendo i tutorial.

Per quanto riguarda la tempistica, è veramente difficile rispondere senza vedere il codice: ci sono troppe varianti possibili.

Paolo
-------------------
LV 7.1, 2011, 2017, 2019, 2021
0 Kudos
Messaggio 4 di 5
2.026Visualizzazioni

Il problema con l'array l'ho risolto semplicemente. Trattandosi di un blocco "array to cluster" mi è bastato modificare la dimensione del cluster.

 

Probabilmente, per una questione di tempi di sviluppo, mi conviene usare altri metodi per acquisire dati da un Arduino.

Labview richiede una formazione strutturata. Faccio molto prima usando altri "metodi", tipo scrivere un'interfaccia con Processing o leggere la seriale, scrivere un file di testo e importarlo con excel (anche se non potrei farlo in tempo reale). 

 

Le frattempo, cercherò un tutorial/corso base di labview.

 

Comunque grazie delle risposte. 

0 Kudos
Messaggio 5 di 5
2.020Visualizzazioni