28.12.2014 Views

LabVIEW parte II - Docente.unicas.it - Università degli Studi di Cassino

LabVIEW parte II - Docente.unicas.it - Università degli Studi di Cassino

LabVIEW parte II - Docente.unicas.it - Università degli Studi di Cassino

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

Ing. Gianfranco Miele (g.miele@<strong>unicas</strong>.<strong>it</strong>)<br />

http://www.docente.<strong>unicas</strong>.<strong>it</strong>/gianfranco_miele<br />

April 6, 2011


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Le stringhe<br />

• Una stringa è una sequenza <strong>di</strong> caratteri<br />

• Ogni carattere ha una corrispondente co<strong>di</strong>fica numerica in byte (8 b<strong>it</strong>)<br />

secondo lo standard ASC<strong>II</strong><br />

• I primi 32 dei 256 caratteri ASC<strong>II</strong> non sono visualizzabili (controllo)<br />

• Gli ultimi 128 caratteri cost<strong>it</strong>uiscono il set esteso<br />

• Impieghi: visualizzazione <strong>di</strong> messaggi, I/O su file, controllo <strong>di</strong><br />

strumentazione<br />

• Esistono controlli e in<strong>di</strong>catori <strong>di</strong> tipo stringa<br />

Stringa: V D C - 1 2 . 4 5 6<br />

# ASC<strong>II</strong>: 86 68 67 32 45 49 50 46 52 53 54<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Display mode <strong>degli</strong> in<strong>di</strong>catori<br />

Normal <strong>di</strong>splay<br />

Password <strong>di</strong>splay<br />

\ code <strong>di</strong>splay<br />

Hex <strong>di</strong>splay<br />

Backslash codes per<br />

alcuni caratteri <strong>di</strong><br />

controllo:<br />

\b backspace<br />

\s spazio<br />

\r return (CR)<br />

\n new line (LF)<br />

\t tab<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Funzioni per le stringhe<br />

String Length<br />

String Length = 20<br />

Concatenate Strings<br />

Strings<br />

The quick brown fox jumped over the lazy dog.<br />

Concatenated String<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Funzioni per le stringhe<br />

String Subset<br />

String<br />

Length<br />

Offset<br />

DC<br />

Substring<br />

Match Pattern<br />

quick<br />

brown<br />

fox<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Funzioni per le stringhe<br />

Format Into String<br />

( è resizable )<br />

Scan From String<br />

( è resizable )<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

Stringhe <strong>di</strong> formato<br />

6 aprile 2011<br />

•In<strong>di</strong>cano il formato, il tipo <strong>di</strong> dato, il numero <strong>di</strong> caratteri,<br />

l'allineamento ed il numero <strong>di</strong> cifre decimali (per i floating point)<br />

con cui visualizzare un dato<br />

•Si usano come nella funzione printf()del linguaggio C<br />

Esempio:<br />

Risultato = %.1f<br />

Risultato = 12.5<br />

%d intero con segno<br />

%u intero senza segno<br />

%s stringa<br />

%f floating point (15.012)<br />

... ...<br />

Dal menu <strong>di</strong> contesto, “Ed<strong>it</strong> Format String” apre una finestra <strong>di</strong><br />

<strong>di</strong>alogo che facil<strong>it</strong>a la preparazione della stringa <strong>di</strong> formato<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Funzioni per l’I/O su file<br />

Alto livello:<br />

• Read/Wr<strong>it</strong>e to spreadsheet file<br />

• Read/Wr<strong>it</strong>e characters to file<br />

• Read lines from file<br />

• Read/Wr<strong>it</strong>e to binary file<br />

Livello interme<strong>di</strong>o:<br />

Open, Read, Wr<strong>it</strong>e, Close<br />

Livello avanzato:<br />

• Gestione <strong>di</strong>rectory<br />

• Dipendenti dal S.O.<br />

• File <strong>di</strong>alog<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Scr<strong>it</strong>tura su file (funzioni <strong>di</strong> livello<br />

interme<strong>di</strong>o)<br />

File path: il formato <strong>di</strong>pende dal s.o.<br />

Refnum: identifica il file nel segu<strong>it</strong>o<br />

error: cluster per la gestione<br />

errori<br />

function:<br />

modal<strong>it</strong>à <strong>di</strong><br />

apertura<br />

è un array <strong>di</strong><br />

byte (8 b<strong>it</strong>)<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Lettura da file (funzioni <strong>di</strong> livello<br />

interme<strong>di</strong>o)<br />

La Read File per default<br />

rest<strong>it</strong>uisce stringhe<br />

Il contenuto <strong>di</strong> un file può avere <strong>di</strong>verse<br />

