Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

salvataggio valori

Ciao,

ho la necessità di salvare tutti i dati acquisiti istantaneamente tramite una centralina meteo collegata tramite porta seriale (temp, umidità etc) in un file txt. In pratica devo creare un file nelle cui prime due righe appena si apre dev'esserci scritto temperatura, umidità etc (come intestazione) e poi una volta avviato il programma man a mano vengono salvati i valori nelle nello spazio sottostante. In allegato ho riportato un esempio di ciò che m serve. Potreste darmi 1 aiuto?

 

saluti Francesco

0 Kudos
Messaggio 1 di 7
7.112Visualizzazioni

Ciao,

se i tupi dati fossero solo numerici la cosa più semplice sarebbe usare il Write to Spreadsheet File, ma siccome tu mischi testo e dati numerici dovrai faticare un po' di più. Data la tua versione di LabView (7.1) credo che dovrai creare manualmente la riga di testo da scrivere sul file: il Format Into String è molto comodo perchè una volta che gli hai tirato i fili dei dati puoi aprire il pannello Edit Format String e c'è una procedura guidata per sistemare le cose nel modo che ti è più comodo. Più o meno devi operare così:

datatofile.PNG

Naturalmente questo è solo il nucleo con dati di esempio: un'aggiunta necessaria è avere da qualche parte il nome del file da passare all'Open File (non vorrai mica tutte le volte andartelo a cercare su disco? Smiley Strizza l'occhio 😞 lo potresti chiedere all'operatore all'inizio del programma e poi passarlo al vi che scriverà i dati su disco. E poi ovviamente devi gestire gli eventuali errori che potrebbero nascere sul disco.



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 7
7.100Visualizzazioni

Ciao,

ho realizzato la VI, anche se nella versione 7.1 non sono riuscito a trovare la funzione (write to text file). Il Vi funziona, l'unico problema è che non mi scrive le righe successive, in altre parole mi scrive solo il primo set di misure; 

devo salvare prima tutti i dati in una matrice? sono sulla strada giusta? (ho provato in vari modi ma cn scarsi risultati)

In allegato c'è il file.vi

grazie

Francesco

0 Kudos
Messaggio 3 di 7
7.084Visualizzazioni

Bè, io non ho abbastanza memoria storica per ricordarmi se quel vi c'era o no Smiley Strizza l'occhio se però nella palette file I/O non lo trovi allora il write characters to file va bene, solo che per separare il testo in righe devi aggiungere un CR+LF a fine stringa.

Per quanto riguarda il problema che dici, inizialmente pensavo che nel file trovassi solo l'ultimo set di dati: il write to characters infatti per default crea un nuovo file oppure sostituisce uno con lo stesso nome se esiste. Devi tirare una costante True al parametro Append to file per aggiungere ogni volta una riga nuova.

Credo però che un problema serio sia anche il visa close a fine lettura... dovresti spostarlo fuori dal loop, a fine programma.

 

Poi ci sono altre cose che potrebbero semplificare il codice:

  • Tutta la configurazione della seriale dovrebbe stare prima del while, tanto i parametri non cambiano mentre stai acquisendo
  • Nel while c'è sia una pausa parametrata al n. di secondi richiesti sia un wait for next ms multiple fisso di 15 secondi: uno ovviamente è ridondante


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 7
7.069Visualizzazioni

Ciao,

grazie ho risolto. Un'ultima domanda che funzione devo utilizzare per approssimare i valori memorizzati all'interno del file alla prima cifra decimale?

 

Francesco

0 Kudos
Messaggio 5 di 7
7.065Visualizzazioni

Bè, il "%.1f" dovrebbe fare proprio questo: lo stai già usando per tutte le misure tranne la pressione: non funziona?

 

PS anche la riga di intestazioni dovrebbe essere portata fuori dal loop, altrimenti te la ritrovi ad ogni registrazione!



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 7
7.059Visualizzazioni

Ciao,

ho risolto tutto per ora, questo primo step è andato; a breve arriveranno i CET e dovrò acquisire altri dati tramite daq.

grazie

Francesco

0 Kudos
Messaggio 7 di 7
7.054Visualizzazioni