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