rappresentazioni<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Lettura da file (funzioni <strong>di</strong> livello<br />

interme<strong>di</strong>o)<br />

Costante byte<br />

Il tipo <strong>di</strong> dato connesso al Byte stream type fissa il tipo <strong>degli</strong><br />

elementi dell'array in usc<strong>it</strong>a dalla Read File<br />

Analogamente, la Wr<strong>it</strong>e File è una funzione polimorfica<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Array <strong>di</strong> byte<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

Gestione <strong>degli</strong> errori<br />

6 aprile 2011<br />

• Non appena chiamata, ogni funzione controlla il connettore error in;<br />

• Se trova status = True, significa che a monte si è verificato un errore:<br />

non esegue alcuna operazione e termina;<br />

• Se si verifica un errore durante la sua esecuzione, error out = True.<br />

Error Cluster:<br />

• C’è stato errore<br />

• Numero associato<br />

all'errore<br />

• In quale VI si è<br />

verificato<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

File <strong>di</strong> testo e file binari<br />

Un file <strong>di</strong> testo è una sequenza <strong>di</strong> stringhe <strong>di</strong><br />

caratteri ASC<strong>II</strong> delim<strong>it</strong>ate da sequenze <strong>di</strong> fine linea (CR+LF):<br />

6 aprile 2011<br />

a = 1.234e-5b = 200z=FALSE ...<br />

• Facilmente interpretabile<br />

• Scambio dati con altre applicazioni (fogli elettronici o word processor)<br />

• La rappresentazione dei valori numerici è a lunghezza variabile<br />

• L'accesso ai dati deve essere sequenziale<br />

In un file binario la co<strong>di</strong>fica dei dati <strong>di</strong>pende dalla particolare<br />

applicazione<br />

• La rappresentazione dei valori numerici è a lunghezza fissa, e richiede un<br />

numero minore <strong>di</strong> byte<br />

a = 1.234e-5<br />

• L’accesso può essere casuale<br />

b = 200<br />

z=FALSE<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Spreadsheet file<br />

• I dati sono organizzati in righe e colonne<br />

• Le colonne sono separate da un delim<strong>it</strong>atore (TAB)<br />

• Le righe sono separate da sequenze new line (CR+LF)<br />

File:<br />

00.4258<br />

10.3073<br />

20.9453<br />

30.964<br />

40.9517<br />

Nel foglio elettronico:<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Spreadsheet file<br />

• Wr<strong>it</strong>e to Spreadsheet File<br />

• Read from Spreadsheet File<br />

• Wr<strong>it</strong>e Characters to File<br />

• Read Characters from File<br />

• Read Lines from File<br />

Effettuano <strong>di</strong>rettamente le operazioni più frequenti <strong>di</strong> I/O su file <strong>di</strong> testo<br />

Aprono e chiudono il file (non deve farlo il chiamante)<br />

Nel loro <strong>di</strong>agramma a blocchi chiamano le funzioni <strong>di</strong> livello interme<strong>di</strong>o<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

6 aprile 2011<br />

Scr<strong>it</strong>tura su spreadsheet file<br />

Autoindexing<br />

abil<strong>it</strong>ato<br />

•La funzione Wr<strong>it</strong>e to Spreadsheet File accetta in ingresso array 1D e 2D<br />

•Se non specifica un nome <strong>di</strong> file, si apre una finestra <strong>di</strong> <strong>di</strong>alogo “Apri<br />

file..”<br />

•Si può specificare il carattere delim<strong>it</strong>atore (TAB per default), trasporre<br />

l'array 2D, aggiungere i dati ad un file esistente (append)<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>


<strong>LabVIEW</strong> <strong>parte</strong> <strong>II</strong><br />

Lettura su spreadsheet file<br />

6 aprile 2011<br />

Altre funzioni <strong>di</strong> alto livello:<br />

• Wr<strong>it</strong>e Characters to File: Scrive una stringa <strong>di</strong> caratteri in un<br />

file<br />

• Read Lines from Files: Legge un numero specificato <strong>di</strong> linee da<br />

un file<br />

• Binary File VIs: 4 funzioni per la lettura/scr<strong>it</strong>tura <strong>di</strong> array <strong>di</strong><br />

I16 o SGL su file<br />

Corso <strong>di</strong> Laurea in Ingegneria Informatica e delle Telecomunicazioni<br />

Laboratorio <strong>di</strong> Sistemi Automatici <strong>di</strong> Misura<br />

Univers<strong>it</strong>à <strong>degli</strong><br />

<strong>Stu<strong>di</strong></strong> <strong>di</strong> <strong>Cassino</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!